diff --git a/papers/format.md b/papers/format.md index d30c48b52..e7bf1de68 100644 --- a/papers/format.md +++ b/papers/format.md @@ -32,6 +32,7 @@ these fields are 0 in format versions prior to 100 (0.6pre1). the format versions are: +- 130: Furnace dev130 - 129: Furnace dev129 - 128: Furnace dev128 - 127: Furnace dev127 @@ -365,7 +366,7 @@ size | description | - this one isn't a compatibility flag, but it's here for convenience... 1 | disable sample macro (>=117) or reserved 1 | broken outVol episode 2 (>=121) or reserved - 1 | reserved + 1 | old arpeggio strategy (>=130) or reserved --- | **virtual tempo data** 2 | virtual tempo numerator of first song (>=96) or reserved 2 | virtual tempo denominator of first song (>=96) or reserved diff --git a/src/engine/chipUtils.h b/src/engine/chipUtils.h index b864ff92c..e48086d74 100644 --- a/src/engine/chipUtils.h +++ b/src/engine/chipUtils.h @@ -33,9 +33,13 @@ template struct SharedChannel { bool active, insChanged, freqChanged, keyOn, keyOff, portaPause, inPorta; T vol, outVol; DivMacroInt std; + void handleArp() { + } void macroInit(DivInstrument* which) { std.init(which); pitch2=0; + arpOff=0; + baseFreqOverride=-1; } SharedChannel(T initVol): freq(0), diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 59b696758..c20f60738 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -635,4 +635,6 @@ class DivDispatch { if (xxMax) x=xMax; +#define NEW_ARP_STRAT (parent->song.linearPitch==2 && !parent->song.newArpStrategy) + #endif