CDROM: Don't lose INT1 interrupts from command execution

This commit is contained in:
Connor McLaughlin 2019-11-12 18:02:36 +10:00
parent 6a82333d8f
commit 90cf6b8b41
1 changed files with 3 additions and 1 deletions

View File

@ -367,6 +367,8 @@ void CDROM::WriteRegister(u32 offset, u8 value)
{
if (HasPendingAsyncInterrupt())
DeliverAsyncInterrupt();
else if (HasPendingCommand())
m_system->SetDowncount(m_command_remaining_ticks);
}
// Bit 6 clears the parameter FIFO.
@ -525,7 +527,7 @@ TickCount CDROM::GetTicksForSeek() const
void CDROM::Execute(TickCount ticks)
{
if (HasPendingCommand())
if (HasPendingCommand() && !HasPendingInterrupt())
{
m_command_remaining_ticks -= ticks;
if (m_command_remaining_ticks <= 0)