A recent suggestion on the uservoice forums was (paraphrased) “support more modern MOD formats”. Fair enough. If you go looking for what audio formats Glulx supports, you get referred to the Glk spec, which refers to the Blorb spec, which I wrote in 1998. The MOD section says:
“For generality, MOD files in Blorb are limited to the ProTracker 2.0 format: 31 note samples, up to 128 note patterns. The magic number at byte 1080 should be ‘M.K.’ or ‘M!K!’.”
…which was conservative in 1998. It’s a little more than conservative now.
David Kinder pointed out that the Windows interpreters use libModPlug, which is open-source (public domain, more or less) and supports this list of formats (as of libmodplug-0.8.8.1):
“MOD, S3M, XM, IT, 669, AMF (both of them), AMS, DBM, DMF, DSM, FAR, MDL, MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM”
I have no idea what that means. But it seems reasonable to change the spec and suggest that interpreters use libModPlug, so that game authors can rely on whatever it supports. David, Ben Cressey, and Andrew Hunter are on board with this (for WinGlulxe, Gargoyle, and Zoom).
This does add some of uncertainty for authors, because I’m not going to mandate a particular version of the library. So if you come back in a year and try to use a format that was added in libmodplug-0.9 (or whatever), you may find that not all interpreters support it. But hopefully this will give us a good base of reliable formats, and it’ll certainly be better than what’s documented now.
Further problems: David says the stock libModPlug is buggy. He has a patched version in WinGlulxe. We recommend that everybody use that, which is no problem on Mac/Windows interpreters. However, it might be a hassle for Linux packagers. Ben is looking at how it will work.
Overall, I’d like to do this. Does anyone else have any comments? Other interpreter (and Glk library) supporters?