diff options
author | Jesse Talavera-Greenberg <jesse@jesse.tg> | 2023-03-27 16:36:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-27 22:36:26 +0200 |
commit | b078ca802f8f38e5602c8ce89d9b340ff0a6aacd (patch) | |
tree | 6b55e20ee7b733e5305648626279c64153696b27 /src/GBACart.cpp | |
parent | 808292e424a2554b7e2b3f0fd0e86120c1dbabd5 (diff) |
Expose SRAM pointers for frontends that manage save data their own way (#1643)
* Add a clarifying comment
- In case it saves some poor bastard hours of fruitless work
* Expose GBA and NDS save memory
- Add GetSaveMemory and GetSaveMemoryLength functions
- Where unsupported, they return null and zero
Diffstat (limited to 'src/GBACart.cpp')
-rw-r--r-- | src/GBACart.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/GBACart.cpp b/src/GBACart.cpp index 3f42326..86effc9 100644 --- a/src/GBACart.cpp +++ b/src/GBACart.cpp @@ -100,6 +100,15 @@ void CartCommon::SRAMWrite(u32 addr, u8 val) {
}
+u8* CartCommon::GetSaveMemory() const
+{
+ return nullptr;
+}
+
+u32 CartCommon::GetSaveMemoryLength() const
+{
+ return 0;
+}
CartGame::CartGame(u8* rom, u32 len) : CartCommon()
{
@@ -334,6 +343,16 @@ void CartGame::SRAMWrite(u32 addr, u8 val) }
}
+u8* CartGame::GetSaveMemory() const
+{
+ return SRAM;
+}
+
+u32 CartGame::GetSaveMemoryLength() const
+{
+ return SRAMLength;
+}
+
void CartGame::ProcessGPIO()
{
}
@@ -878,4 +897,14 @@ void SRAMWrite(u32 addr, u8 val) if (Cart) Cart->SRAMWrite(addr, val);
}
+u8* GetSaveMemory()
+{
+ return Cart ? Cart->GetSaveMemory() : nullptr;
+}
+
+u32 GetSaveMemoryLength()
+{
+ return Cart ? Cart->GetSaveMemoryLength() : 0;
+}
+
}
|