In a remarkable feat of digital ingenuity, indie developer Matt Greer recently shared his proud accomplishment of squeezing a complete game of Solitaire onto just one custom Nintendo e-Reader card. He documented the process in an enlightening blog post and an engaging YouTube video. This card comprises merely two “dotstrips,” each packed with 2,192 bytes, tallying up to a modest 4.3 kilobytes of data.
The Nintendo e-Reader, a fascinating piece of history, first hit the market alongside the Game Boy Advance back in late 2001 in Japan, and the following year in the United States. This clever gadget made it possible to scan cards that contained whole games or extra content to enhance Game Boy Advance titles, all of which could be retained on the e-Reader’s then-impressive 8MB storage capacity. While some NES game ports required up to ten cards to function, the e-Reader was built to accommodate as many as twelve cards, and even the Super Mario Advance 4 could expand with just one.
In his detailed blog post, Greer dives into the intricate development process behind this homebrew Solitaire, all crafted under the severe technical limitations that Game Boy Advance developers faced. The realm of homebrew titles for the Game Boy Advance is already a niche area, but creating a single e-Reader card version of a Solitaire game pushes the boundaries of niche to an almost comedic extreme.
According to Greer, the e-Reader has the capability to load NES games, raw binaries, and Zilog Z80 binaries, with the small footprint and versatility of Z80 assembly being particularly beneficial for this Solitaire project. An added advantage of creating applications for the Nintendo e-Reader is the availability of an e-Reader API (ERAPI), which facilitates the calling of many standard tasks directly from the e-Reader, rather than embedding them in the dotstrip code. This API use helps maximize storage efficiency.
Greer’s original blog also points out that the Z80 emulator utilized in the e-Reader isn’t perfect, as it only supports a limited range of opcodes and registers. This limitation means some functionalities typical of a Z80 aren’t feasible on the e-Reader’s constrained setup. Nevertheless, Matt Greer cleverly navigated these constraints, creating a fully operational Solitaire game, complete with customizable music, within a scant 4,384 bytes. It’s genuinely astounding what a skilled homebrew developer can achieve within such tight confines, spread across two dotstrips on a single custom Nintendo e-Reader card. It’s a pity these e-Reader cards only had a brief production run, leaving the Nintendo e-Reader as a largely forgotten relic of gaming history.