Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Pokémon Discussion

OT name of in-game traded Pokémon (Generation I) - Page 1

OT name of in-game traded Pokémon (Generation I)

Posted by: Blaziken257
Date: 2012-04-10 23:59:56
I recently found something odd when looking at a few Pokémon I got from in-game trades in my Spanish version of Blue.

So, I think that most people who have played a Generation I game and have traded with in-game trainers know that the OT name of all these Pokémon are "TRAINER" in the English version. But, it seems, this name isn't actually tied to the Pokémon, and is hardcoded into the game. So, if you transfer the Pokémon to a different game, the OT name may change, depending on the game that you trade the Pokémon to.

Confused? Well, in the Spanish versions of Pokémon, this OT name is "ENTREN." instead; this makes sense, as it is an abbreviation of "Entrenador", the Spanish word for Trainer. However, here is the especially weird part! Whenever I traded any of these Pokémon to any of my other games (which are all English), the OT name changed to either "TRAINER" or "Trainer", depending on the game!

In most English Pokémon games, this string will be the former: "TRAINER". However, the one exception is the English version of Pokémon Stadium 2, where it will be "Trainer". (The fact that I used a Spanish GB cart has nothing to do with this; the same thing would happen for an in-game Pokémon that originated in an English-language cartridge.)

Here are some screenshots to demonstrate my point – I used every Pokémon cartridge I have, with at least one game from each of the first two generations. I used a Farfetch'd for this example, nicknamed "KUMO" (yes, that's the nickname they gave to Farfetch'd in the Spanish versions of R/B, but at least it isn't as weird as BOB the Nidorina). [size=7pt](Note to self: Finish and mainspace this page!!)[/size] You'll notice it's the same Farfetch'd due to the stats (the IVs are always random), ID number (which is always random as well), and gender (where applicable).

* Blue a.k.a. Azul
* Stadium 1
* Stadium 2 (This is where I first noticed this oddity in the first place)
* Red
* Gold
* Crystal

I don't know how or why this happens, but I'm assuming that the OT name has some special character in it, which causes the games to interpret it as the "TRAINER"/"Trainer"/"ENTREN."/etc. string. I also wonder if this happens among other languages, which likely have their own unique hardcoded strings…

And no, I don't know what the string is in the Spanish version of Stadium 2…

EDIT: Fixed link to Blue screenshot; the first image broke for some reason…

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: GARYM9
Date: 2012-04-12 21:12:38

I recently found something odd when looking at a few Pokémon I got from in-game trades in my Spanish version of Blue.

So, I think that most people who have played a Generation I game and have traded with in-game trainers know that the OT name of all these Pokémon are "TRAINER" in the English version. But, it seems, this name isn't actually tied to the Pokémon, and is hardcoded into the game. So, if you transfer the Pokémon to a different game, the OT name may change, depending on the game that you trade the Pokémon to.

Confused? Well, in the Spanish versions of Pokémon, this OT name is "ENTREN." instead; this makes sense, as it is an abbreviation of "Entrenador", the Spanish word for Trainer. However, here is the especially weird part! Whenever I traded any of these Pokémon to any of my other games (which are all English), the OT name changed to either "TRAINER" or "Trainer", depending on the game!

In most English Pokémon games, this string will be the former: "TRAINER". However, the one exception is the English version of Pokémon Stadium 2, where it will be "Trainer". (The fact that I used a Spanish GB cart has nothing to do with this; the same thing would happen for an in-game Pokémon that originated in an English-language cartridge.)

Here are some screenshots to demonstrate my point – I used every Pokémon cartridge I have, with at least one game from each of the first two generations. I used a Farfetch'd for this example, nicknamed "KUMO" (yes, that's the nickname they gave to Farfetch'd in the Spanish versions of R/B, but at least it isn't as weird as BOB the Nidorina). [size=7pt](Note to self: Finish and mainspace this page!!)[/size] You'll notice it's the same Farfetch'd due to the stats (the IVs are always random), ID number (which is always random as well), and gender (where applicable).

* Blue a.k.a. Azul
* Stadium 1
* Stadium 2 (This is where I first noticed this oddity in the first place)
* Red
* Gold
* Crystal

I don't know how or why this happens, but I'm assuming that the OT name has some special character in it, which causes the games to interpret it as the "TRAINER"/"Trainer"/"ENTREN."/etc. string. I also wonder if this happens among other languages, which likely have their own unique hardcoded strings…

