EMS Flasher for Mac / Linux



ems-flasher is software for flashing the EMS Gameboy USB cart on Mac OS X, 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 and Mac OS X. In theory it runs anywhere libusb runs, so someone out there in BSD land should totally try it out.

So far it has been tested on:

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.


Build source by running


On Mac OS X, prior to building you must install pkconfig and libusb from ports, like so:

sudo port install pkconfig
sudo port install libusb

running it

Mac Users: please see this excellent tutorial on using ems-flasher on Mac.

# 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.


ems-flasher is developed using git, the most awesome version control software ever made. Clone the repo at:

git clone git://lacklustre.net/ems-flasher

browse ems-flasher source online


ems-flasher documentation

frequently asked questions


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.

Thanks to lostd for testing on OpenBSD.

Big ol' thanks to Mick Charles Beaver for making device detection way cleaner and giving us better error messages.

Mega thanks to Nicole Reid for maintaining the FreeBSD port.

Thanks to Joshua Merriman AKA Chainsaw Police for writing a Mac OS X tutorial. Go check out his tracks!

And thank YOU!