diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 603041356a..7447f33170 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -2848,8 +2848,13 @@ void Emulator::Kill(bool allow_autoexit, bool savestate, savestate_stage* save_s if (!g_cfg.savestate.compatible_mode) { + rsx::overlays::queue_message(localized_string_id::SAVESTATE_FAILED_DUE_TO_MISSING_SPU_SETTING); sys_log.error("Enabling SPU Savestates-Compatible Mode in Advanced tab may fix this."); } + else + { + rsx::overlays::queue_message(localized_string_id::SAVESTATE_FAILED_DUE_TO_SPU); + } m_emu_state_close_pending = false; @@ -2878,6 +2883,8 @@ void Emulator::Kill(bool allow_autoexit, bool savestate, savestate_stage* save_s if (vdec_error) { + rsx::overlays::queue_message(localized_string_id::SAVESTATE_FAILED_DUE_TO_VDEC); + sys_log.error("Failed to savestate: HLE VDEC (video decoder) context(s) exist." "\nLLE libvdec.sprx by selecting it in Advanced tab -> Firmware Libraries." "\nYou need to close the game for it to take effect." @@ -2886,6 +2893,8 @@ void Emulator::Kill(bool allow_autoexit, bool savestate, savestate_stage* save_s if (savedata_error) { + rsx::overlays::queue_message(localized_string_id::SAVESTATE_FAILED_DUE_TO_SAVEDATA); + sys_log.error("Failed to savestate: Savedata operation is active." "\nYour best chance is to wait for the current game saving operation to finish and retry." "\nThe game is probably displaying a saving cicrle or other gesture to indicate that it is saving."); diff --git a/rpcs3/Emu/localized_string_id.h b/rpcs3/Emu/localized_string_id.h index 6657c28f60..6e2bb3c2dc 100644 --- a/rpcs3/Emu/localized_string_id.h +++ b/rpcs3/Emu/localized_string_id.h @@ -190,4 +190,8 @@ enum class localized_string_id EMULATION_PAUSED_RESUME_WITH_START, EMULATION_RESUMING, EMULATION_FROZEN, + SAVESTATE_FAILED_DUE_TO_VDEC, + SAVESTATE_FAILED_DUE_TO_SAVEDATA, + SAVESTATE_FAILED_DUE_TO_SPU, + SAVESTATE_FAILED_DUE_TO_MISSING_SPU_SETTING, }; diff --git a/rpcs3/rpcs3qt/localized_emu.h b/rpcs3/rpcs3qt/localized_emu.h index d69f567c36..5d884422f5 100644 --- a/rpcs3/rpcs3qt/localized_emu.h +++ b/rpcs3/rpcs3qt/localized_emu.h @@ -209,6 +209,10 @@ private: case localized_string_id::EMULATION_PAUSED_RESUME_WITH_START: return tr("Press and hold the START button to resume"); case localized_string_id::EMULATION_RESUMING: return tr("Resuming...!"); case localized_string_id::EMULATION_FROZEN: return tr("The PS3 application has likely crashed, you can close it."); + case localized_string_id::SAVESTATE_FAILED_DUE_TO_SAVEDATA: return tr("SaveState failed: Game saving is in progress, wait until finished."); + case localized_string_id::SAVESTATE_FAILED_DUE_TO_VDEC: return tr("SaveState failed: VDEC-base video/cutscenes are in order, wait for them to end or enable libvdec.sprx."); + case localized_string_id::SAVESTATE_FAILED_DUE_TO_MISSING_SPU_SETTING: return tr("SaveState failed: Failed to lock SPU state, enabling SPU-Compatible mode may fix it."); + case localized_string_id::SAVESTATE_FAILED_DUE_TO_SPU: return tr("SaveState failed: Failed to lock SPU state, using SPU ASMJIT will fix it."); case localized_string_id::INVALID: return tr("Invalid"); default: return tr("Unknown"); }