cdrom: workaround timing problems
not needed in ReARMed for some reason. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82209 e17a0e51-4ae3-4d35-97c3-1a29b211df97
This commit is contained in:
parent
2cc65d700a
commit
27c28fcc73
|
@ -1204,6 +1204,15 @@ void cdrReadInterrupt() {
|
|||
return;
|
||||
}
|
||||
|
||||
if ((psxHu32ref(0x1070) & psxHu32ref(0x1074) & SWAP32((u32)0x4)) && !cdr.ReadRescheduled) {
|
||||
// HACK: with BIAS 2, emulated CPU is often slower than real thing,
|
||||
// game may be unfinished with prev data read, so reschedule
|
||||
// (Brave Fencer Musashi)
|
||||
CDREAD_INT(cdReadTime / 2);
|
||||
cdr.ReadRescheduled = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
cdr.OCUP = 1;
|
||||
SetResultSize(1);
|
||||
cdr.StatP |= STATUS_READ|STATUS_ROTATING;
|
||||
|
@ -1263,6 +1272,7 @@ void cdrReadInterrupt() {
|
|||
}
|
||||
|
||||
cdr.Readed = 0;
|
||||
cdr.ReadRescheduled = 0;
|
||||
|
||||
CDREAD_INT((cdr.Mode & MODE_SPEED) ? (cdReadTime / 2) : cdReadTime);
|
||||
|
||||
|
|
|
@ -88,6 +88,7 @@ typedef struct {
|
|||
u32 eCycle;
|
||||
|
||||
u8 Seeked;
|
||||
u8 ReadRescheduled;
|
||||
|
||||
u8 LidCheck;
|
||||
u8 FastForward;
|
||||
|
|
Loading…
Reference in New Issue