
Save Migration Tool for GB Studio
Shipping an update to your GB Studio game and worried it'll wipe everyone's saves? When you recompile, GB Studio reshuffles how variables are stored, so the old `.sav` won't load in the new build. **This tool carries the player's progress across**: story flags, HP, money, inventory, quest steps... by matching variables **by name**, not by position. It works entirely on your files. Your original save is never modified; a fresh, new-build-compatible save is produced. Which download do I want? - Web dev kit — bake a branded, self-contained migrator to **ship with your game update**. Drop your build files in, tweak a small config, run one command, and get an HTML file webapp your players open and use. They only supply their own save. - Python (CLI + desktop app) — for running from source or tinkering. A command-line version and a drag-and-drop desktop GUI, plus a self-test. Standard-library Python (the GUI needs PyQt5). - Godot / Godotboy kit — for devs shipping their GB Studio game through the Godotboy Godot template. Drop it in and player saves **auto-migrate on load**... no action needed from the player. You'll need every builds' game_globals.i that you wish to update from. To created this file, in GB Studio, Game > Advanced > Export Project Source. Migration matches variables by name using the symbol map GB Studio writes to **`build/src/include/data/game_globals.i`**... and you need **both** the OLD build's copy and the NEW build's copy. GB Studio overwrites this file on every build, so **keep a copy of `game_globals.i` with each release you ship**; without the old build's copy, its saves can't be migrated later. (The Godot kit bakes each build's map into a small JSON profile so you don't have to keep the raw files around.) Good to know - Matches variables **by name**, so it survives the compiler reassigning indices between builds. - What carries over: global variable values (flags, stats, money, inventory, progress). - What doesn't: your exact on-screen position and scene — you resume from where a "donor" save was made. (This all kind of depends on how your game's saves are set up in GB Studio). - After migrating, rename the file to match your ROM (e.g. `MyGame.gbc` → `MyGame.sav`) so the game/emulator loads it. - Built on the **GB Studio 4.1.3** save structure and tested up to **4.2.2**. May or may not work with the newest version. Always verify a migrated save in an emulator before trusting it on real player saves! Free and open! Poke around, adapt it, build on it, package it with your game updates... Do whatever you want with it! *This tool was created with the help of Claude Code but still took me quite a while to dial in and get working as intended. All tests were run by me to make sure everything worked. This was created originally to help with my game's Steam release, since there were no public tools out there to fix the save migration issues with Game Boy ports. I am releasing this to hopefully give the GB Studio community a better jump off point.
Jaboc.gb 50 followers· portfolio 14 View creator →