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

  • 1
    Posts
    14
    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
     
    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