More formats, Final Mission, Spinworld

1 August 2004

Disk Format / Copy Protection Support

New

  • Championship Manager 2
  • Final Mission flakey bit protection, see below
  • Fuzzball protection tracks
  • Nuclear War flakey bit protection. If that protection fails - ie playing from a copy - a manual protection is asked, otherwise the player is not bothered with that part. Very nice!
  • Plotting protection support added to one PA format
  • Quartz
  • Sliders
  • Spinword flakey bit protection, see below

Final Mission Protection

The Final Mission flakey bit protection is an earlier version of the one on Spinworld. Unfortunately, the protection check has a bug that causes the protection to fail regardless of authenticity. It tries to create statistical data from the randomness of bits, however that is very likely to fail on a real disk, but even if it was working the “protection failed” variable is not initialised anywhere in the code so it fails no matter what...

To make up for all these bugs, the later in-game checks (that are obviously written in C), use a bad typecast (signed/unsigned mismatch, a 16 bit variable that is either 0 or 0xffff promoted as signed to 32 bit integer, then compared against 0xffff. This of course cannot happen since 0 will remain 0, but 0xffff will become 0xffffffff) that causes the protection passed flag to pass regardless of real protection state. In other words it is a non-working protection check that succeeds because of two mistakes in the code.

There is also another protection on the disk, which quite surprisingly does work.

Spinworld Protection

The Spinworld flakey bit protection is a later variant of the one on Final Mission, but the checks on bit randomness statistics has been thrown out. The check at least the check works, since the “protection failed” variable is initialised this time.