From dd8734fce90d196aa14e3ad1630883cb953f97d2 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Thu, 8 May 2025 21:52:41 +0200 Subject: [PATCH] Fix game termination (again) We wait for the emu to stop, so it doesn't make sense to return the loop when we are "stopping". --- rpcs3/Emu/Cell/SPUThread.cpp | 4 ++-- rpcs3/Emu/System.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 8f812b5a4c..d0d4a0e7b4 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -6160,7 +6160,7 @@ s64 spu_thread::get_ch_value(u32 ch) { if (utils::has_waitpkg()) { - __tpause(std::min(eventstat_spin_count, 10) * 500, 0x1); + __tpause(std::min(eventstat_spin_count, 10) * 500, 0x1); } else { @@ -6173,7 +6173,7 @@ s64 spu_thread::get_ch_value(u32 ch) }; // Provide the first X64 cache line of the reservation to be tracked - __mwaitx(std::min(eventstat_spin_count, 17) * 500, 0xf0, std::addressof(*resrv_mem), +rtime, vm::reservation_acquire(raddr)); + __mwaitx(std::min(eventstat_spin_count, 17) * 500, 0xf0, std::addressof(*resrv_mem), +rtime, vm::reservation_acquire(raddr)); } } else diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 97a96ce9b3..86dc7f6503 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -2987,7 +2987,7 @@ void Emulator::GracefulShutdown(bool allow_autoexit, bool async_op, bool savesta }); } - if (static_cast(info) != m_stop_ctr || Emu.IsStopped()) + if (static_cast(info) != m_stop_ctr || Emu.IsStopped(true)) { return true; }