diff options
| author | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-10-30 14:53:47 +0000 |
|---|---|---|
| committer | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-10-30 14:53:47 +0000 |
| commit | 985796c01484339cbd10045b7cfd346d0090bc63 (patch) | |
| tree | ebb2d6a4db1eb7308323a261f22712ae3eac9cf8 /libpcsxcore/r3000a.c | |
| parent | e457712509039b896e3ffd260d32180cf775e7f9 (diff) | |
| download | pcsxr-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.c | 14 |
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();
+ }
+ }
} } |
