C64: Split out VIC IRQ delays
This commit is contained in:
parent
154eefd2ad
commit
3bbfb98fc2
|
@ -334,15 +334,15 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS
|
||||||
|
|
||||||
private void UpdatePins()
|
private void UpdatePins()
|
||||||
{
|
{
|
||||||
var irqTemp =
|
// IRQ is treated as a delay line
|
||||||
(_enableIntRaster & _intRaster) |
|
|
||||||
(_enableIntSpriteDataCollision & _intSpriteDataCollision) |
|
var intIrq = (_enableIntRaster && _intRaster) ? 0x0008 : 0x0000;
|
||||||
(_enableIntSpriteCollision & _intSpriteCollision) |
|
var sdIrq = (_enableIntSpriteDataCollision & _intSpriteDataCollision) ? 0x0001 : 0x0000;
|
||||||
(_enableIntLightPen & _intLightPen);
|
var ssIrq = (_enableIntSpriteCollision & _intSpriteCollision) ? 0x0001 : 0x0000;
|
||||||
|
var lpIrq = (_enableIntLightPen & _intLightPen) ? 0x0001 : 0x0000;
|
||||||
|
|
||||||
// IRQ buffer is treated as a delay line
|
|
||||||
_irqBuffer >>= 1;
|
_irqBuffer >>= 1;
|
||||||
_irqBuffer |= irqTemp ? 0x8 : 0;
|
_irqBuffer |= intIrq | sdIrq | ssIrq | lpIrq;
|
||||||
_pinAec = _ba || _baCount >= 0;
|
_pinAec = _ba || _baCount >= 0;
|
||||||
_pinBa = _ba;
|
_pinBa = _ba;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue