Difference between revisions of "SAVW (File Format)"

From Retro Modding Wiki
Jump to: navigation, search
Line 10: Line 10:
 
! Name
 
! Name
 
! Notes
 
! Notes
 +
! MP1
 +
! MP2
 
|-
 
|-
 
| u32
 
| u32
Line 15: Line 17:
 
| '''Magic'''
 
| '''Magic'''
 
| Always <code>0xC001D00D</code>
 
| Always <code>0xC001D00D</code>
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
 
| 1
 
| 1
 
| '''Version'''
 
| '''Version'''
| Always 3
+
| See below for a list of possible version numbers.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 25: Line 31:
 
| '''Area Count'''
 
| '''Area Count'''
 
| Number of areas contained in this world.
 
| Number of areas contained in this world.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 30: Line 38:
 
| '''Cinematic Skip Count'''
 
| '''Cinematic Skip Count'''
 
| Count of Cinematic Skip SpecialFunction instances.
 
| Count of Cinematic Skip SpecialFunction instances.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 35: Line 45:
 
| '''Cinematic Skip Instance IDs'''
 
| '''Cinematic Skip Instance IDs'''
 
| Array of instance IDs listing every Cinematic Skip SpecialFunction instance in the world.
 
| Array of instance IDs listing every Cinematic Skip SpecialFunction instance in the world.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 40: Line 52:
 
| '''MemoryRelay Count'''
 
| '''MemoryRelay Count'''
 
| Count of MemoryRelay instances.
 
| Count of MemoryRelay instances.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 45: Line 59:
 
| '''MemoryRelay Instance IDs'''
 
| '''MemoryRelay Instance IDs'''
 
| Array of instance IDs listing every MemoryRelay instance in the world.
 
| Array of instance IDs listing every MemoryRelay instance in the world.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 50: Line 66:
 
| '''Toggleable Layer Count'''
 
| '''Toggleable Layer Count'''
 
| Count of layers that can be toggled on/off.
 
| Count of layers that can be toggled on/off.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| [[#Toggleable Layer|Toggleable Layer]]
 
| [[#Toggleable Layer|Toggleable Layer]]
 
| 1
 
| 1
 
| '''Toggleable Layer Array'''
 
| '''Toggleable Layer Array'''
| Array specifying every layer that can be toggled on/off (in other words, any layer referenced by a Script Layer Controller SpecialFunction).
+
| Array specifying every layer that can be toggled on/off (in other words, any layer referenced by a ScriptLayerController).
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 60: Line 80:
 
| '''DoorArea Count'''
 
| '''DoorArea Count'''
 
| Count of DoorArea instances.
 
| Count of DoorArea instances.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
| ''DoorArea Count''
+
| ''Door Count''
| '''DoorArea Instance IDs'''
+
| '''Door Instance IDs'''
| Array of instance IDs listing every DoorArea instance in the world.
+
| Array of instance IDs listing every DoorArea/Door instance in the world.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 70: Line 94:
 
| '''Scan Count'''
 
| '''Scan Count'''
 
| Count of SCAN assets.
 
| Count of SCAN assets.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| [[#Scan|Scan]]
 
| [[#Scan|Scan]]
Line 75: Line 101:
 
| '''Scan Array'''
 
| '''Scan Array'''
 
| Array describing every SCAN asset used in this world.
 
| Array describing every SCAN asset used in this world.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
| colspan=4 {{unknown|End of file}}
+
| u32
 +
| 1
 +
| '''Multiplayer Music Count'''
 +
| Count of unlockable multiplayer music tracks.
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| [[#SpecialFunction Unlock|SpecialFunction Unlock]]
 +
| ''Multiplayer Music Count''
 +
| '''Multiplayer Music List'''
 +
|
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| u32
 +
| 1
 +
| {{unknown|'''Unknown Unlock Count'''}}
 +
| Count of SpecialFunction Unlock structs in the next array.
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| [[#SpecialFunction Unlock|SpecialFunction Unlock]]
 +
| ''Unknown Unlock Count''
 +
| {{unknown|'''Unknown Unlock Array'''}}
 +
| This is used by AutoMapperDarkWorldButton. Unknown if it can be used with anything else.
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| u32
 +
| 1
 +
| '''Translator Door Count'''
 +
| Count of translator doors in the world.
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| u32
 +
| ''Translator Door Count''
 +
| '''Translator Door Instance IDs'''
 +
| Array of instance IDs listing every Translator Door Location SpecialFunction instance in the world.
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| colspan=6 {{unknown|End of file}}
 
|}
 
|}
  
Line 135: Line 205:
 
| 4
 
| 4
 
| Research
 
| Research
 +
|}
 +
 +
=== SpecialFunction Unlock ===
 +
 +
{| class="wikitable"
 +
! Type
 +
! Name
 +
! Notes
 +
|-
 +
| string
 +
| '''Unlock Name'''
 +
| Zero-terminated string. Mirrors the value of the string property on the SpecialFunction.
 +
|-
 +
| u32
 +
| {{unknown|Unknown}}
 +
| Always 0?
 +
|-
 +
| u32
 +
| {{unknown|Unknown}}
 +
| Always 1?
 +
|-
 +
| u32
 +
| {{unknown|Unknown}}
 +
| Always 0?
 +
|-
 +
| colspan=3 {{unknown|End of unlock}}
 
|}
 
|}
  
 
[[Category:File Formats]]
 
[[Category:File Formats]]
 
[[Category:Metroid Prime]]
 
[[Category:Metroid Prime]]

Revision as of 00:27, 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 Cinematic Skip SpecialFunction instances.
u32 Cinematic Skip Count Cinematic Skip Instance IDs Array of instance IDs listing every Cinematic Skip SpecialFunction instance 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 Toggleable Layer Count Count of layers that can be toggled on/off.
Toggleable Layer 1 Toggleable Layer Array Array specifying every layer that can be toggled on/off (in other words, any layer referenced by a ScriptLayerController).
u32 1 DoorArea Count Count of DoorArea instances.
u32 Door Count Door Instance IDs Array of instance IDs listing every DoorArea/Door instance in the world.
u32 1 Scan Count Count of SCAN assets.
Scan Scan Count Scan Array Array describing every SCAN asset used in this world.
u32 1 Multiplayer Music Count Count of unlockable multiplayer music tracks.
SpecialFunction Unlock Multiplayer Music Count Multiplayer Music List
u32 1 Unknown Unlock Count Count of SpecialFunction Unlock structs in the next array.
SpecialFunction Unlock Unknown Unlock Count Unknown Unlock Array This is used by AutoMapperDarkWorldButton. Unknown if it can be used with anything else.
u32 1 Translator Door Count Count of translator doors in the world.
u32 Translator Door Count Translator Door Instance IDs Array of instance IDs listing every Translator Door Location SpecialFunction instance in the world.
End of file

Toggleable Layer

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

Scan

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. See below for possible values.
End of scan

Possible logbook category values:

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

SpecialFunction Unlock

Type Name Notes
string Unlock Name Zero-terminated string. Mirrors the value of the string property on the SpecialFunction.
u32 Unknown Always 0?
u32 Unknown Always 1?
u32 Unknown Always 0?
End of unlock