GBA e-Reader emulators
The GBA e-Reader is an add-on for the Game Boy Advance released in Japan and USA/Australia. It was also slated for release in Europe, but the release of the device was canceled, though the (now extremely rare, and undumped) European cards had an accidental limited release. It has a LED scanner that reads paper cards with data printed on them, called "e-Reader cards" or "e-Cards". These cards hold actual data. You can find a No-Intro set for those.
The e-Reader was originally released in Japan in 2001 without Link cable support (thus unable to link to other GBA/GC games), but that was added in a second version released in 2002 as e-Reader+ in Japan. That second version was released as e-Reader in USA and Australia.
The GBA e-Reader has three uses:
- Standalone: The only mode supported by the initial Japan-only release (the second Japanese release, "e-Reader+", and the US release supported the other two uses). The e-Reader add-on is plugged to a GBA unit, and e-Cards are scanned with it. Notable use includes NES Classics (often mapper 0 ones), Promotional event cards with nifty animations and the Pokémon Trading Cards for example.
- Linked to a GBA game: This is how the e-Reader was used so that content scanned from e-Cards is used to unlock flags for data on the cartridge (or even add new data not in the cartridge, usually stored to the save data file for that game - like Pokémon Gen 3 guest trainer data, F-Zero Climax developer ghost data, or SMA4 e-World level data) new content in retail GBA games like Super Mario Advance 4 and Rockman Zero 3 among many others. Requires two GBA units - one with the game cartridge, the other with the e-Reader device, connected with a Link Cable, with the gray end on the second GBA. Sadly many of these features were made inaccessible without cheats, or deleted altogether, in Western localizations because of the device's unpopularity outside Japan.
- Linked to a GC game: Similar to e-Reader/GBA but with GC games. Notable examples include Animal Crossing, Pikmin 2 and Pokémon Colosseum.
The e-Card images: Yes, these have actual data in them. The "No-Intro Game Boy Advance (e-Cards)" romset is only missing 12 US cards (Pokémon TGC) and a few dozen JP ones (mainly F-Zero Legend, Rockman EXE 5/6, Pokémon Pinball). Either download the set or hunt down the device and obscenely rare cards to archive them.
The dumps are around 2.2KB and are region-locked. No European-region dumps exist (even though really rare e-Cards do).
The e-Reader BIOS: A regular GBA ROM. Three versions exist, be sure to pick up the one with the same region as the e-Card.
- Card e-Reader (Japan) (not recommended)
- Card e-Reader+ (Japan)
- e-Reader (USA)
The e-Reader is region-locked. Make sure the e-Reader BIOS region, the e-Card region, and -if used- the GBA/GCN game region, all match.
|Name||Platform(s)||Latest Version||e-Reader Alone||e-Reader/GBA Game||e-Reader/GCN Game||Link Cable||FLOSS||Recommended|
|PC / x86|
|VBA 1.73 Mod||1.73 e-Reader Link (r1353)||✓||✓(i)||✗||✓||✓||~|
- (i) means incomplete: these emulators will not recognize the games they're connected to. Normally, after choosing "Connection/to Game Boy Advance", the e-Reader should have "(Game Name) Game Data" pre-loaded in its internal EEPROM memory and appearing in a tiny black box on-screen, but this can't happen in either No$GBA, VBA-M, or VBA e-Reader mods. Without this step done, scanning e-Cards will just yield an error message. mGBA can emulate this correctly on the latest development version.
- e-Reader/GBA game pack emulation in these emulators can be still reached by ripping a save game from real e-Reader hardware, with this step already done. Using this save with the e-Reader BIOS, it's possible to connect to the GBA game pack, and scan e-Cards... though it's a very less-than-ideal solution and there are only pre-baked e-Reader save files for Super Mario Advance 4 (U), Pokémon Emerald (J), LeafGreen (J) and FireRed (J).
mGBA has full hardware emulation for e-Reader and link functionality, making it the best emulator for e-Reader support.
In the emulator, open the e-Reader BIOS. It's a regular GBA ROM.
Press A. Choose "Scan Card.". Now the BIOS is waiting for you to scan a card.
Click on the file menu and select 'Scan e-Reader dotcodes... A window should pop-up. Choose all the e-card files you'll need to load the game and click OK.
The card data is now loaded.
If the application (NES game, minigame, promotional app) is stored in multiple e-Cards, the game will let you know ("You need [n] more Dot Code(s) to start. Scan [Application Name] 2/[n].") In that case, simply press A to Scan Code again and get another part.
If you're done with all parts (could be one part in many cases), the BIOS will prompt you to save the data to the e-Reader's SRAM. This prevents the data from getting deleted when rebooting the device. You can then access it from the title menu with the new third option, "Access Saved Data".
No$GBA offers actual full hardware emulation for e-Reader, but its GBA emulation, while very decent and with save state support, isn't the best out there. You can still export your save at will.
Emulator: Open the e-Reader BIOS. It's a regular GBA ROM.
The very first time it's loaded, it will save some e-Reader specific configuration, then reset the emulator. After that, it's all good.
In-game, BIOS: Press A (or "Select" for a hidden bonus :P). Choose "Scan Card".
Emulator: A window should pop-up. Now you can choose the e-Card roms (often RAW, but can be also BIN, or BMP/JPG images) you'll need. Choose the file and click OK.
In-game, BIOS: A "Scan Card" message appears, and the data is loaded.
If the application (NES game, minigame, promotional app) is stored in multiple e-Cards, the game will let you know ("You need [n] more Dot Code(s) to start. Scan [Application Name] 2/[n].") In that case:
Emulator: Click "File, Load e-Reader Dotcode". Choose the next e-Card image file.
In-game, BIOS: In the same screen, press A to Scan Code. The data should be loaded. If you tried to do so before loading the next file, the BIOS would say you have already scanned it. Rinse and repeat until you get all parts.
If you're done with all parts (could be one part in many cases), and all is fine, the BIOS would suggest you save the data to the e-Reader's SRAM. (You can then conveniently grab the .sav file for use with other emulators).
This prevents the data from getting deleted when rebooting the device or scanning other e-Cards. You can then access it from the title menu with the new third option, "Access Saved Data" (and the app name shows below too!) In case you want to delete it, hold L+R at console startup (you can use the numeric pad * (multiply) key to reset).
Then, after this save prompt, you can play the actual application.
Example - Super Mario Advance 4: (tutorial by Shugo Takahashi from gbatemp)
You'll need a save file for the e-Reader BIOS GBA ROM with the SMB4 Level Card Program already saved. (Link, US). No$GBA's emulation for this connection scheme isn't complete enough sadly and you'll need real hardware.
Then to set up No$GBA. Place the GBA BIOS file in No$GBA's root and run No$GBA. Open any ROM (right now it doesn't matter) and immediately go edit the settings by pressing F11. Go to the Controls tab and define your control layout for both Player 1 and Player 2, then click on Options and click "Save Options". Close out of No$GBA. It should now have created several files and folders in the root folder you placed it in. Open No$GBA.ini in Notepad and find the "SAV/SNA File Format" setting. Change this to "Raw" and save it. Go place your SMA4 SAV and the e-Reader SV2 in the BATTERY folder. Make sure they share the same names as the SMA4 and e-Reader ROMs you have.
Open No$GBA and open the e-Reader ROM. Change "All machines" to "1st machine". Then press F11 and change "Number of Emulated Gameboys" to "2". DO NOT SAVE THE OPTIONS HERE. IT WILL CRASH ON STARTUP EVERY TIME IF YOU DO. (If you screw up and save the NO$GBA options after you've enabled two Game Boys, then open No$GBA.ini and find the "Number of Emulated Gameboys" option. Change this to "-Single Machine" and save.)
After enabling two Game Boys, click "File" and "Cartridge Menu (FileName)" and open your SMA4 ROM, this time selecting "2nd machine". If you did this right, then SMA4 should be loaded on the left side with sound and the e-Reader should be loaded on the right side without sound. Navigate to the SMB3 main menu and check to see that your save file loaded properly. (If either the SMA4 ROM or the e-Reader ROM don't have the proper saved data, make sure that you changed the save type in No$GBA.ini to "Raw", the save files are the same names as their ROM counterparts, and that SMA4 is on the left screen while e-Reader is on the right screen. If their screens are flipped, then either restart NO$GBA and follow the instructions more carefully or open BATTERY and change their save types around, that is .SAV to .SV2 and vice versa.) Go to "Level Card" and then move Mario/Luigi onto the swirling panel in front of the castle to open a menu. Move up to "Level Card" and select it to be taken to the e-Reader communication screen.
Next use the Player 2 controls you mapped out to navigate the e-Reader menu to "Access saved data". "Super Mario Advance 4" should be displayed as the saved data.** This should take you to a communication screen just like SMA4's next to it. Hit A on SMA4 to begin communication. Go to "File" and then "Load e-Reader Dotcode" in No$GBA and navigate to the .RAW Level Card dotcode files you downloaded. Double-click one and the e-Reader should accept it and send it back to the SMA4 ROM. The SMA4 ROM will then tell you that a Level Card was received.
Now here's the catch. SMA4 will not let you save a level permanently and then scan more levels until you beat the level you just scanned at least once. So you either have to beat the level now in the emulator or load the save back onto your real game, beat the level and then repeat this entire process for the next level. It's cumbersome, I know, but in the end, when you have all the levels scanned in and you've played them all it'll be well worth it; these are some of the coolest levels in the entire Super Mario series!
If you choose to beat the level using your original game cartridge, another emulator or are just ready to transfer your save file back, then press Start in No$GBA on SMA4 and hit "Save". It will take you back to the title screen. Go back into Level Card and check to make sure the level you just scanned is still on the level list. Close out of No$GBA and go into the BATTERY folder. Copy the .SAV file from SMA4 and paste it somewhere else: you can import it in other emulators or even real cartridges.
Recent versions (r1353) support standalone e-Reader emulation, which has seen some development recently. You load the e-Reader BIOS as a GBA ROM, select the e-Card dump from "File/Load e-Reader Dot Code", and the in-game select "Scan Card".
- VBA 1.7.3 e-Reader Link (best version)
- VBA 1.7.0 e-Reader (no Link)
- VBA 1.6e e-Reader + Link
Old versions of VBA (later VBA-M) were modded for e-Reader support. The version lacking the Link feature though is useless for cards to be used with GBA games. Regular VBA and VBA-M versions (until very lately, before r1353) do not have e-Reader support at all.
Not that different from No$GBA. You open the e-Reader BIOS first like any regular GBA ROM.
You might be faced with a "Memory Error" screen in-game. That's because VBA didn't detect the save type correctly. You'll need to do that manually, by going to Options, Emulator, Save Type, then choosing EEPROM, and 128K rather than 64K. Reset, and press A and just wait for the SRAM to be formatted (a good minute). Press A when you're done and you can go to the in-game title menu.
Whenever the game tries to scan e-Cards, unlike with No$GBA a window will always pop up asking you to choose your e-Card dump (can be only a RAW file in VBA's case). It's more straightforward here, and the NES compatibility is even better. That said it's more of the same. Read the No$GBA section for more info.
Check under Emulator if "Save e-Reader RAW Files" is checked. "Pause when Inactive" needs to be disabled if you ever intend to link between e-Reader and a GBA game pack. The 1.73 mod works with Pokémon games.
Alternatives for e-Reader emulation
You can also get to enjoy e-Reader content even on emulators without Link Cable or e-Reader emulation.
Preloaded Save Files
Battery backup files (sav) from people who had already scanned e-Cards. Their data gets stored in the .sav file for the e-Reader BIOS ROM or the GBA game with e-Reader features. This is one convenient way to play the exclusive levels from SMA4 if you just grab a save file with the levels already stored and import it in your emulator for use with that game (also the only way to get it to work on PAL SMA4).
Cheat codes enabling the e-Reader unlockables in some games. Only works if the "DLC data" is already included in the cartridge - so it wouldn't work with SMA4's levels or F-Zero Legend's developer ghost data for example. It's also useful to get data that was removed from US versions (since the e-Reader was discontinued outside Japan very early) - including notably Pokémon Colosseum, Mega Man Zero 3, and Megaman Battle Network 5 (6 JP included the data on-cart already, the US didn't and made heavy content cuts)...
Some game mods implement the data from the e-Cards inside the game's ROM, eliminating the need for swapping saves, cheats or e-Card dumps and making the game mostly self-sufficient. This is the case for the official mods by Nintendo released for the Wii U Virtual Console for various GBA games restoring some (but not all) of its e-Reader exclusive content. Some of these were preserved as IPS patches to apply to specific No-Intro versions of the ROMs, available for download here.
The DS compilation for the Megaman Zero games also implements bonuses previously locked out behind e-Cards in the Japanese version.