Savegames in Kyrandia 1 are called _kyra???.sav (_kyra000.sav is the first savegame). Each file is between 1.5kbyte and 2kbyte in size. (What happens if there are more than 1000 savegames?)
(hex) (dec)
offset length meaning
00-1D 30 name (rest filled with 0x00), may contain junk from older savegame name after first 0x00 though
1E-21 4 'MBL1'
22 1 version? values:
0x00 (mac?)
0x01 (1.0 game?)
0x0D (1.3 game?)
0x11 (1.7 game?)
0x12 (1.8 games?)
todo: 3.7 games (talkie), Amiga, FM Towns
23-2B 8 unknown (always 0x00?)
2C-2D 2 music
0x0000=off
0x0001=on (in fact everything >0 is on, but original saves 01 as on) (means offset 2C=0x01, 2D=0x00)
2E-2F 2 sound
0x0000=off
0x0001=on (in fact everything >0 is on, but original saves 01 as on)
30 1 walk speed:
00=slowest
01=slow
02=normal
03=fast
04=fastest
31 1 talk speed:
00=slowest
01=normal
02=fast
03=clickable
32 1
..X..... is Brandon invisible (0=false, 1=true)
......X. is Brandon Will-o-Wisp (floating pink thing) (0=false, 1=true)
.......X is Brandon poisoned (0=false, 1=true)
52 1
..X..... amulet visible (after altar) (0=false, 1=true)
.....X.. unknown (disabled at start, enabled by the time you are in locked in cave)
53 1
..X..... talk scene when leaving gemcut already done? (0=false, 1=true)
55 1 .....XX. unknown - Merith subgame enabled? (Merith in trunk.emc)
56 1
X....... pinecone placed in hole (0=false, 1=true)
.X...... Hugiflora is out of ground (0=false, 1=true)
57 1
X....... red amulet part enabled (0=false, 1=true)
.X...... yellow amulet part enabled (0=false, 1=true)
...X.... unknown (disabled at start, enabled by the time you are in swamp)
......X. walnut placed in hole (0=false, 1=true)
.......X acorn placed in hole (0=false, 1=true)
58 1
......X. blue amulet part enabled (0=false, 1=true)
.......X pink amulet part enabled (0=false, 1=true)
5D 1
......X. Kallak's note decrypted (0=false, 1=true)
60 1
......X. protection screen, if 0, Brendan says a line (0=false, 1=true)
6B 1
....X... copy protection already passed? (0=false, 1=true)
80-81 2 room ID; stuff like 0x0100 works, but weird results (see Room list)
88-91 10 inventory slots (0xFF = empty) (see Item list) (see also offset 0x0636)
92-93 2 Brandon's position: x-coord (left-right) (smaller=left, bigger=right) (0x00FF: about 3/4 to the right)
94-95 2 Brandon's position: y-coord (top-down) (smaller=top, bigger=down) (0x0086 is the bottom-most possible)
(note: coords from top-left of the screen? (not from playfield but including border?)
022E sth to do with current room/current script?
0636 mouse pointer item (if you picked up item when saving, then the index for item is saved here)
0xFF = standard pointer/no item picked up
????-EOF variable stuff, changes even if nothing else changes between saves (stack? stack pointer? code pointer?)