Skip to content

Commit

Permalink
Pause/Savestate hotkeys should run on the CPU thread to prevent freezing
Browse files Browse the repository at this point in the history
  • Loading branch information
SirMangler authored and TheRhysWyrill committed Jul 9, 2023
1 parent 87ffbdb commit b738e80
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions pcsx2/Hotkeys.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,10 @@ DEFINE_HOTKEY("OpenLeaderboardsList", TRANSLATE_NOOP("Hotkeys", "System"),
FullscreenUI::OpenLeaderboardsWindow();
})
#endif
DEFINE_HOTKEY(
"TogglePause", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Toggle Pause"), [](s32 pressed) {
if (!pressed && VMManager::HasValidVM())
VMManager::SetPaused(VMManager::GetState() != VMState::Paused);
DEFINE_HOTKEY(
"TogglePause", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Toggle Pause"), [](s32 pressed) {
if (!pressed && VMManager::HasValidVM())
Host::RunOnCPUThread([]() { VMManager::SetPaused(VMManager::GetState() != VMState::Paused); });
})
DEFINE_HOTKEY("ToggleFullscreen", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Toggle Fullscreen"),
[](s32 pressed) {
Expand Down Expand Up @@ -262,23 +262,23 @@ DEFINE_HOTKEY("NextSaveStateSlot", TRANSLATE_NOOP("Hotkeys", "Save States"),
DEFINE_HOTKEY("SaveStateToSlot", TRANSLATE_NOOP("Hotkeys", "Save States"),
TRANSLATE_NOOP("Hotkeys", "Save State To Selected Slot"), [](s32 pressed) {
if (!pressed && VMManager::HasValidVM())
VMManager::SaveStateToSlot(s_current_save_slot);
Host::RunOnCPUThread([]() { VMManager::SaveStateToSlot(s_current_save_slot); });
})
DEFINE_HOTKEY("LoadStateFromSlot", TRANSLATE_NOOP("Hotkeys", "Save States"),
TRANSLATE_NOOP("Hotkeys", "Load State From Selected Slot"), [](s32 pressed) {
DEFINE_HOTKEY("LoadStateFromSlot", TRANSLATE_NOOP("Hotkeys", "Save States"),
TRANSLATE_NOOP("Hotkeys", "Load State From Selected Slot"), [](s32 pressed) {
if (!pressed && VMManager::HasValidVM())
HotkeyLoadStateSlot(s_current_save_slot);
Host::RunOnCPUThread([]() { HotkeyLoadStateSlot(s_current_save_slot); });
})

#define DEFINE_HOTKEY_SAVESTATE_X(slotnum, title) \
DEFINE_HOTKEY("SaveStateToSlot" #slotnum, "Save States", title, [](s32 pressed) { \
if (!pressed) \
HotkeySaveStateSlot(slotnum); \
Host::RunOnCPUThread([]() { HotkeySaveStateSlot(slotnum); }); \
})
#define DEFINE_HOTKEY_LOADSTATE_X(slotnum, title) \
DEFINE_HOTKEY("LoadStateFromSlot" #slotnum, "Save States", title, [](s32 pressed) { \
if (!pressed) \
HotkeyLoadStateSlot(slotnum); \
Host::RunOnCPUThread([]() { HotkeyLoadStateSlot(slotnum); }); \
})
DEFINE_HOTKEY_SAVESTATE_X(1, TRANSLATE_NOOP("Hotkeys", "Save State To Slot 1"))
DEFINE_HOTKEY_LOADSTATE_X(1, TRANSLATE_NOOP("Hotkeys", "Load State From Slot 1"))
Expand Down

0 comments on commit b738e80

Please sign in to comment.