VecFever documentation

< All Topics
Print

Tempest

Atari, 1980

Tempest was the first colour vector arcade game by Atari and is not only a golden age masterpiece and loved by many gamers …but the original cabinet also a bit notorious: the hardware, esp. the vector monitor, is somewhat prone to fail. Plus the first rev. ROMs it shipped with had software bugs which allowed people to gain massive amounts of free credits. The latter was a direct result of Atari using ever more protection mechanisms.

Tempest uses several, independent schemes based around the vector output of the copyright string and on the Pokey, both its random number values and the reset behaviour (similar to Red Baron). And one of those checks actually failed even on Atari hw resulting in a way to overwrite Tempest variables in a defined way (based on the last score digits). The failing vector monitor notoriety is more interesting: Tempest uses a unique, rather strange way to handle the vector output. Most of the time the vector generator is in an endless loop and always drawing at an absolute maximum. Among other things this means that there is no fixed refresh rate. Also there is no clipping, it draws out of bounds. However during attract when switching modes (Attract, Hiscore page, Logo) it stops drawing entirely for a short duration, not even sending out invisible frame collapse prevention vectors. Needless to say this is not done on the Vectrex – here a max. 50Hz frequency is used for the output and all vectors clipped manually.

And on a personal note: so far I thought Atari actually had German speaking warm body around for their translations. But by Tempest times at least one person must have been either disinterested or gone and someone just tried their best with a dictionary. That would at least explain why ‘rate yourself’ mutated in German to ‘Calculate yourself’ – SELBST RECHNEN – a really not understandable statement in German in this context.

Thanks again to Vectrexmad! for repeatedly testing the Atari driving controller code and to Chris Binarystar for his nice two-button Vectrex spinner.

Development History

One nice thing about Tempest is that it is one of the few vector games where earlier, development versions survived: the romsets named (by Clay Cowgill) ‘Aliens’ and ‘Vortex’ which then became part of Cowgill’s Tempest multikit. Vortex is pretty near to Tempest development-wise but Aliens a much earlier work-in-progress. Both are supported by the VF so check them out, if you are curious about these older Tempest stages.

Input

When the ‘demo mode’ is active the game allows skipping a level immediately by pressing 1: on controller 1. However, high scores are not stored and temporary in this mode.

The game supports either an analog Vectrex joystick plus its buttons to emulate the arcade spinner or uses a ‘grey code’ digital spinner, the ones used by Atari in their driving controller back in Atari VCS days (beware: there exists a similar looking Atari paddle controller).

The analog joystick emulation is the most precise in terms of positional input but does need a bit of getting used to since pointing to the left/right does not correspond with left and right on the screen.

The Atari driving controller has one button which can be used on the Vectrex even though it is not hooked up to a button input but rather the analog ‘Y’ input: the button for a given controller simply has to be pressed a few times to calibrate the pressed/not-pressed range. The super zapper button in-game with the driving controller is any buttons of port 1.

You can easily build your own digital spinner with 2 buttons in a small enclosure and a few people have done so which is the last input option supported, here superzapper/fire are mapped onto 3: and 4:

Options

  • Reset Scores
  • Demo Mode: On/Off (1: skips level)
  • Language: English/Spanish/French/German
  • Level: Tempest/Tempest Tubes
  • Lives: 2/3/4/5
  • Skill Level: Hard/Medium 1/Medium 2/Easy
  • Input: Analog Joystick (Port 1), Atari Driving Controller (Port 2), Digital Spinner with 2 buttons (Port 2)
  • Game Info

Localization

//NAME="TEMPEST"
//

GERMAN[] = {
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, "Demo Modus: An"},
    { 0, 0, "Demo Modus: Aus"},
    { 0, 0, "                           Willkommen zu Tempest, dem ersten Farbvektorarkadespiel von Atari.                Tempest ist nicht nur ein Meisterstück der goldenen Videospieljahre.. sondern auch berüchtigt: die Originalhardware war instabiler als üblich, auch ein Resultat da Farbvektormonitore brandneu waren und Tempest diese sehr stresst. Es ist sogar überliefert, dass bei der Entwicklung von Tempest ein Ventilator aufgebaut wurde, um frische Luft auf die Platinen des Monitors zu drücken, nachdem einige Chips vorher so heiss wurden, dass sie sich selbst entlöteten und herunterplumpsten. Ebenso gab es Softwareprobleme bei der Auslieferung: da Atari immer mehr Sicherheitmechanismen versuchte einzubauen gab es mit einer der Sicherheitstests sogar Probleme mit den Original ausgelieferten ROMs, der katastrophal war: man konnte Variablen des Spiels gezielt überschreiben. Was zu einer 'massig mehr Freispiele' Möglichkeit führt, die bekannter wurde.                Der etwas wehleidigere Vektormonitor ist interessanter: Tempest benutzt eine bis dahin einzigartige Art, den Monitor anzusteuern: es mahlt fast immer das absolute Maximum, was die Hardware kann, in einer Schleife. Und ändert diese immer laufende Schleife in Unterroutinen, um Sachen zu ändern. Zudem zeichnet es auch ausserhalb des sichtbaren Monitors and die Wände der Röhre, was von einigen als unsicher angesehen wird (aber von Atari später als Effekt bei Star Wars sehr gut benutzt wurde). Allerdings beim Wechsel zwischen Attract, Highscore und Titel zeichnet es gar nichts, nichtmal unsichtbare Bewegungen an die Ränder, um den Monitor zu stabilisieren.               Für die Vectrex wurde dieses merkwürdige und vlt. unsichere Art der Vektorausgabe nicht emuliert - es wird stattdessen auf 50Hz ausgegeben und alle Vektoren auch nur im sichtbaren Schirm gezeichnet.                Und als persönliche Anmerkund: ich glaubte Atari hatte vorher einen Deutschen Sprecher für die Übersetzung aber zur Tempestzeit haben sie wohl einfach mittels Lexikon versucht zu übersetzen, weswegen das merkwürdige 'SELBST RECHNEN' für 'RATE YOURSELF' Einzug fand (also SICH SELBST BEWERTEN direkt übersetzt also eher ein 'WAEHLE DEN LEVEL').                     Nochmal vielen Dank an Vectrexmad! für das Testen des Atari Driving Controller codes and an Chris Binarystar für seinen sehr netten 2-Button Vectrexspinner.                                         "}
};

