Home News Forum                            

Play your favorite classic games and more with the GameEx front end. Read more.

temptube: MAME ROM Information.


Tempest Tubes (c) 1982 Duncan Brown.

This hack of Tempest adds new shaped levels to the game (game is much harder), but the title screen remains unchanged.


Main CPU : M6502

Co-processor : Math Box

Sound Chips : (2x) POKEY

Screen orientation : Vertical

Video resolution : 256 x 231 pixels

Screen refresh : 60.00 Hz

Palette colors : 256

Players : 2

Control : dial

Buttons : 2

= > (1) Fire, (2) Super Zapper


This hack was created by : Duncan Brown


* Computers :

PC [MS Windows, CD-ROM] (1999, "Atari Arcade Hits 1")

PC [MS Windows, CD-ROM] (2001, "Atari Anniversary Edition")

PC [MS Windows, CD-ROM] (2003, "Atari - 80 Classic Games in One!")


Game's rom.

MAME Info:

0.143u5 [Aaron Giles]

0.33b7 [Darrin Redick]

0.26 [Brad Oliver, Bernd Wiebelt, Allard van der Bas, Al Kossow, Hedley Rainnie, Eric Smith]


- 0.146: Couriersud improved sound emulation for POKEY chip. Changed audio emulation to emulate borrow 3 clock delay and proper channel reset. New frequency only becomes effective after the counter hits 0. Emulation also treats counters as 8 bit counters which are linked now instead of monolytic 16 bit counters. Fixed high pass filters for POKEY. Added POKEYN device based on modern device. Fixed random lfsr generation. Consolidated polynom code. Removed legacy left overs from pokey code. Added a internal pokey_channel class. Convert all remaining drivers to use the modern pokey device.

- 0.145: Miodrag Milanovic converted ATARIVGEAROM to a modern devices.

- 0.143u5: Added clone Tempest (rev 1, Revised Hardware). Corrected the rom labels, description and documentation for the revised hardware rev 3 of Tempest. Added dipswitch locations for the Tempest sets [Brian Troha]. Changed description of clone '(rev 2, Revised Hardware)' to parent 'Tempest (rev 3, Revised Hardware)'. Renamed (tempest) to (tempest3) and (tempest3) to (tempest).

- 0.136u4: Mathis Rosenhauer reduced flickering in Tempest (video\avgdvg.c).

- 0.129u5: Couriersud added save state support to Tempest.

- 0.115u1: Mathis Rosenhauer moved Atari vector PROMs into separate regions. Added user2 rom (036174.01) and the user3 Mathbox PROMs (36175/76, 036177/78, 036179/80 - low/high nibbled). Changed region proms to user1.

- 0.113u3: Derrick Renaud fixed analog controls by adding back a faux VBLANK timing in Tempest.

- 0.112: Stephane Humbert updated Tempest to support second player controls.

- 0.108u5: Mathis Rosenhauer rewrote the Atari vector generators, using the schematics and actual state machine PROMs. The state machine is now emulated so timing should be much more realistic. Clipping hardware in bzone and others is emulated instead of hardcoded. Improved accuracy of clocks and various other bits of cleanup. Added prom ($0 - AVG PROM).

- 0.108u1: Brian Troha improved documentation in the Tempest drivers. Changed description of clone 'Tempest (rev ?)' to 'Tempest (rev 2, Revised Hardware)'. Fixed rom names.

- 0.106u13: Aaron Giles reimplemented the sparkle circuit to bring back stars in Tempest.

- 0.102u3: RansAckeR fixed cocktail mode and input in Tempest.

- 0.75: Aaron Giles added clone Tempest (rev ?).

- 7th October 2003: Aaron Giles added another set of Tempest.

- 0.71u3: Frank Palazzolo moved flipping and swapping API stuff from vector.c to avgdvg.c, this is specific to Tempest and Quantum only.

- 0.58: Changed palettesize from 33024 to 32768 colors.

- 30th January 2002: Aaron Giles added better vector sparkle effect emulation as used in Major Havoc and Tempest.

- 0.37b14: Changed screen orientation to vertical.

- 5th April 2001: Nicola Salmoria fixed Tempest and Quantum screen orientation and added screen flip / rotate support to the vector routines, but the changes are not yet complete.

