From 8dc1592278dea2b16f9f8cc82c937ecd4b962d2f Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Wed, 23 Mar 2022 01:21:55 +1000 Subject: [PATCH] GSDumpReplayer: Fix ReadFIFO2 packet executing on wrong thread --- pcsx2/GSDumpReplayer.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pcsx2/GSDumpReplayer.cpp b/pcsx2/GSDumpReplayer.cpp index 4460a76710..426bb8ff2d 100644 --- a/pcsx2/GSDumpReplayer.cpp +++ b/pcsx2/GSDumpReplayer.cpp @@ -258,8 +258,13 @@ void GSDumpReplayerCpuStep() case GSDumpTypes::GSType::ReadFIFO2: { - std::unique_ptr arr(new char[*((int*)packet.data)]); - GSreadFIFO2((u8*)arr.get(), *((int*)packet.data)); + u32 size; + std::memcpy(&size, packet.data, sizeof(size)); + + std::unique_ptr arr(new u8[size]); + GetMTGS().WaitGS(); + GetMTGS().SendPointerPacket(GS_RINGTYPE_INIT_READ_FIFO2, size, arr.get()); + GetMTGS().WaitGS(false); // wait without reg sync } break;