Clever coder crams a Solitaire game onto a single Nintendo GBA e-Reader card | Tom's Hardware
HomeHome > News > Clever coder crams a Solitaire game onto a single Nintendo GBA e-Reader card | Tom's Hardware

Clever coder crams a Solitaire game onto a single Nintendo GBA e-Reader card | Tom's Hardware

Nov 05, 2024

Nintendo Game Boy Advance's e-Reader was used to read levels and other extras for GBA games via swiped cards.

When you purchase through links on our site, we may earn an affiliate commission. Here’s how it works.

Independent developer Matt Greer has published a blog post and YouTube video highlighting his achievement of bundling an entire game of Solitaire onto a single custom Nintendo e-Reader card. The card features just two "dotstrips" containing 2,192 bytes each, totaling just over 4.3 kilobytes of data.

The Nintendo e-Reader is a peripheral originally developed and released for the Game Boy Advance in December 2001 (Japan) and September 2002 (United States), allowing for full games or expansions to existing Game Boy Advance games to be read from scannable cards and saved to the e-Reader's (comparatively) whopping 8MB of onboard storage. Some e-Reader titles, particularly NES ports, used as many as 10 cards, while the e-Reader could have supported up to 12, and things like extra Super Mario Advance 4 levels required just one.

The full blog post attached to the Solitaire e-Reader project contains a significant amount of detail on the development of this homebrew Solitaire game, playable within perhaps the most severe technical restrictions available to Game Boy Advance games. Homebrew Game Boy Advance games are already impressively niche, but a single e-Reader card homebrew Solitaire Game Boy Advance game is impressively niche to the point of near absurdity.

Per the original blog post, the e-Reader supports the loading of NES games, raw binaries, and even Zilog Z80 binaries — with Z80 assembly and its low footprint being most advantageous for this project. Nintendo e-Reader applications have an additional benefit of being able to use an e-Reader API (ERAPI) that allows numerous common tasks to be called from e-Reader instead of needing to be repeated in dotstrip code, allowing for further space savings.

The original post also notes that the Z80 emulator used within the Nintendo e-Reader isn't 100% accurate and uses a limited amount of opcodes and registers. This means some things normally possible on a Z80 simply aren't on the restricted e-Reader setup,. Nevertheless, Matt Greer was still able to use these restrictions to create a fully functional game of Solitaire, including changeable music, within the limitations of 4,384 bytes. Across two dot strips on a single custom Nintendo e-Reader card, it's impressive just how much a homebrew developer was able to achieve. It is unfortunate that actual e-Reader cards were made for such a short period, and the Nintendo e-Reader is mostly lost to time as a result.

Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.

Christopher Harper has been a successful freelance tech writer specializing in PC hardware and gaming since 2015, and ghostwrote for various B2B clients in High School before that. Outside of work, Christopher is best known to friends and rivals as an active competitive player in various eSports (particularly fighting games and arena shooters) and a purveyor of music ranging from Jimi Hendrix to Killer Mike to the Sonic Adventure 2 soundtrack.

Lenovo Legion Go now down to just $499 — 8.8-inch behemoth undercuts Asus ROG Ally X and Valve Steam Deck OLED

Valve confirms the Steam Deck won't have annual releases — Steam Deck 2 on hold until a generational leap in compute performance takes place

FFmpeg devs boast of up to 94x performance boost after implementing handwritten AVX-512 assembly code