Difference between revisions of "Kyra/Savegames (Kyrandia 1)"

From ScummVM :: Wiki
Jump to navigation Jump to search
 
m
Line 1: Line 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?)
Savegames in [[kyra|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.


<code>
<code>
Line 30: Line 32:
     00=slowest
     00=slowest
     01=slow
     01=slow
  02=normal
    02=normal
  03=fast
    03=fast
  04=fastest
    04=fastest
    
    
   31      1 talk speed:
   31      1 talk speed:
Line 47: Line 49:
   52 1
   52 1
   ..X.....        amulet visible (after altar) (0=false, 1=true)
   ..X.....        amulet visible (after altar) (0=false, 1=true)
      .....X.. unknown (disabled at start, enabled by the time you are in locked in cave)
        .....X.. unknown (disabled at start, enabled by the time you are in locked in cave)
 
 
53 1
  53 1
               ..X.....        talk scene when leaving gemcut already done? (0=false, 1=true)
               ..X.....        talk scene when leaving gemcut already done? (0=false, 1=true)
 
 
55 1      .....XX. unknown - Merith subgame enabled? (Merith in trunk.emc)
  55 1      .....XX. unknown - Merith subgame enabled? (Merith in trunk.emc)
 
 
56 1
  56 1
              X.......        pinecone placed in hole (0=false, 1=true)
                X.......        pinecone placed in hole (0=false, 1=true)
              .X......        Hugiflora is out of ground (0=false, 1=true)
                .X......        Hugiflora is out of ground (0=false, 1=true)
 
 
57 1
  57 1
              X.......        red amulet part enabled (0=false, 1=true)
                X.......        red amulet part enabled (0=false, 1=true)
              .X......        yellow 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.... unknown (disabled at start, enabled by the time you are in swamp)
              ......X.        walnut placed in hole (0=false, 1=true)
                ......X.        walnut placed in hole (0=false, 1=true)
              .......X        acorn placed in hole (0=false, 1=true)
                .......X        acorn placed in hole (0=false, 1=true)
 
 
58 1
  58 1
              ......X.        blue amulet part enabled (0=false, 1=true)
                ......X.        blue amulet part enabled (0=false, 1=true)
              .......X        pink amulet part enabled (0=false, 1=true)
                .......X        pink amulet part enabled (0=false, 1=true)
 
 
5D 1
  5D 1
              ......X.        Kallak's note decrypted (0=false, 1=true)
                ......X.        Kallak's note decrypted (0=false, 1=true)
 
 
60 1
  60 1
              ......X.        protection screen, if 0, Brendan says a line (0=false, 1=true)
                ......X.        protection screen, if 0, Brendan says a line (0=false, 1=true)
 
 
   6B 1
   6B 1
                 ....X...        copy protection already passed? (0=false, 1=true)
                 ....X...        copy protection already passed? (0=false, 1=true)
    
    
   80-81 2 room ID; stuff like 0x0100 works, but weird results (see Room list)
   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)
   88-91  10 inventory slots (0xFF = empty) (see Item list) (see also offset 0x0636)
    
    
Line 87: Line 89:
    
    
   022E sth to do with current room/current script?
   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)
   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
  0xFF = standard pointer/no item picked up
 
 
   ????-EOF variable stuff, changes even if nothing else changes between saves (stack? stack pointer? code pointer?)
   ????-EOF variable stuff, changes even if nothing else changes between saves (stack? stack pointer? code pointer?)
</code>
</code>
==Todo (other events to check)==
- is cave locked? (how many stones placed yet?)
- cave iced?
- malcolm ice cave scene?
- merith in which screen?
- altar fixed? (altar.emc)
- 4-gem temple status
- Herman already at work with saw?
- bridge fixed?
- willow healed?
- well fixed?
- bird healed?

Revision as of 12:32, 11 June 2005

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)
 
 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?)

Todo (other events to check)

- is cave locked? (how many stones placed yet?) - cave iced? - malcolm ice cave scene? - merith in which screen? - altar fixed? (altar.emc) - 4-gem temple status - Herman already at work with saw? - bridge fixed? - willow healed? - well fixed? - bird healed?