• 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.

Changing Names for FireRed

130
Posts
8
Years
  • Age 28
  • Seen Jun 14, 2023
e348ea7879ba45bcb92e3c8ea5a4c527.png
32ac9857788042d7a76a39bb7bb35ba0.png
faac5d013e7b44f7ada1d21a3db85933.png

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:

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:

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.
 
1
Posts
6
Years
  • Age 20
  • Seen Dec 21, 2021
I have a doubt, followed the letter (or so I believe) your tutorial. But when it comes to seeing the name that is put, the only thing that comes out is ".". Yes, a space and a point. Do you know what is the problem?
 

Momoro

I'm gonna put some dirt in your eye..
269
Posts
4
Years
+JuanSL An easier solution would be using Advance Text, and just search for the name you want to change. OR, you could use LSA's Intro Text Editor(ITE). Just google the tool and it should pop-up. It really does come in handy because it has features Advance Text can't reach(Like the how-to-play intro scene in FR/LG). Actually, I still have the link: https://www.pokecommunity.com/attachment.php?attachmentid=76958&d=1446647680

Just download it and you should be better off with it.

I know your message is like 1 year-old, but I JUST HAD TO HELP 😊
 
Back
Top