Independent developer Matt Greer has recently shared a fascinating accomplishment on his blog and YouTube channel: he’s managed to fit an entire game of Solitaire onto a single custom Nintendo e-Reader card. This impressive feat involves just two “dotstrips,” each holding 2,192 bytes, bringing the total to a little over 4.3 kilobytes of data.
Now, for those unfamiliar, the Nintendo e-Reader was an intriguing peripheral launched for the Game Boy Advance back in December 2001 in Japan and September 2002 in the United States. What made it special was its ability to read scannable cards that contained either full games or add-ons for existing Game Boy Advance titles. These cards could then be saved to the e-Reader’s sizeable 8MB of onboard storage. Some titles, especially NES ports, could span as many as 10 cards, yet the e-Reader was designed to handle up to 12. Interestingly, expansions like additional levels for Super Mario Advance 4 only needed one card.
Greer’s detailed blog post about his Solitaire e-Reader project dives deep into the development process of this homebrew game. What stands out is the sheer challenge posed by the technical limitations of the Game Boy Advance. While homebrew GBA games are already a niche interest, creating one on a single e-Reader card takes it to another level of niche — almost bordering on the absurd.
In his post, Greer points out that the e-Reader can load NES games, raw binaries, and Zilog Z80 binaries. The Z80 assembly, known for its minimal footprint, was crucial for this project. Furthermore, Nintendo’s e-Reader offers an API (ERAPI) that helps save space by allowing common tasks to be performed by the e-Reader itself rather than having them coded into each dotstrip.
A noteworthy challenge was that the Z80 emulator within the Nintendo e-Reader isn’t entirely accurate and is limited in terms of opcodes and registers. This meant that certain actions achievable on a Z80 are not possible on the e-Reader’s constrained setup. Yet, Matt Greer skillfully navigated these limitations, delivering a complete game of Solitaire, complete with changeable music, all within 4,384 bytes across just two dotstrips on one custom card. It’s a testament to the ingenuity and resourcefulness of homebrew developers. It’s a shame, though, that e-Reader cards had such a short production life, leading the Nintendo e-Reader itself to become something of a forgotten relic of gaming history.