diff options
-rw-r--r-- | src/GPU.cpp | 4 | ||||
-rw-r--r-- | src/GPU.h | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/GPU.cpp b/src/GPU.cpp index a3b7934..35ebaba 100644 --- a/src/GPU.cpp +++ b/src/GPU.cpp @@ -182,6 +182,8 @@ void ResetVRAMCache() VRAMDirty_BBGExtPal.Reset(); VRAMDirty_AOBJExtPal.Reset(); VRAMDirty_BOBJExtPal.Reset(); + VRAMDirty_Texture.Reset(); + VRAMDirty_TexPal.Reset(); memset(VRAMFlat_ABG, 0, sizeof(VRAMFlat_ABG)); memset(VRAMFlat_BBG, 0, sizeof(VRAMFlat_BBG)); @@ -191,6 +193,8 @@ void ResetVRAMCache() memset(VRAMFlat_BBGExtPal, 0, sizeof(VRAMFlat_BBGExtPal)); memset(VRAMFlat_AOBJExtPal, 0, sizeof(VRAMFlat_AOBJExtPal)); memset(VRAMFlat_BOBJExtPal, 0, sizeof(VRAMFlat_BOBJExtPal)); + memset(VRAMFlat_Texture, 0, sizeof(VRAMFlat_Texture)); + memset(VRAMFlat_TexPal, 0, sizeof(VRAMFlat_TexPal)); } void Reset() @@ -93,7 +93,12 @@ struct VRAMTrackingSet void Reset() { - memset(Mapping, 0, sizeof(Mapping)); + for (int i = 0; i < Size / MappingGranularity; i++) + { + // this is not a real VRAM bank + // so it will always be a mismatch => the bank will be completely invalidated + Mapping[i] = 0x8000; + } } NonStupidBitField<Size/VRAMDirtyGranularity> DeriveState(u32* currentMappings); }; |