From cd1851606eee6dbb4010528889150c4c5edb26f3 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 8 Jun 2021 21:49:24 -0500 Subject: [PATCH] PCE: the adventures of arp fail --- src/engine/platform/pce.cpp | 4 ++-- src/engine/playback.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/pce.cpp b/src/engine/platform/pce.cpp index e5c25db38..1afe9014f 100644 --- a/src/engine/platform/pce.cpp +++ b/src/engine/platform/pce.cpp @@ -55,9 +55,9 @@ void DivPlatformPCE::tick() { if (chan[i].std.hadArp) { if (!chan[i].inPorta) { if (chan[i].std.arpMode) { - chan[i].baseFreq=round(FREQ_BASE/pow(2.0f,((float)(chan[i].std.arp+24)/12.0f))); + chan[i].baseFreq=round(FREQ_BASE/pow(2.0f,((float)(chan[i].std.arp)/12.0f))); // noise - chWrite(i,0x07,chan[i].noise?(0x80|noiseFreq[(chan[i].std.arp+24)%12]):0); + chWrite(i,0x07,chan[i].noise?(0x80|noiseFreq[(chan[i].std.arp)%12]):0); } else { chan[i].baseFreq=round(FREQ_BASE/pow(2.0f,((float)(chan[i].note+chan[i].std.arp-12)/12.0f))); chWrite(i,0x07,chan[i].noise?(0x80|noiseFreq[(chan[i].note+chan[i].std.arp-12)%12]):0); diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 4f1f7913b..5c01f9dbe 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -284,6 +284,7 @@ void DivEngine::processRow(int i, bool afterDelay) { if (effectVal==0) { chan[i].portaNote=-1; chan[i].portaSpeed=-1; + dispatchCmd(DivCommand(DIV_CMD_PRE_PORTA,i,false)); } else { chan[i].portaNote=chan[i].note; chan[i].portaSpeed=effectVal;