Advertiser Content

luuma

searching for Meaning, offering HA numel

Age 22
Male
Stage Left
Seen November 8th, 2018
Posted August 16th, 2018
157 posts
5.9 Years
If you're looking for a tutorial on changing the map picture, I can't help, sorry!

This is just a tutorial for all the possibilities of using advance map 1.92

(cool tip with am1.92: you can also hold ctrl for a copy paste feature while editing normal maps, and ctrl + g to get some additional options with the map header.)


1) changing where things appear over the world map when they're in a specific route.
Spoiler:

When you walk into a map, it shows a little text box that tells you the map's name. This is read from the map's header. You can change the text box to a different value, or a different text entry, by clicking on the header tab and adjusting it using the "name" drop down menu.



You can switch the mode of the header tab using ctrl + h to do plenty of other fun stuff! But that's for another day.
Now, while you are standing in a particular map, its "name" has a little bit of data associated with it that tells all the world maps how to display your location. It also tells the in-game pokédex's "area" feature to display a certain route as the habitat of any wild pokemon in that area.

You can find this by clicking on the world map editor icon, and then clicking on the list of names and scrolling down to the one you want to change.Then you can edit the two bits of data that affect the displayed hoenn location of anything in a map with the same name.

This is the position of the top left corner of the "box" you're gonna make the player's location appear in (x then y), and the size of this box (x then y).



It's also possible for two different names to have the same data for these two bytes, independent of one another. Naturally they'll show you appearing in the same location. For example, while you're in Granite Cave, the world map still shows you on route 106, even though route 106 has the same values!

Remember, the POKéNAV's match call points to a certain route "name". This doesn't change when you move the trainer event to a different map. You'll have to find the data in the rom and change it!



2) Changing what a block on the world map shows when your cursor is over it.

Spoiler:

It's important to make a distinction here. The NAME of a map has some bytes that say where things mapped inside it show up on the world map,
But there's a second, completely separate set of values.

The world map ITSELF has a grid of values that tells ITSELF what value to display when any one of its blocks is hovered over. I'll call it the displaying map. This is a 40x20 set of bytes in the game's code that tell it what to display when any one block the map is under your cursor. Most of these blocks have the value d5 (don't display anything).

Advance map also lets you edit this. just click any block on your picture of the world map and change the value it's displaying, as highlighted. This solely changes what shows up when you look at the town map or fly somewhere. Nothing else.



I'll try and illustrate how this differs from section 1 so we're clear: you can make it so that when you stand in route 103, the game displays your sprite standing in the top right corner of the map (from the map name), and the game shows "route 103" when you hover over the BOTTOM LEFT corner of the map (from the displaying map). The data for each is completely separate!

The map picture is also separate. I could make the whole thing black and still see the value of route 103 when I hover over its location.



3) Making it possible to fly to the center of most overworld routes.
Spoiler:

When you pass through a town in gen 3, there's always a little script that serves little purpose other than to set its "flying" flag. This makes it possible to fly to the route. for example, this script for fortree uses the "setflag" command to "put a check in the box" marked flag number 87a. If you look on the world map, that corresponds to a value called flying/display flag, which in turn corresponds to a map and (sometimes) an x/y location.



The data here for fortree is 004/07 0004/2400/0800
corresponding to the offset of fortree's map (it's map 0.04, you can see it in earlier screenshots)/ then the offset + 3 (don't ask why, I don't know either. This is only true for cities)
then: offset of map again(0.04)/X coordinate of position you appear in when you fly there/Y coordinate of position you appear in when you fly there.
All this data is tied to the map's "name", but no matter whether the map of fortree has the name "fortree", selecting this specific name will always fly you to the fortree map.

So as long as flag number 87a is checked, when you try to fly to a block marked "fortree" on the world map, you will be transported to map 0.4, at the position 36 points along the x direction (that's 24 converted from hexadecimal to decimal) and 8 points along the y direction. Lovely! You can't change this data in the world map editor but you can change the x and y position of the place you fly to in the "events" section of your map. Just select "flying position".





Wait a second... if I click on route, say, 103, it seems to have its own info for flying position! it says "001200", or the hex value for 18, just like route 103 is map number 0.18 But the flying flag is set to FFFF... What if I changed it to the same value as fortree?

Well, turns out that doing this would mean that once you've visited Fortree, you can fly to route 103 by selecting it on the worldmap. Other cities have specific flags too! I could feasibly make it so that once I reached Petalburg I could fly to route 103, by changing the value from ffff to 0876.

Another interesting value is 0000. This makes it so that any blocks with that name on the world map won't display a value when they're hovered over at all.

So let's try flying to the route in game. change the flag and select the route off the worldmap. As usual, if you don't have a specific location, the game loads you in dead center. Which turns out to be bang in the middle of the sea!



On some routes you're just fine. on others, you might fly straight into a wall, or halfway up a mountain. But you have Advance map! You can change that! Go forth, and have fun.
Play Altered Emerald here!

Thanks to DizzyEgg and the EBEU team for the battle engine, features, and dynamic expansion, lu-ho for a-map, gamer2020 for pge, Microsoft Windows for Task Manager, about 5 different hex editors, Chaos rush for sprites and an animation disable tutorial, Spherical Ice for several excellent asm routines, Neon Skylar for Pokemon data past gen 3, YAPE while it lasted, Scizz, Knizz, darthatron's numerous tools, hackmew, Chronosplit and yall for playing.

Altered Emerald is off on break for a bit now. This patch is looking really nice and polished, so it's staying up for a while.
Online now
Posted 2 Days Ago
299 posts
11.4 Years
First, thanks for the tutorial think this will be helpful to people since this is a not well-documented aspect of ROM hacking

Second, do you know how to change which world map opens up when using fly in Fire Red, since there are 4 maps. I moved most of the flying locations to the second map. And when using fly from the locations that were originally on the first map (but now on the second) the first world map still shows up. Is there any way to change this?

My worldmap in advancemap currently looks like this:
World Map Editing.png
Non-binary
Seen April 26th, 2019
Posted July 28th, 2018
1 posts
3.3 Years
I have the same question as kalerie. I inserted some custom maps in Fire Red, which somehow became assigned as Sevii maps. These are assigned a purple colour in the world map editor, and even if you position them somewhere in Kanto, when you open your Town Map, it opens the right coordinates, but on the Sevii map. Any way to change whether or not a map is a 'Sevii map'?
Online now
Posted 2 Days Ago
299 posts
11.4 Years
I have the same question as kalerie. I inserted some custom maps in Fire Red, which somehow became assigned as Sevii maps. These are assigned a purple colour in the world map editor, and even if you position them somewhere in Kanto, when you open your Town Map, it opens the right coordinates, but on the Sevii map. Any way to change whether or not a map is a 'Sevii map'?
Check this tutorial: http://sfc.pokefans.net/lesson.php?id=19
Advertiser Content