Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gheja/ems-flasher

EMS Flasher for the GB USB smart card 64M GameBoy flash cartridge
https://github.com/gheja/ems-flasher

Last synced: 9 days ago
JSON representation

EMS Flasher for the GB USB smart card 64M GameBoy flash cartridge

Awesome Lists containing this project

README

        

# ems-flasher

[![Build Status](https://github.com/gheja/ems-flasher/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/gheja/ems-flasher/actions/workflows/c-cpp.yml)

EMS flasher for the _GB USB smart card 64M_, a flash cartridge for GameBoy.

The hardware can be obtained from: http://store.kitsch-bent.com/product/usb-64m-smart-card

Forked from: http://lacklustre.net/gb/ems/

For more info check out the Original about section.

## Installing

Launchpad PPA: https://launchpad.net/~gheja/+archive/ubuntu/ems-flasher

Currently building for:
- Ubuntu 18.04 LTS (Bionic Beaver)
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- Ubuntu 24.04 LTS (Noble Numbat)

Install on Ubuntu using PPA:
```
sudo add-apt-repository ppa:gheja/ems-flasher
sudo apt update
sudo apt install ems-flasher
```

## Original about

The EMS flasher is a simple command line flasher for the 64 Mbit EMS USB
flash cart for Game Boy.

This software was written by Mike Ryan

For more information, see the web site at:
http://lacklustre.net/gb/ems/

### Prerequisites

To build ems-flasher pkg-config and lubusb is needed.

On Mac you can install them by:

```
sudo port install pkgconfig
sudo port install libusb
```

(thanks to hyarion for this info)

On Ubuntu/Debian you can install them by:
```
sudo apt-get install pkg-config libusb-1.0-0-dev
```

### Building

Build is automated by a Makefile. To build simply run the following:

```
make
```

### Running

The software has three major modes of operation:
* write ROM to cart
* read ROM from cart
* read title of ROM on cart

To write use --write, to read use --read, and to get the title use
--title.

Write mode will write the ROM specified on the command line to bank 1 on
the cart. Read mode will read the entirety of bank 1 (32 megabits / 4
megabytes) into the ROM file specified.

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

BEWARE: if you give the EMS flasher a huge file for writing, it will
continue writing past the end of the cart and do unknown amounts of
damage. Please don't do this!

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 bytes for writing and 32 bytes for reading (used
by the Windows software).

For a full list of options, run the command with the --help flag.

### Examples

```
# write the ROM to the cart
./ems-flasher --write totally_legit_rom.gb

# saves the contents of the cart into the file; print some extra info
./ems-flasher --verbose --read not_warez.gb

# print out the title
./ems-flasher --title
```

### Bugs

The software only handles a single ROM in the first bank of the cart.
Reading and writing of SRAM is not supported (yet). The commands to do
so have been discovered and they will appear in a future version.

Preferably use the bug tracker found at the web site (at the top of this
doc) to report any bugs.

You can also send em to mikeryan \at lacklustre.net