Difference between revisions of "Saves (GTA 3)"

From GTAMods Wiki
Jump to navigation Jump to search
(initial layout)
 
(Block 1: Miscellaneous)
Line 16: Line 16:
  
 
====Block 1: Miscellaneous====
 
====Block 1: Miscellaneous====
 +
Game "meta-information" giving the overall state of things. Also includes 'thescripts' sub-block.
 +
{|class="wikitable"
 +
!OFFSET
 +
!TYPE
 +
!DESCRIPTION
 +
|-
 +
|0x0000  ||dword    ||block size
 +
|-
 +
|0x0004  ||wchar_t[24]||save name (long names are truncated on the save/load screen)
 +
|-
 +
|0x0034  ||word    ||SYSTEMTIME wYear
 +
|-
 +
|0x0036  ||word    ||SYSTEMTIME wMonth
 +
|-
 +
|0x0038  ||word    ||SYSTEMTIME wDayOfWeek
 +
|-
 +
|0x003A  ||word    ||SYSTEMTIME wDay
 +
|-
 +
|0x003C  ||word    ||SYSTEMTIME wHour
 +
|-
 +
|0x003E  ||word    ||SYSTEMTIME wMinute
 +
|-
 +
|0x0040  ||word    ||SYSTEMTIME wSecond
 +
|-
 +
|0x0042  ||word    ||SYSTEMTIME wMilliseconds
 +
|-
 +
|0x0044  ||dword    ||unknown
 +
|-
 +
|0x0048  ||enum    ||current island) (1=Portland; 2=Staunton; 3=Shoreside Vale)
 +
|-
 +
|0x004C  ||float[3] ||camera coordinates (x,y,z)
 +
|-
 +
|0x0058  ||dword    ||length (ms) of in-game minute
 +
|-
 +
|0x005C  ||dword    ||weather timer
 +
|-
 +
|0x0060  ||byte    ||game hour
 +
|-
 +
|0x0061  ||byte[3]  ||(align)
 +
|-
 +
|0x0064  ||byte    ||game minute
 +
|-
 +
|0x0065  ||byte[3]  ||(align)
 +
|-
 +
|0x0068  ||word    ||(unknown) current pad
 +
|-
 +
|0x006A  ||byte[2]  ||(align)
 +
|-
 +
|0x006C  ||dword    ||global timer
 +
|-
 +
|0x0070  ||float    ||game speed
 +
|-
 +
|0x0074  ||float    ||(unknown) frame delta time
 +
|-
 +
|0x0078  ||float    ||(unknown) tick time (time of an iteration of the major game loop)
 +
|-
 +
|0x007C  ||dword    ||number of the frames processed from the beginning of the game
 +
|-
 +
|0x0080  ||float    ||(unknown)
 +
|-
 +
|0x0084  ||float    ||(unknown)
 +
|-
 +
|0x0088  ||float    ||(unknown)
 +
|-
 +
|0x008C  ||word    ||(unknown)
 +
|-
 +
|0x008E  ||byte[2]    ||(align)
 +
|-
 +
|0x0090  ||word    ||(unknown)
 +
|-
 +
|0x0092  ||byte[2]    ||(align)
 +
|-
 +
|0x0094  ||word    ||(unknown)
 +
|-
 +
|0x0096  ||byte[2]    ||(align)
 +
|-
 +
|0x0098  ||float    ||(unknown)
 +
|-
 +
|0x009C  ||dword    ||(unknown)
 +
|-
 +
|0x00A0  ||dword    ||(unknown)
 +
|-
 +
|0x00A4  ||dword    ||(unknown)
 +
|-
 +
|0x00A8  ||dword    ||(unknown)
 +
|-
 +
|0x00AC  ||dword    ||(unknown)
 +
|-
 +
|0x00B0  ||dword    ||(unknown)
 +
|-
 +
|0x00B4  ||dword    ||(unknown)
 +
|-
 +
|0x00B8  ||float    ||(unknown)
 +
|-
 +
|0x00BC  ||float    ||(unknown)
 +
|-
 +
|0x00C0  ||thescripts ||scripts info
 +
|}
 +
 
====Block 2: Peds pool====
 
====Block 2: Peds pool====
 
====Block 3: Garages====
 
====Block 3: Garages====

Revision as of 15:17, 6 January 2015

This article deals with the format of a save game file for the PC version of GTA 3.

Location

By default, the game places its save game files into the folder "GTA3 User Files" which is located in the current user's Documents folder. The location of this folder varies depending upon the version of Windows installed.

The save files themselves are named in the format GTA3sfX.b where X represents the in-game slot number. There are 8 slots available in the game (1-8).

Format Details

  • Save files are ALWAYS 0x3145C (201820) bytes long.
  • Byte order is little endian. For example, the number 3452 is represented as as 0x7C 0x0D.
  • File is divided into 22 blocks, followed by a 4-byte checksum (more info on the checksum below).

Data Blocks

There is a DWORD value preceding any block of data which is equal to the size of the block.

Block 1: Miscellaneous

Game "meta-information" giving the overall state of things. Also includes 'thescripts' sub-block.

OFFSET TYPE DESCRIPTION
0x0000 dword block size
0x0004 wchar_t[24] save name (long names are truncated on the save/load screen)
0x0034 word SYSTEMTIME wYear
0x0036 word SYSTEMTIME wMonth
0x0038 word SYSTEMTIME wDayOfWeek
0x003A word SYSTEMTIME wDay
0x003C word SYSTEMTIME wHour
0x003E word SYSTEMTIME wMinute
0x0040 word SYSTEMTIME wSecond
0x0042 word SYSTEMTIME wMilliseconds
0x0044 dword unknown
0x0048 enum current island) (1=Portland; 2=Staunton; 3=Shoreside Vale)
0x004C float[3] camera coordinates (x,y,z)
0x0058 dword length (ms) of in-game minute
0x005C dword weather timer
0x0060 byte game hour
0x0061 byte[3] (align)
0x0064 byte game minute
0x0065 byte[3] (align)
0x0068 word (unknown) current pad
0x006A byte[2] (align)
0x006C dword global timer
0x0070 float game speed
0x0074 float (unknown) frame delta time
0x0078 float (unknown) tick time (time of an iteration of the major game loop)
0x007C dword number of the frames processed from the beginning of the game
0x0080 float (unknown)
0x0084 float (unknown)
0x0088 float (unknown)
0x008C word (unknown)
0x008E byte[2] (align)
0x0090 word (unknown)
0x0092 byte[2] (align)
0x0094 word (unknown)
0x0096 byte[2] (align)
0x0098 float (unknown)
0x009C dword (unknown)
0x00A0 dword (unknown)
0x00A4 dword (unknown)
0x00A8 dword (unknown)
0x00AC dword (unknown)
0x00B0 dword (unknown)
0x00B4 dword (unknown)
0x00B8 float (unknown)
0x00BC float (unknown)
0x00C0 thescripts scripts info

Block 2: Peds pool

Block 3: Garages

Block 4: Vehicles pool

Block 5: Objects pool

Block 6: Path find

Block 7: Cranes

Block 8: Pickups

Block 9: Phone info

Block 10: Restarts

Block 11: Radar

Block 12: Zones

Block 13: Gangs

Block 14: Car Generators

Block 15: Particle objects

Block 16: Audio script objects

Block 17: Player info

Block 18: Stats

Block 19: Streaming

Block 20: Ped types

See also

External links