And no, I don't know what the string is in the Spanish version of Stadium 2…


Stadium 2 probably has a line of code that converts ENTREN or TRAINER into Trainer to "look better" for whatever reason.

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: Blaziken257
Date: 2012-04-14 21:39:35
Upon further inspection, it turns out that when you get a Pokémon from an in-game trainer, the string for the Trainer ID consists of one byte: 5D (not counting terminating bytes that come afterwards). This byte 5D is a special "character", which in English versions of most games, is the string "TRAINER". In Pokémon Stadium 2, this happens to be "Trainer" instead, and in the Spanish GB games, it happens to be "ENTREN."

I wasn't the first one to figure this out, though… IIMarckus figured it out long before I did. You can see it here (Warning: The page is huge and will take minutes to load), at line 3819. You can see other hardcoded strings, too.

In the English versions of Red and Blue, the string appears at 0x1A58; in the Spanish versions, it appears at 0x1A68. (I don't know where it is in Pokémon Stadium 2 or in any other Pokémon game.) You can see that the game reads this string from this location when viewing the stats of a Pokémon received from an in-game trade if you use bgb. First, start up bgb and open a Pokémon ROM. Then, right-click the window and click Other->debugger. A new window will appear; go to Debug->access breakpoints. In the "addr range" box on the bottom-left, input "0:1A58" (for English Red/Blue) or "0:1A68" (for Spanish Red/Blue), and check the "on read" box. Click "Add", then close the window. Next, view the stats of any Pokémon from an in-game trade, and you'll see that the debugger will break at offset 0:1956, proving that the game is reading the TRAINER string from 1A58 or 1A68.

Also, I wouldn't be surprised if this TRAINER string is responsible for the "3TRAINERPOKé" glitch Pokémon in Yellow.

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: Torchickens
Date: 2012-04-16 15:10:30
Another great find Blaziken257, and congratulations on trading between English and Spanish versions. What happened when you made the trade, did it shift the OT 5 spaces to the right? I ask this because there's an offset difference of +0x5 between the English and Spanish OT. addresses i.e. the first letter of the first OT is 0xD273 in English Red/Blue, but it's 0xD278 in the Spanish versions.

As you note, in addition to characters like the END name character, there are "magic words" in the Pokémon games and they can differ between different versions. If you force it in a Pokémon's name or nickname, the text will fill out itself. "Poké" and "Trainer" are in fact examples of these, so if you somehow traded a 3TRAINERPOKé to Pokémon Stadium 2 (as a Rhydon or something), I think it would appear having "Trainer" in its name, unless it was actually using individual letters to spell out its name, which seems unlikely.

Below are some examples of how this works. You can see them together here):

*[$00] triggers an ERROR ("Error" in Yellow) (Japanese: ) code. The number depends on a certain address (FFB2 in Red/Green). [00] usually marks the beginning of text, but if you insert it in the middle of the text string without closing it, then it inserts the error message and replaces all text that follows it. Tauwasser makes notes of this here. I'm not sure what the value in this address signifies though :???:.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/00.png[/img]

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/00intext.png[/img]

*[$52] is the current name of the player, or NINTEN.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/52.png[/img]

*[$53] is the current name of the rival, or SONY.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/53.png[/img]

*[$54] is "POKé", in the Japanese versions, it's (Pokémon in full) though at that time I forced it into a Pokémon nickname, so it might be "POKéMON" in the English version as well.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/54.png[/img]

*[$56] is two "…" (0x75) characters.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/56.png[/img]

*[$59] is ENEMY (POKéMON name).

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/59.png[/img]

