Matt Greer, an independent developer, recently unveiled a remarkable accomplishment: he successfully managed to fit a complete game of Solitaire onto a single custom card for the Nintendo e-Reader. In a detailed blog post and accompanying YouTube video, he shared his journey, revealing that the card includes only two “dotstrips” which hold 2,192 bytes each. Altogether, that’s just over 4.3 kilobytes of data!
The Nintendo e-Reader was a gadget created for the Game Boy Advance, first launched in Japan in December 2001 and then in the U.S. in September 2002. This nifty device could read and store full games or add-ons for existing Game Boy Advance titles using scanable cards, thanks to its 8MB of onboard memory. Back in the day, some games, especially those ported from the NES, required up to 10 cards. Thankfully, the e-Reader was equipped to handle as many as 12. There were even Super Mario Advance 4 levels that only needed a single card.
The blog post attached to the Solitaire e-Reader project dives deep into the development process of this unique version of Solitaire, crafted under some of the tightest technical limitations possible for Game Boy Advance games. Homebrew Game Boy Advance titles are already quite rare, but creating one for a single e-Reader card takes things to a whole new level of peculiarity.
In his post, Greer explains that the e-Reader can load NES games, raw binaries, and also Zilog Z80 binaries. Z80 assembly, with its efficient footprint, was crucial for this project. Moreover, applications designed for the e-Reader benefit from the e-Reader API (ERAPI), which simplifies many common tasks without requiring repetitive code in the dotstrips, thereby conserving space.
Greer also mentions that the Z80 emulator in the Nintendo e-Reader isn’t entirely accurate; it has a limited set of opcodes and registers, which restricts some of the usual capabilities of a Z80. Despite these hurdles, he managed to create a fully functional Solitaire game, complete with changeable music, all within the tight 4,384-byte limit. Squeezing all that onto two dot strips on a single custom e-Reader card was no small feat. It’s a pity these cards were only produced for a short time, and the e-Reader now remains largely forgotten.