aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GPU.cpp4
-rw-r--r--src/GPU.h7
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()
diff --git a/src/GPU.h b/src/GPU.h
index 2f71da6..cc62e1e 100644
--- a/src/GPU.h
+++ b/src/GPU.h
@@ -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);
};