Skip to content

Repository files navigation

Venus Djinn Jupiter Djinn Mars Djinn Mercury Djinn

Alchemy

Golden Sun 25th Anniversary Preservation Project

Alchemy is an unofficial clean-room reconstruction of the English release of Golden Sun for the Game Boy Advance. It documents and rebuilds the program, assets, and data needed to study the original game and its construction.

Game-specific facts are reconstructed from the approved local ROM evidence. External projects may inform generic tooling or repository methods only; they are not source, naming, or game-knowledge evidence.

The project is a decompilation and preservation effort, not a remake, ROM hack, emulator, or game distribution. The target is the released English ROM; no ROM is distributed by this repository. Golden Sun and its original material are copyright Nintendo and Camelot Software Planning. Alchemy is not affiliated with or endorsed by either company.

DONE: Currently 36%

DONE measures executable bytes that rebuild identically to the target: exact C plus code that is permanently assembly. Nothing else counts. There is no tier for C that reads well but does not reproduce: a byte is exact C, or it is assembly still to reconstruct.

Three figures, because one of them alone would mislead:

bytes share
Exact C 274,776 20.40% of executable
Permanent assembly 216,278 16.05% of executable
DONE 491,054 36.45% of executable

Permanent assembly is not a shortcut and not a backlog. It is overwhelmingly linker veneers and alignment padding, which the linker and assembler emit and no C can produce, plus a small set of hand-written routines using calling conventions C cannot express. It rebuilds identically, so it is done, and it will never become C.

That also means 100% of the ROM is not the target. Of the 1,347,122 executable bytes, 216,278 can never be C, so the reconstruction's own ceiling is 1,130,844 and exact C stands at 24.30% of the bytes that can be C. An overlay whose every function is reconstructed still reports short of 100% because its veneers count against it.

DONE rose from 26% to 36% in August 2026 without a line of C being written, and that is worth stating plainly rather than presenting as progress. 132,364 bytes of hand-written assembly and library code had been sitting in the unfinished column: arm.md gates both store-multiple peepholes on TARGET_ARM, so stock gcc 2.96 emits no Thumb stmia/ldmia from any source, and 281 owners have one inside their own span. They rebuild identically and will never be C, which is what DONE measures. Exact C did not move.

The four maps below show the current byte metrics for the English release. Progress is measured by bytes, not function counts.

For the two code charts, the bright band color marks Exact C, the pale band color marks permanent assembly, and the near-white ground is assembly still to reconstruct. The footer reports Exact C, Permanent ASM and their sum as DONE for that band alone, so it differs from the whole-ROM figure above; assembly still to reconstruct is the remainder and is not a separate footer item.

Main game

The main game contains 548,364 executable bytes in the purple band.

Main-image code coverage box tree in the purple band; code categories use the legend below.

Code overlays

The game loads 96 additional code overlays containing 798,758 executable bytes in the cyan band.

Decoded code-overlay coverage box tree in the cyan band; code categories use the legend below.

Images and data

This map covers 6,735,557 bytes of graphics, maps, text, and other data. Named is the finished form: a standalone file whose name says what it is, like vale_night.png, rock_front.png, isaac_running_south_west.png or djinn_venus.gif. Extracted is the same picture sitting under the ROM's own numbering — resource_226_grid_value_high.png — which is not the same as knowing what it is. Almost everything is still Extracted.

Image and data maturity box tree in the magenta band; brightness is maturity.

Music and sound

This map covers 563,198 bytes of music, samples, sequences, and soundfonts. The finished form is growl.wav, good_morning.mid and alchemy.sf2. Nothing has reached it yet: the tree holds sfx_272. sound_272.mid and unnamed PCM indexed by ROM address, so Named reads 0.0%.

Music and sound maturity box tree in the orange band; brightness is maturity.

Contributing and project status

CONTRIBUTING.md is the only other page in this repository. It carries the reconstruction and matching workflow, the tool catalog, the clean-room boundary, the source provenance and the publication rules. Current work and known blockers live in the commit history, attached to the change that established them.

About

An automated, clean-room decompilation of Golden Sun, preserving the GBA classic as readable code and assets.

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages