From 16ea99e78c8075b0fe9e0ec9ae033465e8362650 Mon Sep 17 00:00:00 2001 From: SuuperW Date: Wed, 29 Aug 2018 12:07:35 -0500 Subject: [PATCH 1/6] (Windows) Remove redundant hotkey initializing code. --- desmume/src/frontend/windows/main.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/desmume/src/frontend/windows/main.cpp b/desmume/src/frontend/windows/main.cpp index d140dd503..ff735a4f9 100755 --- a/desmume/src/frontend/windows/main.cpp +++ b/desmume/src/frontend/windows/main.cpp @@ -2105,9 +2105,6 @@ int _main() TABLET_DISABLE_FLICKFALLBACKKEYS )); - InitCustomKeys(&CustomKeys); - LoadHotkeyConfig(); - if(MenuInit() == 0) { MessageBox(NULL, "Error creating main menu", "DeSmuME", MB_OK); From 48414b144da2b8c6c4fa830ebdb40047de74c7be Mon Sep 17 00:00:00 2001 From: SuuperW Date: Wed, 29 Aug 2018 22:35:57 -0500 Subject: [PATCH 2/6] (Windows) Reorganize some hotkeys code, and move Lua hotkeys to the Tools page. --- desmume/src/frontend/windows/hotkey.cpp | 178 ++++++++++++------------ desmume/src/frontend/windows/hotkey.h | 10 +- 2 files changed, 96 insertions(+), 92 deletions(-) diff --git a/desmume/src/frontend/windows/hotkey.cpp b/desmume/src/frontend/windows/hotkey.cpp index 69cea0751..f7af4959c 100644 --- a/desmume/src/frontend/windows/hotkey.cpp +++ b/desmume/src/frontend/windows/hotkey.cpp @@ -562,7 +562,7 @@ void InitCustomKeys (SCustomKeys *keys) i++; }; - //Main Page--------------------------------------- + //Main Page ----------------------------------------------------------- keys->OpenROM.handleKeyDown = HK_OpenROM; keys->OpenROM.code = "OpenROM"; keys->OpenROM.name = STRW(ID_LABEL_HK1); @@ -678,12 +678,6 @@ void InitCustomKeys (SCustomKeys *keys) keys->AutoHold.page = HOTKEY_PAGE_MAIN; keys->AutoHold.key = NULL; - keys->StylusAutoHold.handleKeyDown = HK_StylusAutoHoldKeyDown; - keys->StylusAutoHold.code = "StylusAutoHold"; - keys->StylusAutoHold.name = STRW(ID_LABEL_HK29); - keys->StylusAutoHold.page = HOTKEY_PAGE_TOOLS; // TODO: set more appropriate category? - keys->StylusAutoHold.key = NULL; - keys->AutoHoldClear.handleKeyDown = HK_AutoHoldClearKeyDown; keys->AutoHoldClear.code = "AutoHoldClear"; keys->AutoHoldClear.name = STRW(ID_LABEL_HK11); @@ -696,6 +690,7 @@ void InitCustomKeys (SCustomKeys *keys) keys->ToggleRasterizer.page = HOTKEY_PAGE_MAIN; keys->ToggleRasterizer.key = VK_SUBTRACT; + //Tools Page ---------------------------------------------------------- keys->PrintScreen.handleKeyDown = HK_PrintScreen; keys->PrintScreen.code = "SaveScreenshotas"; keys->PrintScreen.name = STRW(ID_LABEL_HK13); @@ -709,6 +704,92 @@ void InitCustomKeys (SCustomKeys *keys) keys->QuickPrintScreen.key = VK_F12; keys->QuickPrintScreen.modifiers = CUSTKEY_CTRL_MASK; + keys->ToggleFrameCounter.handleKeyDown = HK_ToggleFrame; + keys->ToggleFrameCounter.code = "ToggleFrameDisplay"; + keys->ToggleFrameCounter.name = STRW(ID_LABEL_HK16); + keys->ToggleFrameCounter.page = HOTKEY_PAGE_TOOLS; + keys->ToggleFrameCounter.key = VK_OEM_PERIOD; + + keys->ToggleFPS.handleKeyDown = HK_ToggleFPS; + keys->ToggleFPS.code = "ToggleFPSDisplay"; + keys->ToggleFPS.name = STRW(ID_LABEL_HK17); + keys->ToggleFPS.page = HOTKEY_PAGE_TOOLS; + keys->ToggleFPS.key = NULL; + + keys->ToggleInput.handleKeyDown = HK_ToggleInput; + keys->ToggleInput.code = "ToggleInputDisplay"; + keys->ToggleInput.name = STRW(ID_LABEL_HK18); + keys->ToggleInput.page = HOTKEY_PAGE_TOOLS; + keys->ToggleInput.key = VK_OEM_COMMA; + + keys->ToggleLag.handleKeyDown = HK_ToggleLag; + keys->ToggleLag.code = "ToggleLagDisplay"; + keys->ToggleLag.name = STRW(ID_LABEL_HK19); + keys->ToggleLag.page = HOTKEY_PAGE_TOOLS; + keys->ToggleLag.key = NULL; + + keys->ResetLagCounter.handleKeyDown = HK_ResetLagCounter; + keys->ResetLagCounter.code = "ResetLagCounter"; + keys->ResetLagCounter.name = STRW(ID_LABEL_HK20); + keys->ResetLagCounter.page = HOTKEY_PAGE_TOOLS; + keys->ResetLagCounter.key = NULL; + + keys->StylusAutoHold.handleKeyDown = HK_StylusAutoHoldKeyDown; + keys->StylusAutoHold.code = "StylusAutoHold"; + keys->StylusAutoHold.name = STRW(ID_LABEL_HK29); + keys->StylusAutoHold.page = HOTKEY_PAGE_TOOLS; // TODO: set more appropriate category? + keys->StylusAutoHold.key = NULL; + + keys->LCDsMode.handleKeyUp = HK_LCDsMode; + keys->LCDsMode.code = "LCDsLayoutMode"; + keys->LCDsMode.name = STRW(ID_LABEL_HK30); + keys->LCDsMode.page = HOTKEY_PAGE_TOOLS; + keys->LCDsMode.key = VK_END; + + keys->LCDsSwap.handleKeyUp = HK_LCDsSwap; + keys->LCDsSwap.code = "LCDsSwap"; + keys->LCDsSwap.name = STRW(ID_LABEL_HK31); + keys->LCDsSwap.page = HOTKEY_PAGE_TOOLS; + keys->LCDsSwap.key = VK_NEXT; + + keys->SearchCheats.handleKeyDown = HK_SearchCheats; + keys->SearchCheats.code = "SearchCheats"; + keys->SearchCheats.name = STRW(ID_LABEL_HK54); + keys->SearchCheats.page = HOTKEY_PAGE_TOOLS; + keys->SearchCheats.key = 'S'; + keys->SearchCheats.modifiers = CUSTKEY_CTRL_MASK; + + keys->NewLuaScript.handleKeyDown = HK_NewLuaScriptDown; + keys->NewLuaScript.code = "NewLuaScript"; + keys->NewLuaScript.name = STRW(ID_LABEL_HK26); + keys->NewLuaScript.page = HOTKEY_PAGE_TOOLS; + keys->NewLuaScript.key = NULL; + + keys->CloseLuaScripts.handleKeyDown = HK_CloseLuaScriptsDown; + keys->CloseLuaScripts.code = "CloseLuaScripts"; + keys->CloseLuaScripts.name = STRW(ID_LABEL_HK27); + keys->CloseLuaScripts.page = HOTKEY_PAGE_TOOLS; + keys->CloseLuaScripts.key = NULL; + + keys->MostRecentLuaScript.handleKeyDown = HK_MostRecentLuaScriptDown; + keys->MostRecentLuaScript.code = "MostRecentLuaScript"; + keys->MostRecentLuaScript.name = STRW(ID_LABEL_HK28); + keys->MostRecentLuaScript.page = HOTKEY_PAGE_TOOLS; + keys->MostRecentLuaScript.key = NULL; + + keys->IncreaseVolume.handleKeyDown = HK_IncreaseVolume; + keys->IncreaseVolume.code = "IncreaseVolume"; + keys->IncreaseVolume.name = STRW(ID_LABEL_HK32); + keys->IncreaseVolume.page = HOTKEY_PAGE_TOOLS; + keys->IncreaseVolume.key = NULL; + + keys->DecreaseVolume.handleKeyDown = HK_DecreaseVolume; + keys->DecreaseVolume.code = "DecreaseVolume"; + keys->DecreaseVolume.name = STRW(ID_LABEL_HK33); + keys->DecreaseVolume.page = HOTKEY_PAGE_TOOLS; + keys->DecreaseVolume.key = NULL; + + //Movie Page ---------------------------------------------------------- keys->ToggleReadOnly.handleKeyDown = HK_ToggleReadOnly; keys->ToggleReadOnly.code = "ToggleReadOnly"; keys->ToggleReadOnly.name = STRW(ID_LABEL_HK24); @@ -745,7 +826,7 @@ void InitCustomKeys (SCustomKeys *keys) keys->RecordAVI.page = HOTKEY_PAGE_MOVIE; keys->RecordAVI.key = NULL; - //Turbo Page--------------------------------------- + //Turbo Page ---------------------------------------------------------- keys->TurboRight.handleKeyDown = HK_TurboRightKeyDown; keys->TurboRight.handleKeyUp = HK_TurboRightKeyUp; keys->TurboRight.code = "TurboRight"; @@ -830,85 +911,6 @@ void InitCustomKeys (SCustomKeys *keys) keys->TurboStart.page = HOTKEY_PAGE_TURBO; keys->TurboStart.key = NULL; - keys->NewLuaScript.handleKeyDown = HK_NewLuaScriptDown; - keys->NewLuaScript.code = "NewLuaScript"; - keys->NewLuaScript.name = STRW(ID_LABEL_HK26); - keys->NewLuaScript.page = HOTKEY_PAGE_MOVIE; - keys->NewLuaScript.key = NULL; - - keys->CloseLuaScripts.handleKeyDown = HK_CloseLuaScriptsDown; - keys->CloseLuaScripts.code = "CloseLuaScripts"; - keys->CloseLuaScripts.name = STRW(ID_LABEL_HK27); - keys->CloseLuaScripts.page = HOTKEY_PAGE_MOVIE; - keys->CloseLuaScripts.key = NULL; - - keys->MostRecentLuaScript.handleKeyDown = HK_MostRecentLuaScriptDown; - keys->MostRecentLuaScript.code = "MostRecentLuaScript"; - keys->MostRecentLuaScript.name = STRW(ID_LABEL_HK28); - keys->MostRecentLuaScript.page = HOTKEY_PAGE_MOVIE; - keys->MostRecentLuaScript.key = NULL; - - keys->LCDsMode.handleKeyUp = HK_LCDsMode; - keys->LCDsMode.code = "LCDsLayoutMode"; - keys->LCDsMode.name = STRW(ID_LABEL_HK30); - keys->LCDsMode.page = HOTKEY_PAGE_TOOLS; - keys->LCDsMode.key = VK_END; - - keys->LCDsSwap.handleKeyUp = HK_LCDsSwap; - keys->LCDsSwap.code = "LCDsSwap"; - keys->LCDsSwap.name = STRW(ID_LABEL_HK31); - keys->LCDsSwap.page = HOTKEY_PAGE_TOOLS; - keys->LCDsSwap.key = VK_NEXT; - - keys->SearchCheats.handleKeyDown = HK_SearchCheats; - keys->SearchCheats.code = "SearchCheats"; - keys->SearchCheats.name = STRW(ID_LABEL_HK54); - keys->SearchCheats.page = HOTKEY_PAGE_TOOLS; - keys->SearchCheats.key = 'S'; - keys->SearchCheats.modifiers = CUSTKEY_CTRL_MASK; - - keys->IncreaseVolume.handleKeyDown = HK_IncreaseVolume; - keys->IncreaseVolume.code = "IncreaseVolume"; - keys->IncreaseVolume.name = STRW(ID_LABEL_HK32); - keys->IncreaseVolume.page = HOTKEY_PAGE_TOOLS; - keys->IncreaseVolume.key = NULL; - - keys->DecreaseVolume.handleKeyDown = HK_DecreaseVolume; - keys->DecreaseVolume.code = "DecreaseVolume"; - keys->DecreaseVolume.name = STRW(ID_LABEL_HK33); - keys->DecreaseVolume.page = HOTKEY_PAGE_TOOLS; - keys->DecreaseVolume.key = NULL; - - keys->ToggleFrameCounter.handleKeyDown = HK_ToggleFrame; - keys->ToggleFrameCounter.code = "ToggleFrameDisplay"; - keys->ToggleFrameCounter.name = STRW(ID_LABEL_HK16); - keys->ToggleFrameCounter.page = HOTKEY_PAGE_TOOLS; - keys->ToggleFrameCounter.key = VK_OEM_PERIOD; - - keys->ToggleFPS.handleKeyDown = HK_ToggleFPS; - keys->ToggleFPS.code = "ToggleFPSDisplay"; - keys->ToggleFPS.name = STRW(ID_LABEL_HK17); - keys->ToggleFPS.page = HOTKEY_PAGE_TOOLS; - keys->ToggleFPS.key = NULL; - - keys->ToggleInput.handleKeyDown = HK_ToggleInput; - keys->ToggleInput.code = "ToggleInputDisplay"; - keys->ToggleInput.name = STRW(ID_LABEL_HK18); - keys->ToggleInput.page = HOTKEY_PAGE_TOOLS; - keys->ToggleInput.key = VK_OEM_COMMA; - - keys->ToggleLag.handleKeyDown = HK_ToggleLag; - keys->ToggleLag.code = "ToggleLagDisplay"; - keys->ToggleLag.name = STRW(ID_LABEL_HK19); - keys->ToggleLag.page = HOTKEY_PAGE_TOOLS; - keys->ToggleLag.key = NULL; - - keys->ResetLagCounter.handleKeyDown = HK_ResetLagCounter; - keys->ResetLagCounter.code = "ResetLagCounter"; - keys->ResetLagCounter.name = STRW(ID_LABEL_HK20); - keys->ResetLagCounter.page = HOTKEY_PAGE_TOOLS; - keys->ResetLagCounter.key = NULL; - //Other Page ------------------------------------------------------- keys->Rotate0.handleKeyDown = HK_Rotate0; keys->Rotate0.code = "Rotate0"; @@ -940,7 +942,7 @@ void InitCustomKeys (SCustomKeys *keys) keys->CursorToggle.page = HOTKEY_PAGE_OTHER; keys->CursorToggle.key = NULL; - //StateSlots Page -------------------------------------------------- + //State/Slots Pages ------------------------------------------------ keys->NextSaveSlot.handleKeyDown = HK_NextSaveSlot; keys->NextSaveSlot.code = "NextSaveSlot"; keys->NextSaveSlot.name = STRW(ID_LABEL_HK39); diff --git a/desmume/src/frontend/windows/hotkey.h b/desmume/src/frontend/windows/hotkey.h index 769282d4b..6a2598c91 100644 --- a/desmume/src/frontend/windows/hotkey.h +++ b/desmume/src/frontend/windows/hotkey.h @@ -92,8 +92,6 @@ struct SCustomKeys SCustomKey RecordWAV, RecordAVI; - SCustomKey NewLuaScript, CloseLuaScripts, MostRecentLuaScript; - SCustomKey ToggleFrameCounter; SCustomKey ToggleFPS; SCustomKey ToggleInput; @@ -102,9 +100,13 @@ struct SCustomKeys SCustomKey StylusAutoHold; SCustomKey LCDsMode; SCustomKey LCDsSwap; + SCustomKey SearchCheats; - SCustomKey IncreaseVolume; - SCustomKey DecreaseVolume; + + SCustomKey NewLuaScript, CloseLuaScripts, MostRecentLuaScript; + + SCustomKey IncreaseVolume, DecreaseVolume; + SCustomKey LastItem; // dummy, must be last //--methods-- From 5cc49fe41705f22b7be6f0e8b1ef9a9c70bd5fa7 Mon Sep 17 00:00:00 2001 From: SuuperW Date: Wed, 29 Aug 2018 22:37:39 -0500 Subject: [PATCH 3/6] (Windows) Add hotkeys for cheat list and toggle cheats. --- desmume/src/frontend/windows/hotkey.cpp | 24 +++++++++++++++++++++++ desmume/src/frontend/windows/hotkey.h | 2 +- desmume/src/frontend/windows/resource.h | 2 ++ desmume/src/frontend/windows/resources.rc | 6 ++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/desmume/src/frontend/windows/hotkey.cpp b/desmume/src/frontend/windows/hotkey.cpp index f7af4959c..b8376f798 100644 --- a/desmume/src/frontend/windows/hotkey.cpp +++ b/desmume/src/frontend/windows/hotkey.cpp @@ -142,11 +142,21 @@ void HK_JitBlockSizeInc(int, bool justPressed) } #endif +void HK_ListCheats(int, bool justPressed) +{ + if (romloaded) + CheatsListDialog(MainWindow->getHWnd()); +} void HK_SearchCheats(int, bool justPressed) { if (romloaded) CheatsSearchDialog(MainWindow->getHWnd()); } +void HK_ToggleCheats(int, bool justPressed) +{ + CommonSettings.cheatsDisable = !CommonSettings.cheatsDisable; + WritePrivateProfileBool("General", "cheatsDisable", CommonSettings.cheatsDisable, IniName); +} static void DoScreenshot(const char* fname) { @@ -752,6 +762,13 @@ void InitCustomKeys (SCustomKeys *keys) keys->LCDsSwap.page = HOTKEY_PAGE_TOOLS; keys->LCDsSwap.key = VK_NEXT; + keys->ListCheats.handleKeyDown = HK_ListCheats; + keys->ListCheats.code = "ListCheats"; + keys->ListCheats.name = STRW(ID_LABEL_HK63); + keys->ListCheats.page = HOTKEY_PAGE_TOOLS; + keys->ListCheats.key = 'L'; + keys->ListCheats.modifiers = CUSTKEY_CTRL_MASK; + keys->SearchCheats.handleKeyDown = HK_SearchCheats; keys->SearchCheats.code = "SearchCheats"; keys->SearchCheats.name = STRW(ID_LABEL_HK54); @@ -759,6 +776,13 @@ void InitCustomKeys (SCustomKeys *keys) keys->SearchCheats.key = 'S'; keys->SearchCheats.modifiers = CUSTKEY_CTRL_MASK; + keys->ToggleCheats.handleKeyDown = HK_ToggleCheats; + keys->ToggleCheats.code = "ToggleCheats"; + keys->ToggleCheats.name = STRW(ID_LABEL_HK64); + keys->ToggleCheats.page = HOTKEY_PAGE_TOOLS; + keys->ToggleCheats.key = 'C'; + keys->ToggleCheats.modifiers = CUSTKEY_CTRL_MASK; + keys->NewLuaScript.handleKeyDown = HK_NewLuaScriptDown; keys->NewLuaScript.code = "NewLuaScript"; keys->NewLuaScript.name = STRW(ID_LABEL_HK26); diff --git a/desmume/src/frontend/windows/hotkey.h b/desmume/src/frontend/windows/hotkey.h index 6a2598c91..8c6fe5fae 100644 --- a/desmume/src/frontend/windows/hotkey.h +++ b/desmume/src/frontend/windows/hotkey.h @@ -101,7 +101,7 @@ struct SCustomKeys SCustomKey LCDsMode; SCustomKey LCDsSwap; - SCustomKey SearchCheats; + SCustomKey ListCheats, SearchCheats, ToggleCheats; SCustomKey NewLuaScript, CloseLuaScripts, MostRecentLuaScript; diff --git a/desmume/src/frontend/windows/resource.h b/desmume/src/frontend/windows/resource.h index 4b7d34741..d8516cfd0 100644 --- a/desmume/src/frontend/windows/resource.h +++ b/desmume/src/frontend/windows/resource.h @@ -842,6 +842,8 @@ #define ID_LABEL_HK60 4525 #define ID_LABEL_HK61 4526 #define ID_LABEL_HK62 4527 +#define ID_LABEL_HK63 4528 +#define ID_LABEL_HK64 4529 #define IDD_MICROPHONE 5000 #define IDM_MICROPHONESETTINGS 5001 #define IDC_MICSAMPLEBROWSE 5003 diff --git a/desmume/src/frontend/windows/resources.rc b/desmume/src/frontend/windows/resources.rc index 93ba06942..508dfdd25 100644 --- a/desmume/src/frontend/windows/resources.rc +++ b/desmume/src/frontend/windows/resources.rc @@ -2229,6 +2229,12 @@ BEGIN ID_LABEL_HK3d "Decrease JIT block size" END +STRINGTABLE +BEGIN + ID_LABEL_HK63 "List Cheats" + ID_LABEL_HK64 "Toggle Cheats" +END + #endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// From 811d9a3c18aefa6befad7c98861e8f0abb035d46 Mon Sep 17 00:00:00 2001 From: SuuperW Date: Thu, 30 Aug 2018 11:01:57 -0500 Subject: [PATCH 4/6] (Windows) Move TwiddleLayer from main.cpp to display.cpp (prepare for new hotkeys) --- desmume/src/frontend/windows/display.cpp | 9 +++++++++ desmume/src/frontend/windows/display.h | 1 + desmume/src/frontend/windows/main.cpp | 10 ---------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/desmume/src/frontend/windows/display.cpp b/desmume/src/frontend/windows/display.cpp index 61021e197..a538bb336 100644 --- a/desmume/src/frontend/windows/display.cpp +++ b/desmume/src/frontend/windows/display.cpp @@ -959,3 +959,12 @@ void _ServiceDisplayThreadInvocation() display_invoke_function = NULL; SetEvent(display_invoke_done_event); } + +void TwiddleLayer(UINT ctlid, int core, int layer) +{ + GPUEngineBase *gpu = ((GPUEngineID)core == GPUEngineID_Main) ? (GPUEngineBase *)GPU->GetEngineMain() : (GPUEngineBase *)GPU->GetEngineSub(); + + const bool newLayerState = !CommonSettings.dispLayers[core][layer]; + gpu->SetLayerEnableState(layer, newLayerState); + MainWindow->checkMenu(ctlid, newLayerState); +} diff --git a/desmume/src/frontend/windows/display.h b/desmume/src/frontend/windows/display.h index e43c801fa..ea3662bf5 100644 --- a/desmume/src/frontend/windows/display.h +++ b/desmume/src/frontend/windows/display.h @@ -104,5 +104,6 @@ FORCEINLINE void ServiceDisplayThreadInvocations() } void UpdateWndRects(HWND hwnd, RECT* newClientRect = NULL); +void TwiddleLayer(UINT ctlid, int core, int layer); #endif \ No newline at end of file diff --git a/desmume/src/frontend/windows/main.cpp b/desmume/src/frontend/windows/main.cpp index ff735a4f9..e96a9358e 100755 --- a/desmume/src/frontend/windows/main.cpp +++ b/desmume/src/frontend/windows/main.cpp @@ -3500,16 +3500,6 @@ void SaveWindowPos(HWND hwnd) WritePrivateProfileInt("Video", "WindowPosY", WndY/*MainWindowRect.top*/, IniName); } - -static void TwiddleLayer(UINT ctlid, int core, int layer) -{ - GPUEngineBase *gpu = ((GPUEngineID)core == GPUEngineID_Main) ? (GPUEngineBase *)GPU->GetEngineMain() : (GPUEngineBase *)GPU->GetEngineSub(); - - const bool newLayerState = !CommonSettings.dispLayers[core][layer]; - gpu->SetLayerEnableState(layer, newLayerState); - MainWindow->checkMenu(ctlid, newLayerState); -} - //======================================================================================== LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { From 56477f0c5c2f6fab8e30a54d759b84c90be4c7c7 Mon Sep 17 00:00:00 2001 From: SuuperW Date: Thu, 30 Aug 2018 11:14:44 -0500 Subject: [PATCH 5/6] (Windows) Add hotkeys for toggling display layers. --- desmume/src/frontend/windows/hotkey.cpp | 95 ++++++++++++++++++++++- desmume/src/frontend/windows/hotkey.h | 3 + desmume/src/frontend/windows/resource.h | 12 +++ desmume/src/frontend/windows/resources.rc | 12 +++ 4 files changed, 121 insertions(+), 1 deletion(-) diff --git a/desmume/src/frontend/windows/hotkey.cpp b/desmume/src/frontend/windows/hotkey.cpp index b8376f798..dfad3e001 100644 --- a/desmume/src/frontend/windows/hotkey.cpp +++ b/desmume/src/frontend/windows/hotkey.cpp @@ -51,6 +51,7 @@ #include "winutil.h" #include "windriver.h" #include "utils/xstring.h" +#include "display.h" extern LRESULT OpenFile(); //adelikat: Made this an extern here instead of main.h Seemed icky not to limit the scope of this function @@ -539,7 +540,6 @@ void HK_Rotate90(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 90);} void HK_Rotate180(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 180);} void HK_Rotate270(int, bool justPressed) { SetRotate(MainWindow->getHWnd(), 270);} - void HK_CursorToggle(int, bool) { static int cursorVisible = ShowCursor(TRUE); @@ -549,6 +549,27 @@ void HK_CursorToggle(int, bool) while( (cursorVisible = ShowCursor(TRUE)) <= 0); } +void HK_ToggleMainGPU(int, bool justPressed) +{ + CommonSettings.showGpu.main = !CommonSettings.showGpu.main; + WritePrivateProfileInt("Display", "MainGpu", CommonSettings.showGpu.main ? 1 : 0, IniName); +} +void HK_ToggleSubGPU(int, bool justPressed) +{ + CommonSettings.showGpu.sub = !CommonSettings.showGpu.sub; + WritePrivateProfileInt("Display", "SubGpu", CommonSettings.showGpu.sub ? 1 : 0, IniName); +} +void HK_ToggleMainBG0Layer(int, bool justPressed) { TwiddleLayer(IDM_MBG0, 0, 0); } +void HK_ToggleMainBG1Layer(int, bool justPressed) { TwiddleLayer(IDM_MBG1, 0, 1); } +void HK_ToggleMainBG2Layer(int, bool justPressed) { TwiddleLayer(IDM_MBG2, 0, 2); } +void HK_ToggleMainBG3Layer(int, bool justPressed) { TwiddleLayer(IDM_MBG3, 0, 3); } +void HK_ToggleMainOBJLayer(int, bool justPressed) { TwiddleLayer(IDM_MOBJ, 0, 4); } +void HK_ToggleSubBG0Layer(int, bool justPressed) { TwiddleLayer(IDM_SBG0, 1, 0); } +void HK_ToggleSubBG1Layer(int, bool justPressed) { TwiddleLayer(IDM_SBG1, 1, 1); } +void HK_ToggleSubBG2Layer(int, bool justPressed) { TwiddleLayer(IDM_SBG2, 1, 2); } +void HK_ToggleSubBG3Layer(int, bool justPressed) { TwiddleLayer(IDM_SBG3, 1, 3); } +void HK_ToggleSubOBJLayer(int, bool justPressed) { TwiddleLayer(IDM_SOBJ, 1, 4); } + //====================================================================================== //=====================================DEFINITIONS====================================== //====================================================================================== @@ -966,6 +987,78 @@ void InitCustomKeys (SCustomKeys *keys) keys->CursorToggle.page = HOTKEY_PAGE_OTHER; keys->CursorToggle.key = NULL; + keys->ToggleMainGPU.handleKeyDown = HK_ToggleMainGPU; + keys->ToggleMainGPU.code = "Toggle Main GPU"; + keys->ToggleMainGPU.name = STRW(ID_LABEL_HK65); + keys->ToggleMainGPU.page = HOTKEY_PAGE_OTHER; + keys->ToggleMainGPU.key = NULL; + + keys->ToggleMainBG0Layer.handleKeyDown = HK_ToggleMainBG0Layer; + keys->ToggleMainBG0Layer.code = "Toggle Main BG 0 Layer"; + keys->ToggleMainBG0Layer.name = STRW(ID_LABEL_HK66); + keys->ToggleMainBG0Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleMainBG0Layer.key = NULL; + + keys->ToggleMainBG1Layer.handleKeyDown = HK_ToggleMainBG1Layer; + keys->ToggleMainBG1Layer.code = "Toggle Main BG 1 Layer"; + keys->ToggleMainBG1Layer.name = STRW(ID_LABEL_HK67); + keys->ToggleMainBG1Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleMainBG1Layer.key = NULL; + + keys->ToggleMainBG2Layer.handleKeyDown = HK_ToggleMainBG2Layer; + keys->ToggleMainBG2Layer.code = "Toggle Main BG 2 Layer"; + keys->ToggleMainBG2Layer.name = STRW(ID_LABEL_HK68); + keys->ToggleMainBG2Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleMainBG2Layer.key = NULL; + + keys->ToggleMainBG3Layer.handleKeyDown = HK_ToggleMainBG3Layer; + keys->ToggleMainBG3Layer.code = "Toggle Main BG 3 Layer"; + keys->ToggleMainBG3Layer.name = STRW(ID_LABEL_HK69); + keys->ToggleMainBG3Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleMainBG3Layer.key = NULL; + + keys->ToggleMainOBJLayer.handleKeyDown = HK_ToggleMainOBJLayer; + keys->ToggleMainOBJLayer.code = "Toggle Main OBJ Layer"; + keys->ToggleMainOBJLayer.name = STRW(ID_LABEL_HK70); + keys->ToggleMainOBJLayer.page = HOTKEY_PAGE_OTHER; + keys->ToggleMainOBJLayer.key = NULL; + + keys->ToggleSubGPU.handleKeyDown = HK_ToggleSubGPU; + keys->ToggleSubGPU.code = "Toggle Sub GPU"; + keys->ToggleSubGPU.name = STRW(ID_LABEL_HK71); + keys->ToggleSubGPU.page = HOTKEY_PAGE_OTHER; + keys->ToggleSubGPU.key = NULL; + + keys->ToggleSubBG0Layer.handleKeyDown = HK_ToggleSubBG0Layer; + keys->ToggleSubBG0Layer.code = "Toggle Sub BG 0 Layer"; + keys->ToggleSubBG0Layer.name = STRW(ID_LABEL_HK72); + keys->ToggleSubBG0Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleSubBG0Layer.key = NULL; + + keys->ToggleSubBG1Layer.handleKeyDown = HK_ToggleSubBG1Layer; + keys->ToggleSubBG1Layer.code = "Toggle Sub BG 1 Layer"; + keys->ToggleSubBG1Layer.name = STRW(ID_LABEL_HK73); + keys->ToggleSubBG1Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleSubBG1Layer.key = NULL; + + keys->ToggleSubBG2Layer.handleKeyDown = HK_ToggleSubBG2Layer; + keys->ToggleSubBG2Layer.code = "Toggle Sub BG 2 Layer"; + keys->ToggleSubBG2Layer.name = STRW(ID_LABEL_HK74); + keys->ToggleSubBG2Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleSubBG2Layer.key = NULL; + + keys->ToggleSubBG3Layer.handleKeyDown = HK_ToggleSubBG3Layer; + keys->ToggleSubBG3Layer.code = "Toggle Sub BG 3 Layer"; + keys->ToggleSubBG3Layer.name = STRW(ID_LABEL_HK75); + keys->ToggleSubBG3Layer.page = HOTKEY_PAGE_OTHER; + keys->ToggleSubBG3Layer.key = NULL; + + keys->ToggleSubOBJLayer.handleKeyDown = HK_ToggleSubOBJLayer; + keys->ToggleSubOBJLayer.code = "Toggle Sub OBJ Layer"; + keys->ToggleSubOBJLayer.name = STRW(ID_LABEL_HK76); + keys->ToggleSubOBJLayer.page = HOTKEY_PAGE_OTHER; + keys->ToggleSubOBJLayer.key = NULL; + //State/Slots Pages ------------------------------------------------ keys->NextSaveSlot.handleKeyDown = HK_NextSaveSlot; keys->NextSaveSlot.code = "NextSaveSlot"; diff --git a/desmume/src/frontend/windows/hotkey.h b/desmume/src/frontend/windows/hotkey.h index 8c6fe5fae..8bd6645c8 100644 --- a/desmume/src/frontend/windows/hotkey.h +++ b/desmume/src/frontend/windows/hotkey.h @@ -107,6 +107,9 @@ struct SCustomKeys SCustomKey IncreaseVolume, DecreaseVolume; + SCustomKey ToggleMainGPU, ToggleMainBG0Layer, ToggleMainBG1Layer, ToggleMainBG2Layer, ToggleMainBG3Layer, ToggleMainOBJLayer; + SCustomKey ToggleSubGPU, ToggleSubBG0Layer, ToggleSubBG1Layer, ToggleSubBG2Layer, ToggleSubBG3Layer, ToggleSubOBJLayer; + SCustomKey LastItem; // dummy, must be last //--methods-- diff --git a/desmume/src/frontend/windows/resource.h b/desmume/src/frontend/windows/resource.h index d8516cfd0..c444c4d28 100644 --- a/desmume/src/frontend/windows/resource.h +++ b/desmume/src/frontend/windows/resource.h @@ -844,6 +844,18 @@ #define ID_LABEL_HK62 4527 #define ID_LABEL_HK63 4528 #define ID_LABEL_HK64 4529 +#define ID_LABEL_HK65 4530 +#define ID_LABEL_HK66 4531 +#define ID_LABEL_HK67 4532 +#define ID_LABEL_HK68 4533 +#define ID_LABEL_HK69 4534 +#define ID_LABEL_HK70 4535 +#define ID_LABEL_HK71 4536 +#define ID_LABEL_HK72 4537 +#define ID_LABEL_HK73 4538 +#define ID_LABEL_HK74 4539 +#define ID_LABEL_HK75 4540 +#define ID_LABEL_HK76 4541 #define IDD_MICROPHONE 5000 #define IDM_MICROPHONESETTINGS 5001 #define IDC_MICSAMPLEBROWSE 5003 diff --git a/desmume/src/frontend/windows/resources.rc b/desmume/src/frontend/windows/resources.rc index 508dfdd25..ee12d2e5b 100644 --- a/desmume/src/frontend/windows/resources.rc +++ b/desmume/src/frontend/windows/resources.rc @@ -2233,6 +2233,18 @@ STRINGTABLE BEGIN ID_LABEL_HK63 "List Cheats" ID_LABEL_HK64 "Toggle Cheats" + ID_LABEL_HK65 "Toggle Main GPU" + ID_LABEL_HK66 "Toggle Main BG 0 Layer" + ID_LABEL_HK67 "Toggle Main BG 1 Layer" + ID_LABEL_HK68 "Toggle Main BG 2 Layer" + ID_LABEL_HK69 "Toggle Main BG 3 Layer" + ID_LABEL_HK70 "Toggle Main OBJ Layer" + ID_LABEL_HK71 "Toggle Sub GPU" + ID_LABEL_HK72 "Toggle Sub BG 0 Layer" + ID_LABEL_HK73 "Toggle Sub BG 1 Layer" + ID_LABEL_HK74 "Toggle Sub BG 2 Layer" + ID_LABEL_HK75 "Toggle Sub BG 3 Layer" + ID_LABEL_HK76 "Toggle Sub OBJ Layer" END #endif // English (United States) resources From 80cfb59c2ce0dc696f5d932f2e927c2f24a12c4a Mon Sep 17 00:00:00 2001 From: SuuperW Date: Thu, 30 Aug 2018 11:27:25 -0500 Subject: [PATCH 6/6] (Windows) Clean up/combine string tables. --- desmume/src/frontend/windows/resource.h | 1 - desmume/src/frontend/windows/resources.rc | 73 +++++++---------------- 2 files changed, 20 insertions(+), 54 deletions(-) diff --git a/desmume/src/frontend/windows/resource.h b/desmume/src/frontend/windows/resource.h index c444c4d28..e7d0b1eec 100644 --- a/desmume/src/frontend/windows/resource.h +++ b/desmume/src/frontend/windows/resource.h @@ -921,7 +921,6 @@ #define ID_LCDS_SUBGPU 40061 #define IDM_CHEATS_DISABLE 40062 #define IDM_CHEATS_SEARCH 40063 -#define ID_RAMSEARCH_CAPTIONTEXT 40064 #define IDM_LOCKDOWN 40066 #define IDM_SHOWTOOLBAR 40069 #define ID_CONFIG_DISPLAYMETHOD 40070 diff --git a/desmume/src/frontend/windows/resources.rc b/desmume/src/frontend/windows/resources.rc index ee12d2e5b..ebfabfc56 100644 --- a/desmume/src/frontend/windows/resources.rc +++ b/desmume/src/frontend/windows/resources.rc @@ -2121,16 +2121,11 @@ BEGIN IDM_FILE_STOPAVI "Stop AVI" IDM_FILE_STOPWAV "Stop WAV" IDM_FILE_RECORDAVI "Record AVI" -END - -STRINGTABLE -BEGIN IDM_FILE_RECORDWAV "Record WAV" END STRINGTABLE BEGIN - ID_RAMSEARCH_CAPTIONTEXT " RAM Search" ID_HOTKEYS_TITLE "Hotkey Configuration" END @@ -2139,47 +2134,23 @@ BEGIN ID_LABEL_HK1 "Open ROM" ID_LABEL_HK2 "Reset" ID_LABEL_HK3 "Pause" + ID_LABEL_HK3b "CPU mode" + ID_LABEL_HK3c "Increase JIT block size" + ID_LABEL_HK3d "Decrease JIT block size" ID_LABEL_HK4 "Frame Advance" ID_LABEL_HK5 "Fast Forward" ID_LABEL_HK6 "Fast Forward Toggle" ID_LABEL_HK7 "Increase Speed" ID_LABEL_HK8 "Decrease Speed" + ID_LABEL_HK8b "Limit Framerate Toggle" ID_LABEL_HK9 "Microphone" ID_LABEL_HK10 "Auto-Hold" ID_LABEL_HK11 "Auto-Hold Clear" ID_LABEL_HK12 "Toggle Rasterizer" ID_LABEL_HK13 "Save Screenshot as" + ID_LABEL_HK13b "Quick Screenshot" ID_LABEL_HK14 "Record WAV" ID_LABEL_HK15 "Record AVI" -END - -STRINGTABLE -BEGIN - ID_LABEL_HK8b "Limit Framerate Toggle" -END - -STRINGTABLE -BEGIN - ID_LABEL_HK48 "Turbo A" - ID_LABEL_HK49 "Turbo Y" - ID_LABEL_HK50 "Turbo X" - ID_LABEL_HK51 "Turbo R" - ID_LABEL_HK52 "Turbo L" - ID_LABEL_HK53 "Reload ROM" - ID_LABEL_HK13b "Quick Screenshot" - ID_LABEL_HK54 "Search Cheats" - ID_LABEL_HK55 "Increase Pressure" - ID_LABEL_HK56 "Decrease Pressure" - ID_LABEL_HK57 "Rotation 0" - ID_LABEL_HK58 "Rotation 90" - ID_LABEL_HK59 "Rotation 180" - ID_LABEL_HK60 "Rotation 270" - ID_LABEL_HK61 "Toggle Stylus Jitter" - ID_LABEL_HK62 "Toggle Cursor" -END - -STRINGTABLE -BEGIN ID_LABEL_HK16 "Toggle Frame Display" ID_LABEL_HK17 "Toggle FPS Display" ID_LABEL_HK18 "Toggle Input Display" @@ -2196,10 +2167,6 @@ BEGIN ID_LABEL_HK29 "Stylus Auto-Hold" ID_LABEL_HK30 "LCDs layout mode" ID_LABEL_HK31 "LCDs swap" -END - -STRINGTABLE -BEGIN ID_LABEL_HK32 "Increase Volume" ID_LABEL_HK33 "Decrease Volume" ID_LABEL_HK34 "Save to Slot " @@ -2216,21 +2183,21 @@ BEGIN ID_LABEL_HK45 "Turbo Select" ID_LABEL_HK46 "Turbo Start" ID_LABEL_HK47 "Turbo B" -END - -STRINGTABLE -BEGIN - ID_LABEL_HK3b "CPU mode" - ID_LABEL_HK3c "Increase JIT block size" -END - -STRINGTABLE -BEGIN - ID_LABEL_HK3d "Decrease JIT block size" -END - -STRINGTABLE -BEGIN + ID_LABEL_HK48 "Turbo A" + ID_LABEL_HK49 "Turbo Y" + ID_LABEL_HK50 "Turbo X" + ID_LABEL_HK51 "Turbo R" + ID_LABEL_HK52 "Turbo L" + ID_LABEL_HK53 "Reload ROM" + ID_LABEL_HK54 "Search Cheats" + ID_LABEL_HK55 "Increase Pressure" + ID_LABEL_HK56 "Decrease Pressure" + ID_LABEL_HK57 "Rotation 0" + ID_LABEL_HK58 "Rotation 90" + ID_LABEL_HK59 "Rotation 180" + ID_LABEL_HK60 "Rotation 270" + ID_LABEL_HK61 "Toggle Stylus Jitter" + ID_LABEL_HK62 "Toggle Cursor" ID_LABEL_HK63 "List Cheats" ID_LABEL_HK64 "Toggle Cheats" ID_LABEL_HK65 "Toggle Main GPU"