Skip saving/loading GBA flash state if SRAM is null

This commit is contained in:
Raphaël Zumer
2019-12-22 11:45:11 -05:00
parent 2abdcc54dd
commit a57ba1368e

View File

@ -96,18 +96,24 @@ void DoSavestate(Savestate* file)
u32 oldlen = SRAMLength; u32 oldlen = SRAMLength;
file->Var32(&SRAMLength); file->Var32(&SRAMLength);
if (SRAMLength != oldlen) if (SRAMLength != oldlen)
{ {
printf("savestate (GBA): VERY BAD!!!! SRAM LENGTH DIFFERENT. %d -> %d\n", oldlen, SRAMLength); // reallocate save memory
printf("oh well. loading it anyway. iojkjkojo\n");
if (oldlen) delete[] SRAM; if (oldlen) delete[] SRAM;
if (SRAMLength) SRAM = new u8[SRAMLength]; if (SRAMLength) SRAM = new u8[SRAMLength];
} }
if (SRAMLength) if (SRAMLength)
{ {
// fill save memory if data is present
file->VarArray(SRAM, SRAMLength); file->VarArray(SRAM, SRAMLength);
} }
else
{
// no save data, nothing left to do
SRAMType = SaveType::S_NULL;
return;
}
// persist some extra state info // persist some extra state info
file->Var8(&SRAMFlashState.bank); file->Var8(&SRAMFlashState.bank);