aboutsummaryrefslogtreecommitdiff
path: root/src/GBACart.cpp
diff options
context:
space:
mode:
authorJesse Talavera-Greenberg <jesse@jesse.tg>2023-03-27 16:36:26 -0400
committerGitHub <noreply@github.com>2023-03-27 22:36:26 +0200
commitb078ca802f8f38e5602c8ce89d9b340ff0a6aacd (patch)
tree6b55e20ee7b733e5305648626279c64153696b27 /src/GBACart.cpp
parent808292e424a2554b7e2b3f0fd0e86120c1dbabd5 (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.cpp29
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;
+}
+
}