diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index f5a0f6b75d..0fa9300cc2 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -3991,6 +3991,9 @@ game_boot_result Emulator::Restart(bool graceful) m_path = m_path_real; } + // Allow Boot (guarded by GracefulShutdown, which is the scope of this callback) + m_restrict_emu_state_change = 0; + // Reload with prior configs. if (const auto error = Load(m_title_id); error != game_boot_result::no_errors) { diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 3f5d8f4f57..3bf33bcd52 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -394,7 +394,7 @@ public: { if (active) { - _this->m_restrict_emu_state_change--; + _this->m_restrict_emu_state_change.try_dec(0); } }