From 0517aef5bd434757654cb28b8a6c912cc8221afb Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 6 Aug 2024 13:34:05 +1000 Subject: [PATCH] CDROM: Don't allow deferred INT1 after Pause ACK --- src/core/cdrom.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/cdrom.cpp b/src/core/cdrom.cpp index 6d8d3a6f8..cdb5034b5 100644 --- a/src/core/cdrom.cpp +++ b/src/core/cdrom.cpp @@ -1933,6 +1933,9 @@ void CDROM::ExecuteCommand(void*, TickCount ticks, TickCount ticks_late) } else { + // Small window of time when another INT1 could sneak in, don't let it. + ClearAsyncInterrupt(); + // Stop reading. s_drive_state = DriveState::Idle; s_drive_event.Deactivate(); @@ -1951,6 +1954,7 @@ void CDROM::ExecuteCommand(void*, TickCount ticks, TickCount ticks_late) case Command::Stop: { const TickCount stop_time = GetTicksForStop(IsMotorOn()); + ClearAsyncInterrupt(); ClearCommandSecondResponse(); SendACKAndStat();