From c7679d9386ae6bf30635a8adbd5d387c82373074 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 6 Jan 2013 06:39:32 +0100 Subject: [PATCH] (RARCH_CONSOLE) Save default libretro core to config file in a more robust fashion --- console/rarch_console_config.c | 16 ++-------------- console/rarch_console_config.h | 2 +- frontend/frontend_gx.c | 8 +++++++- frontend/frontend_ps3.c | 9 ++++++++- frontend/frontend_psp.c | 9 ++++++++- frontend/frontend_xdk.c | 9 ++++++++- 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/console/rarch_console_config.c b/console/rarch_console_config.c index 6440aa0e2c..5e5c6f6931 100644 --- a/console/rarch_console_config.c +++ b/console/rarch_console_config.c @@ -21,14 +21,9 @@ #include "rarch_console_config.h" -void rarch_config_load(bool upgrade_core_succeeded) +void rarch_config_load (void) { config_file_t *conf = NULL; - char libretro_path_tmp[PATH_MAX]; - - //if a core has been upgraded, settings need to saved at the end - if(upgrade_core_succeeded) - snprintf(libretro_path_tmp, sizeof(libretro_path_tmp), g_settings.libretro); if (*g_extern.config_path) conf = config_file_new(g_extern.config_path); @@ -65,7 +60,7 @@ void rarch_config_load(bool upgrade_core_succeeded) CONFIG_GET_BOOL(audio.rate_control, "audio_rate_control"); CONFIG_GET_FLOAT(audio.rate_control_delta, "audio_rate_control_delta"); - for (unsigned i = 0; i < 7; i++) + for (unsigned i = 0; i < MAX_PADS; i++) { char cfg[64]; snprintf(cfg, sizeof(cfg), "input_dpad_emulation_p%u", i + 1); @@ -104,11 +99,4 @@ void rarch_config_load(bool upgrade_core_succeeded) CONFIG_GET_INT_EXTERN(console.screen.viewports.custom_vp.width, "custom_viewport_width"); CONFIG_GET_INT_EXTERN(console.screen.viewports.custom_vp.height, "custom_viewport_height"); CONFIG_GET_FLOAT_EXTERN(console.rmenu.font_size, "menu_font_size"); - - if(upgrade_core_succeeded) - { - //save config file with new libretro path - snprintf(g_settings.libretro, sizeof(g_settings.libretro), libretro_path_tmp); - config_save_file(g_extern.config_path); - } } diff --git a/console/rarch_console_config.h b/console/rarch_console_config.h index b2cb2b9236..5be1027823 100644 --- a/console/rarch_console_config.h +++ b/console/rarch_console_config.h @@ -24,6 +24,6 @@ enum INPUT_PRESET_FILE }; -void rarch_config_load(bool upgrade_core_succeeded); +void rarch_config_load(void); #endif diff --git a/frontend/frontend_gx.c b/frontend/frontend_gx.c index f64179776e..f793fa0365 100644 --- a/frontend/frontend_gx.c +++ b/frontend/frontend_gx.c @@ -532,7 +532,13 @@ int main(int argc, char *argv[]) rarch_settings_set_default(); rarch_input_set_controls_default(input); - rarch_config_load(find_libretro_file); + rarch_config_load(); + + if (find_libretro_file) + { + RARCH_LOG("New default libretro core saved to config file: %s.\n", g_settings.libretro); + config_save_file(g_extern.config_path); + } char core_name[64]; rarch_console_name_from_id(core_name, sizeof(core_name)); diff --git a/frontend/frontend_ps3.c b/frontend/frontend_ps3.c index 9502f9092a..d808644239 100644 --- a/frontend/frontend_ps3.c +++ b/frontend/frontend_ps3.c @@ -286,7 +286,14 @@ int main(int argc, char *argv[]) rarch_settings_set_default(); rarch_input_set_controls_default(input); - rarch_config_load(find_libretro_file); + rarch_config_load(); + + if (find_libretro_file) + { + RARCH_LOG("New default libretro core saved to config file: %s.\n", g_settings.libretro); + config_save_file(g_extern.config_path); + } + init_libretro_sym(); input_ps3.post_init(); diff --git a/frontend/frontend_psp.c b/frontend/frontend_psp.c index 867cea23f3..1c060af866 100644 --- a/frontend/frontend_psp.c +++ b/frontend/frontend_psp.c @@ -147,7 +147,14 @@ int main(int argc, char *argv[]) rarch_settings_set_default(); rarch_input_set_controls_default(input); - rarch_config_load(find_libretro_file); + rarch_config_load(); + + if (find_libretro_file) + { + RARCH_LOG("New default libretro core saved to config file: %s.\n", g_settings.libretro); + config_save_file(g_extern.config_path); + } + init_libretro_sym(); input_psp.post_init(); diff --git a/frontend/frontend_xdk.c b/frontend/frontend_xdk.c index 39e1aaaf6c..ae3827745d 100644 --- a/frontend/frontend_xdk.c +++ b/frontend/frontend_xdk.c @@ -163,7 +163,14 @@ int main(int argc, char *argv[]) rarch_settings_set_default(); rarch_input_set_controls_default(input); - rarch_config_load(find_libretro_file); + rarch_config_load(); + + if (find_libretro_file) + { + RARCH_LOG("New default libretro core saved to config file: %s.\n", g_settings.libretro); + config_save_file(g_extern.config_path); + } + init_libretro_sym(); input_xinput.post_init();