• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Which Pokémon Masters protagonist do you like most? Let us know by casting a vote in our Masters favorite protagonist poll here!
  • Red, Hilda, Paxton, or Kellyn - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • 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.

[Other✓] Gen II\Gold: Help with my first hack! (how to make Johto and Kanto from scratch etc)

wolfboyft

Pokémon Generation 2 Hacker
  • 165
    Posts
    10
    Years
    So...

    I was wondering. I DO NOT want to have to simply edit and make do with the classic, older Johto and Kanto maps.

    (BTW I do indeed know how to change the positions of areas on the town map AND the town map itself. So no worries there. JohtoMap/GSC Town Map editor.)

    What I want to do... is to use JohtoMap or anything else (preferably not a Hex editor. Somthing with a UI?) To delete ALL the maps and areas, and then create everything from scratch with custom names etc.

    Maybe, just maybe... even create a whole new third region as well!

    (don't worry about the starting map stuff, I got a tool for that)

    In fact, if I could get more regions, that'd be excellent.

    Next: Create new Pokémon?

    Next: Change trade evolutions to level evolutions?

    Next: Add new items?

    Next: New people sprites?

    Next (lol): Add new moves?

    Etc... to make a good hack is what I'm asking.
     
    So...

    I was wondering. I DO NOT want to have to simply edit and make do with the classic, older Johto and Kanto maps.

    (BTW I do indeed know how to change the positions of areas on the town map AND the town map itself. So no worries there. JohtoMap/GSC Town Map editor.)

    What I want to do... is to use JohtoMap or anything else (preferably not a Hex editor. Somthing with a UI?) To delete ALL the maps and areas, and then create everything from scratch with custom names etc.

    Maybe, just maybe... even create a whole new third region as well!

    (don't worry about the starting map stuff, I got a tool for that)

    In fact, if I could get more regions, that'd be excellent.

    Next: Create new Pokémon?

    Next: Change trade evolutions to level evolutions?

    Next: Add new items?

    Next: New people sprites?

    Next (lol): Add new moves?

    Etc... to make a good hack is what I'm asking.


    What I'd recommend for you is to look at other hacks here for Pokemon Gold (I'm assuming? I've never actually played the Pokemon games before GBA so I don't exactly know what your hacking) since you're just starting out and see what kind of tools they're using. A great example is Pokemon XY: Naturia Version. They have a lot of tools listed that might help you out. I hope you find what you're looking for and good luck on your hack.
     
    ?

    Well, I still recieved the eMail notification, Fun Size...

    What I'm looking for at the moment, like what I looked for in Super Metroid ROM Hacking, is an IPS patch that is only one map, and let's me make my own!

    EDIT: Before that it seemed you had deleted your post.
     
    Last edited:
    What I'm looking for at the moment, like what I looked for in Super Metroid ROM Hacking, is an IPS patch that is only one map, and let's me make my own!


    Well you could scout around, but.... I don't think you'll really find anything you're looking for, but I could be wrong. Also an IPS patch is not gonna allow you to make your own map you'll need something like JohtoMap (which you have) to make it. And I'm seriously confused about why you want to create one map if you're making a Rom hack.
     
    Well you could scout around, but.... I don't think you'll really find anything you're looking for, but I could be wrong. Also an IPS patch is not gonna allow you to make your own map you'll need something like JohtoMap (which you have) to make it. And I'm seriously confused about why you want to create one map if you're making a Rom hack.


    No... it'd delete all maps, and let me create more myself.

    But my scout planes found nothing.

    I must know how to delete and create new maps in JohtoMap or GoldFinger!
     
    Here you go: https://hax.iimarck.us/topic/852/
    Doesn't get any easier than this however.

    That helped a lot... I now understand more about Hexadecimal editing.

    But...

    I am having a bit of trouble with whatever these POINTER things are...

    I did indeed find where all the map names are stored, but...

    How do I edit them, without using the exact same amounts of characters with the exact same spaces?

    Hrrrmmm...

    I looked in PokéText... nothing.

    JohtoMap... nope.

    Also, how might I go about making more... maps in the areas?

    You know... like... um... how NEW BARK TOWN has a lot of other maps inside it, and NEW BARK TOWN is just a folder to help devs work out what's what/the thing that says that whenever you're in a map in the 'folder' NEW BARK TOWN, it will show NEW BARK TOWN or whatever the folder that the map you're in is in?

    Note: I have used your table and can now write (although rather tediously) text inside the ROM.

    And a question: is it possible to make a wild pokémon have a 0% catch rate with all pokéballs, including the master ball?
     
    That helped a lot... I now understand more about Hexadecimal editing.

    But...

    I am having a bit of trouble with whatever these POINTER things are...

    I did indeed find where all the map names are stored, but...

    How do I edit them, without using the exact same amounts of characters with the exact same spaces?

    Hrrrmmm...

    I looked in PokéText... nothing.

    JohtoMap... nope.

    Also, how might I go about making more... maps in the areas?

    You know... like... um... how NEW BARK TOWN has a lot of other maps inside it, and NEW BARK TOWN is just a folder to help devs work out what's what/the thing that says that whenever you're in a map in the 'folder' NEW BARK TOWN, it will show NEW BARK TOWN or whatever the folder that the map you're in is in?

    Note: I have used your table and can now write (although rather tediously) text inside the ROM.

    And a question: is it possible to make a wild pokémon have a 0% catch rate with all pokéballs, including the master ball?
    You should register to Skeetendo Inc. (hax.iimarck.us) and ask more questions there so I don't have to check this thread everytime you have replied :) (unless you like my post, quote me back or something so I will notice it for sure).

    Anyway...

    Pointers are usually 2-byte data values that point to an address. For example pointer 2A 53 points to address XX:532A in which XX is the rom bank we are currently in. *that XX:532A is a pointer format representation of an address.*
    Straight rom address of XX:532A is;

    XX * 0x4000 + 0x532A - 0x4000

    So for instance, we have pointer FE 64 in address 0x92388 which is the second pointer in that table consisting of 4-byte data values ( [X & Y coordinates (2 bytes)][Pointer (2 bytes)] ). That FE 64 leads to;

    XX * 0x4000 + 0x64FE - 0x4000

    Here XX is 0x92388 / 0x4000 = 0x24
    And so the address where this points to is;

    0x24 * 0x4000 + 0x64FE - 0x4000 = 0x924FE

    And if you go to that address with a hex editor (and using a table file), you can see that "NEW BARK[1F]TOWN[50]" is written there. Byte "1F" is used for changing the line when viewing the area name with Town Map and "50" is a byte that tells that the name ends here.

    So if you want to change the name of "NEW BARK TOWN", repoint it to blank space at the end of the rom bank (so before 0x94000 because the banks starts at 0x24 * 0x4000 = 0x90000 and is 0x4000 bytes long), and write a new name for it there. Take a look at how I have handled the names in Dark Energy if you like.


    You can put more maps inside an area by editing the sixth byte in Primary Map Header of each map. That byte is an "Area" byte that tells, which area the map belongs to by using the byte as an index of this table here at 0x92382 (SPECIAL = 00, NEW BARK TOWN = 01 etc.). So basically, we don't have a "folder", or table of maps that belong to each area, stored in the rom file. Instead, each map knows the area it belongs to (from that area byte inside the map's Primary Header).

    It's possible to do pretty much anything you want but as of now, I think catch rate of 0% is not possible. You would have to hack that feature in yourself with assembly.
     
    You should register to Skeetendo Inc. (hax.iimarck.us) and ask more questions there so I don't have to check this thread everytime you have replied :) (unless you like my post, quote me back or something so I will notice it for sure).

    Anyway...

    Pointers are usually 2-byte data values that point to an address. For example pointer 2A 53 points to address XX:532A in which XX is the rom bank we are currently in. *that XX:532A is a pointer format representation of an address.*
    Straight rom address of XX:532A is;

    XX * 0x4000 + 0x532A - 0x4000

    So for instance, we have pointer FE 64 in address 0x92388 which is the second pointer in that table consisting of 4-byte data values ( [X & Y coordinates (2 bytes)][Pointer (2 bytes)] ). That FE 64 leads to;

    XX * 0x4000 + 0x64FE - 0x4000

    Here XX is 0x92388 / 0x4000 = 0x24
    And so the address where this points to is;

    0x24 * 0x4000 + 0x64FE - 0x4000 = 0x924FE

    And if you go to that address with a hex editor (and using a table file), you can see that "NEW BARK[1F]TOWN[50]" is written there. Byte "1F" is used for changing the line when viewing the area name with Town Map and "50" is a byte that tells that the name ends here.

    So if you want to change the name of "NEW BARK TOWN", repoint it to blank space at the end of the rom bank (so before 0x94000 because the banks starts at 0x24 * 0x4000 = 0x90000 and is 0x4000 bytes long), and write a new name for it there. Take a look at how I have handled the names in Dark Energy if you like.


    You can put more maps inside an area by editing the sixth byte in Primary Map Header of each map. That byte is an "Area" byte that tells, which area the map belongs to by using the byte as an index of this table here at 0x92382 (SPECIAL = 00, NEW BARK TOWN = 01 etc.). So basically, we don't have a "folder", or table of maps that belong to each area, stored in the rom file. Instead, each map knows the area it belongs to (from that area byte inside the map's Primary Header).

    It's possible to do pretty much anything you want but as of now, I think catch rate of 0% is not possible. You would have to hack that feature in yourself with assembly.

    Thank you so much!

    BTW Since 0% is not possible within me, I will just make all my bosses trainers or just make do with catchable. :)
     
    Back
    Top