Implement PPC write-back data cache

This commit is contained in:
TheLordScruffy 2022-10-17 15:28:29 -04:00
commit e97d380437
22 changed files with 559 additions and 132 deletions

View file

@ -95,7 +95,7 @@ static size_t s_state_writes_in_queue;
static std::condition_variable s_state_write_queue_is_empty;
// Don't forget to increase this after doing changes on the savestate system
constexpr u32 STATE_VERSION = 156; // Last changed in PR 11184
constexpr u32 STATE_VERSION = 157; // Last changed in PR 11183
// Maps savestate versions to Dolphin versions.
// Versions after 42 don't need to be added to this list,
@ -223,14 +223,18 @@ static void DoState(PointerWrap& p)
g_video_backend->DoState(p);
p.DoMarker("video_backend");
PowerPC::DoState(p);
p.DoMarker("PowerPC");
// CoreTiming needs to be restored before restoring Hardware because
// the controller code might need to schedule an event if the controller has changed.
system.GetCoreTiming().DoState(p);
p.DoMarker("CoreTiming");
// HW needs to be restored before PowerPC because the data cache might need to be flushed.
HW::DoState(p);
p.DoMarker("HW");
PowerPC::DoState(p);
p.DoMarker("PowerPC");
if (SConfig::GetInstance().bWii)
Wiimote::DoState(p);
p.DoMarker("Wiimote");