From a7c8da75786c3047914a968e12e7f0a6fffac2c1 Mon Sep 17 00:00:00 2001 From: "refraction@gmail.com" Date: Wed, 13 Feb 2013 21:49:54 +0000 Subject: [PATCH] Path3 Masking: Fix up some timing issues (now we have some lol) which made puzzle quest look even worse than it already did. also as a test i have enabled Intermittent transfer modes on GIF, however it's only very loosely working as it should, just enough so Puzzle Quest looks right. If it slows things down too much (initial testing is showing minimal slowdowns), then we can always disable it again. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5560 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/Gif.cpp | 2 +- pcsx2/Vif_Codes.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pcsx2/Gif.cpp b/pcsx2/Gif.cpp index 4249b52575..695c70d289 100644 --- a/pcsx2/Gif.cpp +++ b/pcsx2/Gif.cpp @@ -112,7 +112,7 @@ __fi void gifInterrupt() } static u32 WRITERING_DMA(u32 *pMem, u32 qwc) { - //qwc = min(qwc, 1024u); + if(gifRegs.stat.IMT) qwc = std::min(qwc, 1024u); uint size = gifUnit.TransferGSPacketData(GIF_TRANS_DMA, (u8*)pMem, qwc*16) / 16; incGifChAddr(size); return size; diff --git a/pcsx2/Vif_Codes.cpp b/pcsx2/Vif_Codes.cpp index dbb0507058..02c6d7f1c8 100644 --- a/pcsx2/Vif_Codes.cpp +++ b/pcsx2/Vif_Codes.cpp @@ -432,6 +432,14 @@ vifOp(vifCode_Nop) { GetVifX.cmd = 0; GetVifX.pass = 0; vifExecQueue(idx); + if(GetVifX.vifpacketsize > 1) + { + if(((data[1] >> 24) & 0x7f) == 0x6) //is mskpath3 next + { + GetVifX.vifstalled.enabled = true; + GetVifX.vifstalled.value = VIF_TIMING_BREAK; + } + } } pass3 { VifCodeLog("Nop"); } return 1;