Files with this format: "saves\dksave*.sav
".
This is the main portion of a Darklands saved game file.
Every saved game consists of a pair of files: ".sav" and ".bsv". The ".sav" file contains world and character data. The ".bsv" file contains battle and dungeon data (only for the last dungeon entered and not finished).
0x00
: curr_location_name: string(12) (null-delimited)
0x0c
: unknown (9 bytes)
0x15
: save_game_label: string(23) (null-delimited)
0x2c
: unknown (18 bytes) [constant: all 0x00]0x3e
: unknown (55 bytes)
0x63
: unknown (1 bytes) [constant: 0x19]0x64
: city_contents_seed: word
0x66
: unknown (2 bytes) [constant: 0x07, 0x00]0x68
: curr_date: struct date_reversed (size )
0x70
: party_money: struct money (size )
0x76
: unknown (4 bytes) [constant: all 0x00]0x7a
: reputation: word
0x7c
: curr_location: word
0x7e
: curr_coords: struct coordinates (size )
0x82
: curr_menu: word (enum menu)
0x84
: unknown (6 bytes)
0x8a
: prev_menu: word (enum menu)
0x8c
: bank_notes: word
0x8e
: unknown (4 bytes)
0x92
: philosopher_stone: word
0x94
: unknown (7 bytes)
0x9b
: party_order_indices: array[ 5 ] of string(4) (enum image_group)
.bsv
file, and is used for large battlefields? When do changes take effect?0xa0
: unknown (1 bytes)
0xa1
: party_leader_index: byte
0xa2
: unknown (3 bytes)
0xa5
: unknown (74 bytes) [constant: all 0x00]0xef
: num_curr_characters: word
0xf1
: num_characters: word
0xf3
: party_char_indices: array[ 5 ] of word
0xfd
: party_images: array[ 5 ] of string(4) (enum image_group)
pics\???small.pic
" files.
TODO: where is that image used?
0x111
: party_colors: array[ 5 ] of struct person_colors (each size 0x18)
0x189
: characters: array[ num_characters ] of struct character (each size 0x22a (554))
Size 0x03.
A color value (RGB triplet).
0x00
: red: byte
0x01
: green: byte
0x02
: blue: byte
Size 0x18.
A set of colors for a person (battle mode).
0x00
: first_hi: struct rgb (size 0x03)
0x03
: first_lo: struct rgb (size 0x03)
0x06
: second_hi: struct rgb (size 0x03)
0x09
: second_med: struct rgb (size 0x03)
0x0c
: second_lo: struct rgb (size 0x03)
0x0f
: third_hi: struct rgb (size 0x03)
0x12
: third_med: struct rgb (size 0x03)
0x15
: third_lo: struct rgb (size 0x03)
Size 0x22a (554).
A character (and all their belongings).
0x00
: unknown (17 bytes)
0x12
: age: word
0x14
: unknown (1 bytes)
0x15
: shield: char
pics\shield?.pic
" files.0x16
: unknown (12 bytes)
0x22
: equip_missile_type: byte
0x23
: unknown (2 bytes)
0x25
: full_name: string(25)
0x3e
: short_name: string(11) (null-delimited)
0x49
: unknown (2 bytes)
0x4b
: equip_vital_type: byte
0x4c
: equip_leg_type: byte
0x4d
: unknown (2 bytes)
0x4f
: equip_vital_q: byte
0x50
: equip_leg_q: byte
0x51
: equip_weapon_type: byte
0x52
: unknown (6 bytes)
0x58
: equip_weapon_q: byte
0x59
: unknown (1 bytes)
0x5a
: equip_missile_q: byte
0x5b
: equip_shield_q: byte
0x5c
: equip_shield_type: byte
0x5d
: curr_attrs: struct attribute_set (size )
0x64
: max_attrs: struct attribute_set (size )
0x6b
: skills: struct skill_set (size )
0x7e
: num_items: word
0x80
: saints_known: array[ 160 bits ] of bit
0x94
: formulae_known: array[ 22 ] of bitmask[1]
bit 1: | [constant: 0] | |
bit 2: | [constant: 0] | |
bit 3: | [constant: 0] | |
bit 4: | [constant: 0] | |
bit 5: | [constant: 0] | |
bit 6: | q45: | Knowledge of q45 formula. |
bit 7: | q35: | Knowledge of q35 formula. |
bit 8: | q25: | Knowledge of q25 formula. |
0xaa
: items: array[ 64 ] of struct item (each size )
Size 0x30 (48).
An event, effect, or quest.
0x00
: unknown word
0x02
: create_date: struct date (size )
0x0a
: unknown struct date (size )
0x12
: expire_date: struct date (size )
0x1a
: unknown word
0x1c
: unknown word
0x1e
: unknown word
0x21
: unknown word
0x23
: unknown word
0x25
: unknown word
0x27
: unknown word
0x29
: unknown word
0x2a
: unknown word
0x2c
: unknown word
0x2e
: unknown word
Size varies.
0x00
: num_items: byte
0x01
: items: array[ num_items ] of struct cache_item (each size 4)
Size 4.
0x00
: item_code: word
0x02
: quality: byte
0x03
: quantity: byte