Skip to content

File Formats

Robert Jordan edited this page Sep 24, 2020 · 28 revisions

File Formats

Pages marked with next to them have had the known extent of their file structure fully documented. There is also a small selection of slightly understood and documented PS Vita File Formats for CatSystem2.

CatSystem2 formats

Wiki Page Extensions Description
KIF Archive .int Archives for all CatSystem2 files of a specific type
HG‐2 Image .hg2 Images with position info and multiple frames (v2)
HG‐3 Image .hg3 Images with position info and multiple frames (v3)
ANM Animation .anm Animation script for Images with multiple frames
CST Scene .cst Message scene script
CSTL Localization .cstl Localized CST Scene messages in UTF-8
FES Screen .fes Screen/menu script
ZT Package .zt Packaged files that can be exported from in-game
KCS Script .kcs Binary script for game functions, and low level graphics
Key Files .dat Files to verify game authenticity or enable debug mode

CatSystem1 formats

Wiki Page Extensions Description
CsPack Archive .dat, .csp, .css Archives for all CatSystem1 files of a specific type
HG‐2 Image .hg2 Images with position info and multiple frames (v2)
CsMO Scene .cst Message scene script
CSX Script .csx Binary scripts for game functions

Encryption and compression

Wiki Page Description
V_CODEs Keys that are stored in CatSystem2 executable
Encryption Methods Documentation on common encryption methods and tools
Zlib The compression method used in files unless otherwise stated

Data types

These are the data types present when explaining file specifications.

Although most types are listed as uint32 in File Specifications, the TriggersTools.CatSystem2 C# implementation often uses int32 values instead to avoid unnecessary casting or unchecked blocks.

Type Size
byte 1-byte unsigned integer
uint16 2-byte unsigned integer
uint32 4-byte unsigned integer
uint64 8-byte unsigned integer
int16 2-byte signed integer
int32 4-byte signed integer
int64 8-byte signed integer
bool32 4-byte boolean (0 or 1)
byte[n] Array of n bytes
char[n] String of n bytes of characters
string Null-terminated string

Notes

  • All integer and boolean types are read in little-endian format.
  • All string and char[n] types are read with Shift JIS (Codepage 932) encoding.
  • The char[n] type uses null characters as padding, so this type is essentially null terminated as well unless there are n bytes of non-null characters.
  • All compression is done with Zlib unless otherwise specified.
  • Italicezed types are not fixed in length, and must be determined while resting the file.
  • Arrays marked with a > length, e.i. mytype[>], must be read sequentially, and often contain information on the offset of the next element.
Clone this wiki locally