Pokemon Ruby Decomp: A 2016 Disassembly Synced From Emerald
By Indie Kings | October 28, 2026
Updated October 28, 2026: pret/pokeruby, the community project that rebuilds Pokemon Ruby and Sapphire from source, merged its most recent change on September 29, 2026, a sync of player controller code taken from the Emerald decompilation. The repository was created on January 23, 2016, carries 1,008 stars, 277 forks and 62 contributors, and builds both games as separate GBA ROMs with published SHA1 hashes.
Image: a milky blue Game Boy Advance, the hardware Ruby and Sapphire shipped on, via Wikimedia Commons.
A disassembly by name
The README opens with a deliberate word choice: this is a disassembly of Pokemon Ruby and Sapphire, not a decompilation. In practice the distinction is about ambition as much as technique. A disassembly reproduces the original binary by assembling source that mirrors it closely, while a decompilation rewrites the game in readable C and then proves the compiler emits the same machine code. pret/pokeruby has been moving toward the second definition for years, with C files in src, headers in include, and a build that produces pokeruby.gba at SHA1 f28b6ffc97847e94a6c21a63cacf633ee5c8df1e and pokesapphire.gba at 3ccbbd45f8553c36463f13b938e833f652b793e4.
The wording survives because the project's history is longer than the terminology shift. When the repository was created in January 2016, the matching C approach was still proving itself, and Ruby and Sapphire were among the games that made it credible. The current Makefile tells the real story: it builds with agbcc by default, the reconstructed period compiler that reproduces Nintendo's code generation, and it offers a MODERN flag for people who would rather compile with a current toolchain and accept different output. A project that had only ever been an assembly listing would not need either option.
The September sync from Emerald
The September 29 merge, pull request 892, is titled Sync a lot of player controller with pokeemerald. This is the quiet advantage of the pret family: Ruby, Sapphire and Emerald share an engine lineage, so documentation and decompiled logic written for one can be carried to the others once the naming and structure line up. Player controller code governs how the character moves, turns and interacts with the world, and it is exactly the sort of shared subsystem where a fix proven in one game should not have to be rediscovered in another.
Syncs like this are also a maintenance signal. They mean the project is not merely frozen at a matching hash but is being kept structurally close to its sibling, which is what allows a contributor to move between repositories without relearning the layout. The tradeoff is coordination: a change in Emerald can require an equivalent change here, and a sync that lands months late can be harder to apply than one that lands promptly. Landing one in September 2026, a decade after the repository was created, says the maintainers are still doing that bookkeeping rather than letting the trees drift apart.
Two games, one tree, 62 people
Ruby and Sapphire are near identical releases with different encounter tables, version exclusive Pokemon and a handful of script differences, so a single repository producing both is the natural design. The build system already carries the version switch, and the README lists both hashes side by side, which means a contributor can verify either cartridge. Thirty six issues are open and 62 people have contributed code, a smaller footprint than Emerald's 134 but consistent with a project that has spent much of its life as the quieter sibling.
The repository also carries a relic of an earlier era: its badge still points at travis-ci.org, the Travis CI service that predates GitHub Actions as the default for open source projects. That is not a criticism so much as a timestamp. The project predates the current GitHub Actions conventions, survived the migration of CI infrastructure, and still builds, which is a reminder that the durability of these decompilations comes from the source tree and the documented toolchain rather than from whatever service happens to be running the tests. For anyone starting a hack on the Hoenn games, that durability is the useful part: a readable base, two verified targets, and a decade of accumulated symbol names.
Project card
| Item | Detail |
|---|---|
| Repository | pret/pokeruby on GitHub |
| Self description | Disassembly of Pokemon Ruby and Sapphire |
| Created | January 23, 2016 |
| Build outputs | pokeruby.gba and pokesapphire.gba |
| Hashes | Ruby f28b6ffc97847e94a6c21a63cacf633ee5c8df1e, Sapphire 3ccbbd45f8553c36463f13b938e833f652b793e4 |
| Default compiler | agbcc, with a MODERN build option for current toolchains |
| Latest merge | September 29, 2026, pull request 892, player controller sync from pokeemerald |
| Scale | 1,008 stars, 277 forks, 62 contributors |
| Open issues | 36 as of late October 2026 |
| CI relic | Badge still references travis-ci.org |
FAQ
What is pokeruby?
A community project that rebuilds Pokemon Ruby and Sapphire from source, matching the retail GBA ROMs closely enough to publish verified SHA1 hashes for both games.
Is it a disassembly or a decompilation?
The README calls it a disassembly, a name that reflects its 2016 origins. The tree now contains C source and builds with agbcc like the other pret decompilations, so the practical difference is mostly terminology.
What was the September 2026 change?
Pull request 892 synced a large amount of player controller code from pokeemerald, keeping the two trees structurally aligned.
Does it build both games?
Yes. The build produces pokeruby.gba and pokesapphire.gba, each with its own hash listed in the README.
Why does the repository still show Travis CI?
The badge dates from before GitHub Actions became standard. It is a historical artifact rather than a statement about current testing.
Is it still maintained?
Yes. It merged work in September 2026, more than ten years after the repository was created.
Bottom Line
Ruby and Sapphire are where a lot of the modern Pokemon decompilation toolchain was tested, and pokeruby still reads like a project comfortable with its own history: an old name, an old badge, and current work landing from a sibling repository. The September sync is the important detail, because it shows the pret ecosystem behaving like one codebase spread across several games rather than a set of unrelated fan projects. Ten years on, two verified builds and 62 contributors is not a small thing to have kept alive.
Sources
- GitHub pret/pokeruby README build list and hashes, Makefile compiler selection, repository metadata, accessed October 28, 2026
- GitHub API metadata for pret/pokeruby, stars, forks, contributors, issues and latest commit, accessed October 28, 2026
Related: Cubyz: Zig Voxel Sandbox Rebuilt From Java With 3.7k Stars | Metroid Dread: Unofficial PC Port Hits 240 FPS With Widescreen