CDROM: Don't allow deferred INT1 after Pause ACK

This commit is contained in:
Stenzek 2024-08-06 13:34:05 +10:00
parent e499f9052a
commit 0517aef5bd
No known key found for this signature in database

View file

@ -1933,6 +1933,9 @@ void CDROM::ExecuteCommand(void*, TickCount ticks, TickCount ticks_late)
} }
else else
{ {
// Small window of time when another INT1 could sneak in, don't let it.
ClearAsyncInterrupt();
// Stop reading. // Stop reading.
s_drive_state = DriveState::Idle; s_drive_state = DriveState::Idle;
s_drive_event.Deactivate(); s_drive_event.Deactivate();
@ -1951,6 +1954,7 @@ void CDROM::ExecuteCommand(void*, TickCount ticks, TickCount ticks_late)
case Command::Stop: case Command::Stop:
{ {
const TickCount stop_time = GetTicksForStop(IsMotorOn()); const TickCount stop_time = GetTicksForStop(IsMotorOn());
ClearAsyncInterrupt();
ClearCommandSecondResponse(); ClearCommandSecondResponse();
SendACKAndStat(); SendACKAndStat();