Pushover Language Format
DATA/LANG0.DAX through LANG3.DAX contain Pushover’s user-interface messages. They are RNC-compressed on disk; references to plain-text copies in the research describe already-decompressed files.
File format
The payload is a sequence of 78 strings in a fixed order, without a count header or offset table. A carriage return (0x0D) terminates each entry; an immediately following line feed (0x0A) is folded into the delimiter. A tilde (~) represents a space. Preserve entry order, empty entries, and intentional leading/trailing spaces when authoring replacements.
The parser reads bytes as Latin-1. This is its lossless byte-to-character choice, not proof that all extended characters map directly to the game's font.
| File | Language |
|---|---|
| LANG0.DAX | English |
| LANG1.DAX | French |
| LANG2.DAX | German |
| LANG3.DAX | Spanish |
Entry groups
| Indices (zero-based) | Purpose |
|---|---|
| 0–7 | Startup, disk/file errors and protection |
| 8–12 | Puzzle instructions |
| 13–17 | Confirmation and joystick calibration |
| 18–27 | Ten domino names, in type order |
| 28–35 | Token, replay and quit choices |
| 36–42 | Result, exit and code-entry messages |
| 43–58 | Failure reasons, time limit and token reward |
| 59–69 | Quavers bonus/pickup messages |
| 70–75 | Disk-insertion prompts |
| 76–77 | Space/fire prompts |
Level-specific hints are stored separately in .SCR files. Changing this table does not translate those hints.
Source code
From pushover, the open-source browser port and its reverse-engineering notes:
- docs/formats/lang-dax.md – reverse-engineering documentation
- tools/asset-convert/lang-dax-to-json.js – decoder / format implementation
Credits
This file format was reverse engineered by VorticonCmdr. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)