diff --git a/retroarch.c b/retroarch.c
index 6ebcdf5d83..b092e9b78e 100644
--- a/retroarch.c
+++ b/retroarch.c
@@ -1597,7 +1597,10 @@ static void path_set_redirect(void)
    const char *old_savestate_dir               = dir_get(RARCH_DIR_SAVESTATE);
    struct retro_system_info *system            = &runloop_system.info;
    settings_t *settings                        = configuration_settings;
-
+   bool sort_savefiles_enable                  = settings->bools.sort_savefiles_enable;
+   bool sort_savestates_enable                 = settings->bools.sort_savestates_enable;
+   bool savefiles_in_content_dir               = settings->bools.savefiles_in_content_dir;
+   bool savestates_in_content_dir              = settings->bools.savestates_in_content_dir;
    new_savefile_dir[0] = new_savestate_dir[0]  = '\0';
 
    /* Initialize current save directories
@@ -1613,7 +1616,7 @@ static void path_set_redirect(void)
 #endif
       {
          /* per-core saves: append the library_name to the save location */
-         if (settings->bools.sort_savefiles_enable
+         if (sort_savefiles_enable
                && !string_is_empty(old_savefile_dir))
          {
             fill_pathname_join(
@@ -1636,7 +1639,7 @@ static void path_set_redirect(void)
          }
 
          /* per-core states: append the library_name to the save location */
-         if (settings->bools.sort_savestates_enable
+         if (sort_savestates_enable
                && !string_is_empty(old_savestate_dir))
          {
             fill_pathname_join(
@@ -1662,7 +1665,7 @@ static void path_set_redirect(void)
    }
 
    /* Set savefile directory if empty to content directory */
-   if (string_is_empty(new_savefile_dir) || settings->bools.savefiles_in_content_dir)
+   if (string_is_empty(new_savefile_dir) || savefiles_in_content_dir)
    {
       strlcpy(new_savefile_dir, path_main_basename,
             path_size);
@@ -1670,7 +1673,7 @@ static void path_set_redirect(void)
    }
 
    /* Set savestate directory if empty based on content directory */
-   if (string_is_empty(new_savestate_dir) || settings->bools.savestates_in_content_dir)
+   if (string_is_empty(new_savestate_dir) || savestates_in_content_dir)
    {
       strlcpy(new_savestate_dir, path_main_basename,
             path_size);
@@ -2603,8 +2606,9 @@ static bool accessibility_enabled               = false;
 
 bool is_accessibility_enabled(void)
 {
-   settings_t *settings              = configuration_settings;
-   if (accessibility_enabled || settings->bools.accessibility_enable)
+   settings_t *settings      = configuration_settings;
+   bool accessibility_enable = settings->bools.accessibility_enable;
+   if (accessibility_enabled || accessibility_enable)
       return true;
    return false;
 }
@@ -5260,19 +5264,21 @@ static bool run_translation_service(void)
    {
       char separator  = '?';
       char new_ai_service_url[PATH_MAX_LENGTH];
+      unsigned ai_service_source_lang = settings->uints.ai_service_source_lang;
+      unsigned ai_service_target_lang = settings->uints.ai_service_target_lang;
+      const char *ai_service_url      = settings->arrays.ai_service_url;
 
-      strlcpy(new_ai_service_url,
-            settings->arrays.ai_service_url, sizeof(new_ai_service_url));
+      strlcpy(new_ai_service_url, ai_service_url, sizeof(new_ai_service_url));
 
       /* if query already exists in url, then use &'s instead */
       if (strrchr(new_ai_service_url, '?'))
           separator = '&';
 
       /* source lang */
-      if (settings->uints.ai_service_source_lang != TRANSLATION_LANG_DONT_CARE)
+      if (ai_service_source_lang != TRANSLATION_LANG_DONT_CARE)
       {
          const char *lang_source = ai_service_get_str(
-               (enum translation_lang)settings->uints.ai_service_source_lang);
+               (enum translation_lang)ai_service_source_lang);
 
          if (!string_is_empty(lang_source))
          {
@@ -5286,10 +5292,10 @@ static bool run_translation_service(void)
       }
 
       /* target lang */
-      if (settings->uints.ai_service_target_lang != TRANSLATION_LANG_DONT_CARE)
+      if (ai_service_target_lang != TRANSLATION_LANG_DONT_CARE)
       {
          const char *lang_target = ai_service_get_str(
-               (enum translation_lang)settings->uints.ai_service_target_lang);
+               (enum translation_lang)ai_service_target_lang);
 
          if (!string_is_empty(lang_target))
          {
@@ -5636,8 +5642,9 @@ static void command_event_load_auto_state(void)
    size_t savestate_name_auto_size = PATH_MAX_LENGTH * sizeof(char);
    settings_t *settings            = configuration_settings;
    global_t   *global              = &g_extern;
+   bool savestate_auto_load        = settings->bools.savestate_auto_load;
 
-   if (!global || !settings->bools.savestate_auto_load)
+   if (!global || !savestate_auto_load)
       return;
 #ifdef HAVE_CHEEVOS
    if (rcheevos_hardcore_active)
@@ -5683,8 +5690,10 @@ static void command_event_set_savestate_auto_index(void)
    unsigned max_idx                  = 0;
    settings_t *settings              = configuration_settings;
    global_t   *global                = &g_extern;
+   bool savestate_auto_index         = settings->bools.savestate_auto_index;
+   bool show_hidden_files            = settings->bools.show_hidden_files;
 
-   if (!global || !settings->bools.savestate_auto_index)
+   if (!global || !savestate_auto_index)
       return;
 
    state_dir                         = (char*)calloc(PATH_MAX_LENGTH, sizeof(*state_dir));
@@ -5699,7 +5708,7 @@ static void command_event_set_savestate_auto_index(void)
          state_size);
 
    dir_list = dir_list_new_special(state_dir, DIR_LIST_PLAIN, NULL,
-         settings->bools.show_hidden_files);
+         show_hidden_files);
 
    free(state_dir);
 
@@ -5785,9 +5794,10 @@ static bool event_init_content(void)
 */
 #ifdef HAVE_CHEEVOS
    {
-      settings_t *settings = configuration_settings;
-      if (  !settings->bools.cheevos_enable ||
-            !settings->bools.cheevos_hardcore_mode_enable)
+      settings_t *settings              = configuration_settings;
+      bool cheevos_enable               = settings->bools.cheevos_enable;
+      bool cheevos_hardcore_mode_enable = settings->bools.cheevos_hardcore_mode_enable;
+      if (!cheevos_enable || !cheevos_hardcore_mode_enable)
          command_event_load_auto_state();
    }
 #else
@@ -5803,14 +5813,16 @@ static bool event_init_content(void)
 
 static void update_runtime_log(bool log_per_core)
 {
-   settings_t *settings = configuration_settings;
+   settings_t *settings        = configuration_settings;
+   const char *dir_runtime_log = settings->paths.directory_runtime_log;
+   const char *dir_playlist    = settings->paths.directory_playlist;
 
    /* Initialise runtime log file */
    runtime_log_t *runtime_log = runtime_log_init(
          runtime_content_path,
          runtime_core_path,
-         settings->paths.directory_runtime_log,
-         settings->paths.directory_playlist,
+         dir_runtime_log,
+         dir_playlist,
          log_per_core);
 
    if (!runtime_log)
@@ -5851,14 +5863,16 @@ static void command_event_runtime_log_deinit(void)
    /* Only write to file if content has run for a non-zero length of time */
    if (libretro_core_runtime_usec > 0)
    {
-      settings_t *settings = configuration_settings;
+      settings_t *settings               = configuration_settings;
+      bool content_runtime_log           = settings->bools.content_runtime_log;
+      bool content_runtime_log_aggregate = settings->bools.content_runtime_log_aggregate;
 
       /* Per core logging */
-      if (settings->bools.content_runtime_log)
+      if (content_runtime_log)
          update_runtime_log(true);
 
       /* Aggregate logging */
-      if (settings->bools.content_runtime_log_aggregate)
+      if (content_runtime_log_aggregate)
          update_runtime_log(false);
    }
 
@@ -5912,6 +5926,13 @@ static void retroarch_set_frame_limit(float fastforward_ratio_orig)
 static bool command_event_init_core(enum rarch_core_type type)
 {
    settings_t *settings            = configuration_settings;
+#ifdef HAVE_CONFIGFILE
+   bool auto_overrides_enable      = settings->bools.auto_overrides_enable;
+   bool auto_remaps_enable         = settings->bools.auto_remaps_enable;
+   const char *dir_input_remapping = settings->paths.directory_input_remapping;
+#endif
+   unsigned poll_type_behavior     = settings->uints.input_poll_type_behavior;
+   float fastforward_ratio         = settings->floats.fastforward_ratio;
 
    if (!init_libretro_symbols(type, &current_core))
       return false;
@@ -5944,7 +5965,7 @@ static bool command_event_init_core(enum rarch_core_type type)
          sizeof(runloop_system.valid_extensions));
 
 #ifdef HAVE_CONFIGFILE
-   if (settings->bools.auto_overrides_enable)
+   if (auto_overrides_enable)
       runloop_overrides_active = config_load_override(&runloop_system);
 #endif
 
@@ -5961,9 +5982,8 @@ static bool command_event_init_core(enum rarch_core_type type)
    current_core.retro_set_environment(rarch_environment_cb);
 
 #ifdef HAVE_CONFIGFILE
-   if (settings->bools.auto_remaps_enable)
-      config_load_remap(settings->paths.directory_input_remapping,
-            &runloop_system);
+   if (auto_remaps_enable)
+      config_load_remap(dir_input_remapping, &runloop_system);
 #endif
 
    /* Per-core saves: reset redirection paths */
@@ -5986,10 +6006,10 @@ static bool command_event_init_core(enum rarch_core_type type)
    /* Verify that initial disk index was set correctly */
    disk_control_verify_initial_index(&runloop_system.disk_control);
 
-   if (!core_load(settings->uints.input_poll_type_behavior))
+   if (!core_load(poll_type_behavior))
       return false;
 
-   retroarch_set_frame_limit(configuration_settings->floats.fastforward_ratio);
+   retroarch_set_frame_limit(fastforward_ratio);
    command_event_runtime_log_init();
    return true;
 }
@@ -6002,8 +6022,9 @@ static bool command_event_save_auto_state(void)
       savestate_name_auto_size = PATH_MAX_LENGTH * sizeof(char);
    settings_t *settings        = configuration_settings;
    global_t   *global          = &g_extern;
+   bool savestate_auto_save    = settings->bools.savestate_auto_save;
 
-   if (!global || !settings || !settings->bools.savestate_auto_save)
+   if (!global || !savestate_auto_save)
       return false;
    if (current_core_type == CORE_TYPE_DUMMY)
       return false;
@@ -6306,8 +6327,10 @@ static bool command_event_main_state(unsigned cmd)
          case CMD_EVENT_SAVE_STATE:
             content_save_state(state_path, true, false);
             {
-               settings_t *settings   = configuration_settings;
-               if (settings->bools.frame_time_counter_reset_after_save_state)
+               settings_t *settings = configuration_settings;
+               bool frame_time_counter_reset_after_save_state = 
+                  settings->bools.frame_time_counter_reset_after_save_state;
+               if (frame_time_counter_reset_after_save_state)
                   video_driver_frame_time_count = 0;
             }
             ret      = true;
@@ -6326,7 +6349,9 @@ static bool command_event_main_state(unsigned cmd)
 #endif
                {
                   settings_t *settings   = configuration_settings;
-                  if (settings->bools.frame_time_counter_reset_after_load_state)
+                  bool frame_time_counter_reset_after_load_state = 
+                     settings->bools.frame_time_counter_reset_after_load_state;
+                  if (frame_time_counter_reset_after_load_state)
                      video_driver_frame_time_count = 0;
                }
             }
@@ -6359,13 +6384,14 @@ static bool command_event_resize_windowed_scale(void)
    unsigned idx           = 0;
    settings_t *settings   = configuration_settings;
    unsigned window_scale  = runloop_pending_windowed_scale;
+   bool video_fullscreen  = settings->bools.video_fullscreen;
 
    if (window_scale == 0)
       return false;
 
    configuration_set_float(settings, settings->floats.video_scale, (float)window_scale);
 
-   if (!settings->bools.video_fullscreen)
+   if (!video_fullscreen)
       command_event(CMD_EVENT_REINIT, NULL);
 
    rarch_ctl(RARCH_CTL_SET_WINDOWED_SCALE, &idx);
@@ -6376,6 +6402,12 @@ static bool command_event_resize_windowed_scale(void)
 static void command_event_reinit(const int flags)
 {
    settings_t *settings      = configuration_settings;
+#ifdef HAVE_MENU
+   bool video_fullscreen     = settings->bools.video_fullscreen;
+   bool adaptive_vsync       = settings->bools.video_adaptive_vsync;
+   unsigned swap_interval    = settings->uints.video_swap_interval;
+#endif
+
    video_driver_reinit(flags);
    /* Poll input to avoid possibly stale data to corrupt things. */
    if (current_input && current_input->poll)
@@ -6384,13 +6416,13 @@ static void command_event_reinit(const int flags)
 
 #ifdef HAVE_MENU
    gfx_display_set_framebuffer_dirty_flag();
-   if (settings->bools.video_fullscreen)
+   if (video_fullscreen)
       video_driver_hide_mouse();
    if (menu_driver_alive && current_video->set_nonblock_state)
       current_video->set_nonblock_state(video_driver_data, false,
                video_driver_test_all_flags(GFX_CTX_FLAGS_ADAPTIVE_VSYNC) &&
-               settings->bools.video_adaptive_vsync,
-               settings->uints.video_swap_interval);
+               adaptive_vsync,
+               swap_interval);
 #endif
 }
 
@@ -6563,7 +6595,9 @@ bool command_event(enum event_command cmd, void *data)
       {
 #ifdef HAVE_TRANSLATE
          settings_t *settings      = configuration_settings;
-         if (settings->bools.ai_service_pause)
+         bool ai_service_pause     = settings->bools.ai_service_pause;
+
+         if (ai_service_pause)
          {
             /* pause on call, unpause on second press. */
             if (!runloop_paused)
@@ -6735,8 +6769,9 @@ bool command_event(enum event_command cmd, void *data)
       case CMD_EVENT_SAVE_STATE:
          {
             settings_t *settings      = configuration_settings;
+            bool savestate_auto_index = settings->bools.savestate_auto_index;
 
-            if (settings->bools.savestate_auto_index)
+            if (savestate_auto_index)
             {
                int new_state_slot = settings->ints.state_slot + 1;
                configuration_set_int(settings, settings->ints.state_slot, new_state_slot);
@@ -6765,8 +6800,9 @@ bool command_event(enum event_command cmd, void *data)
          break;
       case CMD_EVENT_TAKE_SCREENSHOT:
          {
-            settings_t *settings      = configuration_settings;
-            if (!take_screenshot(settings->paths.directory_screenshot,
+            settings_t *settings       = configuration_settings;
+            const char *dir_screenshot = settings->paths.directory_screenshot;
+            if (!take_screenshot(dir_screenshot,
                      path_get(RARCH_PATH_BASENAME), false,
                      video_driver_cached_frame_has_valid_framebuffer(), false, true))
                return false;
@@ -6800,7 +6836,8 @@ bool command_event(enum event_command cmd, void *data)
                strlcpy(settings->arrays.video_driver, cached_video_driver,
                      sizeof(settings->arrays.video_driver));
                cached_video_driver[0] = 0;
-               RARCH_LOG("[Video]: Restored video driver to \"%s\".\n", settings->arrays.video_driver);
+               RARCH_LOG("[Video]: Restored video driver to \"%s\".\n",
+                     settings->arrays.video_driver);
             }
 
 #ifdef HAVE_CONFIGFILE
@@ -6866,11 +6903,12 @@ bool command_event(enum event_command cmd, void *data)
       case CMD_EVENT_REWIND_INIT:
          {
             settings_t *settings      = configuration_settings;
+            bool rewind_enable        = settings->bools.rewind_enable;
 #ifdef HAVE_CHEEVOS
             if (rcheevos_hardcore_active)
                return false;
 #endif
-            if (settings->bools.rewind_enable)
+            if (rewind_enable)
             {
 #ifdef HAVE_NETWORKING
                /* Only enable state manager if netplay is not underway
@@ -6886,7 +6924,8 @@ TODO: Add a setting for these tweaks */
       case CMD_EVENT_REWIND_TOGGLE:
          {
             settings_t *settings      = configuration_settings;
-            if (settings->bools.rewind_enable)
+            bool rewind_enable        = settings->bools.rewind_enable;
+            if (rewind_enable)
                command_event(CMD_EVENT_REWIND_INIT, NULL);
             else
                command_event(CMD_EVENT_REWIND_DEINIT, NULL);
@@ -6968,15 +7007,15 @@ TODO: Add a setting for these tweaks */
          break;
       case CMD_EVENT_DSP_FILTER_INIT:
          {
-            settings_t *settings      = configuration_settings;
+            settings_t *settings              = configuration_settings;
+            const char *path_audio_dsp_plugin = settings->paths.path_audio_dsp_plugin;
             audio_driver_dsp_filter_free();
-            if (string_is_empty(settings->paths.path_audio_dsp_plugin))
+            if (string_is_empty(path_audio_dsp_plugin))
                break;
-            if (!audio_driver_dsp_filter_init(
-                     settings->paths.path_audio_dsp_plugin))
+            if (!audio_driver_dsp_filter_init(path_audio_dsp_plugin))
             {
                RARCH_ERR("[DSP]: Failed to initialize DSP filter \"%s\".\n",
-                     settings->paths.path_audio_dsp_plugin);
+                     path_audio_dsp_plugin);
             }
          }
          break;
@@ -6997,18 +7036,20 @@ TODO: Add a setting for these tweaks */
       case CMD_EVENT_HISTORY_DEINIT:
          if (g_defaults.content_history)
          {
-            settings_t *settings = configuration_settings;
+            settings_t *settings         = configuration_settings;
+            bool playlist_use_old_format = settings->bools.playlist_use_old_format;
             playlist_write_file(g_defaults.content_history,
-                  settings->bools.playlist_use_old_format);
+                  playlist_use_old_format);
             playlist_free(g_defaults.content_history);
          }
          g_defaults.content_history = NULL;
 
          if (g_defaults.music_history)
          {
-            settings_t *settings = configuration_settings;
+            settings_t *settings         = configuration_settings;
+            bool playlist_use_old_format = settings->bools.playlist_use_old_format;
             playlist_write_file(g_defaults.music_history,
-                  settings->bools.playlist_use_old_format);
+                  playlist_use_old_format);
             playlist_free(g_defaults.music_history);
          }
          g_defaults.music_history = NULL;
@@ -7016,9 +7057,10 @@ TODO: Add a setting for these tweaks */
 #if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
          if (g_defaults.video_history)
          {
-            settings_t *settings = configuration_settings;
+            settings_t *settings         = configuration_settings;
+            bool playlist_use_old_format = settings->bools.playlist_use_old_format;
             playlist_write_file(g_defaults.video_history,
-                  settings->bools.playlist_use_old_format);
+                  playlist_use_old_format);
             playlist_free(g_defaults.video_history);
          }
          g_defaults.video_history = NULL;
@@ -7028,9 +7070,10 @@ TODO: Add a setting for these tweaks */
 #ifdef HAVE_IMAGEVIEWER
          if (g_defaults.image_history)
          {
-            settings_t *settings = configuration_settings;
+            settings_t *settings         = configuration_settings;
+            bool playlist_use_old_format = settings->bools.playlist_use_old_format;
             playlist_write_file(g_defaults.image_history,
-                  settings->bools.playlist_use_old_format);
+                  playlist_use_old_format);
             playlist_free(g_defaults.image_history);
          }
          g_defaults.image_history = NULL;
@@ -7138,7 +7181,8 @@ TODO: Add a setting for these tweaks */
             settings_t *settings      = configuration_settings;
             if (current_video->set_nonblock_state)
                current_video->set_nonblock_state(video_driver_data, false,
-                     video_driver_test_all_flags(GFX_CTX_FLAGS_ADAPTIVE_VSYNC) &&
+                     video_driver_test_all_flags(
+                        GFX_CTX_FLAGS_ADAPTIVE_VSYNC) &&
                      settings->bools.video_adaptive_vsync,
                      settings->uints.video_swap_interval
                      );
@@ -7240,17 +7284,19 @@ TODO: Add a setting for these tweaks */
             const char *core_name          = "DETECT";
             const char *core_path          = "DETECT";
             size_t *playlist_index         = (size_t*)data;
-            struct playlist_entry entry = {0};
+            struct playlist_entry entry    = {0};
+            bool playlist_use_old_format   = settings->bools.playlist_use_old_format;
 
-            /* the update function reads our entry as const, so these casts are safe */
-            entry.core_path = (char*)core_path;
-            entry.core_name = (char*)core_name;
+            /* the update function reads our entry as const,
+             * so these casts are safe */
+            entry.core_path                = (char*)core_path;
+            entry.core_name                = (char*)core_name;
 
             command_playlist_update_write(
                   NULL,
                   *playlist_index,
                   &entry,
-                  settings->bools.playlist_use_old_format
+                  playlist_use_old_format
                   );
 
             runloop_msg_queue_push(msg_hash_to_str(MSG_RESET_CORE_ASSOCIATION), 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@@ -7340,7 +7386,8 @@ TODO: Add a setting for these tweaks */
          if (menu_driver_alive)
          {
             settings_t *settings      = configuration_settings;
-            if (settings && settings->bools.menu_pause_libretro)
+            bool menu_pause_libretro  = settings->bools.menu_pause_libretro;
+            if (menu_pause_libretro)
                command_event(CMD_EVENT_AUDIO_STOP, NULL);
             else
                command_event(CMD_EVENT_AUDIO_START, NULL);
@@ -7348,7 +7395,8 @@ TODO: Add a setting for these tweaks */
          else
          {
             settings_t *settings      = configuration_settings;
-            if (settings && settings->bools.menu_pause_libretro)
+            bool menu_pause_libretro  = settings->bools.menu_pause_libretro;
+            if (menu_pause_libretro)
                command_event(CMD_EVENT_AUDIO_START, NULL);
          }
 #endif
@@ -7394,6 +7442,7 @@ TODO: Add a setting for these tweaks */
             static struct string_list *hostname = NULL;
             settings_t *settings                = configuration_settings;
             char *buf                           = (char *)data;
+            unsigned netplay_port               = settings->uints.netplay_port;
 
             hostname                            = string_split(buf, "|");
 
@@ -7401,11 +7450,13 @@ TODO: Add a setting for these tweaks */
 
             RARCH_LOG("[Netplay] connecting to %s:%d (direct)\n",
                   hostname->elems[0].data, !string_is_empty(hostname->elems[1].data)
-                  ? atoi(hostname->elems[1].data) : settings->uints.netplay_port);
+                  ? atoi(hostname->elems[1].data) 
+                  : netplay_port);
 
             if (!init_netplay(NULL, hostname->elems[0].data,
                      !string_is_empty(hostname->elems[1].data)
-                     ? atoi(hostname->elems[1].data) : settings->uints.netplay_port))
+                     ? atoi(hostname->elems[1].data) 
+                     : netplay_port))
             {
                command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
                string_list_free(hostname);
@@ -7429,6 +7480,7 @@ TODO: Add a setting for these tweaks */
             /* buf is expected to be address|port */
             settings_t *settings                = configuration_settings;
             char *buf                           = (char *)data;
+            unsigned netplay_port               = settings->uints.netplay_port;
 
             hostname = string_split(buf, "|");
 
@@ -7436,11 +7488,13 @@ TODO: Add a setting for these tweaks */
 
             RARCH_LOG("[Netplay] connecting to %s:%d (deferred)\n",
                   hostname->elems[0].data, !string_is_empty(hostname->elems[1].data)
-                  ? atoi(hostname->elems[1].data) : settings->uints.netplay_port);
+                  ? atoi(hostname->elems[1].data) 
+                  : netplay_port);
 
             if (!init_netplay_deferred(hostname->elems[0].data,
                      !string_is_empty(hostname->elems[1].data)
-                     ? atoi(hostname->elems[1].data) : settings->uints.netplay_port))
+                     ? atoi(hostname->elems[1].data) 
+                     : netplay_port))
             {
                command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
                string_list_free(hostname);
@@ -7493,15 +7547,15 @@ TODO: Add a setting for these tweaks */
 
             {
                settings_t *settings                = configuration_settings;
-               if (settings)
-               {
-                  /* Re-enable rewind if it was enabled
-                   * TODO: Add a setting for these tweaks */
-                  if (settings->bools.rewind_enable)
-                     command_event(CMD_EVENT_REWIND_INIT, NULL);
-                  if (settings->uints.autosave_interval != 0)
-                     command_event(CMD_EVENT_AUTOSAVE_INIT, NULL);
-               }
+               bool rewind_enable                  = settings->bools.rewind_enable;
+               unsigned autosave_interval          = settings->uints.autosave_interval;
+
+               /* Re-enable rewind if it was enabled
+                * TODO: Add a setting for these tweaks */
+               if (rewind_enable)
+                  command_event(CMD_EVENT_REWIND_INIT, NULL);
+               if (autosave_interval != 0)
+                  command_event(CMD_EVENT_AUTOSAVE_INIT, NULL);
             }
 
             break;
@@ -7797,9 +7851,11 @@ TODO: Add a setting for these tweaks */
             return false;
 
          {
-            settings_t         *settings = configuration_settings;
-            discord_userdata_t *userdata = (discord_userdata_t*)data;
-            discord_update(userdata->status, settings->bools.playlist_fuzzy_archive_match);
+            settings_t              *settings = configuration_settings;
+            bool playlist_fuzzy_archive_match = settings->bools.playlist_fuzzy_archive_match;
+            discord_userdata_t *userdata      = (discord_userdata_t*)data;
+
+            discord_update(userdata->status, playlist_fuzzy_archive_match);
          }
 #endif
          break;
@@ -7807,8 +7863,9 @@ TODO: Add a setting for these tweaks */
       case CMD_EVENT_AI_SERVICE_CALL:
       {
 #ifdef HAVE_TRANSLATE
-         settings_t *settings = configuration_settings;
-         if (settings->uints.ai_service_mode == 1 && is_ai_service_speech_running())
+         settings_t *settings     = configuration_settings;
+         unsigned ai_service_mode = settings->uints.ai_service_mode;
+         if (ai_service_mode == 1 && is_ai_service_speech_running())
          {
             ai_service_speech_stop();
 #ifdef HAVE_ACCESSIBILITY
@@ -7817,7 +7874,8 @@ TODO: Add a setting for these tweaks */
 #endif
          }
 #ifdef HAVE_ACCESSIBILITY
-         else if (is_accessibility_enabled() && settings->uints.ai_service_mode == 2 &&
+         else if (is_accessibility_enabled() && 
+                  ai_service_mode == 2 &&
                   is_narrator_running())
             accessibility_speak_priority("stopped.", 10);
 #endif
@@ -7845,7 +7903,8 @@ TODO: Add a setting for these tweaks */
 #endif
 #endif
 
-void retroarch_override_setting_set(enum rarch_override_setting enum_idx, void *data)
+void retroarch_override_setting_set(
+      enum rarch_override_setting enum_idx, void *data)
 {
    switch (enum_idx)
    {
@@ -8041,7 +8100,8 @@ static void global_free(void)
  **/
 void main_exit(void *args)
 {
-   settings_t *settings = configuration_settings;
+   settings_t *settings     = configuration_settings;
+   bool config_save_on_exit = settings->bools.config_save_on_exit;
 
    if (cached_video_driver[0])
    {
@@ -8051,7 +8111,7 @@ void main_exit(void *args)
       RARCH_LOG("[Video]: Restored video driver to \"%s\".\n", settings->arrays.video_driver);
    }
 
-   if (settings->bools.config_save_on_exit)
+   if (config_save_on_exit)
       command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
 
 #ifdef HAVE_MENU
@@ -9196,10 +9256,11 @@ static bool dynamic_request_hw_context(enum retro_hw_context_type type,
 static bool dynamic_verify_hw_context(enum retro_hw_context_type type,
       unsigned minor, unsigned major)
 {
-   settings_t *settings  = configuration_settings;
-   const char *video_ident = settings->arrays.video_driver;
+   settings_t *settings      = configuration_settings;
+   const char *video_ident   = settings->arrays.video_driver;
+   bool driver_switch_enable = settings->bools.driver_switch_enable;
 
-   if (settings->bools.driver_switch_enable)
+   if (driver_switch_enable)
       return true;
 
    switch (type)
@@ -9232,9 +9293,10 @@ static void rarch_log_libretro(enum retro_log_level level,
       const char *fmt, ...)
 {
    va_list vp;
-   settings_t *settings = configuration_settings;
+   settings_t        *settings = configuration_settings;
+   unsigned libretro_log_level = settings->uints.libretro_log_level;
 
-   if ((unsigned)level < settings->uints.libretro_log_level)
+   if ((unsigned)level < libretro_log_level)
       return;
 
    if (!verbosity_is_enabled())
@@ -9331,7 +9393,8 @@ static size_t mmap_highest_bit(size_t n)
 }
 
 
-static bool mmap_preprocess_descriptors(rarch_memory_descriptor_t *first, unsigned count)
+static bool mmap_preprocess_descriptors(
+      rarch_memory_descriptor_t *first, unsigned count)
 {
    size_t                      top_addr = 1;
    rarch_memory_descriptor_t *desc      = NULL;
@@ -9546,9 +9609,11 @@ static bool rarch_environment_cb(unsigned cmd, void *data)
 
       case RETRO_ENVIRONMENT_SET_ROTATION:
       {
-         unsigned rotation = *(const unsigned*)data;
+         unsigned rotation       = *(const unsigned*)data;
+         bool video_allow_rotate = settings->bools.video_allow_rotate;
+
          RARCH_LOG("[Environ]: SET_ROTATION: %u\n", rotation);
-         if (!settings->bools.video_allow_rotate)
+         if (!video_allow_rotate)
             break;
 
          if (system)
@@ -9823,10 +9888,11 @@ static bool rarch_environment_cb(unsigned cmd, void *data)
          unsigned *cb = (unsigned*)data;
          settings_t *settings          = configuration_settings;
          const char *video_driver_name = settings->arrays.video_driver;
+         bool driver_switch_enable     = settings->bools.driver_switch_enable;
 
          RARCH_LOG("[Environ]: GET_PREFERRED_HW_RENDER.\n");
 
-         if (!settings->bools.driver_switch_enable)
+         if (!driver_switch_enable)
              return false;
 
          if (string_is_equal(video_driver_name, "glcore"))
@@ -11552,7 +11618,10 @@ void ui_companion_driver_init_first(void)
    ui_companion               = (ui_companion_driver_t*)ui_companion_drivers[0];
 
 #ifdef HAVE_QT
-   if (settings->bools.desktop_menu_enable && settings->bools.ui_companion_toggle)
+   bool desktop_menu_enable   = settings->bools.desktop_menu_enable;
+   bool ui_companion_toggle   = settings->bools.ui_companion_toggle;
+
+   if (desktop_menu_enable && ui_companion_toggle)
    {
       ui_companion_qt_data = ui_companion_qt.init();
       qt_is_inited = true;
@@ -11561,7 +11630,10 @@ void ui_companion_driver_init_first(void)
 
    if (ui_companion)
    {
-      if (settings->bools.ui_companion_start_on_boot)
+      unsigned ui_companion_start_on_boot = 
+         settings->bools.ui_companion_start_on_boot;
+
+      if (ui_companion_start_on_boot)
       {
          if (ui_companion->init)
             ui_companion_data = ui_companion->init();
@@ -11600,6 +11672,7 @@ void ui_companion_driver_notify_refresh(void)
    const ui_companion_driver_t *ui = ui_companion;
 #ifdef HAVE_QT
    settings_t      *settings       = configuration_settings;
+   bool desktop_menu_enable        = settings->bools.desktop_menu_enable;
 #endif
 
    if (!ui)
@@ -11607,13 +11680,14 @@ void ui_companion_driver_notify_refresh(void)
    if (ui->notify_refresh)
       ui->notify_refresh(ui_companion_data);
 #ifdef HAVE_QT
-   if (settings->bools.desktop_menu_enable)
+   if (desktop_menu_enable)
       if (ui_companion_qt.notify_refresh && qt_is_inited)
          ui_companion_qt.notify_refresh(ui_companion_qt_data);
 #endif
 }
 
-void ui_companion_driver_notify_list_loaded(file_list_t *list, file_list_t *menu_list)
+void ui_companion_driver_notify_list_loaded(
+      file_list_t *list, file_list_t *menu_list)
 {
    const ui_companion_driver_t *ui = ui_companion;
    if (ui && ui->notify_list_loaded)
@@ -11665,8 +11739,9 @@ static void ui_companion_driver_msg_queue_push(
       ui->msg_queue_push(ui_companion_data, msg, priority, duration, flush);
 #ifdef HAVE_QT
    {
-      settings_t *settings            = configuration_settings;
-      if (settings->bools.desktop_menu_enable)
+      settings_t *settings     = configuration_settings;
+      bool desktop_menu_enable = settings->bools.desktop_menu_enable;
+      if (desktop_menu_enable)
          if (ui_companion_qt.msg_queue_push && qt_is_inited)
             ui_companion_qt.msg_queue_push(ui_companion_qt_data, msg, priority, duration, flush);
    }
@@ -11692,9 +11767,10 @@ const char *ui_companion_driver_get_ident(void)
 void ui_companion_driver_log_msg(const char *msg)
 {
 #ifdef HAVE_QT
-   settings_t *settings = configuration_settings;
+   settings_t *settings     = configuration_settings;
+   bool desktop_menu_enable = settings->bools.desktop_menu_enable;
 
-   if (settings->bools.desktop_menu_enable)
+   if (desktop_menu_enable)
       if (ui_companion_qt_data && qt_is_inited)
          ui_companion_qt.log_msg(ui_companion_qt_data, msg);
 #endif
@@ -11959,6 +12035,7 @@ static bool recording_init(void)
    struct retro_system_av_info *av_info = &video_driver_av_info;
    settings_t *settings                 = configuration_settings;
    global_t *global                     = &g_extern;
+   bool video_gpu_record                = settings->bools.video_gpu_record;
 
    if (!recording_enable)
       return false;
@@ -11972,8 +12049,7 @@ static bool recording_init(void)
       return false;
    }
 
-   if (!settings->bools.video_gpu_record
-         && video_driver_is_hw_context())
+   if (!video_gpu_record && video_driver_is_hw_context())
    {
       RARCH_WARN("[recording] %s.\n",
             msg_hash_to_str(MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING));
@@ -14544,8 +14620,9 @@ static void menu_input_get_mouse_hw_state(
    bool is_rgui                    =
          (menu_data && menu_data->driver_ctx && menu_data->driver_ctx->set_texture);
 #ifdef HAVE_OVERLAY
+   bool overlay_enable = settings->bools.input_overlay_enable;
    /* Menu pointer controls are ignored when overlays are enabled. */
-   bool overlay_active = settings->bools.input_overlay_enable && overlay_ptr && overlay_ptr->alive;
+   bool overlay_active = overlay_enable && overlay_ptr && overlay_ptr->alive;
    if (overlay_active)
       mouse_enabled = false;
 #endif