diff --git a/dynamic.c b/dynamic.c index 17cc937d83..5713e8ecec 100644 --- a/dynamic.c +++ b/dynamic.c @@ -780,6 +780,7 @@ bool rarch_environment_cb(unsigned cmd, void *data) #elif defined(HAVE_DYNAMIC) g_extern.lifecycle_mode_state |= (1ULL << MODE_LOAD_GAME); #endif + g_extern.exec = true; break; diff --git a/general.h b/general.h index 85a97eeb4c..09364943c7 100644 --- a/general.h +++ b/general.h @@ -472,6 +472,8 @@ struct global msg_queue_t *msg_queue; + bool exec; + // Rewind support. state_manager_t *state_manager; void *state_buf; diff --git a/retroarch.c b/retroarch.c index 8c1ceed1cd..ce73bb23f8 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3059,6 +3059,12 @@ bool rarch_main_iterate(void) if (check_enter_rgui()) return false; // Enter menu, don't exit. + if (g_extern.exec) + { + g_extern.exec = false; + return false; + } + #ifdef HAVE_COMMAND if (driver.command) rarch_cmd_pre_frame(driver.command);