Take your NDS out of the drawer and play some music
26 Apr, 2026
Long intro (you can skip)
One of the reasons for the popularity of chiptune music, at some point, was the fact that quite a lot of millennials had a gameboy left taking dust in a drawer. The gameboy is a very restricted and musically "opinionated" tool (strongly opposed to the "laptop music" culture of the 2010s) that found its place in a sort of counterculture movement.
I think that one of the key ideas that drives micromusic and chiptune is that everyday toys from a past generation can be some hell of musical instruments, powerful enough to dominate a dancefloor. But success comes with a price. Retro handhelds nowadays are a scarce "resource", consumed by the waves of consumerish trends and hypes in retrogaming collecting. I'm not here to discuss these phenomena in detail but I would to highlight this:
- Collecting is, in my opinion, about immutably maintain an object in a minty state to preserve its "platonical" concepts. Its motivation are mostly aesthetical, sentimental, and financial.
- Chiptune is instead a form of upcycling. While most chiptuners take care of their instruments, these devices are also often exposed to tear due to the constant use, smokey environments, spilled beers, beat-ups, all the nightmares of a collector. These devices are stressed, altered and modified, but still beautiful (they're just like me, fr). Beautiful because they have a purpose in an economy that otherwise keeps them useless, antiquate, broken and just for display, pointlessly pretty.
These are not polar opposites and there's a spectrum in between. Some people who make music with gameboys can also be a bit freaky and fetishize their collection.
Some collectors might fall in love with chiptune music and try to understand how it's made. I don't even think the majority of people who make "hardware chiptune" consider it a political act to make music with a gameboy.
But to me and many others, part of the charm of chiptune is that it gives a different purpose to devices that were never programmed for it, and became obsolete tech with time.
This is actually a whole motivator of many in the larger scene of homebrew software.
The chiptune scene in its origins can be rooted as a by-product of the computer hacker scene that also common ancestry of the console homebrew scene.
I've always liked homebrews. Back in 2010, as a teen, I bought a PSP. By then, they were already cheap, probably selling new for less than a 100€. I had bought it with the intention of immediately modding it. Given my interest in tech and my few money to spend on it, I already lurked the modding and homebrew communities. In those years it was a geeky thing, really, it was surely beginning to spread, but still far from today's Gen-Z romanticization of the 2000's tech, which still ties mostly to collectorism and retro-nostalgia.
Given my interest in chiptune music, which started with LSDJ, I've always been fascinated with having music tools on handhelds. But years had to pass before I had the skill to actually follow the idea of developing homebrews on a console. In 2019 I more or less figured out how to tackle the development of GBA homebrews, mainly through the DevKitPro community and the tonc manual, which I physically printed and studied in between university lectures.
By the end of 2019 I started the development of a GBA program called glitchGBA (largely inspired by glitchNES), with the intention of using it to create glitchy visuals. The concept behind glitchGBA is actually quite simple so it's not really an advanced tool or anything. But it is a creative, somehow useful tool! It found its place at some chiptune shows acting as a video source for my VJing activities. Nothing fancy but still!
NDS could be a tracker powerhorse
In 2020 I then approached the Nintendo DS. I was motivated by these practical factors:
- Availability: as per google searches, the Nintendo DS family sold 154.02 million units. Compare it to the combined sales of gameboy and gameboy color, which was 118.69 million units to get a sense of scale. There's plenty Nintendo DS's out there, and there's room for find them before they become unacessible.
- Price: in 2020, getting a NDS was still cheap. Nowadays I'm not so sure but I still do see listings at 20€. There's always ambitious smartasses targeting wannabe-collectors with their fancy 100€ listing, but trust me, the gameboy market is WAY worse.
- "Retro" factor: the NDS is generationally considerable retro, which ticks the "upcycling" box. Yes, I know, "but I was already 10 years old when it came out!". Me too. We're also old, move on.
- Processing power: The considerable processing power (66+33 MHz compared to 4MHz on a Gameboy) and decent audio playback compensates for the absence of a "distinct sound signature", as it doesn't have a distinct audio chip. In fact, differently from the gameboy, playing back PCM data on the NDS yields decent results with its 10-bit DAC. Heck, you could even do mp3 decoding and use the DS as an actual audio players. You wouldn't need to have chiptunes on it as a necessity. Ok, but I want chiptunes! In fact, PCM playback means we can achieve something very close to how trackers on Amiga and PC worked: sample-based tracking (rather than synthesized waveforms).
I won't go over Korg's commercial software on the NDS though it was, for many, me included, a great gate-way to synthesizers and other music homebrews on other platforms.
Nitrotracker, instead, is actually an historically relevant music-making homebrew on Nintendo DS, which to some scope allows to edit and playback modules in .XM format. However it never really clicked with me because of the UI/UX. While it is graphically very pretty, at the time it felt really clunky and slow to work with, and also it looked like it was abandoned. In more recent time I noticed it was picked up by asiekierka which forked it as nitroustracker, giving it several quality-of-life and debugging improvements.
So I collected infos and surveyed the state of art of the scene. I found several libraries for audio playback. Among the best candidates:
- maxmod (software-mixing library in assembly)
- libxm7 (hardware-mixing library in C)
- libntxm (hardware-mixing library in C++ used by nitrotracker)
I was not really capable to work with assembly, and I didn't feel able to work with the large nitrotracker codebase.
Motivated also by the completeness and simplicity of the interface (based on what I could find online), I chose libxm7.
However, I had to get in contact with sverx to get the actual source, as I couldn't find the library sources available online. His original posts were from, like 2012 and some references were lost.
Luckily, he answered providing me with the sources of a demo which contained the lib. He then proceeded to re-publish the library on github which I think was later also picked up by the blocksds folks as part of their distribution.
I was not immediately able to start working on it and a lot of time passed. In 2022, I finally revisited the idea.
XMXDS is great...
I forked libxm7 and started working on an application for it: XMXDS.
I shaped the concept I had in mind: a music tool inspired by the PT-1210 on Amiga, a software focused on DJ style playback of modules.
I went for a simple approach: one NDS, one DJ deck. If you want two decks, get another NDS and keep the mixing process outside.
Instead, I focused on the "performance" part, similar to an actual DJ deck:
- .XM/.MOD format playback
- Pattern looping
- Transpose
- BPM control
- Tempo nudging
- Channel mutes
- Hot-cue pattern recall
XMXDS, which I developed sort of on/off between end of 2022 and mid-2024, turned out to be a really fun software to try and make some mixes with.
At the time I was very much inspired by Henry Homesweet's series of Essential chip mixes, which went into a similar direction with PSPs through the brilliant Ruckus MOD v5 (though mixing mp3s on PSPs, which have roughly 5x raw CPU power @333Mhz)
I never used XMXDS live, but a few people were inspired, picked up the idea with enthusiasm and tested it. However, I think in the end it didn't have "enough value" to draw traction.
Sure, if you have a NDS lying around you can playback some music that you or some other people made on a PC or Amiga tracker. You can bring that music live, through a compact performance-oriented tool.
But its scope stays too limited.
... but we can do better: MAXMXDS
Earlier this year I revisited the idea.
What I figured is that hardware-mixing, while neat, had some real limitations, namely having only 16 channels while .mods support even 32 channels.
My solution at the time was to limit XM loading only for files with nCh<=16, but it was a simple workaround on this limitation.
The actual solution was to support maxmod as a playback engine and get the full software-mixed 32 channels experience.
Among the major changes is that Maxmod works with a dedicated tracker format called .mas. I found it largely undocumented but eventually was able to reverse engineer it based on the source of its conversion tool mmutil.
mmutil is able to convert .xm/.s3m/.mod/.it (the most popular tracker formats) into .mas. The conversion is very accurate though not perfect: some information is discarded, but it does a pretty good job at converting all these formats to .mas.
As an output to this reverse engineering process, I provided a documentation on the .MAS format specifications.
Therefore, I finally tackled the integration of maxmod as a playback engine, along with a few improvements.
The software was highly restructured and more importantly, was no longer a fork of libxm7. For this reason, I detached it entirely (and archived XMXDS), renaming it MAXMXDS.
MAXMXDS boasts a bunch of better features on top of the already existing features of XMXDS:
- 32 channels playback
- Better use of the touchscreen
- Waveform visualization
- 8 regular new touchscreen cues
- Rolling loop with variable length
- beat-sync stutter effect with variable frequency
- Pretty visualizers
- .MAS format support (rather than XM/MOD)
At this point, it was time to address the elephant in the room. What good is a portable setup to DJ your tracks if you have to produce them at home? The real deal is producing tracks on-the-go! That's the "selling point" of handheld trackers software.
Maxtracker: an LSDJ-inspired NDS tracker
In the end I gave in and started working on an actual tracker, based on the powerful maxmod.
I would firstly entirely dismiss the idea of "competing" with the already existing Nitrotracker and its fork Nitroustracker. While they serve the same purpose, they're at heart two different softwares which serve a different UX experience.
Don't reinvent the wheel
In fact, I'm designing maxtracker around the same UI/UX choices of LSDJ (and subsequently, LittleGPTracker and the M8 tracker).
The "layered" navigation (I think of them as rooms in a mnemonic maze), the button assignment, the button "chord" combinations, the clipboard, etc. are basically all being based on LSDJ.
For all these softwares it works amazingly, so it wouldn't make sense to try and reinvent the wheel.
This choice is obviously conditioned by my preference, but the result I'm also hoping for is that other LSDJ users can pick up this tool in no time, similar to how it has been for LGPT and the M8.
More in Part 2
Development has just begun. There will be updates which will eventually get quite technical as the project progresses. In the meanwhile, you can play with MAXMXDS and give me your feedback (or open issues on github).
