An open source remake of the CatSystem2 visual novel engine.
A makeshift demo of the current version can be found here.
Click
/Scroll
- Advance text
Ctrl
/Enter
- Advance text, hold to skip
SPACE
- Hide message window
f
- Toggle fullscreen
1-9
- Select choice
Shift + Alt
+ 1-9
- Quick save to slot 1-9
Shift
+ 1-9
- Quick load from slot 1-9
- Multi-platform (WASM, Windows SDL2)
- Raw KIF archive decryption
- HG-3 image decoding and caching
- Custom-built CatScene recursive-descent parser
FelineSystem2 implements a custom database of the game's KIF archives and assets, stored as a binary file.
Data Type | Value | Description |
---|---|---|
char[len] |
ArchiveName | NULL-terminated filename of the KIF archive |
uint32 |
EntryCount | Number of entries in archive |
unsigned char |
IsEncrypted | 0x01 if archive is encrypted, 0x00 otherwise |
byte[4] |
FileKey | Blowfish key for decrypting entries (Only exists if IsEncrypted is 0x01 ) |
0x00 |
TableEnd | Signifies end of table |
Data Type | Value | Description |
---|---|---|
char[len] |
FileName | NULL-terminated deobfuscated filename |
uint32 |
Offset | The offset to the entry's data |
uint32 |
Length | The length of the entry's data |
- If statements must contain a whitespace after the closing parenthesis of the condition
- Operators follow C-Style left-to-right precedence and associativity
- Integers are the only data type that exist
- Variable names can only be integers
- Variable names can be dynamically evaluated
- Trigger for creating such an amazingly comprehensive knowledgebase of the CS2 engine
- asmodean for being a pioneer in reversing the CS2 engine
- Dodder for Hacking the Grisaia for localization
- koestl for his impeccable translations and contributions to localization