Home News Forum                            

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

survival: MAME ROM Information.


Survival (c) 1982 Rock-ola.


Main CPU : 8085A (@ 2.75 Mhz)

Sound Chips : AY8910 (@ 2.75 Mhz)

Screen orientation : Vertical

Video resolution : 208 x 256 pixels

Screen refresh : 60.00 Hz

Palette Colors : 256

Players : 2

Control : 8-way joystick

Buttons : 1


Game's rom.

Machine's picture.

MAME Info:

0.74u2 [Zsolt Vasvari]

0.37b14 [Zsolt Vasvari]

Artwork available


- 0.126: Nuapete fixed possible 64-bit crash/hang with Survival (video\phoenix.c).

- 0.125u7: Nuapete fixed Survival - Game now playable. There is a 14 pin part (Protection) connected to the 8910 Port B D0 labeled DL57S22. Inputs are demangled at 0x1ae6-0x1b04 using the table at 0x1b26 and bit 0 of the data from the AY8910 port B. The equation is: input = map[input] + ay_data + b@437c (b@437c is set and cleared elsewhere in the code, but is always 0 during the demangling). A routine at 0x2f31 checks for incorrect AY8910 port B data. Incorrect values increment an error counter at 0x4396 which causes bad sprites and will kill the game after a specified number of errors. For input & 0xf0 == 0 or 2 or 4, AY8910 port B must have bit 0 cleared. For all other joystick bits, it must be set. Another routine at 0x02bc checks for bad SID data, and increments the same error counter and cancels certain joystick input. The hiscore data entry routine at 0x2fd8 requires unmangled inputs at 0x3094. This could explain the significance of the loop where the joystick inputs are read for gameplay at 0x2006-0x202a. The code waits here for two consecutive identical reads from the AY8910. This probably means there's a third read of raw data with some or all of the otherwise unused bits 1-7 on the AY8910 port B set to distinguish it from a gameplay read (see video\phoenix.c).

- 0.122u7: Survival updates [Couriersud]: Palette from schematics (resnet.h). Changed 8085A CPU1 clock speed to 5.5MHz and VSync to 61.035156 Hz.

- 17th December 2006: Mr. Do - Thanks to the loan by Vintage Arcade Superstore, we have a scan of the generic Rockola bezel, which Zorg vectored quite nicely. For now, I added in a blank red instruction card until we get the real thing. This gives us a bezel for Survival.

- 0.74u2: Zsolt Vasvari added Survival (Rock-ola 1982).

- 0.37b14: Zsolt Vasvari added Survival (Testdriver). TODO: Protection. Check CPU/AY8910 clocks. Check background visibile area. When the background scrolls up, it currently shows below the top and bottom of the border of the play area.

- 1st April 2001: Zsolt Vasvari added Survival to the Phoenix driver, but that game isn't working either due to unemulated protection. Protection: There is a 14 pin part connected to the 8910 Port B D0 labeled DL57S22. There is a loop at $2002 that reads the player controls -- the game sits in this loop as long as Port B changes. Also, Port B seems to invert the input bits, and the game checks for this at $2f32. The game also uses the RIM instruction a lot, that's purpose is unclear, as the result doesn't seem to be used (even when it's stored, the result is never read again). I would think that this advances the protection chip somehow, but isn't RIM a read only operation? - Check background visibile area. When the background scrolls up, it currently shows below the top and bottom of the border of the play area.

Recommended Games:


Wall Street

Bio Attack

Emergency Call Ambulance

Romset: 25 kb / 14 files / 16.0 zip

