diff options
author | notaz | 2011-06-29 14:35:10 +0300 |
---|---|---|
committer | notaz | 2011-07-08 00:15:20 +0300 |
commit | ad418c19cd4ca9a80820593609b786c6993b2eda (patch) | |
tree | 545f51e495811f245b5c3625143791546c6174fa /libpcsxcore/cdrom.c | |
parent | 64bd6f82e9e86c7fac82c4c5c46056d6b4947826 (diff) | |
download | pcsx_rearmed-ad418c19cd4ca9a80820593609b786c6993b2eda.tar.gz pcsx_rearmed-ad418c19cd4ca9a80820593609b786c6993b2eda.tar.bz2 pcsx_rearmed-ad418c19cd4ca9a80820593609b786c6993b2eda.zip |
dma: don't generate irqs after aborted DMA
An idea from Shalma.
Verified on real thing with DMA2.
Diffstat (limited to 'libpcsxcore/cdrom.c')
-rw-r--r-- | libpcsxcore/cdrom.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index 33b76fa..1569839 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -2018,8 +2018,11 @@ void psxDma3(u32 madr, u32 bcr, u32 chcr) { void cdrDmaInterrupt() { - HW_DMA3_CHCR &= SWAP32(~0x01000000); - DMA_INTERRUPT(3); + if (HW_DMA3_CHCR & SWAP32(0x01000000)) + { + HW_DMA3_CHCR &= SWAP32(~0x01000000); + DMA_INTERRUPT(3); + } } void cdrReset() { |