The savegame file contains scores, players, level complete etc.
GTADATA\PLAYER_A.DAT (for GTA1)
GTADATA\UK\PLAYER_A.DAT (for London 1969)
GTADATA\UK\PLAYER_E.DAT (for London 1961)
Player_a.dat of GTA Classics/Steam and GTA Retail are incompatible, since they have a different structure!
GTA Classics will crash if the fifth byte is not equal to 6.
GTA Classics can therefore not correctly load the previously selected resolution.
// London 1969: 0x2FF bytes (gtadata\uk\player_a.dat)
// London 1961: 0x194 bytes (gtadata\uk\player_e.dat)
// GTA1 Retail: 0x3F1 bytes (gtadata\player_a.dat)
// GTA1 Classics: 0x414 bytes (gtadata\player_a.dat)
PlayerA {
// London 1969: 0x12 bytes
// London 1961: 0x12 bytes
// GTA1 Retail: 0x12 bytes
// GTA1 Classics: 0x18 bytes
Options {
byte soundVolume; // 0 = off, 1..7
byte musicVolume; // 0 = off, 1..7
byte textSpeed; // 1..3
byte radioMode; // 0=radio, 1=constant
byte resolution; // In Retail: Dependent on the system.
// In Rockstar Classics:
// 00 = 640x480x16
// 01 = 800x600x16
// 02 = 1024x768x16
// 03 = 640x480x32
// 04 = 800x600x32
// 05 = 1024x768x32
byte resolution_default; // will be initialized with the same value as "resolution", but will then never be read or written for any purpose
byte reserved; // will not be read or written by the code for any purpose
byte transparencyEffects; // 0=off, 1=on
[BYTE|DWORD] deathmatch_mode; // 0=score, 1=kills; in Retail: BYTE, in Rockstar Classics: DWORD
DWORD deathmatch_score; // default = 100000
DWORD deathmatch_kills; // default = 10
[BYTE|DWORD] language; // in Retail: BYTE, in Rockstar Classics: DWORD
// 0 = English
// 1 = French
// 2 = German
// 3 = Italian
// 4 = Japanese
// 99 = English with swear words (special.fxt)
// 255 (default) = Take value from registry (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DMA Design\Grand Theft Auto), default
}
// London 1969: 12 sets á 0x13 bytes
// London 1961: 3 sets á 0x13 bytes
// GTA1 Retail: 18 sets á 0x13 bytes
// GTA1 Classics: 18 sets á 0x14 bytes
Top3HighScores[...] {
DWORD score;
szString[...] playerName; // in Retail: szString[0xF], in Rockstar Classics: szString[0x10]
}
// London 1969: 8 sets á 0x4F bytes
// London 1961: 8 sets á 0x4F bytes
// GTA1 Retail: 8 sets á 0x4F bytes
// GTA1 Classics: 8 sets á 0x50 bytes
Player[...] {
szString[...] playerName; // in Retail: szString[0xF], in Rockstar Classics: szString[0x10]
int32[6] levelHighscore. // -1 = level not unlocked
DWORD unknown1
DWORD multiplayer_selected_area; // e.g. 0=LC, 1=SA, 2=VC
DWORD unknown2
DWORD multiplayer_selected_game; // 0=deathmatch, 1..3=canonball 1..3
longbool[6] videoUnlocked; // 0=not unlocked, 1=unlocked
}
// London 1969: 0x11 bytes
// London 1961: 0x11 bytes
// GTA1 Retail: 0x11 bytes
// GTA1 Classics: 0x14 bytes
Footer {
byte selectedPlayerID; // values = 1..8
szString[...] multiplayer_host_title; // default = "GTA Game"; in Retail: szString[0x10], in Rockstar Classics: szString[0x13]
}
}
// GTA1 Retail: 0x3F1 bytes (gtadata\player_a.dat)
PlayerA {
// GTA1 Retail: 0x12 bytes
Options {
byte soundVolume; // 0 = off, 1..7
byte musicVolume; // 0 = off, 1..7
byte textSpeed; // 1..3
byte radioMode; // 0=radio, 1=constant
byte resolution; // Dependent on the system.
byte resolution_default; // will be initialized with the same value as "resolution", but will then never be read or written for any purpose
byte reserved; // will not be read or written by the code for any purpose
byte transparencyEffects; // 0=off, 1=on
byte deathmatch_mode; // 0=score, 1=kills
DWORD deathmatch_score; // default = 100000
DWORD deathmatch_kills; // default = 10
byte language; // Values:
// 0 = English
// 1 = French
// 2 = German
// 3 = Italian
// 4 = Japanese
// 99 = English with swear words (special.fxt)
// 255 (default) = Take value from registry (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DMA Design\Grand Theft Auto), default
}
// GTA1 Retail: 18 sets á 0x13 bytes
Top3HighScores[18] {
DWORD score;
szString[0xF] playerName;
}
// GTA1 Retail: 8 sets á 0x4F bytes
Player[8] {
szString[0xF] playerName;
int32[6] levelHighscore. // -1 = level not unlocked
DWORD unknown1
DWORD multiplayer_selected_area; // 0=LC, 1=SA, 2=VC
DWORD unknown2
DWORD multiplayer_selected_game; // 0=deathmatch, 1..3=canonball 1..3
longbool[6] videoUnlocked; // 0=not unlocked, 1=unlocked
}
// GTA1 Retail: 0x11 bytes
Footer {
byte selectedPlayerID; // values = 1..8
szString[0x10] multiplayer_host_title; // default = "GTA Game"
}
}
// London 1969: 0x2FF bytes (gtadata\uk\player_a.dat)
PlayerA {
// London 1969: 0x12 bytes
Options {
byte soundVolume; // 0 = off, 1..7
byte musicVolume; // 0 = off, 1..7
byte textSpeed; // 1..3
byte radioMode; // 0=radio, 1=constant
byte resolution; // Dependent on the system.
byte resolution_default; // will be initialized with the same value as "resolution", but will then never be read or written for any purpose
byte reserved; // will not be read or written by the code for any purpose
byte transparencyEffects; // 0=off, 1=on
byte deathmatch_mode; // 0=score, 1=kills
DWORD deathmatch_score; // default = 100000
DWORD deathmatch_kills; // default = 10
byte language; // Values:
// 0 = English
// 1 = French
// 2 = German
// 3 = Italian
// 4 = Japanese
// 99 = English with swear words (special.fxt)
// 255 (default) = Take value from registry (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DMA Design\Grand Theft Auto), default
}
// London 1969: 12 sets á 0x13 bytes
Top3HighScores[12] {
DWORD score;
szString[0xF] playerName;
}
// London 1969: 8 sets á 0x4F bytes
Player[8] {
szString[0xF] playerName;
int32[6] levelHighscore. // -1 = level not unlocked
DWORD unknown1
DWORD multiplayer_selected_area;
DWORD unknown2
DWORD multiplayer_selected_game; // 0=deathmatch, 1..3=canonball 1..3
longbool[6] videoUnlocked; // 0=not unlocked, 1=unlocked
}
// London 1969: 0x11 bytes
Footer {
byte selectedPlayerID; // values = 1..8
szString[0x10] multiplayer_host_title; // default = "GTA Game"
}
}
// London 1961: 0x194 bytes (gtadata\uk\player_e.dat)
PlayerA {
// London 1961: 0x12 bytes
Options {
byte soundVolume; // 0 = off, 1..7
byte musicVolume; // 0 = off, 1..7
byte textSpeed; // 1..3
byte radioMode; // 0=radio, 1=constant
byte resolution; // Dependent on the system.
byte resolution_default; // will be initialized with the same value as "resolution", but will then never be read or written for any purpose
byte reserved; // will not be read or written by the code for any purpose
byte transparencyEffects; // 0=off, 1=on
byte deathmatch_mode; // 0=score, 1=kills
DWORD deathmatch_score; // default = 100000
DWORD deathmatch_kills; // default = 10
byte language; // Values:
// 0 = English
// 1 = French
// 2 = German
// 3 = Italian
// 4 = Japanese
// 99 = English with swear words (special.fxt)
// 255 (default) = Take value from registry (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DMA Design\Grand Theft Auto), default
}
// London 1961: 3 sets á 0x13 bytes
Top3HighScores[3] {
DWORD score;
szString[0xF] playerName;
}
// London 1961: 8 sets á 0x4F bytes
Player[8] {
szString[0xF] playerName;
int32[6] levelHighscore. // -1 = level not unlocked
DWORD unknown1
DWORD multiplayer_selected_area;
DWORD unknown2
DWORD multiplayer_selected_game; // 0=deathmatch, 1..3=canonball 1..3
longbool[6] videoUnlocked; // 0=not unlocked, 1=unlocked
}
// London 1961: 0x11 bytes
Footer {
byte selectedPlayerID; // values = 1..8
szString[0x10] multiplayer_host_title; // default = "GTA Game"
}
}
// GTA1 Classics: 0x414 bytes (gtadata\player_a.dat)
PlayerA {
// GTA1 Classics: 0x18 bytes
Options {
byte soundVolume; // 0 = off, 1..7
byte musicVolume; // 0 = off, 1..7
byte textSpeed; // 1..3
byte radioMode; // 0=radio, 1=constant
byte resolution; // Dependent on the system.
// Values:
// 00 = 640x480x16
// 01 = 800x600x16
// 02 = 1024x768x16
// 03 = 640x480x32
// 04 = 800x600x32
// 05 = 1024x768x32
byte resolution_default; // will be initialized with the same value as "resolution", but will then never be read or written for any purpose
byte reserved; // will not be read or written by the code for any purpose
byte transparencyEffects; // 0=off, 1=on
DWORD deathmatch_mode; // 0=score, 1=kills
DWORD deathmatch_score; // default = 100000
DWORD deathmatch_kills; // default = 10
DWORD language; // Values:
// 0 = English
// 1 = French
// 2 = German
// 3 = Italian
// 4 = Japanese
// 99 = English with swear words (special.fxt)
// 255 (default) = Take value from registry (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DMA Design\Grand Theft Auto), default
}
// GTA1 Classics: 18 sets á 0x14 bytes
Top3HighScores[18] {
DWORD score;
szString[0x10] playerName;
}
// GTA1 Classics: 8 sets á 0x50 bytes
Player[8] {
szString[0x10] playerName;
int32[6] levelHighscore. // -1 = level not unlocked
DWORD unknown1
DWORD multiplayer_selected_area; // 0=LC, 1=SA, 2=VC
DWORD unknown2
DWORD multiplayer_selected_game; // 0=deathmatch, 1..3=canonball 1..3
longbool[6] videoUnlocked; // 0=not unlocked, 1=unlocked
}
// GTA1 Classics: 0x14 bytes
Footer {
byte selectedPlayerID; // values = 1..8
szString[0x13] multiplayer_host_title; // default = "GTA Game"
}
}