Difference between revisions of "AGI/Specifications/Savegame"

From ScummVM :: Wiki
Jump to navigation Jump to search
(more formatting tweaks, plus more info)
Line 7: Line 7:


=== Header (40 bytes) ===
=== Header (40 bytes) ===
'''Bytes 0-30''' (31 bytes) Savegame description. This can be up to 30 printable characters, and is padded out with NUL (\0) bytes to a total of 31 bytes.
'''0-30''' (31 bytes) Savegame description. This can be up to 30 printable characters, and is padded out with NUL (\0) bytes to a total of 31 bytes.


'''Bytes 31-32''' (2 bytes) Unknown (0xE1 0x05); maybe a savegame version number?
'''31-32''' (2 bytes) Unknown (0xE1 0x05); maybe a savegame version number?


'''Bytes 33-39''' (7 bytes) Game ID ("SQ2", "KQ3", "LLLLL", etc.), NUL padded.
'''33-39''' (7 bytes) Game ID ("SQ2", "KQ3", "LLLLL", etc.), NUL padded.


=== Game state ===
=== Game state ===
'''Bytes 40-295''' (256 bytes) Variables, 1 variable per byte
'''40-295''' (256 bytes) Variables, 1 variable per byte


'''Bytes 296-327''' (32 bytes) Flags, 8 flags per byte
'''296-327''' (32 bytes) Flags, 8 flags per byte


'''Bytes 328-331''' (4 bytes) Clock ticks since game started. 1 clock tick == 50ms.
'''328-331''' (4 bytes) Clock ticks since game started. 1 clock tick == 50ms.


...
...
Line 30: Line 30:
'''356-555''' (200 bytes) ? Controller map (50 controllers, 4 bytes each)
'''356-555''' (200 bytes) ? Controller map (50 controllers, 4 bytes each)


'''Bytes 556-1515''' (960 bytes) 24 strings, each 40 bytes long.
'''556-1515''' (960 bytes) 24 strings, each 40 bytes long.
 
'''1516-1521''' (6 bytes) ? Text colours


=== Other bits ===
=== Other bits ===
'''Bytes 2334-?''' (? bytes) Inventory object names, each NUL terminated.
'''2334-?''' (? bytes) Inventory object names, each NUL terminated.

Revision as of 08:29, 6 January 2007


This is a WORK IN PROGRESS; do not rely on this information, and please let Dave know if you're going to be changing this in any significant way.


Where a numeric value is specified over multiple bytes, it is always little-endian, unless otherwise noted.


Header (40 bytes)

0-30 (31 bytes) Savegame description. This can be up to 30 printable characters, and is padded out with NUL (\0) bytes to a total of 31 bytes.

31-32 (2 bytes) Unknown (0xE1 0x05); maybe a savegame version number?

33-39 (7 bytes) Game ID ("SQ2", "KQ3", "LLLLL", etc.), NUL padded.

Game state

40-295 (256 bytes) Variables, 1 variable per byte

296-327 (32 bytes) Flags, 8 flags per byte

328-331 (4 bytes) Clock ticks since game started. 1 clock tick == 50ms.

...

344-345 (2 bytes) ? 1 => player_control

346-347 (2 bytes) Current PICTURE

...

356-555 (200 bytes) ? Controller map (50 controllers, 4 bytes each)

556-1515 (960 bytes) 24 strings, each 40 bytes long.

1516-1521 (6 bytes) ? Text colours

Other bits

2334-? (? bytes) Inventory object names, each NUL terminated.