• 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!
  • It's time to vote for your favorite Pokémon Battle Revolution protagonist in our new weekly protagonist poll! Click here to cast your vote and let us know which PBR protagonist you like most.
  • 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.

[ASM & Hex] Hex editing in pokemon GB (French Yellow) - Pointing to a different sprite or text.

  • 1
    Posts
    3
    Years
    • Seen May 21, 2022
    Hi everyone !
    I'm working on a small hack for basically just myself. This hack is for the French version of Pokemon Yellow (French so I can't really work with disassembly, plus I don't really want to dig into that aspect of romhacking yet), and I intend to modify only 2 things : some sprites, and some texts. I've already replaced the player's backsprite and a few texts via hex editing, and it works perfectly, but I run into an issue that I can't seem to solve.

    Some of my texts are longer than the originals.
    Some of my compressed sprites are bigger than the originals.

    For example :
    In the first text bank, at offset x98000, there is a piece of text about the Card Key. I've decided that it's now called the Golden Card Key. So my text is now 7 bytes (GOLDEN_) too long to fit in its area of the ROM, so I wanna move the whole text to the end of the same text bank, at offset x9B16A. But now, assuming that I did nothing more, when I use the Card Key, the text displayed would point to the now obsolete x98000 instead of the new x9B16A. In order to solve that, I would need to tell some script somewhere that it should look for x9B16A instead of x98000. Similarly, if I edit a sprite and move it somewhere else, the address in memory will be false too, and I'll end up with broken sprites.

    Now here's the part that I don't know how to do :
    How do I find the part of the ROM that's pointing on x98000 to change it ? I tried to do a hex search on "098000" with no result. So my supposition is that the pointer for x98000 isn't written "098000" as is in the ROM. Is there a way I could solve my issue and identify my pointers so that I can edit them ?

    I don't care if it's impractical, as long as it is feasible. Any help is appreciated :)
     
    Back
    Top