FDS: Improved IRQ accuracy - fixes bug in Druid - Kyoufu no Tobira

This commit is contained in:
Souryo 2016-09-08 22:55:54 -04:00
parent 790810df9b
commit 22ce85fa9c

View file

@ -63,7 +63,6 @@ void FDS::ClockIrq()
_irqCounter = _irqReloadValue; _irqCounter = _irqReloadValue;
} else { } else {
_irqEnabled = false; _irqEnabled = false;
_irqReloadValue = 0;
} }
} }
} }
@ -229,6 +228,9 @@ void FDS::WriteRegister(uint16_t addr, uint8_t value)
_irqReloadEnabled = (value & 0x01) == 0x01; _irqReloadEnabled = (value & 0x01) == 0x01;
_irqEnabled = (value & 0x02) == 0x02; _irqEnabled = (value & 0x02) == 0x02;
_irqCounter = _irqReloadValue; _irqCounter = _irqReloadValue;
if(!_irqReloadEnabled) {
_irqReloadValue = 0;
}
CPU::ClearIRQSource(IRQSource::External); CPU::ClearIRQSource(IRQSource::External);
break; break;