• 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: Reverse Engineering original Pokemon Red, difficulty

1
Posts
13
Years
  • Seen Jul 14, 2010
I am setting up a rather complex project, I am fully reverse engineering the original B&W pokemon red. Furthermore I'm breaking it apart back into assembly form in a collection of files much like how the project would have been written then, obviously not just on one file.

I'm stripping all the jumps, calls, and memory locations for the ROM and replacing them with more meaningful names and letting the compiler decide what the assigned hex values are and the position they'll be in

Also breaking up the function blocks, naming them, and heavily commenting throughout the project.

In the end it would appear much like I imagine how it was before they compiled it. My question now is I think I have run into a binary section of the ROM like where an image or sound might be because the opcodes (assembly codes) are garbage and don't make any sense at all.

I'm stuck at location 0x01AE, can anybody help me out
 
4
Posts
15
Years
  • Seen Sep 9, 2011
Your best bet is to ask the guys over at Sonic Retro how they did that when they made their Sonic 1 disassembly.

P.S. Good luck.
 
Last edited:

IIMarckus

J946@5488AA97464
402
Posts
16
Years
  • Seen Feb 21, 2024
I am working on the same project. Perhaps we could work together. Are you familiar with version control (Mercurial)? What assembler are you using?

Offset 0x1AE is indeed data—a list of pointers to map headers.

Personally, I think the best thing to do is focus on individual routines, following jumps and calls when disassembling, rather than going through the ROM from the first offset. This way it is more obvious what things do, and the resulting ASM is usable right away.
 
Back
Top