Clever coder crams a Solitaire game onto a single Nintendo GBA e-Reader card | Tom's Hardware
HomeHome > Blog > 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 06, 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.

AMD-powered OLED handheld aims to rival the Steam Deck OLED — Ryzen 9 AI HX 370 runs Black Myth: Wukong at 50-60 FPS with 1080p low settings

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

Nintendo Wii turned into a sleeper gaming PC, complete with GameCube ports — powered by AMD Ryzen 7 7735HS and Radeon 680M graphics