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
This commit is contained in:
Jesse Talavera-Greenberg
2023-03-27 16:36:26 -04:00
committed by GitHub
parent 808292e424
commit b078ca802f
5 changed files with 99 additions and 0 deletions

View File

@ -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;
}
}