This file exists once per directory, even for more than one player. It contains information for all players. All must use the same client version (shareware/registered).
+0 33 DWORDs 11 records of 12 bytes for each race. Undefined if this race doesn't play in this directory: +0 DWORD Checksum for ships, equal to the number in GENx.DAT, increased by 667 +4 DWORD Checksum for planets, equal to the number in GENx.DAT, increased by 1667 +8 DWORD Checksum for starbases, equal to the number in GENx.DAT, increased by 1262 +132 DWORD ? (probably unused) +136 25 DWORDs String 1 (encrypted, see below) +236 25 DWORDs String 2 (encrypted, see below) +336 DWORD Checksum. Equal to the sum of all DWORDs in the above strings, increased by 668 (a number having nothing in common with 13).
The strings are encrypted as follows:
VAR Character : ARRAY[1..25] OF CHAR; Value : ARRAY[1..25] OF DWORD; FOR i:=1 TO 25 DO Value[i] := Ord(Character[i]) * i * 13; { Ord(x) = ASCII code of x }
This is a signature for the registered/unregistered version of Planets. For the Shareware version the strings have the values
"VGA Planets shareware " "Version 3.00 " resp. " V3.5 for windows "
The host checks the first line to identify the shareware version, hence 3rd-party clients can put their own version number into line two (I have been told of some autohost software who rejects these; I believe the autohost is in error here.) For registered players, both lines need to be equal to be identified as the same player. The strings are written to REG.LOG in each host run. They are also stored in PLANETS.EXE. No, I won't describe this here...
If the values from PLANETS.EXE and FIZZ.BIN don't match, Planets refuses to run with the message:
"Switching PLANETS.EXE program in the middle of a turn is not allowed. (blah blah) This is to prevent errors and cheating.".
UNPACK doesn't create FIZZ.BIN. However, PLANETS.EXE will always create and update the file. MAKETURN won't run if FIZZ.BIN is missing and displays a rather long error message.