aboutsummaryrefslogtreecommitdiff
path: root/src/GPU.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/GPU.h')
-rw-r--r--src/GPU.h37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/GPU.h b/src/GPU.h
index cc62e1e..1bbb9fe 100644
--- a/src/GPU.h
+++ b/src/GPU.h
@@ -147,14 +147,16 @@ bool MakeVRAMFlat_TexPalCoherent(NonStupidBitField<128*1024/VRAMDirtyGranularity
void SyncDirtyFlags();
-typedef struct
+extern u32 OAMDirty;
+extern u32 PaletteDirty;
+
+struct RenderSettings
{
bool Soft_Threaded;
int GL_ScaleFactor;
bool GL_BetterPolygons;
-
-} RenderSettings;
+};
bool Init();
@@ -509,6 +511,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);