diff options
| author | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-10-06 20:56:26 +0000 |
|---|---|---|
| committer | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-10-06 20:56:26 +0000 |
| commit | 83c326c0d7d786fdde2e47714e2fda78f0f6a09a (patch) | |
| tree | 1eb21c6b60432814d00c525c33437def8050ac5a /libpcsxcore/cdrom.c | |
| parent | f8b23faf9a11ba43822f2e3de05a3cfbb91914df (diff) | |
| download | pcsxr-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
Diffstat (limited to 'libpcsxcore/cdrom.c')
| -rw-r--r-- | libpcsxcore/cdrom.c | 9 |
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);
+ }
} /* |
