By focusing on enhancing the gameplay through customizable controls, you can create a more engaging and inclusive experience for GTA: VC players.

| Game | Control File | Format | Location | |------|--------------|--------|----------| | GTA III | keys.dat | Binary (identical layout to VC, minor offsets differ) | Game root | | GTA: Vice City | keys.dat | Binary (this report) | Game root | | GTA: San Andreas | gta_sa.set | Binary (larger, includes audio/display settings) | Documents/GTA San Andreas User Files | | GTA IV & V | Settings.xml / controlmap.xml | XML (human-readable) | Documents/Rockstar Games/... |

Takeaway: keys.dat is a III-era relic – binary, fragile, but simple enough to be edited by power users.


The file is a flat array of keyboard scancodes (DirectInput scan codes, not ASCII). Each action’s binding is stored as a single byte (0–255) at a fixed offset.

| Offset (hex) | Length | Action | Default Value (Scancode) | Physical Key | |--------------|--------|----------------|--------------------------|---------------| | 0x00 | 1 | PED_FORWARDS | 0x11 | W | | 0x01 | 1 | PED_BACKWARDS | 0x1F | S | | 0x02 | 1 | PED_LEFT | 0x1E | A | | 0x03 | 1 | PED_RIGHT | 0x20 | D | | 0x04 | 1 | PED_FIRE | 0x22 | LMB (mouse) → 0x22 (Ctrl) in classic layout | | 0x05 | 1 | PED_ENTER_EXIT | 0x12 | E | | … | … | … | … | … | | 0x30 | 1 | VEHICLE_HORN | 0x13 | H |

(Full layout documented in community resources; offsets beyond 0x80 are for joystick axes/buttons.)

Critical anomalies:


keys.dat is a small configuration file in GTA:VC that stores game-specific keys and identifiers — notably the key mapping and executable keys used by the game engine to find or validate certain resources. Understanding keys.dat helps modders, archivists, and researchers analyze game behavior, restore installations, or create compatible mods.

Another cool feature: Shift layers like a keyboard's Fn key.

Example:

LAYER_KEY 42   # LSHIFT as layer modifier