diff --git a/src/Graphics_GCWii.c b/src/Graphics_GCWii.c index 00571b8c2..50968bf71 100644 --- a/src/Graphics_GCWii.c +++ b/src/Graphics_GCWii.c @@ -260,7 +260,8 @@ void Gfx_EndFrame(void) { VIDEO_SetNextFramebuffer(xfbs[curFB]); VIDEO_Flush(); - VIDEO_WaitVSync(); + + if (gfx_vsync) VIDEO_WaitVSync(); if (gfx_minFrameMs) LimitFPS(); } diff --git a/src/Window_GCWii.c b/src/Window_GCWii.c index 803e68950..11a80bcd6 100644 --- a/src/Window_GCWii.c +++ b/src/Window_GCWii.c @@ -309,14 +309,12 @@ static void ProcessKeyboardInput(void) { if (ke.symbol) Event_RaiseInt(&InputEvents.Press, ke.symbol); } } - -void Window_ProcessEvents(double delta) { - Input.JoystickMovement = false; - +static void ProcessWPADInput(double delta) { WPAD_ScanPads(); u32 mods = WPAD_ButtonsDown(0) | WPAD_ButtonsHeld(0); u32 type; int res = WPAD_Probe(0, &type); + if (res) return; if (launcherMode) { ProcessWPAD_Launcher(mods); @@ -341,7 +339,12 @@ void Window_ProcessEvents(double delta) { dragActive = false; } Pointer_SetPosition(0, x, y); - +} + +void Window_ProcessEvents(double delta) { + Input.JoystickMovement = false; + + ProcessWPADInput(delta); ProcessPADInput(); ProcessKeyboardInput(); }