• 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.

Repointing Data past 0xFFFFFF?

  • 2
    Posts
    5
    Years
    • Seen Aug 26, 2018
    I've a pretty simple and specific question... how do you repoint data past 0xffffff when pointers only have 3 slots?

    I've ran into a couple of issues with that. Mainly with trying to repoint data installed from patches, or repointing tables and wanting them definitely out of the way (I'm still procrastinating on the healingplace and flight tables :\)

    I was just going to try work around it but I got Lukeegd's unofficial HG/SS Music patch, but it doesn't include all the songs I want. I had to choose Lukee's unofficial over Kanto Reloaded, because the song table and otherdata/ipatix sound mixer came seperately, while Kanto Reloaded's were bundled together, and I already had data at 0x01000000 (where kanto reloaded's offset goes) 'cos My rombase put it there

    (im hacking fire red btw)

    But now when I add songs I gotta point to tracks or something? but the sound mixer is at like, past 0x01300000 so... I can't ignore it anymore! I feel like it has something to do with the bit that denotes ram section?

    Can anyone help me with this? Thanks!
     
    Last edited:

    Doctor Breeb

    Wooper is pretty neat, I guess.
  • 11
    Posts
    5
    Years
    • Seen May 5, 2024
    I've heard that this works. I haven't tried it myself, but this is how the game interprets expanded space. So let's say you were inserting something at 0x800000, non-expanded space. The pointer would be 00 00 80 08. Now to the expanded space. Let's say you were using 0x01800000. The pointer would be 00 00 80 09. See it now? 08 is for the first 16mb. 09 is for the expanded space. That doesn't mean the pointer is something like 00 00 80 01 08. That's too long. Also for the sound mixer. You said it was past 0x01300000. The pointer to 0x01300000 would be 00 00 30 09. To conclude, if it's in expanded space, forget the 01 exists and use the 300000 for example. Then when using it for a pointer, use 09 instead of 08. 00 00 30 09. I hope I was helpful.
     
  • 61
    Posts
    8
    Years
    Doctor Breeb is right, and that's why addresses in the rom are called "offsets", they are offsets from RAM addresses, like 0x01300000 is an offset from the ram address 0x08000000 (it's where the rom memory starts in the GBA RAM).

    When you do 0x08000000 + 0x01300000, you get the address 0x9300000 which is then pointed by 00 00 30 09.
     
    Back
    Top