mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 22:13:51 +00:00
fix system dir resetting on each startup
This commit is contained in:
parent
450c665619
commit
a06dd9c3a2
@ -534,7 +534,7 @@ static void event_deinit_core(bool reinit)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
||||
pretro_unload_game();
|
||||
pretro_deinit();
|
||||
|
||||
@ -548,7 +548,7 @@ static void event_deinit_core(bool reinit)
|
||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||
|
||||
/* restore system directory if it was set to <content dir> */
|
||||
if(settings->system_in_content_dir)
|
||||
if(settings->system_in_content_dir && !strcmp(info->info.library_name,"No Core"))
|
||||
settings->system_directory[0] = '\0';
|
||||
|
||||
/* auto overrides: reload the original config */
|
||||
|
@ -1719,6 +1719,8 @@ static bool config_load_file(const char *path, bool set_defaults)
|
||||
|
||||
if (!strcmp(settings->system_directory, "default"))
|
||||
{
|
||||
RARCH_WARN("system_directory is not set in config. Assuming system directory is same folder as game: \"%s\".\n",
|
||||
settings->system_directory);
|
||||
*settings->system_directory = '\0';
|
||||
settings->system_in_content_dir = true;
|
||||
}
|
||||
|
@ -812,11 +812,11 @@ static void frontend_android_get_environment_settings(int *argc,
|
||||
path_mkdir(g_defaults.sram_dir);
|
||||
|
||||
fill_pathname_join(g_defaults.savestate_dir,
|
||||
ext_dir, "saves", sizeof(g_defaults.savestate_dir));
|
||||
ext_dir, "states", sizeof(g_defaults.savestate_dir));
|
||||
path_mkdir(g_defaults.savestate_dir);
|
||||
|
||||
fill_pathname_join(g_defaults.system_dir,
|
||||
ext_dir, "saves", sizeof(g_defaults.system_dir));
|
||||
ext_dir, "system", sizeof(g_defaults.system_dir));
|
||||
path_mkdir(g_defaults.system_dir);
|
||||
break;
|
||||
case SDCARD_NOT_WRITABLE:
|
||||
|
@ -38,6 +38,7 @@ void main_exit_save_config(void)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
||||
|
||||
if (settings->config_save_on_exit && *global->config_path)
|
||||
{
|
||||
@ -48,7 +49,7 @@ void main_exit_save_config(void)
|
||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||
|
||||
/* restore system directory if it was set to <content dir> */
|
||||
if(settings->system_in_content_dir)
|
||||
if(settings->system_in_content_dir && !strcmp(info->info.library_name,"No Core"))
|
||||
settings->system_directory[0] = '\0';
|
||||
|
||||
/* Save last core-specific config to the default config location,
|
||||
|
@ -319,6 +319,8 @@ static void set_special_paths(char **argv, unsigned num_content)
|
||||
fill_pathname_basedir(settings->system_directory, argv[0],
|
||||
sizeof(settings->system_directory));
|
||||
}
|
||||
else
|
||||
settings->system_in_content_dir = false;
|
||||
}
|
||||
|
||||
void set_paths_redirect(const char *path)
|
||||
@ -431,11 +433,12 @@ void rarch_set_paths(const char *path)
|
||||
* as this was initialized before in a menu or otherwise. */
|
||||
if (!settings->system_directory || settings->system_directory[0] == '\0')
|
||||
{
|
||||
RARCH_WARN("SYSTEM DIR is empty, fill assume CONTENT DIR %s\n",path);
|
||||
RARCH_WARN("SYSTEM DIR is empty, assume CONTENT DIR %s\n",path);
|
||||
fill_pathname_basedir(settings->system_directory, path,
|
||||
sizeof(settings->system_directory));
|
||||
}
|
||||
|
||||
else
|
||||
settings->system_in_content_dir = false;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user