diff options
author | notaz | 2012-11-14 01:33:27 +0200 |
---|---|---|
committer | notaz | 2012-11-18 01:40:00 +0200 |
commit | a02ee86fc0e356c99516bb0d1e76c88a907a796f (patch) | |
tree | 060bb43141a798b3c0ea8a960f070fabc9baab79 | |
parent | e4c83ca67cf7ad13db3995909605ce01ff915824 (diff) | |
download | pcsx_rearmed-a02ee86fc0e356c99516bb0d1e76c88a907a796f.tar.gz pcsx_rearmed-a02ee86fc0e356c99516bb0d1e76c88a907a796f.tar.bz2 pcsx_rearmed-a02ee86fc0e356c99516bb0d1e76c88a907a796f.zip |
cdrom: some subq hacks
-rw-r--r-- | libpcsxcore/cdrom.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index ce0d66b..1d581e4 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -557,6 +557,8 @@ static void cdrPlayInterrupt_Autopause() Tomb Raider 1 ($7) */ + // .. + 1 is probably wrong, but deals with corrupted subq + good checksum + // (how does real thing handle those?) if( cdr.CurTrack + 1 == btoi( subq->TrackNumber ) ) track_changed = 1; } else { @@ -586,13 +588,14 @@ static void cdrPlayInterrupt_Autopause() StopCdda(); } - if (cdr.Mode & MODE_REPORT) { + else if (cdr.Mode & MODE_REPORT) { if (subq != NULL) { #ifdef CDR_LOG CDR_LOG( "REPPLAY SUB - %X:%X:%X\n", subq->AbsoluteAddress[0], subq->AbsoluteAddress[1], subq->AbsoluteAddress[2] ); #endif - cdr.CurTrack = btoi( subq->TrackNumber ); + // breaks when .sub doesn't have index 0 for some reason (bad rip?) + //cdr.CurTrack = btoi( subq->TrackNumber ); if (subq->AbsoluteAddress[2] & 0xf) return; @@ -783,7 +786,7 @@ void cdrInterrupt() { cdr.SetSectorPlay[2] = cdr.ResultTD[0]; // reset data - Set_Track(); + //Set_Track(); Find_CurTrack(); ReadTrack( cdr.SetSectorPlay ); |