ssbh_lib

An SSBH parsing library in Rust. Each SSBH format has a major and minor version. Only some of the versions used by Smash Ultimate are supported. This library also serves as documentation for the SSBH format.

SSBH Formats

Click the links below to see the corresponding Rust source file in src/formats/ with the file format's struct definitions. The src/lib.rs file contains shared parsing logic for arrays, enums, etc.
| Format | Supported Versions (major.minor) | | --- | --- | | Hlpb (.nuhlpb) | 1.1 | | Matl (.numatb) | 1.6 | | Modl (.numdlb,.nusrcmdlb) | 1.7 | | Mesh (.numshb) | 1.8, 1.10 | | Skel (.nusktb) | 1.0 | | Anim (.nuanmb) | 2.0, 2.1 | | Nrpd (.nurpdb) | 1.6 | | Nufx (.nufxlb) | 1.0, 1.1 | | Shdr (.nushdb) | 1.2 |

Non SSBH Formats: * MeshEx (.numshexb) * Adj (.adjb)

ssbh_data

A higher level data access layer for some SSBH formats. WIP Python bindings are available with ssbhdatapy.

ssbhlibjson

The binary application exports any supported file to JSON format. If no output is specified, the output file will be the input with .json appended. This also allows dragging a supported file format onto the executable to extract it to JSON. Byte arrays are encoded as hex strings.

ssbh_lib_json.exe <ssbh file>
ssbh_lib_json.exe <ssbh file> <json output>

Credits

The original C# file formats and parsing code can be found in the SSBHLib repo.