Merge pull request #37 from DSkywalk/master

allow request RETRO_MEMORY_SYSTEM_RAM to get cheevos
This commit is contained in:
Twinaphex
2016-03-11 07:16:17 +01:00

View File

@@ -1377,28 +1377,56 @@ unsigned retro_get_region(void)
return FSettings.PAL ? RETRO_REGION_PAL : RETRO_REGION_NTSC; return FSettings.PAL ? RETRO_REGION_PAL : RETRO_REGION_NTSC;
} }
void *retro_get_memory_data(unsigned id)
void *retro_get_memory_data(unsigned type)
{ {
if (id != RETRO_MEMORY_SAVE_RAM) uint8_t* data;
return NULL;
if (iNESCart.battery) switch(type)
return iNESCart.SaveGame[0]; {
if (UNIFCart.battery) case RETRO_MEMORY_SAVE_RAM:
return UNIFCart.SaveGame[0]; if (iNESCart.battery)
return iNESCart.SaveGame[0];
return 0; else if (UNIFCart.battery)
return UNIFCart.SaveGame[0];
else
data = NULL;
break;
case RETRO_MEMORY_SYSTEM_RAM:
// TODO: add ExWRAM(0x2000) support ?
data = RAM;
break;
default:
data = NULL;
break;
}
return data;
} }
size_t retro_get_memory_size(unsigned id) size_t retro_get_memory_size(unsigned type)
{ {
if (id != RETRO_MEMORY_SAVE_RAM) unsigned size;
return 0;
if (iNESCart.battery) switch(type)
return iNESCart.SaveGameLen[0]; {
if (UNIFCart.battery) case RETRO_MEMORY_SAVE_RAM:
return UNIFCart.SaveGameLen[0]; if (iNESCart.battery)
size = iNESCart.SaveGameLen[0];
return 0; else if (UNIFCart.battery)
size = UNIFCart.SaveGameLen[0];
else
size = 0;
break;
case RETRO_MEMORY_SYSTEM_RAM:
// TODO: detect ExWRAM(0x2000) ?
// NES BASE RAM (0x800)
size = 0x800;
break;
default:
size = 0;
break;
}
return size;
} }