EMS Flasher for Linux / Mac¶
ems-flasher is software for flashing the EMS Gameboy USB cart on Linux (and others).
The EMS USB Cart (also available from the fine folks at nonfinite electronics) for Game Boy is pretty fantastic: it's big (64 Mbit), cheap (~US$40), and has a replaceable battery.
BUT the software only works in Windows!
This project aims to provide portable flasher software for use on operating systems such as Linux. In theory it runs anywhere libusb runs (Linux, BSD, Mac).
So far it has been tested on:- Linux
- Mac
Please let me know if you run it on another platform!
Please note that this is alpha-quality code. I've done all I can to ensure it won't permanently damage your cart, but please don't hold me responsible if something goes wrong.
Binaries (OS X)¶
Source (Linux, OS X, BSD)¶
This code is in a very early state. I've tested it pretty thoroughly on my cart to make sure it doesn't do anything awful, but as always: Use at your own peril.
The latest stable(ish) version is available in the files section:
Source is also available via git:
git clone git://lacklustre.net/ems-flasher
Build with
make
On Mac, prior to building you must install pkgconfig and libusb from ports, like so:
sudo port install pkgconfig sudo port install libusb
Running it¶
# write the ROM to the cart ./ems-flasher --write totally_legit_rom.gb # saves the contents of bank 2 into the file; print some extra info ./ems-flasher --verbose --bank 2 --read not_warez.gb # read the SRAM from bank 1 ./ems-flasher --read my_pokeymans.sav # print out the headers ./ems-flasher --title
The --write flag will flash the ROM or SRAM to the specified bank of the cart. Use the --verbose flag to get more output.
Documentation¶
Upcoming improvements¶
David Wendt JR. is hard at work looking into how more than 2 ROMs are stored on the cart at the same time. No ETA on that.
Thanks¶
Thanks go to hyarion for build info and binary for Mac OS 10.6.
Major thanks go to David Wendt JR. for reverse engineering SRAM and implementing SRAM read/write, full ROM header dump, and multiple bank support.