Independent game developer Matt Greer recently unveiled an intriguing feat: he managed to fit an entire game of Solitaire onto a single custom Nintendo e-Reader card. This remarkable endeavor was detailed in a blog post and a YouTube video. The card itself holds just two “dotstrips,” each with a capacity of 2,192 bytes, making the total data size a little over 4.3 kilobytes.
The Nintendo e-Reader, initially launched for the Game Boy Advance in December 2001 in Japan and September 2002 in the U.S., was a fascinating peripheral. It made it possible to scan cards that either contained full games or served to expand existing Game Boy Advance titles, all thanks to its substantial 8MB of built-in storage. Generally, some e-Reader games, especially those ported from the NES, required up to 10 cards. It could support a maximum of 12 cards, and even certain additions like bonus levels for Super Mario Advance 4 needed just a single card.
In the blog post accompanying the Solitaire project, Greer dives deep into the development process of this unique homebrew game. Working under what might be the most stringent technical limitations for Game Boy Advance games, he produced something truly distinctive. The niche aspect of homebrew Game Boy Advance games is notable in itself, but to achieve one via a single e-Reader card is virtually unheard of.
The blog explains that the e-Reader can handle loading NES games, raw binaries, and Zilog Z80 binaries, among others. The Z80 assembly’s compact footprint proved especially useful for this project. Moreover, Nintendo e-Reader applications have the luxury of tapping into an e-Reader API (ERAPI). This API allows for numerous common tasks to be executed directly from the e-Reader, saving valuable space that would have been consumed by dotstrip code repetition.
However, as pointed out in the post, the Z80 emulator used in the Nintendo e-Reader isn’t perfectly accurate. It supports a limited range of opcodes and registers, meaning some Z80 functions simply aren’t feasible on the e-Reader setup. Despite these hurdles, Matt Greer successfully crafted a fully playable Solitaire game, complete with adjustable music, all within the confines of 4,384 bytes. The achievement is remarkable, spread across two dot strips on a custom card, demonstrating the incredible capability of a homebrew developer. It’s a bit unfortunate that the production of actual e-Reader cards was so short-lived, leading to the e-Reader becoming somewhat of a forgotten relic.