Skip to content

Commit adab2cd

Browse files
committed
only save retroarch.cfg as diff from defaults
1 parent 0a253e3 commit adab2cd

File tree

9 files changed

+628
-61
lines changed

9 files changed

+628
-61
lines changed

config.def.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,9 @@
573573
/* Save configuration file on exit. */
574574
#define DEFAULT_CONFIG_SAVE_ON_EXIT true
575575

576+
/* Save minimal configuration (only values that differ from defaults). */
577+
#define DEFAULT_CONFIG_SAVE_MINIMAL false
578+
576579
/* Save active input remap file on exit/close content */
577580
#define DEFAULT_REMAP_SAVE_ON_EXIT true
578581

configuration.c

Lines changed: 593 additions & 60 deletions
Large diffs are not rendered by default.

configuration.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,6 +1055,7 @@ typedef struct settings
10551055
bool sort_savestates_by_content_enable;
10561056
bool sort_screenshots_by_content_enable;
10571057
bool config_save_on_exit;
1058+
bool config_save_minimal;
10581059
bool remap_save_on_exit;
10591060

10601061
bool show_hidden_files;

intl/msg_hash_lbl.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,10 @@ MSG_HASH(
708708
MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT,
709709
"config_save_on_exit"
710710
)
711+
MSG_HASH(
712+
MENU_ENUM_LABEL_CONFIG_SAVE_MINIMAL,
713+
"config_save_minimal"
714+
)
711715
MSG_HASH(
712716
MENU_ENUM_LABEL_REMAP_SAVE_ON_EXIT,
713717
"remap_save_on_exit"

intl/msg_hash_us.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4756,6 +4756,18 @@ MSG_HASH(
47564756
MENU_ENUM_LABEL_HELP_CONFIG_SAVE_ON_EXIT,
47574757
"Save changes to the configuration file on exit. Useful for changes made in the menu. Overwrites the configuration file, #include's and comments are not preserved."
47584758
)
4759+
MSG_HASH(
4760+
MENU_ENUM_LABEL_VALUE_CONFIG_SAVE_MINIMAL,
4761+
"Save Minimal Configuration"
4762+
)
4763+
MSG_HASH(
4764+
MENU_ENUM_SUBLABEL_CONFIG_SAVE_MINIMAL,
4765+
"Save only settings that differ from defaults."
4766+
)
4767+
MSG_HASH(
4768+
MENU_ENUM_LABEL_HELP_CONFIG_SAVE_MINIMAL,
4769+
"When enabled, saves only configuration values that have changed from their default values. Results in a smaller, more manageable configuration file."
4770+
)
47594771
MSG_HASH(
47604772
MENU_ENUM_LABEL_VALUE_REMAP_SAVE_ON_EXIT,
47614773
"Save Remap Files on Quit"

menu/cbs/menu_cbs_sublabel.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_hard_sync_frames, MENU_
533533
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_threaded, MENU_ENUM_SUBLABEL_VIDEO_THREADED)
534534
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings, MENU_ENUM_SUBLABEL_SETTINGS)
535535
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_config_save_on_exit, MENU_ENUM_SUBLABEL_CONFIG_SAVE_ON_EXIT)
536+
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_config_save_minimal, MENU_ENUM_SUBLABEL_CONFIG_SAVE_MINIMAL)
536537
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_remap_save_on_exit, MENU_ENUM_SUBLABEL_REMAP_SAVE_ON_EXIT)
537538
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_configuration_settings_list, MENU_ENUM_SUBLABEL_CONFIGURATION_SETTINGS)
538539
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_configurations_list_list, MENU_ENUM_SUBLABEL_CONFIGURATIONS_LIST)
@@ -4981,6 +4982,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
49814982
case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT:
49824983
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_config_save_on_exit);
49834984
break;
4985+
case MENU_ENUM_LABEL_CONFIG_SAVE_MINIMAL:
4986+
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_config_save_minimal);
4987+
break;
49844988
case MENU_ENUM_LABEL_REMAP_SAVE_ON_EXIT:
49854989
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_remap_save_on_exit);
49864990
break;

menu/menu_displaylist.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11540,6 +11540,7 @@ unsigned menu_displaylist_build_list(
1154011540
{
1154111541
static const menu_displaylist_build_info_t build_list[] = {
1154211542
{MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT, PARSE_ONLY_BOOL},
11543+
{MENU_ENUM_LABEL_CONFIG_SAVE_MINIMAL, PARSE_ONLY_BOOL},
1154311544
{MENU_ENUM_LABEL_REMAP_SAVE_ON_EXIT, PARSE_ONLY_BOOL},
1154411545
{MENU_ENUM_LABEL_GAME_SPECIFIC_OPTIONS, PARSE_ONLY_BOOL},
1154511546
{MENU_ENUM_LABEL_AUTO_OVERRIDES_ENABLE, PARSE_ONLY_BOOL},

menu/menu_setting.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11119,7 +11119,7 @@ static bool setting_append_list(
1111911119
case SETTINGS_LIST_CONFIGURATION:
1112011120
{
1112111121
uint8_t i, listing = 0;
11122-
struct bool_entry bool_entries[9];
11122+
struct bool_entry bool_entries[10];
1112311123
START_GROUP(list, list_info, &group_info,
1112411124
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS), parent_group);
1112511125

@@ -11136,6 +11136,14 @@ static bool setting_append_list(
1113611136
bool_entries[listing].flags |= SD_FLAG_DEFAULT_VALUE;
1113711137
listing++;
1113811138

11139+
bool_entries[listing].target = &settings->bools.config_save_minimal;
11140+
bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_CONFIG_SAVE_MINIMAL;
11141+
bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CONFIG_SAVE_MINIMAL;
11142+
bool_entries[listing].flags = SD_FLAG_NONE;
11143+
if (DEFAULT_CONFIG_SAVE_MINIMAL)
11144+
bool_entries[listing].flags |= SD_FLAG_DEFAULT_VALUE;
11145+
listing++;
11146+
1113911147
bool_entries[listing].target = &settings->bools.show_hidden_files;
1114011148
bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_SHOW_HIDDEN_FILES;
1114111149
bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_SHOW_HIDDEN_FILES;

msg_hash.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2618,6 +2618,7 @@ enum msg_hash_enums
26182618
MENU_LBL_H(REPLAY_CHECKPOINT_INTERVAL),
26192619
MENU_LBL_H(REPLAY_CHECKPOINT_DESERIALIZE),
26202620
MENU_LBL_H(CONFIG_SAVE_ON_EXIT),
2621+
MENU_LBL_H(CONFIG_SAVE_MINIMAL),
26212622
MENU_LABEL(REMAP_SAVE_ON_EXIT),
26222623
MENU_LABEL(CONFIGURATION_LIST),
26232624
MENU_LABEL(CONFIRM_ON_EXIT),

0 commit comments

Comments
 (0)