mirror of https://github.com/PCSX2/pcsx2.git
CDVD: Don't account for rotation if sectors are buffered
This commit is contained in:
parent
8a22e44f3b
commit
527fa587ce
|
@ -1364,13 +1364,18 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady);
|
if (delta >= cdvd.nextSectorsBuffered)
|
||||||
cdvd.nextSectorsBuffered = 0;
|
{
|
||||||
|
psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady);
|
||||||
|
cdvd.nextSectorsBuffered = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cdvd.nextSectorsBuffered -= delta;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only do this on reads, the seek kind of accounts for this and then it reads the sectors after
|
// Only do this on reads, the seek kind of accounts for this and then it reads the sectors after
|
||||||
if ((delta || cdvd.Action == cdvdAction_Seek) && !isSeeking)
|
if ((delta || cdvd.Action == cdvdAction_Seek) && !isSeeking && !cdvd.nextSectorsBuffered)
|
||||||
{
|
{
|
||||||
const u32 rotationalLatency = cdvdRotationalLatency((CDVD_MODE_TYPE)cdvdIsDVD());
|
const u32 rotationalLatency = cdvdRotationalLatency((CDVD_MODE_TYPE)cdvdIsDVD());
|
||||||
//DevCon.Warning("%s rotational latency at sector %d is %d cycles", (cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) ? "CAV" : "CLV", cdvd.SeekToSector, rotationalLatency);
|
//DevCon.Warning("%s rotational latency at sector %d is %d cycles", (cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) ? "CAV" : "CLV", cdvd.SeekToSector, rotationalLatency);
|
||||||
|
|
Loading…
Reference in New Issue