Difference between revisions of "SAVW (File Format)"

From Retro Modding Wiki
Jump to: navigation, search
(Format)
Line 64: Line 64:
 
| u32
 
| u32
 
| 1
 
| 1
| '''Toggleable Layer Count'''
+
| '''Layer Toggle Count'''
 
| Count of layers that can be toggled on/off from this world.
 
| Count of layers that can be toggled on/off from this world.
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
|-
 
|-
| [[#Toggleable Layer|Toggleable Layer]]
+
| [[#Layer Toggle|Layer Toggle]]
 
| 1
 
| 1
| '''Toggleable Layer Array'''
+
| '''Layer Toggle Array'''
 
| Array specifying every layer that can be toggled on/off from this world (any layer referenced by a ScriptLayerController). The layers specified can be in other worlds.
 
| Array specifying every layer that can be toggled on/off from this world (any layer referenced by a ScriptLayerController). The layers specified can be in other worlds.
 
| {{check}}
 
| {{check}}
Line 92: Line 92:
 
| u32
 
| u32
 
| 1
 
| 1
| '''Scan Count'''
+
| '''Scannable Object Count'''
| Count of SCAN assets.
+
| Count of scannable objects in the next array.
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
|-
 
|-
| [[#Scan|Scan]]
+
| [[#Scannable Object|Scannable Object]]
| ''Scan Count''
+
| ''Scannable Object Count''
| '''Scan Array'''
+
| '''Scannable Object Array'''
| Array describing every SCAN asset used in this world.
+
| Array describing every scannable object in this world.
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
Line 106: Line 106:
 
| u32
 
| u32
 
| 1
 
| 1
| '''Multiplayer Music Count'''
+
| '''System State Env Var Count'''
| Count of unlockable multiplayer music tracks.
+
| Count of system state env vars modified from this world.
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
 
|-
 
|-
| [[#SpecialFunction Unlock|SpecialFunction Unlock]]
+
| [[#Environment Variable|Environment Variable]]
| ''Multiplayer Music Count''
+
| ''System State Env Var Count''
| '''Multiplayer Music List'''
+
| '''System State Env Var Array'''
|  
+
| Array of env vars affecting the entire system. Mainly used for multiplayer music unlocks.
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
Line 120: Line 120:
 
| u32
 
| u32
 
| 1
 
| 1
| {{unknown|'''Unknown Unlock Count'''}}
+
| '''Game State Env Var Count'''
| Count of SpecialFunction Unlock structs in the next array.
+
| Count of game state env vars modified from this world.
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
 
|-
 
|-
| [[#SpecialFunction Unlock|SpecialFunction Unlock]]
+
| [[#Environment Variable|Environment Variable]]
| ''Unknown Unlock Count''
+
| ''Game State Env Var Count''
| {{unknown|'''Unknown Unlock Array'''}}
+
| '''Game State Env Var Array'''
| This is used by AutoMapperDarkWorldButton. Unknown if it can be used with anything else.
+
| Array of env vars affecting only this save slot. Mainly used to enable the Dark World map button.
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
Line 134: Line 134:
 
| u32
 
| u32
 
| 1
 
| 1
| '''Translator Door Count'''
+
| '''Unmappable Object Count'''
| Count of translator doors in the world.
+
| Count of unmappable objects in the world.
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
| ''Translator Door Count''
+
| ''Unmappable Object Count''
| '''Translator Door Instance IDs'''
+
| '''Unmappable Object Instance IDs'''
| Array of instance IDs listing every Translator Door Location SpecialFunction instance in the world.
+
| Array of instance IDs listing every instance that can be removed from the map. Mainly used by Translator Door Location SpecialFunctions.
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
Line 170: Line 170:
 
|}
 
|}
  
=== Toggleable Layer ===
+
=== Layer Toggle ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 188: Line 188:
 
|}
 
|}
  
=== Scan ===
+
=== Scannable Object ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 228: Line 228:
 
|}
 
|}
  
=== SpecialFunction Unlock ===
+
=== Environment Variable ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 237: Line 237:
 
| string
 
| string
 
| '''Unlock Name'''
 
| '''Unlock Name'''
| Zero-terminated string. Mirrors the value of the string property on the SpecialFunction.
+
| Name of the environment variable as a zero-terminated string.
 
|-
 
|-
 
| u32
 
| u32
Line 251: Line 251:
 
| Always 0?
 
| Always 0?
 
|-
 
|-
| colspan=3 {{unknown|End of unlock}}
+
| colspan=3 {{unknown|End of environment variable}}
 
|}
 
|}
  

Revision as of 01:14, 28 May 2016

The SAVW format determines what data gets saved to the memory card. It's used to save information on non-hardcoded parts of the game, like whether a particular MemoryRelay has been activated, whether you've scanned a particular scan has been fully scanned, etc.

Format

Type Count Name Notes MP1 MP2
u32 1 Magic Always 0xC001D00D
u32 1 Version See below for a list of possible version numbers.
u32 1 Area Count Number of areas contained in this world.
u32 1 Cinematic Skip Count Count of skippable cinematics.
u32 Cinematic Skip Count Cinematic Skip Instance IDs Array of instance IDs listing every Cinematic Skip SpecialFunction instance (MP1)/Camera instance with cinematic skip enabled (MP2) in the world.
u32 1 MemoryRelay Count Count of MemoryRelay instances.
u32 MemoryRelay Count MemoryRelay Instance IDs Array of instance IDs listing every MemoryRelay instance in the world.
u32 1 Layer Toggle Count Count of layers that can be toggled on/off from this world.
Layer Toggle 1 Layer Toggle Array Array specifying every layer that can be toggled on/off from this world (any layer referenced by a ScriptLayerController). The layers specified can be in other worlds.
u32 1 Door Count Count of DoorArea/Door instances.
u32 Door Count Door Instance IDs Array of instance IDs listing every DoorArea/Door instance in the world.
u32 1 Scannable Object Count Count of scannable objects in the next array.
Scannable Object Scannable Object Count Scannable Object Array Array describing every scannable object in this world.
u32 1 System State Env Var Count Count of system state env vars modified from this world.
Environment Variable System State Env Var Count System State Env Var Array Array of env vars affecting the entire system. Mainly used for multiplayer music unlocks.
u32 1 Game State Env Var Count Count of game state env vars modified from this world.
Environment Variable Game State Env Var Count Game State Env Var Array Array of env vars affecting only this save slot. Mainly used to enable the Dark World map button.
u32 1 Unmappable Object Count Count of unmappable objects in the world.
u32 Unmappable Object Count Unmappable Object Instance IDs Array of instance IDs listing every instance that can be removed from the map. Mainly used by Translator Door Location SpecialFunctions.
End of file

Versions

Possible version numbers:

Version Game
0x3 Metroid Prime
0x5 Metroid Prime 2: Echoes
0x6 Metroid Prime 3: Corruption
0x8 Donkey Kong Country Returns

Layer Toggle

Type Name Notes
u32 Area ID Internal area ID (not the MREA ID).
u32 Layer Index Index of the layer that can be toggled.
End of layer

Scannable Object

Type Name Notes
Asset ID SCAN Asset ID Asset ID of a SCAN file.
u32 Logbook Category Enum describing which logbook category this scan is part of. Always 0 in MP2. See below for possible values for MP1.
End of scan

Possible logbook category values (MP1 only):

ID Category
0 Non-Logbook
1 Space Pirate Data
2 Chozo Lore
3 Creatures
4 Research

Environment Variable

Type Name Notes
string Unlock Name Name of the environment variable as a zero-terminated string.
u32 Unknown Always 0?
u32 Unknown Always 1?
u32 Unknown Always 0?
End of environment variable