summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-10-10 20:16:42 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-10-10 20:16:42 +0000
commit1d2caefc0940340a6c10733da1a8b912eb76f2d9 (patch)
tree6275912bcb3374d7420b95af6745cb7d108692fe
parent5c85c661fe983e02e60a18daa4c9e616307095eb (diff)
downloadpcsxr-1d2caefc0940340a6c10733da1a8b912eb76f2d9.tar.gz
Hokuto no Ken 2: cdrom.c
- return FORM1 + FORM2 when ADPCM off - fixes recent boot problem, not intro glitches git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@58281 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--libpcsxcore/cdrom.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index de8e97ee..1ec126da 100644
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -887,8 +887,7 @@ void cdrReadInterrupt() {
// G-Police: Don't autopause ADPCM even if mode set (music)
if ((cdr.Transfer[4 + 2] & 0x80) && (cdr.Mode & 0x2) &&
- (cdr.Transfer[4 + 0] == cdr.File) && (cdr.Transfer[4 + 1] == cdr.Channel) &&
- (cdr.Transfer[4 + 2] & 0x64) != 0x64 ) { // EOF
+ (cdr.Transfer[4 + 2] & 0x4) != 0x4 ) { // EOF
#ifdef CDR_LOG
CDR_LOG("cdrReadInterrupt() Log: Autopausing read\n");
#endif
@@ -898,13 +897,14 @@ void cdrReadInterrupt() {
else {
CDREAD_INT((cdr.Mode & 0x80) ? (cdReadTime / 2) : cdReadTime);
}
-
+
/*
- Judge Dredd: don't return FORM2 during ADPCM playback (movie playing)
-
- Xenogears: use correct FORM2 ID ($64 / $E4 for movies)
- */
- if( (cdr.Transfer[4+2] & 0x64) != 0x64 ) {
+ Hokuto no Ken 2: $A0 - return FORM1 + FORM2
+ Judge Dredd: $C8 - only FORM1
+ Xenogears: $C8 - only FORM1
+ */
+
+ if( (cdr.Mode & 0x40) == 0 || (cdr.Transfer[4+2] & 0x4) != 0x4 )
cdr.Stat = DataReady;
psxHu32ref(0x1070) |= SWAP32((u32)0x4);