notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libretro: empty srm prevention hack
[picodrive.git]
/
platform
/
libretro.c
diff --git
a/platform/libretro.c
b/platform/libretro.c
index
ee15d9c
..
23f0694
100644
(file)
--- a/
platform/libretro.c
+++ b/
platform/libretro.c
@@
-741,14
+741,25
@@
void *retro_get_memory_data(unsigned id)
size_t retro_get_memory_size(unsigned id)
{
size_t retro_get_memory_size(unsigned id)
{
+ unsigned int i;
+ int sum;
+
if (id != RETRO_MEMORY_SAVE_RAM)
return 0;
if (PicoAHW & PAHW_MCD)
// bram
return 0x2000;
if (id != RETRO_MEMORY_SAVE_RAM)
return 0;
if (PicoAHW & PAHW_MCD)
// bram
return 0x2000;
- else
+
+ if (Pico.m.frame_count == 0)
return SRam.size;
return SRam.size;
+
+ // if game doesn't write to sram, don't report it to
+ // libretro so that RA doesn't write out zeroed .srm
+ for (i = 0, sum = 0; i < SRam.size; i++)
+ sum |= SRam.data[i];
+
+ return (sum != 0) ? SRam.size : 0;
}
void retro_reset(void)
}
void retro_reset(void)