• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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

Touched

Resident ASMAGICIAN
625
Posts
9
Years
  • Age 122
  • Seen Feb 1, 2018
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.
 

camthesaxman

reverse engineer of teh pokeymanz
23
Posts
7
Years
  • Age 28
  • Seen Feb 16, 2018
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