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())
|
if (subq.IsCRCValid())
|
||||||
{
|
{
|
||||||
m_last_subq = subq;
|
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)
|
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(),
|
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");
|
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_last_requested_sector++;
|
||||||
m_reader.QueueReadSector(m_last_requested_sector);
|
m_reader.QueueReadSector(m_last_requested_sector);
|
||||||
|
|
Loading…
Reference in New Issue