libXM7 is a C library to play XM modules on Nintendo DS using only ARM7 resources (thus freeing your ARM9 from that task).

The use of XMs as a background music in your games allows much more flexibility compared to the old MOD format: more channels, multisample instruments, envelopes, panning and so on. In addition, the XM format is very well known and widespread among composers who compose music using their favourite tracker. Moreover, the reproduction of the tune will not use ARM9 resources as all the necessary elaboration is carried out by the ARM7. With LIBXM7 all you have to do is load the module and fire.

Changes:

[add] Instrument panning envelope is now supported
[add] Instrument ‘auto’ vibrato is now supported
[add] Amiga frequency table mode (MOD native mode) is now supported
[bug] Effect Hxy (slide global volume) now has memory effect
[bug] Effect EDx (note delay) now retrigs last note and his envelope when specified on a ’empty’ line
[bug] Effect E9x (note retrig) now retrigs instrument envelope too
[bug] Effect Lxx (Set volume envelope position) now starts working in the first tick
[bug] Instrument finetune parameter 3 LSB are now ignored, as in FastTrackerII
[XM7_LoadXM() ARM9 XM loading function:]
[bug] XM7_LoadXM() now doesn’t fail while loading XMs containing multi-sample instrument with 16bits samples in it

Discussion: http://forum.gbadev.org/viewtopic.php?t=16722

http://wcms.teleion.it/users/cgq/nds/libxm7/