Kirikiri/KAG Support
Guide to translating Kirikiri visual novels with Mafkers.
Supported Versions
| Version | Status | Notes |
|---|---|---|
| Kirikiri 2.x | ✅ Supported | Closed-source, format documented |
| KiriKiriZ | ✅ Supported | Open-source fork |
How Mafkers Detects Kirikiri
.xp3archives present.ksscript files present- Executable contains “KiriKiri” or “krkr” string
Where Strings Are Stored
.ks Script Files (PRIMARY)
KAG (Kirikiri Adventure Game) scripts are text-based .ks files. Dialog appears as plain text after [command] tags:
[bg storage="bg01.jpg"]
[Hello, player!]
[wait time="200"]
[This is a visual novel scene.]
.xp3 Archives
Kirikiri packages assets into .xp3 archives. Some archives are encrypted with custom keys (26 encryption schemes known).
.tjs Script Files
TJS2 (TypeScript-like JavaScript) scripts may contain string assignments.
Tools Used
- GARbro (MIT, C#) - universal VN archive explorer, handles 26 XP3 encryption schemes
- Native Python parser for
.ksfiles (text-based)
Tag Pattern
KAG uses square bracket tags:
[command]- KAG directive[ruby text="reading"]- ruby annotation%variable- variable interpolation
Common Issues
Encrypted .xp3
Some Kirikiri games encrypt .xp3 archives. GARbro handles most encryption schemes, but some custom encryption may not be supported.
Shift-JIS Encoding
Japanese Kirikiri games often use Shift-JIS encoding. Mafkers tries UTF-8 first, falls back to Shift-JIS.