mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-01 11:29:40 -06:00
* store all 32 matrix stack entries in savestates instead of 31.
* bump savestate version up. will break compatibility, but the alternative would be guessing the missing matrix entries somehow, so blarg. * avoid relocating the savefile if loading a savestate fails.
This commit is contained in:
@ -922,6 +922,8 @@ void LoadState(int slot)
|
||||
NDS::DoSavestate(backup);
|
||||
delete backup;
|
||||
|
||||
bool failed = false;
|
||||
|
||||
Savestate* state = new Savestate(filename, false);
|
||||
if (state->Error)
|
||||
{
|
||||
@ -931,26 +933,30 @@ void LoadState(int slot)
|
||||
|
||||
// current state might be crapoed, so restore from sane backup
|
||||
state = new Savestate("timewarp.mln", false);
|
||||
failed = true;
|
||||
}
|
||||
|
||||
NDS::DoSavestate(state);
|
||||
delete state;
|
||||
|
||||
if (Config::SavestateRelocSRAM && ROMPath[0]!='\0')
|
||||
if (!failed)
|
||||
{
|
||||
strncpy(PrevSRAMPath, SRAMPath, 1024);
|
||||
if (Config::SavestateRelocSRAM && ROMPath[0]!='\0')
|
||||
{
|
||||
strncpy(PrevSRAMPath, SRAMPath, 1024);
|
||||
|
||||
strncpy(SRAMPath, filename, 1019);
|
||||
int len = strlen(SRAMPath);
|
||||
strcpy(&SRAMPath[len], ".sav");
|
||||
SRAMPath[len+4] = '\0';
|
||||
strncpy(SRAMPath, filename, 1019);
|
||||
int len = strlen(SRAMPath);
|
||||
strcpy(&SRAMPath[len], ".sav");
|
||||
SRAMPath[len+4] = '\0';
|
||||
|
||||
NDS::RelocateSave(SRAMPath, false);
|
||||
NDS::RelocateSave(SRAMPath, false);
|
||||
}
|
||||
|
||||
SavestateLoaded = true;
|
||||
uiMenuItemEnable(MenuItem_UndoStateLoad);
|
||||
}
|
||||
|
||||
SavestateLoaded = true;
|
||||
uiMenuItemEnable(MenuItem_UndoStateLoad);
|
||||
|
||||
EmuRunning = prevstatus;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user