Katsuba is a tool for deserializing, extracting and inspecting various file formats used by KingsIsle in their games.
It supersedes printrospector and extends its feature set.
-
NAV: NavigationGraph and ZoneNavigationGraph reading
-
BCD: Binary Collision Data reading
-
POI: Point of Interest data reading
-
WAD: Archive introspection, validation, and extraction
-
ObjectProperty: Deserialization of binary state
You will need an installation of Rust to build the project.
Then run the following commands to build and install katsuba to your machine:
# Clone the repository
$ git clone https://github.com/vbe0201/katsuba
$ cd katsuba
# Install the CLI tool (can be invoked with katsuba command)
$ cargo install --path src/katsuba
# OPTIONAL: Install the Python bindings.
# This assumes a recent installation of Python on the system.
$ cd src/katsuba-py
$ python -m pip install .
There are currently no plans to publish katsuba
to crates.io, so for the
time being the preferred way to use it is:
# in Cargo.toml:
[dependencies]
katsuba = { git = "https://github.com/vbe0201/katsuba.git" }
For general help, see the output of the --help
flag for katsuba
and its
individual subcommands.
For the katsuba op
subcommands to work properly, a type list must be provided.
These files are generated by an external project which requires an installation of Python >= 3.10.
With an open Wizard101 game client, run:
$ pip install wiztype
# This requires that you are currently running the game client.
$ wiztype
The resulting file can then be passed to the -t
option.
The Katsuba crates, the CLI tool, and the Python bindings are collectively licensed under the terms of the ISC License.