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
try to align timing with LCD refresh
[pcsx_rearmed.git]
/
libpcsxcore
/
cdrom.c
diff --git
a/libpcsxcore/cdrom.c
b/libpcsxcore/cdrom.c
index
343d82c
..
142c1e2
100644
(file)
--- a/
libpcsxcore/cdrom.c
+++ b/
libpcsxcore/cdrom.c
@@
-861,7
+861,17
@@
void cdrInterrupt() {
cdr.Result[0] = cdr.StatP;
cdr.Stat = Acknowledge;
cdr.Result[0] = cdr.StatP;
cdr.Stat = Acknowledge;
- AddIrqQueue(CdlPause + 0x20, 0x800);
+ /*
+ Gundam Battle Assault 2: much slower (*)
+ - Fixes boot, gameplay
+
+ Hokuto no Ken 2: slower
+ - Fixes intro + subtitles
+
+ InuYasha - Feudal Fairy Tale: slower
+ - Fixes battles
+ */
+ AddIrqQueue(CdlPause + 0x20, cdReadTime * 3);
cdr.Ctrl |= 0x80;
break;
cdr.Ctrl |= 0x80;
break;
@@
-978,10
+988,9
@@
void cdrInterrupt() {
}
// redump.org - wipe time
}
// redump.org - wipe time
-
/*
if( !cdr.Play && CheckSBI(cdr.Result+5) ) {
+ if( !cdr.Play && CheckSBI(cdr.Result+5) ) {
memset( cdr.Result+2, 0, 6 );
}
memset( cdr.Result+2, 0, 6 );
}
- */
cdr.Stat = Acknowledge;
break;
cdr.Stat = Acknowledge;
break;
@@
-1321,11
+1330,14
@@
void cdrReadInterrupt() {
SPU_playADPCMchannel(&cdr.Xa);
cdr.FirstSector = 0;
SPU_playADPCMchannel(&cdr.Xa);
cdr.FirstSector = 0;
-
+#if 0
// Crash Team Racing: music, speech
// Crash Team Racing: music, speech
+ // - done using cdda decoded buffer (spu irq)
+ // - don't do here
// signal ADPCM data ready
psxHu32ref(0x1070) |= SWAP32((u32)0x200);
// signal ADPCM data ready
psxHu32ref(0x1070) |= SWAP32((u32)0x200);
+#endif
}
else cdr.FirstSector = -1;
}
}
else cdr.FirstSector = -1;
}
@@
-1610,17
+1622,7
@@
void cdrWrite1(unsigned char rt) {
cdr.Ctrl |= 0x80;
cdr.Stat = NoIntr;
cdr.Ctrl |= 0x80;
cdr.Stat = NoIntr;
- /*
- Gundam Battle Assault 2: much slower (*)
- - Fixes boot, gameplay
-
- Hokuto no Ken 2: slower
- - Fixes intro + subtitles
-
- InuYasha - Feudal Fairy Tale: slower
- - Fixes battles
- */
- AddIrqQueue(cdr.Cmd, cdReadTime * 3);
+ AddIrqQueue(cdr.Cmd, 0x800);
break;
case CdlReset:
break;
case CdlReset:
@@
-1898,11
+1900,10
@@
void cdrWrite3(unsigned char rt) {
// - Final Fantasy Tactics
// - various other games
// - Final Fantasy Tactics
// - various other games
- /*
+ if (cdr.Irq) // rearmed guesswork hack
if (cdr.Reading && !cdr.ResultReady) {
CDREAD_INT((cdr.Mode & MODE_SPEED) ? (cdReadTime / 2) : cdReadTime);
}
if (cdr.Reading && !cdr.ResultReady) {
CDREAD_INT((cdr.Mode & MODE_SPEED) ? (cdReadTime / 2) : cdReadTime);
}
- */
return;
}
return;
}