From 9dbca4f26d8c44eb205510e8ffa94cc4f779178f Mon Sep 17 00:00:00 2001 From: Sour Date: Sun, 17 May 2020 17:27:49 -0400 Subject: [PATCH] Libretro: Fixed save ram not being saved/loaded by frontend --- Core/BatteryManager.cpp | 7 +++++++ Libretro/libretro.cpp | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Core/BatteryManager.cpp b/Core/BatteryManager.cpp index b5837d6..23b0172 100644 --- a/Core/BatteryManager.cpp +++ b/Core/BatteryManager.cpp @@ -25,6 +25,13 @@ void BatteryManager::SetBatteryRecorder(shared_ptr recorder) void BatteryManager::SaveBattery(string extension, uint8_t* data, uint32_t length) { +#ifdef LIBRETRO + if(extension == ".srm") { + //Disable .srm files for libretro, let the frontend handle save ram + return; + } +#endif + ofstream out(GetBasePath() + extension, ios::binary); if(out) { out.write((char*)data, length); diff --git a/Libretro/libretro.cpp b/Libretro/libretro.cpp index cb20a85..e6fa853 100644 --- a/Libretro/libretro.cpp +++ b/Libretro/libretro.cpp @@ -677,7 +677,7 @@ extern "C" { RETRO_API size_t retro_get_memory_size(unsigned id) { switch(id) { - case RETRO_MEMORY_SAVE_RAM: _console->GetCartridge()->DebugGetSaveRamSize(); break; + case RETRO_MEMORY_SAVE_RAM: return _console->GetCartridge()->DebugGetSaveRamSize(); break; case RETRO_MEMORY_SYSTEM_RAM: return MemoryManager::WorkRamSize; } return 0;