*Not shown here is [$5A], which is  (User's Pokémon name).


*[$5C] is "TM" (Japanese: , Machine move)

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/5B.png[/img]

*[$5D] is "TRAINER" (Japanese: )

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/5D.png[/img]

*[$5E] is "ROCKET" (Japanese: だ)

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/5E.png[/img]



There's a few more examples on this thread on the Skeetendo forums, though these are for the Japanese versions. There appear to be some strings exclusive to those versions. For some example usage, see here.

Additionally, it's worth mentioning that In the Japanese Generation I and II games, there are characters which add a dakuten or han-dakuten to the equivalent character +0x80, which also allows for normally meaningless characters, such as . It's useful for the 'make items' select button glitch, because you can use it to get items like Master Balls and Rare Candies by overlaying the (han)dakuten on the nickname screen, but some simply can't be added to a Pokémon's nickname this way.

edit: 3TRAINERPOké written in all capitals for clarity.

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: Blaziken257
Date: 2012-04-21 10:18:11
Thanks! As for trading between English and Spanish versions, this is actually something that I have known about for years. I attempted it back in 2007 using TGB Dual, because I figured that since I was using an emulator, I had nothing to lose. And surprisingly, it worked! It's weird that many manuals say not to do this (such as the Gold manual (page 38), the Stadium 2 manual (page 6), or even the Spanish Blue manual (strangely, this warning wasn't present in the English Blue manual on the same page)), but it still works.

And no, there were zero problems whatsoever. The OT did not shift 5 spaces to the right, it remained intact somehow, and so did all the other data. I think the address happens to be different among versions, anyway (I could be wrong, though), so the location of the data doesn't seem to make a difference. I'm guessing there's some pointer that stores the proper address in every game.

Also, the compatibility is the reason why you can only enter English letters in your nickname or a Pokémon's nickname, even in the Spanish version – these letters don't exist in any form in the English version. Here are some screenshots demonstrating this:

[img]http://i45.tinypic.com/ab44dg.png[/img] [img]http://i46.tinypic.com/2lth5z9.png[/img]

Notice the lack of the following characters: Á, , Í, , , , , á, é, í, ó, ú, ñ, ü, ¿, and ¡

This was the case until Diamond and Pearl, although it would have worked in Generation III as well without any problems (except for the Pal Park thing).

Also, it works with the Stadium games. Again, with zero problems whatsoever (although I'm not sure if this bug occurs because of me using a Spanish Blue…). You can see me using a Spanish Blue with an English Stadium 2 in this video here. Even though I don't have a video of it, it works just as well in the English Stadium 1.

Since English, Spanish, French, German, and Italian versions all (at least to my knowledge) have 7-character limits for trainer names, 10-character limits for Pokémon nicknames (as opposed to 5 for both in the Japanese version), and the Latin alphabet (as opposed to kana), I wouldn't be surprised at all if these versions were all compatible with each other. However, I only tested English and Spanish together. Someone ought to try all other combinations (with TGB Dual), though. I'd be very surprised if Japanese versions worked with anything else, though, due to reasons that I mentioned. Same thing with Korean versions of G/S for the same reasons.

Now as for the magic words… that explains why the string changes between games. I'm guessing the magic words exist because of lack of space in cartridges at the time, so apparently the programmers needed to save as much space as possible by shorting the byte lengths of strings that are very commonly used. I wouldn't be surprised if Generation II used them too, at least the TRAINER string to maintain backward compatibility. (Does someone have a list of magic words in G/S/C?) Do current generations use them, too? I'm curious about that.

Some of the magic words are weird, too. Why is the "……" there? I've never seen it (at least from what I can remember), and I didn't even know raised ellipsis even existed in Generation I (though I've seen it lots of times in the English Crystal). "TM" doesn't seem that necessary; it's only two characters, although I guess that adds up for the names of all the TMs. Also, I find it odd that "Enemy " has a space after it, while none of the other strings do.

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: Torchickens
Date: 2012-04-21 14:31:06

Thanks! As for trading between English and Spanish versions, this is actually something that I have known about for years. I attempted it back in 2007 using TGB Dual, because I figured that since I was using an emulator, I had nothing to lose. And surprisingly, it worked! It's weird that many manuals say not to do this (such as the Gold manual (page 38), the Stadium 2 manual (page 6), or even the Spanish Blue manual (strangely, this warning wasn't present in the English Blue manual on the same page)), but it still works.

And no, there were zero problems whatsoever. The OT did not shift 5 spaces to the right, it remained intact somehow, and so did all the other data. I think the address happens to be different among versions, anyway (I could be wrong, though), so the location of the data doesn't seem to make a difference. I'm guessing there's some pointer that stores the proper address in every game.

Also, the compatibility is the reason why you can only enter English letters in your nickname or a Pokémon's nickname, even in the Spanish version – these letters don't exist in any form in the English version. Here are some screenshots demonstrating this:

[img]http://i45.tinypic.com/ab44dg.png[/img] [img]http://i46.tinypic.com/2lth5z9.png[/img]

