notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drop some unused code
[pcsx_rearmed.git]
/
libpcsxcore
/
cdrom.c
diff --git
a/libpcsxcore/cdrom.c
b/libpcsxcore/cdrom.c
index
8785598
..
3bf3e03
100644
(file)
--- a/
libpcsxcore/cdrom.c
+++ b/
libpcsxcore/cdrom.c
@@
-541,6
+541,9
@@
static void cdrPlayInterrupt_Autopause()
struct SubQ *subq = (struct SubQ *)CDR_getBufferSub();
int track_changed = 0;
if (subq != NULL ) {
struct SubQ *subq = (struct SubQ *)CDR_getBufferSub();
int track_changed = 0;
if (subq != NULL ) {
+ // update subq
+ ReadTrack( cdr.SetSectorPlay );
+
#ifdef CDR_LOG
CDR_LOG( "CDDA SUB - %X:%X:%X\n",
subq->AbsoluteAddress[0], subq->AbsoluteAddress[1], subq->AbsoluteAddress[2] );
#ifdef CDR_LOG
CDR_LOG( "CDDA SUB - %X:%X:%X\n",
subq->AbsoluteAddress[0], subq->AbsoluteAddress[1], subq->AbsoluteAddress[2] );
@@
-553,7
+556,7
@@
static void cdrPlayInterrupt_Autopause()
Tomb Raider 1 ($7)
*/
Tomb Raider 1 ($7)
*/
- if( cdr.CurTrack
<
btoi( subq->TrackNumber ) )
+ if( cdr.CurTrack
+ 1 ==
btoi( subq->TrackNumber ) )
track_changed = 1;
} else {
Create_Fake_Subq();
track_changed = 1;
} else {
Create_Fake_Subq();
@@
-958,6
+961,9
@@
void cdrInterrupt() {
subq = (struct SubQ *)CDR_getBufferSub();
if (subq != NULL) {
subq = (struct SubQ *)CDR_getBufferSub();
if (subq != NULL) {
+ // update subq
+ ReadTrack( cdr.SetSectorPlay );
+
cdr.Result[0] = subq->TrackNumber;
cdr.Result[1] = subq->IndexNumber;
memcpy(cdr.Result + 2, subq->TrackRelativeAddress, 3);
cdr.Result[0] = subq->TrackNumber;
cdr.Result[1] = subq->IndexNumber;
memcpy(cdr.Result + 2, subq->TrackRelativeAddress, 3);
@@
-1264,6
+1270,9
@@
void cdrInterrupt() {
Check_Shell( Irq );
Check_Shell( Irq );
+ cdr.ParamP = 0;
+ cdr.ParamC = 0;
+
if (cdr.Stat != NoIntr && cdr.Reg2 != 0x18) {
psxHu32ref(0x1070) |= SWAP32((u32)0x4);
}
if (cdr.Stat != NoIntr && cdr.Reg2 != 0x18) {
psxHu32ref(0x1070) |= SWAP32((u32)0x4);
}
@@
-1451,12
+1460,6
@@
void cdrWrite0(unsigned char rt) {
CDR_LOG("cdrWrite0() Log: CD0 write: %x\n", rt);
#endif
cdr.Ctrl = (rt & 3) | (cdr.Ctrl & ~3);
CDR_LOG("cdrWrite0() Log: CD0 write: %x\n", rt);
#endif
cdr.Ctrl = (rt & 3) | (cdr.Ctrl & ~3);
-
- if (rt == 0) {
- cdr.ParamP = 0;
- cdr.ParamC = 0;
- cdr.ResultReady = 0;
- }
}
unsigned char cdrRead1(void) {
}
unsigned char cdrRead1(void) {
@@
-1508,6
+1511,8
@@
void cdrWrite1(unsigned char rt) {
if (cdr.Ctrl & 0x3) return;
if (cdr.Ctrl & 0x3) return;
+ cdr.ResultReady = 0;
+
switch (cdr.Cmd) {
case CdlSync:
cdr.Ctrl |= 0x80;
switch (cdr.Cmd) {
case CdlSync:
cdr.Ctrl |= 0x80;
@@
-1809,6
+1814,8
@@
void cdrWrite1(unsigned char rt) {
break;
default:
break;
default:
+ cdr.ParamP = 0;
+ cdr.ParamC = 0;
#ifdef CDR_LOG
CDR_LOG("cdrWrite1() Log: Unknown command: %x\n", cdr.Cmd);
#endif
#ifdef CDR_LOG
CDR_LOG("cdrWrite1() Log: Unknown command: %x\n", cdr.Cmd);
#endif