From 1e2982481cb7be3f3fea2dce1db37130089f75ee Mon Sep 17 00:00:00 2001 From: Arisotura Date: Thu, 6 Jan 2022 22:43:00 +0100 Subject: [PATCH] properly report savestate-load failure --- src/NDS.cpp | 3 --- src/frontend/qt_sdl/ROMManager.cpp | 10 +++++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/NDS.cpp b/src/NDS.cpp index 0a094903..c60b4bac 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -807,10 +807,7 @@ bool DoSavestate(Savestate* file) u32 console; file->Var32(&console); if (console != ConsoleType) - { - file->Error = true; return false; - } } file->VarArray(MainRAM, MainRAMMaxSize); diff --git a/src/frontend/qt_sdl/ROMManager.cpp b/src/frontend/qt_sdl/ROMManager.cpp index 351fe999..a0871b78 100644 --- a/src/frontend/qt_sdl/ROMManager.cpp +++ b/src/frontend/qt_sdl/ROMManager.cpp @@ -304,9 +304,17 @@ bool LoadState(std::string filename) failed = true; } - NDS::DoSavestate(state); + bool res = NDS::DoSavestate(state); delete state; + if (!res) + { + failed = true; + state = new Savestate("timewarp.mln", false); + NDS::DoSavestate(state); + delete state; + } + if (failed) return false; if (Config::SavestateRelocSRAM && NDSSave)