diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index a36edf1f04..00a660ffd6 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1976,21 +1976,10 @@ static void frontend_linux_get_env(int *argc, "overlay", sizeof(g_defaults.dir.overlay)); fill_pathname_join(g_defaults.dir.osk_overlay, base_path, "overlay", sizeof(g_defaults.dir.osk_overlay)); - - if(home) - { - fill_pathname_join(g_defaults.dir.screenshot, home, - "Pictures", sizeof(g_defaults.dir.screenshot)); - fill_pathname_join(g_defaults.dir.core_assets, home, - "Downloads", sizeof(g_defaults.dir.core_assets)); - } - else - { - fill_pathname_join(g_defaults.dir.screenshot, home, - "retroArch/screenshots", sizeof(g_defaults.dir.screenshot)); - fill_pathname_join(g_defaults.dir.core_assets, home, - "retroarch/downloads", sizeof(g_defaults.dir.core_assets)); - } + fill_pathname_join(g_defaults.dir.core_assets, base_path, + "downloads", sizeof(g_defaults.dir.core_assets)); + fill_pathname_join(g_defaults.dir.screenshot, base_path, + "screenshots", sizeof(g_defaults.dir.screenshot)); #endif } diff --git a/frontend/frontend.c b/frontend/frontend.c index 13a4f78d74..476bfc5772 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -50,7 +50,7 @@ void main_exit_save_config(void) sizeof(global->dir.savestate)); /* Save last core-specific config to the default config location, - * needed on consoles for core switching and reusing last good + * needed on consoles for core switching and reusing last good * config for new cores. */ config_save_file(global->path.config); @@ -126,10 +126,17 @@ void main_exit(void *args) static void check_defaults_dirs(void) { + settings_t *settings = NULL; + settings = config_get_ptr(); + if (*g_defaults.dir.core_assets) path_mkdir(g_defaults.dir.core_assets); if (*g_defaults.dir.remap) path_mkdir(g_defaults.dir.remap); + if (*g_defaults.dir.screenshot) + path_mkdir(g_defaults.dir.screenshot); + if (*g_defaults.dir.core) + path_mkdir(g_defaults.dir.core); if (*g_defaults.dir.autoconfig) path_mkdir(g_defaults.dir.autoconfig); if (*g_defaults.dir.audio_filter) @@ -242,8 +249,6 @@ bool main_load_content(int argc, char **argv, void *args, if (environ_get) environ_get(rarch_argc_ptr, rarch_argv_ptr, args, wrap_args); - check_defaults_dirs(); - if (wrap_args->touched) { rarch_main_init_wrap(wrap_args, &rarch_argc, rarch_argv); @@ -263,6 +268,8 @@ bool main_load_content(int argc, char **argv, void *args, event_command(EVENT_CMD_RESUME); + check_defaults_dirs(); + if (process_args) process_args(rarch_argc_ptr, rarch_argv_ptr); @@ -279,7 +286,7 @@ error: * Main function of RetroArch. * * If HAVE_MAIN is not defined, will contain main loop and will not - * be exited from until we exit the program. Otherwise, will + * be exited from until we exit the program. Otherwise, will * just do initialization. * * Returns: varies per platform. @@ -344,7 +351,7 @@ int rarch_main(int argc, char *argv[], void *data) do{ unsigned sleep_ms = 0; ret = rarch_main_iterate(&sleep_ms); - + if (ret == 1 && sleep_ms > 0) retro_sleep(sleep_ms); rarch_main_data_iterate();