diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index f685254a..080e69a9 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -801,6 +801,12 @@ bool DivEngine::load(unsigned char* f, size_t slen) { // effect pat->data[k][4+(l<<1)]=reader.readS(); pat->data[k][5+(l<<1)]=reader.readS(); + + if (ds.version<0x14) { + if (pat->data[k][4+(l<<1)]==0xe5 && pat->data[k][5+(l<<1)]!=-1) { + pat->data[k][5+(l<<1)]=128+((pat->data[k][5+(l<<1)]-128)/4); + } + } } // instrument pat->data[k][2]=reader.readS(); diff --git a/src/engine/song.h b/src/engine/song.h index 98392f0a..11e69027 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -33,6 +33,8 @@ struct DivSong { // - changes pattern length from char to int, probably to allow for size 256 // - 23: ??? // - what happened here? + // - 20: v11.1 (?) + // - E5xx effect range is now ±1 semitone // - 19: v11 // - introduces Arcade system // - changes to the FM instrument format due to YMU759 being dropped