Permalink
Browse files

Libretro: Fix saving in GB games (fixes #486)

  • Loading branch information...
endrift committed Jan 5, 2017
1 parent 75f6ff8 commit dbbebc45954d881dda066299aa4ce2855935fb8c
Showing with 22 additions and 12 deletions.
  1. +1 −0 CHANGES
  2. +21 −12 src/platform/libretro/libretro.c
View
@@ -2,6 +2,7 @@
Bugfixes:
- ARM7: Fix MLA/*MULL/*MLAL timing
- GBA: Fix multiboot ROM loading
+ - Libretro: Fix saving in GB games (fixes mgba.io/i/486)
0.5.2: (2016-12-31)
Bugfixes:
@@ -524,19 +524,28 @@ size_t retro_get_memory_size(unsigned id) {
if (id != RETRO_MEMORY_SAVE_RAM) {
return 0;
}
- switch (((struct GBA*) core->board)->memory.savedata.type) {
- case SAVEDATA_AUTODETECT:
- case SAVEDATA_FLASH1M:
- return SIZE_CART_FLASH1M;
- case SAVEDATA_FLASH512:
- return SIZE_CART_FLASH512;
- case SAVEDATA_EEPROM:
- return SIZE_CART_EEPROM;
- case SAVEDATA_SRAM:
- return SIZE_CART_SRAM;
- case SAVEDATA_FORCE_NONE:
- return 0;
+#ifdef M_CORE_GBA
+ if (core->platform(core) == PLATFORM_GBA) {
+ switch (((struct GBA*) core->board)->memory.savedata.type) {
+ case SAVEDATA_AUTODETECT:
+ case SAVEDATA_FLASH1M:
+ return SIZE_CART_FLASH1M;
+ case SAVEDATA_FLASH512:
+ return SIZE_CART_FLASH512;
+ case SAVEDATA_EEPROM:
+ return SIZE_CART_EEPROM;
+ case SAVEDATA_SRAM:
+ return SIZE_CART_SRAM;
+ case SAVEDATA_FORCE_NONE:
+ return 0;
+ }
}
+#endif
+#ifdef M_CORE_GB
+ if (core->platform(core) == PLATFORM_GB) {
+ return ((struct GB*) core->board)->sramSize;
+ }
+#endif
return 0;
}

0 comments on commit dbbebc4

Please sign in to comment.