Notice the lack of the following characters: Á, , Í, , , , , á, é, í, ó, ú, ñ, ü, ¿, and ¡

This was the case until Diamond and Pearl, although it would have worked in Generation III as well without any problems (except for the Pal Park thing).

Also, it works with the Stadium games. Again, with zero problems whatsoever (although I'm not sure if this bug occurs because of me using a Spanish Blue…). You can see me using a Spanish Blue with an English Stadium 2 in this video here. Even though I don't have a video of it, it works just as well in the English Stadium 1.

Since English, Spanish, French, German, and Italian versions all (at least to my knowledge) have 7-character limits for trainer names, 10-character limits for Pokémon nicknames (as opposed to 5 for both in the Japanese version), and the Latin alphabet (as opposed to kana), I wouldn't be surprised at all if these versions were all compatible with each other. However, I only tested English and Spanish together. Someone ought to try all other combinations (with TGB Dual), though. I'd be very surprised if Japanese versions worked with anything else, though, due to reasons that I mentioned. Same thing with Korean versions of G/S for the same reasons.

Now as for the magic words… that explains why the string changes between games. I'm guessing the magic words exist because of lack of space in cartridges at the time, so apparently the programmers needed to save as much space as possible by shorting the byte lengths of strings that are very commonly used. I wouldn't be surprised if Generation II used them too, at least the TRAINER string to maintain backward compatibility. (Does someone have a list of magic words in G/S/C?) Do current generations use them, too? I'm curious about that.

Some of the magic words are weird, too. Why is the "……" there? I've never seen it (at least from what I can remember), and I didn't even know raised ellipsis even existed in Generation I (though I've seen it lots of times in the English Crystal). "TM" doesn't seem that necessary; it's only two characters, although I guess that adds up for the names of all the TMs. Also, I find it odd that "Enemy " has a space after it, while none of the other strings do.


You're welcome.  :)

Yeah, later when I uploaded a video of it, there weren't any problems in trading between the English and Spanish versions either. I'll have to try it with the French, German and Italian versions. I'm curious whether the name of the Pokémon would change or not when traded to another localisation where the name of the Pokémon does not match. Perhaps it would just remain the same, since when you try to trade an 'M [00] to Pokémon Yellow, you will receive a 3TrainerPoké named "'M". I noticed, 3TrainerPoké is 3Entren.Poké on the Spanish version, so its default name probably contains magic words.

It's interesting how the warning wasn't present in the English manual. I'll have to find my UK manual of Pokémon Red and Blue to see if it was something that Nintendo of Europe (?) decided to add later. I vaguely recall an archived page on Nintendo of Japan's official website, which also acknowledged the Mew glitch (although I might be confusing it with something else). It noted that trading between the English and Japanese localization would remove the save file on 'both games'. While it doesn't work properly, whenever I tried it it would only erase the save file on Japanese Red and Green and give you a glitched Pokémon on Red/Blue. This makes me wonder whether its possible to trade between English Blue and the revised engine in Japanese Blue and Yellow (Pikachu) with minimal glitches even though the maximum nickname lengths are different.

It seems errors in the official instruction manuals aren't uncommon. Yuzihax noted about some text classing "Coin" as a 'miscellaneous item', and an inaccurate description for Guard Spec. In the Pokémon Yellow manual, it claims that Blizzard would freeze less often in link battles. This originated from the Japanese versions, in which Blizzard has a 1/3 chance of freezing instead of 1/10 chance of Freezing (except in Pocket Monsters Stadium/2). The 1/3 Freeze chance is still present in the English games, but there's no known way to activate it. Supposedly, in Japanese Yellow when you enter a link battle there actually is a reduced chance of Blizzard freezing, so it might be the case that an error was carried forward after the games were translated.

Magic words exist in Generation II too, at a first glance most from Generation I are there (like POKé , ROCKET, TM and TRAINER) though I haven't checked through all the digits yet. The "Error" message (occupying 0x00 is removed, but instead when you use that value in the middle of text you get a message like "0df-", which is something I've seen before on certain glitch Trainers.

When you cheat to battle your rival before meeting him, his name is "?", but appears to be set to "???" later in game, and then it's of course changeable when you speak to the policeman. When checking glitch mail, GREEN/BLUE will occasionally appear, even though you never get to name the original Kanto rival in Generation II. So ???, GREEN/BLUE and MOM (DUDE) are probably examples, but I don't know if they work the same way.

Regarding "……" ($59), it was sometimes used in the Japanese versions. I don't remember it being used in the English games either, so it might simply be a leftover like the way that there are still some Japanese characters in the English games. It may be of note that the English Generation II used this, as they incorporated "……" as part of the message at the beginning of the game before you set the clock time.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/SixElipses.png[/img]

The 'space' occupies the name of the last opponent Pokémon in battle, but in this case I didn't enter battle before reading the (hacked) signpost. For example, if the last Pokémon you encountered was Pidgey, it would read "Enemy PIDGEY's" house :L. This also applies to ($5A) which might turn into e.g. "CHARMANDER's" if activated after or in the middle of battle. I'm a little curious as to what would happen if it was something like 'M (00) or Charizard 'M (FF) would it be ' '(?)

In the original Japanese versions, TM was spelled out in full as machine move () meaning this would be quite useful to have. Assuming that the TM names use the value from 0x5C, I guess it would have also been a more efficient way of using "TM" [93][8C] all the time. Maybe this is related to the oversight in French Red and Blue, where the little girl on Celadon Rooftop refers to CT49 as "TM49", but everywhere else in the game it's referred to as "CT".

Edit: Link fix

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: Bent`
Date: 2012-04-23 23:25:29

Now as for the magic words… that explains why the string changes between games. I'm guessing the magic words exist because of lack of space in cartridges at the time, so apparently the programmers needed to save as much space as possible by shorting the byte lengths of strings that are very commonly used.


Yes, this is extremely likely given the space constraints in the Japanese Red and Green. This is a method of compression commonly called DTE, dualtile encoding, in ROM hacking communities (or more formally, byte pair encoding).


Also, I find it odd that "Enemy " has a space after it, while none of the other strings do.


Enemy is always followed by a space when used, so they incorporated the space into the string. Other strings are sometimes immediately followed by punctuation or numbers, so they cant include a space afterwards.


When you cheat to battle your rival before meeting him, his name is "?", but appears to be set to "???" later in game, and then it's of course changeable when you speak to the policeman. When checking glitch mail, GREEN/BLUE will occasionally appear, even though you never get to name the original Kanto rival in Generation II. So ???, GREEN/BLUE and MOM (DUDE) are probably examples, but I don't know if they work the same way.


Player name, rival name, RED, GREEN, and moms name in GSC (and player name and rival name in RBY) are also magic words. The only difference is that the associated text pointer leads to WRAM instead of ROM, and thus must be manually initialized at startupand for that matter, thats what lets it be changed at all.


In the original Japanese versions, TM was spelled out in full as machine move () meaning this would be quite useful to have. Assuming that the TM names use the value from 0x5C, I guess it would have also been a more efficient way of using "TM" [93][8C] all the time. Maybe this is related to the oversight in French Red and Blue, where the little girl on Celadon Rooftop refers to CT49 as "TM49", but everywhere else in the game it's referred to as "CT".


I have never seen the TM magic word used. However, the GetMachineName function in the Pokémon Red disassembly shows how the item name for TMs (in bag, mart, etc) is generated on the fly.

Re: OT name of in-game traded Pokémon (Generation I)

Posted by: SatoMew
Date: 2015-09-04 05:27:56

Some of the magic words are weird, too. Why is the "……" there? I've never seen it (at least from what I can remember), and I didn't even know raised ellipsis even existed in Generation I (though I've seen it lots of times in the English Crystal). "TM" doesn't seem that necessary; it's only two characters, although I guess that adds up for the names of all the TMs. Also, I find it odd that "Enemy " has a space after it, while none of the other strings do.



Regarding "……" ($59), it was sometimes used in the Japanese versions. I don't remember it being used in the English games either, so it might simply be a leftover like the way that there are still some Japanese characters in the English games. It may be of note that the English Generation II used this, as they incorporated "……" as part of the message at the beginning of the game before you set the clock time.

[img]http://i1271.photobucket.com/albums/jj640/Torchickens/SixElipses.png[/img]


Midline horizontal ellipses ("") are common in Japanese. They're used in the localizations of Crystal (but not Gold and Silver, IIRC) during battles by mistake. The NEW GAME text uses the regular Western ellipses.