Kyra/Savegames (Kyrandia 1)
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?)
This reference exists for two reasons: firstly it may prove useful for debugging (as it is possible to inject any item into the original game as well as to teleport into any room), secondly it might be possible to import original savegames into a recreated VM some day.
(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) 4D ?? flags (first flag byte "flags 07 06 05 04 03 02 01 00", etc) 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 something 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?)