notaz.gp2x.de
/
pcsx_rearmed.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e4c83ca
)
cdrom: some subq hacks
author
notaz
<notasas@gmail.com>
Tue, 13 Nov 2012 23:33:27 +0000
(
01:33
+0200)
committer
notaz
<notasas@gmail.com>
Sat, 17 Nov 2012 23:40:00 +0000
(
01:40
+0200)
libpcsxcore/cdrom.c
patch
|
blob
|
blame
|
history
diff --git
a/libpcsxcore/cdrom.c
b/libpcsxcore/cdrom.c
index
ce0d66b
..
1d581e4
100644
(file)
--- a/
libpcsxcore/cdrom.c
+++ b/
libpcsxcore/cdrom.c
@@
-557,6
+557,8
@@
static void cdrPlayInterrupt_Autopause()
Tomb Raider 1 ($7)
*/
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 {
if( cdr.CurTrack + 1 == btoi( subq->TrackNumber ) )
track_changed = 1;
} else {
@@
-586,13
+588,14
@@
static void cdrPlayInterrupt_Autopause()
StopCdda();
}
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
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;
if (subq->AbsoluteAddress[2] & 0xf)
return;
@@
-783,7
+786,7
@@
void cdrInterrupt() {
cdr.SetSectorPlay[2] = cdr.ResultTD[0];
// reset data
cdr.SetSectorPlay[2] = cdr.ResultTD[0];
// reset data
- Set_Track();
+
//
Set_Track();
Find_CurTrack();
ReadTrack( cdr.SetSectorPlay );
Find_CurTrack();
ReadTrack( cdr.SetSectorPlay );