mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 12:40:23 +00:00
fix save sorting for cores that do not use the sram interface and make the process more reliable
This commit is contained in:
parent
d7eab06939
commit
c68c93fa79
@ -449,7 +449,7 @@ static void event_init_controllers(void)
|
||||
{
|
||||
/* If we're trying to connect a completely unknown device,
|
||||
* revert back to JOYPAD. */
|
||||
|
||||
|
||||
if (device != RETRO_DEVICE_JOYPAD && device != RETRO_DEVICE_NONE)
|
||||
{
|
||||
/* Do not fix settings->input.libretro_device[i],
|
||||
@ -484,18 +484,20 @@ static void event_init_controllers(void)
|
||||
static void event_deinit_core(bool reinit)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
pretro_unload_game();
|
||||
pretro_deinit();
|
||||
|
||||
if (reinit)
|
||||
event_command(EVENT_CMD_DRIVERS_DEINIT);
|
||||
|
||||
|
||||
if(global->overrides_active)
|
||||
{
|
||||
config_unload_override();
|
||||
global->overrides_active = false;
|
||||
}
|
||||
|
||||
pretro_set_environment(rarch_environment_cb);
|
||||
uninit_libretro_sym();
|
||||
}
|
||||
@ -530,7 +532,7 @@ static bool event_load_save_files(void)
|
||||
for (i = 0; i < global->savefiles->size; i++)
|
||||
load_ram_file(global->savefiles->elems[i].data,
|
||||
global->savefiles->elems[i].attr.i);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -656,6 +658,9 @@ static bool event_init_core(void)
|
||||
driver_t *driver = driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
strlcpy(orig_savefile_dir,global->savefile_dir,sizeof(orig_savefile_dir));
|
||||
strlcpy(orig_savestate_dir,global->savestate_dir,sizeof(orig_savestate_dir));
|
||||
|
||||
if(settings->auto_overrides_enable)
|
||||
{
|
||||
if (config_load_override())
|
||||
@ -664,7 +669,7 @@ static bool event_init_core(void)
|
||||
global->overrides_active = false;
|
||||
}
|
||||
|
||||
pretro_set_environment(rarch_environment_cb);
|
||||
pretro_set_environment(rarch_environment_cb);
|
||||
|
||||
if(settings->auto_remaps_enable)
|
||||
config_load_remap();
|
||||
@ -684,6 +689,11 @@ static bool event_init_core(void)
|
||||
retro_init_libretro_cbs(&driver->retro_ctx);
|
||||
rarch_init_system_av_info();
|
||||
|
||||
if(settings->sort_savefiles_enable)
|
||||
strlcpy(global->savefile_dir,orig_savefile_dir,sizeof(global->savefile_dir));
|
||||
if(settings->sort_savestates_enable)
|
||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -704,7 +714,7 @@ static bool event_save_auto_state(void)
|
||||
ret = save_state(savestate_name_auto);
|
||||
RARCH_LOG("Auto save state to \"%s\" %s.\n", savestate_name_auto, ret ?
|
||||
"succeeded" : "failed");
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
22
retroarch.c
22
retroarch.c
@ -331,19 +331,16 @@ void set_paths_redirect(const char *path)
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
char orig_savestate_dir[PATH_MAX_LENGTH] = "";
|
||||
char orig_savefile_dir[PATH_MAX_LENGTH] = "";
|
||||
|
||||
if (global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savefiles_enable)
|
||||
if(global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savefiles_enable)
|
||||
{
|
||||
strlcpy(orig_savefile_dir,global->savefile_dir,sizeof(global->savefile_dir));
|
||||
fill_pathname_dir(global->savefile_dir,global->savefile_dir,global->system.info.library_name,sizeof(global->savefile_dir));
|
||||
strlcpy(orig_savefile_dir,global->savefile_dir,sizeof(global->savefile_dir));
|
||||
fill_pathname_dir(global->savefile_dir,global->savefile_dir,global->system.info.library_name,sizeof(global->savefile_dir));
|
||||
}
|
||||
|
||||
if (global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savestates_enable)
|
||||
{
|
||||
strlcpy(orig_savestate_dir,global->savestate_dir,sizeof(global->savestate_dir));
|
||||
fill_pathname_dir(global->savestate_dir,global->savestate_dir,global->system.info.library_name,sizeof(global->savestate_dir));
|
||||
strlcpy(orig_savestate_dir,global->savestate_dir,sizeof(global->savestate_dir));
|
||||
fill_pathname_dir(global->savestate_dir,global->savestate_dir,global->system.info.library_name,sizeof(global->savestate_dir));
|
||||
}
|
||||
|
||||
if(path_is_directory(global->savefile_dir))
|
||||
@ -372,13 +369,6 @@ void set_paths_redirect(const char *path)
|
||||
".state", sizeof(global->cheatfile_name));
|
||||
RARCH_LOG("Redirecting cheat file to \"%s\".\n", global->cheatfile_name);
|
||||
}
|
||||
|
||||
if(global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savefiles_enable)
|
||||
strlcpy(global->savefile_dir,orig_savefile_dir,sizeof(global->savefile_dir));
|
||||
|
||||
if(global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savestates_enable)
|
||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||
|
||||
}
|
||||
|
||||
void rarch_set_paths(const char *path)
|
||||
@ -1180,7 +1170,7 @@ int rarch_main_init(int argc, char *argv[])
|
||||
#if defined(GEKKO) && defined(HW_RVL)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
|
||||
if (settings)
|
||||
{
|
||||
event_command(EVENT_CMD_VIDEO_SET_ASPECT_RATIO);
|
||||
|
@ -176,6 +176,9 @@ void set_paths_redirect(const char *path);
|
||||
**/
|
||||
void rarch_print_compiler(char *str, size_t sizeof_str);
|
||||
|
||||
char orig_savestate_dir[PATH_MAX_LENGTH];
|
||||
char orig_savefile_dir[PATH_MAX_LENGTH];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user