diff --git a/frontend/frontend.c b/frontend/frontend.c index 99e8a9e2c9..4c7de987fc 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -209,23 +209,21 @@ int main_entry_iterate_menu(signature(), args_type() args) if (g_extern.system.shutdown) return main_entry_iterate_shutdown(signature_expand(), args); - if (menu_iterate()) + if (!menu_iterate()) { - if (driver.frontend_ctx && driver.frontend_ctx->process_events) - driver.frontend_ctx->process_events(args); - return 0; + rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED); + driver_set_nonblock_state(driver.nonblock_state); + + rarch_main_command(RARCH_CMD_AUDIO_START); + rarch_main_set_state(RARCH_ACTION_STATE_FLUSH_INPUT); + + if (input_key_pressed_func(RARCH_QUIT_KEY) || + !driver.video->alive(driver.video_data)) + return 1; } - rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED); - driver_set_nonblock_state(driver.nonblock_state); - - rarch_main_command(RARCH_CMD_AUDIO_START); - rarch_main_set_state(RARCH_ACTION_STATE_FLUSH_INPUT); - - if (input_key_pressed_func(RARCH_QUIT_KEY) || - !driver.video->alive(driver.video_data)) - return 1; - + if (driver.frontend_ctx && driver.frontend_ctx->process_events) + driver.frontend_ctx->process_events(args); return 0; } #endif diff --git a/retroarch.c b/retroarch.c index a67af7d7f8..777e6125ae 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3285,9 +3285,6 @@ static inline void limit_frame_time(void) void rarch_main_set_state(unsigned cmd) { - - frontend_loop = NULL; - switch (cmd) { case RARCH_ACTION_STATE_MENU_PREINIT: