diff --git a/command.c b/command.c index 981100b122..878a24f211 100644 --- a/command.c +++ b/command.c @@ -1291,7 +1291,8 @@ static void command_event_restore_default_shader_preset(void) static void command_event_restore_remaps(void) { - input_remapping_set_defaults(); + if (rarch_ctl(RARCH_CTL_IS_REMAPS_GAME_ACTIVE, NULL)) + input_remapping_set_defaults(); } static bool command_event_save_auto_state(void) diff --git a/input/input_remapping.c b/input/input_remapping.c index bb5ffa6969..4f1924a3e3 100644 --- a/input/input_remapping.c +++ b/input/input_remapping.c @@ -213,7 +213,10 @@ void input_remapping_set_defaults(void) } for (j = 0; j < 4; j++) settings->uints.input_remap_ids[i][RARCH_FIRST_CUSTOM_BIND + j] = j; - settings->uints.input_analog_dpad_mode[i] = old_analog_dpad_mode[i]; - settings->uints.input_libretro_device[i] = old_libretro_device[i]; + + if (old_analog_dpad_mode[i]) + settings->uints.input_analog_dpad_mode[i] = old_analog_dpad_mode[i]; + if (old_libretro_device[i]) + settings->uints.input_libretro_device[i] = old_libretro_device[i]; } }