summaryrefslogtreecommitdiff
path: root/libpcsxcore/cdrom.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore/cdrom.c')
-rw-r--r--libpcsxcore/cdrom.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index 9c095aa1..1928e09a 100644
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -816,7 +816,6 @@ void cdrReadInterrupt() {
memcpy(cdr.Transfer, buf, DATA_SIZE);
CheckPPFCache(cdr.Transfer, cdr.Prev[0], cdr.Prev[1], cdr.Prev[2]);
- cdr.Stat = DataReady;
#ifdef CDR_LOG
fprintf(emuLog, "cdrReadInterrupt() Log: cdr.Transfer %x:%x:%x\n", cdr.Transfer[0], cdr.Transfer[1], cdr.Transfer[2]);
@@ -863,7 +862,13 @@ void cdrReadInterrupt() {
else {
CDREAD_INT((cdr.Mode & 0x80) ? (cdReadTime / 2) : cdReadTime);
}
- psxHu32ref(0x1070) |= SWAP32((u32)0x4);
+
+ // Judge Dredd: don't return FORM2 during XA playback (movie playing)
+ if( (cdr.Mode & 0x40) == 0 || ( cdr.Transfer[4+3] == 0 )) {
+ cdr.Stat = DataReady;
+
+ psxHu32ref(0x1070) |= SWAP32((u32)0x4);
+ }
}
/*