diff --git a/src/engine/platform/amiga.h b/src/engine/platform/amiga.h index a4c1a7a44..7a7f0d242 100644 --- a/src/engine/platform/amiga.h +++ b/src/engine/platform/amiga.h @@ -27,7 +27,7 @@ class DivPlatformAmiga: public DivDispatch { struct Channel { - int freq, baseFreq, pitch; + int freq, baseFreq, pitch, pitch2; unsigned int audLoc; unsigned short audLen; unsigned int audPos; @@ -45,6 +45,7 @@ class DivPlatformAmiga: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), audLoc(0), audLen(0), audPos(0), diff --git a/src/engine/platform/arcade.h b/src/engine/platform/arcade.h index e051e8aba..07a610f72 100644 --- a/src/engine/platform/arcade.h +++ b/src/engine/platform/arcade.h @@ -36,7 +36,7 @@ class DivPlatformArcade: public DivDispatch { DivInstrumentFM state; DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note; + int freq, baseFreq, pitch, pitch2, note; int ins; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta, portaPause, furnacePCM, hardReset; @@ -48,6 +48,7 @@ class DivPlatformArcade: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), active(false), diff --git a/src/engine/platform/ay.h b/src/engine/platform/ay.h index ce06fc9fc..217d11acf 100644 --- a/src/engine/platform/ay.h +++ b/src/engine/platform/ay.h @@ -32,7 +32,7 @@ class DivPlatformAY8910: public DivDispatch { inline unsigned char regRemap(unsigned char reg) { return intellivision?AY8914RegRemap[reg&0x0f]:reg&0x0f; } struct Channel { unsigned char freqH, freqL; - int freq, baseFreq, note, pitch; + int freq, baseFreq, note, pitch, pitch2; int ins; unsigned char psgMode, autoEnvNum, autoEnvDen; signed char konCycles; @@ -40,7 +40,7 @@ class DivPlatformAY8910: public DivDispatch { int vol, outVol; unsigned char pan; DivMacroInt std; - Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), note(0), pitch(0), ins(-1), psgMode(1), autoEnvNum(0), autoEnvDen(0), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(15), pan(3) {} + Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), note(0), pitch(0), pitch2(0), ins(-1), psgMode(1), autoEnvNum(0), autoEnvDen(0), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(15), pan(3) {} }; Channel chan[3]; bool isMuted[3]; diff --git a/src/engine/platform/ay8930.h b/src/engine/platform/ay8930.h index 61a186f4c..098a239bb 100644 --- a/src/engine/platform/ay8930.h +++ b/src/engine/platform/ay8930.h @@ -28,7 +28,7 @@ class DivPlatformAY8930: public DivDispatch { protected: struct Channel { unsigned char freqH, freqL; - int freq, baseFreq, note, pitch; + int freq, baseFreq, note, pitch, pitch2; int ins; unsigned char psgMode, autoEnvNum, autoEnvDen, duty; signed char konCycles; @@ -36,7 +36,7 @@ class DivPlatformAY8930: public DivDispatch { int vol, outVol; unsigned char pan; DivMacroInt std; - Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), note(0), pitch(0), ins(-1), psgMode(1), autoEnvNum(0), autoEnvDen(0), duty(4), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(31), pan(3) {} + Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), note(0), pitch(0), pitch2(0), ins(-1), psgMode(1), autoEnvNum(0), autoEnvDen(0), duty(4), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(31), pan(3) {} }; Channel chan[3]; bool isMuted[3]; diff --git a/src/engine/platform/bubsyswsg.h b/src/engine/platform/bubsyswsg.h index 0fbb2ac5d..87978d71e 100644 --- a/src/engine/platform/bubsyswsg.h +++ b/src/engine/platform/bubsyswsg.h @@ -28,7 +28,7 @@ class DivPlatformBubSysWSG: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta; signed char vol, outVol, wave; signed char waveROM[32] = {0}; // 4 bit PROM per channel on bubble system @@ -38,6 +38,7 @@ class DivPlatformBubSysWSG: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), active(false), diff --git a/src/engine/platform/c64.h b/src/engine/platform/c64.h index bc3cbf98f..2cb53c168 100644 --- a/src/engine/platform/c64.h +++ b/src/engine/platform/c64.h @@ -26,7 +26,7 @@ class DivPlatformC64: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, prevFreq, testWhen, note, ins; + int freq, baseFreq, pitch, pitch2, prevFreq, testWhen, note, ins; unsigned char sweep, wave, attack, decay, sustain, release; short duty; bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta, filter; @@ -37,6 +37,7 @@ class DivPlatformC64: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), prevFreq(65535), testWhen(0), note(0), diff --git a/src/engine/platform/fds.h b/src/engine/platform/fds.h index bf9492722..252452e81 100644 --- a/src/engine/platform/fds.h +++ b/src/engine/platform/fds.h @@ -26,7 +26,7 @@ class DivPlatformFDS: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, prevFreq, note, modFreq, ins; + int freq, baseFreq, pitch, pitch2, prevFreq, note, modFreq, ins; unsigned char duty, sweep, modDepth, modPos; bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta, modOn; signed char vol, outVol, wave; @@ -36,6 +36,7 @@ class DivPlatformFDS: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), prevFreq(65535), note(0), modFreq(0), diff --git a/src/engine/platform/gb.h b/src/engine/platform/gb.h index c79603ab1..9d1a4572b 100644 --- a/src/engine/platform/gb.h +++ b/src/engine/platform/gb.h @@ -27,7 +27,7 @@ class DivPlatformGB: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char duty, sweep; bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta; signed char vol, outVol, wave; @@ -36,6 +36,7 @@ class DivPlatformGB: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), duty(0), diff --git a/src/engine/platform/genesis.h b/src/engine/platform/genesis.h index 31f11d188..13df1e8b2 100644 --- a/src/engine/platform/genesis.h +++ b/src/engine/platform/genesis.h @@ -36,7 +36,7 @@ class DivPlatformGenesis: public DivDispatch { DivInstrumentFM state; DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, portaPauseFreq, note; + int freq, baseFreq, pitch, pitch2, portaPauseFreq, note; int ins; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, furnaceDac, inPorta, hardReset; int vol, outVol; @@ -47,6 +47,7 @@ class DivPlatformGenesis: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), portaPauseFreq(0), note(0), ins(-1), diff --git a/src/engine/platform/genesisext.h b/src/engine/platform/genesisext.h index e3604a34c..c246ee3f3 100644 --- a/src/engine/platform/genesisext.h +++ b/src/engine/platform/genesisext.h @@ -25,7 +25,7 @@ class DivPlatformGenesisExt: public DivPlatformGenesis { struct OpChannel { DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, portaPauseFreq, ins; + int freq, baseFreq, pitch, pitch2, portaPauseFreq, ins; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause; int vol; @@ -36,6 +36,7 @@ class DivPlatformGenesisExt: public DivPlatformGenesis { freq(0), baseFreq(0), pitch(0), + pitch2(0), portaPauseFreq(0), ins(-1), active(false), diff --git a/src/engine/platform/lynx.h b/src/engine/platform/lynx.h index f1f974ed0..1093bad8a 100644 --- a/src/engine/platform/lynx.h +++ b/src/engine/platform/lynx.h @@ -44,7 +44,7 @@ class DivPlatformLynx: public DivDispatch { DivMacroInt std; MikeyFreqDiv fd; MikeyDuty duty; - int baseFreq, pitch, note, actualNote, lfsr, ins; + int baseFreq, pitch, pitch2, note, actualNote, lfsr, ins; unsigned char pan; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta; signed char vol, outVol; @@ -54,6 +54,7 @@ class DivPlatformLynx: public DivDispatch { duty(0), baseFreq(0), pitch(0), + pitch2(0), note(0), actualNote(0), lfsr(-1), diff --git a/src/engine/platform/mmc5.h b/src/engine/platform/mmc5.h index 879ebee18..7db844a06 100644 --- a/src/engine/platform/mmc5.h +++ b/src/engine/platform/mmc5.h @@ -25,7 +25,7 @@ class DivPlatformMMC5: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, prevFreq, note, ins; + int freq, baseFreq, pitch, pitch2, prevFreq, note, ins; unsigned char duty, sweep; bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta, furnaceDac; signed char vol, outVol, wave; @@ -34,6 +34,7 @@ class DivPlatformMMC5: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), prevFreq(65535), note(0), ins(-1), diff --git a/src/engine/platform/n163.h b/src/engine/platform/n163.h index 38ebeace3..0b4edbdd8 100644 --- a/src/engine/platform/n163.h +++ b/src/engine/platform/n163.h @@ -28,7 +28,7 @@ class DivPlatformN163: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note; + int freq, baseFreq, pitch, pitch2, note; short ins, wave, wavePos, waveLen; unsigned char waveMode; short loadWave, loadPos, loadLen; @@ -41,6 +41,7 @@ class DivPlatformN163: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), wave(-1), diff --git a/src/engine/platform/nes.h b/src/engine/platform/nes.h index 7650d39e9..8de7f7b57 100644 --- a/src/engine/platform/nes.h +++ b/src/engine/platform/nes.h @@ -25,7 +25,7 @@ class DivPlatformNES: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, prevFreq, note, ins; + int freq, baseFreq, pitch, pitch2, prevFreq, note, ins; unsigned char duty, sweep; bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta, furnaceDac; signed char vol, outVol, wave; @@ -34,6 +34,7 @@ class DivPlatformNES: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), prevFreq(65535), note(0), ins(-1), diff --git a/src/engine/platform/opl.h b/src/engine/platform/opl.h index ee3bcb36f..50a232aa8 100644 --- a/src/engine/platform/opl.h +++ b/src/engine/platform/opl.h @@ -30,7 +30,7 @@ class DivPlatformOPL: public DivDispatch { DivInstrumentFM state; DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, furnaceDac, inPorta, fourOp; int vol, outVol; unsigned char pan; @@ -40,6 +40,7 @@ class DivPlatformOPL: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), active(false), diff --git a/src/engine/platform/opll.h b/src/engine/platform/opll.h index 79f905c66..8b1732aaf 100644 --- a/src/engine/platform/opll.h +++ b/src/engine/platform/opll.h @@ -33,7 +33,7 @@ class DivPlatformOPLL: public DivDispatch { DivInstrumentFM state; DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, furnaceDac, inPorta; int vol, outVol; unsigned char pan; @@ -43,6 +43,7 @@ class DivPlatformOPLL: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), active(false), diff --git a/src/engine/platform/pce.h b/src/engine/platform/pce.h index deb85fbb9..1f92e6338 100644 --- a/src/engine/platform/pce.h +++ b/src/engine/platform/pce.h @@ -28,7 +28,7 @@ class DivPlatformPCE: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note; + int freq, baseFreq, pitch, pitch2, note; int dacPeriod, dacRate; unsigned int dacPos; int dacSample, ins; @@ -41,6 +41,7 @@ class DivPlatformPCE: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), dacPeriod(0), dacRate(0), diff --git a/src/engine/platform/pcspkr.h b/src/engine/platform/pcspkr.h index f8813f3ff..815f2a96d 100644 --- a/src/engine/platform/pcspkr.h +++ b/src/engine/platform/pcspkr.h @@ -25,7 +25,7 @@ class DivPlatformPCSpeaker: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char duty, sweep; bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta, furnaceDac; signed char vol, outVol, wave; @@ -34,6 +34,7 @@ class DivPlatformPCSpeaker: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), duty(0), diff --git a/src/engine/platform/pet.h b/src/engine/platform/pet.h index b4b75316e..567d4fc43 100644 --- a/src/engine/platform/pet.h +++ b/src/engine/platform/pet.h @@ -25,7 +25,7 @@ class DivPlatformPET: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta; int vol, outVol, wave; unsigned char sreg; @@ -36,6 +36,7 @@ class DivPlatformPET: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), active(false), diff --git a/src/engine/platform/qsound.h b/src/engine/platform/qsound.h index aa07a3b47..23229e142 100644 --- a/src/engine/platform/qsound.h +++ b/src/engine/platform/qsound.h @@ -27,7 +27,7 @@ class DivPlatformQSound: public DivDispatch { struct Channel { - int freq, baseFreq, pitch; + int freq, baseFreq, pitch, pitch2; unsigned short audLen; unsigned int audPos; int sample, wave, ins; @@ -40,6 +40,7 @@ class DivPlatformQSound: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), audLen(0), audPos(0), sample(-1), diff --git a/src/engine/platform/saa.h b/src/engine/platform/saa.h index 309092936..8546c9679 100644 --- a/src/engine/platform/saa.h +++ b/src/engine/platform/saa.h @@ -35,14 +35,14 @@ class DivPlatformSAA1099: public DivDispatch { protected: struct Channel { unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char psgMode; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, inPorta; int vol, outVol; unsigned char pan; DivMacroInt std; - Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), note(0), ins(-1), psgMode(1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(15), pan(255) {} + Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), pitch2(0), note(0), ins(-1), psgMode(1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(15), pan(255) {} }; Channel chan[6]; bool isMuted[6]; diff --git a/src/engine/platform/segapcm.h b/src/engine/platform/segapcm.h index 3a68a34b3..01e56b6bb 100644 --- a/src/engine/platform/segapcm.h +++ b/src/engine/platform/segapcm.h @@ -29,7 +29,7 @@ class DivPlatformSegaPCM: public DivDispatch { struct Channel { DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta, portaPause, furnacePCM; int vol, outVol; @@ -42,7 +42,7 @@ class DivPlatformSegaPCM: public DivDispatch { unsigned char freq; PCMChannel(): sample(-1), pos(0), len(0), freq(0) {} } pcm; - Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), note(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), inPorta(false), portaPause(false), furnacePCM(false), vol(0), outVol(0), chVolL(127), chVolR(127) {} + Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), pitch2(0), note(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), inPorta(false), portaPause(false), furnacePCM(false), vol(0), outVol(0), chVolL(127), chVolR(127) {} }; Channel chan[16]; struct QueuedWrite { diff --git a/src/engine/platform/sms.h b/src/engine/platform/sms.h index 66fdda857..3342dc987 100644 --- a/src/engine/platform/sms.h +++ b/src/engine/platform/sms.h @@ -26,7 +26,7 @@ class DivPlatformSMS: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, actualNote, ins; + int freq, baseFreq, pitch, pitch2, note, actualNote, ins; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta; signed char vol, outVol; DivMacroInt std; @@ -34,6 +34,7 @@ class DivPlatformSMS: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), actualNote(0), ins(-1), diff --git a/src/engine/platform/su.h b/src/engine/platform/su.h index 6291d4531..935e62ea8 100644 --- a/src/engine/platform/su.h +++ b/src/engine/platform/su.h @@ -27,7 +27,7 @@ class DivPlatformSoundUnit: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note; + int freq, baseFreq, pitch, pitch2, note; int ins, cutoff, res, control; signed char pan; unsigned char duty; @@ -39,6 +39,7 @@ class DivPlatformSoundUnit: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), cutoff(65535), diff --git a/src/engine/platform/swan.h b/src/engine/platform/swan.h index fdad150b2..8997e28d2 100644 --- a/src/engine/platform/swan.h +++ b/src/engine/platform/swan.h @@ -28,7 +28,7 @@ class DivPlatformSwan: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char pan; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta; int vol, outVol, wave; @@ -38,6 +38,7 @@ class DivPlatformSwan: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), pan(255), diff --git a/src/engine/platform/tia.h b/src/engine/platform/tia.h index 602cc6f1e..cc59fc18e 100644 --- a/src/engine/platform/tia.h +++ b/src/engine/platform/tia.h @@ -27,13 +27,13 @@ class DivPlatformTIA: public DivDispatch { protected: struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char shape; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, inPorta; int vol, outVol; DivMacroInt std; - Channel(): freq(0), baseFreq(0), pitch(0), note(0), ins(-1), shape(4), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(15) {} + Channel(): freq(0), baseFreq(0), pitch(0), pitch2(0), note(0), ins(-1), shape(4), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), inPorta(false), vol(0), outVol(15) {} }; Channel chan[2]; bool isMuted[2]; diff --git a/src/engine/platform/tx81z.h b/src/engine/platform/tx81z.h index d9261ebd7..e8bda6a3d 100644 --- a/src/engine/platform/tx81z.h +++ b/src/engine/platform/tx81z.h @@ -35,7 +35,7 @@ class DivPlatformTX81Z: public DivDispatch { DivInstrumentFM state; DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta, portaPause, furnacePCM, hardReset; int vol, outVol; @@ -46,6 +46,7 @@ class DivPlatformTX81Z: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), active(false), diff --git a/src/engine/platform/vera.h b/src/engine/platform/vera.h index 64dee5c78..b40598b33 100644 --- a/src/engine/platform/vera.h +++ b/src/engine/platform/vera.h @@ -29,7 +29,7 @@ struct VERA_PCM; class DivPlatformVERA: public DivDispatch { protected: struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char pan; bool active, freqChanged, inPorta; int vol, outVol; @@ -45,7 +45,8 @@ class DivPlatformVERA: public DivDispatch { bool depth16; PCMChannel(): sample(-1), pos(0), len(0), freq(0), depth16(false) {} } pcm; - Channel(): freq(0), baseFreq(0), pitch(0), note(0), ins(-1), pan(0), active(false), freqChanged(false), inPorta(false), vol(0), outVol(0), accum(0), noiseval(0) {} + // somebody please split this into multiple lines! + Channel(): freq(0), baseFreq(0), pitch(0), pitch2(0), note(0), ins(-1), pan(0), active(false), freqChanged(false), inPorta(false), vol(0), outVol(0), accum(0), noiseval(0) {} }; Channel chan[17]; bool isMuted[17]; diff --git a/src/engine/platform/vic20.h b/src/engine/platform/vic20.h index 8c15c35d9..0db37c5bf 100644 --- a/src/engine/platform/vic20.h +++ b/src/engine/platform/vic20.h @@ -27,7 +27,7 @@ class DivPlatformVIC20: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char pan; bool active, insChanged, freqChanged, keyOn, keyOff, inPorta; int vol, outVol, wave, waveWriteCycle; @@ -36,6 +36,7 @@ class DivPlatformVIC20: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), pan(255), diff --git a/src/engine/platform/vrc6.h b/src/engine/platform/vrc6.h index a44e9d336..45dcb5c5f 100644 --- a/src/engine/platform/vrc6.h +++ b/src/engine/platform/vrc6.h @@ -28,7 +28,7 @@ class DivPlatformVRC6: public DivDispatch { struct Channel { - int freq, baseFreq, pitch, note; + int freq, baseFreq, pitch, pitch2, note; int dacPeriod, dacRate, dacOut; unsigned int dacPos; int dacSample, ins; @@ -40,6 +40,7 @@ class DivPlatformVRC6: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), dacPeriod(0), dacRate(0), diff --git a/src/engine/platform/x1_010.h b/src/engine/platform/x1_010.h index bee546473..cceb61173 100644 --- a/src/engine/platform/x1_010.h +++ b/src/engine/platform/x1_010.h @@ -79,7 +79,7 @@ class DivPlatformX1_010: public DivDispatch { slide(0), slidefrac(0) {} }; - int freq, baseFreq, pitch, note; + int freq, baseFreq, pitch, pitch2, note; int wave, sample, ins; unsigned char pan, autoEnvNum, autoEnvDen; bool active, insChanged, envChanged, freqChanged, keyOn, keyOff, inPorta, furnacePCM, pcm; @@ -89,7 +89,7 @@ class DivPlatformX1_010: public DivDispatch { DivMacroInt std; DivWaveSynth ws; void reset() { - freq = baseFreq = pitch = note = 0; + freq = baseFreq = pitch = pitch2 = note = 0; wave = sample = ins = -1; pan = 255; autoEnvNum = autoEnvDen = 0; @@ -100,7 +100,7 @@ class DivPlatformX1_010: public DivDispatch { waveBank = 0; } Channel(): - freq(0), baseFreq(0), pitch(0), note(0), + freq(0), baseFreq(0), pitch(0), pitch2(0), note(0), wave(-1), sample(-1), ins(-1), pan(255), autoEnvNum(0), autoEnvDen(0), active(false), insChanged(true), envChanged(true), freqChanged(false), keyOn(false), keyOff(false), inPorta(false), furnacePCM(false), pcm(false), diff --git a/src/engine/platform/ym2610.h b/src/engine/platform/ym2610.h index af947199d..ec1b2497a 100644 --- a/src/engine/platform/ym2610.h +++ b/src/engine/platform/ym2610.h @@ -43,7 +43,7 @@ class DivPlatformYM2610: public DivDispatch { struct Channel { DivInstrumentFM state; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char psgMode, autoEnvNum, autoEnvDen; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, inPorta, furnacePCM, hardReset; @@ -57,6 +57,7 @@ class DivPlatformYM2610: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), psgMode(1), diff --git a/src/engine/platform/ym2610b.h b/src/engine/platform/ym2610b.h index d2363ed14..0ce1e0f7f 100644 --- a/src/engine/platform/ym2610b.h +++ b/src/engine/platform/ym2610b.h @@ -35,7 +35,7 @@ class DivPlatformYM2610B: public DivDispatch { struct Channel { DivInstrumentFM state; unsigned char freqH, freqL; - int freq, baseFreq, pitch, note, ins; + int freq, baseFreq, pitch, pitch2, note, ins; unsigned char psgMode, autoEnvNum, autoEnvDen; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, inPorta, furnacePCM, hardReset; @@ -49,6 +49,7 @@ class DivPlatformYM2610B: public DivDispatch { freq(0), baseFreq(0), pitch(0), + pitch2(0), note(0), ins(-1), psgMode(1), diff --git a/src/engine/platform/ym2610bext.h b/src/engine/platform/ym2610bext.h index c2cd4fb37..5dd98c87e 100644 --- a/src/engine/platform/ym2610bext.h +++ b/src/engine/platform/ym2610bext.h @@ -25,12 +25,12 @@ class DivPlatformYM2610BExt: public DivPlatformYM2610B { struct OpChannel { DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, ins; + int freq, baseFreq, pitch, pitch2, ins; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause; int vol; unsigned char pan; - OpChannel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), vol(0), pan(3) {} + OpChannel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), pitch2(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), vol(0), pan(3) {} }; OpChannel opChan[4]; bool isOpMuted[4]; diff --git a/src/engine/platform/ym2610ext.h b/src/engine/platform/ym2610ext.h index b89229120..0ff45981e 100644 --- a/src/engine/platform/ym2610ext.h +++ b/src/engine/platform/ym2610ext.h @@ -25,12 +25,12 @@ class DivPlatformYM2610Ext: public DivPlatformYM2610 { struct OpChannel { DivMacroInt std; unsigned char freqH, freqL; - int freq, baseFreq, pitch, ins; + int freq, baseFreq, pitch, pitch2, ins; signed char konCycles; bool active, insChanged, freqChanged, keyOn, keyOff, portaPause; int vol; unsigned char pan; - OpChannel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), vol(0), pan(3) {} + OpChannel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), pitch2(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), portaPause(false), vol(0), pan(3) {} }; OpChannel opChan[4]; bool isOpMuted[4];