Sierraffinity
Desperately trying to retire from ROM hacking
- 1,069
- Posts
- 17
- Years
- Age 28
- she/her
- Somewhere the rains of Africa can be blessed
- Seen Jan 21, 2025
I feel that it's pretty safe to say that we don't have much hacking information done on the PokéNav. I mean, some people just put it into a hack without really changing anything.
I, for one, have started to hack the little information box that appears when you scroll over a place in the map on Zoom mode.
I found a little table located at 0x623118 that controls this, although how so, I don't really know. The format is like this:
[map name ID] [00] [01 if scrolled over second half] [00] [pointer to data]
The routines that load the table start at 0x1ccd34 and 0x1ccd70.
There is a limiter byte at 0x1ccd40 that makes the first routine not work if r4 is over 0x15. The number is not the map name ID, however, so I assume that it's to make sure it passes through the routine 0x15 times, each time increasing by 1. After all, this is the routine that loads at the load of the map. I believe this routine is the checker to see which map names have a mini-map and which do not; however, I may be wrong.
The second routine, however, I know a bit more about. This one loads the map name byte and checks it against the ones in the table. It also does checks to see if it's the second half of the map name. It also has a limiter byte like the one above, this one at 0x1ccd8c. This is also, supposedly, to check how much times it's gone through the routine. After that, though, I lose track of what it does.
This is just one part of the PokéNav, though; feel free to help with any part of it.
I, for one, have started to hack the little information box that appears when you scroll over a place in the map on Zoom mode.
I found a little table located at 0x623118 that controls this, although how so, I don't really know. The format is like this:
[map name ID] [00] [01 if scrolled over second half] [00] [pointer to data]
The routines that load the table start at 0x1ccd34 and 0x1ccd70.
There is a limiter byte at 0x1ccd40 that makes the first routine not work if r4 is over 0x15. The number is not the map name ID, however, so I assume that it's to make sure it passes through the routine 0x15 times, each time increasing by 1. After all, this is the routine that loads at the load of the map. I believe this routine is the checker to see which map names have a mini-map and which do not; however, I may be wrong.
The second routine, however, I know a bit more about. This one loads the map name byte and checks it against the ones in the table. It also does checks to see if it's the second half of the map name. It also has a limiter byte like the one above, this one at 0x1ccd8c. This is also, supposedly, to check how much times it's gone through the routine. After that, though, I lose track of what it does.
This is just one part of the PokéNav, though; feel free to help with any part of it.