mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-25 15:19:53 -06:00
Skip saving/loading GBA flash state if SRAM is null
This commit is contained in:
@ -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);
|
||||||
|
Reference in New Issue
Block a user