VIF: Only enable reverse FIFO hack if VIF1 is still active

This commit is contained in:
refractionpcsx2 2021-08-01 01:54:32 +01:00
parent 407a64c118
commit 97bfe08c04
1 changed files with 6 additions and 3 deletions

View File

@ -264,10 +264,13 @@ __fi void vif1STAT(u32 value)
//position, as we clear it and set it to the end well before the interrupt, the game assumes it's finished, //position, as we clear it and set it to the end well before the interrupt, the game assumes it's finished,
//then proceeds to reverse the dma before we have even done it ourselves. So lets just make sure VIF is ready :) //then proceeds to reverse the dma before we have even done it ourselves. So lets just make sure VIF is ready :)
if (vif1ch.qwc > 0 || isStalled == false) if (vif1ch.qwc > 0 || isStalled == false)
{
if (vif1ch.chcr.STR)
{ {
vif1ch.qwc = 0; vif1ch.qwc = 0;
hwDmacIrq(DMAC_VIF1); hwDmacIrq(DMAC_VIF1);
vif1ch.chcr.STR = false; vif1ch.chcr.STR = false;
}
cpuRegs.interrupt &= ~((1 << DMAC_VIF1) | (1 << DMAC_MFIFO_VIF)); cpuRegs.interrupt &= ~((1 << DMAC_VIF1) | (1 << DMAC_MFIFO_VIF));
} }
//This is actually more important for our handling, else the DMA for reverse fifo doesnt start properly. //This is actually more important for our handling, else the DMA for reverse fifo doesnt start properly.