In many tracker commands, a zero parameter means, "do this command with the previously used parameter". This is a convenience feature to make the musician's life easier, and it requires the player routine to store parameters in state variables, so it knows what the parameter was. This has to be done for several commands: portamento, vibrato, volume slide...
We could simplify the MSX playroutine (decreasing the amount of needed code and variables and CPU cycles) by having the XM2LTM application's pattern data conversion routine replace zero parameters with the previously found parameters. Then the playroutine wouldn't have to remember the previous values, because it could always read them from the pattern data.
The downside to this is that it would add one more thing the musician has to know, because in some cases, pattern command behaviour will be different on the MSX player. But the songs have to be tested on MSX anyway, because we cannot and will not try to support all possible edge-cases and weird note/instrument/volume/command/parameter combinations and hacks.
Diff: