*.FXT
Files
Fil_FXT.html

Name

*.FXT - language-specific text messages

Location

gtadata\english.fxt
gtadata\french.fxt
gtadata\german.fxt
gtadata\italian.fxt
gtadata\special.fxt
gtados\data\english.fxt
gtados\data\french.fxt
gtados\data\german.fxt
gtados\data\italian.fxt

Availability

all GTA Demos, GTA Full Version

Description

All text messages used in the game and its configuration screens are kept in seperate language-specific files. When configuring the game, the players decides by their choice of language which file to use. special.fxt contains a second (American?) set of english messages, and cannot be used unless it is renamed or copied in the place of one of the other files in the same directory. The *.fxt files in the gtados/data/ directory are used for the configuration screen only. The files in gtadata/ are used for the game itself.

Decryption

The messages are encrypted using a polyalphabetic substitution cipher that appears like a monoalphabetic cypher after byte 8, which made it easy to crack.

Subtract an offset from the first 8 bytes in the file. The respective offsets are, in hexadecimal notation, 63, c6, 8c, 18, 30, 60, c0, 80. (Of course you can get these numbers by taking 63 and shifting it one bit to left for each consecutive number. You can see why this sequence ends after 8 bytes; it would‘ve been harder to crack, had the bit pattern been rotated instead of shifted...)

Subtract 1 from all bytes. (This includes the bytes from the previous step!)

If a byte equals 195, delete it and add 64 to the next byte. This relocates extended characters to the windows ANSI character set, which is necessary for three of the four languages provided.

Each string ends with a 0 byte and contains no CR or LF codes. The next string is stored immediately after it. The last string in the file seems to always be "[]“.

Key Types

Each string has the form [key]message . Examples from english.fxt:

[1001]Answer the South Park phones to get jobs. Keep your eyes open for opportunities. Remember - you mess up, we mess you up.

[duplicate_model]Another one? Where's your imagination, kid?
4-digit Numbers are used to display messages from MISSION.INI. They do not have to be stored in numerical order (but it eases finding things).
Example:
482 MOBILE_BRIEF 0 0 0 0 1440 
displays
[1440]Get your ass back to the phones in the park for more jobs.
Numbered Keys are combinations of a word and a number are used for list of messages. These lists can usually be modified and extended.

helpxx : Used for info sign POWERUP objects, xx=ammo parameter

521 (8,124,4) POWERUP 14 10 
makes an info sign that reads: 
[help10]Some buildings conceal courtyard areas. Check them out for a few fab surprises.

carxx : Car names for display; a car with no name will crash the game. xx=model byte in car record stored in STYLE file. Add [car88] to use the helicopter.

[car0]Beast GTS

xxxareayyy : Display names for area yyy as defined in the corresponding *.cmp file. Does xxx correspond to the style number stored in the cmp file, to the sample number, or to the level?

[002area008]Chinatown

missionxx : Mission name for display in pre-game screens; xx=MISSION.INI section number

[mission102]Mandarin Mayhem

cityx: Name of City for display in pre-game screens; x=hundreds digit of MISSION.INI section number?

[city1]San Andreas

cutxx : Text for Cutscene.

[cut12]I booked you a flight to San Andreas.
Fixed Keywords denote messages that correspond to unique events; they may contain pre-game screen messages or game messages for certain situatuations; a few can be displayed by a MISSION.INI keyword. They are usually found at the end of the fxt file.
[m22demo]Time's up, sucker! Ya want more? Buy the real thing.

[ipxnotinstalled]IPX Not Installed

[bomb_cost]That'll be $%s. 

Comment: The messages are really C printf format strings, so the % sign should not normally be used unless escaped with a '\'. %s means that the program inserts a string here.

[bomb_on]BOMB ARMED!

Comment: This message can be shown be the ARMEDMESS Action.

Notes

Information contributed by Michael Mendelsohn; a converter for FXT files is available.

Bugs

Not all "numbered keys" securely identified yet.

*.FXT

Last change: 26 Apr 1998

unofficial GTA Reference