MAME XML Output:

       <game name="survival" sourcefile="phoenix.c">
              <rom name="g959-32a.u45" size="2048" crc="0bc53541" sha1="0d1bcf226b89d0cfe0864aab8126b276273a23c2" region="maincpu" offset="0"/>
              <rom name="g959-33a.u46" size="2048" crc="726e9428" sha1="515c6278ece9bf39827b9c886a1a900e274bd272" region="maincpu" offset="800"/>
              <rom name="g959-34a.u47" size="2048" crc="78f166ff" sha1="ad079372067319dcfad4a00e437d34a999ff9161" region="maincpu" offset="1000"/>
              <rom name="g959-35a.u48" size="2048" crc="59dbe099" sha1="b7a60302510c72d61b397f7d0f615cfe1762ef5f" region="maincpu" offset="1800"/>
              <rom name="g959-36a.u49" size="2048" crc="bd5e586e" sha1="8e53e5de7bf73cb56fbd6c18017f09cbbbb17769" region="maincpu" offset="2000"/>
              <rom name="g959-37a.u50" size="2048" crc="b2de1094" sha1="c8b35b9dd57bd50f837087f10c50f2af04cea823" region="maincpu" offset="2800"/>
              <rom name="g959-38a.u51" size="2048" crc="131c4440" sha1="c2610d8fbf63110767037c384b6776cfe981da4c" region="maincpu" offset="3000"/>
              <rom name="g959-39a.u52" size="2048" crc="213bc910" sha1="a03b3ca8185e929898cc32ea2d5e944c4c897d0d" region="maincpu" offset="3800"/>
              <rom name="g959-42.u23" size="2048" crc="3d1ce38d" sha1="48b94027467ba360c08a7f56bb75474e6859381f" region="gfx1" offset="0"/>
              <rom name="g959-43.u24" size="2048" crc="cd150da9" sha1="642264c0eed34ae2b9f1156d261786361f296d1a" region="gfx1" offset="800"/>
              <rom name="g959-40.u39" size="2048" crc="41dee996" sha1="55a792504b2ffc1236eb3f427dee38893e1ca5b7" region="gfx2" offset="0"/>
              <rom name="g959-41.u40" size="2048" crc="a255d6dc" sha1="1b2f635f4392d0df1cbd527dcf6cf662b2a1014e" region="gfx2" offset="800"/>
              <rom name="clr.u40" size="256" crc="b3e20669" sha1="4f01c5d74fc8abe748dd88e4513edf52b977ee32" region="proms" offset="0"/>
              <rom name="clr.u41" size="256" crc="abddf69a" sha1="e22c380a94fb491bec95c4f4c2d4f072839c09cf" region="proms" offset="100"/>
              <chip type="cpu" tag="maincpu" name="8085A" clock="5500000"/>
              <chip type="audio" tag="mono" name="Speaker"/>
              <chip type="audio" tag="aysnd" name="AY-3-8910A" clock="2750000"/>
              <display tag="screen" type="raster" rotate="90" width="256" height="208" refresh="61.035156" pixclock="5500000" htotal="352" hbend="0" hbstart="256" vtotal="256" vbend="0" vbstart="208" />
              <sound channels="1"/>
              <input players="2" buttons="1" coins="1">
                     <control type="joy" ways="8"/>
              <dipswitch name="Lives" tag="DSW0" mask="3">
                     <dipvalue name="2" value="3"/>
                     <dipvalue name="3" value="2" default="yes"/>
                     <dipvalue name="4" value="1"/>
                     <dipvalue name="5" value="0"/>
              <dipswitch name="Bonus Life" tag="DSW0" mask="12">
                     <dipvalue name="25000" value="12" default="yes"/>
                     <dipvalue name="35000" value="8"/>
                     <dipvalue name="45000" value="4"/>
                     <dipvalue name="55000" value="0"/>
              <dipswitch name="Free Play" tag="DSW0" mask="16">
                     <dipvalue name="Off" value="16" default="yes"/>
                     <dipvalue name="On" value="0"/>
              <dipswitch name="Coinage" tag="DSW0" mask="96">
                     <dipvalue name="5 Coins/1 Credit" value="0"/>
                     <dipvalue name="3 Coins/1 Credit" value="32"/>
                     <dipvalue name="2 Coins/1 Credit" value="64"/>
                     <dipvalue name="1 Coin/1 Credit" value="96" default="yes"/>
              <dipswitch name="Cabinet" tag="CAB" mask="1">
                     <dipvalue name="Upright" value="0" default="yes"/>
                     <dipvalue name="Cocktail" value="1"/>
              <driver status="imperfect" emulation="good" color="imperfect" sound="good" graphic="good" savestate="unsupported" palettesize="256"/>

emumovies.com      Retro bytes Portal           Bookmark and Share

Developed by: Spesoft  Headsoft     Terms of use     Privacy    Advertise