Part 123: System Logoff - Gameshark Fire Emblem Part 1
These are special wordy updates showing off the fun things you can do with this game and a code breaker. Remember kids, cheating for science is fun.
Part 1 - The Tactician Name
Like anything the player inputs into a game, your tactician's name is stored in ram. You choose from a limited selection of characters to input and the game stores this for later use.
However with direct ram access you can play with your tactician's name, including extending how long it is and using characters that you should not have access to.
1.1 - Extending the name
You know, it's always bothered me that there is such a limited space for names in games. I mean, it's not like we're hurting for ram anymore you know? Having a name that is ten letters long is awful. You'll never be the hero when you can only use seven tenth's of your name. Don't even get me started on how a nine character name limit irks me.
So, let's extend the name. For this example, we'll take my forum name, SystemLogoff.
As you can see a seven character limit sucks, but what if there was a way to change that?
Short answer? There is!
Long Answer? Well, in this special case, you can. You see, most games that store user created names use a special character on the end. This "stop" character tells the game to stop reading the name from ram at a certain point. With Fire Emblem 7's case, this "stop" character is a hidden last character that is added onto the end of your name. So by replacing this "stop" character with the next letter, and adding in the rest of the characters you need you can extend your name.
Code used in this example:
3202BC1f 006f - o
3202BC20 0067 - g
3202BC21 006f - o
3202BC22 0066 - f
3202BC23 0066 - f
3202BC24 0000 - "Stop" character
So, you may be wondering why I called this a special case. Well, usually ram space is compact, and extending names may intrude on critical parts of ram. For example, in games where you can name more than one character: If you extend the name of the hero, then whoever is character-two has their name overrode by the end of the hero's name. In Fire Emblem's special case, it seems that the space that is used after the name is shared for the text engine. I have no idea how badly things might explode if the conversation requires that space for something, but it seems to be work fine.
1.2 - Broken Characters Update From HenryEx
Text in bold is what the character should do. Since I use it in the Tactician's name we receive all kinds of trouble.
Text engines in games can be amazingly versatile. In some cases they can not only print text in a linear fashion, but also jump around and execute code. When you insert characters that you normally can not select into your tactician's name, interesting results may happen.
1.2.1 - Character 1b
No listing, Crash
No screen shot, as in this case it's not needed. This character seems to be for loading something though the text engine. If you feed it something wrong (and I have no idea what might work!) it explodes into a game freeze and a loud BEEEEP.
1.2.2 - Character 1a
Gives buy/sell prompt (glitches if no shop?) [Buy/Sell]
Seems to be something that if used properly will display items. Most likely part of the unit view screen or store screen somewhere. In the case of using it with your name it will take the next of text characters to use as data to display.
1.2.3 - Character 19
Gives a yes/no prompt (starts on no) [No]
Seems to be something that sets up YES/NO choices for text boxes. Once again by using it like this I am feeding it invalid information so we see strange results.
1.2.4 - Character 10
10 : Character 0x10 sets a portrait with the byte that follows; use a Portrait List to check value labels [LoadFace]
Since the bytes after it are invalid, they load garbage data and corrupt the graphical ram storage.
1.2.5 - Character 9
09 : Open speech bubble [OpenMidLeft]
It seems that since I open a new box to the left, Lyn will be copied over.
Tune in next time for item science.