From 83c326c0d7d786fdde2e47714e2fda78f0f6a09a Mon Sep 17 00:00:00 2001 From: "SND\\shalma_cp" Date: Wed, 6 Oct 2010 20:56:26 +0000 Subject: 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 --- libpcsxcore/cdrom.c | 9 +++++++-- 1 file 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); + } } /* -- cgit v1.2.3