CDROM: Deliver invalid sub-q (libcrypted) sectors to CPU
Nocash documentation would suggest that it only needs the sector to be skipped by GetLocP. Which would make sense as the non-subchannel data is still completely valid.
This commit is contained in:
parent
6d55979dac
commit
a4a112f5d8
|
@ -1487,6 +1487,13 @@ void CDROM::DoSectorRead()
|
|||
if (subq.IsCRCValid())
|
||||
{
|
||||
m_last_subq = subq;
|
||||
}
|
||||
else
|
||||
{
|
||||
const CDImage::Position pos(CDImage::Position::FromLBA(m_reader.GetLastReadSector()));
|
||||
Log_DevPrintf("Sector %u [%02u:%02u:%02u] has invalid subchannel Q", m_reader.GetLastReadSector(), pos.minute,
|
||||
pos.second, pos.frame);
|
||||
}
|
||||
|
||||
if (is_data_sector && m_drive_state == DriveState::Reading)
|
||||
{
|
||||
|
@ -1505,13 +1512,6 @@ void CDROM::DoSectorRead()
|
|||
Log_WarningPrintf("Skipping sector %u as it is a %s sector and we're not %s", m_reader.GetLastReadSector(),
|
||||
is_data_sector ? "data" : "audio", is_data_sector ? "reading" : "playing");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const CDImage::Position pos(CDImage::Position::FromLBA(m_reader.GetLastReadSector()));
|
||||
Log_DevPrintf("Skipping sector %u [%02u:%02u:%02u] due to invalid subchannel Q", m_reader.GetLastReadSector(),
|
||||
pos.minute, pos.second, pos.frame);
|
||||
}
|
||||
|
||||
m_last_requested_sector++;
|
||||
m_reader.QueueReadSector(m_last_requested_sector);
|
||||
|
|
Loading…
Reference in New Issue