From e31f8a2115a73144acbce191a8f3d8fd9a9f67ad Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 15:42:01 -0500 Subject: [PATCH] SegaPCM: fix new arp strat --- src/engine/platform/segapcm.cpp | 4 ++-- src/engine/playback.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index 030e9ce02..a206de5c0 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -133,9 +133,9 @@ void DivPlatformSegaPCM::tick(bool sysTick) { chan[i].freq=chan[i].baseFreq+(chan[i].pitch>>1)-64; if (!parent->song.oldArpStrategy) { if (chan[i].fixedArp) { - chan[i].freq=(chan[i].baseNoteOverride<<7)+(chan[i].pitch>>1)-64+chan[i].pitch2; + chan[i].freq=(chan[i].baseNoteOverride<<6)+(chan[i].pitch>>1)-64+chan[i].pitch2; } else { - chan[i].freq+=chan[i].arpOff<<7; + chan[i].freq+=chan[i].arpOff<<6; } } if (chan[i].furnacePCM) { diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 575b16b12..335da02a9 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1586,6 +1586,7 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi // logic starts here for (int i=0; i0) { disCont[i].flush(disCont[i].lastAvail);