Difference between revisions of "GXT"
(gxt tokens) |
WastedHymn (talk | contribs) (Add gxt file links for IV, SA, VCS, LCS) |
||
(29 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{TocRight}} |
− | A '''G'''TA Te'''xt''' (''GXT'') file contains | + | A '''G'''TA Te'''xt''' (''GXT'') file is a file that contains strings that are presented to the player in GTA2 and above. Their placement differs between games, but GXT files are usually located in a <code>text</code> directory in the game installation folder. In games other than [[GTA 2]], there is one GXT file for each language, but the number of GXT files does not necessarily match the number of supported languages. |
+ | |||
+ | == Purpose == | ||
+ | GXT files act as dictionaries that map short, symbolic strings (or some other unique value) to longer strings. Programmers use only the short key strings (such as "GM_OVR"), and then before these strings are shown to the user they are replaced with translated versions in their own language – "Game Over" if the user selected the English language. This allows the game to be easily translated into other languages without the need for major code changes: translators can simply translate the game text into the correct language and strings from the new language's GXT file will be used if the player selects that language. | ||
== File format == | == File format == | ||
=== GTA 2 === | === GTA 2 === | ||
− | GTA 2 | + | GTA 2's GXT files begin with a header followed by a ''TKEY'' block and then a ''TDAT'' block. The TKEY block contains an array of entries that give the offset and name of the corresponding entry in the TDAT table. The TDAT entry contains the text that will be displayed in the game. |
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
Line 11: | Line 14: | ||
!Offset ||Type ||Description | !Offset ||Type ||Description | ||
|- | |- | ||
− | |0x00 ||char[ | + | |0x00 ||char[3] ||style="width: 100%;" |<code>GBL</code> |
− | * | + | |- |
− | * | + | |0x03 ||char || |
− | * | + | * <code>E</code>: English |
− | * | + | * <code>F</code>: French |
− | * | + | * <code>G</code>: German |
− | * | + | * <code>I</code>: Italian |
+ | * <code>S</code>: Spanish | ||
+ | * <code>J</code>: Japanese | ||
|- | |- | ||
|0x04 ||word ||File version, always ''100'' | |0x04 ||word ||File version, always ''100'' | ||
Line 23: | Line 28: | ||
!colspan="3" |Block 1 (TKEY) | !colspan="3" |Block 1 (TKEY) | ||
|- | |- | ||
− | |0x06 ||char[4] || | + | |0x06 ||char[4] ||<code>TKEY</code> |
|- | |- | ||
|0x0A ||dword ||Size of TKEY block | |0x0A ||dword ||Size of TKEY block | ||
Line 47: | Line 52: | ||
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 ||char[4] || | + | |0x00 ||char[4] ||<code>TDAT</code> |
|- | |- | ||
|0x04 ||dword ||Size of TDAT block | |0x04 ||dword ||Size of TDAT block | ||
Line 65: | Line 70: | ||
* <code>0x216D</code>: Russian | * <code>0x216D</code>: Russian | ||
* <code>0x216E</code>: Neutral | * <code>0x216E</code>: Neutral | ||
+ | * <code>0x2170</code>: Police | ||
* <code>0x2172</code>: Redneck | * <code>0x2172</code>: Redneck | ||
* <code>0x2173</code>: Scientist | * <code>0x2173</code>: Scientist | ||
Line 73: | Line 79: | ||
=== GTA III === | === GTA III === | ||
− | GTA III | + | GTA III's GXT files are identical to those of GTA 2, except that they do not have headers – they start with the TKEY block instead. There is also no special treatment of characters starting with <code>0x21</code> in TDAT entries. |
+ | |||
+ | The Xbox version of Vice City uses this format as well. | ||
+ | |||
+ | === GTA VC/LCS/VCS === | ||
+ | In Vice City, Vice City Stories and Liberty City Stories, there is a new ''TABL'' block which precedes the TKEY block. The Xbox version of Vice City uses the GTA III format. | ||
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
− | !colspan="3" |Block 1 ( | + | !colspan="3" |Block 1 (TABL) |
|- | |- | ||
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 ||char[4] || | + | |0x00 ||char[4] ||<code>TABL</code> |
|- | |- | ||
− | |0x04 ||dword ||Size of | + | |0x04 ||dword ||Size of TABL block |
|- | |- | ||
− | |0x08 || | + | |0x08 ||TABL[n] ||Array of TABL entries, where n is the number of entries. All entries are sorted in alphabetical order except the first one, <code>MAIN</code>. |
|} | |} | ||
<div style="margin-left: 3em;"> | <div style="margin-left: 3em;"> | ||
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
− | |+ style="text-align: left;" | | + | |+ style="text-align: left;" |TABL ({{Hint|0xC|12}} bytes): |
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 || | + | |0x00 ||char[8] ||TKEY entry name |
|- | |- | ||
− | |0x04 || | + | |0x04 ||dword ||TKEY entry offset. The value is absolute. |
|} | |} | ||
</div> | </div> | ||
− | The absolute location of the | + | The absolute location of the TKEY block is simply the TKEY entry offset. The TKEY block format is slightly different for the first block named <code>MAIN</code>. Hover over the dotted lines for information specific to that block. All other blocks follow the format shown below. |
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
− | !colspan="3" |Block 2 ( | + | !colspan="3" |Block 2 (TKEY) |
|- | |- | ||
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 ||char[4] || | + | |{{Hint|0x00|Omit for MAIN}} ||char[8] ||TKEY entry name |
+ | |- | ||
+ | |{{Hint|0x08|0x00 for MAIN}} ||char[4] ||<code>TKEY</code> | ||
|- | |- | ||
− | |0x04 ||dword ||Size of | + | |{{Hint|0x0C|0x04 for MAIN}} ||dword ||Size of TKEY block |
|- | |- | ||
− | |0x08 || | + | |{{Hint|0x10|0x08 for MAIN}} ||TKEY[n] ||Array of TKEY entries, where n is the number of entries. All entries are sorted in alphabetical order. |
|} | |} | ||
<div style="margin-left: 3em;"> | <div style="margin-left: 3em;"> | ||
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
− | |+ style="text-align: left;" | | + | |+ style="text-align: left;" |TKEY ({{Hint|0xC|12}} bytes): |
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 || | + | |0x00 ||dword ||TDAT entry offset. The value is relative to the location of the first entry of the array, which is, in absolute term, TKEY entry offset + size of TKEY block + {{Hint|16|12 for MAIN}}. |
+ | |- | ||
+ | |0x04 ||char[8] ||TDAT entry name | ||
|} | |} | ||
</div> | </div> | ||
− | + | The absolute location of the TDAT block is the TKEY entry offset + size of TKEY block + {{Hint|16|8 for MAIN}}. | |
− | + | ||
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
− | !colspan="3" |Block | + | !colspan="3" |Block 3 (TDAT) |
|- | |- | ||
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 ||char[4] || | + | |0x00 ||char[4] ||<code>TDAT</code> |
|- | |- | ||
− | |0x04 ||dword ||Size of | + | |0x04 ||dword ||Size of TDAT block |
|- | |- | ||
− | |0x08 || | + | |0x08 ||TDAT[n] ||Array of TDAT entries, where n is the number of entries. Entries are not sorted in alphabetical order but their order comes from the order of their entry in the [[#External links|GXT source file]]. |
|} | |} | ||
<div style="margin-left: 3em;"> | <div style="margin-left: 3em;"> | ||
{|class="wikitable" style="max-width: 64em;" | {|class="wikitable" style="max-width: 64em;" | ||
− | |+ style="text-align: left;" | | + | |+ style="text-align: left;" |TDAT (m bytes): |
!Offset ||Type ||style="width: 100%;" |Description | !Offset ||Type ||style="width: 100%;" |Description | ||
|- | |- | ||
− | |0x00 || | + | |0x00 ||wchar_t[m] ||An array of wide characters (2 bytes per character) to be displayed in the game, where m is the number of characters. The array is terminated by a null character (<code>0x0000</code>). The characters are based on the character table in the fonts.txd file, which mostly follows ASCII. The location of the entry in absolute term is TDAT entry offset + size of TKEY block + 16. |
− | |||
− | |||
|} | |} | ||
</div> | </div> | ||
− | + | === GTA SA/IV === | |
+ | Each GXT file contains certain tables with entries. And each entry has a unique CRC identifier and a normal text. | ||
+ | |||
+ | ==== Header ==== | ||
+ | The header contains information about the GXT version. | ||
+ | |||
+ | INT16 - 2b - Version (4) | ||
+ | INT16 - 2b - Number of bits per character (8: ASCII, 16: UTF-16) | ||
− | + | ==== Table Block ==== | |
− | + | The ''Table Block'' contains data about the subtables and their offsets. | |
− | + | ||
− | + | CHAR[4] - 4b - TABL | |
− | + | INT32 - 4b - Blocksize | |
− | + | ||
− | + | //Array of [Blocksize / 12 Entries] | |
− | + | CHAR[8] - 8b - Subtablename | |
− | + | INT32 - 4b - Offset | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | The | + | The Offset of the subtable points to an 8-byte Char Array with the subtable's name, followed by TKEY. For the MAIN Table this points directly to TKEY! |
− | + | GTA San Andreas has a limit of max 200 tables to be stored per GXT file. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | ==== TKEY and TDAT ==== |
− | + | ===== TKEY ===== | |
− | + | The TKEY Block of an subtable contains the CRC32-values of the entrytitles. The game calculates the CRC32-value out of a given string and checks if they exist in the GXT. | |
− | The | ||
− | + | CHAR[4] - 4b - TKEY | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | CHAR[4] - 4b - TKEY | ||
INT32 - 4b - Blocksize | INT32 - 4b - Blocksize | ||
Line 262: | Line 228: | ||
== Character maps == | == Character maps == | ||
− | These character maps display all possible characters that can be used in the GXT file. Each character is represented by a hexadecimal value, which can be constructed by | + | These character maps display all possible characters that can be used in the GXT file. Each character is represented by a hexadecimal value, which can be constructed by adding the value in the leftmost column to the value in the topmost row, e.g. a capital letter A is represented by 0x41 in hex. |
=== GTA III === | === GTA III === | ||
Line 268: | Line 234: | ||
{|class="charmap" | {|class="charmap" | ||
! | ! | ||
− | ! | + | !00 |
− | ! | + | !01 |
− | ! | + | !02 |
− | ! | + | !03 |
− | ! | + | !04 |
− | ! | + | !05 |
− | ! | + | !06 |
− | ! | + | !07 |
− | ! | + | !08 |
− | ! | + | !09 |
− | ! | + | !0A |
− | ! | + | !0B |
− | ! | + | !0C |
− | ! | + | !0D |
− | ! | + | !0E |
− | ! | + | !0F |
|- | |- | ||
− | ! | + | !20 |
|title="0x20"| | |title="0x20"| | ||
|title="0x21"|! | |title="0x21"|! | ||
Line 303: | Line 269: | ||
|title="0x2F"|/ | |title="0x2F"|/ | ||
|- | |- | ||
− | ! | + | !30 |
|title="0x30"|0 | |title="0x30"|0 | ||
|title="0x31"|1 | |title="0x31"|1 | ||
Line 321: | Line 287: | ||
|title="0x3F"|? | |title="0x3F"|? | ||
|- | |- | ||
− | ! | + | !40 |
|title="0x40"|™ | |title="0x40"|™ | ||
|title="0x41"|A | |title="0x41"|A | ||
Line 339: | Line 305: | ||
|title="0x4F"|O | |title="0x4F"|O | ||
|- | |- | ||
− | ! | + | !50 |
|title="0x50"|P | |title="0x50"|P | ||
|title="0x51"|Q | |title="0x51"|Q | ||
Line 357: | Line 323: | ||
|title="0x5F"|° | |title="0x5F"|° | ||
|- | |- | ||
− | ! | + | !60 |
|title="0x60"|` | |title="0x60"|` | ||
|title="0x61"|a | |title="0x61"|a | ||
Line 375: | Line 341: | ||
|title="0x6F"|o | |title="0x6F"|o | ||
|- | |- | ||
− | ! | + | !70 |
|title="0x70"|p | |title="0x70"|p | ||
|title="0x71"|q | |title="0x71"|q | ||
Line 393: | Line 359: | ||
|title="0x7F"| | |title="0x7F"| | ||
|- | |- | ||
− | ! | + | !80 |
|title="0x80"|À | |title="0x80"|À | ||
|title="0x81"|Á | |title="0x81"|Á | ||
Line 411: | Line 377: | ||
|title="0x8F"|Ó | |title="0x8F"|Ó | ||
|- | |- | ||
− | ! | + | !90 |
|title="0x90"|Ô | |title="0x90"|Ô | ||
|title="0x91"|Ö | |title="0x91"|Ö | ||
Line 429: | Line 395: | ||
|title="0x9F"|ê | |title="0x9F"|ê | ||
|- | |- | ||
− | ! | + | !A0 |
|title="0xA0"|ë | |title="0xA0"|ë | ||
|title="0xA1"|ì | |title="0xA1"|ì | ||
Line 447: | Line 413: | ||
|title="0xAF"|¿ | |title="0xAF"|¿ | ||
|- | |- | ||
− | ! | + | !B0 |
|title="0xB0"|¡ | |title="0xB0"|¡ | ||
|title="0xB1"|' | |title="0xB1"|' | ||
Line 455: | Line 421: | ||
{|class="charmap" | {|class="charmap" | ||
! | ! | ||
− | ! | + | !00 |
− | ! | + | !01 |
− | ! | + | !02 |
− | ! | + | !03 |
− | ! | + | !04 |
− | ! | + | !05 |
− | ! | + | !06 |
− | ! | + | !07 |
− | ! | + | !08 |
− | ! | + | !09 |
− | ! | + | !0A |
− | ! | + | !0B |
− | ! | + | !0C |
− | ! | + | !0D |
− | ! | + | !0E |
− | ! | + | !0F |
|- | |- | ||
− | ! | + | !20 |
|title="0x20"| | |title="0x20"| | ||
|title="0x21" style="font-style: italic;"|! | |title="0x21" style="font-style: italic;"|! | ||
Line 490: | Line 456: | ||
|title="0x2F"| | |title="0x2F"| | ||
|- | |- | ||
− | ! | + | !30 |
|title="0x30" style="font-style: italic;"|0 | |title="0x30" style="font-style: italic;"|0 | ||
|title="0x31" style="font-style: italic;"|1 | |title="0x31" style="font-style: italic;"|1 | ||
Line 508: | Line 474: | ||
|title="0x3F" style="font-style: italic;"|? | |title="0x3F" style="font-style: italic;"|? | ||
|- | |- | ||
− | ! | + | !40 |
|title="0x40"| | |title="0x40"| | ||
|title="0x41" style="font-style: italic;"|A | |title="0x41" style="font-style: italic;"|A | ||
Line 526: | Line 492: | ||
|title="0x4F" style="font-style: italic;"|O | |title="0x4F" style="font-style: italic;"|O | ||
|- | |- | ||
− | ! | + | !50 |
|title="0x50" style="font-style: italic;"|P | |title="0x50" style="font-style: italic;"|P | ||
|title="0x51" style="font-style: italic;"|Q | |title="0x51" style="font-style: italic;"|Q | ||
Line 544: | Line 510: | ||
|title="0x5F"| | |title="0x5F"| | ||
|- | |- | ||
− | ! | + | !60 |
|title="0x60"| | |title="0x60"| | ||
|title="0x61" style="font-style: italic;"|a | |title="0x61" style="font-style: italic;"|a | ||
Line 562: | Line 528: | ||
|title="0x6F" style="font-style: italic;"|o | |title="0x6F" style="font-style: italic;"|o | ||
|- | |- | ||
− | ! | + | !70 |
|title="0x70" style="font-style: italic;"|p | |title="0x70" style="font-style: italic;"|p | ||
|title="0x71" style="font-style: italic;"|q | |title="0x71" style="font-style: italic;"|q | ||
Line 580: | Line 546: | ||
|title="0x7F"| | |title="0x7F"| | ||
|- | |- | ||
− | ! | + | !80 |
|title="0x80" style="font-style: italic;"|À | |title="0x80" style="font-style: italic;"|À | ||
|title="0x81" style="font-style: italic;"|Á | |title="0x81" style="font-style: italic;"|Á | ||
Line 598: | Line 564: | ||
|title="0x8F" style="font-style: italic;"|Ó | |title="0x8F" style="font-style: italic;"|Ó | ||
|- | |- | ||
− | ! | + | !90 |
|title="0x90" style="font-style: italic;"|Ô | |title="0x90" style="font-style: italic;"|Ô | ||
|title="0x91" style="font-style: italic;"|Ö | |title="0x91" style="font-style: italic;"|Ö | ||
Line 616: | Line 582: | ||
|title="0x9F" style="font-style: italic;"|ê | |title="0x9F" style="font-style: italic;"|ê | ||
|- | |- | ||
− | ! | + | !A0 |
|title="0xA0" style="font-style: italic;"|ë | |title="0xA0" style="font-style: italic;"|ë | ||
|title="0xA1" style="font-style: italic;"|ì | |title="0xA1" style="font-style: italic;"|ì | ||
Line 634: | Line 600: | ||
|title="0xAF" style="font-style: italic;"|¿ | |title="0xAF" style="font-style: italic;"|¿ | ||
|- | |- | ||
− | ! | + | !B0 |
|title="0xB0" style="font-style: italic;"|¡ | |title="0xB0" style="font-style: italic;"|¡ | ||
|} | |} | ||
Line 641: | Line 607: | ||
{|class="charmap" | {|class="charmap" | ||
! | ! | ||
− | ! | + | !00 |
− | ! | + | !01 |
− | ! | + | !02 |
− | ! | + | !03 |
− | ! | + | !04 |
− | ! | + | !05 |
− | ! | + | !06 |
− | ! | + | !07 |
− | ! | + | !08 |
− | ! | + | !09 |
− | ! | + | !0A |
− | ! | + | !0B |
− | ! | + | !0C |
− | ! | + | !0D |
− | ! | + | !0E |
− | ! | + | !0F |
|- | |- | ||
− | ! | + | !20 |
|title="0x20"| | |title="0x20"| | ||
|title="0x21" style="font-weight: bold;"|! | |title="0x21" style="font-weight: bold;"|! | ||
Line 676: | Line 642: | ||
|title="0x2F" style="font-weight: bold;"|✕ | |title="0x2F" style="font-weight: bold;"|✕ | ||
|- | |- | ||
− | ! | + | !30 |
|title="0x30" style="font-weight: bold;"|0 | |title="0x30" style="font-weight: bold;"|0 | ||
|title="0x31" style="font-weight: bold;"|1 | |title="0x31" style="font-weight: bold;"|1 | ||
Line 694: | Line 660: | ||
|title="0x3F" style="font-weight: bold;"|? | |title="0x3F" style="font-weight: bold;"|? | ||
|- | |- | ||
− | ! | + | !40 |
|title="0x40" style="font-weight: bold;"|™ | |title="0x40" style="font-weight: bold;"|™ | ||
|title="0x41" style="font-weight: bold;"|a | |title="0x41" style="font-weight: bold;"|a | ||
Line 712: | Line 678: | ||
|title="0x4F" style="font-weight: bold;"|o | |title="0x4F" style="font-weight: bold;"|o | ||
|- | |- | ||
− | ! | + | !50 |
|title="0x50" style="font-weight: bold;"|p | |title="0x50" style="font-weight: bold;"|p | ||
|title="0x51" style="font-weight: bold;"|q | |title="0x51" style="font-weight: bold;"|q | ||
Line 730: | Line 696: | ||
|title="0x5F"|° | |title="0x5F"|° | ||
|- | |- | ||
− | ! | + | !60 |
|title="0x60" style="font-weight: bold;"|© | |title="0x60" style="font-weight: bold;"|© | ||
|title="0x61" style="font-weight: bold; font-style: italic;"|a | |title="0x61" style="font-weight: bold; font-style: italic;"|a | ||
Line 748: | Line 714: | ||
|title="0x6F" style="font-weight: bold; font-style: italic;"|o | |title="0x6F" style="font-weight: bold; font-style: italic;"|o | ||
|- | |- | ||
− | ! | + | !70 |
|title="0x70" style="font-weight: bold; font-style: italic;"|p | |title="0x70" style="font-weight: bold; font-style: italic;"|p | ||
|title="0x71" style="font-weight: bold; font-style: italic;"|q | |title="0x71" style="font-weight: bold; font-style: italic;"|q | ||
Line 766: | Line 732: | ||
|title="0x7F"| | |title="0x7F"| | ||
|- | |- | ||
− | ! | + | !80 |
|title="0x80" style="font-weight: bold;"|à | |title="0x80" style="font-weight: bold;"|à | ||
|title="0x81" style="font-weight: bold;"|á | |title="0x81" style="font-weight: bold;"|á | ||
Line 784: | Line 750: | ||
|title="0x8F" style="font-weight: bold;"|ó | |title="0x8F" style="font-weight: bold;"|ó | ||
|- | |- | ||
− | ! | + | !90 |
|title="0x90" style="font-weight: bold;"|ô | |title="0x90" style="font-weight: bold;"|ô | ||
|title="0x91" style="font-weight: bold;"|ö | |title="0x91" style="font-weight: bold;"|ö | ||
Line 802: | Line 768: | ||
|title="0x9F" style="font-weight: bold; font-style: italic;"|ê | |title="0x9F" style="font-weight: bold; font-style: italic;"|ê | ||
|- | |- | ||
− | ! | + | !A0 |
|title="0xA0" style="font-weight: bold; font-style: italic;"|ë | |title="0xA0" style="font-weight: bold; font-style: italic;"|ë | ||
|title="0xA1" style="font-weight: bold; font-style: italic;"|ì | |title="0xA1" style="font-weight: bold; font-style: italic;"|ì | ||
Line 820: | Line 786: | ||
|title="0xAF" style="font-weight: bold;"|¿ | |title="0xAF" style="font-weight: bold;"|¿ | ||
|- | |- | ||
− | ! | + | !B0 |
|title="0xB0" style="font-weight: bold;"|¡ | |title="0xB0" style="font-weight: bold;"|¡ | ||
|} | |} | ||
Line 834: | Line 800: | ||
{|class="charmap" | {|class="charmap" | ||
! | ! | ||
− | ! | + | !00 |
− | ! | + | !01 |
− | ! | + | !02 |
− | ! | + | !03 |
− | ! | + | !04 |
− | ! | + | !05 |
− | ! | + | !06 |
− | ! | + | !07 |
− | ! | + | !08 |
− | ! | + | !09 |
− | ! | + | !0A |
− | ! | + | !0B |
− | ! | + | !0C |
− | ! | + | !0D |
− | ! | + | !0E |
− | ! | + | !0F |
|- | |- | ||
− | ! | + | !20 |
|title="0x20"| | |title="0x20"| | ||
|title="0x21" style="font-style: italic;"|! | |title="0x21" style="font-style: italic;"|! | ||
Line 869: | Line 835: | ||
|title="0x2F"| | |title="0x2F"| | ||
|- | |- | ||
− | ! | + | !30 |
|title="0x30" style="font-style: italic;"|0 | |title="0x30" style="font-style: italic;"|0 | ||
|title="0x31" style="font-style: italic;"|1 | |title="0x31" style="font-style: italic;"|1 | ||
Line 887: | Line 853: | ||
|title="0x3F"|? | |title="0x3F"|? | ||
|- | |- | ||
− | ! | + | !40 |
|title="0x40"| | |title="0x40"| | ||
|title="0x41" style="font-style: italic;"|A | |title="0x41" style="font-style: italic;"|A | ||
Line 905: | Line 871: | ||
|title="0x4F" style="font-style: italic;"|O | |title="0x4F" style="font-style: italic;"|O | ||
|- | |- | ||
− | ! | + | !50 |
|title="0x50" style="font-style: italic;"|P | |title="0x50" style="font-style: italic;"|P | ||
|title="0x51" style="font-style: italic;"|Q | |title="0x51" style="font-style: italic;"|Q | ||
Line 923: | Line 889: | ||
|title="0x5F" style="font-style: italic;"|\ | |title="0x5F" style="font-style: italic;"|\ | ||
|- | |- | ||
− | ! | + | !60 |
|title="0x60"| | |title="0x60"| | ||
|title="0x61" style="font-style: italic;"|a | |title="0x61" style="font-style: italic;"|a | ||
Line 941: | Line 907: | ||
|title="0x6F" style="font-style: italic;"|o | |title="0x6F" style="font-style: italic;"|o | ||
|- | |- | ||
− | ! | + | !70 |
|title="0x70" style="font-style: italic;"|p | |title="0x70" style="font-style: italic;"|p | ||
|title="0x71" style="font-style: italic;"|q | |title="0x71" style="font-style: italic;"|q | ||
Line 959: | Line 925: | ||
|title="0x7F"| | |title="0x7F"| | ||
|- | |- | ||
− | ! | + | !80 |
|title="0x80" style="font-style: italic;"|À | |title="0x80" style="font-style: italic;"|À | ||
|title="0x81" style="font-style: italic;"|Á | |title="0x81" style="font-style: italic;"|Á | ||
Line 977: | Line 943: | ||
|title="0x8F" style="font-style: italic;"|Ó | |title="0x8F" style="font-style: italic;"|Ó | ||
|- | |- | ||
− | ! | + | !90 |
|title="0x90" style="font-style: italic;"|Ô | |title="0x90" style="font-style: italic;"|Ô | ||
|title="0x91" style="font-style: italic;"|Ö | |title="0x91" style="font-style: italic;"|Ö | ||
Line 995: | Line 961: | ||
|title="0x9F" style="font-style: italic;"|ê | |title="0x9F" style="font-style: italic;"|ê | ||
|- | |- | ||
− | ! | + | !A0 |
|title="0xA0" style="font-style: italic;"|ë | |title="0xA0" style="font-style: italic;"|ë | ||
|title="0xA1" style="font-style: italic;"|ì | |title="0xA1" style="font-style: italic;"|ì | ||
Line 1,013: | Line 979: | ||
|title="0xAF" style="font-style: italic;"|¿ | |title="0xAF" style="font-style: italic;"|¿ | ||
|- | |- | ||
− | ! | + | !B0 |
|title="0xB0" style="font-style: italic;"|i | |title="0xB0" style="font-style: italic;"|i | ||
|} | |} | ||
Line 1,020: | Line 986: | ||
{|class="charmap" | {|class="charmap" | ||
! | ! | ||
− | ! | + | !00 |
− | ! | + | !01 |
− | ! | + | !02 |
− | ! | + | !03 |
− | ! | + | !04 |
− | ! | + | !05 |
− | ! | + | !06 |
− | ! | + | !07 |
− | ! | + | !08 |
− | ! | + | !09 |
− | ! | + | !0A |
− | ! | + | !0B |
− | ! | + | !0C |
− | ! | + | !0D |
− | ! | + | !0E |
− | ! | + | !0F |
|- | |- | ||
− | ! | + | !20 |
|title="0x20"| | |title="0x20"| | ||
|title="0x21"|! | |title="0x21"|! | ||
Line 1,055: | Line 1,021: | ||
|title="0x2F"|/ | |title="0x2F"|/ | ||
|- | |- | ||
− | ! | + | !30 |
|title="0x30"|0 | |title="0x30"|0 | ||
|title="0x31"|1 | |title="0x31"|1 | ||
Line 1,073: | Line 1,039: | ||
|title="0x3F"|? | |title="0x3F"|? | ||
|- | |- | ||
− | ! | + | !40 |
|title="0x40"|™ | |title="0x40"|™ | ||
|title="0x41"|A | |title="0x41"|A | ||
Line 1,091: | Line 1,057: | ||
|title="0x4F"|O | |title="0x4F"|O | ||
|- | |- | ||
− | ! | + | !50 |
|title="0x50"|P | |title="0x50"|P | ||
|title="0x51"|Q | |title="0x51"|Q | ||
Line 1,109: | Line 1,075: | ||
|title="0x5F"|° | |title="0x5F"|° | ||
|- | |- | ||
− | ! | + | !60 |
|title="0x60"|` | |title="0x60"|` | ||
|title="0x61"|a | |title="0x61"|a | ||
Line 1,127: | Line 1,093: | ||
|title="0x6F"|o | |title="0x6F"|o | ||
|- | |- | ||
− | ! | + | !70 |
|title="0x70"|p | |title="0x70"|p | ||
|title="0x71"|q | |title="0x71"|q | ||
Line 1,145: | Line 1,111: | ||
|title="0x7F" style="font-weight: bold;"|) | |title="0x7F" style="font-weight: bold;"|) | ||
|- | |- | ||
− | ! | + | !80 |
|title="0x80"|À | |title="0x80"|À | ||
|title="0x81"|Á | |title="0x81"|Á | ||
Line 1,163: | Line 1,129: | ||
|title="0x8F"|Ó | |title="0x8F"|Ó | ||
|- | |- | ||
− | ! | + | !90 |
|title="0x90"|Ô | |title="0x90"|Ô | ||
|title="0x91"|Ö | |title="0x91"|Ö | ||
Line 1,181: | Line 1,147: | ||
|title="0x9F"|ê | |title="0x9F"|ê | ||
|- | |- | ||
− | ! | + | !A0 |
|title="0xA0"|ë | |title="0xA0"|ë | ||
|title="0xA1"|ì | |title="0xA1"|ì | ||
Line 1,199: | Line 1,165: | ||
|title="0xAF"|¿ | |title="0xAF"|¿ | ||
|- | |- | ||
− | ! | + | !B0 |
|title="0xB0" style="font-weight: bold;"|0 | |title="0xB0" style="font-weight: bold;"|0 | ||
|title="0xB1" style="font-weight: bold;"|1 | |title="0xB1" style="font-weight: bold;"|1 | ||
Line 1,217: | Line 1,183: | ||
{|class="charmap" | {|class="charmap" | ||
! | ! | ||
− | ! | + | !00 |
− | ! | + | !01 |
− | ! | + | !02 |
− | ! | + | !03 |
− | ! | + | !04 |
− | ! | + | !05 |
− | ! | + | !06 |
− | ! | + | !07 |
− | ! | + | !08 |
− | ! | + | !09 |
− | ! | + | !0A |
− | ! | + | !0B |
− | ! | + | !0C |
− | ! | + | !0D |
− | ! | + | !0E |
− | ! | + | !0F |
|- | |- | ||
− | ! | + | !20 |
|title="0x20"| | |title="0x20"| | ||
|title="0x21" style="font-weight: bold;"|! | |title="0x21" style="font-weight: bold;"|! | ||
Line 1,252: | Line 1,218: | ||
|title="0x2F"|/ | |title="0x2F"|/ | ||
|- | |- | ||
− | ! | + | !30 |
|title="0x30" style="font-weight: bold;"|0 | |title="0x30" style="font-weight: bold;"|0 | ||
|title="0x31" style="font-weight: bold;"|1 | |title="0x31" style="font-weight: bold;"|1 | ||
Line 1,270: | Line 1,236: | ||
|title="0x3F"|? | |title="0x3F"|? | ||
|- | |- | ||
− | ! | + | !40 |
|title="0x40"|™ | |title="0x40"|™ | ||
|title="0x41" style="font-weight: bold;"|a | |title="0x41" style="font-weight: bold;"|a | ||
Line 1,288: | Line 1,254: | ||
|title="0x4F" style="font-weight: bold;"|o | |title="0x4F" style="font-weight: bold;"|o | ||
|- | |- | ||
− | ! | + | !50 |
|title="0x50" style="font-weight: bold;"|p | |title="0x50" style="font-weight: bold;"|p | ||
|title="0x51" style="font-weight: bold;"|q | |title="0x51" style="font-weight: bold;"|q | ||
Line 1,306: | Line 1,272: | ||
|title="0x5F"|° | |title="0x5F"|° | ||
|- | |- | ||
− | ! | + | !60 |
|title="0x60"|` | |title="0x60"|` | ||
|title="0x61" style="font-weight: bold;"|a | |title="0x61" style="font-weight: bold;"|a | ||
Line 1,324: | Line 1,290: | ||
|title="0x6F" style="font-weight: bold;"|o | |title="0x6F" style="font-weight: bold;"|o | ||
|- | |- | ||
− | ! | + | !70 |
|title="0x70" style="font-weight: bold;"|p | |title="0x70" style="font-weight: bold;"|p | ||
|title="0x71" style="font-weight: bold;"|q | |title="0x71" style="font-weight: bold;"|q | ||
Line 1,342: | Line 1,308: | ||
|title="0x7F" style="font-weight: bold;"|) | |title="0x7F" style="font-weight: bold;"|) | ||
|- | |- | ||
− | ! | + | !80 |
|title="0x80" style="font-weight: bold;"|à | |title="0x80" style="font-weight: bold;"|à | ||
|title="0x81" style="font-weight: bold;"|á | |title="0x81" style="font-weight: bold;"|á | ||
Line 1,360: | Line 1,326: | ||
|title="0x8F" style="font-weight: bold;"|ó | |title="0x8F" style="font-weight: bold;"|ó | ||
|- | |- | ||
− | ! | + | !90 |
|title="0x90" style="font-weight: bold;"|ô | |title="0x90" style="font-weight: bold;"|ô | ||
|title="0x91" style="font-weight: bold;"|ö | |title="0x91" style="font-weight: bold;"|ö | ||
Line 1,378: | Line 1,344: | ||
|title="0x9F" style="font-weight: bold;"|ê | |title="0x9F" style="font-weight: bold;"|ê | ||
|- | |- | ||
− | ! | + | !A0 |
|title="0xA0" style="font-weight: bold;"|ë | |title="0xA0" style="font-weight: bold;"|ë | ||
|title="0xA1" style="font-weight: bold;"|ì | |title="0xA1" style="font-weight: bold;"|ì | ||
Line 1,396: | Line 1,362: | ||
|title="0xAF" style="font-weight: bold;"|¿ | |title="0xAF" style="font-weight: bold;"|¿ | ||
|- | |- | ||
− | ! | + | !B0 |
|title="0xB0" style="font-weight: bold;"|0 | |title="0xB0" style="font-weight: bold;"|0 | ||
|title="0xB1" style="font-weight: bold;"|1 | |title="0xB1" style="font-weight: bold;"|1 | ||
Line 1,414: | Line 1,380: | ||
|title="0xBF" style="font-weight: bold;"|e | |title="0xBF" style="font-weight: bold;"|e | ||
|- | |- | ||
− | ! | + | !C0 |
|title="0xC0" style="font-weight: bold;"|f | |title="0xC0" style="font-weight: bold;"|f | ||
|title="0xC1" style="font-weight: bold;"|g | |title="0xC1" style="font-weight: bold;"|g | ||
Line 1,432: | Line 1,398: | ||
|title="0xCF" style="font-weight: bold;"|u | |title="0xCF" style="font-weight: bold;"|u | ||
|- | |- | ||
− | ! | + | !D0 |
|title="0xD0" style="font-weight: bold;"|v | |title="0xD0" style="font-weight: bold;"|v | ||
|title="0xD1" style="font-weight: bold;"|w | |title="0xD1" style="font-weight: bold;"|w | ||
Line 1,450: | Line 1,416: | ||
|title="0xDF" style="font-weight: bold;"|ì | |title="0xDF" style="font-weight: bold;"|ì | ||
|- | |- | ||
− | ! | + | !E0 |
|title="0xE0" style="font-weight: bold;"|í | |title="0xE0" style="font-weight: bold;"|í | ||
|title="0xE1" style="font-weight: bold;"|î | |title="0xE1" style="font-weight: bold;"|î | ||
Line 1,473: | Line 1,439: | ||
* Hover your mouse over the dotted line for characters that cannot be displayed in the browser. | * Hover your mouse over the dotted line for characters that cannot be displayed in the browser. | ||
</small> | </small> | ||
+ | |||
+ | * See also: [[GXT/Japanese|Japanese character map]] | ||
== Tokens == | == Tokens == | ||
Line 1,478: | Line 1,446: | ||
=== Symbols and colors === | === Symbols and colors === | ||
− | {|class="wikitable center-col-1 center-col-2 center-col-3" | + | {|class="wikitable center-col-1 center-col-2 center-col-3 center-col-4" |
− | ! Token | + | ! style="width: 5em;" | Token |
! style="width: 15em;" | {{Icon|3}} | ! style="width: 15em;" | {{Icon|3}} | ||
! style="width: 15em;" | {{Icon|VC}} | ! style="width: 15em;" | {{Icon|VC}} | ||
! style="width: 15em;" | {{Icon|SA}} | ! style="width: 15em;" | {{Icon|SA}} | ||
+ | ! style="width: 15em;" | {{Icon|LCS}} | ||
+ | ! style="width: 15em;" | {{Icon|IV}} | ||
|- | |- | ||
| ~1~ | | ~1~ | ||
− | | colspan=" | + | | colspan="4" | number within a text |
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~A~ | | ~A~ | ||
Line 1,491: | Line 1,462: | ||
| - | | - | ||
| L3 icon (PS2) / LStick icon (XBOX) | | L3 icon (PS2) / LStick icon (XBOX) | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~B~ | | ~B~ | ||
| - | | - | ||
| bold and unbold text; text must be enclosed by two of these tokens | | bold and unbold text; text must be enclosed by two of these tokens | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
| {{a|c}} | - | | {{a|c}} | - | ||
|- | |- | ||
Line 1,501: | Line 1,476: | ||
| - | | - | ||
| L1 icon (PS2) / LT icon (XBOX) | | L1 icon (PS2) / LT icon (XBOX) | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
+ | |- | ||
+ | | ~Y~ | ||
+ | | - | ||
+ | | - | ||
+ | | {{a|c}} | - | ||
+ | | style="color:#FFE34F; text-align: center;" | yellow text | ||
+ | | {{a|c}} | - | ||
+ | |- | ||
+ | | ~a~ | ||
+ | | colspan="4" | area text | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
− | |||
− | |||
− | |||
| ~b~ | | ~b~ | ||
− | | style="color: | + | | style="color:#80A7F3;" | blue text |
| style="color:#1B5982;" | blue text | | style="color:#1B5982;" | blue text | ||
| blue text | | blue text | ||
+ | | style="color:#4D9BD2; text-align: center;" | blue text | ||
+ | | style="color:#336972; text-align: center;" | blue text | ||
|- | |- | ||
| ~c~ | | ~c~ | ||
Line 1,514: | Line 1,501: | ||
| - | | - | ||
| R3 icon (PS2) / RStick icon (XBOX) | | R3 icon (PS2) / RStick icon (XBOX) | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~d~ | | ~d~ | ||
Line 1,519: | Line 1,508: | ||
| - | | - | ||
| ▼-icon | | ▼-icon | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~g~ | | ~g~ | ||
− | | style="color: | + | | style="color:#5FA06A" | green text |
| style="color:#FF96E1;" | hot pink text <!--(default color of pink styled text)--> | | style="color:#FF96E1;" | hot pink text <!--(default color of pink styled text)--> | ||
| green text | | green text | ||
+ | | style="color:#4B974B; text-align: center;" | green text | ||
+ | | style="color:#577c58; text-align: center;" | green text | ||
|- | |- | ||
| ~h~ | | ~h~ | ||
| colspan="2" style="color:#E1E1E1;" | white text | | colspan="2" style="color:#E1E1E1;" | white text | ||
− | | {{a| | + | | {{a|c}} | highlight |
+ | | style="text-align: center;" | white text | ||
+ | | style="color:#d2d2d2; text-align: center;" | white text | ||
|- | |- | ||
| ~j~ | | ~j~ | ||
Line 1,533: | Line 1,528: | ||
| - | | - | ||
| R1 icon (PS2) / RT icon (XBOX) | | R1 icon (PS2) / RT icon (XBOX) | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~k~ | | ~k~ | ||
− | | colspan=" | + | | colspan="4" | key (followed by [[#Buttons|buttons]]) |
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~l~ | | ~l~ | ||
Line 1,541: | Line 1,539: | ||
| forces text to default color and ignores set colors | | forces text to default color and ignores set colors | ||
| black text | | black text | ||
+ | | | ||
+ | | style="text-align: center;" | black text | ||
|- | |- | ||
− | | ~ | + | | ~m~ |
| - | | - | ||
| - | | - | ||
− | | | + | | L2 icon (PS2) / WHITE icon (XBOX) |
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
− | | ~ | + | | ~n~ |
− | |||
| - | | - | ||
− | | | + | | style="text-align: center;" | Empty character, allows blanking out subtitles |
+ | | style="text-align: center;" | newline | ||
+ | | style="text-align: center;" | newline | ||
+ | | style="text-align: center;" | newline | ||
|- | |- | ||
| ~o~ | | ~o~ | ||
Line 1,556: | Line 1,560: | ||
| style="color:#E57D7E;" | pink text | | style="color:#E57D7E;" | pink text | ||
| Circle icon (PS2) / B icon (XBOX) | | Circle icon (PS2) / B icon (XBOX) | ||
+ | | style="color:#E57D7E; text-align: center;" | pink text | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~p~ | | ~p~ | ||
− | | style="color: | + | | colspan="2" style="color:#A86EFC;" | purple text |
− | | style="color:# | + | | {{a|c}} | purple text |
− | | purple text | + | | style="color:#9752C5; text-align: center;" | purple text |
+ | | style="color:#986f9e; text-align: center;" | purple text | ||
|- | |- | ||
| ~q~ | | ~q~ | ||
Line 1,566: | Line 1,573: | ||
| style="color:#C790CB;" | plum pink text | | style="color:#C790CB;" | plum pink text | ||
| Square icon (PS2) / X icon (XBOX) | | Square icon (PS2) / X icon (XBOX) | ||
+ | | style="color:#C790CB; text-align: center;" | plum pink text | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~r~ | | ~r~ | ||
− | | style="color: | + | | style="color:#712B49;" | red text |
| style="color:#FF96E1;" | hot pink text | | style="color:#FF96E1;" | hot pink text | ||
| red text | | red text | ||
+ | | style="color:#AE0000; text-align: center;" | red text | ||
+ | | style="color:#994545; text-align: center;" | red text | ||
|- | |- | ||
| ~s~ | | ~s~ | ||
Line 1,576: | Line 1,587: | ||
| - | | - | ||
| reset color to standard | | reset color to standard | ||
+ | | {{a|c}} | - | ||
+ | | style="color:#e1e1e1; text-align: center;" | white text | ||
|- | |- | ||
| ~t~ | | ~t~ | ||
Line 1,581: | Line 1,594: | ||
| style="color:#56D492;" | green text | | style="color:#56D492;" | green text | ||
| Triangle icon (PS2) / Y icon (XBOX) | | Triangle icon (PS2) / Y icon (XBOX) | ||
+ | | style="color:#56D492; text-align: center;" | green text | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~u~ | | ~u~ | ||
Line 1,586: | Line 1,601: | ||
| - | | - | ||
| ▲-icon | | ▲-icon | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~v~ | | ~v~ | ||
Line 1,591: | Line 1,608: | ||
| - | | - | ||
| R2 icon (PS2) / BLACK icon (XBOX) | | R2 icon (PS2) / BLACK icon (XBOX) | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~w~ | | ~w~ | ||
− | | style="color: | + | | colspan="2" style="color:#AFAFAF;" | gray text |
− | | style="color:# | + | | {{a|c}} | white text |
− | | white text | + | | style="color:#E1E1E1; text-align: center;" | white text |
+ | | style="color:#e1e1e1; text-align: center;" | white text | ||
|- | |- | ||
| ~x~ | | ~x~ | ||
Line 1,601: | Line 1,621: | ||
| style="color:#8492C5;" | light blue text | | style="color:#8492C5;" | light blue text | ||
| Cross icon (PS2) / A icon (XBOX) | | Cross icon (PS2) / A icon (XBOX) | ||
+ | | style="color:#8492C5; text-align: center;" | light blue text | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~y~ | | ~y~ | ||
− | | style="color: | + | | style="color:#D2C46A;" | yellow text |
| style="color:#FFE34F;" | yellow text | | style="color:#FFE34F;" | yellow text | ||
| yellow text | | yellow text | ||
+ | | style="color:#FFFF00; text-align: center;" | yellow text | ||
+ | | style="color:#d7c579; text-align: center;" | yellow text | ||
|- | |- | ||
| ~z~ | | ~z~ | ||
Line 1,611: | Line 1,635: | ||
| - | | - | ||
| subtitle (doesn't shown when the Subtitles option is off) | | subtitle (doesn't shown when the Subtitles option is off) | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~<~ | | ~<~ | ||
Line 1,616: | Line 1,642: | ||
| - | | - | ||
| ◄-icon | | ◄-icon | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|- | |- | ||
| ~>~ | | ~>~ | ||
Line 1,621: | Line 1,649: | ||
| - | | - | ||
| ►-icon | | ►-icon | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
+ | |- | ||
+ | | ~f~ | ||
+ | | - | ||
+ | | Text flashing | ||
+ | | - | ||
+ | | {{a|c}} | - | ||
+ | | {{a|c}} | - | ||
|} | |} | ||
+ | In GTA III's original GXT files for the PC version, the token <code>l</code> is unused. The token <code>W</code> appears erroneously in GXT key <code>AS3_A</code> in all language files except the Italian one. In Vice City's original GXT files for the PC version, the tokens <code>B</code> and <code>l</code> are unused. <code>t</code> and <code>x</code> are unused in the English language file but appear to be used erroneously in other language files. The token <code>c</code> appears erroneously in GXT key <code>FIN_B5</code>; it could have represented the cyan color to match the color of the blip the text represents.{{Ref|1|[1]}} The token also appears in GXT key <code>RCH1_3</code> in all language files except the English one. | ||
=== Buttons === | === Buttons === | ||
Line 1,643: | Line 1,681: | ||
| ~PED_CYCLE_WEAPON_LEFT~ | | ~PED_CYCLE_WEAPON_LEFT~ | ||
|- | |- | ||
− | | Group Ctrl | + | | Group Ctrl Forward |
| align="center" | {{Icon|SA}} | | align="center" | {{Icon|SA}} | ||
| ~GROUP_CONTROL_FWD~ | | ~GROUP_CONTROL_FWD~ | ||
Line 1,659: | Line 1,697: | ||
| ~CONVERSATION_YES~ | | ~CONVERSATION_YES~ | ||
|- | |- | ||
− | | | + | | Forward |
| align="center" | {{Icon|3}} {{Icon|VC}} {{Icon|SA}} | | align="center" | {{Icon|3}} {{Icon|VC}} {{Icon|SA}} | ||
| ~GO_FORWARD~ | | ~GO_FORWARD~ | ||
Line 1,720: | Line 1,758: | ||
|- | |- | ||
| Look Left | | Look Left | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_1RST_PERSON_LOOK_LEFT~ | | ~PED_1RST_PERSON_LOOK_LEFT~ | ||
|- | |- | ||
| Look Right | | Look Right | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_1RST_PERSON_LOOK_RIGHT~ | | ~PED_1RST_PERSON_LOOK_RIGHT~ | ||
|- | |- | ||
| Look Up | | Look Up | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_1RST_PERSON_LOOK_UP~ | | ~PED_1RST_PERSON_LOOK_UP~ | ||
|- | |- | ||
| Look Down | | Look Down | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_1RST_PERSON_LOOK_DOWN~ | | ~PED_1RST_PERSON_LOOK_DOWN~ | ||
|- | |- | ||
| Next Target | | Next Target | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_CYCLE_TARGET_LEFT~ | | ~PED_CYCLE_TARGET_LEFT~ | ||
|- | |- | ||
| Previous Target | | Previous Target | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_CYCLE_TARGET_RIGHT~ | | ~PED_CYCLE_TARGET_RIGHT~ | ||
|- | |- | ||
| Center Camera | | Center Camera | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}}{{Ref|a|[a]}} |
| ~PED_CENTER_CAMERA_BEHIND_PLAYER~ | | ~PED_CENTER_CAMERA_BEHIND_PLAYER~ | ||
|} | |} | ||
Line 1,778: | Line 1,816: | ||
| ~VEHICLE_STEERRIGHT~ | | ~VEHICLE_STEERRIGHT~ | ||
|- | |- | ||
− | | Steer | + | | Steer Forward / Down |
| align="center" | {{Icon|3}} {{Icon|VC}} {{Icon|SA}} | | align="center" | {{Icon|3}} {{Icon|VC}} {{Icon|SA}} | ||
| ~VEHICLE_STEERDOWN~ | | ~VEHICLE_STEERDOWN~ | ||
Line 1,855: | Line 1,893: | ||
|- | |- | ||
| Look Behind | | Look Behind | ||
− | | align="center" | {{Icon|3}} {{Icon|VC}} {{Icon|SA}}{{Ref| | + | | align="center" | {{Icon|3}} {{Icon|VC}} {{Icon|SA}}{{Ref|b|[b]}} |
| ~VEHICLE_LOOKBEHIND~ | | ~VEHICLE_LOOKBEHIND~ | ||
|} | |} | ||
− | : | + | :a. {{Note|a}} Classic controls key only |
− | : | + | :b. {{Note|b}} Hardcoded key in III and VC, unavailable in SA |
==== Unused ==== | ==== Unused ==== | ||
Line 1,866: | Line 1,904: | ||
{| | {| | ||
− | |||
− | |||
|~TAKE_SCREEN_SHOT~ | |~TAKE_SCREEN_SHOT~ | ||
|- | |- | ||
Line 1,878: | Line 1,914: | ||
==Tools== | ==Tools== | ||
− | {| | + | {| class="center-col-1" |
− | | | + | | {{Icon|2}} || [http://gtamp.com/GTA2/gta2gxt.rar GTA2 GXT Editor v2.0] - by {{U|Delfi}} |
+ | |- | ||
+ | | {{Icon|t}} {{Icon|LCS}} {{Icon|VCS}} || [http://web.archive.org/web/20070102011246/http://zverik.rbcmail.ru/gxtedit13.zip Grand Theft Auto GXT Editor v1.3] - by Zverik, retrieved from archive.org | ||
|- | |- | ||
− | | | + | | {{Icon|t}} {{Icon|LCS}} {{Icon|VCS}} {{Icon|4}} || [http://sannybuilder.com/forums/viewtopic.php?pid=9533 SAGE v0.9.7] - by AleX AciD |
|- | |- | ||
− | | | + | | {{Icon|3}} {{Icon|VC}} {{Icon|LCS}} {{Icon|VCS}} || [http://gta.ferodesign.de/ GTA Texter v2.0b3] - by feroCT5 |
|- | |- | ||
− | | | + | | {{Icon|3}} || {{GTAG|1075|GXT Editor 1.3}} - by Jevon |
|- | |- | ||
− | | | + | | {{Icon|VC}} {{Icon|LCS}} {{Icon|VCS}} || [[GXT Editor (VC)|GTA: Vice City GXT Editor v1.2]] - by {{U|CyQ}} |
|- | |- | ||
− | | | + | | {{Icon|VC}} {{Icon|SA}} || [https://github.com/CookiePLMonster/GXT-Builder GXT Builder], by {{U|Silent}} |
|- | |- | ||
− | | | + | | {{Icon|SA}} || [http://media.gtanet.com/hosted/gtatools.com/filedb/files/gta_sa_gxt.rar GTA San Andreas Text Editor] - by {{U|JernejL}} |
|- | |- | ||
− | | | + | | {{Icon|SA}} || [http://www.thegtaplace.com/downloads/f568-gta-san-andreas-gxt-editor-1-3 GTA: San Andreas GXT Editor v1.3] - by {{U|Hammer83}} |
|- | |- | ||
− | | | + | | {{Icon|SA}} || [http://www.gtavision.com/index.php?section=downloads&site=download&id=1245 A-GXT Editor v1.0a] - by {{U|Aschratt}} |
|- | |- | ||
− | | | + | | {{Icon|SA}} {{Icon|4}} || [http://www.x-squares.com/File/fi/0/X_GXT_Editor.aspx X GXT Editor v2.1] - by {{U|xmen}} |
|- | |- | ||
− | | | + | | {{Icon|4}} || [[OpenIV]] - Have Inbuilt GXT file viewer |
|} | |} | ||
<!--{{Icon|3}} [http://www.gtatools.com/filedb/action.php?action=file&id=22 GTA 3 GXT] - by {{U|JernejL}}--> | <!--{{Icon|3}} [http://www.gtatools.com/filedb/action.php?action=file&id=22 GTA 3 GXT] - by {{U|JernejL}}--> | ||
+ | |||
+ | ==Reference== | ||
+ | :1. {{Note|1}} {{GTAF|post|849281|1068784991}} | ||
==External links== | ==External links== | ||
*{{Icon|2}} [http://spaceeinstein.altervista.org/gxt/GTA2_EN.txt GXT entries in e.gxt] | *{{Icon|2}} [http://spaceeinstein.altervista.org/gxt/GTA2_EN.txt GXT entries in e.gxt] | ||
− | *{{Icon|t}} {{Icon|LCS}} {{Icon|VCS}} [http://public.sannybuilder.com/GXT/ List of all English GXT entries] | + | *{{Icon|t}} {{Icon|LCS}} {{Icon|VCS}} [https://web.archive.org/web/20171028075956/http://public.sannybuilder.com/GXT/ List of all English GXT entries] |
+ | *{{Icon|SA}} [https://anonymfile.com/39Lk/american.gxt San Andreas american.gxt file] | ||
+ | *{{Icon|VCS}} [https://anonymfile.com/VxjB/american.gxt Vice City Stories american.gxt file] | ||
+ | *{{Icon|LCS}} [https://anonymfile.com/k0Qb/english.gxt Liberty City Stories english.gxt file] | ||
+ | *{{Icon|4}} [https://anonymfile.com/4YV8/american.gxt IV american.gxt file] | ||
*{{Icon|3}} {{Icon|VC}} [http://spaceeinstein.altervista.org/gxt/ List of non-English GXT entries] | *{{Icon|3}} {{Icon|VC}} [http://spaceeinstein.altervista.org/gxt/ List of non-English GXT entries] | ||
− | |||
*{{Icon|4}} [http://public.sannybuilder.com/GTA4/american.gxt.reversed.rar Some of GTA IV GXT text entry names] | *{{Icon|4}} [http://public.sannybuilder.com/GTA4/american.gxt.reversed.rar Some of GTA IV GXT text entry names] | ||
*{{GTAF|458584|List of usable characters}} | *{{GTAF|458584|List of usable characters}} | ||
− | {{N| | + | {{N|IV|VCS|LCS|SA|VC|III}} |
− | [[Category:File Formats]][[Category:GTA 2 | + | [[Category:File Formats]][[Category:GTA 2]] |
Latest revision as of 10:43, 10 September 2023
A GTA Text (GXT) file is a file that contains strings that are presented to the player in GTA2 and above. Their placement differs between games, but GXT files are usually located in a text
directory in the game installation folder. In games other than GTA 2, there is one GXT file for each language, but the number of GXT files does not necessarily match the number of supported languages.
Purpose
GXT files act as dictionaries that map short, symbolic strings (or some other unique value) to longer strings. Programmers use only the short key strings (such as "GM_OVR"), and then before these strings are shown to the user they are replaced with translated versions in their own language – "Game Over" if the user selected the English language. This allows the game to be easily translated into other languages without the need for major code changes: translators can simply translate the game text into the correct language and strings from the new language's GXT file will be used if the player selects that language.
File format
GTA 2
GTA 2's GXT files begin with a header followed by a TKEY block and then a TDAT block. The TKEY block contains an array of entries that give the offset and name of the corresponding entry in the TDAT table. The TDAT entry contains the text that will be displayed in the game.
Header | ||
---|---|---|
Offset | Type | Description |
0x00 | char[3] | GBL
|
0x03 | char |
|
0x04 | word | File version, always 100 |
Block 1 (TKEY) | ||
0x06 | char[4] | TKEY
|
0x0A | dword | Size of TKEY block |
0x0E | TKEY[n] | Array of TKEY entries, where n is the number of entries. All entries are sorted in alphabetical order. |
Offset | Type | Description |
---|---|---|
0x00 | dword | TDAT entry offset. The value is relative to the location of the first entry of the array, which is, in absolute term, size of TKEY block + 22. |
0x04 | char[8] | TDAT entry name |
The absolute location of the TDAT block is the size of TKEY block + 14.
Block 2 (TDAT) | ||
---|---|---|
Offset | Type | Description |
0x00 | char[4] | TDAT
|
0x04 | dword | Size of TDAT block |
0x08 | TDAT[n] | Array of TDAT entries, where n is the number of entries. Entries are not sorted in alphabetical order but their order comes from the order of their entry in the GXT source file. |
Offset | Type | Description |
---|---|---|
0x00 | wchar_t[m] | An array of wide characters (2 bytes per character) to be displayed in the game, where m is the number of characters. The array is terminated by a null character (0x0000 ). The location of the entry in absolute term is TDAT entry offset + size of TKEY block + 22.
Characters beginning with 0x21 denote gang dialogue:
|
GTA III
GTA III's GXT files are identical to those of GTA 2, except that they do not have headers – they start with the TKEY block instead. There is also no special treatment of characters starting with 0x21
in TDAT entries.
The Xbox version of Vice City uses this format as well.
GTA VC/LCS/VCS
In Vice City, Vice City Stories and Liberty City Stories, there is a new TABL block which precedes the TKEY block. The Xbox version of Vice City uses the GTA III format.
Block 1 (TABL) | ||
---|---|---|
Offset | Type | Description |
0x00 | char[4] | TABL
|
0x04 | dword | Size of TABL block |
0x08 | TABL[n] | Array of TABL entries, where n is the number of entries. All entries are sorted in alphabetical order except the first one, MAIN .
|
Offset | Type | Description |
---|---|---|
0x00 | char[8] | TKEY entry name |
0x04 | dword | TKEY entry offset. The value is absolute. |
The absolute location of the TKEY block is simply the TKEY entry offset. The TKEY block format is slightly different for the first block named MAIN
. Hover over the dotted lines for information specific to that block. All other blocks follow the format shown below.
Block 2 (TKEY) | ||
---|---|---|
Offset | Type | Description |
0x00 | char[8] | TKEY entry name |
0x08 | char[4] | TKEY
|
0x0C | dword | Size of TKEY block |
0x10 | TKEY[n] | Array of TKEY entries, where n is the number of entries. All entries are sorted in alphabetical order. |
Offset | Type | Description |
---|---|---|
0x00 | dword | TDAT entry offset. The value is relative to the location of the first entry of the array, which is, in absolute term, TKEY entry offset + size of TKEY block + 16. |
0x04 | char[8] | TDAT entry name |
The absolute location of the TDAT block is the TKEY entry offset + size of TKEY block + 16.
Block 3 (TDAT) | ||
---|---|---|
Offset | Type | Description |
0x00 | char[4] | TDAT
|
0x04 | dword | Size of TDAT block |
0x08 | TDAT[n] | Array of TDAT entries, where n is the number of entries. Entries are not sorted in alphabetical order but their order comes from the order of their entry in the GXT source file. |
Offset | Type | Description |
---|---|---|
0x00 | wchar_t[m] | An array of wide characters (2 bytes per character) to be displayed in the game, where m is the number of characters. The array is terminated by a null character (0x0000 ). The characters are based on the character table in the fonts.txd file, which mostly follows ASCII. The location of the entry in absolute term is TDAT entry offset + size of TKEY block + 16.
|
GTA SA/IV
Each GXT file contains certain tables with entries. And each entry has a unique CRC identifier and a normal text.
Header
The header contains information about the GXT version.
INT16 - 2b - Version (4) INT16 - 2b - Number of bits per character (8: ASCII, 16: UTF-16)
Table Block
The Table Block contains data about the subtables and their offsets.
CHAR[4] - 4b - TABL INT32 - 4b - Blocksize //Array of [Blocksize / 12 Entries] CHAR[8] - 8b - Subtablename INT32 - 4b - Offset
The Offset of the subtable points to an 8-byte Char Array with the subtable's name, followed by TKEY. For the MAIN Table this points directly to TKEY!
GTA San Andreas has a limit of max 200 tables to be stored per GXT file.
TKEY and TDAT
TKEY
The TKEY Block of an subtable contains the CRC32-values of the entrytitles. The game calculates the CRC32-value out of a given string and checks if they exist in the GXT.
CHAR[4] - 4b - TKEY INT32 - 4b - Blocksize //Array of [Blocksize / 8] INT32 - 4b - Entryoffset INT32 - 4b - CRC32 (Entryname)
The TKEY block is directly followed by the TDAT Block which contains the contents of the entries. The Entryoffset is relative to the TDAT + 8 offset.
TDAT
CHAR[4] - 4b - TDAT INT32 - 4b - Blocksize
From here the entryoffset of each entry points to the content. The content can have different sizes. However it always ends in '\0'! For Example "Hello!" needs to be transformed to "Hello!\0" here and this gives a size of 6 bytes (To tell it in a short form content is a null-terminated string). If this is the 1st content in TDAT the next got an offset of 0x06!
Encodings
GTA SA : Windows-1252 always. GTA IV(8 bits) : Custom Encoding GTA IV(16 bits) : Well, its a fake 16 bits encoding, all you need to take care about first 8 bits(1 byte). Eg. A3F4 C2DD E922, read only A3, C2, E9.
Sorting
The sorting method for TABL, TKEY, TDAT is as follow:
Section | Sorting method |
---|---|
TABL | Sorted in alphabetical order |
TKEY | GTA SA: Sorted from the lowest crc32 to the highest crc32,
GTA IV: Unknown. Perhaps randomized order. |
TDAT | Not sorted. The data is stored from the first line to the last line in the GXT source file |
GTA 1 Format
GTA 1 language files have .fxt extension, and it's different from other games' format. Except the first 8 byte it uses very simple encryption. To get text, just substract 1 from every byte. First 8 bytes have different encryption, probably just to confuse modders. For every byte substract a value returned from left shifting 99.
Character maps
These character maps display all possible characters that can be used in the GXT file. Each character is represented by a hexadecimal value, which can be constructed by adding the value in the leftmost column to the value in the topmost row, e.g. a capital letter A is represented by 0x41 in hex.
GTA III
Font Style 0 (Bank)
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20 | ! | △ | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | ◀ | = | ▶ | ? |
40 | ™ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | ° |
60 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
70 | p | q | r | s | t | u | v | w | x | y | z | ◯ | ~ | |||
80 | À | Á | Â | Ä | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï | Ò | Ó |
90 | Ô | Ö | Ù | Ú | Û | Ü | ß | à | á | â | ä | æ | ç | è | é | ê |
A0 | ë | ì | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | Ñ | ñ | ¿ |
B0 | ¡ | ' |
Font Style 1 (Pager)
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20 | ! | " | # | $ | % | & | ' | ( | ) | - | , | - | . | |||
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ? | ||||
40 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
50 | P | Q | R | S | T | U | V | W | X | Y | Z | |||||
60 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
70 | p | q | r | s | t | u | v | w | x | y | z | ~ | ||||
80 | À | Á | Â | Ä | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï | Ò | Ó |
90 | Ô | Ö | Ù | Ú | Û | Ü | ß | à | á | â | ä | æ | ç | è | é | ê |
A0 | ë | ì | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | Ñ | ñ | ¿ |
B0 | ¡ |
Font Style 2 (Heading)
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20 | ! | △ | ® | $ | % | & | ' | ( | ) | + | , | - | . | ✕ | ||
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ▲ | ◀ | ▼ | ▶ | ? |
40 | ™ | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
50 | p | q | r | s | t | u | v | w | x | y | z | \ | № | ° | ||
60 | © | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
70 | p | q | r | s | t | u | v | w | x | y | z | ◯ | ~ | |||
80 | à | á | â | ä | æ | ç | è | é | ê | ë | ì | í | î | ï | ò | ó |
90 | ô | ö | ù | ú | û | ü | ß | à | á | â | ä | æ | ç | è | é | ê |
A0 | ë | ì | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | ñ | ñ | ¿ |
B0 | ¡ |
- Characters in italic are the pager font.
- Characters in bold use Pricedown font or have a dirty look.
- Characters in both bold and italic use an italicized Pricedown font.
- Hover your mouse over the dotted line for characters that cannot be displayed in the browser.
Vice City
Font Style 0 (Bank)
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20 | ! | $ | % | & | ' | [ | ] | + | , | - | . | |||||
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ? | ||||
40 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
50 | P | Q | R | S | T | U | V | W | X | Y | Z | \ | ¡ | \ | ||
60 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
70 | p | q | r | s | t | u | v | w | x | y | z | ~ | ||||
80 | À | Á | Â | Ä | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï | Ò | Ó |
90 | Ô | Ö | Ù | Ú | Û | Ü | ß | à | á | â | ä | æ | ç | è | é | ê |
A0 | ë | ì | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | Ñ | ñ | ¿ |
B0 | i |
Font Style 1 (Standard)
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | = | ? | ||
40 | ™ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ¡ | ° |
60 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
70 | p | q | r | s | t | u | v | w | x | y | z | | | $ | ~ | ) | |
80 | À | Á | Â | Ä | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï | Ò | Ó |
90 | Ô | Ö | Ù | Ú | Û | Ü | ß | à | á | â | ä | æ | ç | è | é | ê |
A0 | ë | ì | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | Ñ | ñ | ¿ |
B0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | a |
Font Style 2 (Heading)
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | = | ? | ||
40 | ™ | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
50 | p | q | r | s | t | u | v | w | x | y | z | [ | \ | ] | ¡ | ° |
60 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
70 | p | q | r | s | t | u | v | w | x | y | z | | | $ | ~ | ) | |
80 | à | á | â | ä | æ | ç | è | é | ê | ë | ì | í | î | ï | ò | ó |
90 | ô | ö | ù | ú | û | ü | ß | à | á | â | ä | æ | ç | è | é | ê |
A0 | ë | ì | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | ñ | ñ | ¿ |
B0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | a | b | c | d | e |
C0 | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u |
D0 | v | w | x | y | z | à | á | â | ä | æ | ç | è | é | ê | ë | ì |
E0 | í | î | ï | ò | ó | ô | ö | ù | ú | û | ü | ß | ñ | ¿ | ' | . |
- Characters in italic use Rage Italic font.
- Characters in bold use Pricedown font or have a dirty look.
- Hover your mouse over the dotted line for characters that cannot be displayed in the browser.
- See also: Japanese character map
Tokens
A token is a character or string surrounded by ~
and is used for displaying colors, symbols, dynamic text, and button controls in text. Tokens with visible effects are listed in tables below. Note that using ~
by itself will crash the game when the game attempts to display it.
Symbols and colors
Token | |||||
---|---|---|---|---|---|
~1~ | number within a text | - | |||
~A~ | - | - | L3 icon (PS2) / LStick icon (XBOX) | - | - |
~B~ | - | bold and unbold text; text must be enclosed by two of these tokens | - | - | - |
~K~ | - | - | L1 icon (PS2) / LT icon (XBOX) | - | - |
~Y~ | - | - | - | yellow text | - |
~a~ | area text | - | |||
~b~ | blue text | blue text | blue text | blue text | blue text |
~c~ | - | - | R3 icon (PS2) / RStick icon (XBOX) | - | - |
~d~ | - | - | ▼-icon | - | - |
~g~ | green text | hot pink text | green text | green text | green text |
~h~ | white text | highlight | white text | white text | |
~j~ | - | - | R1 icon (PS2) / RT icon (XBOX) | - | - |
~k~ | key (followed by buttons) | - | |||
~l~ | black text | forces text to default color and ignores set colors | black text | black text | |
~m~ | - | - | L2 icon (PS2) / WHITE icon (XBOX) | - | - |
~n~ | - | Empty character, allows blanking out subtitles | newline | newline | newline |
~o~ | - | pink text | Circle icon (PS2) / B icon (XBOX) | pink text | - |
~p~ | purple text | purple text | purple text | purple text | |
~q~ | - | plum pink text | Square icon (PS2) / X icon (XBOX) | plum pink text | - |
~r~ | red text | hot pink text | red text | red text | red text |
~s~ | - | - | reset color to standard | - | white text |
~t~ | - | green text | Triangle icon (PS2) / Y icon (XBOX) | green text | - |
~u~ | - | - | ▲-icon | - | - |
~v~ | - | - | R2 icon (PS2) / BLACK icon (XBOX) | - | - |
~w~ | gray text | white text | white text | white text | |
~x~ | - | light blue text | Cross icon (PS2) / A icon (XBOX) | light blue text | - |
~y~ | yellow text | yellow text | yellow text | yellow text | yellow text |
~z~ | - | - | subtitle (doesn't shown when the Subtitles option is off) | - | - |
~<~ | - | - | ◄-icon | - | - |
~>~ | - | - | ►-icon | - | - |
~f~ | - | Text flashing | - | - | - |
In GTA III's original GXT files for the PC version, the token l
is unused. The token W
appears erroneously in GXT key AS3_A
in all language files except the Italian one. In Vice City's original GXT files for the PC version, the tokens B
and l
are unused. t
and x
are unused in the English language file but appear to be used erroneously in other language files. The token c
appears erroneously in GXT key FIN_B5
; it could have represented the cyan color to match the color of the blip the text represents.[1] The token also appears in GXT key RCH1_3
in all language files except the English one.
Buttons
You can use opcode 00E1 to check if these keys are being pressed.
Foot Controls
Key | Game | Entry |
---|---|---|
Fire | ~PED_FIREWEAPON~ | |
Next Weapon / Target | ~PED_CYCLE_WEAPON_RIGHT~ | |
Previous Weapon / Target | ~PED_CYCLE_WEAPON_LEFT~ | |
Group Ctrl Forward | ~GROUP_CONTROL_FWD~ | |
Group Ctrl Back | ~GROUP_CONTROL_BWD~ | |
Conversation - No | ~CONVERSATION_NO~ | |
Conversation - Yes | ~CONVERSATION_YES~ | |
Forward | ~GO_FORWARD~ | |
Backwards | ~GO_BACK~ | |
Left | ~GO_LEFT~ | |
Right | ~GO_RIGHT~ | |
Zoom In | ~PED_SNIPER_ZOOM_IN~ | |
Zoom Out | ~PED_SNIPER_ZOOM_OUT~ | |
Enter+Exit | ~VEHICLE_ENTER_EXIT~ | |
Change Camera | ~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~ | |
Jump | ~PED_JUMPING~ | |
Sprint | ~PED_SPRINT~ | |
Target / Aim Weapon | ~PED_LOCK_TARGET~ | |
Crouch | ~PED_DUCK~ | |
Action | ~PED_ANSWER_PHONE~ | |
Walk | ~SNEAK_ABOUT~ | |
Look Behind | ~PED_LOOKBEHIND~ | |
Look Left | [a] | ~PED_1RST_PERSON_LOOK_LEFT~ |
Look Right | [a] | ~PED_1RST_PERSON_LOOK_RIGHT~ |
Look Up | [a] | ~PED_1RST_PERSON_LOOK_UP~ |
Look Down | [a] | ~PED_1RST_PERSON_LOOK_DOWN~ |
Next Target | [a] | ~PED_CYCLE_TARGET_LEFT~ |
Previous Target | [a] | ~PED_CYCLE_TARGET_RIGHT~ |
Center Camera | [a] | ~PED_CENTER_CAMERA_BEHIND_PLAYER~ |
Vehicle Controls
Key | Game | Entry |
---|---|---|
Fire | ~VEHICLE_FIREWEAPON~ | |
Secondary Fire | ~VEHICLE_FIREWEAPON_ALT~ | |
Accelerate | ~VEHICLE_ACCELERATE~ | |
Brake / Reverse | ~VEHICLE_BRAKE~ | |
Left | ~VEHICLE_STEERLEFT~ | |
Right | ~VEHICLE_STEERRIGHT~ | |
Steer Forward / Down | ~VEHICLE_STEERDOWN~ | |
Steer Back / Up | ~VEHICLE_STEERUP~ | |
Enter+Exit | ~VEHICLE_ENTER_EXIT~ | |
Trip Skip | ~CONVERSATION_YES~ | |
Change Radio Station | ~VEHICLE_CHANGE_RADIO_STATION~ | |
Next Radio Station | ~VEHICLE_RADIO_STATION_UP~ | |
Previous Radio Station | ~VEHICLE_RADIO_STATION_DOWN~ | |
User Track Skip | none | |
Horn | ~VEHICLE_HORN~ | |
Sub-mission | ~TOGGLE_SUBMISSIONS~ | |
Change Camera | ~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~ | |
Handbrake | ~VEHICLE_HANDBRAKE~ | |
Mouse Look | ~VEHICLE_MOUSELOOK~ | |
Look Left | ~VEHICLE_LOOKLEFT~ | |
Look Right | ~VEHICLE_LOOKRIGHT~ | |
Turret Left / Special Ctrl Left | ~VEHICLE_TURRETLEFT~ | |
Turret Right / Special Ctrl Right | ~VEHICLE_TURRETRIGHT~ | |
Turret Up / Special Ctrl Up | ~VEHICLE_TURRETUP~ | |
Turret Down / Special Ctrl Down | ~VEHICLE_TURRETDOWN~ | |
Look Behind | [b] | ~VEHICLE_LOOKBEHIND~ |
Unused
Here are some keypress codes only used during development stage. They were removed or replaced later but probably they are still working. Maybe this is useful for further research. Some are only used in PS2 Version.
~TAKE_SCREEN_SHOT~ |
~SWITCH_DEBUG_CAM_ON~ |
~TOGGLE_DPAD~ |
~NETWORK_TALK~ |
Tools
GTA2 GXT Editor v2.0 - by Delfi | |
Grand Theft Auto GXT Editor v1.3 - by Zverik, retrieved from archive.org | |
SAGE v0.9.7 - by AleX AciD | |
GTA Texter v2.0b3 - by feroCT5 | |
GTAGarage: GXT Editor 1.3 - by Jevon | |
GTA: Vice City GXT Editor v1.2 - by CyQ | |
GXT Builder, by Silent | |
GTA San Andreas Text Editor - by JernejL | |
GTA: San Andreas GXT Editor v1.3 - by Hammer83 | |
A-GXT Editor v1.0a - by Aschratt | |
X GXT Editor v2.1 - by xmen | |
OpenIV - Have Inbuilt GXT file viewer |
Reference
External links
- GXT entries in e.gxt
- List of all English GXT entries
- San Andreas american.gxt file
- Vice City Stories american.gxt file
- Liberty City Stories english.gxt file
- IV american.gxt file
- List of non-English GXT entries
- Some of GTA IV GXT text entry names
- GTAForums: List of usable characters
Grand Theft Auto IV | |
---|---|
File Formats | .dat • .gxt • .ide • .img • .ipl • .nod • .sco • .rpf • .rrr • .wad • .wbd/.wbn • .wdd • .wdr • .wft • .whm • .wpl • .wtd |
Documentation | Audio • Bink Video • Cryptography • Cutscenes • GXT Text • Image listing • Keycodes • Map Listing • Native functions • Paths • Radar Blips • Radio Stations • Saves • Scenarios • VTable • Weapons |
Tools | ASI Loader • ENBSeries • G-Texture • GIMS IV • Ingame WPL Editor • IV Needle • OpenIV • SparkIV • XLiveLess • WPL Manager • X Mod Installer Alice • C++ Script Hook • .NET Script Hook • Scocl |
Tutorials | Importing Textures with OpenIV • Importing Textures with SparkIV |
Modifications | GTA Connected • Gostown IV • Four Multiplayer • IV Multiplayer • CitizenMP:IV Reloaded |
Useful links | Community portal • Discussion forums • Modding forums • Mods on GTAGarage.com |
Grand Theft Auto: Vice City Stories | |
---|---|
File Formats | .cfg • .dat • .dtz • .gxt • .ide • .img • .ipl • .pss • .scm • .vb • .xtx |
Documentation | Leeds Engine • Radio Stations • Vehicles |
Tools | Sanny Builder |
Useful Links | Community Portal • Discussion Forum • Modding Topic |
Grand Theft Auto: Liberty City Stories | |
---|---|
File Formats | .cfg • .chk • .dat • .dtz • .gxt • .ide • .img • .ipl • .mdl • .pss • .scm • .vb |
Documentation | Leeds Engine • Opcodes • Radio Stations • Saves • Scrollbar • Vehicles |
Tools | Sanny Builder |
Useful Links | Community Portal • Discussion Forum • Modding Topic • Mobile Modding |