diff --git a/command_event.c b/command_event.c index 888f3487d2..5e49b81a84 100644 --- a/command_event.c +++ b/command_event.c @@ -657,12 +657,16 @@ end: static bool event_init_core(void) { - global_t *global = global_get_ptr(); - - if (config_load_override()) - global->overrides_active = true; - else - global->overrides_active = false; + global_t *global = global_get_ptr(); + settings_t *settings = config_get_ptr(); + + if(settings->auto_overrides_enable) + { + if (config_load_override()) + global->overrides_active = true; + else + global->overrides_active = false; + } pretro_set_environment(rarch_environment_cb); diff --git a/config.def.h b/config.def.h index 75a98ec87f..c5c6467942 100644 --- a/config.def.h +++ b/config.def.h @@ -491,6 +491,8 @@ static bool default_core_specific_config = true; static bool default_core_specific_config = false; #endif +static bool default_auto_overrides_enable = false; + /* Crop overscanned frames. */ static const bool crop_overscan = true; diff --git a/configuration.c b/configuration.c index 9a187f2401..f017328fff 100644 --- a/configuration.c +++ b/configuration.c @@ -681,6 +681,7 @@ static void config_set_defaults(void) *settings->menu_config_directory = '\0'; #endif settings->core_specific_config = default_core_specific_config; + settings->auto_overrides_enable = default_auto_overrides_enable; settings->user_language = 0; global->console.sound.system_bgm_enable = false; @@ -1595,6 +1596,7 @@ static bool config_load_file(const char *path, bool set_defaults) config_read_keybinds_conf(conf); CONFIG_GET_BOOL_BASE(conf, settings, core_specific_config, "core_specific_config"); + CONFIG_GET_BOOL_BASE(conf, settings, auto_overrides_enable, "auto_overrides_enable"); config_file_free(conf); return true; @@ -2467,6 +2469,8 @@ bool config_save_file(const char *path) config_set_bool(conf, "core_specific_config", settings->core_specific_config); + config_set_bool(conf, "auto_overrides_enable", + settings->auto_overrides_enable); config_set_int(conf, "libretro_log_level", settings->libretro_log_level); config_set_bool(conf, "log_verbosity", global->verbosity); config_set_bool(conf, "perfcnt_enable", global->perfcnt_enable); diff --git a/configuration.h b/configuration.h index 76dfb50e5c..e05eb94e0a 100644 --- a/configuration.h +++ b/configuration.h @@ -308,6 +308,7 @@ typedef struct settings bool load_dummy_on_core_shutdown; bool core_specific_config; + bool auto_overrides_enable; char username[32]; unsigned int user_language; diff --git a/settings.c b/settings.c index 9b07e33a3a..d90cc93d4f 100644 --- a/settings.c +++ b/settings.c @@ -3626,6 +3626,18 @@ static bool setting_append_list_general_options( general_write_handler, general_read_handler); + CONFIG_BOOL( + settings->auto_overrides_enable, + "auto_overrides_enable", + "Load Overrides Automatically", + default_auto_overrides_enable, + "OFF", + "ON", + group_info.name, + subgroup_info.name, + general_write_handler, + general_read_handler); + END_SUB_GROUP(list, list_info);