Some programs interpret the file specs quite liberal, partly due to the fact that they have never been officially published. Here are some specialties you may or may not want to take care of:

  • `Owner' fields on ships/contacts may be 12, if the `Jumpgate' add-on is used. PCC/CCBSim also allows you to use player-12-owned ships in a simulation, PHost allows to set a player to `race 12', giving a totally unspecial race (although there is never a thing such as `Player 12'). Some simulators generate `vcr12.dat' which they hand to VCR.EXE.
  • The Dominion computer player often generates zero-terminated ship names, not space-padded ones. This results in junk being displayed after the actual ship name. The "peng" shiplist compiler will also do this when needed with specification files, to avoid checksum problems. You may want to add a bogon filter for item names and messages (which often cite ship names) to your program. Some PHost versions will also store some fields (VCR, Ufos) as zero-terminated strings.
  • Not all programs generate or evaluate the 10 signature bytes at the end of each data file.
  • Most third-party programs do not validate the player-side checksums (GENx.DAT, CONTROL.DAT). You should still update them to support programs which check them, in particular the Wisseman MAKETURN.
  • If possible and practical, you should check ranges of variables before using them. I have already seen UTILx.DAT `General Object' records with five-digit Warp factors. When taking the documentation word by word, these do not violate any constraints -- as there are none. But such speeds are clearly not usable for computing the way something will travel this turn...