Character encoding (Generation III): Difference between revisions

m
Text replacement - "'''character encoding'''" to "'''character encoding'''"
m (Typo fix.)
m (Text replacement - "'''character encoding'''" to "'''character encoding'''")
(30 intermediate revisions by 9 users not shown)
Line 1: Line 1:
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.
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.
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 allotted space is padded out with 0x00.


==Character sets==
==Character sets==
Games in different regions use different character sets for the great majority of their text, but all versions of the Generation III games contain and can display all character sets. The character set used for most text is dictated by the region of the game being played, but a Pokémon's name and it's [[Original Trainer]]'s name obey the Pokémon's origin {{DL|Pokémon data structure in Generation III|language}}.
Every Western game in Generation III (English, French, Italian, German, and Spanish games) contains two character sets: their native set and the Japanese set. The different Western character sets are mostly identical, with only a few [[#Regional differences|regional differences]].
 
For most text, the game's native character set is used, but if a Pokémon's origin {{DL|Pokémon data structure (Generation III)|language}} is Japanese, its nickname and its [[Original Trainer]]'s name use the Japanese character set. The Japanese games only have the Japanese character set, but almost all user-enterable characters from the Western versions are encoded to roughly equivalent characters in the Japanese encoding. The key differences are <code>0xB8</code> (a comma in the Western versions but a period in Japanese), <code>0xAE</code> (a hyphen-minus in the Western versions but a {{wp|chōonpu}} in Japanese, which is visually similar), and <code>0xAD</code> and <code>0xB0</code>-<code>0xB4</code> (which display as the Japanese equivalents of the Western characters).


Note that 0x00 in the following tables is a space (" "), not empty.
Note that 0x00 in the following tables is a space (" "), not empty.


===English===
===Western===
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. While all the holdovers from the Japanese encoding (that is characters on a dark gray background) display as themselves in Ruby and Sapphire versions, they appear as spaces in Emerald, FireRed, and LeafGreen versions. Only two exceptions to this rule exist: <code>0x50</code> (っ), which appears as a tall box in those latter three, and <code>0xAF</code> (・), which appears as itself across all games.
The table below shows the English character set in Pokémon Emerald. Some differences do exist between different [[#Differences between games and revisions|revisions and games]] and between different [[#Regional differences|languages]], detailed afterward.
 
Characters on a white background are the only characters that can be input in names; <code>0xF1</code> - <code>0xF6</code> are only available for input in German games. Those on a light gray background may be used in other text strings (such as dialogue) depending on the language of the game. Characters on a dark gray background are unused values that mostly display as spaces in Pokémon FireRed, LeafGreen, and Emerald; in Pokémon Ruby and Sapphire, they are holdovers from the Japanese encoding.


:{| style="text-align: center; border-collapse:collapse" cellpadding="2px" width="375px"
{| class="wikitable" style="text-align: center; border-collapse:collapse" cellpadding="2px" width="375px"
|- style="white-space: nowrap"
! || -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
! 0-
|- style="background:#ddd"
| &nbsp;
! style="background:#fff" | 0-
|style="background: #ddd"| À
| style="background:#fff" | &nbsp;
|style="background: #ddd"| Á
| &Agrave;
|style="background: #ddd"| Â
| &Aacute;
|style="background: #ddd"| Ç
| Â
|style="background: #ddd"| È
| Ç
|style="background: #ddd"| É
| &Egrave;
|style="background: #ddd"| Ê
| &Eacute;
|style="background: #ddd"| Ë
| Ê
|style="background: #ddd"| Ì
| &Euml;
|style="background: #bbb"|
| <font style="font-family: monospace">&Igrave;</font>
|style="background: #ddd"| Î
| style="background:#bbb" |
|style="background: #ddd"| Ï
| <font style="font-family: monospace">Î</font>
|style="background: #ddd"| Ò
| <font style="font-family: monospace">&Iuml;</font>
|style="background: #ddd"| Ó
| &Ograve;
|style="background: #ddd"| Ô
| &Oacute;
| Ô


|- style="background:#ddd"
|-
! style="background:#fff" | 1-
! 1-
| Œ
|style="background: #ddd"| Œ
| &Ugrave;
|style="background: #ddd"| Ù
| &Uacute;
|style="background: #ddd"| Ú
| Û
|style="background: #ddd"| Û
| Ñ
|style="background: #ddd"| Ñ
| ß
|style="background: #ddd"| ß
| &agrave;
|style="background: #ddd"| à
| &aacute;
|style="background: #ddd"| á
| style="background:#bbb" |
|style="background: #bbb"|
| ç
|style="background: #ddd"| ç
| &egrave;
|style="background: #ddd"| è
| style="background:#fff" | &eacute;
|style="background: #ddd"| é
| ê
|style="background: #ddd"| ê
| &euml;
|style="background: #ddd"| ë
| &igrave;
|style="background: #ddd"| ì
| style="background:#bbb" |
|style="background: #bbb"|


|- style="background:#ddd"
|-
! style="background:#fff" | 2-
! 2-
| î
|style="background: #ddd"| î
| &iuml;
|style="background: #ddd"| ï
| &ograve;
|style="background: #ddd"| ò
| &oacute;
|style="background: #ddd"| ó
| ô
|style="background: #ddd"| ô
| œ
|style="background: #ddd"| œ
| &ugrave;
|style="background: #ddd"| ù
| &uacute;
|style="background: #ddd"| ú
| û
|style="background: #ddd"| û
| ñ
|style="background: #ddd"| ñ
| º
|style="background: #ddd"| º
| ª
|style="background: #ddd"| ª
| ᵉʳ
|style="background: #ddd"| ᵉʳ
| style="background:#fff" | &
|style="background: #ddd"| &
| style="background:#fff" | +
|style="background: #ddd"| +
| style="background:#bbb" |
|style="background: #bbb"|


|- style="background:#bbb"
|-
! style="background:#fff" | 3-
! 3-
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
| style="background:#fff" | <small>Lv</small>
|style="background: #ddd"| <div style="border-bottom:1px dotted" title="Differs between regions"><small>Lv</small></div>
| style="background:#fff" | =
|style="background: #ddd"| =
| style="background:#fff" | ;
|style="background: #ddd"| ;
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|


|- style="background:#bbb"
|-
! style="background:#fff" | 4-
! 4-
| || || || || || || || || || || || || || ぷ || ぺ ||
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|


|-
|-
! 5-
! 5-
| style="background:#bbb" |
| style="background:#ddd" |
| style="background:#ddd" | ¿
| style="background:#ddd" | ¿
| style="background:#ddd" | ¡
| style="background:#ddd" | ¡
| {{PK}}
| style="background:#ddd" | {{PK}}
| {{MN}}
| style="background:#ddd" | {{MN}}
| <sup>P</sup><sub>O</sub>
| style="background:#ddd" | <sup>P</sup><sub>O</sub>
| <sup>K</sup><sub>é</sub>
| style="background:#ddd" | <sup>K</sup><sub>é</sub>
| [[Image:Character 0x57 iii.png]]
| style="background:#ddd" | <div style="border-bottom:1px dotted" title="Differs between regions">[[File:Character 0x57 iii.png]]</div>
| [[Image:Character 0x58 iii.png]]
| style="background:#ddd" | <div style="border-bottom:1px dotted" title="Differs between regions">[[File:Character 0x58 iii.png]]</div>
| [[Image:Character 0x59 iii.png]]
| style="background:#ddd" | <div style="border-bottom:1px dotted" title="Differs between regions">[[File:Character 0x59 iii.png]]</div>
| style="background:#ddd" | <font style="font-family: monospace">&Iacute;</font>
| style="background:#ddd" | Í
|%
| style="background:#ddd" | %
| (
| style="background:#ddd" | (
| )
| style="background:#ddd" | )
| style="background:#bbb" |
| style="background:#bbb" | <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
| style="background:#bbb" |
| style="background:#bbb" | <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
|- style="background:#bbb"


! style="background:#fff" | 6-
|-
| || || || || || || ニ || ヌ || style="background:#ddd" | â
! 6-
| || || || || || || style="background:#ddd" | &iacute;
|style="background: #bbb"| <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
|style="background: #bbb"| <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
|style="background: #bbb"| <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
|style="background: #bbb"| <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
|style="background: #bbb"| <div style="border-bottom:1px dotted" title="Differs between regions">&nbsp;</div>
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #ddd"| â
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #ddd"| í


|- style="background:#bbb"
|-
! style="background:#fff" | 7-
! 7-
| || || || || || || || || リ
|style="background: #bbb"|
| style="background:#fff" |
|style="background: #bbb"|
| style="background:#fff" |
|style="background: #bbb"|
| style="background:#fff" |
|style="background: #bbb"|
| style="background:#fff" |
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|
|style="background: #bbb"|
|style="background: #bbb"|
| style="background:#ddd" |
| style="background:#ddd" |
| style="background:#ddd" |
| style="background:#ddd" |
| style="background:#ddd" | *
| style="background:#ddd" | *
| style="background:#ddd" | *


|- style="background:#bbb"
|-
! style="background:#fff" | 8-
! 8-
| || ゥ || ェ ||
| style="background:#ddd" | *
| style="background:#ddd" | *
| style="background:#ddd" | *
| style="background:#ddd" | *
| style="background:#ddd" | ᵉ
| style="background:#ddd" | ᵉ
| style="background:#ddd" | <
| style="background:#ddd" | &lt;
| style="background:#ddd" | >
| style="background:#ddd" | &gt;
| || || || || || || || ||
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|


|- style="background:#bbb"
|-
! style="background:#fff" | 9-
! 9-
| || || || || || || || || || || || || || プ || ペ ||
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|


|-
|-
! A-
! A-
| style="background:#ddd" | ʳᵉ || 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 ||! ||? || . || - || style="background:#bbb" |
| style="background:#ddd" | ʳᵉ
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 ||! ||? || . || - || style="background:#bbb" |
|-
|-
! B-
! B-
| … || “ || || ‘ || ’ || ♂ || ♀ || {{pdollar}} || , || × || / || A || B || C || D || E
| …
| <div style="border-bottom:1px dotted" title="Differs between regions"></div>
| <div style="border-bottom:1px dotted" title="Differs between regions"></div>
| ‘ || ’ || ♂ || ♀ || style="background:#ddd" | {{pdollar}} || , || style="background:#ddd" | × || / || A || B || C || D || E
|-
|-
! C-
! C-
Line 155: Line 226:
|-
|-
! E-
! E-
| l || m || n || o || p || q || r || s || t || u || v || w || x || y || z ||
| l || m || n || o || p || q || r || s || t || u || v || w || x || y || z || style="background:#ddd" | ►
 
|- style="background:#fff"
! F-
| style="background:#ddd" | :
| Ä
| Ö
| Ü
| ä
| ö
| ü
| style="background:#bbb" |
| style="background:#bbb" |
| style="background:#bbb" |
| colspan=6 style="background:#ddd" | ''Control characters''
|}
 
====Differences between games and revisions====
Codepoint <code>0xB0</code> represents an {{wp|ellipsis}}. In Pokémon Ruby, Sapphire, Colosseum, and XD, it renders as a two-dot ellipsis (<code>‥</code>). In Pokémon FireRed, LeafGreen, and Emerald, it renders as a three-dot ellipsis (<code>…</code>) in the main font, but remains a two-dot ellipsis in the small font used on the party screen and the narrow font used in the Pokédex, bag, and shops. In subsequent generations, this character renders consistently as a three-dot ellipsis.
 
Codepoints <code>0x7D</code>-<code>0x83</code>, marked by asterisks (*) above, print spaces 1-7 pixels wide (in ascending order of the hex value). In FireRed and LeafGreen, <code>0x50</code> and <code>0x7D</code>-<code>0x83</code> are not used and print as regular spaces like other unused characters.
 
In certain languages, codepoints <code>0x34</code>, <code>0x57</code>-<code>0x59</code>, and <code>0x64</code> differ between games, [[#Regional differences|as detailed below]].
 
In Pokémon Ruby and Sapphire, many values print Japanese characters—holdovers from the original Japanese encoding. These include:
* All unused characters (on a dark gray background above)
* <code>0x50</code> and <code>0x7D</code> - <code>0x83</code>
* <code>0x36</code>, <code>0x84</code> - <code>0x86</code>, and <code>0xA0</code>, in version 1.0 of the English Ruby and Sapphire only
 
====Regional differences====
A few characters differ between regions, and among them are quotation marks. These can be input into names, which means a Pokémon with quotation marks in its nickname or OT name will display differently if traded to a game of a different region.
 
In the table below, the underscores (<code>_</code>) stand for spaces.
 
{| class="wikitable" style="text-align: center; background-color: #fff;"
!
! English
! Spanish
! Italian
! German
! French
 
|- style="background-color:#ddd"
! <code>0x34</code>
| <small>Lv</small>
| <small>Nv</small>{{sup/3|RS}}<br><small>Nv.</small>{{sup/3|E}}{{sup/3|FRLG}}
| <small>L.</small>
| <small>Lv.</small>
| <small>N.</small>
 
|- style="background-color:#ddd"
! <code>0x57</code> - <code>0x59</code>
| [[Image:Character 0x57 iii.png]][[Image:Character 0x58 iii.png]][[Image:Character 0x59 iii.png]]
| [[Image:Character 0x57 es iii.png]][[Image:Character 0x58 es iii.png]][[Image:Character 0x59 es iii.png]]
| _, _, <sub>M</sub>{{sup/3|RS}}<br>_, _, _{{sup/3|E}}{{sup/3|FRLG}}
| [[Image:Character 0x57 de iii.png]][[Image:Character 0x58 de iii.png]][[Image:Character 0x59 de iii.png]]
| [[Image:Character 0x57 fr iii.png]][[Image:Character 0x58 fr iii.png]][[Image:Character 0x59 fr iii.png]]
 
|- style="background-color:#bbb"
! <code>0x5E</code> - <code>0x63</code>
| colspan=2 |
| style="background-color:#ddd" | [[Image:Character 0x5E it iii.png]][[Image:Character 0x5F it iii.png]][[Image:Character 0x60 it iii.png]][[Image:Character 0x61 it iii.png]][[Image:Character 0x62 it iii.png]][[Image:Character 0x63 it iii.png]]
| colspan=2 |
 
|-
! <code>0x64</code>
| colspan=4 style="background-color:#bbb" |
| style="background-color:#ddd" | <small>[[Battle Point|Pco]]</small>{{sup/3|E}}
 
|-
! <code>0xB1</code>
| colspan=3 | “
| „
| «
 
|-
! <code>0xB2</code>
| colspan=3 | ”
| “
| »


|- style="background:#ddd"
! style="background:#fff" | F-
| style="background:#fff" |:
| &Auml;
| &Ouml;
| &Uuml;
| &auml;
| &ouml;
| &uuml;
| style="background:#bbb" | ⬆
| style="background:#bbb" | ⬇
| style="background:#bbb" | ⬅
| style="background:#fff" colspan=6 | ''Control characters''
|}
|}


===Japanese===
===Japanese===
:{| style="text-align: center; border-collapse:collapse" cellpadding="2px" width="375px"
Only the characters on a white background below can be input in names. The characters on a dark gray background are printed as spaces in Pokémon FireRed, LeafGreen, and Emerald. Otherwise, the Japanese character set has no differences between games or revisions. Codepoint <code>0xB0</code> represents an {{wp|ellipsis}}, which renders as a two-dot ellipsis (<code lang="ja">‥</code>) in-game. In subsequent generations, this character renders consistently as a three-dot ellipsis.
|-
 
{| class="wikitable" style="text-align: center; border-collapse:collapse" cellpadding="2px" width="375px"
|- style="white-space: nowrap"
! || -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
|-
|-
Line 211: Line 350:
|-
|-
! B-
! B-
| style="letter-spacing:-5px" | <small>・・</small> || 『 || 』 || 「 || 」 || ♂ || ♀ || 円 || . || × || / || A || B || C || D || E
| lang="ja" | || 『 || 』 || 「 || 」 || ♂ || ♀ || style="background:#ddd" | 円 || style="background:#ddd" | . || style="background:#ddd" | × || || A || B || C || D || E
|-
|-
! C-
! C-
Line 220: Line 359:
|-
|-
! E-
! E-
| l || m || n || o || p || q || r || s || t || u || v || w || x || y || z ||
| l || m || n || o || p || q || r || s || t || u || v || w || x || y || z || style="background:#ddd" | ►
|-
|-
! F-
! F-
|: || &Auml; || &Ouml; || &Uuml; || &auml; || &ouml; || &uuml; || || || || colspan=6 | ''Control characters''
|style="background: #ddd"|
|style="background: #ddd"| Ä
|style="background: #ddd"| Ö
|style="background: #ddd"| Ü
|style="background: #ddd"| ä
|style="background: #ddd"| ö
|style="background: #ddd"| ü
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #bbb"|
|style="background: #ddd" colspan=6 | ''Control characters''
|}
|}


Line 243: Line 392:
*0x09, the game will pause text display, and resume upon pressing a button.
*0x09, the game will pause text display, and resume upon pressing a button.
*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.
*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 0xFA, "" is produced.
**When the third byte is 0xFB, "+" is produced (though in the Japanese games, within the [[Options]] screen, it produces "=").
**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.
**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.
*0x0D, the text will be shifted by a certain amount of pixels, depending on the byte following this one. The effect wears off upon entering a new line.
*0x0D, the text will be shifted by a certain amount of pixels, depending on the byte following this one. The effect wears off upon entering a new line.
*0x10, music will begin to play. Music is specified by the two bytes following, in [[wp:Endianness|little endian]] format.
*0x10, music will begin to play. Music is specified by the two bytes following, in [[wp:Endianness|little endian]] format.
*0x15, text will be rendered slightly larger and more spread out.
*0x15, text will be rendered in the Japanese font
*0x16, text will be rendered at the default size and spread.
*0x16, text will be rendered in the International font
*0x17, music will be paused.
*0x17, music will be paused.
*0x18, music will resume playing.
*0x18, music will resume playing.
Line 264: Line 413:
| 0x00
| 0x00
| Transparent
| Transparent
| style="background: #FFF" |  
| style="background: #FFF" |
| style="background: #FFF" |  
| style="background: #FFF" |
|-  
|-
| 0x01
| 0x01
| style="background: #444" |  
| style="background: #444" |
| style="background: #FFF" |  
| style="background: #FFF" |
| style="background: #FFF" |  
| style="background: #FFF" |
|-
|-
| 0x02
| 0x02
| style="background: #F00" |  
| style="background: #F00" |
| style="background: #666" |  
| style="background: #666" |
| style="background: #666" |  
| style="background: #666" |
|-
|-
| 0x03
| 0x03
| style="background: #0F0" |  
| style="background: #0F0" |
| style="background: #DDD" |  
| style="background: #DDD" |
| style="background: #DDD" |  
| style="background: #DDD" |
|-
|-
| 0x04
| 0x04
| style="background: #00F" |  
| style="background: #00F" |
| style="background: #F00" |  
| style="background: #F00" |
| style="background: #F00" |
| style="background: #F00" |
|-
|-
| 0x05
| 0x05
| style="background: #FF0" |  
| style="background: #FF0" |
| style="background: #FB7" |  
| style="background: #FB7" |
| style="background: #FB7" |  
| style="background: #FB7" |
|-
|-
| 0x06
| 0x06
| style="background: #0FF" |  
| style="background: #0FF" |
| style="background: #290" |  
| style="background: #290" |
| style="background: #290" |  
| style="background: #290" |
|-
|-
| 0x07
| 0x07
| style="background: #F0F" |  
| style="background: #F0F" |
| style="background: #9F9" |  
| style="background: #9F9" |
| style="background: #9F9" |  
| style="background: #9F9" |
|-
|-
| 0x08
| 0x08
| style="background: #DDD" |  
| style="background: #DDD" |
| style="background: #35C" |  
| style="background: #35C" |
| style="background: #35C" |  
| style="background: #35C" |
|-
|-
| 0x09
| 0x09
| style="background: #000" |  
| style="background: #000" |
| style="background: #ACF" |  
| style="background: #ACF" |
| style="background: #ACF" |  
| style="background: #ACF" |
|-
|-
| 0x0A
| 0x0A
| style="background: #000" |  
| style="background: #000" |
| style="background: #FFF" |  
| style="background: #FFF" |
| style="background: #FFF" |  
| style="background: #FFF" |
|-
|-
| 0x0B
| 0x0B
| style="background: #EEE" |  
| style="background: #EEE" |
| style="background: #DEF" |  
| style="background: #DEF" |
| style="background: #EEE" |  
| style="background: #EEE" |
|-
|-
| 0x0C
| 0x0C
| style="background: #FFF" |  
| style="background: #FFF" |
| style="background: #ADE" |  
| style="background: #ADE" |
| style="background: #FFF" |  
| style="background: #FFF" |
|-
|-
| 0x0D
| 0x0D
| style="background: #9CF" |  
| style="background: #9CF" |
| style="background: #EFF" |  
| style="background: #EFF" |
| style="background: #0F9" |  
| style="background: #0F9" |
|-
|-
| 0x0E
| 0x0E
| style="background: #7BE" |  
| style="background: #7BE" |
| style="background: #7AC" |  
| style="background: #7AC" |
| style="background: #0CB" |  
| style="background: #0CB" |
|-
|-
| 0x0F
| 0x0F
| style="background: #FFF" |  
| style="background: #FFF" |
| style="background: #47A" |  
| style="background: #47A" |
| style="background: #47A" |  
| style="background: #47A" |
|}
|}


===0xFD variables===
===0xFD variables===
When 0xFD is followed by the bytes below, the following variables are printed.
When 0xFD is followed by one of the following bytes, it prints a text variable or version-dependent text. Version-dependent text is only used in Pokémon Ruby, Sapphire, and Emerald; in Pokémon Emerald, all of these values are the same as Pokémon Sapphire, except the version name. The text printed by version-dependent text variables is constant within a single game, but varies between versions and languages.
 
;Text variables
*0x01: the player's name
*0x01: the player's name
*0x02, 0x03, or 0x04: whatever text has been assigned to one of three buffers using a variety of script commands
*0x02, 0x03, or 0x04: whatever text has been assigned to one of three buffers using a variety of script commands
*0x06: the rival's name
*0x06: the rival's name
*0x07: the game's name{{sup/3|RSE}}
 
*0x08: the name of the villainous team{{sup/3|RSE}}
;Version-dependent text
*0x09: the name of the non-villainous team{{sup/3|RSE}}
{| class="wikitable"
*0x0A: the name of the villainous team's leader{{sup/3|RSE}}
! rowspan=2 | Variable ID
*0x0B: the name of the non-villainous team's leader{{sup/3|RSE}}
! rowspan=2 | Description
*0x0C: the name of the villainous team's legendary Pokémon{{sup/3|RSE}}
! colspan=5 | English content
*0x0D: the name of the opposing legendary Pokémon{{sup/3|RSE}}
|-
! {{GameIcon|Ru}}
! {{GameIcon|Sa}}
! {{GameIcon|Em}}
|-
| 0x07 || the game's name || RUBY || SAPPHIRE || EMERALD
|-
| 0x08 || the name of the villainous team || MAGMA ||colspan=2| AQUA
|-
| 0x09 || the name of the non-villainous team || AQUA ||colspan=2| MAGMA
|-
| 0x0A || the name of the villainous team's leader || MAXIE ||colspan=2| ARCHIE
|-
| 0x0B || the name of the non-villainous team's leader || ARCHIE ||colspan=2| MAXIE
|-
| 0x0C || the name of the villainous team's Legendary Pokémon || GROUDON ||colspan=2| KYOGRE
|-
| 0x0D || the name of the opposing Legendary Pokémon || KYOGRE ||colspan=2| GROUDON
|}


==Trivia==
==Trivia==