mirror of
https://github.com/stenzek/duckstation.git
synced 2025-06-07 20:15:32 +00:00
CDROM: Fudge track autopause hold position
Fudge the hold position by 2 sectors to reduce the number of GetlocP's that will return a MSF in the old track. Works around the music hang in Fighting Force.
This commit is contained in:
parent
ceef7af1da
commit
fbadacae78
@ -3318,7 +3318,10 @@ void CDROM::DoSectorRead()
|
|||||||
}
|
}
|
||||||
else if (subq.track_number_bcd != s_state.play_track_number_bcd)
|
else if (subq.track_number_bcd != s_state.play_track_number_bcd)
|
||||||
{
|
{
|
||||||
// we don't want to update the position if the track changes, so we check it before reading the actual sector.
|
// Fudge the hold position by 2 sectors to reduce the number of GetlocP's that will return a MSF in the old track.
|
||||||
|
// Works around the music hang in Fighting Force.
|
||||||
|
SetHoldPosition(std::min(s_state.current_lba + 2, s_reader.GetMedia()->GetLBACount() - 1),
|
||||||
|
s_state.current_subq_lba);
|
||||||
DEV_LOG("Auto pause at the start of track {:02x} (LBA {})", subq.track_number_bcd, s_state.current_lba);
|
DEV_LOG("Auto pause at the start of track {:02x} (LBA {})", subq.track_number_bcd, s_state.current_lba);
|
||||||
StopReadingWithDataEnd();
|
StopReadingWithDataEnd();
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user