Library (kwaslib) and tools for video game modding.
kwaslib is a C library inspired by Gnulib, in a way of being easy to incorporate into your own projects - entire library can be compiled as-is without needing to set any environmental variables/defines or external dependencies.
Must-have:
Optional:
- Git (project doesn't use any external dependencies, downloading a zip is fine)
I write mostly on Windows and compile with GCC from MinGW-w64.
Tested on Windows (x86/x64 GCC/Clang) and Linux (ARM/x86/x64 GCC/Clang).
This project does not support Visual Studio compilers.
$ git clone https://github.com/ThisKwasior/KwasTools
$ cd KwasTools
$ mkdir build && cd build
$ cmake .. -G"MinGW Makefiles"
$ mingw32-make -j 8
$ git clone https://github.com/ThisKwasior/KwasTools
$ cd KwasTools
$ mkdir build && cd build
$ cmake ..
$ make -j 8
After compiling, CMake script will output binaries and libraries in the ./bin directory in the root of the repo.
| Program | Description | Supported formats |
|---|---|---|
| he_anim_tool | Hedgehog Engine *-anim converter | Reading/writing: - uv-anim - cam-anim - vis-anim - morph-anim - pt-anim - mat-anim - lit-anim |
| Program | Description | Supported formats |
|---|---|---|
| cri_utf_tool | CRI UTF parser to and from XML. Will parse structures from VLDATA (UTF, AWB and ACB commands). |
Reading/writing: - ACB - ACF - AAX - Any @UTF table i forgot to mention |
| cri_afs_tool | CRI AFS packer/unpacker to and from XML. If metadata section is not present, it will detect and add extensions to known file formats (AFS, AHX, ADX) |
Reading/writing: - AFS |
| cri_awb_tool | CRI AWB packer/unpacker to and from XML. Will detect and add extensions to known file formats (HCA, ADX, BCWAV) |
Reading/writing: - AWB |
| CRI Scramble Key | Python script and HTML+JS page to compute ACB key for encoding HCA/ADX files. Found in scripts directory.Also hosted on my site. |
| Program | Description | Supported formats |
|---|---|---|
| nw4r_misc_to_he_xml | Wii NW4R converter to Hedgehog Engine XML supported by he_anim_tool | Reading/writing: - SCN0 -> cam-anim - SRT0 -> uv-anim |
| Program | Description | Supported formats |
|---|---|---|
| platinum_dat_tool | Unpacker/packer with experimental support for Big Endian archives (X360/PS3/WiiU) | Reading/writing: - DAT - DTT - EFF |
| platinum_wtb_tool | Unpacker/packer with WIP X360/PS3 texture conversion to PNG | Reading/writing: - WTB - WTA+WTP |
WIP addon for Blender 3.0/4.0 (currently not usable as of 06/06/2025).
Features:
- cam-anim import and export
- uv-anim import and export
- Camera setup creation for cam-anim (searchable with F3)
- UV Animator creation for uv-anim (searchable with F3, to use in material->Shift+A->Group)
- ik-01 for multiple contributions, both in code and knowledge, in Hedgehog Engine formats.
- ecksdii for extensive testing and end-user feedback.
- Ashrindy for contributions and help with Hedgehog Engine
-animformats. - Adam Gąsior for giving feedback on my code whenever I ask.
- Skyth for help with Hedgehog Engine related issues and insight.
- Mario Tainaka for help with CRI Middleware related issues and insight.
- Sewer56 for help with CRI Middleware related issues and insight.
- Metal Gear Rising Revengeance modding community for feedback and bug reports.
- And anyone else I forgot to mention!
- vgmstream - Learned about the CRI
@UTFfile format from their extensive implementation. - VGAudio - HCA format specifics.
- Xenia - Untiling code for Xbox 360 textures. Copyright (c) 2015, Ben Vanik. All rights reserved.
- RPCS3 - Texture swizzling code for GTF textures. Licensed under GNU GPL-2.0 license.