notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
get rid of the silly unzip_stream
[picodrive.git]
/
platform
/
libretro.c
diff --git
a/platform/libretro.c
b/platform/libretro.c
index
f59cf67
..
23f0694
100644
(file)
--- a/
platform/libretro.c
+++ b/
platform/libretro.c
@@
-500,7
+500,7
@@
static unsigned int disk_get_image_index(void)
static bool disk_set_image_index(unsigned int index)
{
static bool disk_set_image_index(unsigned int index)
{
- cd_img_type cd_type;
+
enum
cd_img_type cd_type;
int ret;
if (index >= sizeof(disks) / sizeof(disks[0]))
int ret;
if (index >= sizeof(disks) / sizeof(disks[0]))
@@
-521,7
+521,7
@@
static bool disk_set_image_index(unsigned int index)
ret = -1;
cd_type = PicoCdCheck(disks[index].fname, NULL);
if (cd_type != CIT_NOT_CD)
ret = -1;
cd_type = PicoCdCheck(disks[index].fname, NULL);
if (cd_type != CIT_NOT_CD)
- ret =
Insert_CD
(disks[index].fname, cd_type);
+ ret =
cdd_load
(disks[index].fname, cd_type);
if (ret != 0) {
lprintf("Load failed, invalid CD image?\n");
return 0;
if (ret != 0) {
lprintf("Load failed, invalid CD image?\n");
return 0;
@@
-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)
@@
-882,7
+893,6
@@
void retro_init(void)
#endif
PsndRate = 44100;
PicoAutoRgnOrder = 0x184; // US, EU, JP
#endif
PsndRate = 44100;
PicoAutoRgnOrder = 0x184; // US, EU, JP
- PicoCDBuffers = 0;
vout_width = 320;
vout_height = 240;
vout_width = 320;
vout_height = 240;