Information
Replay files have the extension .rep and can be called by pressing F1 on you're keyboard.
Replays are the sequence of the scenes and actions recorded and stored in the replay.rep file.
This file is located in the User Files directory; GTA San Andreas User Files directory.
Special actors to do load during replays, they are replaced with the #MALE01 model, because he is the games default ped, who is always loaded.
The replay file(s) consists of a header string and variable amount of 'scenes' or 'frames'
A scene is a copy of important game information at given moment of time (actors, vehicles positions, weather, clothes, etc).
Following one after another, the scenes create an illusion of a movie when played.
The most of scenes contains a same set of blocks and ends with Block 8.
The .rep file itself consist of a header string which is simply the text GtaSA29 and up to 8 parts,
size of each one is 100,000 bytes, depending on the replay length.
So, the maximum size of a replay file is 800,008 bytes
(including 8 bytes of the header string).
If the replay length is that it does not match 100,000 bytes boundary being less,
the rest of the file is filled with useless data (commonly the previous replay data).
Blocks
Each block consists of a byte denoting its type and some data as described below.
A number in a block name is the data type stored in the first byte of the block. Reading this byte, the game detects what block follows.
Block 0: End of file
This block denotes the end of replay data. It consists only of a data type. After this block the game stops reading the replay file.
- Code:
OFFSET TYPE DESCRIPTION
0x00 byte data type (0x00)
0x01 (end)
Block 1: Vehicle1
- Code:
size 52 bytes
Block 2: Vehicle2
- Code:
size 56 bytes
Block 3: Player data
- Code:
Common information about player ped.
OFFSET TYPE DESCRIPTION
0x00 byte data type (0x03)
0x01 byte index (handle?)
0x02 WORD modelID
0x04 byte ped type
0x05 byte[3] (align)
0x08 (end)
Block 4: Ped
- Code:
size 52 bytes
Block 5: Camera
- Code:
size 88 bytes
Block 6: Day time
- Code:
This block contains information about current day time during a scene.
OFFSET TYPE DESCRIPTION
0x00 byte data type (0x06)
0x01 byte currentHour
0x02 byte currentMinute
0x03 byte (align)
0x04 end
Block 7: Weather
- Code:
size 8 bytes
Block 8: End of scene
- Code:
This block denotes the end of the current scene (frame). It consists only of a data type.
OFFSET TYPE DESCRIPTION
0x00 byte data type (0x00)
0x01 (end)
Block 9: Scene timing
- Code:
This block contains value of the global game timer. The replay play length could be found by using this block.
OFFSET TYPE DESCRIPTION
0x00 byte data type (0x09)
0x01 byte[3] (align)
0x04 DWORD timer
0x08 (end)
Links
There is an editor, made by Seemann for 010 Editor template. It allows to edit different replay data: Click!