The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tutorial Changing Names for FireRed

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

Reply
 
Thread Tools
  #1    
Old June 23rd, 2016 (11:29 AM).
i0Bjhansen0's Avatar
i0Bjhansen0 i0Bjhansen0 is offline
     
    Join Date: Mar 2016
    Age: 21
    Gender: Male
    Posts: 123

    Selecting no name for character creation and the 4 names for the rival.

    Introduction
    When playing a Pokemon game, most people choose their own name or a collection of characters that means something to them, instead of letting the game randomly choose a name. This is a small guide to change those random names.

    Findings
    There are 19 name choices for the boy character, 19 choices for the female character, and 4 choices for the rival. These are quite many so most people probably wouldn't need to expand the list. So, I will not be teaching that (heck even I don't know if it's possible).

    There is a list of names located at 0x1C574F. It starts with "NEW NAME", "GREEN", "RED", and so on, until it ends with CD CF D4 C3 FF, or "SUZI" in hex (the "FF" is the terminator byte, used to tell the game that there is no more characters). It's about 111 bytes long, but that's not really important.
    List of all names in the name table.
    Spoiler:
    NEW NAME
    GREEN
    RED
    LEAF
    FIRE
    GARY
    KAZ
    TORU
    ASH
    KENE
    GEKI
    JAK
    JANNE
    JONN
    KAMON
    KARL
    TAYLOR
    OSCAR
    HIRO
    MAX
    JON
    RALPH
    KAY
    TOSH
    ROAK
    OMI
    JODI
    AMANDA
    HILLARY
    MAKEY
    MICHI
    PAULA
    JUNE
    CASSIE
    REY
    SEDA
    KIKO
    MINA
    NORIE
    SAI
    MOMO
    SUZI

    What is important is this, there is a list of POINTERS located at 0x46308C. These are responsible for pointing to where the name is located. They are 4 bytes long and point to the first character of the name. 0x46308C actually starts the male pointer table, while the female pointer table starts at 0x4630D8, and the rival pointer table is 0x463124. The male and female table have 19 pointers each, while the rival table has 4 pointers (they show the names in the selection box).

    "NEW NAME" has it's own pointer location, so that should be left alone. But if you choose to change it to something else, the pointer offset is at 0x1316E4.

    I think that's everything from my findings. Let's move onto the actual guide.

    Changing the Names
    Before trying this all out, make a backup of your rom so if mistakes are made, you can go back to before.

    If you don't know how to turn hex into GBA lettering, here's a tool made by destinedjagold that converts characters into GBA letters. All you need to do is type what you want in hex in the first line, click "Convert to HEX" and the corresponding hex value will show up in the bottom box.

    Step 1- Come up with your names
    Now, do you want to change all 42 names? Or do you only want to change a few? Come up with an idea on what you want your new names to be. If you aren't going to decapitalize, you'll want to make all your names in caps, otherwise keep the first letter capital.

    Step 2- Convert the names to Hex
    Using that tool I linked earlier, turn all of your names into hex so you won't have to later. Write or type the hex values somewhere that you can find later.

    Step 3- Find some freespace
    Using a Hex Editor, find an area past 0x700000 (or if you know about finding free space, anywhere you want) that contains ONLY FF's. That is most likely not being used by anything and can be used for this project.
    Or if you have FSF (Free Space Finder) that can automatically find the location of free space for you.
    Keep track of where you are putting your names, that will also be one of the pointers you need to use.

    Step 4- Put in your names
    With the hex values already made, start typing in the hex values of those names. Make sure that after one is finished, to skip a byte (2 F's) before typing the next name. That way the game will know when to stop counting letters.

    Step 5- Find your pointers
    This might be a little tricky at first, so hopefully I can explain it well enough that there aren't any problems. Pointers are set up in a way that's called little endian (please correct me if this is wrong). Which means that the offset you have for the first byte of data (e.g. 0x123456) is broken up into sections of 2, then reversed. (e.g. 12 34 56 -> 56 34 12) That value then has a 08 added to the end to show that it is a pointer. (e.g 56 34 12 08) That's why all pointers are 4 bytes.

    So with that out of the way, let's get down to business. With your new name table (whether you are replacing them all, or only a few) the first character of each name is where you pointer is going to point to. Write down all the offsets that the first characters are located at.

    Now, with all those offsets, split each of them up into groups of 2, reverse the groups, and add 08 at the end.

    Step 6- Replace the pointers
    There are spaces for 19 male names, 19 female names, and 4 rival names. The male pointer location is at 0x46308C. The female location is at 0x4630D8. The rival location is at 0x463124.

    If you are replacing all 42 pointers with new ones, then replace all the pointers with the ones you found with your new names.

    If you are only replacing certain names, then find which pointers you want to keep, and which ones you don't.

    Here's a list of what each name the pointer points to.
    Spoiler:
    RED
    FIRE
    ASH
    KENE
    GEKI
    JAK
    JANNE
    JOHN
    KAMON
    KARL
    TAYLOR
    HIRO
    MAX
    JON
    RALPH
    KAY
    TOSH
    ROAK
    RED
    FIRE
    OMI
    JODI
    AMANDA
    HILLARY
    MAKEY
    MICHI
    PAULA
    JUNE
    CASSIE
    REY
    SEDA
    KIKO
    MINA
    NORIE
    SAI
    MOMO
    SUZI
    GREEN
    GARY
    KAZ
    TORU

    Now if you were like me, you were able to tell that LEAF isn't pointed to at all, and RED and FIRE are pointed to twice. That's because RED and FIRE are used for both genders, while GameFreak most likely used the same list for both games because LEAF is still in the list but has no pointer.

    Use this list to figure out which pointers you need to replace with the names you made. If you wanted to change some male names, from RED to ROAK would be your options. Or if you wanted to change some female names, the second RED to SUZI you would change. The rival's names are GREEN to TORU at the end.

    End

    And there you have it. You now know how to change those random name choice when you don't give your character a name.

    When a name isn't chosen for the rival, it will always default to the first of the 4 names.

    This is my first tutorial so I hope I didn't make too many errors and hope it was easy to follow.
    __________________
    Check out my Hack-in-progress and help decide the last Mega Evolution.

    Reply With Quote

    Relevant Advertising!

    Reply
    Quick Reply

    Sponsored Links
    Thread Tools

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -8. The time now is 2:51 AM.