add two more compatibility flags

issue #167 and #249:
- stop porta on note off
- continuous vibrato
This commit is contained in:
tildearrow 2022-03-03 23:14:38 -05:00
parent 742e813e98
commit 8e5b3abab8
6 changed files with 39 additions and 10 deletions

View file

@ -796,6 +796,9 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
if (ds.version<50) {
ds.ignoreDuplicateSlides=false;
}
if (ds.version<62) {
ds.stopPortaOnNoteOff=true;
}
ds.isDMF=false;
reader.readS(); // reserved
@ -965,7 +968,14 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
} else {
reader.readC();
}
for (int i=0; i<6; i++) reader.readC();
if (ds.version>=62) {
ds.stopPortaOnNoteOff=reader.readC();
ds.continuousVibrato=reader.readC();
} else {
reader.readC();
reader.readC();
}
for (int i=0; i<4; i++) reader.readC();
} else {
for (int i=0; i<20; i++) reader.readC();
}
@ -1404,7 +1414,9 @@ SafeWriter* DivEngine::saveFur() {
w->writeC(song.algMacroBehavior);
w->writeC(song.brokenShortcutSlides);
w->writeC(song.ignoreDuplicateSlides);
for (int i=0; i<6; i++) {
w->writeC(song.stopPortaOnNoteOff);
w->writeC(song.continuousVibrato);
for (int i=0; i<4; i++) {
w->writeC(0);
}