Load/save atari state from RetroArch

Retroarch states
This commit is contained in:
Mariano
2020-01-01 23:19:59 +01:00
parent 8592478590
commit 41ed217ca1
3 changed files with 135 additions and 49 deletions
+26 -3
View File
@@ -48,6 +48,8 @@ extern void texture_uninit(void);
extern void Emu_init();
extern void Emu_uninit();
extern void input_gui(void);
extern int StateSav_SaveAtariStateMem(char** data, size_t* size);
extern int StateSav_ReadAtariStateMem(const char* data, size_t size);
const char *retro_save_directory;
const char *retro_system_directory;
@@ -736,17 +738,38 @@ bool retro_load_game_special(unsigned type, const struct retro_game_info *info,
size_t retro_serialize_size(void)
{
return 0;
char* buf = NULL;
size_t size = 0;
bool ret = StateSav_SaveAtariStateMem(&buf, &size) == TRUE;
free(buf);
if (!ret || size == 0)
return 0;
return size;
}
bool retro_serialize(void *data_, size_t size)
{
return false;
char* buf = NULL;
size_t serializeSize = 0;
bool ret = StateSav_SaveAtariStateMem(&buf, &serializeSize) == TRUE;
if (!ret || serializeSize != size)
{
free(buf);
return false;
}
memcpy(data_, buf, size);
free(buf);
return true;
}
bool retro_unserialize(const void *data_, size_t size)
{
return false;
return StateSav_ReadAtariStateMem(data_, size) == TRUE;
}
void *retro_get_memory_data(unsigned id)