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

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:

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!