• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Decompilation of Ruby and Sapphire in C

someone's impatient

a way to do it which i doubt is the way done is to do it in vba :P search around in options
a more fun way of doing it would be like no$gba's debugger
maybe they even have an idb for it? lol probably not but hey

the way they probably do it is using one of these

IDA is definitely involved. Some of the function names in pokeruby match knizz's FireRed IDB names, and I suspect the first step in the decompiling part of the process is to use the Hexrays plugin to get some C pseudocode as a starting point. Also pokeruby targets multiple ROMs (both Ruby and Sapphire), so IDA would really help to find the symbol locations in the other binaries.
 
Yes, IDA was used to disassemble the ROM. There's a repository here with IDA's decompilation attempt of all of the functions, so you can get a feel for how the function goes before tackling it. I normally just look at the assembly code, because IDA's C output is almost unreadable.

I think about 28% of the ROM has been decompiled as of now. It's a slow process, but we're making steady progress. We're also trying to get the German version of Ruby to build correctly, and then eventually tackle the German Debug version. There is a lot of dead code and unused functions in Ruby, and some of these may have been used in the debug version.
 
Last edited:
Back
Top