Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 1 day ago
JSON representation
💾 Patches to add save state support to Game Boy games when playing on the original hardware
- Host: GitHub
- URL: https://github.com/mattcurrie/gb-save-states
- Owner: mattcurrie
- License: mit
- Created: 2017-07-14T23:33:39.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-23T07:41:18.000Z (2 months ago)
- Last Synced: 2024-12-14T11:12:07.639Z (8 days ago)
- Topics: assembly-language, game-boy, gameboy
- Language: Assembly
- Homepage:
- Size: 663 KB
- Stars: 154
- Watchers: 20
- Forks: 12
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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) directory2. 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`.