diff --git a/Core/CoreParameter.h b/Core/CoreParameter.h index 9e6ec3ef18..2f71d4c10d 100644 --- a/Core/CoreParameter.h +++ b/Core/CoreParameter.h @@ -56,7 +56,7 @@ struct CoreParameter { std::string mountRoot; // If non-empty, and fileToStart is an ELF or PBP, mount this as host0: / umd0:. std::string errorString; - bool startPaused; + bool startBreak; bool printfEmuLog; // writes "emulator:" logging to stdout std::string *collectEmuLog; bool headLess; // Try to avoid messageboxes etc diff --git a/Core/PSPLoaders.cpp b/Core/PSPLoaders.cpp index 7567d0b29c..ecd58d3141 100644 --- a/Core/PSPLoaders.cpp +++ b/Core/PSPLoaders.cpp @@ -260,7 +260,7 @@ bool Load_PSP_ISO(FileLoader *fileLoader, std::string *error_string) { // TODO: We can't use the initial error_string pointer. bool success = __KernelLoadExec(bootpath.c_str(), 0, &PSP_CoreParameter().errorString); if (success && coreState == CORE_POWERUP) { - coreState = PSP_CoreParameter().startPaused ? CORE_STEPPING : CORE_RUNNING; + coreState = PSP_CoreParameter().startBreak ? CORE_STEPPING : CORE_RUNNING; } else { coreState = CORE_ERROR; // TODO: This is a crummy way to communicate the error... @@ -375,7 +375,7 @@ bool Load_PSP_ELF_PBP(FileLoader *fileLoader, std::string *error_string) { std::thread th([finalName] { bool success = __KernelLoadExec(finalName.c_str(), 0, &PSP_CoreParameter().errorString); if (success && coreState == CORE_POWERUP) { - coreState = PSP_CoreParameter().startPaused ? CORE_STEPPING : CORE_RUNNING; + coreState = PSP_CoreParameter().startBreak ? CORE_STEPPING : CORE_RUNNING; } else { coreState = CORE_ERROR; // TODO: This is a crummy way to communicate the error... @@ -393,7 +393,7 @@ bool Load_PSP_GE_Dump(FileLoader *fileLoader, std::string *error_string) { std::thread th([] { bool success = __KernelLoadGEDump("disc0:/data.ppdmp", &PSP_CoreParameter().errorString); if (success && coreState == CORE_POWERUP) { - coreState = PSP_CoreParameter().startPaused ? CORE_STEPPING : CORE_RUNNING; + coreState = PSP_CoreParameter().startBreak ? CORE_STEPPING : CORE_RUNNING; } else { coreState = CORE_ERROR; // TODO: This is a crummy way to communicate the error... diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 85807bd5fa..9b8317ee4e 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -224,7 +224,7 @@ void EmuScreen::bootGame(const std::string &filename) { coreParam.fileToStart = filename; coreParam.mountIso = ""; coreParam.mountRoot = ""; - coreParam.startPaused = false; + coreParam.startBreak = !g_Config.bAutoRun; coreParam.printfEmuLog = false; coreParam.headLess = false; diff --git a/Windows/Debugger/Debugger_Disasm.cpp b/Windows/Debugger/Debugger_Disasm.cpp index bf5f9c7995..86f3645f1a 100644 --- a/Windows/Debugger/Debugger_Disasm.cpp +++ b/Windows/Debugger/Debugger_Disasm.cpp @@ -393,10 +393,9 @@ BOOL CDisasm::DlgProc(UINT message, WPARAM wParam, LPARAM lParam) { CtrlDisAsmView *ptr = CtrlDisAsmView::getFrom(GetDlgItem(m_hDlg,IDC_DISASMVIEW)); CtrlRegisterList *reglist = CtrlRegisterList::getFrom(GetDlgItem(m_hDlg,IDC_REGLIST)); - switch(LOWORD(wParam)) - { - case ID_TOGGLE_PAUSE: - SendMessage(MainWindow::GetHWND(),WM_COMMAND,ID_TOGGLE_PAUSE,0); + switch (LOWORD(wParam)) { + case ID_TOGGLE_BREAK: + SendMessage(MainWindow::GetHWND(), WM_COMMAND, ID_TOGGLE_BREAK, 0); break; case ID_DEBUG_DISPLAYMEMVIEW: diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp index 051d9aa521..280d4bf136 100644 --- a/Windows/MainWindowMenu.cpp +++ b/Windows/MainWindowMenu.cpp @@ -60,10 +60,11 @@ namespace MainWindow { EnableMenuItem(menu, ID_FILE_LOADSTATEFILE, menuEnable); EnableMenuItem(menu, ID_FILE_QUICKSAVESTATE, menuEnable); EnableMenuItem(menu, ID_FILE_QUICKLOADSTATE, menuEnable); - EnableMenuItem(menu, ID_TOGGLE_PAUSE, menuEnable); + EnableMenuItem(menu, ID_EMULATION_PAUSE, menuEnable); EnableMenuItem(menu, ID_EMULATION_STOP, menuEnable); EnableMenuItem(menu, ID_EMULATION_RESET, menuEnable); EnableMenuItem(menu, ID_EMULATION_SWITCH_UMD, umdSwitchEnable); + EnableMenuItem(menu, ID_TOGGLE_BREAK, menuEnable); EnableMenuItem(menu, ID_DEBUG_LOADMAPFILE, menuEnable); EnableMenuItem(menu, ID_DEBUG_SAVEMAPFILE, menuEnable); EnableMenuItem(menu, ID_DEBUG_LOADSYMFILE, menuEnable); @@ -270,7 +271,7 @@ namespace MainWindow { TranslateMenuItem(menu, ID_FILE_EXIT, L"\tAlt+F4"); // Emulation menu - TranslateMenuItem(menu, ID_TOGGLE_PAUSE, L"\tF8", "Pause"); + TranslateMenuItem(menu, ID_EMULATION_PAUSE); TranslateMenuItem(menu, ID_EMULATION_STOP, L"\tCtrl+W"); TranslateMenuItem(menu, ID_EMULATION_RESET, L"\tCtrl+B"); TranslateMenuItem(menu, ID_EMULATION_SWITCH_UMD, L"\tCtrl+U", "Switch UMD"); @@ -281,16 +282,17 @@ namespace MainWindow { TranslateMenuItem(menu, ID_EMULATION_ROTATION_V_R); // Debug menu + TranslateMenuItem(menu, ID_TOGGLE_BREAK, L"\tF8", "Break"); + TranslateMenuItem(menu, ID_DEBUG_BREAKONLOAD); + TranslateMenuItem(menu, ID_DEBUG_IGNOREILLEGALREADS); TranslateMenuItem(menu, ID_DEBUG_LOADMAPFILE); TranslateMenuItem(menu, ID_DEBUG_SAVEMAPFILE); TranslateMenuItem(menu, ID_DEBUG_LOADSYMFILE); TranslateMenuItem(menu, ID_DEBUG_SAVESYMFILE); TranslateMenuItem(menu, ID_DEBUG_RESETSYMBOLTABLE); - TranslateMenuItem(menu, ID_DEBUG_DUMPNEXTFRAME); TranslateMenuItem(menu, ID_DEBUG_TAKESCREENSHOT, L"\tF12"); + TranslateMenuItem(menu, ID_DEBUG_DUMPNEXTFRAME); TranslateMenuItem(menu, ID_DEBUG_SHOWDEBUGSTATISTICS); - TranslateMenuItem(menu, ID_DEBUG_IGNOREILLEGALREADS); - TranslateMenuItem(menu, ID_DEBUG_RUNONLOAD); TranslateMenuItem(menu, ID_DEBUG_DISASSEMBLY, L"\tCtrl+D"); TranslateMenuItem(menu, ID_DEBUG_GEDEBUGGER, L"\tCtrl+G"); TranslateMenuItem(menu, ID_DEBUG_EXTRACTFILE); @@ -582,7 +584,7 @@ namespace MainWindow { ShellExecute(NULL, L"open", ConvertUTF8ToWString(g_Config.memStickDirectory).c_str(), 0, 0, SW_SHOW); break; - case ID_TOGGLE_PAUSE: + case ID_TOGGLE_BREAK: if (GetUIState() == UISTATE_PAUSEMENU) { // Causes hang //NativeMessageReceived("run", ""); @@ -603,6 +605,11 @@ namespace MainWindow { noFocusPause = !noFocusPause; // If we pause, override pause on lost focus break; + case ID_EMULATION_PAUSE: + NativeMessageReceived("pause", ""); + Core_EnableStepping(false); + break; + case ID_EMULATION_STOP: if (Core_IsStepping()) Core_EnableStepping(false); @@ -821,7 +828,7 @@ namespace MainWindow { PostMessage(hWnd, WM_CLOSE, 0, 0); break; - case ID_DEBUG_RUNONLOAD: + case ID_DEBUG_BREAKONLOAD: g_Config.bAutoRun = !g_Config.bAutoRun; break; @@ -1055,7 +1062,7 @@ namespace MainWindow { CHECKITEM(ID_DEBUG_IGNOREILLEGALREADS, g_Config.bIgnoreBadMemAccess); CHECKITEM(ID_DEBUG_SHOWDEBUGSTATISTICS, g_Config.bShowDebugStats); CHECKITEM(ID_OPTIONS_HARDWARETRANSFORM, g_Config.bHardwareTransform); - CHECKITEM(ID_DEBUG_RUNONLOAD, g_Config.bAutoRun); + CHECKITEM(ID_DEBUG_BREAKONLOAD, !g_Config.bAutoRun); CHECKITEM(ID_OPTIONS_VERTEXCACHE, g_Config.bVertexCache); CHECKITEM(ID_OPTIONS_SHOWFPS, g_Config.iShowFPSCounter); CHECKITEM(ID_OPTIONS_FRAMESKIP_AUTO, g_Config.bAutoFrameSkip); @@ -1322,7 +1329,7 @@ namespace MainWindow { lastGlobalUIState = GetUIState(); bool isPaused = Core_IsStepping() && GetUIState() == UISTATE_INGAME; - TranslateMenuItem(menu, ID_TOGGLE_PAUSE, L"\tF8", isPaused ? "Run" : "Pause"); + TranslateMenuItem(menu, ID_TOGGLE_BREAK, L"\tF8", isPaused ? "Run" : "Break"); } // Message handler for about box. diff --git a/Windows/WindowsHost.cpp b/Windows/WindowsHost.cpp index ce306cbfe0..168f87c902 100644 --- a/Windows/WindowsHost.cpp +++ b/Windows/WindowsHost.cpp @@ -244,7 +244,6 @@ void WindowsHost::BootDone() { PostMessage(mainWindow_, WM_USER + 1, 0, 0); SetDebugMode(!g_Config.bAutoRun); - Core_EnableStepping(!g_Config.bAutoRun); } static std::string SymbolMapFilename(const char *currentFilename, const char* ext) { diff --git a/Windows/ppsspp.rc b/Windows/ppsspp.rc index 466752e4df..19bff9a319 100644 --- a/Windows/ppsspp.rc +++ b/Windows/ppsspp.rc @@ -79,7 +79,7 @@ BEGIN "1", ID_OPTIONS_RESOLUTIONDUMMY, VIRTKEY, CONTROL, NOINVERT VK_F7, ID_OPTIONS_FRAMESKIPDUMMY, VIRTKEY, NOINVERT VK_F12, ID_DEBUG_TAKESCREENSHOT, VIRTKEY, NOINVERT - VK_F8, ID_TOGGLE_PAUSE, VIRTKEY, NOINVERT + VK_F8, ID_TOGGLE_BREAK, VIRTKEY, NOINVERT VK_RETURN, ID_OPTIONS_FULLSCREEN, ALT, VIRTKEY, NOINVERT VK_F11, ID_OPTIONS_FULLSCREEN, VIRTKEY, NOINVERT END @@ -94,7 +94,7 @@ BEGIN "2", ID_DEBUG_DISPLAYBREAKPOINTLIST, VIRTKEY, CONTROL, NOINVERT "3", ID_DEBUG_DISPLAYTHREADLIST, VIRTKEY, CONTROL, NOINVERT "4", ID_DEBUG_DISPLAYSTACKFRAMELIST, VIRTKEY, CONTROL, NOINVERT - VK_F7, ID_TOGGLE_PAUSE, VIRTKEY, NOINVERT + VK_F7, ID_TOGGLE_BREAK, VIRTKEY, NOINVERT VK_F8, ID_DEBUG_STEPOUT, VIRTKEY, NOINVERT VK_F9, ID_DEBUG_RUNTOLINE, VIRTKEY, NOINVERT VK_F10, ID_DEBUG_STEPOVER, VIRTKEY, NOINVERT @@ -483,7 +483,7 @@ BEGIN POPUP "Emulation" BEGIN - MENUITEM "Run", ID_TOGGLE_PAUSE + MENUITEM "Pause", ID_EMULATION_PAUSE MENUITEM "Stop", ID_EMULATION_STOP MENUITEM "Reset", ID_EMULATION_RESET MENUITEM "Switch UMD", ID_EMULATION_SWITCH_UMD @@ -498,18 +498,19 @@ BEGIN POPUP "Debug" BEGIN + MENUITEM "Run", ID_TOGGLE_BREAK + MENUITEM "Break on Load", ID_DEBUG_BREAKONLOAD + MENUITEM "Ignore Illegal Reads/Writes", ID_DEBUG_IGNOREILLEGALREADS + MENUITEM SEPARATOR MENUITEM "Load Map File...", ID_DEBUG_LOADMAPFILE MENUITEM "Save Map File...", ID_DEBUG_SAVEMAPFILE MENUITEM "Load .sym File...", ID_DEBUG_LOADSYMFILE MENUITEM "Save .sym File...", ID_DEBUG_SAVESYMFILE MENUITEM "Reset Symbol Table", ID_DEBUG_RESETSYMBOLTABLE MENUITEM SEPARATOR - MENUITEM "Dump Next Frame to Log", ID_DEBUG_DUMPNEXTFRAME MENUITEM "Take Screenshot", ID_DEBUG_TAKESCREENSHOT - MENUITEM SEPARATOR + MENUITEM "Dump Next Frame to Log", ID_DEBUG_DUMPNEXTFRAME MENUITEM "Show Debug Statistics", ID_DEBUG_SHOWDEBUGSTATISTICS - MENUITEM "Ignore Illegal Reads/Writes", ID_DEBUG_IGNOREILLEGALREADS - MENUITEM "Run on Load", ID_DEBUG_RUNONLOAD MENUITEM SEPARATOR MENUITEM "Disassembly", ID_DEBUG_DISASSEMBLY MENUITEM "GE Debugger...", ID_DEBUG_GEDEBUGGER diff --git a/Windows/resource.h b/Windows/resource.h index ca52341e45..06b23bde50 100644 --- a/Windows/resource.h +++ b/Windows/resource.h @@ -176,7 +176,7 @@ #define ID_DISASM_COPYINSTRUCTIONDISASM 40006 #define ID_DISASM_COPYINSTRUCTIONHEX 40007 #define ID_EMULATION_SPEEDLIMIT 40008 -#define ID_TOGGLE_PAUSE 40009 +#define ID_TOGGLE_BREAK 40009 #define ID_EMULATION_STOP 40010 #define ID_FILE_LOAD 40011 #define ID_HELP_ABOUT 40012 @@ -205,7 +205,7 @@ #define ID_FILE_QUICKSAVESTATE_HC 40036 #define ID_FILE_QUICKLOADSTATE_HC 40037 #define ID_OPTIONS_CONTROLS 40038 -#define ID_DEBUG_RUNONLOAD 40039 +#define ID_DEBUG_BREAKONLOAD 40039 #define ID_DEBUG_DUMPNEXTFRAME 40040 #define ID_OPTIONS_VERTEXCACHE 40041 #define ID_OPTIONS_SHOWFPS 40042 @@ -339,6 +339,7 @@ #define ID_OPTIONS_WINDOW8X 40174 #define ID_OPTIONS_WINDOW9X 40175 #define ID_OPTIONS_WINDOW10X 40176 +#define ID_EMULATION_PAUSE 40177 // Dummy option to let the buffered rendering hotkey cycle through all the options. #define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500 @@ -351,7 +352,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 256 -#define _APS_NEXT_COMMAND_VALUE 40177 +#define _APS_NEXT_COMMAND_VALUE 40178 #define _APS_NEXT_CONTROL_VALUE 1200 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/android/jni/TestRunner.cpp b/android/jni/TestRunner.cpp index c58aa8e9e4..2a24811289 100644 --- a/android/jni/TestRunner.cpp +++ b/android/jni/TestRunner.cpp @@ -92,7 +92,7 @@ bool RunTests() { coreParam.graphicsContext = nullptr; coreParam.mountIso = ""; coreParam.mountRoot = baseDirectory + "pspautotests/"; - coreParam.startPaused = false; + coreParam.startBreak = false; coreParam.printfEmuLog = false; coreParam.headLess = true; coreParam.renderWidth = 480; diff --git a/headless/Headless.cpp b/headless/Headless.cpp index da101c27ce..8edea02384 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -333,7 +333,7 @@ int main(int argc, const char* argv[]) coreParameter.enableSound = false; coreParameter.mountIso = mountIso ? mountIso : ""; coreParameter.mountRoot = mountRoot ? mountRoot : ""; - coreParameter.startPaused = false; + coreParameter.startBreak = false; coreParameter.printfEmuLog = !autoCompare; coreParameter.headLess = true; coreParameter.renderWidth = 480; diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp index 0759ffbd97..ace31cefaf 100644 --- a/libretro/libretro.cpp +++ b/libretro/libretro.cpp @@ -549,7 +549,7 @@ bool retro_load_game(const struct retro_game_info *game) { coreParam.enableSound = true; coreParam.fileToStart = std::string(game->path); coreParam.mountIso = ""; - coreParam.startPaused = false; + coreParam.startBreak = false; coreParam.printfEmuLog = true; coreParam.headLess = true; coreParam.unthrottle = true;