File research for Tears of the Kingdom
Files can be decompressed with Totk.ZStd Tool
Dictionaries found in romfs/Pack/ZsDic.pack.zs
Parameter files (same as BotW)
Relatively rare and mostly exist under other extensions (also found embedded in Phive files)
Extensions:
- .baglblm - Binary agl Bloom
- Stores bloom data
- .baglccr -
- .baglclwd -
- .baglcube -
- .bagldof -
- .baglenv - Binary agl Environment
- .baglenvset - Binary agl Environment Setting
- .baglfila -
- .bagllmap -
- .baglmf -
- Stores filter data
- .baglshpp -
- .baglsky - Binary agl Sky (???)
- .bgapkginfo -
- .bgapkglist -
- .bgenv -
- .bglght -
- .bgmsconf -
- .bgsdw -
- .bphhb - Binary Phive Helper Bone
- Stores helper bone data
- .bptcl - Binary Particle
- .bptclconf - Binary Particle Configuration
AI Node Binary
Node-based AI and logic format
Files themselves serve as nodes in larger file trees (.root.ainb vs .module.ainb)
Python library available here: https://github.com/dt-12345/ainb
Animation Sequence Binary
Node-based animation sequence format
Binary Audio Attenuation Archive
Binary Animation Event
Format for storing data about animation events
Binary Audio Group Settings
Binary Audio Resource
Audio resource archive (unknown changes from BotW)
Binary Culling
Stores area culling data
Binary Ecosystem
Stores per-coordinate data
Binary ELink2
XLink2 file format for ELink2 (similar to the XLink2 Thunder format from Splatoon 3)
Shadow's XLink2 Library Recreation
Binary Font Archive
SARC font archive
Font format
Binary Café Event Flow
Event flow and event timeline format (minor changes from BotW, PR pending for EVFL library, fixed in BFEV Library (C#))
Binary Café Layout Animation
Layout animation format
Binary Café Resource
Archive format for animations, textures, and models
BFRES v10
Binary Café Shader
Binary Generated YAML (???)
BYML v7, several new node types added
Binary Height Map
Height related data. Explanation on structure here.
Bake Resource (???)
SARC archive with one (?) BYML file inside of it, stores bake info
Binary Looped Asset List
Stores hashes of looped audio assets
Binary Layout Archive
SARC layout archive
Stores forest and tree data, multipe types exist under the same extension (shared 8 byte header)
Offset | Type | Value |
---|---|---|
0x00 | u16 | Unknown |
0x02 | u16 | Unknown |
0x04 | u32 | Section 1 Entry Count |
Binary NX Shader
Binary NX Texture
Texture archive (unknown changes from Botw 1.6.0)
Binary Vibration
HD Rumble data format
Binary Occlusion FX
BFRES archive for occlusion effects
Binary Phive Cloth
Phive cloth physics format (Phive is a library that extends Havok)
Binary Phive Nav Mesh
Phive NavMesh format (Phive is a library that extends Havok)
Binary Phive Static Compound
Phive format for static compounds (Phive is a library that extends Havok)
Binary Phive Shape
Phive format for rigid bodies (Shapes) (Phive is a library that extends Havok)
Binary SLink2
XLink2 file format for SLink2 (similar to the XLink2 Thunder format from Splatoon 3)
Shadow's XLink2 Library Recreation
Stores strings (purpose unknown, found in romfs/Preload
)
Offset | Type | Value |
---|---|---|
0x00 | char[4] | Magic ("STAR") |
0x04 | u32 | Version |
0x08 | u32 | Entry Count |
0x0c | u32[] | Array of entries |
Some type of shader format
Binary WAV
Audio resource format
Most bwav files seem to play fine in foobar2000 (with the vgmStream plugin), however some files (notably in the Voice/Resource/XXcc/EventFlowMsg
folders) fail to play. The headers of these files appear to have an incorrect sample count.
Unable to open item for playback (Unsupported format or corrupted file):
"F:\Games\Totk\Voice\Resource\USen\EventFlowMsg\Dm_BZ_0007_Stream\Dm_BZ_0007_Text_002_b.bwav"
Binary YAML
See .byml
Binary YAML
BYML v4 or v7 (.esetb.byml is v5 and contains an embedded .ptcl file)
Note: v7 root nodes can be 0x20, 0x21, 0xC0, or 0xC1 (warning: this breaks a lot of BYML tools)
enum class ByamlDataType : u8 {
HashArrayU32_1 = 0x20,
HashArrayU32_2 = 0x21,
...
HashArrayU32_16 = 0x2f,
HashArrayWithRemapU32_1 = 0x30,
HashArrayWithRemapU32_2 = 0x31,
...
HashArrayWithRemapU32_16 = 0x3f,
StringIndex = 0xa0,
BinaryData = 0xa1,
BinaryDataWithAlignment = 0xa2,
Array = 0xc0,
Dictionary = 0xc1,
KeyTable = 0xc2,
DictionaryWithRemap = 0xc4,
RelocatedKeyTable = 0xc5,
MonoTypedArray = 0xc8,
Bool = 0xd0,
S32 = 0xd1,
F32 = 0xd2,
U32 = 0xd3,
S64 = 0xd4,
U64 = 0xd5,
F64 = 0xd6,
Null = 0xff,
};
Combined Actor Info
Stores position and rotation data for Autobuild constructions
.totkab also exists which is the same format but with an additional header
Cave chunked mesh info
Cave-related info
Cutscene Info
Destructible Piece Info
Material data
Figure Info
Tarrey Town monster figure data
Game Environment Binary (???)
SARC archive for environmental effects
Game Environment Resource (???)
BFRES archive for environmental effects
GX2 Shader
Shader format
OpenGL Shading Language (???)
Shader format
Height
Height map format (no noted changes from BotW)
Digital image format
Material
Material data format (no noted changes since BotW)
MeshCodec
MCPK
MeshCodec, an archive/compression format wrapped around the model fles (bfres v10)
Can be decompressed using an interop script for TotK, written by Watertoon: https://gamebanana.com/tools/13236
Message Studio Binary Text
Stores text data and localization info
SARC archives, no noted changes from BotW
I don't think I need to explain this one
Particle
Stores particle effects data, only found embedded in .esetb.byml files
...
Only used by one file (arrow.raw
)
Resource Size Table
Updated RSTB table (RESTBL), spec can be found in Totk.Analyze/src/Formats/RESTBL.cs
Standard Archive (???)
SARC archives (see .pack)
Save
Save data file format
Shader Archive Binary
Shader archive format
Sky Binary
Terrain Archive (???)
SARC archive for terrain data
Terrain Scene Binary
I think you can manage this one
Tex To Go
TexToGo texture format. C# implementation by KillzXGaming in Switch ToolBox
Volume Stats
Exists in three variants: volume stats (magic = VSTS), grass stats (magic = GSTS), and cave stats (magic = CSTS)
Weapon Blur
Weapon blur file format
Pre-rendered cutscenes (compressed)