Matt Greer, an independent developer, recently shared an intriguing accomplishment: fitting an entire game of Solitaire onto a single custom Nintendo e-Reader card. In his blog post and accompanying YouTube video, he explains how he managed this feat using just two “dotstrips,” each holding 2,192 bytes of data, making up a total of slightly over 4.3 kilobytes.
Released originally for the Game Boy Advance, the Nintendo e-Reader hit Japan in December 2001 and the United States in September 2002. This unique peripheral allowed users to load full games or enhance existing Game Boy Advance titles by scanning special cards. It boasted an impressive 8MB of onboard storage at the time. Some games on the e-Reader, like NES ports, could use up to 10 cards, with the device supporting a maximum of 12. Interestingly, adding extra levels to games like Super Mario Advance 4 required just a single card.
Greer’s blog dives deeply into the development of this homebrew Solitaire game, designed to work under the strictest technical constraints that Game Boy Advance games could face. While homebrew titles for the Game Boy Advance are already quite niche, his creation of a Solitaire game that fits on a single e-Reader card ventures into extremely rare territory.
The original blog post explains the e-Reader’s capability to load NES games as well as raw and Zilog Z80 binaries. Here, working with Z80 assembly proves particularly beneficial due to its small footprint. The e-Reader applications also gain from an e-Reader API (ERAPI), which streamlines common tasks by calling from the e-Reader and not repeating them in dotstrip code, thus saving additional space.
One key challenge highlighted was that the Z80 emulator within the Nintendo e-Reader isn’t fully accurate and has a limited range of opcodes and registers. This limitation means some typical Z80 capabilities aren’t possible on the e-Reader. Despite these constraints, Matt Greer managed to put together a fully functional version of Solitaire, complete with changeable music, using just 4,384 bytes. The game spans two dot strips on a single custom card, showcasing remarkable ingenuity from a homebrew developer. It’s a bit sad, though, that due to their short production run, these e-Reader cards have largely faded into obscurity.