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();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
||||||
pretro_unload_game();
|
pretro_unload_game();
|
||||||
pretro_deinit();
|
pretro_deinit();
|
||||||
|
|
||||||
@ -548,7 +548,7 @@ static void event_deinit_core(bool reinit)
|
|||||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||||
|
|
||||||
/* restore system directory if it was set to <content 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';
|
settings->system_directory[0] = '\0';
|
||||||
|
|
||||||
/* auto overrides: reload the original config */
|
/* 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"))
|
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_directory = '\0';
|
||||||
settings->system_in_content_dir = true;
|
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);
|
path_mkdir(g_defaults.sram_dir);
|
||||||
|
|
||||||
fill_pathname_join(g_defaults.savestate_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);
|
path_mkdir(g_defaults.savestate_dir);
|
||||||
|
|
||||||
fill_pathname_join(g_defaults.system_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);
|
path_mkdir(g_defaults.system_dir);
|
||||||
break;
|
break;
|
||||||
case SDCARD_NOT_WRITABLE:
|
case SDCARD_NOT_WRITABLE:
|
||||||
|
@ -38,6 +38,7 @@ void main_exit_save_config(void)
|
|||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_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)
|
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));
|
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||||
|
|
||||||
/* restore system directory if it was set to <content 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';
|
settings->system_directory[0] = '\0';
|
||||||
|
|
||||||
/* Save last core-specific config to the default config location,
|
/* 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],
|
fill_pathname_basedir(settings->system_directory, argv[0],
|
||||||
sizeof(settings->system_directory));
|
sizeof(settings->system_directory));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
settings->system_in_content_dir = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_paths_redirect(const char *path)
|
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. */
|
* as this was initialized before in a menu or otherwise. */
|
||||||
if (!settings->system_directory || settings->system_directory[0] == '\0')
|
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,
|
fill_pathname_basedir(settings->system_directory, path,
|
||||||
sizeof(settings->system_directory));
|
sizeof(settings->system_directory));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
settings->system_in_content_dir = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user