CDROM: Fix handling of logical seeks to audio sectors
Fixes Wizard's Harmony.
This commit is contained in:
parent
fbdc9ae631
commit
466e4099d4
|
@ -1741,20 +1741,15 @@ void CDROM::DoSeekComplete(TickCount ticks_late)
|
||||||
subq.absolute_frame_bcd == seek_ff);
|
subq.absolute_frame_bcd == seek_ff);
|
||||||
if (seek_okay)
|
if (seek_okay)
|
||||||
{
|
{
|
||||||
if (subq.control.data && logical)
|
if (subq.control.data)
|
||||||
{
|
{
|
||||||
// ensure the location matches up (it should)
|
if (logical)
|
||||||
ProcessDataSectorHeader(m_reader.GetSectorBuffer().data());
|
ProcessDataSectorHeader(m_reader.GetSectorBuffer().data());
|
||||||
seek_okay = (m_last_sector_header.minute == seek_mm && m_last_sector_header.second == seek_ss &&
|
|
||||||
m_last_sector_header.frame == seek_ff);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (logical)
|
if (logical)
|
||||||
{
|
|
||||||
Log_WarningPrintf("Logical seek to non-data sector [%02x:%02x:%02x]", seek_mm, seek_ss, seek_ff);
|
Log_WarningPrintf("Logical seek to non-data sector [%02x:%02x:%02x]", seek_mm, seek_ss, seek_ff);
|
||||||
seek_okay = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subq.track_number_bcd == CDImage::LEAD_OUT_TRACK_NUMBER)
|
if (subq.track_number_bcd == CDImage::LEAD_OUT_TRACK_NUMBER)
|
||||||
|
@ -1868,8 +1863,7 @@ void CDROM::DoIDRead()
|
||||||
m_current_lba = 0;
|
m_current_lba = 0;
|
||||||
m_reader.QueueReadSector(0);
|
m_reader.QueueReadSector(0);
|
||||||
|
|
||||||
if (g_settings.cdrom_region_check &&
|
if (g_settings.cdrom_region_check && (m_disc_region == DiscRegion::Other ||
|
||||||
(m_disc_region == DiscRegion::Other ||
|
|
||||||
System::GetRegion() != System::GetConsoleRegionForDiscRegion(m_disc_region)))
|
System::GetRegion() != System::GetConsoleRegionForDiscRegion(m_disc_region)))
|
||||||
{
|
{
|
||||||
stat_byte |= STAT_ID_ERROR;
|
stat_byte |= STAT_ID_ERROR;
|
||||||
|
|
Loading…
Reference in New Issue