From 28bbe56a44a600dbf9cbe98990810d8637c35904 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 7 Nov 2024 03:55:48 -0500 Subject: [PATCH] .ftm import: fix virtual tempo going outside range issue #2230 --- src/engine/fileOps/ftm.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/engine/fileOps/ftm.cpp b/src/engine/fileOps/ftm.cpp index 4d04f271a..7dea6df5d 100644 --- a/src/engine/fileOps/ftm.cpp +++ b/src/engine/fileOps/ftm.cpp @@ -2751,6 +2751,16 @@ bool DivEngine::loadFTM(unsigned char* file, size_t len, bool dnft, bool dnft_si ds.sampleLen = ds.sample.size(); ds.waveLen = ds.wave.size(); + // check whether virtual tempo is inside range + for (DivSubSong* i: ds.subsong) { + while (i->virtualTempoD>255) { + i->virtualTempoD>>=1; + i->virtualTempoN>>=1; + } + if (i->virtualTempoN<1) i->virtualTempoN=1; + if (i->virtualTempoD<1) i->virtualTempoD=1; + } + if (active) quitDispatch(); BUSY_BEGIN_SOFT; saveLock.lock();