From eb0d18f484141c4ade8d25feed1a79247611aad9 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Mon, 6 Mar 2023 18:39:26 +1000 Subject: [PATCH] GSDumpReplayer: Fix resetting And get rid of memory reset, it's never used. --- pcsx2/GSDumpReplayer.cpp | 6 ------ pcsx2/GSDumpReplayer.h | 1 - pcsx2/R5900.cpp | 4 +++- pcsx2/System.cpp | 12 +++++++++--- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/pcsx2/GSDumpReplayer.cpp b/pcsx2/GSDumpReplayer.cpp index 680da0002a..faa3667759 100644 --- a/pcsx2/GSDumpReplayer.cpp +++ b/pcsx2/GSDumpReplayer.cpp @@ -144,11 +144,6 @@ bool GSDumpReplayer::ChangeDump(const char* filename) return true; } -void GSDumpReplayer::Reset() -{ - GSDumpReplayerCpuReset(); -} - void GSDumpReplayer::Shutdown() { Console.WriteLn("(GSDumpReplayer) Shutting down."); @@ -204,7 +199,6 @@ void GSDumpReplayerCpuReset() s_needs_state_loaded = true; s_current_packet = 0; s_dump_frame_number = 0; - hwReset(); } static void GSDumpReplayerLoadInitialState() diff --git a/pcsx2/GSDumpReplayer.h b/pcsx2/GSDumpReplayer.h index 1fe4a3034c..509ad3f71b 100644 --- a/pcsx2/GSDumpReplayer.h +++ b/pcsx2/GSDumpReplayer.h @@ -31,7 +31,6 @@ void SetIsDumpRunner(bool is_runner); bool Initialize(const char* filename); bool ChangeDump(const char* filename); -void Reset(); void Shutdown(); std::string GetDumpSerial(); diff --git a/pcsx2/R5900.cpp b/pcsx2/R5900.cpp index 073ca936ba..41606f3e67 100644 --- a/pcsx2/R5900.cpp +++ b/pcsx2/R5900.cpp @@ -34,6 +34,7 @@ #include "CDVD/CDVD.h" #include "Patch.h" #include "GameDatabase.h" +#include "GSDumpReplayer.h" #include "DebugTools/Breakpoints.h" #include "DebugTools/MIPSAnalyst.h" @@ -78,7 +79,8 @@ void cpuReset() if (GetMTGS().IsOpen()) GetMTGS().WaitGS(); // GS better be done processing before we reset the EE, just in case. - GetVmMemory().Reset(); + if (!GSDumpReplayer::IsReplayingDump()) + GetVmMemory().Reset(); memzero(cpuRegs); memzero(fpuRegs); diff --git a/pcsx2/System.cpp b/pcsx2/System.cpp index 12ec00310f..a207d97407 100644 --- a/pcsx2/System.cpp +++ b/pcsx2/System.cpp @@ -303,6 +303,15 @@ BaseVUmicroCPU* CpuVU1 = nullptr; void SysCpuProviderPack::ApplyConfig() const { + if (GSDumpReplayer::IsReplayingDump()) + { + Cpu = &GSDumpReplayerCpu; + psxCpu = &psxInt; + CpuVU0 = &CpuIntVU0; + CpuVU1 = &CpuIntVU1; + return; + } + Cpu = CHECK_EEREC ? &recCpu : &intCpu; psxCpu = CHECK_IOPREC ? &psxRec : &psxInt; @@ -314,9 +323,6 @@ void SysCpuProviderPack::ApplyConfig() const if (EmuConfig.Cpu.Recompiler.EnableVU1) CpuVU1 = &CpuMicroVU1; - - if (GSDumpReplayer::IsReplayingDump()) - Cpu = &GSDumpReplayerCpu; } // Resets all PS2 cpu execution caches, which does not affect that actual PS2 state/condition.