From b5509769c24bf6892bc1170a3c03bb4cb8549620 Mon Sep 17 00:00:00 2001 From: LibretroAdmin <105389611+LibretroAdmin@users.noreply.github.com> Date: Wed, 12 Nov 2025 22:41:24 +0100 Subject: [PATCH] =?UTF-8?q?Revert=20"Use=20RETRO=5FSAVESTATE=5FCONTEXT=5FR?= =?UTF-8?q?UNAHEAD=5FSAME=5FINSTANCE=20for=20rewind=20savesta=E2=80=A6"=20?= =?UTF-8?q?(#18383)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit aa89097cc020f70d79bafdd79e29f26384da3cb4. --- runloop.c | 34 +++++++++++++--------------------- state_manager.c | 4 ---- state_manager.h | 3 +-- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/runloop.c b/runloop.c index 42641c182b..b180ece687 100644 --- a/runloop.c +++ b/runloop.c @@ -3153,37 +3153,29 @@ bool runloop_environment_cb(unsigned cmd, void *data) { int result = RETRO_SAVESTATE_CONTEXT_NORMAL; -#ifdef HAVE_REWIND - if (runloop_st->rewind_st.flags & - STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE) - result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE; - else -#endif - { #if defined(HAVE_RUNAHEAD) || defined(HAVE_NETWORKING) - if (runloop_st->flags & RUNLOOP_FLAG_REQUEST_SPECIAL_SAVESTATE) - { + if (runloop_st->flags & RUNLOOP_FLAG_REQUEST_SPECIAL_SAVESTATE) + { #ifdef HAVE_NETWORKING - if (netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL)) - result = RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY; - else + if (netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL)) + result = RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY; + else #endif - { + { #ifdef HAVE_RUNAHEAD #if defined(HAVE_DYNAMIC) || defined(HAVE_DYLIB) - settings_t *settings = config_get_ptr(); - if ( settings->bools.run_ahead_secondary_instance - && (runloop_st->flags & RUNLOOP_FLAG_RUNAHEAD_SECONDARY_CORE_AVAILABLE) - && secondary_core_ensure_exists(runloop_st, settings)) - result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY; - else + settings_t *settings = config_get_ptr(); + if ( settings->bools.run_ahead_secondary_instance + && (runloop_st->flags & RUNLOOP_FLAG_RUNAHEAD_SECONDARY_CORE_AVAILABLE) + && secondary_core_ensure_exists(runloop_st, settings)) + result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY; + else #endif result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE; #endif - } } -#endif } +#endif if (data) *(int*)data = result; diff --git a/state_manager.c b/state_manager.c index c1256cdc08..b1d8616a9f 100644 --- a/state_manager.c +++ b/state_manager.c @@ -626,9 +626,7 @@ void state_manager_event_init( state_manager_push_where(rewind_st->state, &state); - rewind_st->flags |= STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE; content_serialize_state_rewind(state, rewind_st->size); - rewind_st->flags &= ~STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE; state_manager_push_do(rewind_st->state); } @@ -805,9 +803,7 @@ bool state_manager_check_rewind( void *state = NULL; state_manager_push_where(rewind_st->state, &state); - rewind_st->flags |= STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE; content_serialize_state_rewind(state, rewind_st->size); - rewind_st->flags &= ~STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE; state_manager_push_do(rewind_st->state); } diff --git a/state_manager.h b/state_manager.h index d7193c169d..ac14083843 100644 --- a/state_manager.h +++ b/state_manager.h @@ -33,8 +33,7 @@ enum state_manager_rewind_st_flags STATE_MGR_REWIND_ST_FLAG_FRAME_IS_REVERSED = (1 << 0), STATE_MGR_REWIND_ST_FLAG_INIT_ATTEMPTED = (1 << 1), STATE_MGR_REWIND_ST_FLAG_HOTKEY_WAS_CHECKED = (1 << 2), - STATE_MGR_REWIND_ST_FLAG_HOTKEY_WAS_PRESSED = (1 << 3), - STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE = (1 << 4) + STATE_MGR_REWIND_ST_FLAG_HOTKEY_WAS_PRESSED = (1 << 3) }; struct state_manager