From b46ef639197d34bf7172febb2075e6ad369dfa73 Mon Sep 17 00:00:00 2001 From: Nathaniel Walizer Date: Sat, 4 Jan 2025 13:41:23 -0800 Subject: [PATCH] Fix APU frame interrupt --- src/apu.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/apu.c b/src/apu.c index 2e17f28..72f8c6f 100644 --- a/src/apu.c +++ b/src/apu.c @@ -289,8 +289,6 @@ nes_apu_Result nes_apu_run(nes_apu* apu, int cycles) { if (1 == apu->frame) { half_clock = 1; - } else if (0 == apu->frame && 0 == apu->frame_reg) { - apu->status |= apu_Status_Frame_Int; } if (apu->frame_reg & apu_Frame_Mode) { @@ -328,8 +326,14 @@ nes_apu_Result nes_apu_run(nes_apu* apu, int cycles) { */ } - if (end) apu->frame = 0; - else apu->frame++; + if (end) { + apu->frame = 0; + if (0 == apu->frame_reg) { + apu->status |= apu_Status_Frame_Int; + } + } else { + apu->frame++; + } } cycles -= run;