Revert "Use RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE for rewind savesta…" (#18383)

This reverts commit aa89097cc0.
This commit is contained in:
LibretroAdmin 2025-11-12 22:41:24 +01:00 committed by GitHub
parent 38dc5d8267
commit b5509769c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 27 deletions

View File

@ -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;

View File

@ -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);
}

View File

@ -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