mirror of https://github.com/PCSX2/pcsx2.git
Fix situation where a VIF IRQ triggers and the game triggers a STOP causing the IRQ to never trigger. (#3385)
Fixes Nitro Bike
This commit is contained in:
parent
184f0df2c5
commit
c009a95d68
|
@ -229,7 +229,6 @@ __fi void vif1FBRST(u32 value) {
|
||||||
// just stoppin the VIF (linuz).
|
// just stoppin the VIF (linuz).
|
||||||
vif1Regs.stat.VSS = true;
|
vif1Regs.stat.VSS = true;
|
||||||
vif1Regs.stat.VPS = VPS_IDLE;
|
vif1Regs.stat.VPS = VPS_IDLE;
|
||||||
cpuRegs.interrupt &= ~((1 << 1) | (1 << 10)); //Stop all vif1 DMA's
|
|
||||||
vif1.vifstalled.enabled = VifStallEnable(vif1ch);
|
vif1.vifstalled.enabled = VifStallEnable(vif1ch);
|
||||||
vif1.vifstalled.value = VIF_IRQ_STALL;
|
vif1.vifstalled.value = VIF_IRQ_STALL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -224,9 +224,9 @@ __fi void vif0Interrupt()
|
||||||
if (!vif0.done)
|
if (!vif0.done)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!(dmacRegs.ctrl.DMAE))
|
if (!(dmacRegs.ctrl.DMAE) || vif0Regs.stat.VSS) //Stopped or DMA Disabled
|
||||||
{
|
{
|
||||||
Console.WriteLn("vif0 dma masked");
|
//Console.WriteLn("vif0 dma masked");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -376,9 +376,9 @@ __fi void vif1Interrupt()
|
||||||
if (!vif1.done)
|
if (!vif1.done)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!(dmacRegs.ctrl.DMAE))
|
if (!(dmacRegs.ctrl.DMAE) || vif1Regs.stat.VSS) //Stopped or DMA Disabled
|
||||||
{
|
{
|
||||||
Console.WriteLn("vif1 dma masked");
|
//Console.WriteLn("vif1 dma masked");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue