diff --git a/src/engine/fileOps/ftm.cpp b/src/engine/fileOps/ftm.cpp index 729e2583c..20e93dbad 100644 --- a/src/engine/fileOps/ftm.cpp +++ b/src/engine/fileOps/ftm.cpp @@ -111,7 +111,7 @@ const int ftEffectMap[]={ 0x21, // 050B Sunsoft noise period -1, // VRC7 "custom patch port" - not supported? -1, // VRC7 "custom patch write" - 0xe7, // delayed release - not supported yet + 0xfc, // delayed release 0x09, // select groove 0xe6, // delayed note transpose 0x11, // Namco 163 wave RAM offset @@ -225,7 +225,7 @@ const int eftEffectMap[] = { 0x100, // // // AY8930 extra volume bit -1, // VRC7 "custom patch port" - not supported? -1, // VRC7 "custom patch write" - 0xe7, // delayed release - not supported yet + 0xfc, // delayed release 0x09, // select groove 0xe6, // delayed note transpose 0x11, // Namco 163 wave RAM offset @@ -1579,11 +1579,11 @@ bool DivEngine::loadFTM(unsigned char* file, size_t len, bool dnft, bool dnft_si pat->data[row][3] = nextVol; if (map_channels[ch] == vrc6_saw_chan) // scale volume { - pat->data[row][3] = pat->data[row][3] * 42 / 15; + pat->data[row][3] = (pat->data[row][3] * 42) / 15; } if (map_channels[ch] == fds_chan) { - pat->data[row][3] = pat->data[row][3] * 31 / 15; + pat->data[row][3] = (pat->data[row][3] * 31) / 15; } } else { pat->data[row][3] = -1; diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 49341ce14..2f4f2e6c7 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1061,7 +1061,7 @@ void DivEngine::processRow(int i, bool afterDelay) { break; case 0xfc: // delayed note release - if (effectVal>0 && (song.delayBehavior==2 || effectVal