From 286769dc034ddbc97c71337876101d1d10d9c253 Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Sat, 24 Oct 2015 13:24:57 +0100 Subject: [PATCH] VIF MFifo: Simulate buffer filling time from Scratchpad. -Fixes other Chessmaster hang. -having it say it has data really quickly if the data incoming was huge seemed to throw it off. I suspect it may actually be the time it takes to fill 16qw (or whatever is incoming if lower) is the wait time but it seems rather happy with the incoming data size. --- pcsx2/Vif.cpp | 2 +- pcsx2/Vif1_MFIFO.cpp | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pcsx2/Vif.cpp b/pcsx2/Vif.cpp index 88335daf5c..d1e5a0df96 100644 --- a/pcsx2/Vif.cpp +++ b/pcsx2/Vif.cpp @@ -271,7 +271,7 @@ __fi void vif1FBRST(u32 value) { case MFD_VIF1: //Console.WriteLn("MFIFO Stall"); //MFIFO active and not empty - if(vif1ch.chcr.STR == true && !(vif1.inprogress & 0x10)) CPU_INT(DMAC_MFIFO_VIF, 0); + if(vif1ch.chcr.STR == true) CPU_INT(DMAC_MFIFO_VIF, 0); break; case NO_MFD: diff --git a/pcsx2/Vif1_MFIFO.cpp b/pcsx2/Vif1_MFIFO.cpp index e4feb0049a..2777820c2c 100644 --- a/pcsx2/Vif1_MFIFO.cpp +++ b/pcsx2/Vif1_MFIFO.cpp @@ -187,7 +187,8 @@ void mfifoVIF1transfer(int qwc) if(vif1ch.chcr.STR == true && !(cpuRegs.interrupt & (1<