Skip to content

entriphy/klonoa2-tools

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 

Klonoa 2: Lunatea's Veil (PS2) Stuff

Klonoa 2 tools, docs, and other stuff.

This repository uses Kaitai Struct to parse binary formats. To test and compile them to Python, use the Kaitai Web IDE or download the compiler.

  • Pre-compiled parsers are provided in this repository.

Reverse Engineering To-Do List

  • KLDATA.BIN Archive Extraction
    • The current method "sniffs" for offsets to check if a file is an archive/folder, which can be seen in the __is_archive function in kldata_archive.py. This will most likely be replaced with a proper hierarchy scanner in the future.
  • Models
    • Mesh
    • Textures
      • Klonoa's model requires a manual texture fix when extracted, but other than that, it works 95% of the time
    • UVs
      • UVs are nearly perfect when using glTF files in Blender because it supports nearest mipmapping. Using .obj files or linear mipmapping causes noticable bleeding in some models.
    • Rig/Bones
    • Animations
  • Visions (Stages)
    • Layout/Geometry
    • Textures
    • Animations (.vtipu/.ipu files)
    • ...basically everything else
  • Sounds
    • Voice Files (PPT)
    • Music (BGM)
      • QuickBMS can do this
    • Sound Effects (Soundbanks)

File types

File type names are arbitrary unless it is a standard PS2 format.

  • klf[abxyz]: Model data
    • klfa: Animation data (keyframes, translations, rotations, name [8 bytes])
    • klfb: Bone/joint data (local positions, global/world positions, parent joints)
    • klfx: Mesh data (vertices, normals, UVs, weights, joint influences, indices, mesh parts)
    • klfy: Texture data (pixels, palettes)
    • klfz: Morph data (target, vertices, normals)
  • klname: Model name (3 bytes)
  • hd: PS2 soundbank header
  • bd: PS2 soundbank data
  • vtipu: Similar to PS2 .ipu (movie) file, used for stuff like water animations
  • gim: Texture data
  • ppt: Cutscene voice stored as Playstation 4-bit ADPCM (mono, 22050 Hz, 16bps)
  • kl0: 16 bytes of 0x00
  • klnull: Starts with null string, 16 bytes long
  • klpad: 4 bytes of 0xFF, 12 bytes of 0x00

About

Klonoa 2 tools, docs, and other stuff

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published