Merge branch 'tildearrow:master' into master

This commit is contained in:
Waverider 2022-12-31 12:22:25 -05:00 committed by GitHub
commit f80773c357
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 4 deletions

View file

@ -11,7 +11,7 @@ defaults:
shell: bash shell: bash
env: env:
BUILD_TYPE: Release BUILD_TYPE: Debug
jobs: jobs:
build: build:

View file

@ -47,7 +47,7 @@
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock(); #define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
#define BUSY_END isBusy.unlock(); softLocked=false; #define BUSY_END isBusy.unlock(); softLocked=false;
#define DIV_VERSION "0.6pre3" #define DIV_VERSION "Crash Evaluation Build"
#define DIV_ENGINE_VERSION 133 #define DIV_ENGINE_VERSION 133
// for imports // for imports
#define DIV_VERSION_MOD 0xff01 #define DIV_VERSION_MOD 0xff01

View file

@ -346,6 +346,12 @@ void DivPlatformGenesis::tick(bool sysTick) {
chan[i].freqChanged=true; 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 (i>=6) continue;
if (chan[i].std.phaseReset.had) { if (chan[i].std.phaseReset.had) {

View file

@ -133,9 +133,9 @@ void DivPlatformSegaPCM::tick(bool sysTick) {
chan[i].freq=chan[i].baseFreq+(chan[i].pitch>>1)-64; chan[i].freq=chan[i].baseFreq+(chan[i].pitch>>1)-64;
if (!parent->song.oldArpStrategy) { if (!parent->song.oldArpStrategy) {
if (chan[i].fixedArp) { 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 { } else {
chan[i].freq+=chan[i].arpOff<<7; chan[i].freq+=chan[i].arpOff<<6;
} }
} }
if (chan[i].furnacePCM) { if (chan[i].furnacePCM) {

View file

@ -1586,6 +1586,7 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi
// logic starts here // logic starts here
for (int i=0; i<song.systemLen; i++) { for (int i=0; i<song.systemLen; i++) {
// TODO: we may have a problem here
disCont[i].lastAvail=blip_samples_avail(disCont[i].bb[0]); disCont[i].lastAvail=blip_samples_avail(disCont[i].bb[0]);
if (disCont[i].lastAvail>0) { if (disCont[i].lastAvail>0) {
disCont[i].flush(disCont[i].lastAvail); 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); totalProcessed=size-(runLeftG>>MASTER_CLOCK_PREC);
for (int i=0; i<song.systemLen; i++) { for (int i=0; i<song.systemLen; i++) {
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); disCont[i].fillBuf(disCont[i].runtotal,disCont[i].lastAvail,size-disCont[i].lastAvail);
} }