From ecce9baffab48486422b1c2f50cc558ae4ac6017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 30 Jul 2026 18:44:44 +0200 Subject: [PATCH] Fix some pause screen issues --- Core/HLE/sceUtility.cpp | 29 ++++++++++------------------- UI/PauseScreen.cpp | 12 +++++++----- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 2f351f7442..864bfb0496 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -1429,7 +1429,7 @@ static int sceUtilityGameSharingUpdate(int animSpeed) { return hleLogWarning(Log::sceUtility, SCE_ERROR_UTILITY_WRONG_TYPE, "wrong dialog type"); } - return hleLogError(Log::sceUtility, 0, "UNIMPL sceUtilityGameSharingUpdate(%i)", animSpeed); + return hleLogError(Log::sceUtility, 0, "UNIMPL"); } static int sceUtilityGameSharingGetStatus() { @@ -1441,30 +1441,21 @@ static int sceUtilityGameSharingGetStatus() { return hleLogError(Log::sceUtility, 0, "UNIMPL"); } -static u32 sceUtilityLoadUsbModule(u32 module) -{ - if (module < 1 || module > 5) - { - ERROR_LOG(Log::sceUtility, "sceUtilityLoadUsbModule(%i): invalid module id", module); +static u32 sceUtilityLoadUsbModule(u32 module) { + if (module < 1 || module > 5) { + return hleLogError(Log::sceUtility, 0, "invalid module id"); } - - ERROR_LOG_REPORT(Log::sceUtility, "UNIMPL sceUtilityLoadUsbModule(%i)", module); - return hleNoLog(0); + return hleLogWarning(Log::sceUtility, 0, "UNIMPL"); } -static u32 sceUtilityUnloadUsbModule(u32 module) -{ - if (module < 1 || module > 5) - { - ERROR_LOG(Log::sceUtility, "sceUtilityUnloadUsbModule(%i): invalid module id", module); +static u32 sceUtilityUnloadUsbModule(u32 module) { + if (module < 1 || module > 5) { + return hleLogError(Log::sceUtility, 0, "invalid module id"); } - - ERROR_LOG_REPORT(Log::sceUtility, "UNIMPL sceUtilityUnloadUsbModule(%i)", module); - return hleNoLog(0); + return hleLogWarning(Log::sceUtility, 0, "UNIMPL"); } -const HLEFunction sceUtility[] = -{ +const HLEFunction sceUtility[] = { {0X1579A159, &WrapU_U, "sceUtilityLoadNetModule", 'x', "x" }, {0X64D50C56, &WrapU_U, "sceUtilityUnloadNetModule", 'x', "x" }, diff --git a/UI/PauseScreen.cpp b/UI/PauseScreen.cpp index a07222fbb8..0310e3f941 100644 --- a/UI/PauseScreen.cpp +++ b/UI/PauseScreen.cpp @@ -334,18 +334,19 @@ void SaveSlotView::OnSaveState(UI::EventParams &e) { void GamePauseScreen::update() { UpdateUIState(UISTATE_PAUSEMENU); - if (!firstFrame_ && g_controlMapper.PollPauseTrigger()) { - TriggerFinish(DR_BACK); - } UIBaseDialogScreen::update(); - firstFrame_ = false; - { std::lock_guard lock(finishNextFrameMutex_); + if (!firstFrame_ && g_controlMapper.PollPauseTrigger()) { + finishNextFrame_ = true; + finishNextFrameResult_ = DR_BACK; + } + firstFrame_ = false; if (finishNextFrame_) { TriggerFinish(finishNextFrameResult_); finishNextFrame_ = false; + finishNextFrameResult_ = DR_BACK; } } @@ -828,6 +829,7 @@ void GamePauseScreen::dialogFinished(const Screen *dialog, DialogResult dr) { if (dr == DR_OK) { std::lock_guard lock(finishNextFrameMutex_); finishNextFrame_ = true; + finishNextFrameResult_ = DR_BACK; } else if (dr != DR_CANCEL && dr != DR_BACK) { // Just go back to the pause menu, but refresh the savestate thumbnails in case something changed. SaveState::Rescan(saveStatePrefix_);