Zone 66 High Scores Format

From ModdingWiki
Jump to: navigation, search

This is an encrypted file used by Zone 66 to save the high scores.

File format

Signature

There is no signature for this file, other than checking that there are no invalid characters where the player names are supposed to be.

Encryption

The file is encrypted with an XOR cipher with the key being one byte in length, the value of which is 0x5A.

Entry

The file consists of ten high score entries one after the other. Each entry is in the following layout:

Data type Description
char name[20] Player name, up to 20 chars, padded with nulls (0x00). Must be NULL terminated.
UINT16LE score Actual score

The player name must be null-terminated (last character is 0x00) otherwise the game will print too much text on the high scores screen.

Tools

No known tools edit this format, however it can be easily edited by hand in a hex editor.

This Perl code can be used to both decrypt and encrypt the file.

$i = chr(0x5a) x 220; print <stdin>^$i

It can be used under Linux as follows:

$ cat highs.z66 | perl -e '$i = chr(0x5a) x 220; print <stdin>^$i' > highs.clear

With the same command again (with the filenames swapped) to re-encrypt the files.