Fix savestates if a device is changed after a savestate is made

This commit is contained in:
Chris Burgener
2016-02-23 20:04:18 -05:00
parent 6513062144
commit 7991605ad9
3 changed files with 19 additions and 6 deletions

View File

@ -71,7 +71,7 @@ static Common::Event g_compressAndDumpStateSyncEvent;
static std::thread g_save_thread;
// Don't forget to increase this after doing changes on the savestate system
static const u32 STATE_VERSION = 51; // Last changed in PR 3530
static const u32 STATE_VERSION = 52; // Last changed in PR 3667
// Maps savestate versions to Dolphin versions.
// Versions after 42 don't need to be added to this list,
@ -184,10 +184,12 @@ static std::string DoState(PointerWrap& p)
PowerPC::DoState(p);
p.DoMarker("PowerPC");
HW::DoState(p);
p.DoMarker("HW");
// CoreTiming needs to be restored before restoring Hardware because
// the controller code might need to schedule an event if the controller has changed.
CoreTiming::DoState(p);
p.DoMarker("CoreTiming");
HW::DoState(p);
p.DoMarker("HW");
Movie::DoState(p);
p.DoMarker("Movie");