Z High Score Format
The high-score file of Z is loaded as a block at static address 0x14008b. The front end displays twenty entries.
File format
The inspected file is 360 bytes. The display code establishes the following fields by subtracting the load base from the addresses it reads; these are partial array layouts, not twenty complete contiguous records.
| Offset | Data type | Name | Description |
|---|---|---|---|
| 0x004 | UINT32LE[20] | scores | Displayed as five decimal digits. |
| 0x07c | pair of UINT16LE[20] | times | Each four-byte pair is displayed as minutes and seconds. |
| 0x0f4 | UINT32LE[20] | name indices | Indices into an executable-held name pointer table. |
All bytes outside these ranges are unspecified here. Names are not inline strings at these offsets.
Notes
If the file is absent, the original creates defaults; that branch is unsupported in the port. The offset mapping above follows the load destination and consumers, rather than a dedicated parser.
Source code
From re-z, the open-source browser port:
- src/game/boot-main.js – fn8a4ef file load
- src/game/frontend.js – hiscoreTable address/field reads
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!)