summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-10-06 20:56:26 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-10-06 20:56:26 +0000
commit83c326c0d7d786fdde2e47714e2fda78f0f6a09a (patch)
tree1eb21c6b60432814d00c525c33437def8050ac5a
parentf8b23faf9a11ba43822f2e3de05a3cfbb91914df (diff)
downloadpcsxr-83c326c0d7d786fdde2e47714e2fda78f0f6a09a.tar.gz
Judge Dredd: cdrom.c
- Don't return FORM2 during ADPCM playback - Fixes movies, in-game play (still problems with sprites) git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@58149 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-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);
+ }
}
/*