- 0.37b7: Juergen Buchmueller fixed the Pokey emulation so that the Tempest reset bug is fixed, this time for real and forever.

- 28th August 2000: Juergen Buchmueller modified the Pokey RNG functions to finally work as they would in real hardware.

- 7th August 2000: KBD fixed, hopefully finally, the Tempest 150k reset bug.

- 25th June 2000: Juergen Buchmueller fixed the Pokey sound core, and Tempest sounds a bit better now.

- 0.36RC2: Changed M6502 CPU1 and the 2x Pokey clock speed to 1512000 Hz.

- 4th March 2000: Juergen Buchmueller tweaked Tempest again to work better.

- 5th February 2000: Juergen Buchmueller rewrote the Pokey code and made some speedups to the Pokey core.

- 0.36b12: The hangs in Tempest caused by the Pokey protection should now be fixed once and for all [Juergen Buchmueller].

- 15th December 1999: Juergen Buchmueller hopefully fixed the Tempest reset bug. The hangs in Tempest caused by the Pokey protection.

- 0.33b7: Darrin Redick added Tempest (rev 3) and clone (rev 2). Changed 'Tempest' to clone '(rev 1)'. Renamed (tempest) to (tempest1). Bernd Wiebelt was inspired by Retrocade and Vector Dream, changed the vector games to use translucent vectors. Color intensities had to be lowered, if it feels to dark for you now, increase the gamma correction value.

- 0.30: Valerio Verrando added Tempest Tubes (hack 1980). Emulation of AVG sparkling bit (Tempest stars/fireworks) [Brad Oliver]. Known issues: Several people complained that mouse control is reversed. This is not the case. The more obvious place where this can be seen is the level selection screen at the beginning: move the mouse right, the block goes right. Anyway, if you don't like the key assignments, you can change them.

- 0.29: Brad Oliver updated pokyintf.c source to be more like 8910intf.c. Variable clock frequency, port callbacks, a clipping parameter, variable updates per frame. Most noticeably, Tempest has much improved sound with more frequent updates. New fix to avoid lockup in Tempest after 150,000 points - this one should really work [Keith Gerdes]. Known issues: Keyboard control is too fast. Use the mouse.

- 0.28: Sean Trowbridge found a workaround to make Tempest not lock up at 150,000 points.

- 0.27: Brad Oliver and Bernd Wiebelt fixed Tempest, no longer crash after level 13, has better colors (colorram emulation) and is overall a bit faster. Thanks to the precious information on the Pokey random number generator provided by Eric Smith, Hedley Rainnie and Sean Trowbridge, some problems with Centipede (start with 18 credits) and Tempest (hang after level 13) are now solved. Trackball support for Tempest. Bernd Wiebelt sincerely hopes he fixed the BCD-emulation in the 6502 emulation. At least the authentic Tempest feeling (broken X/Y monitor) is gone, since the game now starts without pressing Fire.

- 0.26a: Some credits that were left out last time: Thanks to Al Kossow, Hedley Rainnie and Eric Smith for the code to their vecsim emulator which had emulated these games previously on the unix and the mac, and thanks to Neil Bradley for pointing out the critical bug in the vector generator engine which prevented Tempest from working.

- 0.26: Added Tempest (Atari 1980). Known issues: The game start with a blank screen. Press CTRL to start. Thanks to the outstanding combined efforts of Brad Oliver, Bernd Wiebelt and Allard van der Bas, MAME entered in vectorial emulation world! All in a time, we have support for Asteroids, Asteroids Deluxe, Black Widow, Battlezone, Gravitar, Lunar Lander, Red Baron, Spaceduel and Tempest. Thanks to Al Kossow, Hedley Rainnie and Eric Smith for the code to their VECSIM emulator which had emulated these games previously on the UNIX and MAC. Control: Arrows = Left/Right move around and CTRL = Zap and ALT = Super Zapper.

- 12th November 1996: Dumped Tempest (rev 1).

LEVELS: 99 (endless)

Other Emulators:



* Retrocade

Recommended Games:


Tornado (DECO Cassette)

Wiz Warz (prototype)

