Crates.io | xc3_lib |
lib.rs | xc3_lib |
version | 0.14.0 |
source | src |
created_at | 2023-10-29 23:04:00.619688 |
updated_at | 2024-10-31 15:09:06.704534 |
description | Xenoblade Chronicles file format library |
homepage | |
repository | https://github.com/ScanMountGoat/xc3_lib |
max_upload_size | |
id | 1017841 |
size | 462,087 |
Rust libraries and tools for working with rendering related file formats for Xenoblade Chronicles X, Xenoblade Chronicles 1 DE, Xenoblade Chronicles 2, and Xenoblade Chronicles 3.
Report any bugs or request new features in issues. Download precompiled binaries for the tools in releases. Python bindings for xc3_model are available with xc3_model_py. See the xenoblade rendering research website for information on topics related to in game rendering.
xc3_lib supports a number of in game formats. All formats support reading. Write support is still a WIP for some formats. Click on the links to open the corresponding Rust module in xc3_lib. Extensions starting with wi
are for the Switch like wimdo
or wismt
. Extensions starting with pc
are for PC builds like pcmdo
or pcsmt
. Extensions starting with ca
are for the Wii U like camdo
or casmt
.
Format | Magic | Extensions | Write |
---|---|---|---|
Apmd | DMPA | wimdo |
✔️ |
Bc | BC | anm , motstm_data |
✔️* |
Beb | beb |
✔️ | |
Beh | hdev | beh |
❌ |
Bmn | BMN | bmn |
❌ |
Dhal | LAHD | wilay |
✔️* |
Eva | eva | eva |
✔️* |
Fnt | fnt |
✔️ | |
Laft | LAFT | wifnt |
✔️ |
Lagp | LAGP | wilay |
✔️* |
Laps | LAPS | wilay |
✔️* |
Last | LAST | wisty |
✔️ |
Ltpc | LTPC | ✔️ | |
Mibl | LBIM | witex , witx |
✔️ |
Msmd | DMSM | wismhd |
❌ |
Msrd | DRSM | wismt |
✔️* |
Mtxt | MTXT | catex , calut , caavp |
✔️ |
Mxmd | DMXM | wimdo |
✔️* |
MxmdLegacy | MXMD | camdo |
❌ |
Sar1 | 1RAS | arc , chr , mot |
✔️ |
Spch | HCPS | wishp |
✔️ |
Xbc1 | xbc1 | wismt |
✔️ |
* Some files are not binary identical with the originals after saving.
See Architecture for a design overview of the various projects. Click on the docs.rs links below to see the generated rustdoc documentation.
wilay
and wimdo
filesxc3_wgpu
After installing the Rust toolchain, run cargo build --release
in the repository directory to build the tools to target/release
.
Running cargo build
without the --release
will result in faster compile times during development but dramatically worse runtime performance. The tools can also be run using cargo run --release -p <project> <args>
. xc3_tex uses image_dds, which supports Windows x86, Linux x86, MacOS x86, and MacOS Apple Silicon due to using precompiled kernels for DDS encoding. Other projects should build on other platforms without issues.
This project is based on previous reverse engineering work, including work done for Xenoblade X and Xenoblade 2. Special thanks go to members of the World Tree Research discord (formerly the World of Alrest discord) for their assistance.