diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 6f51e07fa0..27fc38e4b4 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -3787,19 +3787,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action) if (setting == MENU_SETTINGS_SAVESTATE_SAVE) rarch_main_command(RARCH_CMD_SAVE_STATE); else - { - // Disallow savestate load when we absolutely cannot change game state. -#ifdef HAVE_BSV_MOVIE - if (g_extern.bsv.movie) - break; -#endif -#ifdef HAVE_NETPLAY - if (g_extern.netplay) - break; -#endif rarch_main_command(RARCH_CMD_LOAD_STATE); - } - g_extern.lifecycle_state |= (1ULL << MODE_GAME); return -1; } else if (action == MENU_ACTION_START) @@ -3821,7 +3809,6 @@ static int menu_common_setting_set(unsigned setting, unsigned action) if (action == MENU_ACTION_OK) { rarch_main_command(RARCH_CMD_RESET); - g_extern.lifecycle_state |= (1ULL << MODE_GAME); return -1; } break; diff --git a/frontend/menu/backend/menu_lakka_backend.c b/frontend/menu/backend/menu_lakka_backend.c index b4a2fe44f6..4b7dc42639 100644 --- a/frontend/menu/backend/menu_lakka_backend.c +++ b/frontend/menu/backend/menu_lakka_backend.c @@ -355,13 +355,11 @@ static int menu_lakka_iterate(unsigned action) case 1: global_alpha = 0.0; rarch_main_command(RARCH_CMD_SAVE_STATE); - g_extern.lifecycle_state |= (1ULL << MODE_GAME); return -1; break; case 2: global_alpha = 0.0; rarch_main_command(RARCH_CMD_LOAD_STATE); - g_extern.lifecycle_state |= (1ULL << MODE_GAME); return -1; break; case 3: @@ -370,7 +368,6 @@ static int menu_lakka_iterate(unsigned action) case 4: global_alpha = 0.0; rarch_main_command(RARCH_CMD_RESET); - g_extern.lifecycle_state |= (1ULL << MODE_GAME); return -1; break; } diff --git a/retroarch.c b/retroarch.c index 49c73acf6a..c15fa3da72 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3098,13 +3098,25 @@ void rarch_main_command(unsigned action) #endif break; case RARCH_CMD_LOAD_STATE: + // Disallow savestate load when we absolutely cannot change game state. +#ifdef HAVE_BSV_MOVIE + if (g_extern.bsv.movie) + break; +#endif +#ifdef HAVE_NETPLAY + if (g_extern.netplay) + break; +#endif rarch_load_state(); + g_extern.lifecycle_state |= (1ULL << MODE_GAME); break; case RARCH_CMD_RESET: rarch_game_reset(); + g_extern.lifecycle_state |= (1ULL << MODE_GAME); break; case RARCH_CMD_SAVE_STATE: rarch_save_state(); + g_extern.lifecycle_state |= (1ULL << MODE_GAME); break; case RARCH_CMD_TAKE_SCREENSHOT: rarch_take_screenshot();