diff options
Diffstat (limited to 'src/NDS.cpp')
-rw-r--r-- | src/NDS.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/NDS.cpp b/src/NDS.cpp index 8b5912c..48b2ec4 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -608,6 +608,8 @@ bool DoSavestate(Savestate* file) file->VarArray(ROMSeed0, 2*8); file->VarArray(ROMSeed1, 2*8); + file->Var16(&WifiWaitCnt); + file->VarArray(IME, 2*sizeof(u32)); file->VarArray(IE, 2*sizeof(u32)); file->VarArray(IF, 2*sizeof(u32)); @@ -644,7 +646,6 @@ bool DoSavestate(Savestate* file) file->VarArray(DMA9Fill, 4*sizeof(u32)); - //file->VarArray(SchedList, sizeof(SchedList)); if (!DoSavestate_Scheduler(file)) return false; file->Var32(&SchedListMask); file->Var32((u32*)&CurIterationCycles); @@ -667,6 +668,18 @@ bool DoSavestate(Savestate* file) MapSharedWRAM(WRAMCnt); } + if (!file->Saving) + { + GPU::DisplaySwap(PowerControl9>>15); + + InitTimings(); + SetGBASlotTimings(); + + u16 tmp = WifiWaitCnt; + WifiWaitCnt = 0xFFFF; + SetWifiWaitCnt(tmp); // force timing table update + } + ARM9->DoSavestate(file); ARM7->DoSavestate(file); @@ -677,11 +690,6 @@ bool DoSavestate(Savestate* file) RTC::DoSavestate(file); Wifi::DoSavestate(file); - if (!file->Saving) - { - GPU::DisplaySwap(PowerControl9>>15); - } - return true; } |