diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6c05127c..0b3bfbae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ defaults: shell: bash env: - BUILD_TYPE: Release + BUILD_TYPE: Debug jobs: build: diff --git a/src/engine/engine.h b/src/engine/engine.h index 7eb5c00c..41823b97 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -47,7 +47,7 @@ #define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock(); #define BUSY_END isBusy.unlock(); softLocked=false; -#define DIV_VERSION "0.6pre3" +#define DIV_VERSION "Crash Evaluation Build" #define DIV_ENGINE_VERSION 133 // for imports #define DIV_VERSION_MOD 0xff01 diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 5d229b2c..16660720 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -346,6 +346,12 @@ void DivPlatformGenesis::tick(bool sysTick) { chan[i].freqChanged=true; } + if (i>=5 && chan[i].std.phaseReset.had) { + if (chan[i].std.phaseReset.val==1 && chan[i].furnaceDac) { + chan[i].dacPos=0; + } + } + if (i>=6) continue; if (chan[i].std.phaseReset.had) { diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index 030e9ce0..a206de5c 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 18304ae7..335da02a 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); @@ -1685,6 +1686,10 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi totalProcessed=size-(runLeftG>>MASTER_CLOCK_PREC); for (int i=0; i