From e8d9fd6a156f602b03edcd51a1b031ba3aae5dfd Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 14:34:19 -0500 Subject: [PATCH 1/6] maybe fix possible crash in low buffer sizes --- src/engine/playback.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 18304ae7..50f2dde4 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1685,6 +1685,7 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi totalProcessed=size-(runLeftG>>MASTER_CLOCK_PREC); for (int i=0; idisCont[i].lastAvail) continue; disCont[i].fillBuf(disCont[i].runtotal,disCont[i].lastAvail,size-disCont[i].lastAvail); } From f8bceecebf2d7d642f5fd59744689a872d285396 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 14:43:42 -0500 Subject: [PATCH 2/6] another update --- src/engine/playback.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 50f2dde4..ecd502f1 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1685,7 +1685,10 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi totalProcessed=size-(runLeftG>>MASTER_CLOCK_PREC); for (int i=0; idisCont[i].lastAvail) continue; + if (size>disCont[i].lastAvail) { + logW("%d: size>lastAvail! %d>%d",i,size,disCont[i].lastAvail); + continue; + } disCont[i].fillBuf(disCont[i].runtotal,disCont[i].lastAvail,size-disCont[i].lastAvail); } From ae4cb78c2c0d8aeef6c6a0722b49e821a3c2a1e5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 15:25:38 -0500 Subject: [PATCH 3/6] ... --- src/engine/playback.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index ecd502f1..575b16b1 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1685,8 +1685,8 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi totalProcessed=size-(runLeftG>>MASTER_CLOCK_PREC); for (int i=0; idisCont[i].lastAvail) { - logW("%d: size>lastAvail! %d>%d",i,size,disCont[i].lastAvail); + if (size Date: Thu, 29 Dec 2022 15:42:01 -0500 Subject: [PATCH 4/6] 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 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 575b16b1..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); From f2fce2fab3ece123511eb37ce7fa93dae20a13d2 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 15:58:42 -0500 Subject: [PATCH 5/6] YM2612: phase reset for samples --- src/engine/platform/genesis.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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) { From 84bb613b42efc1449e7e805784c465cfad97c53a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 16:14:22 -0500 Subject: [PATCH 6/6] fuuuuuuu --- .github/workflows/build.yml | 2 +- src/engine/engine.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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