@@ -3153,29 +3153,37 @@ bool runloop_environment_cb(unsigned cmd, void *data)
31533153 {
31543154 int result = RETRO_SAVESTATE_CONTEXT_NORMAL ;
31553155
3156- #if defined(HAVE_RUNAHEAD ) || defined(HAVE_NETWORKING )
3157- if (runloop_st -> flags & RUNLOOP_FLAG_REQUEST_SPECIAL_SAVESTATE )
3156+ #ifdef HAVE_REWIND
3157+ if (runloop_st -> rewind_st .flags &
3158+ STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE )
3159+ result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE ;
3160+ else
3161+ #endif
31583162 {
3163+ #if defined(HAVE_RUNAHEAD ) || defined(HAVE_NETWORKING )
3164+ if (runloop_st -> flags & RUNLOOP_FLAG_REQUEST_SPECIAL_SAVESTATE )
3165+ {
31593166#ifdef HAVE_NETWORKING
3160- if (netplay_driver_ctl (RARCH_NETPLAY_CTL_IS_ENABLED , NULL ))
3161- result = RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY ;
3162- else
3167+ if (netplay_driver_ctl (RARCH_NETPLAY_CTL_IS_ENABLED , NULL ))
3168+ result = RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY ;
3169+ else
31633170#endif
3164- {
3171+ {
31653172#ifdef HAVE_RUNAHEAD
31663173#if defined(HAVE_DYNAMIC ) || defined(HAVE_DYLIB )
3167- settings_t * settings = config_get_ptr ();
3168- if ( settings -> bools .run_ahead_secondary_instance
3169- && (runloop_st -> flags & RUNLOOP_FLAG_RUNAHEAD_SECONDARY_CORE_AVAILABLE )
3170- && secondary_core_ensure_exists (runloop_st , settings ))
3171- result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY ;
3172- else
3174+ settings_t * settings = config_get_ptr ();
3175+ if ( settings -> bools .run_ahead_secondary_instance
3176+ && (runloop_st -> flags & RUNLOOP_FLAG_RUNAHEAD_SECONDARY_CORE_AVAILABLE )
3177+ && secondary_core_ensure_exists (runloop_st , settings ))
3178+ result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY ;
3179+ else
31733180#endif
31743181 result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE ;
31753182#endif
3183+ }
31763184 }
3177- }
31783185#endif
3186+ }
31793187
31803188 if (data )
31813189 * (int * )data = result ;
0 commit comments