Character encoding (Stadium)

Main article: Character encoding (Generation I)
Main article: Character encoding (Generation II)

The Western versions of Pokémon Stadium and Pokémon Stadium 2 use a character encoding based on ISO 8859-1 for its text data. The Japanese versions of Pokémon Stadium, Pokémon Stadium 2, and Pokémon Stadium G&S use the EUC-JP encoding.

Character map

In the Japanese versions, a total of 377JStadStad/369Stad2 characters are supported. In the Western versions, a total of 141Stad/164Stad2 characters are supported. A space ( ) is used as a fallback character for characters not included in a given font.

Western (lower range)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
2- ! " % & ' ( ) * + , - . /
3- 0 1 2 3 4 5 6 7 8 9 : ; = ?
4- A B C D E F G H I J K L M N O
5- P Q R S T U V W X Y Z [ ]
6- a b c d e f g h i j k l m n o
7- p q r s t u v w x y z ~
Western (upper range)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
9- PO Ké ’d ’l ’m ’r ’s ’t ’v c’ d’ j’
A- ¡ l’ m’ n’ $ p’ s’ t’ ª u’ y’
B- ° · º PK MN ¿
C- À Á Â Ä Ç È É Ê Ë Ì Í Î Ï
D- Ñ Ò Ó Ô Ö × Ù Ú Û Ü ß
E- à á â ä ç è é ê ë ì í î ï
F- ñ ò ó ô ö ù ú û ü
Japanese (ASCII)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
2-  
3-
4-
5-
6-
7-
Japanese (JIS X 0208, row 1)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
A1A-  
A1B-
A1C-
A1D- ×
A1E-
A1F-
Japanese (JIS X 0208, row 3)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
A3A-
A3B-
A3C-
A3D-
A3E-
A3F-
Japanese (JIS X 0208, row 4)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
A4A-
A4B-
A4C-
A4D-
A4E-
A4F-
Japanese (JIS X 0208, row 5)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
A5A-
A5B-
A5C-
A5D-
A5E-
A5F-
Differs from ISO 8859-1/EUC-JP
Differs between revisions/languages in Pokémon Stadium
Differs between Pokémon Stadium and Pokémon Stadium 2
Only in Pokémon Stadium
Only in Pokémon Stadium 2
Unused characters
  • In the Japanese versions:
    • Only code sets 0 and 1 of the EUC-JP character encoding are supported, as all bytes from 0x80-FF are interpreted as a leading byte for a double-byte character.
    • Some nonstandard two-byte sequences are supported: the highest bit of the trailing byte does not have to be set, and a leading byte of 0x80 is treated as a padding byte for the single-byte character corresponding to the trailing byte.
    • Code points 0xA1EC and 0xA1ED are mapped to the right quotation marks (, ) in Pokémon Stadium and Pokémon Stadium 2, and to the left quotation marks (, ) in Pokémon Stadium G&S. These code points correspond to the prime symbols (, ) in EUC-JP.
  • In the Western versions:
    • In Pokémon Stadium, the character map does not include the 0x90-9F range.
    • Versions 1.0 and 1.1 of the North American English version and version 1.0 of the European English version of Pokémon Stadium do not map the code point 0xB0 to the glyph for the degree sign (°). It is present in later revisions and in the French, German, Italian, and Spanish versions.

Game Boy Tower

The font used in the menu displayed when pausing a Game Boy game in the Game Boy Tower does not use the standard character map prior to Pokémon Stadium 2. In the Japanese versions of Pokémon Stadium and Pokémon Stadium 2, this text is stored directly as the corresponding glyph indices. In Western versions of Pokémon Stadium, this text uses a modified character map that includes only the lower 0x20-0x7F range; it primarily remaps necessary characters from the upper half of ISO 8859-1 to otherwise unused code points.

Western (Game Boy Tower)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
2- ! " ü ä % & ' ( ) * + , - . /
3- 0 1 2 3 4 5 6 7 8 9 : ; ö : ó ?
4- é A B C D E F G H I J K L M N O
5- P Q R S T U V W X Y Z [ ì ] à
6- í a b c d e f g h i j k l m n o
7- p q r s t u v w x y z ú l á ~ ¿
Legend
Differs from the main font
Differs between revisions/languages
Differs between revisions/languages
Unused characters
  • Versions 1.0 and 1.1 of the North American English version and version 1.0 of the European English version do not map any code points to the glyphs for ä, ö, ü, á, í, ó, ú, and ¿. They are present in later revisions and in the French, German, Italian, and Spanish versions.
  • The North American English versions and version 1.0 of the European English version do not map any code points to the glyphs for à and ì. They are present in version 1.1 of the European English version and in the Italian and Spanish versions.

