From 5af6424324ae2c055cb261b66bed9326ef009c97 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Mon, 19 Apr 2021 15:34:36 +1000 Subject: [PATCH] CDROM: More conservative handling of INT1-while-pending-INT3 case --- src/core/cdrom.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/core/cdrom.cpp b/src/core/cdrom.cpp index f79a65691..3d9fdb226 100644 --- a/src/core/cdrom.cpp +++ b/src/core/cdrom.cpp @@ -577,8 +577,8 @@ void CDROM::SetAsyncInterrupt(Interrupt interrupt) { if (m_interrupt_flag_register == static_cast(interrupt)) { - Log_WarningPrintf("Not setting async interrupt %u because there is already one unacknowledged", - static_cast(interrupt)); + Log_DevPrintf("Not setting async interrupt %u because there is already one unacknowledged", + static_cast(interrupt)); m_async_response_fifo.Clear(); return; } @@ -2070,11 +2070,9 @@ void CDROM::ProcessDataSector(const u8* raw_sector, const CDImage::SubChannelQ& if (sectors_missed > 1) Log_WarningPrintf("Interrupt not processed in time, missed %u sectors", sectors_missed - 1); } - else - { - m_async_response_fifo.Push(m_secondary_status.bits); - SetAsyncInterrupt(Interrupt::DataReady); - } + + m_async_response_fifo.Push(m_secondary_status.bits); + SetAsyncInterrupt(Interrupt::DataReady); } static std::array, 7> s_zigzag_table = {