Skip to content

Card e-Reader

The e-Reader is a Game Boy Advance cartridge with a scanner in it. Nintendo printed dotcodes along the edges of trading cards — whole little games, Animal Crossing NES titles, extra levels for Super Mario Advance 4 — and you swiped the card through the slot to load one.

In RetroXR you do exactly that, as of v0.6.0. Push the reader into the handheld, then take a card and slide it through the slit, dotcode edge first. There is no bay and nothing to seat: the card is never held, because a card that could be seated would be captured half way through a swipe.

The reader’s program comes from your library

Section titled “The reader’s program comes from your library”

The e-Reader’s cartridge dump is an ordinary GBA ROM, so RetroXR does not treat it as firmware or ask you to install a second copy under a name of its choosing. Put it where you would keep it anyway:

  • roms/game_boy_advance/ — the shelf it belongs on, or
  • roms/ereader/ — beside the cards it reads, which is also reasonable.

It is recognised by the ROM’s own header — the GBA game code — not by its filename, so renaming your dump does not hide it. The library then stops offering that file as a game, since it is hardware rather than something you play.

This is the one thing that will bite you. A card is one or two .raw dotcode strips, and RetroXR groups the strips of a card by filename, using the No-Intro naming. Get the names wrong and every two-strip card is silently split into two half-cards.

Both No-Intro conventions are understood:

<card> (Strip 1).raw + <card> (Strip 2).raw two long strips
<card> (Long Strip).raw + <card> (Short Strip).raw a long and a short
<card>.raw a single strip

Cards go in roms/ereader/. A .gba dump sitting in that folder is ignored by the card grouping, which only ever looks at .raw — so keeping the reader beside its cards is safe.

Every e-Reader card is the same portrait trading card, so there is no card shape to work out — only which of its edges carry a dotcode. A long strip goes on a long (side) edge and a short strip on a short (bottom) edge, because a 2912-byte dotcode does not fit across 63 mm of card.

Present an uncoded edge and nothing is read, which is what should happen — that is a card offered the wrong way round, not a failure.

The scanner has to be powered and waiting for a card. In practice: start the e-Reader software, choose its scan option, and swipe once it is asking for a card. A card offered to an unpowered scanner is simply dropped.

A two-strip card is swiped twice — one strip, then the other — and the software tells you when it is satisfied:

Scanning of Dot Code(s) complete.