Zone 66 High Scores Format
This is an encrypted file used by Zone 66 to save the high scores.
There is no signature for this file, other than checking that there are no invalid characters where the player names are supposed to be.
The file is encrypted with an XOR cipher with the key being one byte in length, the value of which is 0x5A.
The file consists of ten high score entries one after the other. Each entry is in the following layout:
|char name||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.
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.