ROM Hack Decompiling/Translating Code from A GBA or NDS Rom (or GC/Wii Iso)


New Member
Dec 13, 2017
I've always wanted to learn about programming games and how gimmicks and certain mechanics are coded into roms. For now, I've set my sights on Sonic Advance 2 & 3 coz I like how Sonic's Air Dash functions and the partner system in SA3. The thing is I want to decompile SA2 into source code or something that I can translate into another programming language with, just so I know how they did it and what they've used and so I can use it as base concepts for other programming projects (and share the development). I'm not sure how to go about it.
I know there's hex editors and stuff (haven't gotten fully used to them yet), but tbh using that looks quite daunting and confuses me. Can anyone please help out?

Sidenote: My next target is Sonic Heroes, which is why I'm also interested in decompiling Gamecube ISOs. I just like tag systems and gimmicks like Triangle Jump, Rocket Accel & the pole jump the Speed characters do in the game.
Hope that wasn't too long of a thread


Editorial Team
Nov 21, 2005
United Kingdom
If you have seen the likes of the DS, 3ds, psp, almost anything using optical media then the thing where they break it into individual files does not apply on the GBA or most earlier systems.

You can find the binary of GBA games easily enough but beyond that you are going to have to take a more active approach. There are no things you can feed a GBA ROM into and end up with a useful disassembly, never mind something more high level (that barely exists on the PC for most low level languages).

There is a guide to many things the GBA does

It goes into some depth with graphics, text and multimedia which you might be able to only skim (most people wanting to hack games want to translate them).

Equally you don't have to go programming wise if you don't want to, indeed doing such things with a disassembler technically means you can't use the results to make your new game. If you want to do that completely legit like then you probably want to observe the game instead -- record the footage, jump, see how many frames it takes to reach full height and how many pixels that is, you can then recreate this feeling in your game). This is tedious and prone to errors in some of the more complex or hidden systems (ever had a game tell you "luck has a subtle effect on everything you do in the world") but can get you places very quickly. On the flip side going in via code might take a fair bit of learning to be able to do even halfway reliably in random games -- you can learn basic graphics and text in a few hours but full bore mechanics is a harder thing to start to make headway in, beyond dumping stats tables in RPGs anyway.
  • Like
Reactions: Miles_Quickster
General chit-chat
Help Users
  • No one is chatting at the moment.
    K3N1 @ K3N1: