• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

G/S/C Map Connections With Johtomap

hinkage

Everyone currently in an argument with this member
386
Posts
13
Years
    • Seen yesterday
    ***Yes, there ARE formulas for map connections, but they're in German, and I can't figure them out myself, cause the translator is inaccurate (the equations he gives in no way could ever add up).
    This tutorial is for people who want easy help.***

    First off, you should know what map connections do: They connect one map to another.

    In Gen III, this is rather simple. Especially with the new 2011 AdvanceMap, where you can just drag
    your map into the proper position.

    In Generations I and II, it is not that easy. But this tutorial isn't FOR Gen I. It's for Gen II.
    And in Gen II, we have Johtomap.



    Here's an explaination of what each command is for JohtoMap map connections:

    Map Bank: The desired map's map bank.
    Map Number: The number of the desired map in the aformentioned map bank.\
    Map Width: The width of the connecting map. For up/down connections, use the exact width of the connecting map.
    Map Height: The height of the connecting map. For left/right connections, use the exact height of the connecting map.
    -NOTE: As you may have guessed, what you set for the Map Width does not matter for left/right connections, and what you set for the Map Height does not matter for up/down connections.

    ***Now here's where it gets tricky***
    X Position: The x coordinates of the player relative to the textures.
    Y Position: The Y coordinates of the player relative to the textures.
    OMDL: Stands for "Other Map Data Location". This puts the map DATA you are connecting to on the coordinates 0,0.
    CMPDL: Stands for "Current Map Data Location". This puts the other map's TEXTURES on the coordinates 0,0. This is relative to your current map data location, as the name suggests.


    The X and Y Positions really shouldn't be messed with, until you get the OMDL/CMPDL in the right place,
    so I'll do those first.

    For the OMDL, start at C700. Start the CMPDL at C700 as well. These are just good starting points.

    Now, let me explain how the OMDL/CMPDL work:

    Increasing the OMDL by 0001 moves the connecting map ONE TILE RIGHT.
    Decreasing the OMDL by 0001 moves the connecting map ONE TILE LEFT.

    Pretty easy, right? But there's a bit more.

    Increasing the OMDL by 0016 moves the connecting map ONE LINE DOWN.
    Decreasing the OMDL by 0016 moves the connecting map ONE LINE UP.

    Now this doesn't just randomly happen. It's because when the connecting map is pushed all the way to the right (0015) it is forced to a new line.
    Now, "all the way to the right" is relative to your current map's WIDTH if you're connecting up/down. So, for example:

    If your map has a width of 16, "all the way to the right" would refer to at the very last tile of your current map.
    If your current map has a width of 9, "all the way to the right" would refer to the connecting map being placed 7 tiles FARTHER RIGHT than where your map
    actually ends. (Which is so far, you won't be able to see it in-game.)

    So, each map is on a scale of a max of 16 when connecting. But if your current map is less than 16, obviously you'll have to keep that in mind if, when
    testing, the map seems to move farther away, when in reality it's getting closer to it's destination.

    I'm sorry I can't think of a good analogy, but here's a quick rundown of how it goes:

    The connecting map starts on the upper left side of the screen. It always wants to be here. It loves that upper left corner. And it will overlap any other
    map that gets in its way. To move it, you have to push the connecting map out of its comfort zone. To do this, increase the OMDL amount, in 16ths, until,
    by testing, you see the connecting map is in a desirable position. (Remember: every 16 tiles the map resets, so that is why you increase the OMDL is 16ths
    when you want to move the map down a line.)

    But once the map IS in the right position, it's textures (CMPDL) are still stubborn. They don't want to follow the same formula as the OMDL. They want their own.
    For this, I usually just look at a similar Gamefreak map, then add or subtract from their number, to fit my map.
    In addition to this, for the X and Y Positions, see if Gamefreak used any. Honestly, I'm not 100% on these -- some large maps use real high X Positions like 246, whil smaller maps use an X Position of 0.

    So, for now, just use this "formula" I made:
    If, normally, the X Position Gamefreak used is, say, 240, and their map width is 10, and yours is 16, then make your X Position 246.
    If, normall, the Y Position Gamefreak used is 17, and their map height is 9, and yours is 11, then make your Y Position 19.

    I hope this helped; I'm definitley going to be experimenting with the X/Y Positions more later on.

    (Edit for clarification -- these ideas might be far from accurate. Honestly, I'm doing this entirely from scratch. If you know what really goes on, feel free to correct me. These rules also don't apply to left/right connections. (They DO, but the numbers aren't exact, and it gets a lot trickier.) More info will be posted when I have time, and if this thread is actually a use to anyone.)
     
    Last edited:

    miksy91

    Dark Energy is back in action! ;)
    1,480
    Posts
    15
    Years
  • Just like hinkage said, editing map connections is quite difficult so don't expect to get them right with the first try.

    "The starting points" point to the map data in RAM which is stored in C700-CAFF (of which the maximum size of a map can also be 32x32 tiles).

    P.S
    I think you should link to RBY Map Headers so that people would get a basic idea of what the values are for (for example "Height" which doesn't refer to the height of the map).
     

    hinkage

    Everyone currently in an argument with this member
    386
    Posts
    13
    Years
    • Seen yesterday
    And also looking back that info I gave seems REALLY spotty. One day, I might get the urge again to find out more, but it's tough without any tuts, and horizontal connections are a nightmare. Dx

    Either way, someone might be able to run with this. I HOPE >_>
     

    Lord Varion

    Guess who's back?
    2,642
    Posts
    15
    Years
    • Age 29
    • Seen Jan 6, 2015
    Hmmm ... Seems Legit! xD
    I'll use this when I have time, I've always wanted to try something ;D.
    Keep it up!
     

    Lin

    JohtoMap/ZOLE Creator
    51
    Posts
    16
    Years
    • Seen Apr 26, 2014
    It's great to see someone actually took the time to figure this stuff out. Perhaps someone can now take JohtoMap and have it figure out the values. The formulas I wrote out a long time ago weren't always right and the UltraMap ones were incorrect too.
     

    miksy91

    Dark Energy is back in action! ;)
    1,480
    Posts
    15
    Years
  • It's great to see someone actually took the time to figure this stuff out. Perhaps someone can now take JohtoMap and have it figure out the values. The formulas I wrote out a long time ago weren't always right and the UltraMap ones were incorrect too.
    I've figured them out and posted a "tutorial" in Skeetendo Inc.
    It's not much of a tutorial though because I mess up with editing map connections myself too but happen to get them working anyways.

    Btw, for example "Height" stands for the width/height of the connection in the connected map and "Width" for width of the connected map (0 --> x).

    X & Y Alignments determine where the "connection begins" in the connected map.
     
    Back
    Top