Difference between revisions of "SAVW (File Format)"
From Retro Modding Wiki
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''' | ||
− | | | + | | 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 | + | | 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 | ||
− | | '' | + | | ''Door Count'' |
− | | ''' | + | | '''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= | + | | 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 |