diff options
Diffstat (limited to 'src/CP15.cpp')
-rw-r--r-- | src/CP15.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/CP15.cpp b/src/CP15.cpp index 2187fae..fb0da0d 100644 --- a/src/CP15.cpp +++ b/src/CP15.cpp @@ -66,14 +66,24 @@ void ARMv5::CP15DoSavestate(Savestate* file) file->Var32(&DTCMSetting); file->Var32(&ITCMSetting); + file->VarArray(ITCM, 0x8000); + file->VarArray(DTCM, 0x4000); + + file->Var32(&PU_CodeCacheable); + file->Var32(&PU_DataCacheable); + file->Var32(&PU_DataCacheWrite); + + file->Var32(&PU_CodeRW); + file->Var32(&PU_DataRW); + + file->VarArray(PU_Region, 8*sizeof(u32)); + if (!file->Saving) { UpdateDTCMSetting(); UpdateITCMSetting(); + UpdatePURegions(); } - - file->VarArray(ITCM, 0x8000); - file->VarArray(DTCM, 0x4000); } @@ -225,6 +235,8 @@ void ARMv5::UpdatePURegions() //UpdateRegionTimings(start<<12, end<<12); } + // TODO: this is way unoptimized + // should be okay unless the game keeps changing shit, tho UpdateRegionTimings(0x00000000, 0xFFFFFFFF); } |