A decompilation and port of Sonic Advance 2 - a GameBoy Advance game written in C https://sa2.dev
Find a file
2026-01-12 12:04:23 +00:00
.devcontainer some bug fixes and better instructions 2025-01-06 22:27:47 +00:00
.github More SA1 alignment (#230) 2025-12-19 16:32:46 +01:00
.vscode game_7 -> screen_mask 2025-10-22 00:37:39 +01:00
asm math: decompile easy functions with m2c 2026-01-12 12:04:23 +00:00
chao_garden chao_garden: start garden.c 2026-01-11 15:08:37 +00:00
constants Implement m4a for PC (#166) 2024-10-28 11:07:36 +00:00
data japan: match subgame loader 2025-09-12 20:55:32 +01:00
docs document the rally championship rom 2025-02-13 20:40:45 +00:00
graphics vc: complete match 2025-09-21 15:34:26 +01:00
include More SA1 alignment (#230) 2025-12-19 16:32:46 +01:00
libagbsyscall Various RAM map documentation and alignment with SA3 (#175) 2024-12-28 21:12:56 +01:00
multi_boot name a bunch of globals, functions, general fixes (#227) 2025-11-06 11:50:37 +00:00
scripts chao_garden: more 2026-01-04 12:45:12 +00:00
sound Align some stuff with SA1 (#224) 2025-10-21 00:34:32 +01:00
src math: decompile easy functions with m2c 2026-01-12 12:04:23 +00:00
tools chao_garden: more code, split input(?) code 2025-12-23 19:28:20 +00:00
.clang-format Change Clang Format's Line Width (ColumnLimit) to 140 (#150) 2024-07-12 21:44:43 +02:00
.git-blame-ignore-revs ignore formatting commit 2022-11-14 10:56:38 +00:00
.gitattributes add scripts to vendored attributes 2022-12-19 14:21:26 +00:00
.gitignore tcg: start looking at init 2025-09-21 19:45:28 +01:00
config.mk More SA1 alignment (#230) 2025-12-19 16:32:46 +01:00
graphics.mk japan: match animation frames 2025-09-09 01:31:35 +01:00
INSTALL.md ci: add japan to CI (#220) 2025-09-13 18:47:22 +01:00
ldscript.txt name a bunch of globals, functions, general fixes (#227) 2025-11-06 11:50:37 +00:00
Makefile More SA1 alignment (#230) 2025-12-19 16:32:46 +01:00
README.md beta: match beta rom 2025-09-21 15:59:17 +01:00
sa2.sha1 get closer to europe match 2023-05-13 12:58:29 +01:00
sa2_beta.sha1 beta: match beta rom 2025-09-21 15:59:17 +01:00
sa2_europe.sha1 finish dissasembling collect rings 2023-05-13 21:45:12 +01:00
sa2_japan.sha1 Initial code required to build Japanese ROM (#135) 2024-04-19 17:00:12 +01:00
sa2_japan_vc.sha1 vc: start vc match 2025-09-17 00:58:46 +01:00
songs.mk Align some stuff with SA1 (#224) 2025-10-21 00:34:32 +01:00

Sonic Advance 2

Sonic Advance 2 title screen

CI status Decompilation Progress Decompilation Matching Progress Contributors Discord

⚠️ This project is not completed and still under active development

This is a work in progress matching decompilation of Sonic Advance 2

It builds the following ROMs:

  • 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)
  • 🚧 sa2.win32.exe make win32 (Win32 native port, not functional)

Current state

Sub games

Within the Sonic Advance 2 rom 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.

Multiboot rom Decompilation
mb_chao_garden.gba Decompilation Progress
collect_rings.gba Decompilation Progress

Setting up the repo

Please see follow these instructions

Community

Join us on discord to get started in helping out

Screenshots

Notes

  • The Kirby & The Amazing Mirror decompilation uses a very similar codebase, as it was written by the same dev team (Dimps)
  • https://decomp.me is a great resource for helping to create matching functions
  • ldscript.txt tells the linker the order which files should be linked
  • For more info, see the FAQs section of TMC

Credits