FRENCH[] = {
    { 0, 0, "Moyenne 1"},
    { 0, 0, "Moyenne 2"},
    { 0, 0, "Niveau: 'Tempest'"},
    { 0, 0, "Niveau: 'Tempest Tubes'"},
    { 0, 0, "Mode Démo: Activé"},
    { 0, 0, "Mode Démo: Désactivé"},
    { 0, 0, "                           Bienvenue dans Tempest, le premier jeu d'arcade vectoriel couleur d'Atari.                Tempest n'est pas seulement un chef-d'œuvre de l'âge d'or ... mais il est également célèbre : le matériel d'origine était susceptible de tomber en panne, en particulier le moniteur vectoriel. De plus, les ROMs du jeu comportaient un bug qui permettait aux joueurs de gagner des quantités massives de parties gratuites. Ceci était le résultat direct de l'utilisation par Atari de mécanismes de protection de plus en plus nombreux. Tempest utilise plusieurs schémas indépendants basés sur la sortie vectorielle de la chaîne de copyright et sur la puce Pokey, et cela concerne à la fois ses valeurs randomisées et ses modalités de réinitialisation (qui sont similaires à Red Baron). L'une de ces vérifications échouait même sur le matériel Atari, ce qui se traduisait par un écrasement des variables de Tempest d'une manière définie (en fonction des derniers chiffres du score).                La notoriété du moniteur vectoriel défaillant est plus intéressante : Tempest utilise une méthode unique et des plus curieuses pour traiter la sortie vectorielle. La plupart du temps, le générateur de vecteurs est dans une boucle sans fin; il est donc toujours en train de dessiner au maximum de ce qu'il est possible de faire. Cela signifie entre autres qu'il n'y a pas de taux de rafraîchissement fixe. De plus, il n'y a pas d'écrêtage et on se situe hors limites. Cependant, en mode attractif (démo), lorsqu'on change de mode (Attractif, page des meilleurs scores, Logo), il s'arrête complètement de dessiner pendant une courte durée, sans même envoyer de vecteurs invisibles  pour prévenir l'effondrement du nombre d'images produites.                Inutile de dire que je n'ai pas émulé cela sur le Vectrex - J'utilise une fréquence maximale de 50 Hz pour la sortie et j'écrête tous les vecteurs manuellement, ce qui me semble plus sûr.                Et enfin une note plus personnelle : jusqu'à présent, je pensais qu'Atari avait un locuteur allemand en chair et en os pour ses traductions. Mais à l'époque de Tempest,  la personne concernée tout du moins, devait soit s'être désintéressée du projet soit être partie, si bien que quelqu'un a dû faire de son mieux avec un dictionnaire. Cela expliquerait au moins pourquoi le terme \"Auto-évaluation\" a été remplacé par \"Calculez vous-même\" en allemand - 'SELBST RECHNEN' - : une proposition totalement incompréhensible en allemand dans ce contexte.                     Merci encore à Vectrexmad ! pour avoir testé à plusieurs reprises le code de  'l'Atari Drive Controller' et à Chris Binarystar pour son chouette spinner à deux boutons dédié au Vectrex.                                         "}
};

ENGLISH[] = {
    { 0, 0, "Medium 1"},
    { 0, 0, "Medium 2"},
    { 0, 0, "Level: Tempest"},
    { 0, 0, "Level: Tempest Tubes"},
    { 0, 0, "Demo Mode: On"},
    { 0, 0, "Demo Mode: Off"},
    { 0, 0, "                           Welcome to Tempest, the first colour vector arcade game by Atari.                Tempest is not only a golden age masterpiece ..but also notorious: the original hardware is prone to fail, esp. the vector monitor. Plus the ROMs it shipped with had a bug which allowed people to gain massive amounts of free credits. The latter was a direct result of Atari using more and more protection mechanisms. Tempest uses several, independent schemes based around the vector output of the copyright string and on the Pokey, both its random number values and the reset behaviour (similar to Red Baron). One of those checks actually failed even on Atari hw resulting in a way to overwrite Tempest variables in a defined way (based on the last score digits).                The failing vector monitor notoriety is more interesting: Tempest uses a unique, rather strange way to handle the vector output. Most of the time the vector generator is in an endless loop so always drawing at an absolute maximum. Among other things this means that there is no fixed refresh rate. Also there is no clipping, it draws out of bounds. However during attract when switching modes (Attract, Hiscore page, Logo) it stops drawing entirely for a short duration, not even sending out invisible frame collapse prevention vectors.                Needless to say I did not emulate this on the Vectrex - I am using a max. 50Hz frequency for the output and am clipping all vectors manually, which I think is safer.                And on a personal note: so far I thought Atari actually had German speaking warm body around for their translations. But by Tempest times at least one person must have been either disinterested or gone and someone just tried their best with a dictionary. That would at least explain why 'rate yourself' mutated in German to 'Calculate yourself' - SELBST RECHNEN - a really not understandable statement in German in this context.                     Thanks again to Vectrexmad! for repeatedly testing the Atari driving controller code and to Chris Binarystar for his nice two-button Vectrex spinner.                                         "}
};
Table of Contents