From 3f5b0019dc65909cd60bdab10b195babbb41338e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 7 Dec 2021 16:25:42 -0500 Subject: [PATCH] C64: fix rael --- src/engine/platform/c64.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/engine/platform/c64.cpp b/src/engine/platform/c64.cpp index b4edc826..5c3b1b22 100644 --- a/src/engine/platform/c64.cpp +++ b/src/engine/platform/c64.cpp @@ -34,21 +34,11 @@ void DivPlatformC64::tick() { } } if (chan[i].std.hadArp) { - if (i==3) { // noise + if (!chan[i].inPorta) { if (chan[i].std.arpMode) { - chan[i].baseFreq=chan[i].std.arp; + chan[i].baseFreq=round(FREQ_BASE*pow(2.0f,((float)(chan[i].std.arp)/12.0f))); } else { - chan[i].baseFreq=chan[i].note+chan[i].std.arp-12; - } - if (chan[i].baseFreq>255) chan[i].baseFreq=255; - if (chan[i].baseFreq<0) chan[i].baseFreq=0; - } else { - if (!chan[i].inPorta) { - if (chan[i].std.arpMode) { - chan[i].baseFreq=round(FREQ_BASE*pow(2.0f,((float)(chan[i].std.arp)/12.0f))); - } else { - chan[i].baseFreq=round(FREQ_BASE*pow(2.0f,((float)(chan[i].note+(signed char)chan[i].std.arp-12)/12.0f))); - } + chan[i].baseFreq=round(FREQ_BASE*pow(2.0f,((float)(chan[i].note+(signed char)chan[i].std.arp-12)/12.0f))); } } chan[i].freqChanged=true; @@ -80,7 +70,6 @@ void DivPlatformC64::tick() { DivInstrument* ins=parent->getIns(chan[i].ins); chan[i].freq=(chan[i].baseFreq*(ONE_SEMITONE+chan[i].pitch))/ONE_SEMITONE; if (chan[i].freq>0xffff) chan[i].freq=0xffff; - if (chan[i].freq<0) chan[i].freq=0; if (chan[i].keyOn) { sid.write(i*7+5,(chan[i].attack<<4)|(chan[i].decay)); sid.write(i*7+6,(chan[i].sustain<<4)|(chan[i].release));