Scope
- 1,328 message containers under
data/message/. - 50,196 non-empty entries across all containers.
- 88 distinct CMD opcodes in the corpus.
- 703 containers (52.9%) use payload sharing.
- Wire format: UTF-16-LE body text + 16-bit-word CMD streams. See subpages.
Dialog chain
How the game routes a world event to a specific line of dialog β content-ID tables, talkstart dispatch, message file resolution.
Wire format
Control tokens, CMD encoding grammar, parser pseudocode, annotated hex dump.
Opcode catalog
All 88 opcodes with hex value, arg layout, verification level, frequency, and width budgets.
Shared payloads
TOC entries pointing to identical payloads. Dedup + canonicalisation logic in re-emit.
Bubble vs window
How overlay 157 picks between the floating bubble and the bottom dialog window, and the empirical 32-character-per-page cap that bubble text fits inside.
Adjacent file classes (not dialog)
| Path | Count | Content |
|---|---|---|
data/script/*.ofs | 383 | Event scripts (animation / camera / branching bytecode). |
data/talkstart/*.ofs | 40 | Dialog-start dispatch tables. |
data/talk/word.dat | 1 | Banned-word filter (player name / chat). |