From a57ba1368e151484908052d696aa90f28928cfe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Sun, 22 Dec 2019 11:45:11 -0500 Subject: [PATCH] Skip saving/loading GBA flash state if SRAM is null --- src/GBACart.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/GBACart.cpp b/src/GBACart.cpp index 1829ca7cba..f6bed86134 100644 --- a/src/GBACart.cpp +++ b/src/GBACart.cpp @@ -96,18 +96,24 @@ void DoSavestate(Savestate* file) u32 oldlen = SRAMLength; file->Var32(&SRAMLength); + if (SRAMLength != oldlen) { - printf("savestate (GBA): VERY BAD!!!! SRAM LENGTH DIFFERENT. %d -> %d\n", oldlen, SRAMLength); - printf("oh well. loading it anyway. iojkjkojo\n"); - + // reallocate save memory if (oldlen) delete[] SRAM; if (SRAMLength) SRAM = new u8[SRAMLength]; } if (SRAMLength) { + // fill save memory if data is present file->VarArray(SRAM, SRAMLength); } + else + { + // no save data, nothing left to do + SRAMType = SaveType::S_NULL; + return; + } // persist some extra state info file->Var8(&SRAMFlashState.bank);