@ -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 ) ;