From 22de16d17836dc786faf6bbddaa19d76c99ceef4 Mon Sep 17 00:00:00 2001 From: papel Date: Tue, 9 Jul 2013 17:25:29 -0300 Subject: [PATCH] Improving shortcuts of Windows version. --- Common/KeyMap.cpp | 2 +- Windows/WndMainWindow.cpp | 63 ++++++++++++++++++++++---------------- Windows/ppsspp.rc | Bin 38926 -> 39042 bytes Windows/resource.h | Bin 25206 -> 25206 bytes 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/Common/KeyMap.cpp b/Common/KeyMap.cpp index 3c533cabec..9227cf8b8f 100644 --- a/Common/KeyMap.cpp +++ b/Common/KeyMap.cpp @@ -51,7 +51,7 @@ struct DefaultKeyMap { m[KeyDef(DEVICE_ID_KEYBOARD, KEYCODE_L)] = VIRTKEY_AXIS_X_MAX; m[KeyDef(DEVICE_ID_KEYBOARD, KEYCODE_SHIFT_LEFT)] = VIRTKEY_RAPID_FIRE; m[KeyDef(DEVICE_ID_KEYBOARD, KEYCODE_TAB)] = VIRTKEY_UNTHROTTLE; - m[KeyDef(DEVICE_ID_KEYBOARD, KEYCODE_F3)] = VIRTKEY_SPEED_TOGGLE; + m[KeyDef(DEVICE_ID_KEYBOARD, KEYCODE_F1)] = VIRTKEY_SPEED_TOGGLE; m[KeyDef(DEVICE_ID_KEYBOARD, KEYCODE_ESCAPE)] = VIRTKEY_PAUSE; return m; } diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index edb16cd4eb..6ff9da83ed 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -75,6 +75,7 @@ namespace MainWindow static bool hideCursor = false; static void *rawInputBuffer; static size_t rawInputBufferSize; + static int currentSavestateSlot = 0; //W32Util::LayeredWindow *layer; #define MAX_LOADSTRING 100 @@ -555,14 +556,19 @@ namespace MainWindow } break; - case ID_EMULATION_RUN: - if (Core_IsStepping()) { - Core_EnableStepping(false); + case ID_TOGGLE_PAUSE: + if (Core_IsStepping()) //If is paused, then continue to run + { + if (disasmWindow[0]) + SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_GO, 0); + else + Core_EnableStepping(false); } else { - NativeMessageReceived("run", ""); + if (disasmWindow[0]) + SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_STOP, 0); + else + Core_EnableStepping(true); } - if (disasmWindow[0]) - SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_GO, 0); break; case ID_EMULATION_STOP: @@ -580,15 +586,6 @@ namespace MainWindow Update(); break; - case ID_EMULATION_PAUSE: - if (disasmWindow[0]) - { - SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_STOP, 0); - } else if (globalUIState == UISTATE_INGAME) { - Core_EnableStepping(true); - } - break; - case ID_EMULATION_RESET: NativeMessageReceived("reset", ""); break; @@ -600,7 +597,7 @@ namespace MainWindow case ID_FILE_LOADSTATEFILE: if (W32Util::BrowseForFileName(true, hWnd, "Load state",0,"Save States (*.ppst)\0*.ppst\0All files\0*.*\0\0","ppst",fn)) { - SetCursor(LoadCursor(0,IDC_WAIT)); + SetCursor(LoadCursor(0, IDC_WAIT)); SaveState::Load(fn, SaveStateActionFinished); } break; @@ -608,21 +605,29 @@ namespace MainWindow case ID_FILE_SAVESTATEFILE: if (W32Util::BrowseForFileName(false, hWnd, "Save state",0,"Save States (*.ppst)\0*.ppst\0All files\0*.*\0\0","ppst",fn)) { - SetCursor(LoadCursor(0,IDC_WAIT)); + SetCursor(LoadCursor(0, IDC_WAIT)); SaveState::Save(fn, SaveStateActionFinished); } break; - // TODO: Add UI for multiple slots + // TODO: Improve UI for multiple slots + case ID_FILE_SAVESTATE_NEXT_SLOT: + { + currentSavestateSlot = (currentSavestateSlot + 1)%5; + char msg[30]; + sprintf(msg, "Using save state slot %d.", currentSavestateSlot + 1); + osm.Show(msg); + break; + } case ID_FILE_QUICKLOADSTATE: - SetCursor(LoadCursor(0,IDC_WAIT)); - SaveState::LoadSlot(0, SaveStateActionFinished); + SetCursor(LoadCursor(0, IDC_WAIT)); + SaveState::LoadSlot(currentSavestateSlot, SaveStateActionFinished); break; case ID_FILE_QUICKSAVESTATE: - SetCursor(LoadCursor(0,IDC_WAIT)); - SaveState::SaveSlot(0, SaveStateActionFinished); + SetCursor(LoadCursor(0, IDC_WAIT)); + SaveState::SaveSlot(currentSavestateSlot, SaveStateActionFinished); break; case ID_OPTIONS_SCREEN1X: @@ -687,6 +692,13 @@ namespace MainWindow gpu->Resized(); // easy way to force a clear... break; + case ID_OPTIONS_SKIPUPDATINGMEMORY: + g_Config.bFramebuffersToMem = !g_Config.bFramebuffersToMem; + osm.ShowOnOff(g->T("Skip Updating PSP Memory"), !g_Config.bFramebuffersToMem); + if (gpu) + gpu->Resized(); // easy way to force a clear... + break; + case ID_OPTIONS_SHOWDEBUGSTATISTICS: g_Config.bShowDebugStats = !g_Config.bShowDebugStats; break; @@ -1059,10 +1071,9 @@ namespace MainWindow lastGlobalUIState = globalUIState; HMENU menu = GetMenu(GetHWND()); - EnableMenuItem(menu,ID_EMULATION_RUN, (Core_IsStepping() || globalUIState == UISTATE_PAUSEMENU) ? MF_ENABLED : MF_GRAYED); UINT ingameEnable = globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED; - EnableMenuItem(menu,ID_EMULATION_PAUSE, ingameEnable); + EnableMenuItem(menu,ID_TOGGLE_PAUSE, ingameEnable); EnableMenuItem(menu,ID_EMULATION_STOP, ingameEnable); EnableMenuItem(menu,ID_EMULATION_RESET, ingameEnable); @@ -1182,8 +1193,8 @@ namespace MainWindow void SaveStateActionFinished(bool result, void *userdata) { - if (!result) - MessageBox(0, "Savestate failure. Using savestates between different PPSSPP versions is not supported.", "Sorry", MB_OK); + //if (!result) + // osm.Show( "Savestate failure. Using savestates between different PPSSPP versions is not supported." ); SetCursor(LoadCursor(0, IDC_ARROW)); } diff --git a/Windows/ppsspp.rc b/Windows/ppsspp.rc index 359fa3106b569ca56ab875c5bdd1de30f3d88568..201519bee50c3605ffcda292b2ccb92de20f60a6 100644 GIT binary patch delta 368 zcmZvXKT84u96+BIm5B<91koSGC`f6jL0T%!%Op>aPO(5ZPK%Jr)NF7{`T#AzFQ8jP zgL2TPh}P!%22Rx$7C1!n`UZ=9QxCG1dvSZFlr!;Mg zSYHln%(fxj;)<*rUcW&Gg(Gqp=%mS#BO(LWruE>~#^uqqAnjXk=ztU&c{CEl$dMvL z5)}oNEQcKbO7iJ#J2hhD(NTy?Fg?9!yc1z`#jEQfw}-pw`HFS-Bl;cjrqtxjpx6V*AVLX7}O9%AmUF|Myuw+EMGd9$)?jg*040 delta 214 zcmZqL$kexiX@eRkqvPbp4CToN@j{c&aMVq{z{kZM%HYS~!{E>0$lx-$P*8O8En%U_ zUHk@{-MG@2C$|X6O;$*jV$_*@TG*M{jlp7ap`h&Kgd~y46NJSk-x4<2Y{VDDGFd>l zVKbiymoIM+Ln%WZLkvR+gByeSWXB5K$rFm%KqgGy(x)|9B9RYlhGT^$SUe#~ggt=4 zks*{JcyeI8K5Gd>K10D|#|mSZ?BsWedXw!^tR~AP@l1BAFaU{fPDrxj-)vXpq6PpL CBtiE8 diff --git a/Windows/resource.h b/Windows/resource.h index 032d62c03c9dc1140584a8a4a639a568bcce3071..34e83a4d5e39d3afa3e5c00bacfede895863ed67 100644 GIT binary patch delta 126 zcmV-^0D=GZ!~yoi0kGgPlQ0nmvqUmD1`AXGPXI>%M*vI!MU(3|DU+}`KC?_YY9^D| zKo*nWF$$A#2oe!r08Ri!09XK20AB!8089W+liywylTr^HlaLD%6-xj~08ju`08ju# g06_p$07(E&07sLd7!wIJ05AYC0673Sv$0>r0-vrTumAu6 delta 81 zcmex%gz?)E#tjb)CvWiKVh&~So9t+*JIRoZ(PXlrzU<})hIVX|4{(TqWg3|jCttAS hn4Dl?Fj>b!4a_#umzjLPTx|0siww2R+u{!}0RX