aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/r3000a.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore/r3000a.c')
-rw-r--r--libpcsxcore/r3000a.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c
index f92edb7..ba33548 100644
--- a/libpcsxcore/r3000a.c
+++ b/libpcsxcore/r3000a.c
@@ -163,6 +163,18 @@ void psxBranchTest() {
gpuotcInterrupt();
}
}
+ if (psxRegs.interrupt & (1 << PSXINT_CDRDMA)) { // cdrom
+ if ((psxRegs.cycle - psxRegs.intCycle[PSXINT_CDRDMA].sCycle) >= psxRegs.intCycle[PSXINT_CDRDMA].cycle) {
+ psxRegs.interrupt &= ~(1 << PSXINT_CDRDMA);
+ cdrDmaInterrupt();
+ }
+ }
+ if (psxRegs.interrupt & (1 << PSXINT_CDRLID)) { // cdr lid states
+ if ((psxRegs.cycle - psxRegs.intCycle[PSXINT_CDRLID].sCycle) >= psxRegs.intCycle[PSXINT_CDRLID].cycle) {
+ psxRegs.interrupt &= ~(1 << PSXINT_CDRLID);
+ cdrLidSeekInterrupt();
+ }
+ }
}
if (psxHu32(0x1070) & psxHu32(0x1074)) {