Module xc3_lib::msrd

source ·
Expand description

Streamed model resources like shaders, geometry, or textures in .wismt files.

Overview

The .wismt holds streaming data that is loaded by the game as needed. This means that errors in .wismt files may appear later than errors in .wimdo files. The Mxmd also stores a copy of the streaming data to know how to load it. This must match the Msrd exactly for data to load properly. Some legacy files do not use Msrd, so the Mxmd streaming is the only way to determine how to read the .wismt file.

Streams Layout

All 3 games store exactly the same data despite some differences in how the data is organized. Files are packed and compressed into compressed archives referenced by Stream. Each file within a stream is referenced by a StreamEntry.

The first stream contains the VertexData, Spch, and low textures. The second stream contains the higher resolution textures if present. The remaining streams contain base mip levels for some textures for Xenoblade 1 DE and Xenoblade 2 to effectively double the resolution.

Xenoblade 3 adds an option to instead store high resolution textures in xeno3/chr/tex/nx/m and base mip levels in xeno3/chr/tex/nx/h. The ChrTexTexture functions similarly to the Stream and StreamEntry in this case.

File Paths

GameFile Patterns
Xenoblade Chronicles 1 DEchr/{en,np,obj,pc,wp}/*.wismt
Xenoblade Chronicles 2model/{bl,en,np,oj,pc,we,wp}/*.wismt
Xenoblade Chronicles 3chr/{bt,ch,en,oj,wp}/*.wismt, map/*.wismt

Modules

  • Utilities for extracting and rebuilding streaming data.

Structs

Enums