diff --git a/src/engine/fileOps/dmf.cpp b/src/engine/fileOps/dmf.cpp index 52e6e9079..2ae9d2a92 100644 --- a/src/engine/fileOps/dmf.cpp +++ b/src/engine/fileOps/dmf.cpp @@ -1166,6 +1166,9 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) { ds.systemFlags[0].set("brokenPitch",true); } + // always convert to normal sample mode (I have no idea how will I do export) + ds.convertLegacySampleMode(); + ds.systemName=getSongSystemLegacyName(ds,!getConfInt("noMultiSystem",0)); if (active) quitDispatch(); diff --git a/src/engine/fileOps/fur.cpp b/src/engine/fileOps/fur.cpp index 8acc5285b..ab80bc076 100644 --- a/src/engine/fileOps/fur.cpp +++ b/src/engine/fileOps/fur.cpp @@ -2181,6 +2181,11 @@ bool DivEngine::loadFur(unsigned char* file, size_t len, int variantID) { addWarning("this song used partial pitch linearity, which has been removed from Furnace. you may have to adjust your song."); } + // removal of legacy sample mode + if (ds.version<239) { + ds.convertLegacySampleMode(); + } + if (active) quitDispatch(); BUSY_BEGIN_SOFT; saveLock.lock(); diff --git a/src/engine/song.cpp b/src/engine/song.cpp index 116815da7..b7b363295 100644 --- a/src/engine/song.cpp +++ b/src/engine/song.cpp @@ -729,3 +729,9 @@ void DivSong::unload() { } subsong.clear(); } + +// from this point onwards, a mess. + +void DivSong::convertLegacySampleMode() { + +} diff --git a/src/engine/song.h b/src/engine/song.h index 437e1159e..2384dd51e 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -408,6 +408,11 @@ struct DivSong { */ void findSubSongs(int chans); + /** + * try to convert usage of legacy sample mode into normal mode. + */ + void convertLegacySampleMode(); + /** * clear orders and patterns. */