Alchemy is a reconstruction of the source for the Game Boy Advance games ☀️ Golden Sun: The Broken Seal and ⚓️ Golden Sun: The Lost Age. It is a matching decompilation: readable code, images, music and text that build the same ROMs as the originals, byte for byte.
It builds the following ROMs:
- tbs-ja.gba
sha1: 35ef9e4c9f38183ebd6a3e3923a11ce9a4333718 - tbs-en.gba
sha1: 5c4695205413df7db52b9a184815a07783999971 - tbs-de.gba
sha1: c23ab91a39434623cf1a999f387d743ade1a22a6 - tbs-es.gba
sha1: de0bdc889594b012cad213ca83707feb81ada28b - tbs-fr.gba
sha1: 42f3b262c16cfc5bde1fa2b25016fb74046de1b3 - tbs-it.gba
sha1: ca45e04b26b2f040ac63e679a459d21869f5f28d - tla-ja.gba
sha1: 4c79e60962299654981628ccd99b122ef27043f7 - tla-en.gba
sha1: b500663220cb9bf56b9f8e8c0c544f1d6fa3a824 - tla-de.gba
sha1: 7820b4c7ba9002b0e9be23a6f45a9ab204986438 - tla-es.gba
sha1: a2e3e80036195343c2713410ac14f4e329e3f40d - tla-fr.gba
sha1: f14855c0f8c87a95cc52189e8e3b2bd9df186322 - tla-it.gba
sha1: 57f1d005666b81645e55412658427e27099c5907
alchemy.pascalpixel.com explains how The Broken Seal works, written from its rebuilt source, with recordings from the game itself.
Install the dependencies.
macOS, with Homebrew:
xcode-select --install
brew install arm-none-eabi-binutils libpngLinux (Debian or Ubuntu; the same packages under their local names elsewhere):
sudo apt install build-essential binutils-arm-none-eabi git libpng-devWindows: run wsl --install in PowerShell, restart, open Ubuntu from the Start menu and follow the Linux steps inside it.
Then clone and build.
git clone --recurse-submodules https://github.com/PascalPixel/alchemy
cd alchemy
makeThe first make builds the old compilers from the alchemy-gcc submodule, once, then the English Broken Seal as out/tbs-en/tbs-en.gba.
| Command | Builds |
|---|---|
make tbs-en |
one edition: tbs or tla, then ja, en, de, es, fr or it |
make compare-tbs-en |
that edition, checked against the original's hash in rom.sha1 |
make -j8 compare-tbs |
all six editions of The Broken Seal (compare-tla for The Lost Age) |
make -j8 compare-editions |
all twelve |
make help lists the rest.
Golden Sun, its characters, music, art and original code were made by Camelot Software Planning and published by Nintendo. Alchemy is an unofficial fan project, and neither company is involved with it or endorses it.
Thank you to:
- pret, whose decompilations set the standard Alchemy measures itself against, and whose agbcc builds the games’ sound and save code.
- GBATEK, Martin Korth’s hardware reference, from which The Lost Age’s
-mtune=gbatune and Alchemy’s hardware names come. - Coaltergeist, Karathan and Tarpman, whose earlier public work identified the compiler and flags behind The Broken Seal.
- Simon Lindholm, for decomp-permuter, which Alchemy Devtools reimplements in Rust.
- Everyone at r/GoldenSun who cheered Alchemy on and builds with it.