IOP DMA: Only acknowledge SPU2 DMA interrupt if DMA hasn't been cancelled

Fixes Gregory Horror Show bad audio
This commit is contained in:
refractionpcsx2 2020-12-30 05:58:10 +00:00
parent 3b771a6a94
commit c998a51f71
1 changed files with 10 additions and 4 deletions

View File

@ -103,8 +103,11 @@ void spu2DMA4Irq()
Console.Warning("spu2DMA4Irq()");
#endif
SPU2interruptDMA4();
HW_DMA4_CHCR &= ~0x01000000;
psxDmaInterrupt(4);
if (HW_DMA4_CHCR & 0x01000000)
{
HW_DMA4_CHCR &= ~0x01000000;
psxDmaInterrupt(4);
}
}
void psxDma7(u32 madr, u32 bcr, u32 chcr) // SPU2's Core 1
@ -128,8 +131,11 @@ void spu2DMA7Irq()
Console.Warning("spu2DMA7Irq()");
#endif
SPU2interruptDMA7();
HW_DMA7_CHCR &= ~0x01000000;
psxDmaInterrupt2(0);
if (HW_DMA7_CHCR & 0x01000000)
{
HW_DMA7_CHCR &= ~0x01000000;
psxDmaInterrupt2(0);
}
}
#ifndef DISABLE_PSX_GPU_DMAS