Skip to content

CAT (Shinovi Versus)

Simon B edited this page Mar 18, 2017 · 1 revision

CAT

General Purpose Container Format.

Header

Type Description
uint32_t Size of Header (bytes)
uint32_t[] Offsets to Subfiles

There may be less valid Offsets than the Header-Size suggests.
After the last valid Offset there is a Offset pointing to 0xFFFFFFFF. The remaining Space within the Header is filled with Zero-Bytes.

Table of References/Resources

Starting immediately after the Header there is a List of References used or provided by this file.
Each of these Reference/Resource Entries is encoded as a New-Line-Terminated String (0x0A).
A Reference/Resource Entry has three Parts: A Type, a Package(?) and a Name.
Those Parts are separated with a Comma-Character (0x2C).
Parts may be omitted, in which case the corresponding Part of the last Entry will be referenced. Another view of this is to treat those Entries as Sub-Entries of the last full-qualified Entry.

There seems to be at least one Zero-Byte after the last valid Entry.
Sometimes it might be necessary to treat following Entries of the same type as Sub-Entries of the previous Entry.

Example

GXT,conv0,pl00_eye00
,,pl00_face

is equivalent to

GXT,conv0,pl00_eye00
GXT,conv0,pl00_face

And can be interpreted as: Entry of GXT -> Sub-Entries: conv0/pl00_eye00 and conv0/pl00_face

Types

The Type-Part allows further parsing of the Block at the corresponding Offset.

  • GXT: GXT-Data-Block used for Image/Texture Data.
  • TMD or TMD_TOON: TMD-Data-Block used for 3D-Models.
Clone this wiki locally