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

[Other] Expanding flight positions on Emerald?

97
Posts
9
Years
    • Seen Nov 22, 2021
    Hello!

    So, after some digging, I found that adding flight positions has only been documented for FR. This is rather troublesome as I need to add more positions for Emerald, and can't find anything for that. Does anyone know? Thanks!
     
    794
    Posts
    10
    Years
  • Hello!

    So, after some digging, I found that adding flight positions has only been documented for FR. This is rather troublesome as I need to add more positions for Emerald, and can't find anything for that. Does anyone know? Thanks!

    Yeah, I do.
    First, you have to repoint the healing spots table that's located at 0859F53C. End is at 0859F5EC. (so select this area in a hex editor, paste it somewhere else and save the offset, also make sure you've got 8 bytes of free space before the place)

    It has 21(0x15) entries. The struct is as follows:
    Warp:
    Spoiler:

    The limiter is at 08122C88, so change it to the number of new entries.
    Another limiters is at 08122CC2. This time, change it to the number of your entries + 1, because of the way it works.

    Now, go to 0859F534 select 8 bytes and copy them before where you copied healing spots and repoint it.

    Okay, we're halfway through. The actual flying position table or rather table of fly locations is located at 085A1E3C.
    Now all entries in this table are in NAME value order, so it starts with Littleroot, then Oldale, etc. The table is enumerated like this:
    00 map bank .byte
    01 map number .byte
    02 healing spot ID .byte
    Healing spot ID is an ID from healing spot table. Also make sure you count from 0, so first entry has ID 0, second has ID 1, etc.

    Now, there's only one thing left, a function at 0x08123D58 which I named 'did player visit a map'. As an argument, it takes map name and returns:
    1 = not checked, can't fly there 2 = visited, can fly there

    3 = didn't visit, can't fly there
    4 = visited battle frontier
    And there's not much you can do here. You have to change the routine so it returns 2 or 3 on the map you want to be able to fly.

    Also, this just enables you to fly to custom map, it won't change anything in fly-map display.
    I hope you understood everything.
     
    97
    Posts
    9
    Years
    • Seen Nov 22, 2021
    Yeah, I do.
    First, you have to repoint the healing spots table that's located at 0859F53C. End is at 0859F5EC. (so select this area in a hex editor, paste it somewhere else and save the offset, also make sure you've got 8 bytes of free space before the place)

    It has 21(0x15) entries. The struct is as follows:
    Warp:
    Spoiler:

    The limiter is at 08122C88, so change it to the number of new entries.
    Another limiters is at 08122CC2. This time, change it to the number of your entries + 1, because of the way it works.

    Now, go to 0859F534 select 8 bytes and copy them before where you copied healing spots and repoint it.

    Okay, we're halfway through. The actual flying position table or rather table of fly locations is located at 085A1E3C.
    Now all entries in this table are in NAME value order, so it starts with Littleroot, then Oldale, etc. The table is enumerated like this:
    00 map bank .byte
    01 map number .byte
    02 healing spot ID .byte
    Healing spot ID is an ID from healing spot table. Also make sure you count from 0, so first entry has ID 0, second has ID 1, etc.

    Now, there's only one thing left, a function at 0x08123D58 which I named 'did player visit a map'. As an argument, it takes map name and returns:
    1 = not checked, can't fly there 2 = visited, can fly there

    3 = didn't visit, can't fly there
    4 = visited battle frontier
    And there's not much you can do here. You have to change the routine so it returns 2 or 3 on the map you want to be able to fly.

    Also, this just enables you to fly to custom map, it won't change anything in fly-map display.
    I hope you understood everything.

    Erm... 0859F53C isn't an offset. 0859F53 is. 0859F5C is. But what you put is one digit too long. Did you just type it wrong? :/
     
    Back
    Top