If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Tempest (Arcade)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Tempest

Developer: Atari, Inc.
Publisher: Atari, Inc.
Platform: Arcade (Atari Tempest hardware)
Released in JP: 1981
Released in US: October 1981
Released in EU: 1981


Carts.png This game has revisional differences.
PiracyIcon.png This game has anti-piracy features.


Enter the tunnel of superzapping!

Anti-Piracy

Due to a rise of copies and pirated arcade cabinets of previous games, Atari made increased efforts to prevent such cases in their arcade games starting from the 1980s. The game contains four different anti-piracy checks, with three from the software portion of the game and one to check for genuine hardware. If these checks fail, the game will cripple many aspects of the game during later rounds, rendering further gameplay impossible.

Copyright String Checksum

At offset 0xD575 is where the Atari copyright string is located. At various points of the game, the game checksums this string, alongside the x-position pointers for the copyright string and the "Credits" string afterwards (the latter being a programming oversight but has no impact on the checksum check itself) and stores the result at 0xB5. If this byte is not 0, then at levels 11 and above, the game writes an out of range value to the game's helper timer, resulting in a game crash.

Vector Generator Checksum

Whenever the copyright string is drawn on the screen, particularly during the title screen sequence, the game runs a checksum to see if the code to drawing the vector graphics for the copyright string has been modified. If it does not match any of the four valid results, then this test fails. When 170,000 points is reached in this state, the game increments a memory address based on the player's lowest score byte, which quickly breaks gameplay in various ways and makes the game extremely prone to crashing.

This check was notably bugged in the first revision of the game due to a last minute x-position pointer change in the code for drawing the copyright string on two of the title screens, which notably caused the infamous 40 free credits bug to occur if the player's score happened to have ended at 06, 11, 12, 16, 17 or 18 when this anti-piracy method is tripped. This bug was fixed in later revisions by changing the checksum value required to match.

Draw String Checksum

At offset 0xAACE is the code for drawing the Atari copyright string on the attract mode demo and the high score screen. If this checksum fails, then at levels 21 and above, the game forces decimal arithmetic mode that screws up in-game calculations, resulting in an easy hang or crash.

Genuine Hardware Check

The game checks for a POKEY pseudorandom number generator chip to ensure that it is being run on genuine hardware from Atari. Each time a random number is generated in the game's code, this check is run and the result is put at address 0x011F. If the result is not 0, the check fails. When 150,000 points is reached in this state, the game increments a memory address based on the player's lowest score byte, which quickly breaks gameplay in various ways and makes the game extremely prone to crashing. This proved problematic in early emulations of the game as it can easily be tripped by low-accurate emulators.


(Source: Retro Game Mechanics Explained, ArcadeBlogger)

Revisional Differences

REV01

The original release that includes an error in the vector generator checksum anti-piracy check that is always in effect.

REV02

Fixes the vector generator checksum anti-piracy check error by changing the checksum values required to match. Released around 4 December 1981 according to an Atari Customer Service Bulletin report.

REV03

Fixes a screen collapse on a 2-player game for the "player 1/2 start" screen.

(Source: Original TCRF research)