Romset: 26 kb / 14 files / 19.8 zip

MAME XML Output:

       <game name="temptube" sourcefile="tempest.c" cloneof="tempest" romof="tempest">
              <description>Tempest Tubes</description>
              <rom name="136002-113.d1" size="2048" crc="65d61fe7" sha1="38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa" region="maincpu" offset="9000"/>
              <rom name="136002-114.e1" size="2048" crc="11077375" sha1="ed8ff0ca969da6672a7683b93d4fcf2935a0d903" region="maincpu" offset="9800"/>
              <rom name="136002-115.f1" size="2048" crc="f3e2827a" sha1="bd04fcfbbba995e08c3144c1474fcddaaeb1c700" region="maincpu" offset="a000"/>
              <rom name="136002-316.h1" size="2048" crc="aeb0f7e9" sha1="a5cc25015b98692673cfc1c7c2e9634efd750870" region="maincpu" offset="a800"/>
              <rom name="136002-217.j1" size="2048" crc="ef2eb645" sha1="b1a2c969e8897e335d5354de6ae04a65d4b2a1e4" region="maincpu" offset="b000"/>
              <rom name="tube-118.k1" size="2048" crc="cefb03f0" sha1="41ddfa4991fa49a31d4740a04551556acca66196" region="maincpu" offset="b800"/>
              <rom name="136002-119.lm1" size="2048" crc="a4de050f" sha1="ea302e43a313a5a18115e74ddbaaedde0fbecda7" region="maincpu" offset="c000"/>
              <rom name="136002-120.mn1" size="2048" crc="35619648" sha1="48f1e8bed7ec6afa0b4c549a30e5ec331c071e40" region="maincpu" offset="c800"/>
              <rom name="136002-121.p1" size="2048" crc="73d38e47" sha1="9980606376a79ba94f8e2a325871a6c8d10d83fc" region="maincpu" offset="d000"/>
              <rom name="136002-222.r1" size="2048" crc="707bd5c3" sha1="2f0af6fb7154c244c794f7247e5c16a1e06ddf7d" region="maincpu" offset="d800"/>
              <rom name="136002-123.np3" size="2048" crc="29f7e937" sha1="686c8b9b8901262e743497cee7f2f7dd5cb3af7e" region="maincpu" offset="3000"/>
              <rom name="136002-124.r3" size="2048" crc="c16ec351" sha1="a30a3662c740810c0f20e3712679606921b8ca06" region="maincpu" offset="3800"/>
              <rom name="136002-125.d7" merge="136002-125.d7" size="256" crc="5903af03" sha1="24bc0366f394ad0ec486919212e38be0f08d0239" region="user1" offset="0"/>
              <rom name="136002.126" merge="136002.126" size="32" crc="8b04f921" sha1="317b3397482f13b2d1bc21f296d3b3f9a118787b" region="user2" offset="0"/>
              <rom name="136002.132" merge="136002.132" size="256" crc="2af82e87" sha1="3816835a9ccf99a76d246adf204989d9261bb065" region="user3" offset="0"/>
              <rom name="136002.131" merge="136002.131" size="256" crc="b31f6e24" sha1="ce5f8ca34d06a5cfa0076b47400e61e0130ffe74" region="user3" offset="0"/>
              <rom name="136002.130" merge="136002.130" size="256" crc="8119b847" sha1="c4fbaedd4ce1ad6a4128cbe902b297743edb606a" region="user3" offset="1"/>
              <rom name="136002.129" merge="136002.129" size="256" crc="09f5a4d5" sha1="d6f2ac07ca9ee385c08831098b0dcaf56808993b" region="user3" offset="1"/>
              <rom name="136002.128" merge="136002.128" size="256" crc="823b61ae" sha1="d99a839874b45f64e14dae92a036e47a53705d16" region="user3" offset="2"/>
              <rom name="136002.127" merge="136002.127" size="256" crc="276eadd5" sha1="55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba" region="user3" offset="2"/>
              <chip type="cpu" tag="maincpu" name="M6502" clock="1512000"/>
              <chip type="audio" tag="mono" name="Speaker"/>
              <chip type="audio" tag="pokey1" name="POKEYN" clock="1512000"/>
              <chip type="audio" tag="pokey2" name="POKEYN" clock="1512000"/>
              <display tag="screen" type="vector" rotate="270" refresh="60.000000" />
              <sound channels="1"/>
              <input players="2" buttons="2" coins="3" service="yes" tilt="yes">
                     <control type="dial" minimum="0" maximum="15" sensitivity="100" keydelta="20"/>
              <dipswitch name="Service Mode" tag="IN0" mask="16">
                     <dipvalue name="Off" value="16" default="yes"/>
                     <dipvalue name="On" value="0"/>
              <dipswitch name="Cabinet" tag="IN1/DSW0" mask="16">
                     <dipvalue name="Upright" value="16" default="yes"/>
                     <dipvalue name="Cocktail" value="0"/>
              <dipswitch name="Difficulty" tag="IN2" mask="3">
                     <dipvalue name="Easy" value="2"/>
                     <dipvalue name="Medium1" value="3" default="yes"/>
                     <dipvalue name="Medium2" value="0"/>
                     <dipvalue name="Hard" value="1"/>
              <dipswitch name="Rating" tag="IN2" mask="4">
                     <dipvalue name="1, 3, 5, 7, 9" value="4" default="yes"/>
                     <dipvalue name="tied to high score" value="0"/>
              <dipswitch name="Coinage" tag="DSW1" mask="3">
                     <dipvalue name="2 Coins/1 Credit" value="1"/>
                     <dipvalue name="1 Coin/1 Credit" value="0" default="yes"/>
                     <dipvalue name="1 Coin/2 Credits" value="3"/>
                     <dipvalue name="Free Play" value="2"/>
              <dipswitch name="Right Coin" tag="DSW1" mask="12">
                     <dipvalue name="*1" value="0" default="yes"/>
                     <dipvalue name="*4" value="4"/>
                     <dipvalue name="*5" value="8"/>
                     <dipvalue name="*6" value="12"/>
              <dipswitch name="Left Coin" tag="DSW1" mask="16">
                     <dipvalue name="*1" value="0" default="yes"/>
                     <dipvalue name="*2" value="16"/>
              <dipswitch name="Bonus Coins" tag="DSW1" mask="224">
                     <dipvalue name="None" value="0" default="yes"/>
                     <dipvalue name="1 each 5" value="128"/>
                     <dipvalue name="1 each 4 (+Demo)" value="64"/>
                     <dipvalue name="1 each 3" value="160"/>
                     <dipvalue name="2 each 4 (+Demo)" value="96"/>
                     <dipvalue name="1 each 2" value="32"/>
                     <dipvalue name="Freeze Mode" value="192"/>
                     <dipvalue name="Freeze Mode" value="224"/>
              <dipswitch name="Minimum" tag="DSW2" mask="1">
                     <dipvalue name="1 Credit" value="0" default="yes"/>
                     <dipvalue name="2 Credit" value="1"/>
              <dipswitch name="Language" tag="DSW2" mask="6">
                     <dipvalue name="English" value="0" default="yes"/>
                     <dipvalue name="French" value="2"/>
                     <dipvalue name="German" value="4"/>
                     <dipvalue name="Spanish" value="6"/>
              <dipswitch name="Bonus Life" tag="DSW2" mask="56">
                     <dipvalue name="10000" value="8"/>
                     <dipvalue name="20000" value="0" default="yes"/>
                     <dipvalue name="30000" value="16"/>
                     <dipvalue name="40000" value="24"/>
                     <dipvalue name="50000" value="32"/>
                     <dipvalue name="60000" value="40"/>
                     <dipvalue name="70000" value="48"/>
                     <dipvalue name="None" value="56"/>
              <dipswitch name="Lives" tag="DSW2" mask="192">
                     <dipvalue name="2" value="192"/>
                     <dipvalue name="3" value="0" default="yes"/>
                     <dipvalue name="4" value="64"/>
                     <dipvalue name="5" value="128"/>
              <driver status="good" emulation="good" color="good" sound="good" graphic="good" savestate="supported" palettesize="0"/>

emumovies.com      Retro bytes Portal           Bookmark and Share

Developed by: Spesoft  Headsoft     Terms of use     Privacy    Advertise