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;