In a recent blog post and YouTube video, independent developer Matt Greer unveiled his impressive feat of compressing an entire game of Solitaire onto a single custom Nintendo e-Reader card. This card, quite remarkably, uses just two “dotstrips,” each holding 2,192 bytes, together amassing slightly over 4.3 kilobytes.
To give a bit of background, the Nintendo e-Reader is an add-on created for the Game Boy Advance, making its debut in December 2001 in Japan and later in September 2002 in the U.S. It allowed users to scan cards to read full games or expansions for existing titles, which were then stored on the e-Reader’s relatively hefty 8MB internal memory. Some of these e-Reader games, especially the NES ports, sometimes spanned up to 10 cards, although the device could handle 12, and some expansions, like those for Super Mario Advance 4, needed only one card.
There’s also a fascinating YouTube video titled “Solitaire for the Nintendo E-Reader” that dives into this project. You can check it out for a visual angle on how this Solitaire card works.
In his detailed blog post, Greer explains the intricate development process of crafting this homebrew Solitaire game. The constraints he navigated are astoundingly tight, showcasing the creativity required to operate within these bounds of Game Boy Advance capabilities. While crafting homebrew games for the GBA is niche itself, doing this on a single e-Reader card borders on the extraordinary.
According to Greer’s insights, the e-Reader can load NES games, raw binaries, and specific to this project, Zilog Z80 binaries. The Z80 assembly, with its compact design, proved crucial here. The e-Reader APIs (ERAPI) also offered an edge, allowing Greer to leverage common tasks across the board without cluttering the dotstrip code, hence saving space.
Interestingly, Greer discusses the limitations of the Z80 emulator in the e-Reader, noting that it isn’t fully accurate, with restricted opcodes and registers. This imposes some limits that a typical Z80 system wouldn’t face, yet Greer navigated these challenges masterfully, building a fully functional Solitaire game that even includes changeable music, all within just 4,384 bytes.
Crafting this on two dotstrips for a single e-Reader card showcases the ingenuity and inventiveness of homebrew developers. It’s a bit of a pity, though, that e-Reader cards only had a short lifespan, and the device itself now rests in the annals of gaming history. Such projects remind us of the vibrant creativity in gaming’s past and the enthusiasts who keep it alive.