Requested by MisthaLu on the SNES Development Server Discord server.
Due to XM being mostly an extension of the MOD file format effect-wise, this can spill over into the MOD format under the condition that a proper solution is found to Amiga pitch slides.
Currently only Fxx is supported.
To start things off, the following effects can be theoretically imported to a direct conversion in addition to the ones that are already handled:
[ ] Detune (E5x -> Txx)
[ ] Slide Up/Slide Down (1xx/2xx -> Uxx/Dxx)
[ ] Portamento (3xx -> Pxx)
[ ] Vibrato (4xy -> Vxy)
[ ] Pan (8xx -> Sxx)
[ ] Volume (Cxx -> send to volume column)
[ ] Key Off (Kxx -> send to note column)
These volume column effects also have a direct conversion:
[ ] Panning (Px -> Sxx)
[ ] Portamento (Mx -> Pxx)
Both linear and Amiga mode need to be accounted for here on the pitches. Linear would go first, since it's easier to track.
These effects require manual tracking of the parameter on a per-row basis being modified because they are not stored locally...
[ ] Fine Volume Slide Up/Down (Axx/Bxx -> send to volume column)
[ ] Fine Slide Up/Down (E1x/E2x -> Txx)
Ditto for these volume column effects...
[ ] Fine Volume Slide Up/Down (Ux/Dx -> send to volume column)
[ ] Vibrato (Vx -> V?y)
[ ] Vibrato Speed (Sx -> Vx?)
Note that volume column and standard effects may end up generating more than one effect. The internal format supports this, but I don't think the tracker does: special adaptations may be required to support more than one effect per row.
These effects affect the rows themselves instead of anything else since SNESGSS codes all of its delays in actual ticks:
[ ] Pattern Delay (EEx -> might end up being a speed multiplier in this specific circumstance, with extra rows involved if the number gets too high)
These effects affect the pattern processing and/or overall playback of the song:
[ ] Position Jump (Bxx -> R.. if it returns to an orderlist ID already visited, which also means the R.. marker must be generated at the point where this happens.)
[ ] Pattern Break (Dxx -> merely skips processing rows and then skips to the next pattern's rows)
[ ] Jump loop (E6x -> requires keeping track of the loop counter)
Requested by MisthaLu on the SNES Development Server Discord server.
Due to XM being mostly an extension of the MOD file format effect-wise, this can spill over into the MOD format under the condition that a proper solution is found to Amiga pitch slides.
Currently only Fxx is supported.
To start things off, the following effects can be theoretically imported to a direct conversion in addition to the ones that are already handled:
These volume column effects also have a direct conversion:
Both linear and Amiga mode need to be accounted for here on the pitches. Linear would go first, since it's easier to track.
These effects require manual tracking of the parameter on a per-row basis being modified because they are not stored locally...
Ditto for these volume column effects...
Note that volume column and standard effects may end up generating more than one effect. The internal format supports this, but I don't think the tracker does: special adaptations may be required to support more than one effect per row.
These effects affect the rows themselves instead of anything else since SNESGSS codes all of its delays in actual ticks:
These effects affect the pattern processing and/or overall playback of the song: