diff --git a/win32/rsrc/resource.h b/win32/rsrc/resource.h index 2f46d864..48fc1e16 100644 --- a/win32/rsrc/resource.h +++ b/win32/rsrc/resource.h @@ -486,6 +486,7 @@ #define ID_EMULATION_BACKGROUNDINPUT 40174 #define ID_SAVEMEMPACK 40175 #define ID_INPUT_BACKGROUNDKEYBOARDHOTKEYS 40176 +#define ID_INPUT_DETECTGAMEPADCHANGES 40177 #define ID_FILE_SAVE0 44000 #define ID_FILE_SAVE1 44001 #define ID_FILE_SAVE2 44002 diff --git a/win32/rsrc/snes9x.rc b/win32/rsrc/snes9x.rc index 33b0801f..e69295a9 100644 --- a/win32/rsrc/snes9x.rc +++ b/win32/rsrc/snes9x.rc @@ -882,6 +882,8 @@ BEGIN MENUITEM "Enable Background Input", ID_EMULATION_BACKGROUNDINPUT MENUITEM "Background Keyboard Hotkeys", ID_INPUT_BACKGROUNDKEYBOARDHOTKEYS MENUITEM SEPARATOR + MENUITEM "Detect gamepad changes", ID_INPUT_DETECTGAMEPADCHANGES + MENUITEM SEPARATOR MENUITEM "Use SNES Joypad(s)", IDM_SNES_JOYPAD MENUITEM "Use SNES Mouse", IDM_MOUSE_TOGGLE MENUITEM "Use Super Scope", IDM_SCOPE_TOGGLE diff --git a/win32/wsnes9x.cpp b/win32/wsnes9x.cpp index 84d55242..c3bc6ef2 100644 --- a/win32/wsnes9x.cpp +++ b/win32/wsnes9x.cpp @@ -1944,6 +1944,10 @@ LRESULT CALLBACK WinProc( GUI.BackgroundKeyHotkeys = !GUI.BackgroundKeyHotkeys; break; + case ID_INPUT_DETECTGAMEPADCHANGES: + S9xDetectJoypads(); + break; + case ID_FILE_LOADMULTICART: { RestoreGUIDisplay (); @@ -2717,20 +2721,6 @@ LRESULT CALLBACK WinProc( #endif break; #endif - case WM_DEVICECHANGE: - if (wParam == DBT_DEVICEARRIVAL || wParam == DBT_DEVICEREMOVECOMPLETE) { - // trigger a joypad detect after 500ms - the multimedia functions do not like it if we trigger this right after arrival/removal - SetTimer(hWnd, TIMER_SCANJOYPADS, 500, NULL); - } - break; - case WM_TIMER: - { - if (wParam == TIMER_SCANJOYPADS) { - S9xDetectJoypads(); - KillTimer(hWnd, TIMER_SCANJOYPADS); - } - } - break; } return DefWindowProc (hWnd, uMsg, wParam, lParam); }