diff --git a/pcsx2/GS.cpp b/pcsx2/GS.cpp index 7c1942a798..8b869ecdcd 100644 --- a/pcsx2/GS.cpp +++ b/pcsx2/GS.cpp @@ -84,6 +84,8 @@ static __fi void gsCSRwrite( const tGS_CSR& csr ) gifUnit.gsFINISH.gsFINISHFired = true; // Privilage registers also reset. memzero(g_RealGSMem); + GSIMR.reset(); + CSRreg.Reset(); gsVideoMode = GS_VideoMode::Uninitialized; UpdateVSyncRate(); GetMTGS().SendSimplePacket(GS_RINGTYPE_RESET, 0, 0, 0); diff --git a/pcsx2/GS.h b/pcsx2/GS.h index 0d62618baf..1636c22c2f 100644 --- a/pcsx2/GS.h +++ b/pcsx2/GS.h @@ -153,7 +153,6 @@ union tGS_CSR void Reset() { - _u64 = 0; FIFO = CSR_FIFO_EMPTY; REV = 0x1B; // GS Revision ID = 0x55; // GS ID diff --git a/pcsx2/Gif_Unit.cpp b/pcsx2/Gif_Unit.cpp index a849a88890..7641185932 100644 --- a/pcsx2/Gif_Unit.cpp +++ b/pcsx2/Gif_Unit.cpp @@ -85,6 +85,7 @@ bool Gif_HandlerAD(u8* pMem) { // FINISH GUNIT_WARN("GIF Handler - FINISH"); CSRreg.FINISH = true; + gifUnit.gsFINISH.gsFINISHFired = false; } else if (reg == GIF_A_D_REG_LABEL) { // LABEL