EMS Flasher Documentation

main page


Also see Frequently Asked Questions (FAQ).

The software has three major modes of operation:

To write use --write, to read use --read, and to get the header use --title. When in write and read, the software will automatically detect ROM vs SRAM based on the filename. If the filename ends in .sav, SRAM is assumed. You can force ROM or SRAM with the --rom and --sram options.

Write mode will write the ROM or SRAM specified on the command line to the specified bank (default 1) on the cart.

Read mode will read the entirety of the specified bank into the file specified. For ROMs it will read 32 megabits / 4 megabytes; for SRAM 256 kilobites / 32 kilobytes.

Title mode does not require a file argument, and will print the ROM header to stdout.

WARNING: if you give the EMS flasher a huge file for writing, the software will only write the first 4 megabytes / 32 kilobytes.

Additionally, all modes take a --verbose flag for giving more output. You can also adjust the block size, but it is recommended you leave this to the default of 4096/32 bytes (used by the Windows software).


See the main page for examples.

Full Options

This is the output of ./ems-flasher --help:

Usage: ./ems-flasher < --read | --write > [ --verbose ] <totally_legit_rom.gb
       ./ems-flasher --title
       ./ems-flasher --version
       ./ems-flasher --help
Writes a ROM or SAV file to the EMS 64 Mbit USB flash cart

    --read                  read entire cart into file
    --write                 write ROM file to cart
    --title                 title of the ROM in both banks
    --verbose               displays more information
    --bank <num>            select cart bank (1 or 2)
    --save                  force write to SRAM
    --rom                   force write to Flash ROM

You MUST supply exactly one of --read, --write, or --title
Reading or writing with a file ending in .sav will write to SRAM.
To select between ROM and SRAM, use ONE of the --save / --rom options.

Advanced options:
    --blocksize <size>      bytes per block (default: 4096 read, 32 write)

Written by Mike Ryan and others
See web site for more info: