dev138 - fix broken porta after legato

This commit is contained in:
tildearrow 2023-01-17 01:58:59 -05:00
parent f7b30771d8
commit 539b2ec2db
6 changed files with 30 additions and 4 deletions

View file

@ -1716,6 +1716,9 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
if (ds.version<130) {
ds.oldArpStrategy=true;
}
if (ds.version<138) {
ds.brokenPortaLegato=true;
}
ds.isDMF=false;
reader.readS(); // reserved
@ -2221,6 +2224,13 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
if (ds.version>=136) song.patchbayAuto=reader.readC();
if (ds.version>=138) {
ds.brokenPortaArp=reader.readC();
for (int i=0; i<7; i++) {
reader.readC();
}
}
// read system flags
if (ds.version>=119) {
logD("reading chip flags...");
@ -4515,6 +4525,12 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) {
}
w->writeC(song.patchbayAuto);
// even more compat flags
w->writeC(song.brokenPortaLegato);
for (int i=0; i<7; i++) {
w->writeC(0);
}
blockEndSeek=w->tell();
w->seek(blockStartSeek,SEEK_SET);
w->writeI(blockEndSeek-blockStartSeek-4);