From: <sv...@op...> - 2024-05-11 21:05:03
|
Author: sagamusix Date: Sat May 11 23:04:52 2024 New Revision: 20775 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20775 Log: Merged revision(s) 20702 from trunk/OpenMPT: [Mod] MDL: Command 9 is not Set Envelope Position, it select a different envelope instead. As we only have one envelope per type per instrument, instead do the only thing we can do for now: Assume that the instrument envelope was disabled and enable it. ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/soundlib/Load_mdl.cpp Modified: branches/OpenMPT-1.28/soundlib/Load_mdl.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Load_mdl.cpp Sat May 11 23:04:31 2024 (r20774) +++ branches/OpenMPT-1.28/soundlib/Load_mdl.cpp Sat May 11 23:04:52 2024 (r20775) @@ -169,7 +169,7 @@ /* Either column */ /* 7 */ CMD_TEMPO, /* 8 */ CMD_PANNING8, - /* 9 */ CMD_SETENVPOSITION, + /* 9 */ CMD_S3MCMDEX, /* A */ CMD_NONE, /* B */ CMD_POSITIONJUMP, /* C */ CMD_GLOBALVOLUME, @@ -206,6 +206,16 @@ case 0x08: // Panning param = (param & 0x7F) * 2u; break; + case 0x09: // Set Envelope (we can only have one envelope per type...) + if(param < 0x40) + param = 0x78; // Enable the one volume envelope we have + else if (param < 0x80) + param = 0x7A; // Enable the one panning envelope we have + else if(param < 0xC0) + param = 0x7C; // Enable the one pitch envelope we have + else + cmd = CMD_NONE; + break; case 0x0C: // Global volume param = (param + 1) / 2u; break; |