PDA

View Full Version : Development: Reverse Engineering original Pokemon Red, difficulty


wiseguy12851
July 14th, 2010, 03:04 PM
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

D1Hazel
July 28th, 2010, 08:54 PM
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.

IIMarckus
July 29th, 2010, 04:41 PM
I am working on the same project (https://bitbucket.org/iimarckus/pokered/). 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.