From 5bc2ccbe8ec2f584e15babae90f85c5bc983192b Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 02:22:20 -0500 Subject: [PATCH 01/25] fix a tiny bug when saving SNES instruments --- src/engine/instrument.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index d30e1fb9c..433e288fa 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -206,7 +206,8 @@ bool DivInstrumentSNES::operator==(const DivInstrumentSNES& other) { _C(a) && _C(d) && _C(s) && - _C(r) + _C(r) && + _C(d2) ); } From 7fa5fecd3898441359fd340068a001296bcbf522 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 03:12:00 -0500 Subject: [PATCH 02/25] possibly fix retrigger with sample map --- src/engine/platform/amiga.cpp | 2 +- src/engine/platform/ay.cpp | 2 +- src/engine/platform/ay8930.cpp | 2 +- src/engine/platform/ga20.cpp | 2 +- src/engine/platform/genesis.cpp | 2 +- src/engine/platform/k007232.cpp | 2 +- src/engine/platform/lynx.cpp | 2 +- src/engine/platform/mmc5.cpp | 2 +- src/engine/platform/msm6258.cpp | 2 +- src/engine/platform/msm6295.cpp | 2 +- src/engine/platform/nes.cpp | 2 +- src/engine/platform/opl.cpp | 2 +- src/engine/platform/pce.cpp | 2 +- src/engine/platform/pcmdac.cpp | 2 +- src/engine/platform/qsound.cpp | 2 +- src/engine/platform/rf5c68.cpp | 2 +- src/engine/platform/segapcm.cpp | 2 +- src/engine/platform/snes.cpp | 2 +- src/engine/platform/swan.cpp | 2 +- src/engine/platform/vera.cpp | 2 +- src/engine/platform/vrc6.cpp | 2 +- src/engine/platform/x1_010.cpp | 2 +- src/engine/platform/ym2608.cpp | 2 +- src/engine/platform/ym2610.cpp | 4 ++-- src/engine/platform/ym2610b.cpp | 4 ++-- src/engine/platform/ymz280b.cpp | 2 +- 26 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/engine/platform/amiga.cpp b/src/engine/platform/amiga.cpp index 524147991..0ecd6ba41 100644 --- a/src/engine/platform/amiga.cpp +++ b/src/engine/platform/amiga.cpp @@ -224,7 +224,7 @@ int DivPlatformAmiga::dispatch(DivCommand c) { } } } else { - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); chan[c.chan].useWave=false; } if (c.value!=DIV_NOTE_NULL) { diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index 25a4cd1a5..bc3abc3c0 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -404,7 +404,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) { if (chan[c.chan].nextPSGMode.dac) { if (skipRegisterWrites) break; if (!parent->song.disableSampleMacro && (ins->type==DIV_INS_AMIGA || ins->amiga.useSample)) { - chan[c.chan].dac.sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].dac.sample=ins->amiga.getSample(c.value); if (chan[c.chan].dac.sample<0 || chan[c.chan].dac.sample>=parent->song.sampleLen) { chan[c.chan].dac.sample=-1; if (dumpWrites) addWrite(0xffff0002+(c.chan<<8),0); diff --git a/src/engine/platform/ay8930.cpp b/src/engine/platform/ay8930.cpp index c00b3b918..5d8cbc137 100644 --- a/src/engine/platform/ay8930.cpp +++ b/src/engine/platform/ay8930.cpp @@ -405,7 +405,7 @@ int DivPlatformAY8930::dispatch(DivCommand c) { if (chan[c.chan].nextPSGMode.dac) { if (skipRegisterWrites) break; if (ins->type==DIV_INS_AMIGA || ins->amiga.useSample) { - chan[c.chan].dac.sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].dac.sample=ins->amiga.getSample(c.value); if (chan[c.chan].dac.sample<0 || chan[c.chan].dac.sample>=parent->song.sampleLen) { chan[c.chan].dac.sample=-1; if (dumpWrites) addWrite(0xffff0002+(c.chan<<8),0); diff --git a/src/engine/platform/ga20.cpp b/src/engine/platform/ga20.cpp index 84131313c..bd3c79dfd 100644 --- a/src/engine/platform/ga20.cpp +++ b/src/engine/platform/ga20.cpp @@ -202,7 +202,7 @@ int DivPlatformGA20::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:255; - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (c.value!=DIV_NOTE_NULL) { chan[c.chan].baseFreq=NOTE_PERIODIC(c.value); } diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 5ef16efeb..5d229b2cd 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -582,7 +582,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) { if (c.chan>=5 && chan[c.chan].dacMode) { if (skipRegisterWrites) break; if (ins->type==DIV_INS_AMIGA) { // Furnace mode - chan[c.chan].dacSample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].dacSample=ins->amiga.getSample(c.value); if (chan[c.chan].dacSample<0 || chan[c.chan].dacSample>=parent->song.sampleLen) { chan[c.chan].dacSample=-1; if (dumpWrites) addWrite(0xffff0002,0); diff --git a/src/engine/platform/k007232.cpp b/src/engine/platform/k007232.cpp index ce15f115c..58304553a 100644 --- a/src/engine/platform/k007232.cpp +++ b/src/engine/platform/k007232.cpp @@ -274,7 +274,7 @@ int DivPlatformK007232::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:15; - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (c.value!=DIV_NOTE_NULL) { chan[c.chan].baseFreq=NOTE_PERIODIC(c.value); } diff --git a/src/engine/platform/lynx.cpp b/src/engine/platform/lynx.cpp index 1f104e69b..3af5dbd83 100644 --- a/src/engine/platform/lynx.cpp +++ b/src/engine/platform/lynx.cpp @@ -264,7 +264,7 @@ int DivPlatformLynx::dispatch(DivCommand c) { chan[c.chan].baseFreq=NOTE_PERIODIC(c.value); if (chan[c.chan].pcm) { chan[c.chan].sampleBaseFreq=NOTE_FREQUENCY(c.value); - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); chan[c.chan].sampleAccum=0; chan[c.chan].samplePos=0; } diff --git a/src/engine/platform/mmc5.cpp b/src/engine/platform/mmc5.cpp index aafa262e1..a00dd7718 100644 --- a/src/engine/platform/mmc5.cpp +++ b/src/engine/platform/mmc5.cpp @@ -176,7 +176,7 @@ int DivPlatformMMC5::dispatch(DivCommand c) { if (c.chan==2) { // PCM DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_STD); if (ins->type==DIV_INS_AMIGA) { - dacSample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) dacSample=ins->amiga.getSample(c.value); if (dacSample<0 || dacSample>=parent->song.sampleLen) { dacSample=-1; if (dumpWrites) addWrite(0xffff0002,0); diff --git a/src/engine/platform/msm6258.cpp b/src/engine/platform/msm6258.cpp index 2d38e6f7f..32fe24cc8 100644 --- a/src/engine/platform/msm6258.cpp +++ b/src/engine/platform/msm6258.cpp @@ -150,7 +150,7 @@ int DivPlatformMSM6258::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; } - sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) sample=ins->amiga.getSample(c.value); samplePos=0; if (sample>=0 && samplesong.sampleLen) { //DivSample* s=parent->getSample(chan[c.chan].sample); diff --git a/src/engine/platform/msm6295.cpp b/src/engine/platform/msm6295.cpp index 292229a18..2423167f7 100644 --- a/src/engine/platform/msm6295.cpp +++ b/src/engine/platform/msm6295.cpp @@ -139,7 +139,7 @@ int DivPlatformMSM6295::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { //DivSample* s=parent->getSample(chan[c.chan].sample); if (c.value!=DIV_NOTE_NULL) { diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index a46a6d3f3..d0cae5ec0 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -360,7 +360,7 @@ int DivPlatformNES::dispatch(DivCommand c) { if (c.chan==4) { // PCM DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_STD); if (ins->type==DIV_INS_AMIGA) { - dacSample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) dacSample=ins->amiga.getSample(c.value); if (dacSample<0 || dacSample>=parent->song.sampleLen) { dacSample=-1; if (dumpWrites && !dpcmMode) addWrite(0xffff0002,0); diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 0b4e8619d..5af5de8c6 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -690,7 +690,7 @@ int DivPlatformOPL::dispatch(DivCommand c) { chan[c.chan].outVol=chan[c.chan].vol; immWrite(18,chan[c.chan].outVol); } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(8,0); diff --git a/src/engine/platform/pce.cpp b/src/engine/platform/pce.cpp index 47a8c0c54..3d9c0aee9 100644 --- a/src/engine/platform/pce.cpp +++ b/src/engine/platform/pce.cpp @@ -278,7 +278,7 @@ int DivPlatformPCE::dispatch(DivCommand c) { if (ins->type==DIV_INS_AMIGA || ins->amiga.useSample) { chan[c.chan].furnaceDac=true; if (skipRegisterWrites) break; - chan[c.chan].dacSample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].dacSample=ins->amiga.getSample(c.value); if (chan[c.chan].dacSample<0 || chan[c.chan].dacSample>=parent->song.sampleLen) { chan[c.chan].dacSample=-1; if (dumpWrites) addWrite(0xffff0002+(c.chan<<8),0); diff --git a/src/engine/platform/pcmdac.cpp b/src/engine/platform/pcmdac.cpp index 53416456a..abcdd39ff 100644 --- a/src/engine/platform/pcmdac.cpp +++ b/src/engine/platform/pcmdac.cpp @@ -250,7 +250,7 @@ int DivPlatformPCMDAC::dispatch(DivCommand c) { } } } else { - chan[0].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[0].sample=ins->amiga.getSample(c.value); chan[0].useWave=false; } if (c.value!=DIV_NOTE_NULL) { diff --git a/src/engine/platform/qsound.cpp b/src/engine/platform/qsound.cpp index 7ec293578..2172316ce 100644 --- a/src/engine/platform/qsound.cpp +++ b/src/engine/platform/qsound.cpp @@ -447,7 +447,7 @@ int DivPlatformQSound::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); chan[c.chan].isNewQSound=(ins->type==DIV_INS_QSOUND); - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (c.value!=DIV_NOTE_NULL) { chan[c.chan].baseFreq=QS_NOTE_FREQUENCY(c.value); } diff --git a/src/engine/platform/rf5c68.cpp b/src/engine/platform/rf5c68.cpp index 58732f498..bf87ce761 100644 --- a/src/engine/platform/rf5c68.cpp +++ b/src/engine/platform/rf5c68.cpp @@ -180,7 +180,7 @@ int DivPlatformRF5C68::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:255; - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (c.value!=DIV_NOTE_NULL) { chan[c.chan].baseFreq=NOTE_FREQUENCY(c.value); } diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index ccc9f48bc..030e9ce02 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -216,7 +216,7 @@ int DivPlatformSegaPCM::dispatch(DivCommand c) { if (ins->type==DIV_INS_AMIGA || ins->type==DIV_INS_SEGAPCM) { chan[c.chan].macroVolMul=(ins->type==DIV_INS_AMIGA)?64:127; chan[c.chan].isNewSegaPCM=(ins->type==DIV_INS_SEGAPCM); - chan[c.chan].pcm.sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].pcm.sample=ins->amiga.getSample(c.value); if (chan[c.chan].pcm.sample<0 || chan[c.chan].pcm.sample>=parent->song.sampleLen) { chan[c.chan].pcm.sample=-1; if (dumpWrites) { diff --git a/src/engine/platform/snes.cpp b/src/engine/platform/snes.cpp index 8752c08b2..053ac9b76 100644 --- a/src/engine/platform/snes.cpp +++ b/src/engine/platform/snes.cpp @@ -336,7 +336,7 @@ int DivPlatformSNES::dispatch(DivCommand c) { } chan[c.chan].ws.init(ins,chan[c.chan].wtLen,15,chan[c.chan].insChanged); } else { - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); chan[c.chan].useWave=false; } if (chan[c.chan].useWave || chan[c.chan].sample<0 || chan[c.chan].sample>=parent->song.sampleLen) { diff --git a/src/engine/platform/swan.cpp b/src/engine/platform/swan.cpp index 64f7256f2..f10a4e4e6 100644 --- a/src/engine/platform/swan.cpp +++ b/src/engine/platform/swan.cpp @@ -234,7 +234,7 @@ int DivPlatformSwan::dispatch(DivCommand c) { dacPos=0; dacPeriod=0; if (ins->type==DIV_INS_AMIGA || ins->amiga.useSample) { - dacSample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) dacSample=ins->amiga.getSample(c.value); if (dacSample<0 || dacSample>=parent->song.sampleLen) { dacSample=-1; if (dumpWrites) addWrite(0xffff0002,0); diff --git a/src/engine/platform/vera.cpp b/src/engine/platform/vera.cpp index f59510840..5021ac854 100644 --- a/src/engine/platform/vera.cpp +++ b/src/engine/platform/vera.cpp @@ -235,7 +235,7 @@ int DivPlatformVERA::dispatch(DivCommand c) { if (c.chan<16) { rWriteLo(c.chan,2,chan[c.chan].vol); } else { - chan[16].pcm.sample=parent->getIns(chan[16].ins,DIV_INS_VERA)->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[16].pcm.sample=parent->getIns(chan[16].ins,DIV_INS_VERA)->amiga.getSample(c.value); if (chan[16].pcm.sample<0 || chan[16].pcm.sample>=parent->song.sampleLen) { chan[16].pcm.sample=-1; } diff --git a/src/engine/platform/vrc6.cpp b/src/engine/platform/vrc6.cpp index e35f2393e..bb1a7a42a 100644 --- a/src/engine/platform/vrc6.cpp +++ b/src/engine/platform/vrc6.cpp @@ -242,7 +242,7 @@ int DivPlatformVRC6::dispatch(DivCommand c) { if (chan[c.chan].pcm) { if (skipRegisterWrites) break; if (ins->type==DIV_INS_AMIGA || ins->amiga.useSample) { - chan[c.chan].dacSample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].dacSample=ins->amiga.getSample(c.value); if (chan[c.chan].dacSample<0 || chan[c.chan].dacSample>=parent->song.sampleLen) { chan[c.chan].dacSample=-1; if (dumpWrites) addWrite(0xffff0002+(c.chan<<8),0); diff --git a/src/engine/platform/x1_010.cpp b/src/engine/platform/x1_010.cpp index 8d564e326..093b952c2 100644 --- a/src/engine/platform/x1_010.cpp +++ b/src/engine/platform/x1_010.cpp @@ -539,7 +539,7 @@ int DivPlatformX1_010::dispatch(DivCommand c) { if (chan[c.chan].furnacePCM) { chan[c.chan].pcm=true; chan[c.chan].macroInit(ins); - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); if (isBanked) { diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index b5dba5f5e..fc0b08de6 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -796,7 +796,7 @@ int DivPlatformYM2608::dispatch(DivCommand c) { chan[c.chan].outVol=chan[c.chan].vol; immWrite(0x10b,chan[c.chan].outVol); } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x100,0x01); // reset diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 50568aa28..9251a39f3 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -731,7 +731,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { chan[c.chan].outVol=chan[c.chan].vol; immWrite(0x1b,chan[c.chan].outVol); } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x12,(sampleOffB[chan[c.chan].sample]>>8)&0xff); @@ -802,7 +802,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x110+c.chan-adpcmAChanOffs,(sampleOffA[chan[c.chan].sample]>>8)&0xff); diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index a9c887642..593ecfa0b 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -798,7 +798,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { chan[c.chan].outVol=chan[c.chan].vol; immWrite(0x1b,chan[c.chan].outVol); } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x12,(sampleOffB[chan[c.chan].sample]>>8)&0xff); @@ -869,7 +869,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; } - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (chan[c.chan].sample>=0 && chan[c.chan].samplesong.sampleLen) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x110+c.chan-adpcmAChanOffs,(sampleOffA[chan[c.chan].sample]>>8)&0xff); diff --git a/src/engine/platform/ymz280b.cpp b/src/engine/platform/ymz280b.cpp index 4301fcc80..7c7c56861 100644 --- a/src/engine/platform/ymz280b.cpp +++ b/src/engine/platform/ymz280b.cpp @@ -212,7 +212,7 @@ int DivPlatformYMZ280B::dispatch(DivCommand c) { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); chan[c.chan].isNewYMZ=ins->type==DIV_INS_YMZ280B; chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:255; - chan[c.chan].sample=ins->amiga.getSample(c.value); + if (c.value!=DIV_NOTE_NULL) chan[c.chan].sample=ins->amiga.getSample(c.value); if (c.value!=DIV_NOTE_NULL) { chan[c.chan].baseFreq=NOTE_FREQUENCY(c.value); } From 89995a02be39efff5d624c643e3507502f6d62b4 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 03:31:26 -0500 Subject: [PATCH 03/25] QSound: fix ADPCM I guess you can say it's complete --- src/engine/platform/qsound.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/qsound.cpp b/src/engine/platform/qsound.cpp index 2172316ce..bc9e0f2ab 100644 --- a/src/engine/platform/qsound.cpp +++ b/src/engine/platform/qsound.cpp @@ -323,14 +323,14 @@ void DivPlatformQSound::tick(bool sysTick) { if (i<16) { qsound_end = offPCM[chan[i].sample] + length + 15; } else { - qsound_end = offBS[chan[i].sample] + length + 15; + qsound_end = offBS[chan[i].sample] + (length>>1) + 15; } qsound_loop = 15; } else { if (i<16) { qsound_end = offPCM[chan[i].sample] + length; } else { - qsound_end = offBS[chan[i].sample] + length; + qsound_end = offBS[chan[i].sample] + (length>>1); } qsound_loop = length - loopStart; } @@ -428,6 +428,9 @@ void DivPlatformQSound::tick(bool sysTick) { } else { rWrite(q1a_vol_map[i-16],0); rWrite(Q1A_KEYON+(i-16),0); + rWrite(q1a_end_map[i-16], 1); + rWrite(q1a_start_map[i-16], 0); + rWrite(Q1A_KEYON+(i-16),1); } } else if (chan[i].active) { //logV("ch %d frequency set to %04x, off=%f, note=%d, %04x!",i,chan[i].freq,off,chan[i].note,QS_NOTE_FREQUENCY(chan[i].note)); From 53b8e013e7df4497359019698df9c9836c536861 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 05:15:00 -0500 Subject: [PATCH 04/25] GUI: hide wave macro from RF ins --- src/gui/insEdit.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index c0add60c0..66fc5eec4 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -5111,6 +5111,7 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_ADPCMB) waveMax=0; if (ins->type==DIV_INS_QSOUND) waveMax=0; if (ins->type==DIV_INS_YMZ280B) waveMax=0; + if (ins->type==DIV_INS_RF5C68) waveMax=0; if (ins->type==DIV_INS_MSM5232) waveMax=0; if (ins->type==DIV_INS_MSM6258) waveMax=0; if (ins->type==DIV_INS_MSM6295) waveMax=0; From a5e87324801830d41027e32b4d7e4ee9e0d2b1d3 Mon Sep 17 00:00:00 2001 From: Waverider <33787286+liaminventions@users.noreply.github.com> Date: Thu, 29 Dec 2022 14:00:18 -0500 Subject: [PATCH 05/25] add panning to a song --- demos/x16/Cafe - 010 Editor 2.0crk.fur | Bin 13323 -> 12866 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/x16/Cafe - 010 Editor 2.0crk.fur b/demos/x16/Cafe - 010 Editor 2.0crk.fur index 339e7238f3795d7ed3c013bed685eaf0d67b7ffe..3efadab76fef502e674a9b2c11a2aa7ede049082 100644 GIT binary patch literal 12866 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 F|1W_EIk5l$ literal 13323 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 Date: Thu, 29 Dec 2022 14:03:31 -0500 Subject: [PATCH 06/25] fix beginning --- demos/x16/Cafe - 010 Editor 2.0crk.fur | Bin 12866 -> 12872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/x16/Cafe - 010 Editor 2.0crk.fur b/demos/x16/Cafe - 010 Editor 2.0crk.fur index 3efadab76fef502e674a9b2c11a2aa7ede049082..4e00960fb3f4809fdd13ce887244aec6740856a2 100644 GIT binary patch delta 11122 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 Date: Thu, 29 Dec 2022 14:34:19 -0500 Subject: [PATCH 07/25] 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 18304ae70..50f2dde44 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 08/25] 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 50f2dde44..ecd502f11 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 09/25] ... --- 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 ecd502f11..575b16b12 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 10/25] 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); From f2fce2fab3ece123511eb37ce7fa93dae20a13d2 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 29 Dec 2022 15:58:42 -0500 Subject: [PATCH 11/25] 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 5d229b2cd..166607207 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 12/25] 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 6c05127cc..0b3bfbaeb 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 7eb5c00c1..41823b97f 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 From 1182f7e6e43feb66728c37b6072caa58adf84f23 Mon Sep 17 00:00:00 2001 From: Waverider <33787286+liaminventions@users.noreply.github.com> Date: Sat, 31 Dec 2022 12:21:56 -0500 Subject: [PATCH 13/25] need to rename this --- demos/x16/Cafe - 010 Editor 2.0crk.fur | Bin 12872 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 demos/x16/Cafe - 010 Editor 2.0crk.fur diff --git a/demos/x16/Cafe - 010 Editor 2.0crk.fur b/demos/x16/Cafe - 010 Editor 2.0crk.fur deleted file mode 100644 index 4e00960fb3f4809fdd13ce887244aec6740856a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12872 zcmZvAWmKEb6E040CrF*O@dW^o(2*0+n}wp+<$K${*}67XPNDySjPNM?F~* zhUD|0h6?%K;&G7X=YHTy2BEof|9Y&BAF{)RFMhf|)h$j1@}z}4?Rrrm_E4#EgOg>+ zXtt-G;jbXIF56R|AtJj^Y!Hd|1la;{D#Vd5{`I3E4Q!fd4pQi7$Rl4|zIF65;3XFA4ic zjNf_33wgRR_c(Z%6u!C*>o2LU^ZfcGfL{aZp?d~EKu`Iy<^gH4NeLbYqG1Civ`+$% zrvWs`6WmSs%57tND#zTz;V(6Q=W~(pRoD{_Bg-p(t9fji0q z(6r4SNXOX#DlIj-bVY|-S#KJ-{Usa?r? z=?FQ9S^?Nfnb%_JyyCUwDm!_4cQdOt|tLxukDFmo}jMI{n&lRHxigXB@{v#5bJ4} zg~{PvH|0&)-qqs?K0QrEzeNBgYqL14~Gv~~NU<=YUqXX5rEH0N9E zWl0}dO^37(+c?w&-|vI(_m|HI*2p@9+$YzHTxRQ07ag#kxY8Z4y|WD4tT&5VPQ&y_K$zp&kJCJ z9dV~T^HEoc-z8YKHa8=c-ir3JhSp#9b__c~4!q#wavOTXSLEuuR^MO=M#69A(m1|3 zV!P6R*Ic~4u^@?d1^}Q3r2+7iZ4isi!H8ME&~E`vD{J0Er!P*?2lxa}NE;e%w+qA! zjV_o)`L8Q~pWC`YU#9I}Fs$sk7k#}R_B^tRI!xO;+$l0N^XEb;h|;y!{;{a-c-Bd* z$Yg%E=CA*?+fwzG9vytD*L|_?W{+@2;^sOX&^t8VPp_|L6t|Z7ahgg!t z-+c*rF9+AN(xh7RcHh&ZrfOQV&cT(_3$HNu<;02p=|9I_`jZ6s_z%wR7Va?Y&+VnO zw>4BtcctQ}n6%WN_7yOHtu$kx7>6x1@X=5N@19J-Rd(v|@$tKmpgmdUp^q8*=Kg!$ z4+VexS2Bk%iu?H_qj*t|yc~*YpVr#EPVasFX7`GULLRUFNrF?k@f;--%mbdv&CLRD zkM`!zd`i?X5d^pgVy(ZmvoznGmPF`ysfPWJ3-EAeaIeBvNs(x=V_RpC9L}7uj0O)f0f~G?9T5JLff!o_#B$n?DHVO-pByZX>lGh-HCLP#B@|6U&wIgs>O~TF zh~eWp8cERA%)ehIAy4HDbsd-g7R`hH?ZOZFbnGV!+k>~XA3Eje3*i>NH+=-Nv}Wx$ z)7NcnBB2wB{&DkM%X$436(6eg>u#D_jTg~^Yr49Z+gBDa7BS9TvA%<&n;XAh1Q_cz zefO<1Tx-O5-j9Y>FE+yUYOe1hYD(H8kCzvGTo0CBum9SbR$FP7Xb3qLq78VMR-g@Q zblVq#VnMrxXwOfBuIkrMSANm1H`tCo;7dOoxo1T)M`o`Iwm9`N`DhDUGrndTT zUAFx@FD%FnyuHeqbt?dQUDl*kY7~ORLp`_WM)=^*I&K9LcQ^34oED9O(EagtH?>Z2 z0iUOu7pb(uI5MtoZp8Y)EtgqG@Vmgn?Q)g#f+VvJe~G}e&VOW+1&|IevPtt+|BIQn zxUAB1)6jFz2Tv+KrpKP9D=Ite?HXUR#yUs$I!B|mUDHmxgqHGw#pRh-MwGZ{D+^%I zBDil0kFu-d<5)!v%-e0H%jcLO$=9#%IZ3=BWu?U}!25W?#ke^nU{-bu z0$OMSFB=&fhg2`Np59=rN7R~Ym;_0NiUb}${PEi;0EJNG`W)>ZR80#hXe2&eX1V2q z?#9g3^Fbj;r!5uh0hEmXq<}8idim`-6nCym^8N{v)~w+1pwH=G=a`hHrg5oeTRC}) zjqvm0%Jy{=n$fwdA*F*0R^xZ{yC#2QDVu7&SgXjj86>wYuf@N$X7`)R&SErB&pT`w zD>g1D2tR1~xf4UHZw_i`JwAV_atXk%9NYPKH$vR4!Se>UXO?^&pdq~a2dg3F3EUIJ z!y(W?@=k5|34Ny2p@ z2r5tn=#aECz3bhTpm2S*(+3rLUb9_vJ`7JO`a-ccsiJvHrKxZSAdu27Q`GyQ{Apr^ z#Q5^akb45^%POI3Jrb>&~-iAFHgpU{qIm#eZIO77n<| zsU>;O4#v2*^CWovZRkft#U%)6sm0mYdt;{=&;@qk-Zl?BS{XS9SMXu~nT_^3C^J?6 z!YN@x)zZ~c>`q_ltWx1*e=@gt%a^v%hk;$?D?XXA4WUK&jeC@y;^zkT=Mm zH8kQiY(XB{N#@@0GP^T^_I@DgE>{@SDGWV7$AJIzczK$&zv7F`SHE*JXYEj!!i1`~ zXE6O|o(S3S;fsp(QN@U* zNgA$9V^#QSZs!lo+s=qd-`ue^KD%s>X#9P$L9`z8!Eb}h5c?kC>wNQ8N;0~FYHNKx zAvA03?PZRxjls8zg9BZT6jg@w+~}yj;$g0^uY3nY$(xr!Q8xUq3Pk9}fFSX}U`BfQ zql~H`io?)5hrCU%a^{TmofK8lX@Ze|fPWH|l!vFh6o zlhdN|5-O`EB&ZE+Ph*WA^(iDKs3}z1)Y8(>6j9lloLmqw(Vdfzj){q7y2n%z<&ebc zit!SU#e7LtV%o0vPrY?pZ#thUd8#cQ+QW)?E22fwe}0Kp+~lEIQ20dsq{=~uCg_TL z7ZO^Ot;9HEDFK zg?*}3D>KJnB@@F%<0g)u3ofFV9?DRlYX2%N6%Q{dDT#_2#LFuZAfr_a*up7~97@8| z=+~}V+Qr(YOVU93M?c*-d+rzRhr}!XRC|8=s>%u^sX3ZR}k^hD~Pdy@6Jzgz5s$CF~S}F^HFf*5IPQmzZsOXj7Giy*q z(o7%zD`s(6uCI!p-5F=vsUH>|lzgR-=9l>I;yTcdD z&mD*&p@98R_y+ga%(TPcMw7MI)IN^ODiyvkZ&f_f&6~KvpXx>IIGv|*9DSu6!r2$G zin){H@wlkd#5>m3JJzX&v@|)1@0k>$Aqs;`Ko{d2_el6CH^O zisdLWGbd5gP!z^9@xjV|vZN_9bsI8klc%epR4NQr5F64cCfHM{(~-oLQ*kkW)=*a+ z1Y0c1>stlG`)y=kXkz4=d3`&ql^YCpJzj}w;l1SzEE4z_V)571-n&bHH~KaxV|KyL zHgGsh4n>$akE-bNpp;4p>j-Ygp#3YIK3S;`j1f2lGzH2smAu5UgI}g|u*Qq6)5yt$ z$%)W-g0GegdjGT$oxJUfTM`K8OB$4pMX}}< z`6qF|zO zK6d!}J@a2Kb!Gdl4``a!>e3%KX3?DF}UsZU#bTl&S)DL;?<9>n6X4 zQ)2{f@b`kz%slHgiIS3$7(r+cnL9`ccy73NpKkasqXZ!#GRoS|?#vzE;U1Xv_0>++ z-ES?N)sYQwBygjpQ3#%8bw2ILkTw#(!TAuutrV_gt#fVBc{q#7Lv0R6bCv)q6yc01A{k0Y{+P zNaISD$oBQT%G4we-AEp8=onG95Ls=)E7WLE@i#-1%*@}sjy0c4= z{z`l$Oz)c+xQik}v11$A%X#_3Z?&VumgE_4h*n-HRm?Gt;O)pO zPecwCQVDV3F<$U$&>`ypS;Mf|vGpiavw`Fy78tZ_hx`U&Z)#bHqdZjbk%Ab;MO6u! ziI}(IdWqY>Wom{>`KhmMnSil6_#=rie#ujWzv^iM+@EozDafV7& zZ%M6h*#+>&bW>4vV?|LQ2g$Lijd*;JVbk<)^foFk?kSG$IHsvI?TVRY*001{LsES} zZySC{%Lep%IY+1Jcq>UvZfP>UozJq4~x;u($D?Wb34& zX2pvZ&_y${zUl4Lo-rRqNJr5VMYbK$HGb=OyP9EerYpRa+`pN;t)9vt;ub5NdgY-B zOp8+g66T3oAabp9Kx*?i$SK!vV6)d982-9?!b4hsWgFeov48AHM!A|pNBATii-fU- zW9W6@`vJXOXzCXbNt~xrZvIb}N*0oIkFj}{TsCRTLq+Ov4z5*MqO)OeKb0gv)?KSI z?T21+-sk5Yncs?b6%J93^PUXUY&2Sfb)U48dU3`jPJZ)YmySg0-d4eAoYLjmOObj_ z*kk0pjB>{4T|XPp9@_0nl3OLE-q`(=b1-}_8Cz!ian!No$DDL5pLs*ukkV>nKKDKG z>LgKJMy6Ai5`C?ae3|m%mZlS#=UL_fWg-#d=Zd{t#U|aV_fHImZ6}i+B8It+KV#^o zYP4B~KemiBlNVfm-PS3tlHom^0f=#m__isbCCRW@8PmNTMN1jnzY^0YtCA`~9_fmX z$y87zYE`zIP-G1I;2=&{r{!3k@vVXUqo(qky2eCKZ|mn()zai#0wCYUnq$+)2pm(GRton0oMs9_@trmzl1O`R zyD8-%S!vJj8v8l;d%EaY>|n{S+x#|Rsyn&MZ)Q63!?T6&>Nvo3P)Xe?{a=*KHC}B` z#^XLKY`mk>IN#(o3Dg9N_&7fk8pcG7>NVN>Bv1eRj%KsOp#bZ>h3*hF-Ch>`lfQi< zzWQ|8^K-4&S!ejZx4ZaiV~n`7?xbGkfLz2<4>9{_x6xhPK2O;h2*dN+=#SQ4CitZx zec7{f8fzcb?SvY6`o`JsVRN&a5;Vzn`d4@6TSra9m^6<1n;LS+7{F*3v+(DIyM*+ybu?)og-|(o?nL%?e`}qI&Koz z(M^w|Uc{)ea_8U$Jg>zdROXhV7rwFczPz$_+%ONp71e29=O#(k<*G4$Ceq%1-AnZf z!^{=0aYFFVn(rLq=#%)g&);JArlvOXN@oZ4sJy(qI%C;|ehjB$a<|1e)QDSfAR?vYnc*T@q3{? zPt>Enn=%*0$#k`hxGIFy=;y62v?a2y2vMEKNrdt`-^y!s<1OW`-c(dD-OevC-A5ai z-0$AlV-&>+8TXz2Wnx)&hT1ft*q&AV{j*@#Zo0JD?6U+HS3I{ z`#S9J@6&Dr8=sZDJbTd-U!aAa{}C?m)rnL;SW0JXB)q3`y^ALFz76NocnDU5T~RyG zU~QkKYnjTe8Hd`d=BI1>ysL(D3<6^)|O!f@F}Yk*Z}Thr9Ot(aynmGQZ5uefGh@^2 zbJFS3EdR5wX?;&VtY$J*3q#9XD{=}u4?|1Lq=u$97?RxgS(-&uBGxkMFL{(+b~ok5 znA~QPVno6uFOmPwPgS&aI0tdK zc{c|!_arZ?EK?sqHS()t=UBp%QPEs6?w77F7$qcvcwhWmjl`qw@aZ5Vk(&6ww+`8B z`-#1TT;FVr*`$yuD~nkA?Fpe4(r|{SR*wx#&a;V?y*1Az|_2~YVoU>|H}RA&kwM24ZmLJXa0NimDnqT z2T=3lBcY0HSe4~JY8iZX3~2;rLt9%wf~H-(>}vV>m1y!+Ny8sixaSxSErjYqLWy)s8| zxeZ@#|@9%L2jDDnIx9^;~S5a))jnM*WXKr!}BsLFg!Oj@YY0dag@a zmpynkKf7At=>IP9aGEhcPNPVd{>uFK+q*Fv3bcT6VlSLNoj-m6WVa)oBFZ`I!QZXq zQ1JFQSxpJRr``1n+!^_)ltsQJ7Qo5J!&VyPN7ej+O3cZ>)*62_%Q`+Vn-f6IRuvx; z-ohXWJLon+OiGD22~epW=PoMNx)6 z5u|v6SFk&oTola~)0-8|aFoAQzTi?Gw;{Xxn(8HfY|EassqE+=KbEezEBZ{F5qG>7 z$A@lhS09W+f5CMj#p4ZDVACQmG#hlWe0Djrbx|*my&2rxVoITfcd%33U}G+Id_i#b z15#R;P};`mruo?1M(^%@_N5s{7+>1C-KGA!J2lm=v=Oo#gg)<;0MDIXMF+U2u8a0e zuuSS$>mr!Xbx`0xZ>W!Z!Wggz&X{@#Xp~;d#*Dpi%M7OL)1H` z#m`jBpRo6i2bAt^c*i#M?d~$svnr`ja%}Yjfnuea!*m?JtMr|+-^3ddV)ZGWgTX!L z2FrK5)OG%MR(E;@51u#Wp!$9_ml$TI7j2gi+*|#_nMwVy3`f3rny1isU;b;)%KC~Wl zHdkhze0k2dO{k}+{t3v4FHKn@*e6^NES(EpuogD@Atg-xU_%;oakQu}Y^k-f!9sZ@ zbHScAs=Uf|z2w-DatL%*UG42huMivRS1H$E(Fx7uz2iPeZ%H2sldcT5e2Ce)b$LHV zwg){T{GLkuV+6gCN~RQFCQrSqNe*nWWr$wg*h8VSG!Q4G*9PHTmSyuIiIXKT4$F@9 zPn1l;kyuIn!qnXRef+}S|9CSweILy#yCB#Ug^%;oPEaS%~DvGPBsPPmC>m3po0{Z{k#j5 z<>EwuS2wm#R|+C`a2Cu%@3F@eN+v60X=CfA##;`D%?Tt~CqdnJdn9)Z(dK(csBW4P z<(c~MY6z5;v-Tl?`fmRPqS|u*s6LSk?btn#ey+w3&$k8Ad{*V*LMs7sny1py(^$Ie zQb`Jagho=d@OUJ~u9S7izM@DdDr^g3%oT#; z1pQox1}P4GJo5dBb&0Eu^CM08q|Bt8*>p+ieWxv5ru0c!CTK)%9r;u>bnEBt@`bTO z>PY;eZvGOtdKePPD0dItSM%pz)IRj_gy*^(By=Iv4s`yV!3=m@m{7B>%W2vg9}|Yk zKk=JFpX+Ae*OxA;p;f2$W5-+EO^#H?Sz7dPYj@DAt zSIeDzBW%a+uSNW*7CZU&n|X5sPj2JGf7XsmyQnshFO%DexlZ>~wxnseF&C;aZ#X(I z|LNU{>-2D}KdiYK{O-9U7;yaPSyDOYze7J;=eH2<2{|yD&LPl{SnM6yOVW@QF*vpun9uH&*|zFmx++^Q&fg*xka_ka ze%}0nL$1vpd8r^7N0L%%`-CvBAibH_1Bck2xh8=>LgRu6*+6?JF>cX)EN+tR+av%nxBM5@T?<_D80u~!x->Pr5|a8Ct#OD zc0fGwKUjA7z9eFxJ^45FWjjI7K?PlxptRnwW$8+){2HtakqXNyF~xQY%R>H0KiB?6sjg!^LG^#t zDq(G@jC!$jL-BFXS&Y?hCyfX(mSWy?xIflk7c^jy^ZyD~zU^0qiH0{uD~qlA_Y_x- zS#>u82lFo))A!vjFVkf;2T{>JJ;u@QHGO#_<4O7jo%6~a96;JDhNFf3v==}cAs*Dd z&hz0gg!n`vHbXUkO=!BizbfSQH`!w7*bg&oN)IG3?nKXt9J{@_l;y+noqU&zzB6sO z8Z&e?1R#&woY~yfaOEi={~Ua`_~B||s60_9Q{^RJbEM0%h{+gy7XEXnD7Gy_rQNji z*DywTc;iL0K%g!}Gv_Dn-r$HK;FNm<0J_T$zZ~cqm)m}?9(l;-?eS7JLjEfot=r}m zY%QUk+{TAn%$GWl)m@G#3TF6x&G`Qxb;hH+l6!>T$9n1J5S1Nlvrk9!P_YS_?^az@ z^HG<_<_|wH?(8{rDXK#kEb4ducSxyBY8(=thLf+*#BZkSOIaC>JMx*2qkk}eP-Rk& zZ4szIW!#<&qpou=>vTgh#N&!941Hk7BXwQlw)!+A&#!5i&ruCnLUuWNw>fci{s+&n zKPi(gxU3x~27jEEG9HvojcfFuWyUBwqdR9#b2QA~)>?Akyqi`w>8pKwr`_qaG`5$t zE^vs$>2^hNGmr`0a$2g{Y=K!jE7}bHhS!h}wL2g9!Q~I64sB)fUh8L(aB8o{9b8^r zxN3)T>U3qW(pro{vM*0n?|fA6@GF9|Sv5oe^K{95YGpmn;rIpED?R}H1Ac!_okH8} zEY?Zh)!*s%=oKxl)e;r5{5vh)FX7Lga>>Dt^72?S?-kD3X(iZm<9K;)Sm)h}_;fx{ zAg+pb36GM+$`uP`#(Def;F*AG3~9lhWNw0*tXd$mIW_&K-8flB=aOD35+-wUZHu`d zQs8?$!uNK8`bwhcB1bCkq>fm>-r0j`07{&Hcrcd-?Me3Vy{%WqmneIa+6eHNUPr`7l4l6Cf{Md z55xx*l>WWQLJcmJ|E0+QGdgX`fvKRpyyOS?V{DP?SXuZw_+NU<;g3lJwaHyA%K)(u zjV2;Ec-+&W^D0yOTn46ZMOv;)pzX)s!8n^gPA|K;Vz!%9Ndzq6YbUUyvzrkm=Pw8D`BeA$RIz=S#u5os@ha=>1vIjAs21x*QV77D-i_DxSh#>W zIixtl>*l)a$~EI^Hu3Quj4}rEScx5eYn-8U>EupTw4OklTCqI#NgRzzY7J(R z3hFHon<{i=T3vt4a9s^-{L(n%L5@m$&DcyV-kJyiqy+(9!@6qlKs-3&#SH$!`71A7d51v8Ht>6th4v|PgqP3mLEEpxBT;Ak_wlDlbQ|~uvmY=GvX*rUV*3v%cL=FT#-%#ts zy{qv2PfJu>x}6A29Z?H;0k)Y~lyW6>X)nDcGIaHIM+0nZXEl$DoBUG{Bok3R)_{h4j{?&_>dykdVbyigXi~zKk1cE(sM(mF7Jl>%qW-+hq2@W)9 zriw(1C4HpA{(gGuM}7==`GJ9ER*Ci%Te){W|uI&K%@C&oahI_tLfxgQ7&n z%6KR9ZP}=w)qdh{Nge6Q{iUaR+C@4tW-rA*7qYJSg(X71qssg8yl59$DbN^No5 zDn=f1+Yal3LZ=BsZR1tDHf@6A<6l1Ent?(+QZBd&UTBa_)<|H^U(x^D(JwWBwv1W3O%`@R$%Mpo;0I_CNE$i#XEI(U7VapUL1q zKV+GqhqZCf$HhX;A|-vX!^FX9-7L2A-lE{y<|w!b-h&?A-Hhe280cgEzyjrCQ!oRjd^Wo;MEdd)1En#(KT%ugw_boTKbUbw6+L|rw|6*nI z?HD{cNJPgk!e)wE(c)n7vJ8AcmxcSf>ngwxzhYGd8|Zu% z+d18|Dqu8sdzr2;IRuRR5=sfFO5 z17<0XLrr?)Uc(>8SQfNlS9>JL*o9puUkV~BxrYvlHxI}7ch#i?Vn9D327`xo{;@B~ z2~Z)OeP~KN4wk{y}pm%WOb7WDLn{fCfR0m3Vu;; zGd+R&DNCjvO-t?*IrTfvTjUw~M8f&%6E%nfNN$#Hq2h^k#VqqUrgjF-c1TEh(R=xf Ki4uUf@qYm1CkNO7 From 6558d8dec468aaf9b827390ace04e69b33bfe490 Mon Sep 17 00:00:00 2001 From: Waverider <33787286+liaminventions@users.noreply.github.com> Date: Sat, 31 Dec 2022 12:22:18 -0500 Subject: [PATCH 14/25] rename --- demos/x16/Cafe - 010 Editor 2.0kg.fur | Bin 0 -> 12872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/x16/Cafe - 010 Editor 2.0kg.fur diff --git a/demos/x16/Cafe - 010 Editor 2.0kg.fur b/demos/x16/Cafe - 010 Editor 2.0kg.fur new file mode 100644 index 0000000000000000000000000000000000000000..4e00960fb3f4809fdd13ce887244aec6740856a2 GIT binary patch literal 12872 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 Ki4uUf@qYm1CkNO7 literal 0 HcmV?d00001 From 51b3c85b54a523b5c3545cfa9660f34613c48005 Mon Sep 17 00:00:00 2001 From: Waverider <33787286+liaminventions@users.noreply.github.com> Date: Sat, 31 Dec 2022 12:50:00 -0500 Subject: [PATCH 15/25] a note --- demos/x16/Cafe - 010 Editor 2.0kg.fur | Bin 12872 -> 12873 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/x16/Cafe - 010 Editor 2.0kg.fur b/demos/x16/Cafe - 010 Editor 2.0kg.fur index 4e00960fb3f4809fdd13ce887244aec6740856a2..6533a38466779bd3cf068b830d50e18e200ff1f4 100644 GIT binary patch delta 3015 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 J{{cFL4nrx|%vJyZ delta 3017 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 Date: Sat, 31 Dec 2022 14:14:08 -0500 Subject: [PATCH 16/25] YM2203: fix non-linear --- src/engine/platform/ym2203.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/ym2203.cpp b/src/engine/platform/ym2203.cpp index 95ab537fc..3419a1b6e 100644 --- a/src/engine/platform/ym2203.cpp +++ b/src/engine/platform/ym2203.cpp @@ -449,7 +449,7 @@ void DivPlatformYM2203::tick(bool sysTick) { if (parent->song.linearPitch==2) { chan[i].freq=parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,4,chan[i].pitch2,chipClock,CHIP_FREQBASE,11); } else { - int fNum=parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,4,chan[i].pitch2); + int fNum=parent->calcFreq(chan[i].baseFreq&0x7ff,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,4,chan[i].pitch2); int block=(chan[i].baseFreq&0xf800)>>11; if (fNum<0) fNum=0; if (fNum>2047) { From 821df805940d7fe240174d0f4341297588652d67 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 16:19:02 -0500 Subject: [PATCH 17/25] Namco WSG: noise in per-chan osc? --- src/engine/platform/sound/namco.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/sound/namco.cpp b/src/engine/platform/sound/namco.cpp index 811c34ab8..473a80c6e 100644 --- a/src/engine/platform/sound/namco.cpp +++ b/src/engine/platform/sound/namco.cpp @@ -754,9 +754,15 @@ void namco_audio_device::sound_stream_update(short** outputs, int len) int cnt; if (voice->noise_state) - buffer[i]+=noise_data; - else + { +buffer[i]+=noise_data; + voice->last_out=noise_data; +} + else { buffer[i]+=-noise_data; + voice->last_out=-noise_data; + +} if (hold) { From 99059869e8907cf235fc11e80fa7e3cdfa3281d9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 16:38:22 -0500 Subject: [PATCH 18/25] add more demo songs sent by Martin Demsky --- demos/genesis/laidback.fur | Bin 0 -> 9918 bytes demos/genesis/last_chiptune.fur | Bin 0 -> 8252 bytes demos/genesis/louder.fur | Bin 0 -> 10276 bytes demos/genesis/mummy_in_the_pyramid.fur | Bin 0 -> 5547 bytes demos/genesis/my_problem.fur | Bin 0 -> 8567 bytes src/gui/about.cpp | 1 + 6 files changed, 1 insertion(+) create mode 100644 demos/genesis/laidback.fur create mode 100644 demos/genesis/last_chiptune.fur create mode 100644 demos/genesis/louder.fur create mode 100644 demos/genesis/mummy_in_the_pyramid.fur create mode 100644 demos/genesis/my_problem.fur diff --git a/demos/genesis/laidback.fur b/demos/genesis/laidback.fur new file mode 100644 index 0000000000000000000000000000000000000000..2edd201c7d3c1244338e1c8bf2f4266ef23c18e3 GIT binary patch literal 9918 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 Dyhatu literal 0 HcmV?d00001 diff --git a/demos/genesis/last_chiptune.fur b/demos/genesis/last_chiptune.fur new file mode 100644 index 0000000000000000000000000000000000000000..7f38f61ae9818084d571995774b87e7fdbe73dde GIT binary patch literal 8252 zcmai2XIN8RmsLRs(jpxxF(O5(fD|Esgf3k`P&!Hzr1z3YuY!nF>AV7>0xD8M2O$aw zh9W(bfD|DS2sI>`z&A6``#kew{@vuBd(S?5?X~vWH>6<8mcHq_j)kg)N~CL;3w8)Q zrz6k&i4)3jHR=cbg=?Pt@zhaYJwpJ=@4p*by_{ui30}DjzRKL?aA;z84FCc}Url5N zQmY^Sq+CT@1MC1**{DO4K+*3<%|;ua?Eg}eb*%_Pgk#-vmxtF8l}45m^Of%q$2eK3 z+hHMlo#SEy3jB!QYm8#9HJ4E`Q(K=B?EH@C=xt4`O*9p3o6>{Kp8olTZZ{5q52w1V zHFzJim(Kj{kc5T*jS}z};8ejb7<%YfTCRaNBtYr?DL}9Iyuwgu?NPAuUXQ^w)aXBn=hkj+1Z7Qv8#}V zlD$+lP`kK_wJcZBumL+QoQe(#iG8z{a$t%tB-}{ezcKBbQ8p@N8c;jHrt-HdnLo6- zEXGnatiOkC?pRl=Hl)5xEiARHL#bp9RAY*d`@Lh6l@VT~tH52x1h; zR=7*2#YxUAONe}k`ciCx|2ixdhRtCk4q37h7dym`2WrKR3ErZ|vyJSLyWz=c#PqTc zYUTk*keHISJEE#$y&6%GRZ(I8U=07qTCUBrr9uHag0Eqfi#%jAES@W0=LsIcV@Bly zvDNNJ*!&?xWd;54uX-}XaH61gea+ZCY=|h=hQDCw-DEYY460h!U>?CsF{ALsmTt!# z#QX*bbhJpveVUMxFB$T_Lag>zz}}bqUrbNJ_8If-{B%b_yua|AI&#Fh%v+JaT@3Bv z`4u1)jnSpga)rk>h6k+{qwO=dh_m!^#GRB|e4%eET-$6$Q|#Za@74aor%gOT5cl#` ziQ0zt;h!r&?G|PPW4XD-t$ggZks)(PV}%&{-FhcMj*nDQ;fk(V*8=^*BhsIQ5s-4k zEnzw0Zsjc^()AV*w|eVKd)4|YDG#OHcllVdoM8@JWAstSn{~SRalFU;1b#;CC!U}- zf?q`j< z_0Fep0gr@qbkiq9Lu=z}sS!1tSNN4L4_77UQj%E9gEr7+X4PMUzmY1c1G8z;eI4LB zfl6-|*>EJL^~knzH#|IMhJWmO`_^RQydqro__2Xqhg#A1C$A9lzj}!?)nsU+;6%rm zY<1DfVRBPAtKa(;)J~%EHaC9>oagSO5%MJ7%M^EKVs38a?F7;[oGWrY4X5C1ZJ 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 literal 0 HcmV?d00001 diff --git a/demos/genesis/louder.fur b/demos/genesis/louder.fur new file mode 100644 index 0000000000000000000000000000000000000000..81c14738b62754feb0d92bf1648e90cc9349a1a4 GIT binary patch literal 10276 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

5uTN5t^-w^VCiS3kC~|+ zvtBWS3>rx@4~)w@Y=`#KDE&JK_7Dxj?9Th(!c3AA z-m<83V!d^ke9-)*oaNXhR0xFrXkdEuswZU;9U}m;(;^0fYw0Bu+nSQ+-ypZ7|9{@V z|NA0{lDjyuBsfR>yHaH6ggyA>^C)REqYxs7)s&LwmOpaH>u20Mi0y!t$Z>A6zC$*H z=zZtb-~P|O_?22JPS6b=LI<%P#g0DZczt3dF8`%hdJ~7XHg-}iE2Nb*8Ckj{91Smi zpZzJM*N>j3kra1H7hSjyPpVp&JGv)sqyW{3jfGR(%D2%6rb_pV%V|17GC~AEh1}Ar eQw3s4RM$xwZfw9R`Mx>5{8tHr;ddH literal 0 HcmV?d00001 diff --git a/demos/genesis/mummy_in_the_pyramid.fur b/demos/genesis/mummy_in_the_pyramid.fur new file mode 100644 index 0000000000000000000000000000000000000000..d36533c7a82d2b64e1929093457f3bc9eda3b5f7 GIT binary patch literal 5547 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 HaQnXihB(=- literal 0 HcmV?d00001 diff --git a/demos/genesis/my_problem.fur b/demos/genesis/my_problem.fur new file mode 100644 index 0000000000000000000000000000000000000000..22c2c71a5202f594d5f5e35feffb16e5d54d6871 GIT binary patch literal 8567 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 literal 0 HcmV?d00001 diff --git a/src/gui/about.cpp b/src/gui/about.cpp index 08daa4947..fc8e6c474 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -88,6 +88,7 @@ const char* aboutLine[]={ "Lunathir", "LVintageNerd", "Mahbod Karamoozian", + "Martin Demsky", "Miker", "nicco1690", "", From c776bccfda6efb768915a1f8226e703c2d168464 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 16:50:41 -0500 Subject: [PATCH 19/25] fix MinGW 32-bit build --- extern/pfd-fixed/portable-file-dialogs.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/extern/pfd-fixed/portable-file-dialogs.h b/extern/pfd-fixed/portable-file-dialogs.h index fc6df0a14..8e5ca5079 100644 --- a/extern/pfd-fixed/portable-file-dialogs.h +++ b/extern/pfd-fixed/portable-file-dialogs.h @@ -54,14 +54,16 @@ #include // std::chrono // Versions of mingw64 g++ up to 9.3.0 do not have a complete IFileDialog +// we don't use PFD on Windows anyway #ifndef PFD_HAS_IFILEDIALOG -# define PFD_HAS_IFILEDIALOG 1 -# if (defined __MINGW64__ || defined __MINGW32__) && defined __GXX_ABI_VERSION -# if __GXX_ABI_VERSION <= 1014 -# undef PFD_HAS_IFILEDIALOG -# define PFD_HAS_IFILEDIALOG 0 -# endif -# endif +#define PFD_HAS_IFILEDIALOG 0 +//# define PFD_HAS_IFILEDIALOG 1 +//# if (defined __MINGW64__ || defined __MINGW32__) && defined __GXX_ABI_VERSION +//# if __GXX_ABI_VERSION <= 1014 +//# undef PFD_HAS_IFILEDIALOG +//# define PFD_HAS_IFILEDIALOG 0 +//# endif +//# endif #endif namespace pfd From db690a1e45cee255d3f4d7004ee0c382a5e16b0a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 17:00:40 -0500 Subject: [PATCH 20/25] release v0.6pre3 --- .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 0b3bfbaeb..6c05127cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ defaults: shell: bash env: - BUILD_TYPE: Debug + BUILD_TYPE: Release jobs: build: diff --git a/src/engine/engine.h b/src/engine/engine.h index 41823b97f..7eb5c00c1 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 "Crash Evaluation Build" +#define DIV_VERSION "0.6pre3" #define DIV_ENGINE_VERSION 133 // for imports #define DIV_VERSION_MOD 0xff01 From c57636002a2f427f57b0e5e8ead43e6c54069b9e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 18:36:33 -0500 Subject: [PATCH 21/25] better Windows XP check --- CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e17adafa..305ccacdb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,7 @@ option(SYSTEM_LIBSNDFILE "Use a system-installed version of libsndfile instead o option(SYSTEM_RTMIDI "Use a system-installed version of RtMidi instead of the vendored one" OFF) option(SYSTEM_ZLIB "Use a system-installed version of zlib instead of the vendored one" OFF) option(SYSTEM_SDL2 "Use a system-installed version of SDL2 instead of the vendored one" ${SYSTEM_SDL2_DEFAULT}) +option(SUPPORT_XP "Build a Windows XP-compatible binary" OFF) option(WARNINGS_ARE_ERRORS "Whether warnings in furnace's C++ code should be treated as errors" OFF) option(WITH_DEMOS "Install demo songs" ON) option(WITH_INSTRUMENTS "Install instruments" ON) @@ -622,7 +623,7 @@ src/gui/volMeter.cpp src/gui/gui.cpp ) -if (WIN32 AND (MSVC OR CMAKE_SIZEOF_VOID_P EQUAL 8)) +if (WIN32 AND NOT SUPPORT_XP) list(APPEND GUI_SOURCES extern/nfd-modified/src/nfd_common.cpp) list(APPEND GUI_SOURCES extern/nfd-modified/src/nfd_win.cpp) endif() @@ -707,7 +708,7 @@ if (WIN32) list(APPEND DEPENDENCIES_LIBRARIES -static) endif() # support Windows XP - if (CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT MSVC) + if (SUPPORT_XP) list(APPEND DEPENDENCIES_DEFINES "_WIN32_WINNT=0x0501") endif() elseif (APPLE) From 502d996dff69d238e19c88c01ad395a7539f8f76 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 18:40:00 -0500 Subject: [PATCH 22/25] apply SUPPORT_XP flag to x86 Windows builds --- .github/workflows/build.yml | 3 +++ scripts/release-win32.sh | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6c05127cc..95b3229f1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -225,6 +225,9 @@ jobs: fi elif [ '${{ matrix.config.compiler }}' == 'mingw' ]; then CMAKE_EXTRA_ARGS+=('-DCMAKE_TOOLCHAIN_FILE=scripts/Cross-MinGW-${{ steps.windows-identify.outputs.mingw-target }}.cmake') + if [ '${{ matrix.config.arch }}' == 'x86' ]; then + CMAKE_EXTRA_ARGS+=('-DSUPPORT_XP=ON') + fi elif [ '${{ runner.os }}' == 'macOS' ]; then if [ '${{ matrix.config.arch }}' == 'arm64' ]; then CMAKE_EXTRA_ARGS+=('-DCMAKE_OSX_DEPLOYMENT_TARGET="11.0"' '-DCMAKE_OSX_ARCHITECTURES=arm64') diff --git a/scripts/release-win32.sh b/scripts/release-win32.sh index 7b3c76d7a..c763eed5a 100755 --- a/scripts/release-win32.sh +++ b/scripts/release-win32.sh @@ -15,7 +15,7 @@ fi cd win32build # TODO: potential Arch-ism? -i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF .. || exit 1 +i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON .. || exit 1 make -j8 || exit 1 i686-w64-mingw32-strip -s furnace.exe || exit 1 From d8dcaed009b5017dd475d39837602b140987caa8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 31 Dec 2022 18:50:59 -0500 Subject: [PATCH 23/25] update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3a27c23b8..4da5e5933 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ Available options: | `SYSTEM_RTMIDI` | `OFF` | Use a system-installed version of RtMidi instead of the vendored one | | `SYSTEM_ZLIB` | `OFF` | Use a system-installed version of zlib instead of the vendored one | | `SYSTEM_SDL2` | `OFF` | Use a system-installed version of SDL2 instead of the vendored one | +| `SUPPORT_XP` | `OFF` | Build a Windows XP-compatible binary | | `WARNINGS_ARE_ERRORS` | `OFF` (but consider enabling this & reporting any errors that arise from it!) | Whether warnings in furnace's C++ code should be treated as errors | | `WITH_DEMOS` | `ON` | Install demo songs on `make install` | | `WITH_INSTRUMENTS` | `ON` | Install demo instruments on `make install` | From 347d8348038a029005d1481be26aced5218dd2b4 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 1 Jan 2023 03:53:47 -0500 Subject: [PATCH 24/25] ... --- scripts/Cross-MinGW.cmake | 4 ++-- scripts/release-win32.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/Cross-MinGW.cmake b/scripts/Cross-MinGW.cmake index 09871d6bb..6f662d379 100644 --- a/scripts/Cross-MinGW.cmake +++ b/scripts/Cross-MinGW.cmake @@ -1,7 +1,7 @@ set(TARGET_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32) -set(CMAKE_C_COMPILER ${TARGET_PREFIX}-gcc-posix) -set(CMAKE_CXX_COMPILER ${TARGET_PREFIX}-g++-posix) +set(CMAKE_C_COMPILER ${TARGET_PREFIX}-gcc) +set(CMAKE_CXX_COMPILER ${TARGET_PREFIX}-g++) set(PKG_CONFIG_EXECUTABLE ${TARGET_PREFIX}-pkg-config) set(CMAKE_FIND_ROOT_PATH /usr/${TARGET_PREFIX}) diff --git a/scripts/release-win32.sh b/scripts/release-win32.sh index c763eed5a..892434865 100755 --- a/scripts/release-win32.sh +++ b/scripts/release-win32.sh @@ -15,7 +15,7 @@ fi cd win32build # TODO: potential Arch-ism? -i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON .. || exit 1 +cmake -DCMAKE_TOOLCHAIN_FILE=scripts/Cross-MinGW-x86.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON .. || exit 1 make -j8 || exit 1 i686-w64-mingw32-strip -s furnace.exe || exit 1 From 565e8cc3148c4377edf563ce9e0fe421d3ab3d09 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 1 Jan 2023 13:41:10 -0500 Subject: [PATCH 25/25] Revert "..." This reverts commit 347d8348038a029005d1481be26aced5218dd2b4. --- scripts/Cross-MinGW.cmake | 4 ++-- scripts/release-win32.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/Cross-MinGW.cmake b/scripts/Cross-MinGW.cmake index 6f662d379..09871d6bb 100644 --- a/scripts/Cross-MinGW.cmake +++ b/scripts/Cross-MinGW.cmake @@ -1,7 +1,7 @@ set(TARGET_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32) -set(CMAKE_C_COMPILER ${TARGET_PREFIX}-gcc) -set(CMAKE_CXX_COMPILER ${TARGET_PREFIX}-g++) +set(CMAKE_C_COMPILER ${TARGET_PREFIX}-gcc-posix) +set(CMAKE_CXX_COMPILER ${TARGET_PREFIX}-g++-posix) set(PKG_CONFIG_EXECUTABLE ${TARGET_PREFIX}-pkg-config) set(CMAKE_FIND_ROOT_PATH /usr/${TARGET_PREFIX}) diff --git a/scripts/release-win32.sh b/scripts/release-win32.sh index 892434865..c763eed5a 100755 --- a/scripts/release-win32.sh +++ b/scripts/release-win32.sh @@ -15,7 +15,7 @@ fi cd win32build # TODO: potential Arch-ism? -cmake -DCMAKE_TOOLCHAIN_FILE=scripts/Cross-MinGW-x86.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON .. || exit 1 +i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON .. || exit 1 make -j8 || exit 1 i686-w64-mingw32-strip -s furnace.exe || exit 1