Klofkac
He's back!
- 336
- Posts
- 15
- Years
- Sharpedo Bluff
- Seen Nov 7, 2013
NOTE: This tutorial is not about how to add a custom first-person-view location picture. This is about how to change associations between map names and their pictures.
NOTE2: This is my first tutorial. And sorry for my bad english.
At first, some theory and purpose of this tutorial
If you have some experience with hacking, you surely know that a Pokémon game contains a certain amount of "map names" that can be used. But you should know that a "map name" is not only a text string, every "map name" is associated with some data, for example the location on the world map, and also the first-person-view location pictute that shows up while entering a map (it's a feature of Fire Red and Leaf Green games).
"image removed""image removed"
As I've just said, some map names are associated with a picture. You can try it: Open Fire Red rom in Advance Map, open Pallet Town map (3.0), go to map header and change the map name into, for example, Viridian forest (choose it from the list, do not rewrite the text.). Save it. Now open the rom in Emulator, start the game and leave your home. When you enter the Pallet town map, the picture of Viridian forest shows up. You cannot influence it by changing anything in map header. But you can influence it by hex editing some data in rom, and it's what this tutorial is about: How to change or remove associations between map names and the pictures.
But why we want to do such thing? I've played some hacks (for example Shiny Gold) that had problems with it: wrong pictures were showing up when entering some maps, for example Tanoby Chamber picture showed up when entering some routes in Shiny Gold and it was quite annoying.
Now the tutorial itself
The only thing you need is a hex editor (and Advance map is recommended).
First of all, open your Fire Red rom (English version) in hex editor and go to offset 0x43E9E8 (where the associations data are stored). You should see something like this:
"image removed"
Now let's explain the data. Every association consists of 16 bytes (4 doublewords) One association is marked with red color. First four bytes are association data and rest 12 bytes are 3 pointers to a picture data (picture itself and palletes).
The first byte is the number of the map name the picture is associated with (for example 7E - This is VIRIDIAN FOREST - as you can see in the table below). The second byte (01) is the way of the transition from the picture to the map (00 - like when you enter a cave, 01 - smooth transition). It's hard to explain it for me, so just try it yourself. Other values are undefined, but if you set any other value, the picture doesn't show up at all.
I don't know yet what the third byte means, it needs more research.
And finally the fourth byte is ALWAYS 08.
Next 12 bytes are pointers to picture data and pallettes, you should work with them as unit.
Table of map names:
Map names marked with "+" have association with a picture.
List of map pictures in FR:
So now you should know how to work with it and try yourself to change map pictures.
If you want to remove some associations (surely it's good to remove Tanoby Chamber picture from last 7 map names), I don't recommend to rewrite it by zeros, but you should change the first byte to C5 or change the second byte to any other value than 00 or 01.
That's all, thanks for reading and I hope this small tutorial helps you a bit!
Finally, a practical example of use
I've mentioned the game Pokémon Shiny Gold made by Zel in this tutorial because it's great game but it has a problem with these location pictures. I fixed it and made a small ips patch - it's attached. You can use it if you want - it makes the great game even greater by fixing this bug!
NOTE2: This is my first tutorial. And sorry for my bad english.
At first, some theory and purpose of this tutorial
If you have some experience with hacking, you surely know that a Pokémon game contains a certain amount of "map names" that can be used. But you should know that a "map name" is not only a text string, every "map name" is associated with some data, for example the location on the world map, and also the first-person-view location pictute that shows up while entering a map (it's a feature of Fire Red and Leaf Green games).
"image removed""image removed"
As I've just said, some map names are associated with a picture. You can try it: Open Fire Red rom in Advance Map, open Pallet Town map (3.0), go to map header and change the map name into, for example, Viridian forest (choose it from the list, do not rewrite the text.). Save it. Now open the rom in Emulator, start the game and leave your home. When you enter the Pallet town map, the picture of Viridian forest shows up. You cannot influence it by changing anything in map header. But you can influence it by hex editing some data in rom, and it's what this tutorial is about: How to change or remove associations between map names and the pictures.
But why we want to do such thing? I've played some hacks (for example Shiny Gold) that had problems with it: wrong pictures were showing up when entering some maps, for example Tanoby Chamber picture showed up when entering some routes in Shiny Gold and it was quite annoying.
Now the tutorial itself
The only thing you need is a hex editor (and Advance map is recommended).
First of all, open your Fire Red rom (English version) in hex editor and go to offset 0x43E9E8 (where the associations data are stored). You should see something like this:
"image removed"
Now let's explain the data. Every association consists of 16 bytes (4 doublewords) One association is marked with red color. First four bytes are association data and rest 12 bytes are 3 pointers to a picture data (picture itself and palletes).
The first byte is the number of the map name the picture is associated with (for example 7E - This is VIRIDIAN FOREST - as you can see in the table below). The second byte (01) is the way of the transition from the picture to the map (00 - like when you enter a cave, 01 - smooth transition). It's hard to explain it for me, so just try it yourself. Other values are undefined, but if you set any other value, the picture doesn't show up at all.
I don't know yet what the third byte means, it needs more research.
And finally the fourth byte is ALWAYS 08.
Next 12 bytes are pointers to picture data and pallettes, you should work with them as unit.
Table of map names:
Spoiler:
58 PALLET TOWN
59 VIRIDIAN CITY
5A PEWTER CITY
5B CERULEAN CITY
5C LAVENDER TOWN
5D VERMILION CITY
5E CELADON CITY
5F FUCHSIA CITY
60 CINNABAR ISLAND
61 INDIGO PLATEAU
62 SAFFRON CITY
63 ROUTE 4
64 ROUTE 10
65 ROUTE 1
66 ROUTE 2
67 ROUTE 3
68 ROUTE 4
69 ROUTE 5
6A ROUTE 6
6B ROUTE 7
6C ROUTE 8
6D ROUTE 9
6E ROUTE 10
6F ROUTE 11
70 ROUTE 12
71 ROUTE 13
72 ROUTE 14
73 ROUTE 15
74 ROUTE 16
75 ROUTE 17
76 ROUTE 18
77 ROUTE 19
78 ROUTE 20
79 ROUTE 21
7A ROUTE 22
7B ROUTE 23
7C ROUTE 24
7D ROUTE 25
7E+ VIRIDIAN FOREST
7F+ MT. MOON
80 S.S. ANNE
81 UNDERGROUND PATH
82 UNDERGROUND PATH
83+ DIGLETT'S CAVE
84+ VICTORY ROAD
85+ ROCKET HIDEOUT
86+ SILPH CO.
87+ POKéMON MANSION
88+ SAFARI ZONE
89 POKéMON LEAGUE
8A+ ROCK TUNNEL
8B+ SEAFOAM ISLANDS
8C+ POKéMON TOWER
8D+ CERULEAN CAVE
8E+ POWER PLANT
8F ONE ISLAND
90 TWO ISLAND
91 THREE ISLAND
92 FOUR ISLAND
93 FIVE ISLAND
94 SEVEN ISLAND
95 SIX ISLAND
96 KINDLE ROAD
97 TREASURE BEACH
98 CAPE BRINK
99 BOND BRIDGE
9A THREE ISLE PORT
9B SEVII ISLE 6
9C SEVII ISLE 7
9D SEVII ISLE 8
9E SEVII ISLE 9
9F RESORT GORGEOUS
A0 WATER LABYRINTH
A1 FIVE ISLE MEADOW
A2 MEMORIAL PILLAR
A3 OUTCAST ISLAND
A4 GREEN PATH
A5 WATER PATH
A6 RUIN VALLEY
A7 TRAINER TOWER
A8 CANYON ENTRANCE
A9 SEVAULT CANYON
AA TANOBY RUINS
AB SEVII ISLE 22
AC SEVII ISLE 23
AD SEVII ISLE 24
AE NAVEL ROCK
AF+ MT. EMBER
B0+ BERRY FOREST
B1+ ICEFALL CAVE
B2+ ROCKET WAREHOUSE
B3 TRAINER TOWER
B4+ DOTTED HOLE
B5+ LOST CAVE
B6+ PATTERN BUSH
B7+ ALTERING CAVE
B8 TANOBY CHAMBERS
B9 THREE ISLE PATH
BA TANOBY KEY
BB BIRTH ISLAND
BC+ MONEAN CHAMBER
BD+ LIPTOO CHAMBER
BE+ WEEPTH CHAMBER
BF+ DILFORD CHAMBER
C0+ SCUFIB CHAMBER
C1+ RIXY CHAMBER
C2+ VIAPOIS CHAMBER
C3 EMBER SPA
C4 CELADON DEPT.
59 VIRIDIAN CITY
5A PEWTER CITY
5B CERULEAN CITY
5C LAVENDER TOWN
5D VERMILION CITY
5E CELADON CITY
5F FUCHSIA CITY
60 CINNABAR ISLAND
61 INDIGO PLATEAU
62 SAFFRON CITY
63 ROUTE 4
64 ROUTE 10
65 ROUTE 1
66 ROUTE 2
67 ROUTE 3
68 ROUTE 4
69 ROUTE 5
6A ROUTE 6
6B ROUTE 7
6C ROUTE 8
6D ROUTE 9
6E ROUTE 10
6F ROUTE 11
70 ROUTE 12
71 ROUTE 13
72 ROUTE 14
73 ROUTE 15
74 ROUTE 16
75 ROUTE 17
76 ROUTE 18
77 ROUTE 19
78 ROUTE 20
79 ROUTE 21
7A ROUTE 22
7B ROUTE 23
7C ROUTE 24
7D ROUTE 25
7E+ VIRIDIAN FOREST
7F+ MT. MOON
80 S.S. ANNE
81 UNDERGROUND PATH
82 UNDERGROUND PATH
83+ DIGLETT'S CAVE
84+ VICTORY ROAD
85+ ROCKET HIDEOUT
86+ SILPH CO.
87+ POKéMON MANSION
88+ SAFARI ZONE
89 POKéMON LEAGUE
8A+ ROCK TUNNEL
8B+ SEAFOAM ISLANDS
8C+ POKéMON TOWER
8D+ CERULEAN CAVE
8E+ POWER PLANT
8F ONE ISLAND
90 TWO ISLAND
91 THREE ISLAND
92 FOUR ISLAND
93 FIVE ISLAND
94 SEVEN ISLAND
95 SIX ISLAND
96 KINDLE ROAD
97 TREASURE BEACH
98 CAPE BRINK
99 BOND BRIDGE
9A THREE ISLE PORT
9B SEVII ISLE 6
9C SEVII ISLE 7
9D SEVII ISLE 8
9E SEVII ISLE 9
9F RESORT GORGEOUS
A0 WATER LABYRINTH
A1 FIVE ISLE MEADOW
A2 MEMORIAL PILLAR
A3 OUTCAST ISLAND
A4 GREEN PATH
A5 WATER PATH
A6 RUIN VALLEY
A7 TRAINER TOWER
A8 CANYON ENTRANCE
A9 SEVAULT CANYON
AA TANOBY RUINS
AB SEVII ISLE 22
AC SEVII ISLE 23
AD SEVII ISLE 24
AE NAVEL ROCK
AF+ MT. EMBER
B0+ BERRY FOREST
B1+ ICEFALL CAVE
B2+ ROCKET WAREHOUSE
B3 TRAINER TOWER
B4+ DOTTED HOLE
B5+ LOST CAVE
B6+ PATTERN BUSH
B7+ ALTERING CAVE
B8 TANOBY CHAMBERS
B9 THREE ISLE PATH
BA TANOBY KEY
BB BIRTH ISLAND
BC+ MONEAN CHAMBER
BD+ LIPTOO CHAMBER
BE+ WEEPTH CHAMBER
BF+ DILFORD CHAMBER
C0+ SCUFIB CHAMBER
C1+ RIXY CHAMBER
C2+ VIAPOIS CHAMBER
C3 EMBER SPA
C4 CELADON DEPT.
Map names marked with "+" have association with a picture.
List of map pictures in FR:
Spoiler:
"image removed"
So now you should know how to work with it and try yourself to change map pictures.
If you want to remove some associations (surely it's good to remove Tanoby Chamber picture from last 7 map names), I don't recommend to rewrite it by zeros, but you should change the first byte to C5 or change the second byte to any other value than 00 or 01.
That's all, thanks for reading and I hope this small tutorial helps you a bit!
Finally, a practical example of use
I've mentioned the game Pokémon Shiny Gold made by Zel in this tutorial because it's great game but it has a problem with these location pictures. I fixed it and made a small ips patch - it's attached. You can use it if you want - it makes the great game even greater by fixing this bug!
Last edited by a moderator: