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.

Generation IV Glitch Discussion

Pal Park glitch in foreign versions - Page 1

Pal Park glitch in foreign versions

Posted by: Blaziken257
Date: 2010-08-16 01:42:00
So, I found an interesting glitch in Pal Park when I was playing the Spanish version of Platinum and migrating from a Spanish LeafGreen. (All of this was on an emulator, but I don't think this matters.) You see, in Spanish versions of Pokémon prior to Generation IV, when entering your name or nicknaming a Pokémon, the characters that you can enter are restricted to the English character set, most likely to maintain compatibility. This means that you can't enter in characters like: ÁáéÍíóúñü¿¡

But the thing is, in FR/LG at least, a few of these in-game trainers that trade with you have Spanish characters in either their trainer name or their Pokémon's nickname. These include: The Mr. Mime in Route 2, whose trainer is named RTEO, the Nidoran(m) that you get in LeafGreen in Route 5, which is nicknamed NIDRÁN (note: it's possible that the Nidoran(f) that you get in FireRed has a similar nickname, but I haven't checked), and the Seel in Cinnabar Island, whose nickname is SEELÍN.

Still, although these nicknames/trainer names aren't possible to get by a human, nothing sounds THAT unusual, right? Well, if you migrate these Pokémon to Pal Park, their nicknames become glitched. RTEO (who has the Mr. Mime) becomes RつTEO, NIDRÁN (the Nidoran(m)) becomes NIDRN, and SEELÍN (the Seel) becomes SEELN. In other words, the Spanish characters become kana. Whoops. Looks like Nintendo didn't bother to make sure that these characters were converted properly!

Here are some screenshots:

[img]http://i35.tinypic.com/2znuzxg.jpg[/img] [img]http://i33.tinypic.com/2wc1sfl.jpg[/img]
[img]http://i36.tinypic.com/2i9qvd0.jpg[/img] [img]http://i33.tinypic.com/2iaq07p.jpg[/img]
[img]http://i37.tinypic.com/34oq7nd.jpg[/img] [img]http://i35.tinypic.com/28qu6p3.jpg[/img]

I haven't bothered to check if there are any trainers/Pokémon with this problem in Ruby/Sapphire, but none of them have this problem in Emerald. I will find out about R/S later though.

Now, I'm curious if any other language version (French, Italian, German) has this kind of glitch. Does anybody know any of these three languages and is willing to find out? If so, are there any trainers or Pokémon with non-English characters in these languages? I'm curious. Unfortunately, I haven't seen lists of these Pokémon/trainers in other languages, otherwise there would be interwiki links here… but I'm in the process of making a Spanish list of all these trades.

I'm also curious to what happens if you trade these Pokémon to an English version of R/S/E/FR/LG… I shall find that out soon as well. XD

Re: Pal Park glitch in foreign versions

Posted by: Torchickens
Date: 2010-08-16 05:10:29
That's a really interesting find, good job.


I'm also curious to what happens if you trade these Pokémon to an English version of R/S/E/FR/LG… I shall find that out soon as well. XD


If successfully traded to an English version of Pokémon FireRed and LeafGreen, the foreign characters will likely remain the same, as these characters were not removed from the game engine. To develop the games more efficiently and safe time it would be desirable to use every romanticized character in one 'character map', so the developers can simply assign them to dialogue strings associated with NPCs, signs, etc when they are designed. 

The character map in FireRed and LeafGreen, courtesy of a Portugese website is:

00=
01=
02=Á
03=
04=
05=
06=
07=
08=
09=
0B=
0C=Ï
0D=
0E=
0F=
10=
11=
12=
13=
14=
15=
16=à
17=á
19=ç
1A=è
1B=é
1C=ê
1D=ë
1E=ì
20=î
21=ï
22=ò
23=ó
24=ô
25=æ
26=ù
27=ú
28=û
29=ñ
2A=º
2B=ª
2C=
2D=&
2E=+
34=[Lv]
35==
36=;
51=¿
52=¡
53=[PK]
54=[MN]
55=[PO]
56=[Ke]
57=[BL]
58=[OC]
59=[K]
5A=Í
5B=%
5C=(
5D=)
68=â
6F=í
79=(u)
7A=[D]
7B=[L]
7C=[R]
A1=0
A2=1
A3=2
A4=3
A5=4
A6=5
A7=6
A8=7
A9=8
AA=9
AB=!
AC=?
AD=.
AE=-
AF=
B0=[…]
B1="
B2=["]
B3='
B4=[']
B5=[m]
B6=[f]
B7=$
B8=,
B9=[x]
BA=/
BB=A
BC=B
BD=C
BE=D
BF=E
C0=F
C1=G
C2=H
C3=I
C4=J
C5=K
C6=L
C7=M
C8=N
C9=O
CA=P
CB=Q
CC=R
CD=S
CE=T
CF=U
D0=V
D1=W
D2=X
D3=Y
D4=Z
D5=a
D6=b
D7=c
D8=d
D9=e
DA=f
DB=g
DC=h
DD=i
DE=j
DF=k
E0=l
E1=m
E2=n
E3=o
E4=p
E5=q
E6=r
E7=s
E8=t
E9=u
EA=v
EB=w
EC=x
ED=y
EE=z
EF=[>]
F0=:
F1=
F2=
F3=
F4=ä
F5=ö
F6=ü
F7=(u)
F8=[d]
F9=[l]
FA=\l
FB=\p
FC=\c
FD=\v
FE=\n
FF=\x

I remember once experimenting with a name modifier code in FireRed and some of the 'English characters' were much later on, so unless I'm mistaken the identifiers of each character remain unchanged between each version of FireRed/LeafGreen.

I'm not 100% sure about Pokémon Ruby and Sapphire but I'd guess that it is probably the same case. Its interesting to think that Nintendo would remove (every?) non-Anglican character except for é in Diamond/Pearl/Platinum, perhaps its due to a wider audience, where it would turn out to be awkward to keep characters like this for instance.

Re: Pal Park glitch in foreign versions

Posted by: GARYM9
Date: 2010-08-16 10:17:04
This is more of an oversight than a glitch, though this can be used for the english versions/foreign versions to figure out D/P/Pt/Hg/Ss's text table.

Nice find.

Re: Pal Park glitch in foreign versions

Posted by: Stackout
Date: 2010-08-16 15:47:47
Torchickens: i better compare that FR/LG tbl to the R/S tbl i used to make my text dump..

Re: Pal Park glitch in foreign versions

Posted by: Blaziken257
Date: 2010-08-24 10:15:12
Kinda interesting that English FR/LG already has a foreign character set. This is different from English versions of Generation I/II, where it only has an English character set, and other versions (like Spanish) expanded upon it by using previously empty characters. So, why did they make it so that you can't use non-English characters in nicknames/trainer names in any language in Generation III? This made sense in Generation I/II to maintain compatibility, but in Generation III it seems that it wouldn't have this problem. I did make a partial Spanish character table for FR/LG months ago, so I'll have to look at that and compare it with yours to see if it matches.

Does English Ruby/Sapphire have foreign characters in its character table too?

Although, in Spanish versions of Generation IV, you CAN use non-English characters, I checked for myself. Furthermore, when using the GTS, I often notice foreign characters when I trade from a foreign country (not just Spanish-language countries). (That makes me wonder why it's not possible in the English versions to use foreign characters.)

I haven't bothered to look at the programming for Gen IV games (since I'm bad at hacking), but I'm going to take a wild guess and say that when transferring Pokémon for Pal Park, the game converts these characters by "mapping" their Gen III values to Gen IV values, since they seem to have different character tables, which might be because Gen IV has a larger character set. But here's the oversight: it seems that Nintendo forgot about converting Gen III foreign characters (á, é, í, ó, ú, etc.) to their Gen IV equivalents, since normally it isn't possible to get Pokémon with foreign characters in their nicknames or trainer names. This, in turn, is likely because Nintendo didn't remember about the few in-game trainers with these foreign Pokémon.

EDIT: I've been making a list of Pokémon that in-game trainers trade to you in the Spanish versions of each game, which you can find here: http://poketeca.com/wiki/Usuario:Blaziken257/Lista_de_intercambios_dentro_de_los_juegos [size=7pt](Note: It appears that this site recently started to put annoying sound ads before you go on any page periodically. And when you skip the ad, it takes you to the main page. So, when clicking this link, turn the sound off, click the link on top of the page, then click this link again, and it should work. Annoying, yes.)[/size]
It's not complete, but so far there are only a few trainers with problematic OT names/nicknames.

EDIT 2: First things first, I took a quick look at my partial Spanish R/S/E/FR/LG table and compared it to the English FR/LG table and everything matched. I still have a feeling, though, that English R/S is lacking some characters, partly because the font had to be adjusted slightly in Spanish (and probably others) language versions of R/S to fit the accent marks and tildes, which didn't happen in FR/LG/E. I'll take a look at that later though.

But in other news, I was adding some default Spanish names of Red and Leaf in FR/LG to Bulbapedia, since nobody had bothered to add them yet. And, while I was doing so, I noticed this:

[img]http://i55.tinypic.com/65qpky.jpg[/img] [img]http://i55.tinypic.com/akh9xt.jpg[/img]

As far as I know, that's the only way you can get names with non-English characters in them. While I haven't tested this with Pal Park, they will most likely be glitched, seeing as other similar names have this problem. Oops!

I still need to check if there are names like that for R/S/E, though…

EDIT 3: I tried trading the problematic Pokémon to an English version of FireRed and an English version of Ruby. As already stated, FR/LG has a foreign character set, so there were no problems. But to my surprise, it worked perfectly in R/S too – it actually has the foreign characters in its character table!

[img]http://i54.tinypic.com/24q6cqv.jpg[/img] [img]http://i54.tinypic.com/8xmzyp.jpg[/img]
[img]http://i55.tinypic.com/2vd1a14.jpg[/img] [img]http://i55.tinypic.com/5tyv0x.jpg[/img]

Now I REALLY wonder why it's not possible to input non-English characters in any Gen III game… it wouldn't have caused any problems (besides Pal Park, which most likely wouldn't have been an oversight if inputting non-English characters were possible).

Re: Pal Park glitch in foreign versions

Posted by: Háčky
Date: 2014-11-17 00:36:26
I know this is an old thread, but I came across it while looking up information about the Generation III character tables for something Im working on, and wanted to point out something that seems to have been missed.

All language versions of the Generation III games are trade-compatible, including the Japanese versions. To make this possible, the Western versions of the games include the full Japanese font in addition to the Western font, and use it to display nicknames/OT names for Pokémon traded from a Japanese game. Conversely, the Japanese versions do not contain the full Western font. The basic Latin letters are included in the Japanese character table, but the letters with acute/grave/circumflex accents, diaereses, French , Spanish , and German are not. The German umlauts do exist in the Japanese table, which explains why the German games included these in their nicknaming palette but the French, Italian, and Spanish games did not allow accents.

The Spanish localizers seem to have slipped up by putting these accented names in FR/LG, because trading these Pokémon to a Japanese Generation III game should cause exactly the same issue that it does in Pal Park. Because of the character limit in the Japanese games, they ought to be displayed like SEEL (for SEELÍN) or LVAR (for ÁLVARO), but I dont have Spanish or Japanese save files on hand to verify this.

I find it curious that the single and double quotation marks are available for nicknaming, because these characters change between the different language versions. The double quotes (hex B2 and B3) are in English, Italian, and Spanish; «» in French; in German; and in Japanese. The single quotes (hex B4 and B5) are the same in all Western versions (the French were instead inserted at hex 85 and 86 in the European localizations) but turn into in Japanese. (I suppose its not really an issue that their appearance changes if theyre being used as quotation marks, but an apostrophe turning into is rather awkward.)

I wonder what happens to these characters when a Pokémon is transferred to later generations? Does Generation IV overload its quotation mark characters in the same way, and if not, how do these Generation III characters get converted? Since Generations V and VI use Unicode, which Unicode characters are ultimately used when a Pokémon from Generation III is transferred? Does it depend on the language of the originating Generation III game, or the language version used for the Pal Park or Poké Transfer? If Pal Park does have special handling for quotation marks, Id think it could have easily been made to deal with the accented letters as well.

Re: Pal Park glitch in foreign versions

Posted by: Stackout
Date: 2014-11-17 10:52:23

To make this possible, the Western versions of the games include the full Japanese font in addition to the Western font


actually, they only include part of the Japanese font. http://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_III

Re: Pal Park glitch in foreign versions

Posted by: Háčky
Date: 2014-11-17 11:01:34


To make this possible, the Western versions of the games include the full Japanese font in addition to the Western font


actually, they only include part of the Japanese font. http://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_III

The Western font includes remnants of the Japanese font, but the full Japanese font is available separately and is used for Pokémon from Japanese games. For example, the name of Celebi from the Japanese Colosseum bonus disc displays correctly in a Western game even though the katakana was replaced by in the Western font.

Re: Pal Park glitch in foreign versions

Posted by: Stackout
Date: 2014-11-17 12:16:48



To make this possible, the Western versions of the games include the full Japanese font in addition to the Western font


actually, they only include part of the Japanese font. http://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_III

The Western font includes remnants of the Japanese font, but the full Japanese font is available separately and is used for Pokémon from Japanese games. For example, the name of Celebi from the Japanese Colosseum bonus disc displays correctly in a Western game even though the katakana was replaced by in the Western font.


That's interesting; I didn't know that.

Re: Pal Park glitch in foreign versions

Posted by: SatoMew
Date: 2015-02-06 16:28:12
Another interesting thing is that, in my experience, a Japanese Generation III save file loads fine in the Western versions while the opposite is not true; Japanese versions recognize the Western game save data as being invalid or corrupted.


The Western font includes remnants of the Japanese font, but the full Japanese font is available separately and is used for Pokémon from Japanese games. For example, the name of Celebi from the Japanese Colosseum bonus disc displays correctly in a Western game even though the katakana was replaced by in the Western font.


Is that why the player's name becomes messed up when a Japanese save file is loaded on a Western game?

Re: Pal Park glitch in foreign versions

Posted by: Háčky
Date: 2015-02-14 12:45:45

The Western font includes remnants of the Japanese font, but the full Japanese font is available separately and is used for Pokémon from Japanese games. For example, the name of Celebi from the Japanese Colosseum bonus disc displays correctly in a Western game even though the katakana was replaced by in the Western font.

Is that why the player's name becomes messed up when a Japanese save file is loaded on a Western game?

The players name is always shown with the Western font on a Western game, so any of the characters that were replaced in that font will be displayed wrong. But any Pokémon that were caught in the Japanese game will still show their OT correctly, because the Western games check the language code stored in the Pokémon data and display the nickname and OT using the Japanese font if necessary.




I found the Pal Park character conversion table at offset $ED734 of the ARM9 binary (offset $F1734 of the ROM) in Pokémon Diamond (English, Rev 5). It consists of 247 entries, which correspond to the Generation III characters $00$F6. Each entry is two 16-bit values, which are the equivalent fullwidth (Japanese) and halfwidth (Western) Generation IV character codes. For characters like kana, which dont have separate halfwidth and fullwidth forms in the game, the two mappings are the same.

This table doesnt bother to account for any of the differences between Generation IIIs Japanese and Western fonts other than the halfwidthfullwidth distinction; for example, the halfwidth mapping for Gen IIIs character $B7 is (Gen IV $0112) rather than the Pokédollar sign (Gen IV $01A8). Characters $01$A0 are mapped to kana instead of accented Latin letters, as is evident from this glitch. Also, characters $B1 and $B2 are mapped to the Japanese-style quotation marks (Gen IV $00EA and $00EB), but it turns out theres a good excuse for that.

Function $2015D88 carries out the name conversion using this table. It converts to fullwidth characters if the given language code is 1 (Japanese), or halfwidth characters otherwise. It also does two interesting things:


This is sufficient to correctly convert any valid nickname given through the nickname screen in Generation III, but not names like NIDRÁN that use characters (other than the quotation marks) which didnt exist in the Japanese versions of Generation III.

The conversion table is identical in the English, European, and Korean versions of Diamond/Pearl; for whatever reason, I havent been able to find it in the Japanese Diamond/Pearl or in Platinum/HeartGold/SoulSilver.

Re: Pal Park glitch in foreign versions

Posted by: SatoMew
Date: 2015-02-14 12:57:24
Wow, that's some nifty info you found.


The players name is always shown with the Western font on a Western game, so any of the characters that were replaced in that font will be displayed wrong. But any Pokémon that were caught in the Japanese game will still show their OT correctly, because the Western games check the language code stored in the Pokémon data and display the nickname and OT using the Japanese font if necessary.

I see, thanks for clearing it up. I already knew about the Pokémon data being displayed properly so that's why I asked.


Function $2015D88 carries out the name conversion using this table. It converts to fullwidth characters if the given language code is 1 (Japanese), or halfwidth characters otherwise.

Would this also explain why the Generation IV games use a different Japanese font in regular text on Western versions? It is a different font from that used in the Japanese versions. This does not occur in the Generation III and V games, by the way.


The conversion table is identical in the English, European, and Korean versions of Diamond/Pearl; for whatever reason, I havent been able to find it in the Japanese Diamond/Pearl or in Platinum/HeartGold/SoulSilver.

IIRC Korean Generation IV games can not display Pokémon names from foreign games (and vice-versa). Since the conversion table is in the Korean Diamond and Pearl ROMs, does this mean that it is not used, or am I missing something here?

Re: Pal Park glitch in foreign versions

Posted by: Háčky
Date: 2015-02-14 13:44:44

Function $2015D88 carries out the name conversion using this table. It converts to fullwidth characters if the given language code is 1 (Japanese), or halfwidth characters otherwise.

Would this also explain why the Generation IV games use a different Japanese font in regular text on Western versions? It is a different font from that used in the Japanese versions. This does not occur in the Generation III and V games, by the way.

The Japanese and Western games in Generation IV have exactly the same character set, which includes separate halfwidth and fullwidth forms of Latin letters and various symbols; all versions can display both forms. Which form is used when a Pokémon is transferred through Pal Park depends on the Pokémons language code, rather than the game version. I dont think there was any technical need to change the font; it may have just been for stylistic reasons.


The conversion table is identical in the English, European, and Korean versions of Diamond/Pearl; for whatever reason, I havent been able to find it in the Japanese Diamond/Pearl or in Platinum/HeartGold/SoulSilver.

IIRC Korean Generation IV games can not display Pokémon names from foreign games (and vice-versa). Since the conversion table is in the Korean Diamond and Pearl ROMs, does this mean that it is not used, or am I missing something here?

The Japanese and Western games dont support Korean characters, but the Korean games do include the character set of the other versions. The Gen-III-to-Gen-IV conversion table is used for Pal Park, which in the Korean version can transfer Pokémon from Generation III games of any language.

Re: Pal Park glitch in foreign versions

Posted by: SatoMew
Date: 2015-02-14 14:04:24

The Japanese and Western games in Generation IV have exactly the same character set, which includes separate halfwidth and fullwidth forms of Latin letters and various symbols; all versions can display both forms. Which form is used when a Pokémon is transferred through Pal Park depends on the Pokémons language code, rather than the game version. I dont think there was any technical need to change the font; it may have just been for stylistic reasons.


Thanks for clarifying. Regarding the font change, I personally think it was a silly decision.


The Japanese and Western games dont support Korean characters, but the Korean games do include the character set of the other versions. The Gen-III-to-Gen-IV conversion table is used for Pal Park, which in the Korean version can transfer Pokémon from Generation III games of any language.


There was a lot of misinformation about the Korean Generation IV games and Pal Park being compatible with any Generation III game was one of the things that I recall not being explained consistently. Your post finally solved the mystery for me :)

Re: Pal Park glitch in foreign versions

Posted by: jfb1337
Date: 2016-09-29 07:15:20
This is why Unicode exists, GF!