@@ -3150,29 +3150,37 @@ bool runloop_environment_cb(unsigned cmd, void *data)
31503150 {
31513151 int result = RETRO_SAVESTATE_CONTEXT_NORMAL ;
31523152
3153- #if defined(HAVE_RUNAHEAD ) || defined(HAVE_NETWORKING )
3154- if (runloop_st -> flags & RUNLOOP_FLAG_REQUEST_SPECIAL_SAVESTATE )
3153+ #ifdef HAVE_REWIND
3154+ if (runloop_st -> rewind_st .flags &
3155+ STATE_MGR_REWIND_ST_FLAG_IS_REWIND_SERIALIZE )
3156+ result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE ;
3157+ else
3158+ #endif
31553159 {
3160+ #if defined(HAVE_RUNAHEAD ) || defined(HAVE_NETWORKING )
3161+ if (runloop_st -> flags & RUNLOOP_FLAG_REQUEST_SPECIAL_SAVESTATE )
3162+ {
31563163#ifdef HAVE_NETWORKING
3157- if (netplay_driver_ctl (RARCH_NETPLAY_CTL_IS_ENABLED , NULL ))
3158- result = RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY ;
3159- else
3164+ if (netplay_driver_ctl (RARCH_NETPLAY_CTL_IS_ENABLED , NULL ))
3165+ result = RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY ;
3166+ else
31603167#endif
3161- {
3168+ {
31623169#ifdef HAVE_RUNAHEAD
31633170#if defined(HAVE_DYNAMIC ) || defined(HAVE_DYLIB )
3164- settings_t * settings = config_get_ptr ();
3165- if ( settings -> bools .run_ahead_secondary_instance
3166- && (runloop_st -> flags & RUNLOOP_FLAG_RUNAHEAD_SECONDARY_CORE_AVAILABLE )
3167- && secondary_core_ensure_exists (runloop_st , settings ))
3168- result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY ;
3169- else
3171+ settings_t * settings = config_get_ptr ();
3172+ if ( settings -> bools .run_ahead_secondary_instance
3173+ && (runloop_st -> flags & RUNLOOP_FLAG_RUNAHEAD_SECONDARY_CORE_AVAILABLE )
3174+ && secondary_core_ensure_exists (runloop_st , settings ))
3175+ result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY ;
3176+ else
31703177#endif
31713178 result = RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE ;
31723179#endif
3180+ }
31733181 }
3174- }
31753182#endif
3183+ }
31763184
31773185 if (data )
31783186 * (int * )data = result ;
0 commit comments