diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC2_4.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC2_4.cs index 3ba4099b09..06fda411d9 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC2_4.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC2_4.cs @@ -311,7 +311,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo irq_counter++; } - public override void ClockPPU() + public override void ClockCPU() { if (type == 2) return; if (!irq_enabled) return; @@ -319,12 +319,12 @@ namespace BizHawk.Emulation.Consoles.Nintendo if (irq_mode) { ClockIRQ(); - throw new InvalidOperationException("needed a test case for this; you found one!"); + //throw new InvalidOperationException("needed a test case for this; you found one!"); } else { - irq_prescaler--; - if (irq_prescaler == 0) + irq_prescaler -= 3; + if (irq_prescaler <= 0) { irq_prescaler += 341; ClockIRQ(); diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC6.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC6.cs index cbada755eb..fdd8edf262 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC6.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC6.cs @@ -243,7 +243,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo irq_counter++; } - public override void ClockPPU() + public override void ClockCPU() { if (!irq_enabled) return; @@ -253,8 +253,8 @@ namespace BizHawk.Emulation.Consoles.Nintendo } else { - irq_prescaler--; - if (irq_prescaler == 0) + irq_prescaler -= 3; + if (irq_prescaler <= 0) { irq_prescaler += 341; ClockIRQ(); diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC7.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC7.cs index de8cdbfce9..002b15346e 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC7.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC7.cs @@ -222,19 +222,19 @@ namespace BizHawk.Emulation.Consoles.Nintendo irq_counter++; } - public override void ClockPPU() + public override void ClockCPU() { if (!irq_enabled) return; if (irq_mode) { ClockIRQ(); - throw new InvalidOperationException("needed a test case for this; you found one!"); + //throw new InvalidOperationException("needed a test case for this; you found one!"); } else { - irq_prescaler--; - if (irq_prescaler == 0) + irq_prescaler -= 3; + if (irq_prescaler <= 0) { irq_prescaler += 341; ClockIRQ();