Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mattcurrie/gb-save-states

💾 Patches to add save state support to Game Boy games when playing on the original hardware
https://github.com/mattcurrie/gb-save-states

assembly-language game-boy gameboy

Last synced: 14 days ago
JSON representation

💾 Patches to add save state support to Game Boy games when playing on the original hardware

Awesome Lists containing this project

README

        

# gb-save-states
Patches to add save state support to Game Boy and Game Boy Color games when playing on the original hardware.

# How to use

## Requirements

- For Game Boy games:
- Flash cart that supports 32KB of save RAM and MBC 1/5 mapper
- For Game Boy Color games, and Game Boy games that originally include save RAM:
- Flash cart that supports 128KB of save RAM and MBC 5 mapper, e.g. EZ Flash Jr. or EverDrive-GB X3/X5/X7. Not sure how much save RAM your flash cart supports? [Try this test ROM on your flash cart.](https://github.com/eievui5/sram128/releases/tag/v1.0.1)
- Original ROM file for the game
- Patching software that supports bsdiff patches:

- Windows (command line) - [BsPatch](https://www.romhacking.net/utilities/929/)
- macOS (GUI) - [Multi Patch](http://projects.sappharad.com/tools/multipatch.html)
- macOS (terminal) - install [Homebrew](https://brew.sh/) and then run ```brew install bsdiff``` in the terminal

## Setup

1. Download the .bsdiff patch file for the game from the [patches](patches) directory

2. Patch your original ROM with the patch to build a new patched ROM.

Example for command line/terminal:

```
bspatch "B.C. Kid (E) [!].gb" patched.gb "B.C. Kid (E) [!].gb.bsdiff"
```

3. Copy the patched ROM to your flash cartridge

## Controls

Due to different button layouts on the GB/GBC and the GBA, there are two different button combinations that can be used to save/load a game.

After pressing the button combo, the screen will flash as the save/load process runs.

### Save

Combo 1: Hold ```Down``` and press ```Start```

Combo 2: Hold ```Select``` and press ```A```

### Load

Combo 1: Hold ```Up``` and press ```Start```

Combo 2: Hold ```Select``` and press ```B```

# There isn't a patch for my favourite game!

Submit an [issue](https://github.com/mattcurrie/gb-save-states/issues) and hopefully someone will create a patch for you.

If you have a bit of Game Boy assembly knowledge then you can create a patch yourself. [Check out the How To document](src/HOW-TO.md)

# Limitations

- Sound/Music cannot always be restored 100% due to some sound registers being read only. This generally isn't a problem unless loading a save game from the startup menu instead of during gameplay. Pausing and resuming the game can sometimes resolve any sound problems.

# Notes

- Kirby's Dream Land uses `Select + Down + B` and `Select + Up + A` to access hidden features on the title screen. To avoid conflicts with the save/load combos, these hidden feature combos have been remapped to `Down + B` and `Up + A`.