brres 0.1.1

brres is a Rust crate designed for reading and writing .brres 3d model archives used in the Nintendo Wii games. The library provides C bindings, making it useful in both Rust and C/C++ based projects.
docs.rs failed to build brres-0.1.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: brres-0.1.7

brres

WIP Rust/C++ crate for reading BRRES files

Examples

fn test_read_raw_brres() {
    // Read the sea.brres file into a byte array
    let brres_data = fs::read("sea.brres").expect("Failed to read sea.brres file");

    // Call the read_raw_brres function
    match read_raw_brres(&brres_data) {
        Ok(archive) => {
            println!("{:#?}", archive.get_model("sea").unwrap().meshes[0]);
        }
        Err(e) => {
            panic!("Error reading brres file: {:#?}", e);
        }
    }
}

Progress

Implements a Rust layer on top of librii::g3d's JSON export-import layer. Importantly, large buffers like texture data and vertex data are not actually encoded in JSON but passed directly as a binary blob. This allows JSON files to stay light and results in minimal encoding latency (tests TBD).

Format Supported
MDL0 Yes
TEX0 Yes
SRT0 Yes
PAT0 Yes*
CLR0 Yes*
CHR0 Yes*
VIS0 Yes
SHP0 No
  • Restrictions on track ordering when editing.

Tests

Unit tests are being used to validate correctness. Run the suite with cargo test

brres-sys

Low level documentation available here.