Skip to content

Advance Map

    Advance Map is the most used map editing tool for GBA games.

    Ok guys, I don’t want to create another tutorial on Advance Map, you can easily find one by searching the net.

    I personally like link12552’s one, because it’s very complete :) , the link is below:
    Below I will mirror it given that the original one doesn’t have working images.

    • Creating maps
    • Areas
    • Movement
    • Events
      • Warps
      • Sprites
      • Scripts
      • Signposts
      • Wild Pokémon
      • Map connections
      • Deleting maps
      • Tile events
    • Miscellaneous
      • Creating bridges
      • Disappearing/Reappearing sprites
      • Common problems


    Creating maps

    1. Open your rom

    2. Under “File” goto “Map” then “New map”

    3. Fill out the required information


    • Map’s name What you wish to name your map
    • Width & Height:
    Place typeUsual widthUsual height

    Areas are the places that make up the world in your game. They can be forested, mountained, towns, cities, deserts or anything else you can come up with. They are literally what makes a game interesting. Sometimes though people can make locations that really turn you off from a game.

    Considering the two forest areas above, which one looks better? The right one of course!
    While the right gives a more natural feel, the left just sort of hurts your eyes.
    A few tips when making areas are:

    • Avoid placing objects in straight lines
    • Ponds and lakes aren’t square
    • Neither are naturally formed patches of vegetation
    • Trees tend to not grow in perfect columns

    Known in Advance Map as “Movement Permissions”, this is what is going to tell the game when and where players can or cannot move. This is easily editable through the movement permission tab.
    Some of the basic movement types are:

    Movement codeCorresponding movement
    CAble to move through
    1Unable to move through
    4Surf required (water)
    DJump or one way movement (small hill)
    10Can only be entered or left by going through 0 (change in elevation)
    0Stairs and default

    Events are one of the most important things when making a game, but what exactly are they?
    I define an event as something that changes or has the potential to change and display other events or information.

    The types of events are:

    Event typeEvent characteristics
    WarpsSends the character to other maps
    SignpostsStandard, stationary, request event
    PersonMovable, changeable, request event
    ScriptStationary, changeable, collision event

    The number of events can be changed by adding or subtracting from the number of events. To add new events increase the event type by however many you want to add. The same can be done for removing events.


    Warps, in a simpler term, are blocks that when stepped on will send your character to another map.
    They are set up as follows:

    • No: This is the individual selected Warps ID number
    • Pos (X/Y): The location where the selected warp exists
    • Unknown: For doors and caves unknown: 3, for ladders unknown: 4
    • To warp number: Transfer warps ID number
    • Map bank: Transfer map’s location bank
    • Map: Transfer map’s number
    Sprites (Person Event)

    What exactly is a sprite?
    A sprite can be many things. It can be a blazing fire, a boulder blocking the way, a sign, just a person, or almost anything else you can come up with! In other words, a sprite is an animated, moving, event.
    Sprites unlike other events contain many properties. These are all needed to tell the game how to display the sprite.

    Person Event NoThe current sprites ID number
    Picture numberThe overworld that will be shown for the sprite (the animated image)
    Pos (X/Y)The spites x y coordinates
    Movement typeThe pattern the sprite will follow (move up & down, left & right, etc.)
    MovementIn my opinion best to just leave at 00
    Trainer & view radiusIf the sprite is a Pokemon trainer, and if so how far they can see
    Script offsetThe location of the script that will run when the sprite is talked to
    Person IDUsed to change the visibility of the sprites with the corresponding flag

    OK, some of you may be saying to yourselves, “I thought this was an Advance Map tutorial, so what does scripting have to do with this?”.
    Yes, true; this tutorial is for advance map, but one type of event is a script.
    Scripts are activated when stepped on.

    UnknownStays at 0003 98% of the time
    Var numberThe script’s variable ID, used when removing scripts
    Script offsetThe location of the actual code behind the event

    A basic talking script might look like this:

    #org 0x17184A
    msgbox 0x81A303B MSG_SIGN '"It's impossible to SURF between th..."
    ' Strings
    #org 0x1A303B
    = It's impossible to SURF between the\nislands around these parts.\pThe tides are too fast and\ntreacherous.

    In this script when stepped on, a box will appear saying, “It's impossible to SURF between the islands ...
    The offset $17184A would be put in the offset property of the script.


    A signpost is the most generic of the events. It’s usually just used as its name implies, as a signpost, although a signpost can also be used as a hidden item (or secret base in ruby, sapphire, emerald)!

    Talking levelIf the sign can be read from top, bottom, left, right, or in any direction
    Signpost typeIf it’s a script hidden item or secret base (RSE only)
    *Item IDThe type of item found, if in hidden item mode
    AmountHow many items hidden
    Wild Pokémon

    Anyone who has ever played a Pokémon game knows about wild Pokemon. The game practically revolves around them, but how exactly are they set up?

    In the area above, how would you catch wild Pokémon?

    • Walking in the grass
    • By surfing on the water
    • By fishing

    The Pokemon seen on each map can be edited through the wild Pokemon tab.

    TypeThe current location you are editing
    Encounter ratioThe chance of encountering a wild Pokemon out of 255
    Pokemon#Set up as the lowest level possible, the highest, and the Pokemon’s name
    ExpandDisplays form below, used for adding or deleting encounter locations
    Map connections

    Map connections are used to create smooth transitions from one map to another automatically during game play.
    Clicking the arrows will take you to the connected map.

    • Direction: the current connection’s direction
    • Offset: how far to position the map relative to the middle
    Offset set to 1, moves the connection map over 1 space
    • Mab bank and no: the transfer map’s map bank and number
    Deleting maps

    Once in a while you may come across time when you want to completely remove a map from your game. Ordinarily this can’t be done, but this is how.
    Before continuing make sure you back up your rom!
    First of all there are two ways this can be done. The safe way or the complete way depending on the intention.
    Safe way:
    Just reuse the map! Turn it into something completely different instead of completely removing it. All that really has to be done is change the size and tile-sets, and then your ready to recycle.
    Complete way:
    Sometimes a map can just go bad for one of many reasons, and the best thing to do is completely obliterate it! This method, although, can be pretty messy. For this to work the map you want to delete must be at the end of the bank.


    If the map is not at the end of the bank, save all of the good maps in the same bank somewhere. Then delete all the maps in the bank. When your done insert the good maps back into your game.
    For this example 13.1 is the last map in bank 13 so this will work.
    Open the map you’re going to delete.
    Then go to file> map> insert map
    Click “Map bank header”
    Scroll down to the map’s bank and in the text box type -1
    Press “Accept changes”

    Finally replace the map with itself.

    Many errors will show up, this is normal. Just keep pressing Ok. Finally if all goes well, the map will have been removed from the game.

    Tile events

    Tiles, like most other things, are able to be interacted with in the game. Examples of which include: the tall grass, the PC and even warps. Tile events are edited in the first text-box of the Behavior byte:

    People ask me a lot why a warp on their map isn’t working and it usually comes back to a tile issue. A warp will not run if the tile it’s on does not have the behavior byte 61 00.
    If you look, the byte 61 means use warp.
    Some Behavior Bytes:

    00 ???
    01 ???
    02 Grass animation (Pokémon)
    03 High grass animation
    04 ???
    05 ???
    06 Sand foot prints (with sandheaps)
    07 Animation micro grass
    08 Bridge with ground underneath
    09 ???
    0A ???
    0B ???
    0C ???
    0D Warp into pyramid. Floor 51
    0E ???
    0F ???
    10 Reflection on water with waves trailing
    11 ???
    12 ???
    13 Waterfall/with falling down
    14 ???
    15 Jump with mach bike, splashing water
    16 Reflection on water, splashing water, waves
    17 Lasting water on feet
    18 ???
    19 ???
    1A Reflection (Background byte=20)
    1B Water on feet
    1C Water on feet + arrow down
    1D ???
    1E ???
    1F ???
    20 Slide like on ice
    21 Foot prints
    22 Diving animation bubbles
    23 ???
    24 ???
    25 Sand foot prints
    26 ???
    27 ???
    28 Hero halfway underwater
    29 ???
    2A Diving animation bubbles
    2B ???
    2C ???
    2D ???
    2E ???
    2F ???
    61 Use warp
    69 Use door warp
    70 Bridge with water underneath
    83 PC
    85 World Map
    There's a lot more just can't list them all here
    Creating Bridges

    Some people have a lot of trouble when it comes to making bridges, so here is an explanation.
    A bridges movement permission is 3C. There must be 10‘s though, at the ends, to show the bridges’ elevation.

    The next part is what usually confuses people. The actual bridge tile’s behavior has to be set to 08 00 for overland brdiges or 70 00 for bridges over water.

    Over land bridge example
    Disappearing/Reappearing Sprites

    At some point in your game you’re going to want to make a person leave the map right? Well here’s how. Remember is sprites I briefly mentioned a sprites person ID and that was used to make a sprite disappear or reappear.

    Set the sprite’s Person ID to a flag in the game (i.e. flag 0x250 would be ID# 0250)
    When the corresponding flag is set using the setflag comand the sprite will disappear. Releasing the flag will make the sprite reappear
    The below code would make any sprite with the person ID 0250 not be displayed. Code:

    #org 0x800000
    setflag 0x250
    Common problems

    There are many issues people might have when making a map. So here is a list of some common ones and their solutions.

    • AdvanceMap Freezes when ever I load a rom is this a problem?
      AdvanceMap isn’t frozen hopefully, it just sometimes takes a while to load.
    • My warp isn’t working what’s wrong?
      In order for a warp to work, it has to be on a tile that has the behavior set to use some version of warp (61 00) see tile events.
    • My map connections aren’t working what’s wrong?
      Make sure the connection has the correct map bank and number. Also both maps should have connections with each other. Open your map and the connection manager and press the arrow in the direction to see if it works.
    • My map’s border in game is using different tiles then the ones i selected. How do i fix this?
      This is a tile sharing issue. Refrain from using tiles in the second part of your tile-set as borders. Try using the black tile in the top left corner or a tree as your border.
    • I get an error whenever loading this one map. what should I do?
      If you really think you can’t fix it, try deleting the map the complete way.
    • My game isn’t working!
      This is usually not because of AdvanceMap,but in the folder with the rom there should be a file with the same name as your rom *.bak. Change the extension to *.gba. Also you should have been backing up your game regularly!
    Works withR S E FR LG
    Exit mobile version