Character encoding (Generation III)
The Generation III games use a proprietary character encoding to store text data. The Generation III encoding is greatly different from the encodings used in previous generations, with characters corresponding to different bytes. Versions of the games in different languages may use different encodings, some more different than others.
Some text strings are stored in fixed-length structures while others are stored in a block of text with separate strings simply terminated by 0xFF. In the large, variable-length blocks, usually another structure will have pointers to the appropriate string(s) within that block of text. In the fixed-length structures, strings are still terminated by 0xFF, but any remainder of the alotted space is padded out with 0x00.
Character sets
Note that 0x00 in the following tables is a space (" "), not empty.
English
The English games will print any of the characters below. However, only the characters on a white background are actually used in text. Characters on a dark gray background are holdovers from the Japanese encoding, while those on a light gray background may be used in a game in a different language.
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F 0- À Á Â Ç È É Ê Ë Ì こ Î Ï Ò Ó Ô 1- Œ Ù Ú Û Ñ ß à á ね ç è é ê ë ì ま 2- î ï ò ó ô œ ù ú û ñ º ª File:Character 0x2C iii.png & + あ 3- ぃ ぅ ぇ ぉ Lv = ょ が ぎ ぐ げ ご ざ じ ず ぜ 4- ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ 5- っ ¿ ¡ PK MN PO Ké Í % ( ) セ ソ 6- タ チ ツ テ ト ナ ニ ヌ â ノ ハ ヒ フ ヘ ホ í 7- ミ ム メ モ ヤ ユ ヨ ラ リ ⬆ ⬇ ⬅ ➡ ヲ ン ァ 8- ィ ゥ ェ ォ ャ ュ ョ ガ ギ グ ゲ ゴ ザ ジ ズ ゼ 9- ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ パ ピ プ ペ ポ A- ッ 0 1 2 3 4 5 6 7 8 9 ! ? . - ・ B- … “ ” ‘ ’ ♂ ♀ $ , × / A B C D E C- F G H I J K L M N O P Q R S T U D- V W X Y Z a b c d e f g h i j k E- l m n o p q r s t u v w x y z ▶ F- : Ä Ö Ü ä ö ü ⬆ ⬇ ⬅ Control characters
Japanese
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F 0- あ い う え お か き く け こ さ し す せ そ 1- た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま 2- み む め も や ゆ よ ら り る れ ろ わ を ん ぁ 3- ぃ ぅ ぇ ぉ ゃ ゅ ょ が ぎ ぐ げ ご ざ じ ず ぜ 4- ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ 5- っ ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ 6- タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ 7- ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ァ 8- ィ ゥ ェ ォ ャ ュ ョ ガ ギ グ ゲ ゴ ザ ジ ズ ゼ 9- ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ パ ピ プ ペ ポ A- ッ 0 1 2 3 4 5 6 7 8 9 ! ? 。 ー ・ B- ・・ 『 』 「 」 ♂ ♀ 円 . × / A B C D E C- F G H I J K L M N O P Q R S T U D- V W X Y Z a b c d e f g h i j k E- l m n o p q r s t u v w x y z ▶ F- : Ä Ö Ü ä ö ü ⬆ ⬇ ⬅ Control characters
Control characters
The characters 0xFA to 0xFF are control characters.
- 0xFA and 0xFB both mark a prompt for the player to press a button to continue the dialogue. However, they will print the new line of dialogue differently: 0xFA will scroll the previous dialogue up one line before printing the next line, while 0xFB will clear the dialogue box entirely.
- 0xFC is an escape character that leads to several different functions.
- When followed by 0x0C, it will escape the byte that follows 0x0C if it is a control character and print a new character. If the second byte after 0xFC is not a control character byte, that byte prints normally.
- When the third byte is 0xFA, "➡" is produced.
- When the third byte is 0xFB, "+" is produced (though in the Japanese games, within the Options screen, it produces "=").
- The other control characters do not produce any characters. In the English games, nothing is printed, while in the Japanese games, miscellaneous data appears to be printed.
- When followed by 0x08 and another byte, it produces a pause in the text. The byte after 0x08 determines the length of the pause.
- When followed by 0x0C, it will escape the byte that follows 0x0C if it is a control character and print a new character. If the second byte after 0xFC is not a control character byte, that byte prints normally.
- 0xFD is an escape character for variables, such as the player's name or a Pokémon's name.
- 0xFE is a line break.
- 0xFF is a terminator, marking the ends of strings.
Trivia
- In the name field for Eggs, the game places the bytes
0x60 0x6F 0x8B
corresponding to タマゴ (tamago, the Japanese word for egg). This remains in the English version even though the characters have been replaced.
|
This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games. |