Converting MOD/S3M/XM/IT to SPC with SNESMOD
There exists a nice converter tool called SNESMOD which can convert an Impulse Tracker file to a Super Nintendo format.
This means you can use this converter to create a Super Nintendo compatible track, if you have created a MOD, S3M, XM or IT file, as long as a few criterias are met. You just have to first convert your MOD, S3M or XM to IT. This is easily done. Simply load the MOD/S3M/XM with Schism Tracker, and save it as IT.
You can also do it with OpenMPT. Just load the track, switch filetype to IT and save again. But notice: OpenMPT defaults to compressing the samples with the IT format, and then SNESMOD won't work. So if you want to use OpenMPT to make a SNESMOD compatible IT file, you need to go to View -> Setup -> Advanced. Then search for ITCompression, and set both ITCompressionMono and ITCompressionStereo to 0.
Before saving as IT though, we have to make sure the track sticks to a few SNES-specific rules:
- The SNES only has 8 channels available, and game-developers typically prefer to have 2 channels free for sound effects. So we have to create a 6-channel XM first (if we didn't already do that when creating the XM version).
- All loop points (and sample-lengths?) in the samples must be a multiple of 16 frames, due to the BRR compression that is used on Super Nintendo, which handles groups of 16 samples for each 9 bytes.
- Max sample-rate is 32000 Hz, which of course we should be well below already.
- 16-bit samples is recommended. The SPC700 CPU handling of the audio in the SNES utilises a special bit-rate reduced ADPCM format which compress each group of 16 samples into 9 bytes, regardless of bit-depth. For this reason it is generally recommended that you use 16-bit samples instead of 8-bit samples, to get a higher quality.
- Max 94.208 total samples - including sfx! The sum of samples in your source file must not exceed 94.208. This is including any sound-effects the gamedev will want. And typically, the gamedev will also want a buffer of at least 64 ms, which takes up another 8.192 samples.
So 94.208 samples minus buffer-size and sfx.
The good news is that the bit-depth doesn't affect the number of available samples. So if you're using 8-bit samples, you do only have 94.208 bytes at your disposal. But if you're using 16-bit samples, you have 188.416 bytes to use. This is why it is recommended that you use 16-bit samples instead of 8-bit samples. You might as well get that extra quality at no additional expense. But if you want to increase chances of the gamedevs finding your track useful, you should leave room for both sound-effects and buffer, which means: Use less samples - and leave 1-2 channels free, as already mentioned.
Since all loops need to be a multiple of 16 frames, you may need/want to resample your samples, if you didn't already use sample-rates that are "compatible" with such 16-frame blocks. Otherwise you may end up with clicks'n'pops due to mismatching loops, and/or the tone may be out of tune with the other instruments. You can read more about that at NES Doug's site.
SNESMOD converts the IT file to an SPC file and some binary files. The SPC file can be considered a kind of preview; "proof" that it works. It plays with VLC and can also be loaded on the SNES. But it's the binary files the game-developers will want to add to their game project.
The Super Nintendo lacks volume-ramping just like Amiga does. So any trick you may have applied to the MOD version of your track to reduce clicks'n'pops should also apply to the SNES version nicely.
Link
Back to table of contents