diff --git a/general.h b/general.h index 8340d3b983..ec71883200 100644 --- a/general.h +++ b/general.h @@ -148,6 +148,7 @@ enum action_state RARCH_ACTION_STATE_FLUSH_INPUT, RARCH_ACTION_STATE_FLUSH_INPUT_FINISHED, RARCH_ACTION_STATE_QUIT, + RARCH_ACTION_STATE_FORCE_QUIT, }; enum menu_enums diff --git a/retroarch.c b/retroarch.c index 60d1b41023..9dcc74e5dc 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3338,6 +3338,10 @@ void rarch_main_set_state(unsigned cmd) rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED); rarch_main_set_state(RARCH_ACTION_STATE_RUNNING_FINISHED); break; + case RARCH_ACTION_STATE_FORCE_QUIT: + g_extern.lifecycle_state = 0; + rarch_main_set_state(RARCH_ACTION_STATE_QUIT); + break; case RARCH_ACTION_STATE_FLUSH_INPUT: g_extern.lifecycle_state |= (1ULL << MODE_CLEAR_INPUT); break; @@ -3569,7 +3573,7 @@ void rarch_main_command(unsigned cmd) init_drivers(); break; case RARCH_CMD_QUIT_RETROARCH: - rarch_main_set_state(RARCH_ACTION_STATE_QUIT); + rarch_main_set_state(RARCH_ACTION_STATE_FORCE_QUIT); break; case RARCH_CMD_RESUME: rarch_main_set_state(RARCH_ACTION_STATE_RUNNING);