CDROM: Don't allow deferred INT1 after Pause ACK

pull/3273/head
Stenzek 1 year ago
parent e499f9052a
commit 0517aef5bd
No known key found for this signature in database

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

Loading…
Cancel
Save