vbe0201 / katsuba Goto Github PK
View Code? Open in Web Editor NEWTools for deserializing, extracting, and introspecting various KingsIsle file formats
License: ISC License
Tools for deserializing, extracting, and introspecting various KingsIsle file formats
License: ISC License
some id that encodes the inheritance tree
current format is undecided
Testers needed because I don't have access to a Windows machine.
tracking issue for implementing the in and out stuff
i.e.
kobold wad out Root.wad out/
extracts Root.wad
into dir out
kobold wad in out/ Root.wad
packs dir out
into a wad named Root.wad
but for all commands
discord convo link: https://discord.com/channels/1015677559020724264/1015677559561801771/1107271550215925841
fish said datamining should be more accessible. So as a baseline we want:
Picture guides for Windows users on how to use a CLI
General explanations of the formats and why you would care about them
Some instructions for game modding and common datamining tasks
GitHub Wiki seems like a good place for that.
Now that we have a --color
option specifically for log output, it might be nice to use it further for regular application output.
owo-colors
is nice for this and owo_colors::set_override
can be used to globally configure colors based on the value of the option.
add a tool for decrypting client sigs
other people might want to use the extraction
For any CLI command accepting filesystem paths, glob patterns should be supported for mass-processing inputs.
c bindings will allow most languages to use the kobold library
allows for passing a file to output to
To Recreate:
kobold bcd de collision.bcd
Error:
╺━━━━━━━━━━━━━━━━━━━━┅ Backtrace ┅━━━━━━━━━━━━━━━━━━━━╸
0: ←[1m←[1mError: no variants matched at 0x25faa...←[22m
╭───────────────────────┄ Box ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰──────────────────────────────────────────────────┄
╭───────────────────────┄ Ray ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰──────────────────────────────────────────────────┄
╭───────────────────────┄ Sphere ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰─────────────────────────────────────────────────────┄
╭───────────────────────┄ Cylinder ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰───────────────────────────────────────────────────────┄
╭───────────────────────┄ Tube ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰───────────────────────────────────────────────────┄
╭───────────────────────┄ Plane ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰────────────────────────────────────────────────────┄
╭───────────────────────┄ Mesh ┄────────────────────┄
┆
┆bad magic at 0x25faa: 99
╰───────────────────────────────────────────────────┄←[22m
...←[1mWhile parsing field 'data' in Shape←[22m←[22m
at kobold\src\formats\bcd.rs:139
1: ←[1mWhile parsing field 'shape' in Geometry←[22m
at kobold\src\formats\bcd.rs:159
2: ←[1mWhile parsing field 'geometry' in Bcd←[22m
at kobold\src\formats\bcd.rs:170
Can provide collision file if needed
The clap_complete
crate generates shell completions for a few notable shells out of the box.
We could have a dedicated command for producing completion files at runtime to let the user install them. flake.nix
should detect the current shell and do this installation automatically.
We need to tighten security as Katsuba grows more popular amongst end users.
Specifically, we need to
make sure that paths we extract from a KIWAD archive are within the specified output directory
protect against "zip bomb" constructs where file records specify overlapping data ranges
wad pack
is already hardened against creating malicious files because it only accepts a single input directory to pack and does not resolve symlinks.
adding nif -> gltf support
a raw flag that prints the class/property hashes and their raw data
this will help with decoding server types
The Rust filesystem API inherits the notoriously bad error messages provided by the OS.
At some point we need to assess where they can occur and provide better ones through anyhow's .with_context()
.
allows for a more obvious way to check them
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.