From 5cff02b74d5c06e76ae5fc2f10f45b1287535658 Mon Sep 17 00:00:00 2001 From: goyuken Date: Wed, 31 Oct 2012 19:40:18 +0000 Subject: [PATCH] nes: vrc4, vrc6, vrc7: change to use CPU cycle counting --- BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC2_4.cs | 8 ++++---- BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC6.cs | 6 +++--- BizHawk.Emulation/Consoles/Nintendo/NES/Boards/VRC7.cs | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) 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();