summaryrefslogtreecommitdiff
path: root/libpcsxcore/r3000a.c
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-10-30 14:53:47 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-10-30 14:53:47 +0000
commit985796c01484339cbd10045b7cfd346d0090bc63 (patch)
treeebb2d6a4db1eb7308323a261f22712ae3eac9cf8 /libpcsxcore/r3000a.c
parente457712509039b896e3ffd260d32180cf775e7f9 (diff)
downloadpcsxr-985796c01484339cbd10045b7cfd346d0090bc63.tar.gz
Vib Ribbon: cdrom.c
- Use own decoded buffer IRQ handling, fix CD swapping, demute cd-xa volume - Game mostly playable (original + music modes) git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@58927 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore/r3000a.c')
-rw-r--r--libpcsxcore/r3000a.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c
index 39bf7e78..0fa51fd5 100644
--- a/libpcsxcore/r3000a.c
+++ b/libpcsxcore/r3000a.c
@@ -200,6 +200,20 @@ void psxBranchTest() {
cdrRepplayInterrupt();
}
}
+
+ if (psxRegs.interrupt & (1 << PSXINT_CDRDBUF)) { // cdr decoded buffer
+ if ((psxRegs.cycle - psxRegs.intCycle[PSXINT_CDRDBUF].sCycle) >= psxRegs.intCycle[PSXINT_CDRDBUF].cycle) {
+ psxRegs.interrupt &= ~(1 << PSXINT_CDRDBUF);
+ cdrDecodedBufferInterrupt();
+ }
+ }
+
+ 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();
+ }
+ }
}
}