From: <sv...@op...> - 2024-11-17 22:44:11
|
Author: sagamusix Date: Sun Nov 17 23:43:57 2024 New Revision: 22217 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22217 Log: [Fix] MED: Avoid importing effect memory for some commands (https://www.un4seen.com/forum/?topic=15448.msg144131#msg144131). Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Sun Nov 17 23:27:39 2024 (r22216) +++ trunk/OpenMPT/soundlib/Load_med.cpp Sun Nov 17 23:43:57 2024 (r22217) @@ -438,9 +438,29 @@ const uint8 nibbleLo = std::min(param, uint8(0x0F)); switch(command) { + case 0x01: // Portamento Up (avoid effect memory when importing as XM) + if(param) + m.SetEffectCommand(CMD_PORTAMENTOUP, param); + break; + case 0x02: // Portamento Down (avoid effect memory when importing as XM) + if(param) + m.SetEffectCommand(CMD_PORTAMENTODOWN, param); + break; case 0x04: // Vibrato (twice as deep as in ProTracker) m.SetEffectCommand(CMD_VIBRATO, (param & 0xF0) | std::min<uint8>((param & 0x0F) * 2, 0x0F)); break; + case 0x05: // Tone Porta + Volume Slide (avoid effect memory when importing as XM) + if(param) + m.SetEffectCommand(CMD_TONEPORTAVOL, param); + else + m.SetEffectCommand(CMD_TONEPORTAMENTO, 0); + break; + case 0x06: // Vibrato + Volume Slide (avoid effect memory when importing as XM) + if(param) + m.SetEffectCommand(CMD_VIBRATOVOL, param); + else + m.SetEffectCommand(CMD_VIBRATO, 0); + break; case 0x08: // Hold and decay break; case 0x09: // Set secondary speed @@ -456,7 +476,8 @@ m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>(((param & 0x7F) + 1) / 2)); break; case 0x0D: - m.SetEffectCommand(CMD_VOLUMESLIDE, param); + if(param) + m.SetEffectCommand(CMD_VOLUMESLIDE, param); break; case 0x0E: // Synth jump / MIDI panning m.SetEffectCommand(CMD_MED_SYNTH_JUMP, param); |