百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

sa2

> 编程语言
开源

Sonic Advance 1 和 2 - GameBoy Advance 游戏的译码和移植,使用 C 语言编写

637 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Sonic Advance 1 和 2 - GameBoy Advance 游戏的译码和移植,使用 C 语言编写

Sonic Advance Trilogy

:warning: This project is not completed and still under active development

This is a work in progress matching decompilation of Sonic Advance 1, 2, & eventually 3

It builds the following ROMs:

  • sa1.gba sha1: eb00f101af23d728075ac2117e27ecd8a4b4c3e9 (Europe) (En,Ja,Fr,De,Es)
  • sa2.gba sha1: 7bcd6a07af7c894746fa28073fe0c0e34408022d (USA) (En,Ja,Fr,De,Es,It)
  • sa2_europe.gba sha1: b0f64bdca097f2de8f05ac4c8caea2b80c5faeb1 (Europe) (En,Ja,Fr,De,Es,It)
  • sa2_japan.gba sha1: dffd0188fc78154b42b401398a224ae0713edf23 (Japan) (En,Ja,Fr,De,Es,It)
  • sa2_japan_vc.gba sha1: 2aa6ee2cf2b0ebfafbea6d6d24165b252a7e329e (Japan) (En,Ja,Fr,De,Es,It) (Virtual Console)
  • sa2_beta.gba sha1: 3368642fc4157824af63367e2a685b7d6ee9b09d (USA) (Beta) (2002-10-25)

It can also build:

  • sa2.sdl make sdl (Linux/MacOS SDL 64bit port)
  • sa2.sdl_win32.exe make sdl_win32 (Windows SDL 64bit port)
  • :construction: sa2.win32.exe make win32 (Win32 OpenGL port, not functional)
  • sa2.ps2.iso make ps2 (PlayStation 2 port, requires PS2DEV)
  • EBOOT.PBP make sdl_psp (PlayStation Portable SDL port, requires PSPDEV)

Current state (SA2)

  • :tada: The build is 100% from C files with ~60 functions which currently don't match
  • All assembly code extracted, disassembled, and decompiled by hand to their C equivilent
  • All songs have been extracted, and documented as matching MIDI files
  • All sprite animation frames have been extracted to PNGs and are used to build the matching rom
  • All tilemaps (backgrounds) have been documented and had their tiles extracted
  • Most aspects of core game play have been documented, but >600 functions are still unnamed
  • The game compiles to a widescreen port (426x240) for multiple platforms

Sub games

Within the Sonic Advance Trilogy roms there are some "Sub games" which we have begun to decompile as part of this project. These sub games are automatically compiled and bundled during the main build process, as they are necessary to create a matching binary.

Game Multiboot rom Decompilation
SA2 mb_chao_garden.gba
SA2 collect_rings.gba

Setting up the repo

Please see follow these instructions

Contributing

Join us on discord to get started in helping out. Otherwise, we are always looking for people to document the code base, and there are many non matching functions which need human input to resolve.

Strict No LLM / No AI Policy

  • No LLMs for issues.
  • No LLMs for pull requests.

This project was created as a learning excerise, I (freshollie) like learning new things. Of course it also has real world outcomes (having the ability to play, mod, port this game), but we as maintainers are not interested in submissions from LLM origin.

We want humans to use this project to practice their skills. Reverse engineering, documenting, understanding, being part of the process. If you submit a pull request we want you to have accountability as well as knowledge of what you've done. We want you to develop on those skills and continue to contribute. If "the computer" did all the work for you, we are not interested.

Our policy is based off Zig's

Layout

…

Notable info

  • The Kirby & The Amazing Mirror decompilation uses the same "engine", as it was written by the same dev team (Dimps)
  • https://decomp.me is a great resource for helping to create matching function
  • For more info, see the FAQs section of TMC

Credits

  • JaceCear for his dedication to understanding the internals of the graphics engine, writing tools to extract this data, as well as massive effort in contributing towards the decompilation process (including decompiling the whole of sa1!), and setting up the PC ports
  • Shout out to @froggestspirit for the drive to set this project up
  • Special thanks to @normmatt for the initial repo setup and sounds disassembly
  • Pokemon Reverse Engineering Tools community for their help with the project, and tooling for GBA decompilations
  • Kermalis for their tool which was used to dump the game midis
  • 琪姬 for their exellent work documenting all the quirks of matching midis

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Ccdecompilationgbareverse-engineering

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言