aboutsummaryrefslogtreecommitdiff
path: root/src/GPU.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/GPU.h')
-rw-r--r--src/GPU.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/GPU.h b/src/GPU.h
index cc62e1e..377bd9e 100644
--- a/src/GPU.h
+++ b/src/GPU.h
@@ -147,6 +147,9 @@ bool MakeVRAMFlat_TexPalCoherent(NonStupidBitField<128*1024/VRAMDirtyGranularity
void SyncDirtyFlags();
+extern u32 OAMDirty;
+extern u32 PaletteDirty;
+
typedef struct
{
bool Soft_Threaded;
@@ -509,6 +512,35 @@ T ReadVRAM_TexPal(u32 addr)
return ret;
}
+template<typename T>
+T ReadPalette(u32 addr)
+{
+ return *(T*)&Palette[addr & 0x7FF];
+}
+
+template<typename T>
+void WritePalette(u32 addr, T val)
+{
+ addr &= 0x7FF;
+
+ *(T*)&Palette[addr] = val;
+ PaletteDirty |= 1 << (addr / VRAMDirtyGranularity);
+}
+
+template<typename T>
+T ReadOAM(u32 addr)
+{
+ return *(T*)&OAM[addr & 0x7FF];
+}
+
+template<typename T>
+void WriteOAM(u32 addr, T val)
+{
+ addr &= 0x7FF;
+
+ *(T*)&OAM[addr] = val;
+ OAMDirty |= 1 << (addr / 1024);
+}
void SetPowerCnt(u32 val);