Donkey Kong Country: Tropical Freeze and SAVW (File Format): Difference between pages

From Retro Modding Wiki
(Difference between pages)
Jump to navigation Jump to search
>Aruki
 
>Aruki
No edit summary
 
Line 1: Line 1:
[[Donkey Kong Country: Tropical Freeze]] is the most recent Retro release, and their first game on the Wii U; along with the new console came a large overhaul of the engine, with a lot of old formats being removed, a lot of new ones introduced, and a lot of the remaining ones being overhauled completely.
''This article is for the SAVW format from Metroid Prime 1 and 2. See [[SAVW (File Format)]] for the other revisions of this format.''
 
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.


__TOC__
__TOC__


== Formats ==
== Format ==


{| class="wikitable"
{| class="wikitable"
! Format
! Type
! Contents
! Count
! Name
! Notes
! MP1
! MP2
|-
|-
| [[ANIM (File Format)|ANIM]]
| u32
| Animation
| 1
| '''Magic'''
| Always <code>0xC001D00D</code>.
| {{check}}
| {{check}}
|-
|-
| [[ARC (File Format)|ARC]]
| u32
| Archive
| 1
| '''Version'''
| See [[SAVW (File Format)|hub article]] for a list of possible version numbers.
| {{check}}
| {{check}}
|-
|-
| [[CABH (File Format)|CABH]]
| u32
| Audio Bus Heirarchy
| 1
| '''Area Count'''
| Number of areas contained in this world.
| {{check}}
| {{check}}
|-
|-
| [[CAUD (File Format)|CAUD]]
| u32
| Audio Sound Effect
| 1
| '''Cinematic Skip Count'''
| Count of skippable cinematics.
| {{check}}
| {{check}}
|-
|-
| [[CHAR (File Format)|CHAR]]
| u32
| Character
| ''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.
| {{check}}
| {{check}}
|-
|-
| [[CLSN (File Format)|CLSN]]
| u32
| Collision
| 1
| '''MemoryRelay Count'''
| Count of MemoryRelay instances.
| {{check}}
| {{check}}
|-
|-
| [[CMDL (Tropical Freeze)|CMDL]]
| u32
| Model
| ''MemoryRelay Count''
| '''MemoryRelay Instance IDs'''
| Array of instance IDs listing every MemoryRelay instance in the world.
| {{check}}
| {{check}}
|-
|-
| [[CSMP (File Format)|CSMP]]
| u32
| Audio Sample
| 1
| '''Layer Toggle Count'''
| Count of layers that can be toggled on/off from this world.
| {{check}}
| {{check}}
|-
|-
| [[DCLN (File Format)|DCLN]]
| [[#Layer Toggle|Layer Toggle]]
| Dynamic Collision
| 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.
| {{check}}
| {{check}}
|-
|-
| [[FSMC (File Format)|FSMC]]
| u32
| Finite State Machine
| 1
| '''Door Count'''
| Count of DoorArea/Door instances.
| {{check}}
| {{check}}
|-
|-
| [[GENP (File Format)|GENP]]
| u32
| Generic Particle System
| ''Door Count''
| '''Door Instance IDs'''
| Array of instance IDs listing every DoorArea/Door instance in the world.
| {{check}}
| {{check}}
|-
|-
| [[GFX (File Format)|GFX]]
| u32
| Flash Movie
| 1
| '''Scannable Object Count'''
| Count of scannable objects in the next array.
| {{check}}
| {{check}}
|-
|-
| [[GFXL (File Format)|GFXL]]
| [[#Scannable Object|Scannable Object]]
| Flash Texture Library
| ''Scannable Object Count''
| '''Scannable Object Array'''
| Array describing every scannable object in this world.
| {{check}}
| {{check}}
|-
|-
| [http://en.wikipedia.org/wiki/MPEG-4_Part_14 MP4]
| u32
| Video
| 1
| '''System State Env Var Count'''
| Count of system state env vars modified from this world.
| {{nocheck}}
| {{check}}
|-
|-
| [[LDTA (File Format)|LDTA]]
| [[#Environment Variable|Environment Variable]]
| Loose Data
| ''System State Env Var Count''
| '''System State Env Var Array'''
| Array of env vars affecting the entire system. Mainly used for multiplayer music unlocks.
| {{nocheck}}
| {{check}}
|-
|-
| [[LPRB (File Format)|LPRB]]
| u32
| Light Probe
| 1
| '''Game State Env Var Count'''
| Count of game state env vars modified from this world.
| {{nocheck}}
| {{check}}
|-
|-
| [[MSBT (File Format)|MSBT]]
| [[#Environment Variable|Environment Variable]]
| Message Table
| ''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.
| {{nocheck}}
| {{check}}
|-
|-
| [[MTRL (File Format)|MTRL]]
| u32
| Material Shaders
| 1
| '''Unmappable Object Count'''
| Count of unmappable objects in the world.
| {{nocheck}}
| {{check}}
|-
|-
| [[PAK (Tropical Freeze)|PAK]]
| u32
| Packages
| ''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.
| {{nocheck}}
| {{check}}
|-
| colspan=6 {{unknown|End of file}}
|}
 
=== Layer Toggle ===
 
{| class="wikitable"
! Type
! Name
! Notes
|-
|-
| [[ROOM (File Format)|ROOM]]
| u32
| Room Object Data
| '''Area ID'''
| Internal area ID (not the MREA ID).
|-
|-
| [[RSTC (File Format)|RSTC]]
| u32
| Rule Set
| '''Layer Index'''
| Index of the layer that can be toggled.
|-
| colspan=3 {{unknown|End of layer}}
|}
 
=== Scannable Object ===
 
{| class="wikitable"
! Type
! Name
! Notes
|-
|-
| [[SKEL (File Format)|SKEL]]
| Asset ID
| Skeleton
| '''SCAN Asset ID'''
| Asset ID of a [[SCAN (Metroid Prime)|SCAN]] file.
|-
|-
| [[CMDL (Tropical Freeze)|SMDL]]
| u32
| Skinned Model
| '''Logbook Category'''
| Enum describing which logbook category this scan is part of. Always 0 in MP2. See below for possible values for MP1.
|-
|-
| [[SPWN (File Format)|SPWN]]
| colspan=3 {{unknown|End of scan}}
| Spawn Particle System
|}
 
Possible logbook category values (MP1 only):
 
{| class="wikitable"
! ID
! Category
|-
|-
| [[SWSH (File Format)|SWSH]]
| 0
| Swoosh Particle System
| Non-Logbook
|-
|-
| [[TXTR (Tropical Freeze)|TXTR]]
| 1
| Texture
| Space Pirate Data
|-
|-
| [[UINF (File Format)|UINF]]
| 2
| Universe Info
| Chozo Lore
|-
|-
| [[CMDL (Tropical Freeze)|WMDL]]
| 3
| World Model
| Creatures
|-
|-
| [[XFRM (File Format)|XFRM]]
| 4
| Transform Particle System
| Research
|}
|}


== Trivia ==
=== Environment Variable ===


* There's a lot of leftover remnants of a PC build running on DX11 that was presumably used during development, including an archive of compiled HLSL shaders, numerous references to DX11, and a controls setup for PC.
{| class="wikitable"
! Type
! Name
! Notes
|-
| string
| '''Variable Name'''
| Name of the environment variable as a zero-terminated string.
|-
| u32
| {{unknown|Unknown}}
| Always 0?
|-
| u32
| {{unknown|Unknown}}
| Always 1?
|-
| u32
| {{unknown|Unknown}}
| Always 0?
|-
| colspan=3 {{unknown|End of environment variable}}
|}


[[Category:Donkey Kong Country: Tropical Freeze]]
[[Category:File Formats]]
[[Category:Metroid Prime]]
[[Category:Metroid Prime 2 Demo]]
[[Category:Metroid Prime 2: Echoes]]

Revision as of 17:24, 29 May 2016

This article is for the SAVW format from Metroid Prime 1 and 2. See SAVW (File Format) for the other revisions of this format.

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 hub article 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

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 Variable 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