Matt Greer, an independent developer, recently unveiled an impressive project via a blog post and YouTube video: he managed to pack an entire game of Solitaire onto a custom Nintendo e-Reader card. Remarkably, this card holds just two “dotstrips” with 2,192 bytes each, totaling a little more than 4.3 kilobytes of data.
To give a bit of background, the Nintendo e-Reader, a peripheral device for the Game Boy Advance, was launched in Japan in December 2001 and hit the U.S. market in September 2002. It allowed gamers to access full games or add-ons for existing Game Boy Advance titles through scannable cards. These cards’ data would then be saved to the e-Reader’s considerably large 8MB onboard storage. Some games, especially NES ports, utilized up to 10 cards, though the e-Reader could handle 12. More modestly, a single card sufficed for adding extra levels in games like Super Mario Advance 4.
In his detailed blog post about the Solitaire e-Reader project, Greer dives deep into how this homebrew Solitaire game was crafted within the incredibly tight technical constraints of Game Boy Advance games. While homebrew Game Boy Advance titles are already rarities in gaming, a standalone e-Reader card Solitaire game takes niche to a whole new level almost bordering on the absurd.
Greer explains that the e-Reader is capable of running NES games, raw binaries, and even Zilog Z80 binaries. For his Solitaire project, Z80 assembly proved particularly beneficial due to its small size. Another advantage of e-Reader applications is leveraging the e-Reader API (ERAPI), which enables calling common tasks directly from the e-Reader, cutting down on repetitive dotstrip code and, thus, conserving space.
The blog also touches on the limitations of the Z80 emulator in the Nintendo e-Reader. The emulator isn’t fully accurate, which means it supports only a limited set of opcodes and registers. This constraint implies that some Z80-mandatory operations couldn’t be performed. Despite these challenges, Matt Greer accomplished the seemingly impossible, developing a fully functional game of Solitaire complete with adaptable music. Achieving this within the confines of 4,384 bytes, spread over two dot strips on a custom Nintendo e-Reader card, is nothing short of a remarkable feat. It’s a bit of a downer that these e-Reader cards had such a fleeting production run, leaving the Nintendo e-Reader largely forgotten over time.