Character set

The following tables describe the internal indices that correspond to each glyph in the game's font. As the Japanese font only contains 256 distinct glyphs, some of the supported 377 code points are displayed identically; these include the halfwidth and fullwidth forms of most characters.

Western
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0- $ ( ) · % [ ] ° & ~
1- 0 1 2 3 4 5 6 7 8 9 A B C D E F
2- G H I J K L M N O P Q R S T U V
3- W X Y Z ! " × ' * + , - . / : =
4- ? ; PK MN a b c d e f g h i j k
5- l m n o p q r s t u v w x y z Ä
6- Ö Ü ä ö ü ß Á À Â Ç É È Ê Ë Ô Ï
7- Ù Û á à â ç é è ê ë ô ï ù û Í Ì
8- Î Ñ Ó Ò Ú Í Ì Î ñ ó ò ú º ª ¿ ¡
9- PO Ké ’d ’l ’m ’r ’s ’t ’v c’ d’ j’ l’
A- m’ n’ p’ s’ t’ u’ y’
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-
B-
C-
D-
E-
F-
Legend
Standard text characters
Unused characters (displayed as an invisible, zero-width character)
Only in Pokémon Stadium 2
Unused characters only in Pokémon Stadium 2 (displayed as a space of the same width as most lowercase letters)

Transcoding

Text from the Game Boy and Game Boy Color games are transcoded from the proprietary encoding used in those games to the encoding based on ISO 8859-1 or EUC-JP for display using a lookup table, though it is still stored using the proprietary encoding in the game's save file.

The Pokémon Stadium games generally use the transcoding table corresponding to the language of the Pokémon Stadium game, even if a cartridge of a different language is inserted. However, like in the handheld games, when reading Mail in a Western language game, the game uses the character encoding of the language the Mail was written in, rather than the current game's language, which prevents the text from being corrupted. In Pokémon Stadium 2, the same table is used for both Generation I and Generation II games.

Empty cells are unused values that are transcoded as a space (in Western Stadium), as the codepoint 0x80 which displays as a space (in Western Stadium 2), or as a fullwidth space (in Japanese). Note that the characters in the table below for the Japanese versions are specifically transcoded to the canonical fullwidth code point corresponding to the displayed character, even if other code points may display identically.

English
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7- PO Ké
8- A B C D E F G H I J K L M N O P
9- Q R S T U V W X Y Z ( ) : ; [ ]
A- a b c d e f g h i j k l m n o p
B- q r s t u v w x y z à è é ù ß ç
C- Ä Ö Ü ä ö ü ë ï â ô û ê î
D- ’d ’l ’m ’r ’s ’t ’v
E- ' PK MN - + ? ! . & é
F- $ × . / , 0 1 2 3 4 5 6 7 8 9
French and German
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7- PO Ké
8- A B C D E F G H I J K L M N O P
9- Q R S T U V W X Y Z ( ) : ; [ ]
A- a b c d e f g h i j k l m n o p
B- q r s t u v w x y z à è é ù ß ç
C- Ä Ö Ü ä ö ü ë ï â ô û ê î
D- c’ d’ j’ l’ m’ n’ p’ s’ ’s t’ u’ y’
E- ' PK MN - + ? ! . & é
F- $ × . / , 0 1 2 3 4 5 6 7 8 9
Italian and Spanish
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7- PO Ké
8- A B C D E F G H I J K L M N O P
9- Q R S T U V W X Y Z ( ) : ; [ ]
A- a b c d e f g h i j k l m n o p
B- q r s t u v w x y z à è é ù À Á
C- Ä Ö Ü ä ö ü È É Ì Í Ñ Ò Ó Ù Ú á
D- ì í ñ ò ó ú ° & ’d ’l ’m ’r ’s ’t ’v
E- ' PK MN - ¿ ¡ ? ! . & é
F- $ × . / , 0 1 2 3 4 5 6 7 8 9
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-
B-
C-
D-
E-
F- ×
Legend
Standard text characters
Differs between Pokémon Stadium and Pokémon Stadium 2
Only in Pokémon Stadium
Only in Pokémon Stadium 2
Unused characters
Invalid characters in a Mail message
  • 0x50 is treated as a terminator, marking the ends of strings. This applies in all versions, including those where it is not explicitly mapped as such in the transcoding table.
  • 0x5D is transcoded as "TRAINER" in Pokémon Stadium, and causes an Original Trainer name or a Pokémon's nickname to be displayed as "Trainer" if it is the first byte of the name in Pokémon Stadium 2. The exact text depends on the game's language.
  • Italian/Spanish 0xD6 is º (the masculine ordinal indicator) in Pokémon Stadium, and ° (the degree sign) in Pokémon Stadium 2.
  • Japanese 0x1D and 0x25 are transcoded as に  and の  in a Mail message. These two control characters are used in Randy's Mail message.
  • Japanese 0xE4-E5 and 0xE8 are , , and in Pokémon Stadium/Pokémon Stadium 2, and , , and in Pokémon Stadium G&S.
  • If an invalid character is encountered in a Mail message, the game will fall back to the message こんにちは (translated as Good Morning! in the English versions).

