diff --git a/Core/Dialog/PSPSaveDialog.cpp b/Core/Dialog/PSPSaveDialog.cpp index c123c77032..c4396c263f 100644 --- a/Core/Dialog/PSPSaveDialog.cpp +++ b/Core/Dialog/PSPSaveDialog.cpp @@ -379,7 +379,7 @@ int PSPSaveDialog::Update() if (status != SCE_UTILITY_STATUS_RUNNING) { - return 0; + return SCE_ERROR_UTILITY_INVALID_STATUS; } if (!param.GetPspParam()) { @@ -798,6 +798,9 @@ int PSPSaveDialog::Update() int PSPSaveDialog::Shutdown() { + if (status != SCE_UTILITY_STATUS_FINISHED) + return SCE_ERROR_UTILITY_INVALID_STATUS; + PSPDialog::Shutdown(); param.SetPspParam(0); diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 1af0475563..2246f4d0a3 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -124,7 +124,10 @@ int sceUtilitySavedataUpdate(int animSpeed) } DEBUG_LOG(HLE,"sceUtilitySavedataUpdate(%d)", animSpeed); - return hleDelayResult(saveDialog.Update(), "savedata update", 300); + int result = saveDialog.Update(); + if (result >= 0) + return hleDelayResult(result, "savedata update", 300); + return result; } #define PSP_AV_MODULE_AVCODEC 0