Control characters

  • 0x00 () is a terminator, marking the ends of strings.
  • 0x0A () is a line break.
  • 0x25 (%) is used in printf format strings to insert strings or numbers into the displayed text.
  • 0x23 (#) is an escape character for variables. It is followed by a two-digit decimal number in ASCII indicating which variable to display. (Western Pokémon Stadium, Japanese Pokémon Stadium G&S, and Western Pokémon Stadium 2)
  • 0x3C (<) and 0x3E (>) are the escape characters for functions. They enclose the name of the function and its parameters, separated by commas. (Japanese Pokémon Stadium G&S and Western Pokémon Stadium 2)

For functions that perform operations on a stack, the first argument must be LOAD, PUSH, or POP.

  • LOAD sets the state to the value specified by the subsequent arguments.
  • PUSH saves the current state, and sets the state to the value specified by the subsequent arguments.
  • POP loads the saved state. It takes no additional arguments.
Name Function Values
FONT sets the font size in pixels stack (number)
COL1 sets the top gradient text color to the specified RGBA color
(the alpha component applies to the whole text)
stack (number, number, number, number)
COL2 sets the bottom gradient text color to the specified RGBA color
(the alpha component is ignored)
stack (number, number, number, number)
TEX displays an inline image number
LINE sets the line spacing in pixels number
FACE displays a character portrait number, number
DIST sets the character spacing in pixels number
WAZA marks dialogue triggered by using the specified move number, number
KOKA unused
NEMURI marks dialogue triggered by putting the player's Pokémon to sleep number
DOKU marks dialogue triggered by poisoning the player's Pokémon number
DOKUDOKU marks dialogue triggered by badly poisoning the player's Pokémon number
YAKEDO marks dialogue triggered by burning the player's Pokémon number
KOHRI marks dialogue triggered by freezing the player's Pokémon number
MAHI marks dialogue triggered by paralyzing the player's Pokémon number
HIRUMI marks dialogue triggered by causing the player's Pokémon to flinch number
SHIBARI marks dialogue triggered by using Disable number
KONRAN marks dialogue triggered by confusing the player's Pokémon number
MEROMERO marks dialogue triggered by causing the player's Pokémon to become infatuated number
NOROI marks dialogue triggered by using Curse number
AKUMU marks dialogue triggered by using Nightmare number
YADORIGI marks dialogue triggered by using Leech Seed number
HARE marks dialogue triggered by harsh sunlight number
AME marks dialogue triggered by rain number
SUNA unused


Data structure in the Pokémon games
General Character encoding
Generation I Pokémon speciesPokémonPoké MartCharacter encoding (Stadium) • Save
Generation II Pokémon speciesPokémonTrainerCharacter encoding (StadiumKorean) • Save
Generation III Pokémon species (EvolutionPokédexType chart)
Pokémon (substructures) • MoveContestContest moveItem
Trainer TowerBattle FrontierCharacter encoding (GameCube) • Save
Generation IV Pokémon species (EvolutionLearnsets)
PokémonSaveCharacter encoding (Wii)
Generation V–present Character encoding
Generation VIII Save
TCG GB and GB2 Character encoding
Project Games logo.png This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games.