summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/vicdual.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/vicdual.cpp')
-rw-r--r--src/mame/drivers/vicdual.cpp4045
1 files changed, 0 insertions, 4045 deletions
diff --git a/src/mame/drivers/vicdual.cpp b/src/mame/drivers/vicdual.cpp
deleted file mode 100644
index 8eac1e483ab..00000000000
--- a/src/mame/drivers/vicdual.cpp
+++ /dev/null
@@ -1,4045 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Zsolt Vasvari
-/***************************************************************************
-
- VIC Dual Game board
-
- Games supported:
- * Depth Charge
- * Sub Hunter
- * Safari
- * Frogs
- * Space Attack
- * Space Attack / Head On
- * Head On
- * Head On 2
- * Invinco / Head On 2
- * N-Sub
- * Samurai
- * Invinco
- * Invinco / Deep Scan
- * Tranquillizer Gun
- * Space Trek
- * Carnival
- * Borderline
- * Digger
- * Pulsar
- * Heiankyo Alien
- * Alpha Fighter / Head On
-
- * and a few clones and bootlegs
-
- Notes:
- * Head On and Space Attack had both color and monochrome
- versions. There is a game configuration option to
- switch between them.
- * There existed a vertical version of Head On as well.
- * According to the manuals, Borderline has the same sound
- board as Tranquillizer Gun.
-
- Known issues/to-do's:
- * Analog sound missing in many games
- * Missing color PROM for "Alpha Fighter / Head On"
- * A few of the games have an extra 18K pull-up resistor on the
- blue color gun, Carnival, for example.
- Colors inaccurate? Blue background?
- * Do other games have coinage hardware like nsub?
- brdrline and tranqgun have one too according to the manuals,
- but hardware details aren't known yet.
- * DIP switches need verifying in most of the games
- * DIP switch locations need to be added to some
-
-****************************************************************************/
-
-#include "emu.h"
-#include "includes/vicdual.h"
-#include "audio/vicdual-97271p.h"
-#include "video/vicdual-97269pb.h"
-
-#include "cpu/i8085/i8085.h"
-#include "cpu/z80/z80.h"
-#include "speaker.h"
-
-#include "depthch.lh"
-
-
-#define VICDUAL_MASTER_CLOCK (XTAL(15'468'480))
-#define VICDUAL_MAIN_CPU_CLOCK (VICDUAL_MASTER_CLOCK/8)
-#define VICDUAL_PIXEL_CLOCK (VICDUAL_MASTER_CLOCK/3)
-
-#define VICDUAL_HTOTAL (0x148)
-#define VICDUAL_HBEND (0x000)
-#define VICDUAL_HBSTART (0x100)
-#define VICDUAL_HSSTART (0x110)
-#define VICDUAL_HSEND (0x130)
-#define VICDUAL_VTOTAL (0x106)
-#define VICDUAL_VBEND (0x000)
-#define VICDUAL_VBSTART (0x0e0)
-#define VICDUAL_VSSTART (0x0ec)
-#define VICDUAL_VSEND (0x0f0)
-
-
-
-/*************************************
- *
- * Coin handling
- *
- *************************************/
-
-TIMER_DEVICE_CALLBACK_MEMBER(vicdual_state::clear_coin_status)
-{
- m_coin_status = 0;
-}
-
-void vicdual_state::assert_coin_status()
-{
- m_coin_status = 1;
-}
-
-READ_LINE_MEMBER(vicdual_state::coin_status_r)
-{
- return m_coin_status;
-}
-
-
-/* the main CPU is reset when a coin is inserted */
-void vicdual_state::coin_in()
-{
- m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
-
- /* simulate the coin switch being closed for a while */
- m_coinstate_timer->adjust(attotime::from_msec(70));
-}
-
-INPUT_CHANGED_MEMBER(vicdual_state::coin_changed)
-{
- if (newval)
- {
- /* increment the coin counter */
- machine().bookkeeping().coin_counter_w(0, 1);
- machine().bookkeeping().coin_counter_w(0, 0);
-
- coin_in();
- }
-}
-
-INPUT_CHANGED_MEMBER( headonsa_state::headonsa_coin_inserted )
-{
- if (newval)
- {
- /* increment the coin counter */
- machine().bookkeeping().coin_counter_w(0, 1);
- machine().bookkeeping().coin_counter_w(0, 0);
-
- // hooked up to NMI instead of RESET line
- m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-
- // checks for coin status in a much shorter time frame
- // check headon2s at 0x5f80 onward
- m_coin_status = 1;
- m_coinstate_timer->adjust(attotime::from_msec(10));
- }
-}
-
-#define PORT_COIN_DEFAULT \
- PORT_START("COIN") \
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, vicdual_state,coin_changed, 0)
-
-
-
-/*************************************
- *
- * Timing
- *
- * Various games use various timing
- * sources -- the only way to tell for
- * sure which is which is from the
- * schematics.
- *
- *************************************/
-
-int vicdual_state::get_vcounter()
-{
- int vcounter = m_screen->vpos();
-
- /* the vertical synch counter gets incremented at the end of HSYNC,
- compensate for this */
- if (m_screen->hpos() >= VICDUAL_HSEND)
- vcounter = (vcounter + 1) % VICDUAL_VTOTAL;
-
- return vcounter;
-}
-
-
-READ_LINE_MEMBER(vicdual_state::get_64v)
-{
- return (get_vcounter() >> 6) & 0x01;
-}
-
-
-READ_LINE_MEMBER(vicdual_state::vblank_comp_r)
-{
- return (get_vcounter() < VICDUAL_VBSTART);
-}
-
-
-READ_LINE_MEMBER(vicdual_state::cblank_comp_r)
-{
- return (vblank_comp_r() && !m_screen->hblank());
-}
-
-
-READ_LINE_MEMBER(vicdual_state::timer_value_r)
-{
- /* return the state of the timer (old code claims "4MHz square wave", but it was toggled once every 2msec, or 500Hz) */
- return machine().time().as_ticks(500) & 1;
-}
-
-
-/*************************************
- *
- * Color vs. B&W configuration
- *
- *************************************/
-
-#define COLOR_BW_PORT_TAG "COLOR_BW"
-
-
-int vicdual_state::is_cabinet_color()
-{
- return (m_color_bw.read_safe(0) & 1) ? 0 : 1;
-}
-
-
-#define PORT_CABINET_COLOR_OR_BW \
- PORT_START(COLOR_BW_PORT_TAG) \
- PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) \
- PORT_CONFSETTING( 0x00, "Color" ) \
- PORT_CONFSETTING( 0x01, "Black and White" )
-
-
-
-/*************************************
- *
- * Main CPU memory handlers
- *
- *************************************/
-
-
-WRITE8_MEMBER(vicdual_state::videoram_w)
-{
-// m_screen->update_now();
- m_screen->update_partial(m_screen->vpos());
- m_videoram[offset] = data;
-}
-
-
-WRITE8_MEMBER(vicdual_state::characterram_w)
-{
-// m_screen->update_now();
- m_screen->update_partial(m_screen->vpos());
- m_characterram[offset] = data;
-}
-
-
-/*************************************
- *
- * Root driver structure
- *
- *************************************/
-
-void vicdual_state::machine_start()
-{
- m_coin_status = 0;
- m_palette_bank = 0;
-
- m_port1State = 0;
- m_port2State = 0;
-
- save_item(NAME(m_coin_status));
- save_item(NAME(m_palette_bank));
- save_item(NAME(m_port1State));
- save_item(NAME(m_port2State));
-}
-
-void carnival_state::machine_start()
-{
- vicdual_state::machine_start();
-
- m_musicData = 0;
- m_musicBus = 0;
-
- save_item(NAME(m_musicData));
- save_item(NAME(m_musicBus));
-}
-
-
-void vicdual_state::vicdual_root(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, VICDUAL_MAIN_CPU_CLOCK);
-
- TIMER(config, m_coinstate_timer).configure_generic(FUNC(vicdual_state::clear_coin_status));
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(VICDUAL_PIXEL_CLOCK, VICDUAL_HTOTAL, VICDUAL_HBEND, VICDUAL_HBSTART, VICDUAL_VTOTAL, VICDUAL_VBEND, VICDUAL_VBSTART);
-}
-
-
-
-/*************************************
- *
- * Depthcharge
- *
- *************************************/
-
-READ8_MEMBER(vicdual_state::depthch_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x08) ret = m_in1->read();
-
- return ret;
-}
-
-
-WRITE8_MEMBER(vicdual_state::depthch_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x04) depthch_audio_w(space, 0, data);
-}
-
-
-void vicdual_state::depthch_map(address_map &map)
-{
- map(0x0000, 0x3fff).mirror(0x4000).rom();
- map(0x8000, 0x83ff).mirror(0x7000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0x8400, 0x87ff).mirror(0x7000).ram();
- map(0x8800, 0x8fff).mirror(0x7000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::depthch_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(vicdual_state::depthch_io_r), FUNC(vicdual_state::depthch_io_w));
-}
-
-
-static INPUT_PORTS_START( depthch )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, get_64v)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-void vicdual_state::depthch(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- I8080(config.replace(), m_maincpu, VICDUAL_MAIN_CPU_CLOCK);
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::depthch_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::depthch_io_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw));
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- depthch_audio(config);
-}
-
-
-
-/*************************************
- *
- * Safari
- *
- *************************************/
-
-READ8_MEMBER(vicdual_state::safari_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x08) ret = m_in1->read();
-
- return ret;
-}
-
-
-WRITE8_MEMBER(vicdual_state::safari_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02) { /* safari_audio_w(0, data) */ }
-}
-
-
-void vicdual_state::safari_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom();
- map(0x4000, 0x7fff).noprw(); /* unused */
- map(0x8000, 0x8fff).mirror(0x3000).ram();
- map(0xc000, 0xc3ff).mirror(0x3000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0xc400, 0xc7ff).mirror(0x3000).ram();
- map(0xc800, 0xcfff).mirror(0x3000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::safari_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(vicdual_state::safari_io_r), FUNC(vicdual_state::safari_io_w));
-}
-
-
-static INPUT_PORTS_START( safari )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Aim Up") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Aim Down") PORT_CODE(KEYCODE_Z)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, get_64v)
- PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-void vicdual_state::safari(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::safari_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::safari_io_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw));
-}
-
-
-
-/*************************************
- *
- * Frogs
- *
- *************************************/
-
-READ8_MEMBER(vicdual_state::frogs_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x08) ret = m_in1->read();
-
- return ret;
-}
-
-
-WRITE8_MEMBER(vicdual_state::frogs_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02) frogs_audio_w(space, 0, data);
-}
-
-
-void vicdual_state::frogs_map(address_map &map)
-{
- map(0x0000, 0x3fff).mirror(0x4000).rom();
- map(0x8000, 0x83ff).mirror(0x7000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0x8400, 0x87ff).mirror(0x7000).ram();
- map(0x8800, 0x8fff).mirror(0x7000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::frogs_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(vicdual_state::frogs_io_r), FUNC(vicdual_state::frogs_io_w));
-}
-
-
-static INPUT_PORTS_START( frogs )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY /* The original joystick was a 3-way */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY /* stick, of which Mame's 4-way does */
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY /* a fine simulation */
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DOOR:1") // 1 switch located on the inside of the coin door
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
-
- // There is no dipswitch for these game settings: on a physical level, they are applied
- // by grounding otherwise floating pins (ground wires are provided on pin 1/30)
- PORT_CONFNAME( 0x10, 0x10, "Wire pin 5/26: Allow Free Game" )
- PORT_CONFSETTING( 0x00, DEF_STR( No ) )
- PORT_CONFSETTING( 0x10, DEF_STR( Yes ) )
- PORT_CONFNAME( 0x20, 0x20, "Wire pin 4/27: Game Time" )
- PORT_CONFSETTING( 0x00, "60" )
- PORT_CONFSETTING( 0x20, "90" )
- PORT_CONFNAME( 0x40, 0x40, "Wire pin 3/28: Coinage" )
- PORT_CONFSETTING( 0x00, DEF_STR( 2C_1C ) )
- PORT_CONFSETTING( 0x40, DEF_STR( 1C_1C ) )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, get_64v)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-
-// PORT_START("IN2")
-// PORT_ADJUSTER( 25, "Boing Volume" )
-
-// PORT_START("IN3")
-// PORT_ADJUSTER( 25, "Buzzz Volume" )
-
-// PORT_START("IN4")
-// PORT_ADJUSTER( 25, "Croak Volume" )
-
-// PORT_START("IN5")
-// PORT_ADJUSTER( 25, "Hop Volume" )
-
-// PORT_START("IN6")
-// PORT_ADJUSTER( 50, "Splash Volume" )
-
- PORT_START("R93")
- PORT_ADJUSTER( 50, "Zip Volume" )
-INPUT_PORTS_END
-
-
-void vicdual_state::frogs(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::frogs_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::frogs_io_map);
-
- MCFG_MACHINE_START_OVERRIDE(vicdual_state,frogs_audio)
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw));
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- frogs_audio(config);
-}
-
-
-
-/*************************************
- *
- * Head On
- * Space Attack
- *
- *************************************/
-
-READ8_MEMBER(vicdual_state::headon_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x08) ret = m_in1->read();
-
- return ret;
-}
-
-
-READ8_MEMBER(vicdual_state::sspaceat_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x04) ret = m_in1->read();
- if (offset & 0x08) ret = m_in2->read();
-
- return ret;
-}
-
-
-WRITE8_MEMBER(vicdual_state::headon_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02) headon_audio_w(space, 0, data);
- if (offset & 0x04) { /* palette_bank_w(0, data) */ } /* not written to */
-}
-
-
-void vicdual_state::headon_map(address_map &map)
-{
- map(0x0000, 0x1fff).mirror(0x6000).rom();
- map(0x8000, 0xbfff).noprw(); /* unused */
- map(0xc000, 0xc3ff).mirror(0x3000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0xc400, 0xc7ff).mirror(0x3000).ram();
- map(0xc800, 0xcfff).mirror(0x3000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::headon_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(vicdual_state::headon_io_r), FUNC(vicdual_state::headon_io_w));
-}
-
-
-void vicdual_state::sspaceat_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(vicdual_state::sspaceat_io_r), FUNC(vicdual_state::headon_io_w));
-}
-
-
-static INPUT_PORTS_START( headon )
- PORT_START("IN0")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPSETTING( 0x03, "6" )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, get_64v)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_CABINET_COLOR_OR_BW
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( headonmz )
- PORT_START("IN0")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPSETTING( 0x03, "6" )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, get_64v)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) // protection? (check on startup)
- PORT_BIT( 0x7a, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_CABINET_COLOR_OR_BW
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( headons )
- PORT_INCLUDE( headon )
-
- PORT_MODIFY(COLOR_BW_PORT_TAG)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* no color/bw option */
-INPUT_PORTS_END
-
-// e7f1: coin counter
-static INPUT_PORTS_START( headonsa )
- PORT_INCLUDE( headons )
-
- // flipped activeness, added a start button while at it
- PORT_MODIFY("IN0")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_MODIFY("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("COIN")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, headonsa_state, headonsa_coin_inserted, 0)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( supcrash )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) // both this and the following switch seem to select between 5 and 6 lives? but in combination with 0x02 of IN1 you can get 3 and 4 lives?
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) // see comment above
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Rom Test" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( carnivalh )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // IPT_START2, but not implemented in game? - it goes game-over after player 1's turn
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_CABINET_COLOR_OR_BW
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( sspaceat )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
-
- PORT_START("IN1")
- PORT_DIPNAME( 0x01, 0x00, "Bonus Life For Final UFO" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x0e, "3" )
- PORT_DIPSETTING( 0x0c, "4" )
- PORT_DIPSETTING( 0x0a, "5" )
- PORT_DIPSETTING( 0x06, "6" )
-/* the following are duplicates
- PORT_DIPSETTING( 0x00, "4" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x08, "4" )
- PORT_DIPSETTING( 0x02, "5" ) */
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) )
- PORT_DIPSETTING( 0x00, "10000" )
- PORT_DIPSETTING( 0x10, "15000" )
- PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_DIPNAME( 0x80, 0x00, "Credits Display" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_CABINET_COLOR_OR_BW
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-void vicdual_state::headon(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::headon_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::headon_io_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw_or_color));
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- headon_audio(config);
-}
-
-void vicdual_state::headons(machine_config &config)
-{
- headon(config);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw));
-}
-
-
-void vicdual_state::sspaceat(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::headon_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::sspaceat_io_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw_or_color));
-}
-
-
-
-/*************************************
- *
- * Head On 2
- * Digger
- *
- *************************************/
-
-READ8_MEMBER( vicdual_state::headon2_io_r )
-{
- uint8_t data = 0xff;
-
- if (offset & 0x01) data &= m_in0->read(); // schematics IN1
- if (offset & 0x02) data &= 0xff; // schematics IN2 (not read)
- if (offset & 0x04) data &= m_in1->read(); // schematics IN4
- if (offset & 0x08) data &= m_in2->read();
-
- return data;
-}
-
-WRITE8_MEMBER(vicdual_state::headon2_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02) headon_audio_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::digger_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02) { /* digger_audio_1_w(0, data) */ }
- if (offset & 0x04)
- {
- palette_bank_w(space, 0, data & 0x03);
- /* digger_audio_2_w(0, data & 0xfc); */
- }
-
- if (offset & 0x08) { /* schematics show this as going into a shifter circuit, but never written to */ }
- if (offset & 0x10) { /* schematics show this as going to an edge connector, but never written to */ }
- if (offset & 0x18) logerror("********* Write to port %x\n", offset);
-}
-
-
-void vicdual_state::headon2_map(address_map &map)
-{
- map(0x0000, 0x1fff).mirror(0x6000).rom();
- /* map(0x8000, 0x80ff).mirror(0x3f00); */ /* schematics show this as battery backed RAM, but doesn't appear to be used */
- map(0xc000, 0xc3ff).mirror(0x3000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0xc400, 0xc7ff).mirror(0x3000).ram();
- map(0xc800, 0xcfff).mirror(0x3000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::headon2_io_map(address_map &map)
-{
- map.global_mask(0x1f);
- map(0x00, 0x1f).rw(FUNC(vicdual_state::headon2_io_r), FUNC(vicdual_state::headon2_io_w));
-}
-
-
-void vicdual_state::digger_io_map(address_map &map)
-{
- map.global_mask(0x1f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x1f).rw(FUNC(vicdual_state::headon2_io_r), FUNC(vicdual_state::digger_io_w));
-}
-
-
-static INPUT_PORTS_START( headon2 )
- PORT_START("IN0")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_START("IN1")
- PORT_BIT(0x07, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_DIPNAME(0x18, 0x18, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x18, "4" )
- PORT_DIPSETTING( 0x10, "5" )
-// PORT_DIPSETTING( 0x08, "5" )
- PORT_DIPSETTING( 0x00, "6" )
- PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_DIPNAME(0x02, 0x02, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_BIT(0x7c, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( car2 )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
- /* controls are active_high around on this bootleg */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_START("IN1")
- // seems to ignore lives dip-switches (hardcoded to 3 lives)
- PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
- PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( headon2s )
- PORT_INCLUDE( car2 )
-
- PORT_MODIFY("IN0")
- PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
-
- PORT_MODIFY("IN2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("COIN")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, headonsa_state, headonsa_coin_inserted, 0)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( digger )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_START("IN1")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x02, "4" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "6" )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("IN2")
-// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r) // it's like this according to the schematics, but gameplay speed is too fast;
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r) // gameplay speed is correct now, there's likely an error in the schematics then...
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-MACHINE_RESET_MEMBER( vicdual_state, headon2 )
-{
- m_palette_bank = 3;
-}
-
-
-void vicdual_state::headon2(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::headon2_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::headon2_io_map);
-
- MCFG_MACHINE_RESET_OVERRIDE(vicdual_state, headon2)
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_color));
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- headon_audio(config);
-}
-
-void vicdual_state::headon2bw(machine_config &config)
-{
- headon2(config);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_bw));
-}
-
-
-void vicdual_state::digger(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::headon2_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::digger_io_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_color));
-}
-
-
-
-/*************************************
- *
- * Invinco / Head On 2
- * Invinco / Deap Scan
- * Space Attack / Head On
- * Tranquillizer Gun
- * Space Trek
- * Carnival
- * Borderline
- * Pulsar
- * Heiankyo Alien
- * Alpha Fighter / Head On
- *
- *************************************/
-
-WRITE8_MEMBER(vicdual_state::invho2_io_w)
-{
- if (offset & 0x01) invho2_audio_w(space, 0, data);
- if (offset & 0x02) invinco_audio_w(space, 0, data);
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::invds_io_w)
-{
- if (offset & 0x01) invinco_audio_w(space, 0, data);
- if (offset & 0x02) { /* deepscan_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-WRITE8_MEMBER(vicdual_state::carhntds_io_w)
-{
- if (offset & 0x01) { /* invinco_audio_w(space, 0, data); */ }
- if (offset & 0x02) { /* deepscan_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::sspacaho_io_w)
-{
- if (offset & 0x01) invho2_audio_w(space, 0, data);
- if (offset & 0x02) { /* sspaceatt_audio_w(space, 0, data) */ }
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::tranqgun_io_w)
-{
- if (offset & 0x01) tranqgun_audio_w(space, 0, data);
- if (offset & 0x02) palette_bank_w(space, 0, data);
- if (offset & 0x08) assert_coin_status();
-}
-
-
-WRITE8_MEMBER(vicdual_state::spacetrk_io_w)
-{
- if (offset & 0x01) { /* spacetrk_audio_w(space, 0, data) */ }
- if (offset & 0x02) { /* spacetrk_audio_w(space, 0, data) */ }
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(carnival_state::carnival_io_w)
-{
- if (offset & 0x01) carnival_audio_1_w(space, 0, data);
- if (offset & 0x02) carnival_audio_2_w(space, 0, data);
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::brdrline_io_w)
-{
- if (offset & 0x01) brdrline_audio_w(space, 0, data);
- if (offset & 0x02)
- {
- palette_bank_w(space, 0, data);
- brdrline_audio_aux_w(space,0, data);
- }
- if (offset & 0x08) assert_coin_status();
-}
-
-
-WRITE8_MEMBER(vicdual_state::pulsar_io_w)
-{
- if (offset & 0x01) pulsar_audio_1_w(space, 0, data);
- if (offset & 0x02) pulsar_audio_2_w(space, 0, data);
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::heiankyo_io_w)
-{
- if (offset & 0x01) { /* heiankyo_audio_1_w(0, data) */ }
- if (offset & 0x02) { /* heiankyo_audio_2_w(0, data) */ }
- if (offset & 0x08) assert_coin_status();
-}
-
-
-WRITE8_MEMBER(vicdual_state::alphaho_io_w)
-{
- if (offset & 0x01) { /* headon_audio_w(0, data) */ }
- if (offset & 0x02) { /* alphaf_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-WRITE8_MEMBER(vicdual_state::headonn_io_w)
-{
- if (offset & 0x01) invho2_audio_w(space, 0, data);
- if (offset & 0x02)
- {
- // 7654---- unused?
- // ----32-- always 1
- // ------10 palette bank (bit 0 inverted)
-
- palette_bank_w(space, 0, (data & 3) ^ 1);
- }
- if (offset & 0x08) assert_coin_status();
-}
-
-
-void vicdual_state::vicdual_dualgame_map(address_map &map)
-{
- map(0x0000, 0x3fff).mirror(0x4000).rom();
- map(0x8000, 0x83ff).mirror(0x7000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0x8400, 0x87ff).mirror(0x7000).ram();
- map(0x8800, 0x8fff).mirror(0x7000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-void vicdual_state::carhntds_dualgame_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom(); // also has part of a rom mapped at 0x4000
- map(0x8000, 0x83ff).mirror(0x7000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0x8400, 0x87ff).mirror(0x7000).ram();
- map(0x8800, 0x8fff).mirror(0x7000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-void vicdual_state::invho2_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::invho2_io_w));
-}
-
-
-void vicdual_state::invds_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::invds_io_w));
-}
-
-void vicdual_state::carhntds_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::carhntds_io_w));
-}
-
-void vicdual_state::sspacaho_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::sspacaho_io_w));
-}
-
-
-void vicdual_state::tranqgun_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- map(0x00, 0x00).mirror(0x0c).portr("IN0");
- map(0x01, 0x01).mirror(0x0c).portr("IN1");
- map(0x02, 0x02).mirror(0x0c).portr("IN2");
- map(0x03, 0x03).mirror(0x0c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x0f).w(FUNC(vicdual_state::tranqgun_io_w));
-}
-
-
-void vicdual_state::spacetrk_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::spacetrk_io_w));
-}
-
-
-void carnival_state::carnival_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(carnival_state::carnival_io_w));
-}
-
-
-void vicdual_state::brdrline_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- map(0x00, 0x00).mirror(0x0c).portr("IN0");
- map(0x01, 0x01).mirror(0x0c).portr("IN1");
- map(0x02, 0x02).mirror(0x0c).portr("IN2");
- map(0x03, 0x03).mirror(0x0c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x0f).w(FUNC(vicdual_state::brdrline_io_w));
-}
-
-
-void vicdual_state::pulsar_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::pulsar_io_w));
-}
-
-
-void vicdual_state::heiankyo_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- map(0x00, 0x00).mirror(0x0c).portr("IN0");
- map(0x01, 0x01).mirror(0x0c).portr("IN1");
- map(0x02, 0x02).mirror(0x0c).portr("IN2");
- map(0x03, 0x03).mirror(0x0c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x0f).w(FUNC(vicdual_state::heiankyo_io_w));
-}
-
-
-void vicdual_state::alphaho_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::alphaho_io_w));
-}
-
-
-void vicdual_state::headonn_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::headonn_io_w));
-}
-
-
-/* several of the games' lives DIPs are spread across two input ports */
-template <int Param>
-READ_LINE_MEMBER(vicdual_state::fake_lives_r)
-{
- // FIXME: there should be two template parameters, but that makes port macros confused
- // use the low byte for the bitmask
- uint8_t bit_mask = (Param) & 0xff;
-
- // and use d8 for the port
- int port = (Param) >> 8 & 1;
- return (m_fake_lives[port].read_safe(0) & bit_mask) ? 0 : 1;
-}
-
-
-static INPUT_PORTS_START( invho2 )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x101>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x101>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x01, "Head On 2 Lives" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x01, "3" )
-// PORT_DIPSETTING( 0x02, "3" ) // dupe
- PORT_DIPSETTING( 0x03, "4" )
-
- /* There's probably a bug in the Invinco game code:
- it does support lives set to 5 or 6, but the game
- reads IN3 bit 3 instead of bit 2.
- Note that the manual only lists setting it to 3 or 4.
- */
- PORT_START("FAKE_LIVES.1")
- PORT_DIPNAME( 0x03, 0x03, "Invinco Lives" ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x02, "4" )
-// PORT_DIPSETTING( 0x01, "5" ) // results in 3, see above
-// PORT_DIPSETTING( 0x00, "6" ) // results in 4, see above
-
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( carhntds )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_NAME("P1 Up / Fire Left") // it's UP on Car Hunt but Fire Left on Deep Scan, what was it on the control panel??
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x002>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x101>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x102>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x01, "Car Hunt Lives" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x01, "3" )
- PORT_DIPSETTING( 0x00, "4" )
-
- PORT_START("FAKE_LIVES.1")
- PORT_DIPNAME( 0x03, 0x03, "Deep Scan Lives" ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x02, "1" )
- PORT_DIPSETTING( 0x01, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x03, "4" )
-INPUT_PORTS_END
-
-// dip locations needs to be verified
-// TODO: is it actually one button? Schems shows 2 but button 1 doesn't do anything?
-static INPUT_PORTS_START( wantsega )
- PORT_INCLUDE( carhntds )
-
- PORT_MODIFY("IN0")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_MODIFY("IN2")
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
-
- PORT_MODIFY("IN3")
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_MODIFY("IN3")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) // teleport
-
- PORT_MODIFY("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "6" )
- PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x00, "3" )
-
- PORT_MODIFY("FAKE_LIVES.1")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( invds )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x002>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x101>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x101>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Game Select") PORT_TOGGLE
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- // SW1 @ C1, 6-pos (where are 5 & 6?)
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x03, "Invinco Lives" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x02, "4" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "6" )
-
- PORT_START("FAKE_LIVES.1")
- PORT_DIPNAME( 0x03, 0x01, "Deep Scan Lives" ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x01, "3" )
- PORT_DIPSETTING( 0x00, "4" )
- PORT_DIPSETTING( 0x03, "5" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( sspacaho )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, "Head On Lives" ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x08, "4" )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x002>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_DIPNAME( 0x04, 0x00, "Space Attack Bonus Life" ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x00, "10000" )
- PORT_DIPSETTING( 0x04, "15000" )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_DIPNAME( 0x04, 0x00, "Space Attack Final UFO Bonus" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x03, "Space Attack Lives" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x02, "4" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "6" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( tranqgun )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, vblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( spacetrk )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x00, "4" )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") // unknown, but used
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* must be high for bonus life to work */
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* must be high for bonus life to work */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( spacetrkc )
- PORT_INCLUDE( spacetrk )
-
- PORT_MODIFY("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
-
- PORT_MODIFY("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
-
- PORT_MODIFY("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
-
- PORT_MODIFY("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( carnival )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DOOR:1") // 1 switch located on the inside of the coin door
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( carnivalc )
- PORT_INCLUDE( carnival )
-
- PORT_MODIFY("IN0")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
-
- PORT_MODIFY("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
-
- PORT_MODIFY("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( brdrline )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 8-pos (is 6-8 unconnected?)
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x002>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, vblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x004>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, get_64v) /* yes, this is different */
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, "15000" )
- PORT_DIPSETTING( 0x00, "20000" )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x07, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x01, "3" )
- PORT_DIPSETTING( 0x02, "4" )
- PORT_DIPSETTING( 0x04, "5" )
- PORT_DIPSETTING( 0x07, "Infinite (Cheat)" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( starrkr )
- PORT_INCLUDE( brdrline )
-
- PORT_MODIFY("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
-
- PORT_MODIFY("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
-
- PORT_MODIFY("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
-
- PORT_MODIFY("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( pulsar )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x002>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x02, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x03, "5" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( heiankyo )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") // bonus life?
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "2 Players Mode" ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, "Alternating" )
- PORT_DIPSETTING( 0x00, "Simultaneous" )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") // bonus life?
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* has to be 0, protection? */
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") // bonus life?
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* has to be 0, protection? */
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x04, "5" )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( alphaho )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x001>)
- PORT_DIPNAME( 0x08, 0x00, "Head On Lives" ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x08, "4" )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, fake_lives_r<0x002>)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x00, "Alpha Fighter Unknown" ) PORT_DIPLOCATION("SW1:4") // related to soccer frequency (code at 0x4950)
- PORT_DIPSETTING( 0x00, DEF_STR ( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR ( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-
- PORT_START("FAKE_LIVES.0")
- PORT_DIPNAME( 0x03, 0x03, "Alpha Fighter Lives" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x02, "4" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "6" )
-INPUT_PORTS_END
-
-
-// there is a dip switch with 8 switches on the board, but only switch a is used
-static INPUT_PORTS_START( headonn )
- PORT_START("IN0")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_4WAY PORT_COCKTAIL
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_COCKTAIL
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_DIPNAME(0x08, 0x00, DEF_STR(Lives)) PORT_DIPLOCATION("DSW:1")
- PORT_DIPSETTING( 0x00, "3")
- PORT_DIPSETTING( 0x08, "4")
- PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_4WAY
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_4WAY
- PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
-
- PORT_START("IN1")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_4WAY PORT_COCKTAIL
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_4WAY
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_4WAY
- PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
-
- PORT_START("IN2")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_4WAY PORT_COCKTAIL
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1)
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON1)
- PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
-
- PORT_START("IN3")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_4WAY PORT_COCKTAIL
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START2)
- PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-void vicdual_state::vicdual_dualgame_root(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::vicdual_dualgame_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_color));
-}
-
-
-
-void vicdual_state::invho2(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::invho2_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- invinco_audio(config);
- headon_audio(config);
-}
-
-
-
-void vicdual_state::invds(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::invds_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- invinco_audio(config);
-}
-
-void vicdual_state::carhntds(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::carhntds_dualgame_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::carhntds_io_map);
-}
-
-
-void vicdual_state::sspacaho(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::sspacaho_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- headon_audio(config);
-}
-
-
-void vicdual_state::spacetrk(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::spacetrk_io_map);
-}
-
-
-void carnival_state::carnival(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &carnival_state::carnival_io_map);
-
- config.set_perfect_quantum(m_maincpu);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- carnivala_audio(config);
-}
-
-void carnival_state::carnivalb(machine_config &config)
-{
- carnival(config);
-
- /* audio hardware */
- carnivalb_audio(config);
-}
-
-void carnival_state::carnivalh(machine_config &config)
-{
- carnival(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &carnival_state::headon_io_map);
-}
-
-
-void vicdual_state::tranqgun(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::tranqgun_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- tranqgun_audio(config);
-}
-
-
-void vicdual_state::brdrline(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::brdrline_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- brdrline_audio(config);
-}
-
-
-void vicdual_state::pulsar(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::pulsar_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- pulsar_audio(config);
-}
-
-
-void vicdual_state::heiankyo(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::heiankyo_io_map);
-}
-
-
-void vicdual_state::alphaho(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::alphaho_io_map);
-}
-
-
-void vicdual_state::headonn(machine_config &config)
-{
- vicdual_dualgame_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::headonn_io_map);
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- headon_audio(config);
-}
-
-
-/*************************************
- *
- * Samurai
- *
- *************************************/
-
-WRITE8_MEMBER(vicdual_state::samurai_protection_w)
-{
- m_samurai_protection_data = data;
-}
-
-
-template <int Offset>
-READ_LINE_MEMBER(vicdual_state::samurai_protection_r)
-{
- uint32_t answer = 0;
-
- if (m_samurai_protection_data == 0xab)
- answer = 0x02;
- else if (m_samurai_protection_data == 0x1d)
- answer = 0x0c;
-
- return (answer >> Offset) & 0x01;
-}
-
-
-WRITE8_MEMBER(vicdual_state::samurai_io_w)
-{
- if (offset & 0x02) { /* samurai_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status();
- if (offset & 0x40) palette_bank_w(space, 0, data);
-}
-
-
-/* dual game hardware */
-void vicdual_state::samurai_map(address_map &map)
-{
- map(0x0000, 0x3fff).mirror(0x4000).rom().w(FUNC(vicdual_state::samurai_protection_w));
- map(0x8000, 0x83ff).mirror(0x7000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0x8400, 0x87ff).mirror(0x7000).ram();
- map(0x8800, 0x8fff).mirror(0x7000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::samurai_io_map(address_map &map)
-{
- map.global_mask(0x7f);
-
- map(0x00, 0x00).mirror(0x7c).portr("IN0");
- map(0x01, 0x01).mirror(0x7c).portr("IN1");
- map(0x02, 0x02).mirror(0x7c).portr("IN2");
- map(0x03, 0x03).mirror(0x7c).portr("IN3");
-
- /* no decoder, just logic gates, so in theory the
- game can write to multiple locations at once */
- map(0x00, 0x7f).w(FUNC(vicdual_state::samurai_io_w));
-}
-
-
-static INPUT_PORTS_START( samurai )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x00, "4" )
- PORT_DIPNAME( 0x08, 0x08, "Infinite Lives (Cheat)" ) PORT_DIPLOCATION("SW1:5") // SW1 @ C1, 6-pos (is #6 unconnected?)
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, samurai_protection_r<1>)
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") // unknown, but used
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, samurai_protection_r<2>)
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, timer_value_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, samurai_protection_r<3>)
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-MACHINE_START_MEMBER(vicdual_state,samurai)
-{
- m_samurai_protection_data = 0;
- save_item(NAME(m_samurai_protection_data));
-
- machine_start();
-}
-
-void vicdual_state::samurai(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::samurai_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::samurai_io_map);
-
- MCFG_MACHINE_START_OVERRIDE(vicdual_state,samurai)
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_color));
-}
-
-
-
-/*************************************
- *
- * N-Sub
- *
- *************************************/
-
-READ8_MEMBER(nsub_state::nsub_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x08) ret = m_in1->read();
-
- return ret;
-}
-
-
-WRITE8_MEMBER(nsub_state::nsub_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02)
- {
- m_s97271p->port_w(data);
- }
- if (offset & 0x04)
- {
- palette_bank_w(space, 0, data);
- m_s97269pb->palette_bank_w(data);
- }
-}
-
-
-void nsub_state::nsub_map(address_map &map)
-{
- map(0x0000, 0x3fff).mirror(0x4000).rom();
- map(0x8000, 0xbfff).noprw(); /* unused */
- map(0xc000, 0xc3ff).mirror(0x3000).ram().w(FUNC(nsub_state::videoram_w)).share("videoram");
- map(0xc400, 0xc7ff).mirror(0x3000).ram();
- map(0xc800, 0xcfff).mirror(0x3000).ram().w(FUNC(nsub_state::characterram_w)).share("characterram");
-}
-
-
-void nsub_state::nsub_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(nsub_state::nsub_io_r), FUNC(nsub_state::nsub_io_w));
-}
-
-
-// coinage is handled by extra hardware on a daughterboard, put before the coin-in pin on the main logic board
-// IC board "COIN CALCULATOR" (97201-P): two 74191 counters, a 555 timer, coin meters, and lots of other TTL
-TIMER_DEVICE_CALLBACK_MEMBER(nsub_state::nsub_coin_pulse)
-{
- if (m_nsub_play_counter > 0)
- {
- m_nsub_play_counter--;
- coin_in();
- }
-}
-
-INPUT_CHANGED_MEMBER(nsub_state::nsub_coin_in)
-{
- if (newval)
- {
- int which = (int)param;
- int coinage = m_coinage->read();
-
- switch (which)
- {
- // normal coin
- case 0: case 1:
- if (which && ~coinage & 0x40)
- {
- // x credits per coin
- m_nsub_play_counter += (coinage >> 3 & 7);
- }
- else
- {
- // x coins per credit
- if (--m_nsub_coin_counter == 0)
- {
- m_nsub_coin_counter = coinage & 7;
- m_nsub_play_counter++;
- }
- }
-
- // increment coin counter
- machine().bookkeeping().coin_counter_w(which, 1);
- machine().bookkeeping().coin_counter_w(which, 0);
- break;
-
- // service coin
- case 2:
- m_nsub_play_counter++;
- break;
-
- default:
- break;
- }
- }
-}
-
-
-static INPUT_PORTS_START( nsub )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(nsub_state, cblank_comp_r)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(nsub_state, coin_status_r)
-
- PORT_START("COIN")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, nsub_state, nsub_coin_in, 0)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, nsub_state, nsub_coin_in, 1)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, nsub_state, nsub_coin_in, 2)
-
- PORT_START("COINAGE") // "OPTION SW." on daughterboard
- PORT_DIPNAME( 0x07, 0x01, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW:1,2,3")
- PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( 0C_1C ) ) // invalid
- PORT_DIPNAME( 0x78, 0x08, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW:4,5,6,7")
- PORT_DIPSETTING( 0x40, "Shared With Coin A" )
-// PORT_DIPSETTING( 0x00, DEF_STR( 1C_0C ) ) // invalid
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x18, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_7C ) )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW:8" )
-INPUT_PORTS_END
-
-
-MACHINE_START_MEMBER(nsub_state, nsub)
-{
- m_nsub_play_counter = 0;
- save_item(NAME(m_nsub_coin_counter));
- save_item(NAME(m_nsub_play_counter));
-
- machine_start();
-
- // playcounter 555 timer frequency is unknown
- // keep in mind that intervals need to be longer than the main coin_in timeout
- m_nsub_coinage_timer->adjust(attotime::zero, 0, attotime::from_msec(150));
-}
-
-MACHINE_RESET_MEMBER(nsub_state, nsub)
-{
- m_nsub_coin_counter = m_coinage->read() & 7;
-
- machine_reset();
-}
-
-void nsub_state::nsub(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, VICDUAL_MAIN_CPU_CLOCK);
- m_maincpu->set_addrmap(AS_PROGRAM, &nsub_state::nsub_map);
- m_maincpu->set_addrmap(AS_IO, &nsub_state::nsub_io_map);
-
- TIMER(config, m_coinstate_timer).configure_generic(FUNC(nsub_state::clear_coin_status));
- TIMER(config, m_nsub_coinage_timer).configure_generic(FUNC(nsub_state::nsub_coin_pulse));
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(VICDUAL_PIXEL_CLOCK, VICDUAL_HTOTAL, VICDUAL_HBEND, VICDUAL_HBSTART, VICDUAL_VTOTAL, VICDUAL_VBEND, VICDUAL_VBSTART);
- m_screen->set_screen_update(FUNC(nsub_state::screen_update_color));
-
- S97269PB(config, m_s97269pb, 0);
-
- MCFG_MACHINE_START_OVERRIDE(nsub_state, nsub)
- MCFG_MACHINE_RESET_OVERRIDE(nsub_state, nsub)
-
- /* audio hardware */
- S97271P(config, m_s97271p, 0);
-}
-
-
-
-/*************************************
- *
- * Invinco
- *
- *************************************/
-
-READ8_MEMBER(vicdual_state::invinco_io_r)
-{
- uint8_t ret = 0;
-
- if (offset & 0x01) ret = m_in0->read();
- if (offset & 0x02) ret = m_in1->read();
- if (offset & 0x08) ret = m_in2->read();
-
- return ret;
-}
-
-
-WRITE8_MEMBER(vicdual_state::invinco_io_w)
-{
- if (offset & 0x01) assert_coin_status();
- if (offset & 0x02) invinco_audio_w(space, 0, data);
- if (offset & 0x04) palette_bank_w(space, 0, data);
-}
-
-
-void vicdual_state::invinco_map(address_map &map)
-{
- map(0x0000, 0x3fff).mirror(0x4000).rom();
- map(0x8000, 0xbfff).noprw(); /* unused */
- map(0xc000, 0xc3ff).mirror(0x3000).ram().w(FUNC(vicdual_state::videoram_w)).share("videoram");
- map(0xc400, 0xc7ff).mirror(0x3000).ram();
- map(0xc800, 0xcfff).mirror(0x3000).ram().w(FUNC(vicdual_state::characterram_w)).share("characterram");
-}
-
-
-void vicdual_state::invinco_io_map(address_map &map)
-{
- map.global_mask(0x0f);
-
- /* no decoder, just logic gates, so in theory the
- game can read/write from multiple locations at once */
- map(0x00, 0x0f).rw(FUNC(vicdual_state::invinco_io_r), FUNC(vicdual_state::invinco_io_w));
-}
-
-
-static INPUT_PORTS_START( invinco )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
-
- PORT_START("IN1")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPSETTING( 0x03, "6" )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, cblank_comp_r)
- PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(vicdual_state, coin_status_r)
-
- PORT_COIN_DEFAULT
-INPUT_PORTS_END
-
-
-void vicdual_state::invinco(machine_config &config)
-{
- vicdual_root(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &vicdual_state::invinco_map);
- m_maincpu->set_addrmap(AS_IO, &vicdual_state::invinco_io_map);
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(vicdual_state::screen_update_color));
-
- /* audio hardware */
- SPEAKER(config, "mono").front_center();
- invinco_audio(config);
-}
-
-
-
-/*************************************
- *
- * ROM definitions
- *
- *************************************/
-
-ROM_START( depthch )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "50a", 0x0000, 0x0400, CRC(56c5ffed) SHA1(f1e6cc322da93615d59850b3225a50f06fe58259) )
- ROM_LOAD( "51a", 0x0400, 0x0400, CRC(695eb81f) SHA1(f2491b8b9ce2dbb6d2606dcfaeb8658671f25400) )
- ROM_LOAD( "52", 0x0800, 0x0400, CRC(aed0ba1b) SHA1(cb7473e6b3c192953ae1832ab444545ddd85babb) )
- ROM_LOAD( "53", 0x0c00, 0x0400, CRC(2ccbd2d0) SHA1(76d8459bbad709666ce0c0be51f1d09e091983a2) )
- ROM_LOAD( "54a", 0x1000, 0x0400, CRC(1b7f6a43) SHA1(08d7864378b012a735eac4968f4dd86e36dc9d8d) )
- ROM_LOAD( "55a", 0x1400, 0x0400, CRC(9fc2eb41) SHA1(95a1684da346709908cd66bec06acfaeead596cf) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( depthcho )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD_NIB_LOW ( "316-0025.u63", 0x0000, 0x0400, CRC(bec75b9c) SHA1(8abe8b63be892e6abb7a886222b9eab40c5fcda0) )
- ROM_LOAD_NIB_HIGH( "316-0022.u51", 0x0000, 0x0400, CRC(977b7889) SHA1(dc1e874c2fd44709117474c5b210d67130ac361f) )
- ROM_LOAD_NIB_LOW ( "316-0030.u89", 0x0400, 0x0400, CRC(9e2bbb45) SHA1(be60d7330a160e15a8a822aa791aed3060b3b1db) )
- ROM_LOAD_NIB_HIGH( "316-0028.u77", 0x0400, 0x0400, CRC(597ae441) SHA1(8d3af5e64e838a57057d46f97a7b1c1037c1a0cf) )
- ROM_LOAD_NIB_LOW ( "316-0026.u64", 0x0800, 0x0400, CRC(61cc0802) SHA1(7173920f38188a1d1637cb2cb48e31cdd03a194e) )
- ROM_LOAD_NIB_HIGH( "316-0023.u52", 0x0800, 0x0400, CRC(9244b613) SHA1(6587035ec22d90194cdc3efaed3571a1ab975e1c) )
- ROM_LOAD_NIB_LOW ( "316-0031.u90", 0x0c00, 0x0400, CRC(861ffed1) SHA1(14e0a6a13726052000477c3586d99486167b8812) )
- ROM_LOAD_NIB_HIGH( "316-0029.u78", 0x0c00, 0x0400, CRC(53178634) SHA1(d8c4b70c3ab5144938ca0989300ad68e48391490) )
- ROM_LOAD_NIB_LOW ( "316-0027.u65", 0x1000, 0x0400, CRC(4eecfc70) SHA1(1a1f6cc5da6df91e9e9016def65184201c3d2672) )
- ROM_LOAD_NIB_HIGH( "316-0024.u53", 0x1000, 0x0400, CRC(a9f55883) SHA1(78bfbc76f84657d32eb1b8072186b403729ea614) )
- ROM_LOAD_NIB_LOW ( "316-0049.u91", 0x1400, 0x0400, CRC(dc7eff35) SHA1(1915e92c09cba5868bd2e73ad395e19ddf47a3de) )
- ROM_LOAD_NIB_HIGH( "316-0048.u79", 0x1400, 0x0400, CRC(6e700621) SHA1(2b8db1cbbaf7808d4bf446435bbbbfc4d7761db8) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0013.u27", 0x0000, 0x0020, CRC(690ef530) SHA1(6c0de3fa87a341cd378fefb8e06bf7918db9a074) ) /* control PROM */
- ROM_LOAD( "316-0014.u28", 0x0020, 0x0020, CRC(7b7a8492) SHA1(6ba8d891cc6eb0dd80051377b6b832e8894655e7) ) /* sequence PROM */
-ROM_END
-
-/* Fully working PCB set from my full-size Sub Hunter upright machine.
-
-Essentally this pcb set is a Taito-made license of
-'Depthcharge' by Gremlin.
-
-PCB markings are:
-- DP070001 / DPN00001 (main) (paper label DP80)
-- DP070002 / DPN00002 (sound) (paper label DP80)
-Serial number 430229
-
-12x program Proms were harris 7643
-2x gfx proms were Harris 7603 */
-
-ROM_START( subhunt )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD_NIB_LOW ( "dp04.u63", 0x0000, 0x0400, CRC(0ace1aef) SHA1(071256dd63e2e449093a65a4c9b006be5e17b786) )
- ROM_LOAD_NIB_HIGH( "dp01.u51", 0x0000, 0x0400, CRC(da9e835b) SHA1(505c969b479aeab11bb6a21ef06837280846d90a) )
- ROM_LOAD_NIB_LOW ( "dp10.u89", 0x0400, 0x0400, CRC(de752f20) SHA1(513a92554d14a09d6b80ba8017d161c7cda9ed8c) )
- ROM_LOAD_NIB_HIGH( "316-0028.u77", 0x0400, 0x0400, CRC(597ae441) SHA1(8d3af5e64e838a57057d46f97a7b1c1037c1a0cf) ) // dp07.u77
- ROM_LOAD_NIB_LOW ( "dp05.u64", 0x0800, 0x0400, CRC(1c0530cf) SHA1(b1f2b1038ee063533669341f1a71755eecc2e1a9) )
- ROM_LOAD_NIB_HIGH( "316-0023.u52", 0x0800, 0x0400, CRC(9244b613) SHA1(6587035ec22d90194cdc3efaed3571a1ab975e1c) ) // dp02.u52
- ROM_LOAD_NIB_LOW ( "dp11.u90", 0x0c00, 0x0400, CRC(0007044a) SHA1(c8d7c693e3059ff020563336fe712c234e94b8f9) )
- ROM_LOAD_NIB_HIGH( "dp08.u78", 0x0c00, 0x0400, CRC(4d4e3ec8) SHA1(a0d5392fe5795cc6bf7373f194186506283c947c) )
- ROM_LOAD_NIB_LOW ( "dp06.u65", 0x1000, 0x0400, CRC(63e1184b) SHA1(91934cb041365dabdc58a831312577fdb0dc923b) )
- ROM_LOAD_NIB_HIGH( "dp03.u53", 0x1000, 0x0400, CRC(d70dbfd8) SHA1(0183a6b1ffd87a9e28588a7a9aa18aeb003560f0) )
- ROM_LOAD_NIB_LOW ( "dp12.u91", 0x1400, 0x0400, CRC(170d7718) SHA1(4348e4e2dbb1edd9a4228fd3ccef58c50f1ae129) )
- ROM_LOAD_NIB_HIGH( "dp09.u79", 0x1400, 0x0400, CRC(97466803) SHA1(f04ba4a1a960836974a85832596fc3a92a711094) )
-
- ROM_REGION( 0x0040, "user1", 0 )
- ROM_LOAD( "316-0013.u27", 0x0000, 0x0020, CRC(690ef530) SHA1(6c0de3fa87a341cd378fefb8e06bf7918db9a074) ) /* dp13.u27 - control PROM */
- ROM_LOAD( "316-0014.u28", 0x0020, 0x0020, CRC(7b7a8492) SHA1(6ba8d891cc6eb0dd80051377b6b832e8894655e7) ) /* dp14.u28 - sequence PROM */
-ROM_END
-
-
-ROM_START( safari )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "316-0066.u48", 0x0000, 0x0400, CRC(2a26b098) SHA1(a16b04110fb142cec01c10460b14ec0c4e8d99af) )
- ROM_LOAD( "316-0065.u47", 0x0400, 0x0400, CRC(b776f7db) SHA1(7332d1b18e1b199d87367182f185abafd9ad0bb1) )
- ROM_LOAD( "316-0064.u46", 0x0800, 0x0400, CRC(19d8c196) SHA1(219dca308a4f917617cfe291580eb23fc2cb4687) )
- ROM_LOAD( "316-0063.u45", 0x0c00, 0x0400, CRC(028bad25) SHA1(94120f197c15705d9447d4615b82e31b61672f89) )
- ROM_LOAD( "316-0062.u44", 0x1000, 0x0400, CRC(504e0575) SHA1(069390941a0d79d623dce816fefef4d52b6e929f) )
- ROM_LOAD( "316-0061.u43", 0x1400, 0x0400, CRC(d4c528e0) SHA1(8b28b70f4cdb12189bb7526d70e4df849a4b9c42) )
- ROM_LOAD( "316-0060.u42", 0x1800, 0x0400, CRC(48c7b0cc) SHA1(26f757927212a01b2682ab520dd3b26a5524bdc3) )
- ROM_LOAD( "316-0059.u41", 0x1c00, 0x0400, CRC(3f7baaff) SHA1(5f935cb2212718226cca10f4bcb28a5fdde109c7) )
- ROM_LOAD( "316-0058.u40", 0x2000, 0x0400, CRC(0d5058f1) SHA1(00fd39a058e206b1bc5669438ab9670fa4db1921) )
- ROM_LOAD( "316-0057.u39", 0x2400, 0x0400, CRC(298e8c41) SHA1(b9b6bc84d2531c85e4529c910d6e97ea83650ce3) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( safaria ) // bootleg board, but possibly a legit alt revision
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "hu1.22c", 0x0000, 0x0400, CRC(f27d5961) SHA1(9780e9659746c959206b8700598cfb3925ae7938) )
- ROM_LOAD( "hu2.20c", 0x0400, 0x0400, CRC(11a9cb59) SHA1(5132151a97146d973292b15284e4d58de9ee7cc6) )
- ROM_LOAD( "hu3.19c", 0x0800, 0x0400, CRC(4fe746cb) SHA1(b4b6eac78dd9a76c102994990c219ae832442cc1) )
- ROM_LOAD( "hu4.17c", 0x0c00, 0x0400, CRC(f0bad948) SHA1(5dda4513e96cfb0b6535184c611ac5832afbbfde) )
- ROM_LOAD( "hu5.16c", 0x1000, 0x0400, CRC(d994f98a) SHA1(a51db8b8975f1fa7ca3bae56d4d929b8d3d7bfb7) )
- ROM_LOAD( "hu6.15c", 0x1400, 0x0400, CRC(174b5964) SHA1(dfa88aaa572d4d46ffe3c8f247dbc370e624f5c4) )
- ROM_LOAD( "hu7.13c", 0x1800, 0x0400, CRC(3e94caa1) SHA1(520ae5924b970126c07368bba900b7603997c5cc) )
- ROM_LOAD( "hu8.12c", 0x1c00, 0x0400, CRC(a8a5dca0) SHA1(2424d9e3b4ed2c73b14ec0c26d63453fb4f7f6c2) )
- ROM_LOAD( "hu9.11c", 0x2000, 0x0400, CRC(0ace0939) SHA1(34704b836445628341fb6a77b1ebd47a76c5640d) )
- ROM_LOAD( "hu10.9c", 0x2400, 0x0400, CRC(9dae33ca) SHA1(91472e3b60ff055724ae574b182a450d2a00081c) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "32.21e", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "31.22e", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-
-ROM_START( frogs )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "316-119a.u48", 0x0000, 0x0400, CRC(b1d1fce4) SHA1(572015bede39b14526e93919b63b6d01ae38a09a) )
- ROM_LOAD( "316-118a.u47", 0x0400, 0x0400, CRC(12fdcc05) SHA1(06c6d17edec9fb03f46514c1f6c5d8c420ef4d05) )
- ROM_LOAD( "316-117a.u46", 0x0800, 0x0400, CRC(8a5be424) SHA1(ed8a09b4318929b83118f87e2da601028349f2bd) )
- ROM_LOAD( "316-116b.u45", 0x0c00, 0x0400, CRC(09b82619) SHA1(1063e268138b4ff6a8037d8d1a0816c34bbac690) )
- ROM_LOAD( "316-115a.u44", 0x1000, 0x0400, CRC(3d4e4fa8) SHA1(4655c4922328837af410cb298e0c296ae0099591) )
- ROM_LOAD( "316-114a.u43", 0x1400, 0x0400, CRC(04a21853) SHA1(1e84eb84d5770f54925055b748ab9ca2aa72c1cc) )
- ROM_LOAD( "316-113a.u42", 0x1800, 0x0400, CRC(02786692) SHA1(8a8937fd92beecf1119fe3f6b41a700725412aa1) )
- ROM_LOAD( "316-112a.u41", 0x1c00, 0x0400, CRC(0be2a058) SHA1(271f3b60cba422fff7e782fda198c3897c275b46) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-/*
-
-N-Sub by SEGA 1979
-
-97399-P-16 N-SUB UPRIGHT
-
-Label says : U41(U20) ~ U48(U27)
- EPR EPR
- 268 275
-
-and also : PR69
-
-Despite what the label says, here is correct name and position from a real pcb !
-
-Epr-268.u48
-Epr-269.u47
-Epr-270.u46
-Epr-271.u45
-Epr-272.u44
-Epr-273.u43
-Epr-274.u42
-Epr-275.u41
-Pr-69.u11
-
-This game use a separate "daughter" board for gradient and starfield ref: 97269-P-B
-with 3 proms on it : PR-02 type MMI 6336-1j, PR-56 type MB7054 and PR-57 type MB7054
-
-*/
-
-ROM_START( nsub )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-268.u48", 0x0000, 0x0800, CRC(485b4704) SHA1(d3989cfe5f8d723bc1a6be185614d138666912d2) )
- ROM_LOAD( "epr-269.u47", 0x0800, 0x0800, CRC(32774ac9) SHA1(0a2c209f627a8d703c02e75c361c363272d1f435) )
- ROM_LOAD( "epr-270.u46", 0x1000, 0x0800, CRC(af7ca40a) SHA1(c0f5732079a51979758f3a159084b84be8b2ad3b) )
- ROM_LOAD( "epr-271.u45", 0x1800, 0x0800, CRC(3f9c180b) SHA1(7438454a348b36d1f5ea59f179f715b827244142) )
- ROM_LOAD( "epr-272.u44", 0x2000, 0x0800, CRC(d818aa51) SHA1(1d3ca550f597c4924b9a805fa955a4a8ff557769) )
- ROM_LOAD( "epr-273.u43", 0x2800, 0x0800, CRC(03a6f12a) SHA1(1eefd4607a718c291b29f1b0a6adf0367840b242) )
- ROM_LOAD( "epr-274.u42", 0x3000, 0x0800, CRC(d69eb098) SHA1(fd3e67d18b5891aa65aab5967d49810c5d88dcee) )
- ROM_LOAD( "epr-275.u41", 0x3800, 0x0800, CRC(1c7d90cc) SHA1(8483825d9811c925407328836ae10f98b011c3dd) )
-
- ROM_REGION( 0x0020, "proms", ROMREGION_INVERT )
- ROM_LOAD( "pr-69.u11", 0x0000, 0x0020, CRC(c94dd091) SHA1(f88cfb033ff83adb7375652be1fa32ba489d8418) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "pr33.u82", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "pr34.u83", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( sspaceat )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "155.u27", 0x0000, 0x0400, CRC(ba7bb86f) SHA1(030e6f69d3ae00456fc02d1dc0fb915a81689df4) )
- ROM_LOAD( "156.u26", 0x0400, 0x0400, CRC(0b3a491c) SHA1(19cef304bb91f745797f27adbb9d334876d4fb78) )
- ROM_LOAD( "157.u25", 0x0800, 0x0400, CRC(3d3fac3b) SHA1(b22c2517af7c7077032d1b83e4628173d168e3ca) )
- ROM_LOAD( "158.u24", 0x0c00, 0x0400, CRC(843b80f6) SHA1(b61466d3546f1e0759ec84e841664cbe4d2a0a4d) )
- ROM_LOAD( "159.u23", 0x1000, 0x0400, CRC(1eacf60d) SHA1(52d5bfad4357619a9bdc7435e66ed5accadc6401) )
- ROM_LOAD( "160.u22", 0x1400, 0x0400, CRC(e61d482f) SHA1(d41550af1cb244adddff5c151fe2c140591c58ff) )
- ROM_LOAD( "161.u21", 0x1800, 0x0400, CRC(eb5e0993) SHA1(745135f50e50a8516a529a3caff27ee2580227f1) )
- ROM_LOAD( "162.u20", 0x1c00, 0x0400, CRC(5f84d550) SHA1(4fa2c48f843ad49b55598b2757e0e4e1e117aacb) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u65", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u66", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( sspaceat2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "81.u48", 0x0000, 0x0400, CRC(3e4b29f6) SHA1(ec99b7e156bad1f9f900fdebb289f0c9abf08647) )
- ROM_LOAD( "58.u47", 0x0400, 0x0400, CRC(176adb80) SHA1(9798d3b2d59fe4b7d26927b444746f135f0f0d8e) )
- ROM_LOAD( "59.u46", 0x0800, 0x0400, CRC(b2400d05) SHA1(12011fd91bbdfc94b02f9089be54d7cbb8dedece) )
- ROM_LOAD( "150.u45", 0x0c00, 0x0400, CRC(cf9bfa65) SHA1(3521bd2608705a83bd8d3daa0239708d2a8755e3) )
- ROM_LOAD( "151.u44", 0x1000, 0x0400, CRC(064530f1) SHA1(8278b271ae7d67e0b5433aefb150fd743ce6558a) )
- ROM_LOAD( "152.u43", 0x1400, 0x0400, CRC(c65c30fe) SHA1(849a0d46575ad0c72aceef28daa27911ec35181a) )
- ROM_LOAD( "153.u42", 0x1800, 0x0400, CRC(ea70c7f6) SHA1(656d113636224ec9c30982daa6a43877bc6ee58f) )
- ROM_LOAD( "156a.u41", 0x1c00, 0x0400, CRC(9029d2ce) SHA1(57d21650bfe9d76d874661443768213321acc56b) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u65", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u66", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( sspaceat3 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-115.u48", 0x0000, 0x0400, CRC(9bc36d80) SHA1(519b3f810b133ac82f066851626b73460956a807) )
- ROM_LOAD( "epr-116.u47", 0x0400, 0x0400, CRC(2c2750b3) SHA1(eab297678e6ee45d6f723d8ff7e6a29086ad4c78) )
- ROM_LOAD( "epr-117.u46", 0x0800, 0x0400, CRC(fa7c2cc0) SHA1(26e4f2c8599d16f1c7ec4bfb0a5a3dc709901045) )
- ROM_LOAD( "epr-118.u45", 0x0c00, 0x0400, CRC(273884ae) SHA1(9efae4acb9ba9bdef0fb58c2a16e0092c6c1a2ba) )
- ROM_LOAD( "epr-119.u44", 0x1000, 0x0400, CRC(1b53c6de) SHA1(7d8f3f5026e7d1a3b78a54c9c1acbb50a4f02c94) )
- ROM_LOAD( "epr-120.u43", 0x1400, 0x0400, CRC(60add585) SHA1(01d78d5cbad680b8ad7eb39f53eefad148d48ee2) )
- ROM_LOAD( "epr-121.u42", 0x1800, 0x0400, CRC(0979f72b) SHA1(244e80552b905df5484bb52100b2e46859fd2cf6) )
- ROM_LOAD( "epr-122.u41", 0x1c00, 0x0400, CRC(45cb3486) SHA1(0e9d5e8dd43643588989354847483283487b9a75) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u65", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u66", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( sspaceatc )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "139.u27", 0x0000, 0x0400, CRC(9f2112fc) SHA1(89c129ef1a95c5934a7c775994aafc91911b0051) )
- ROM_LOAD( "140.u26", 0x0400, 0x0400, CRC(ddbeed35) SHA1(48b33d7b35457675b545ca42c8afd79b86ce6035) )
- ROM_LOAD( "141.u25", 0x0800, 0x0400, CRC(b159924d) SHA1(320bbe156493f30a573ff548398f8f469e261e21) )
- ROM_LOAD( "142.u24", 0x0c00, 0x0400, CRC(f2ebfce9) SHA1(4792bca4a331bc41fd850760e6260e933063398f) )
- ROM_LOAD( "143.u23", 0x1000, 0x0400, CRC(bff34a66) SHA1(8a7490a13b9526c45f3afee1eee59d2b0096105f) )
- ROM_LOAD( "144.u22", 0x1400, 0x0400, CRC(fa062d58) SHA1(76e15e1d29b0e22ab310381d3d9faddf8912b205) )
- ROM_LOAD( "145.u21", 0x1800, 0x0400, CRC(7e950614) SHA1(0fe4de728ca550f0ef904b2d7d84fb2d56648401) )
- ROM_LOAD( "146.u20", 0x1c00, 0x0400, CRC(8ba94fbc) SHA1(371702c2d489fa0f1959734ebd35af45006712fa) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u65", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u66", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( headon )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "316-163a.u27", 0x0000, 0x0400, CRC(4bb51259) SHA1(43411ffda3fe03b1d694f70791b0bab5786759c0) )
- ROM_LOAD( "316-164a.u26", 0x0400, 0x0400, CRC(aeac8c5f) SHA1(ef9ad63d13076a559ba12c6421ad61de21dd4c90) )
- ROM_LOAD( "316-165a.u25", 0x0800, 0x0400, CRC(f1a0cb72) SHA1(540b30225ef176c416ea5b142fe7dbb67b7a78fb) )
- ROM_LOAD( "316-166c.u24", 0x0c00, 0x0400, CRC(65d12951) SHA1(25fb0da2ea62a2b1ec214ce5c599a183e121b98a) )
- ROM_LOAD( "316-167c.u23", 0x1000, 0x0400, CRC(2280831e) SHA1(128e7f7444440f113b3395dcb333281e0e8bef93) )
- ROM_LOAD( "316-192a.u22", 0x1400, 0x0400, CRC(ed4666f2) SHA1(a12c22bfbb027eab3181627804b69129e89bd22c) )
- ROM_LOAD( "316-193a.u21", 0x1800, 0x0400, CRC(37a1df4c) SHA1(45e1670351f0ef92ef4d9100b0e60ae598df4275) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-
-ROM_START( headon1 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "316-163a.u27", 0x0000, 0x0400, CRC(4bb51259) SHA1(43411ffda3fe03b1d694f70791b0bab5786759c0) )
- ROM_LOAD( "316-164a.u26", 0x0400, 0x0400, CRC(aeac8c5f) SHA1(ef9ad63d13076a559ba12c6421ad61de21dd4c90) )
- ROM_LOAD( "316-165a.u25", 0x0800, 0x0400, CRC(f1a0cb72) SHA1(540b30225ef176c416ea5b142fe7dbb67b7a78fb) )
- ROM_LOAD( "316-166b.u24", 0x0c00, 0x0400, CRC(1c59008a) SHA1(430ecc3c2422d61af35eab77b96a480254572cc6) )
- ROM_LOAD( "316-167a.u23", 0x1000, 0x0400, CRC(069e839e) SHA1(e1ed68573c13c0c88a2bb7b2096860523de952c0) )
- ROM_LOAD( "316-192a.u22", 0x1400, 0x0400, CRC(ed4666f2) SHA1(a12c22bfbb027eab3181627804b69129e89bd22c) )
- ROM_LOAD( "316193a1.u21", 0x1800, 0x0400, CRC(d3782c1d) SHA1(340782374b7015a0aaf98aeb6503b759e199a58a) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-/*
-Head-On N (Nintendo)
-
-EPROMS were all Intel 2708's.
-
-Bi-polar proms were Signetics 82s123's
-
-prom B6 = lines on screen when removed, address decoding?
-prom G2 = white screen when removed, colour prom?
-prom F2 = blank screen, audio screeches - no booting...
-
-CPU clock pin 6 = 1933520 hz
-
-PCBs:
-THO CPU PI-500890
-THO VIDEO PI-500891
-*/
-
-ROM_START( headonn )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "rom.e4", 0x0000, 0x0400, CRC(a6cd13fc) SHA1(0fda6b06e7864feae8e4e94cf17f50c9c033aa39) )
- ROM_LOAD( "rom.f4", 0x0400, 0x0400, CRC(d1cd498f) SHA1(ded1a97c7f76af195b247135469b84c25d4096c4) )
- ROM_LOAD( "rom.g4", 0x0800, 0x0400, CRC(0fb02db2) SHA1(6e9ad34a205838339a76ba6eeaf02cf663c2b750) )
- ROM_LOAD( "rom.h4", 0x0c00, 0x0400, CRC(38db2d02) SHA1(a86c4208154f65a83f55c1fbfd041b56ebd11106) )
- ROM_LOAD( "rom.i4", 0x1000, 0x0400, CRC(a04d8522) SHA1(58d6c3168ac7227e78ff699449008dbf999ea794) )
- ROM_LOAD( "rom.j4", 0x1400, 0x0400, CRC(52bd2151) SHA1(4f6bc10dabadf65f638aed46b0f0a1ba00e83afd) )
- ROM_LOAD( "rom.k4", 0x1800, 0x0400, CRC(9488a8b3) SHA1(a7e8bc341c839eba3b84af78f19cefafe91d42e3) )
- ROM_LOAD( "rom.l4", 0x1c00, 0x0400, CRC(a37f0be0) SHA1(4548cf05256764588feeade29368f5abfbf75a7d) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "prom.g2", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "prom.b6", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) ) /* control PROM */
- ROM_LOAD( "prom.f2", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( headonmz )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "0.bin", 0x0000, 0x0400, CRC(1febc85a) SHA1(7cc422d6819d5a2507467bdf91f82e76b0d12643) ) // this ROM was loose from the rest, but should be correct..
- ROM_LOAD( "1.bin", 0x0400, 0x0400, CRC(aeac8c5f) SHA1(ef9ad63d13076a559ba12c6421ad61de21dd4c90) )
- ROM_LOAD( "2.bin", 0x0800, 0x0400, CRC(a5d0e0f5) SHA1(025a64a9bd95ceef93009676a0679008c186223b) )
- ROM_LOAD( "3.bin", 0x0c00, 0x0400, CRC(721f3b03) SHA1(69255d9fd3628c3ab46856aaad3d2203d487a983) )
- ROM_LOAD( "4.bin", 0x1000, 0x0400, CRC(82c73635) SHA1(210f6868a4b63340d01ad660b202338b9638e422) )
- ROM_LOAD( "5.bin", 0x1400, 0x0400, CRC(17c04c3a) SHA1(819692f37a25a7fe73cd62d781eaf5432f5d5b8a) )
- ROM_LOAD( "6.bin", 0x1800, 0x0400, CRC(88e43434) SHA1(b2550f98df3b4a6c2fd6c5621e289367587352f6) )
-
- // assuming to be the same
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "10303.3e", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "10302.2e", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-/*
-Head On (Sidam) Notes
-
-Board made by Sidam, but no Sidam copyright notice
-
----CPU:
-
-1x Z80CPU (main)
-1x oscillator 15.468MHz
-
----ROMs:
-
-7x F2708
-2x N82S123N
-
----Note:
-
-1x 22x2 edge connector
-1x trimmer (volume)
-*/
-
-ROM_START( headons )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "0.1a", 0x0000, 0x0400, CRC(4bb51259) SHA1(43411ffda3fe03b1d694f70791b0bab5786759c0) )
- ROM_LOAD( "1.3a", 0x0400, 0x0400, CRC(aeac8c5f) SHA1(ef9ad63d13076a559ba12c6421ad61de21dd4c90) )
- ROM_LOAD( "2.4a", 0x0800, 0x0400, CRC(f1a0cb72) SHA1(540b30225ef176c416ea5b142fe7dbb67b7a78fb) )
- ROM_LOAD( "3.6a", 0x0c00, 0x0400, CRC(461c2658) SHA1(561ef24a20fb2cc3c05d836c06026069400be085) )
- ROM_LOAD( "4.8a", 0x1000, 0x0400, CRC(79fc7f31) SHA1(835fbaa2bac8b955bc8fe5e932705c67e10308ac) )
- ROM_LOAD( "5.9a", 0x1400, 0x0400, CRC(ed4666f2) SHA1(a12c22bfbb027eab3181627804b69129e89bd22c) )
- ROM_LOAD( "6.11a", 0x1800, 0x0400, CRC(7a709d68) SHA1(c1f0178c7a8cb39948e52e91a841401cfd932271) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-/* this one is the same PCB but does show the Sidam copyright */
-ROM_START( headonsa )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "10305.0.9a", 0x0000, 0x0400, CRC(9a37407b) SHA1(3cd3dbd13c76d01b7541307de92f69d6779046f5) )
- ROM_LOAD( "10305.1.8a", 0x0400, 0x0400, CRC(aeac8c5f) SHA1(ef9ad63d13076a559ba12c6421ad61de21dd4c90) )
- ROM_LOAD( "10305.2.7a", 0x0800, 0x0400, CRC(f1a0cb72) SHA1(540b30225ef176c416ea5b142fe7dbb67b7a78fb) )
- ROM_LOAD( "10305.3.6a", 0x0c00, 0x0400, CRC(ae33fcc4) SHA1(7e0a27f1f502c5293f294875b49186e800a2c749) )
- ROM_LOAD( "10305.4.5a", 0x1000, 0x0400, CRC(e87f6fd8) SHA1(7fc1ade66c6783861ab310790f023b02a8db7e08) )
- ROM_LOAD( "10305.5.4a", 0x1400, 0x0400, CRC(387e2eba) SHA1(9feca874e795710884d17ca5122280c30c6b6af0) )
- ROM_LOAD( "10305.6b.3a", 0x1800, 0x0400, CRC(18749071) SHA1(6badb5cf6f6017d884492e9ef16195f1112d23b5) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "10303.3e", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "10302.2e", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-
-ROM_START( headon2s )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "10304.0.9a", 0x0000, 0x0400, CRC(256a1fc8) SHA1(2ff621d7160e1420fd2cd9ad62d134e22b1650b3) )
- ROM_LOAD( "10304.1.8a", 0x0400, 0x0400, CRC(61c47b15) SHA1(47619bd51fcaf47dd72e940c474f310c9287f2f4) )
- ROM_LOAD( "10304.2.7a", 0x0800, 0x0400, CRC(a6c268d4) SHA1(3b6c27f700ea4474f5354bbdcce82883c2e7e6e9) )
- ROM_LOAD( "10304.3.6a", 0x0c00, 0x0400, CRC(17a09f24) SHA1(0cb40ec185f2ee3a26e943d84e8e2834d5f9d3ed) )
- ROM_LOAD( "10304.4.5a", 0x1000, 0x0400, CRC(9af8a2e0) SHA1(92f45bc593fabf7a30615820b4b91677071bc67e) )
- ROM_LOAD( "10304.5.4a", 0x1400, 0x0400, CRC(6975286c) SHA1(bcb5af18a991b9898fe28e69575c89c7b02d762d) )
- ROM_LOAD( "10304.6.3a", 0x1800, 0x0400, CRC(06fbcdce) SHA1(821b501dbf59c45d5e03afa3c786fca727da9cd6) )
- ROM_LOAD( "10304.7b.2a", 0x1c00, 0x0400, CRC(3588fc8f) SHA1(4529b79a1b654591ee2e879922a5377edc1faee5) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "10303.3e", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "10302.2e", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-
-/*
-Super Crash notes
-
----CPU:
-
-1x MK3880N-Z80CPU
-1x oscillator 14MHz
-
----ROMs:
-
-3x TMS2716JL
-1x FA2708
-2x MMI6331
-
----Note:
-
-1x 22x2 edge connector
-1x 4 switches dip
-1x trimmer (volume)
-*/
-
-ROM_START( supcrash )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1-2-scrash.bin", 0x0000, 0x0800, CRC(789a8b73) SHA1(ce0b844729fc4d46ddc82635c8d5a49aa88a3797) )
- ROM_LOAD( "3-4-scrash.bin", 0x0800, 0x0800, CRC(7a310527) SHA1(384c7ddc8da4282b705ad387ae3946a30f0fd05b) )
- ROM_LOAD( "5-6-scrash.bin", 0x1000, 0x0800, CRC(62d33c09) SHA1(ade49f417380f64212491f6be16de39c0c00a364) )
- ROM_LOAD( "7-8-scrash.bin", 0x1800, 0x0400, CRC(0f8ea335) SHA1(cf2d6cd54dbf689bc0f23aa908bffb0766e8bbd3) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-/*
-This PCB is a bootleg of Sidam's Head On bootleg manufactured in Torino (Italy) by Fraber.
-*/
-
-ROM_START( hocrash )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1-0s.0s", 0x0000, 0x0400, CRC(4bb51259) SHA1(43411ffda3fe03b1d694f70791b0bab5786759c0) )
- ROM_LOAD( "2-0r.0r", 0x0400, 0x0400, CRC(aeac8c5f) SHA1(ef9ad63d13076a559ba12c6421ad61de21dd4c90) )
- ROM_LOAD( "3-0p.0p", 0x0800, 0x0400, CRC(f1a0cb72) SHA1(540b30225ef176c416ea5b142fe7dbb67b7a78fb) )
- ROM_LOAD( "4-0m.0m", 0x0c00, 0x0400, CRC(fd67208d) SHA1(539b0db174aef66ac7d8137e4eca4e3237bc7a82) )
- ROM_LOAD( "5-0l.0l", 0x1000, 0x0400, CRC(069e839e) SHA1(e1ed68573c13c0c88a2bb7b2096860523de952c0) )
- ROM_LOAD( "6-0k.0k", 0x1400, 0x0400, CRC(11960190) SHA1(f3908fece95b7e5468ae4bba5a9f2d2482ed6656) )
- ROM_LOAD( "7-0j.0j", 0x1800, 0x0400, CRC(d3782c1d) SHA1(340782374b7015a0aaf98aeb6503b759e199a58a) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( headon2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "u27.bin", 0x0000, 0x0400, CRC(fa47d2fb) SHA1(b3208f5bce228c453bdafbc9c1f2c8e1bd920d32) )
- ROM_LOAD( "u26.bin", 0x0400, 0x0400, CRC(61c47b15) SHA1(47619bd51fcaf47dd72e940c474f310c9287f2f4) )
- ROM_LOAD( "u25.bin", 0x0800, 0x0400, CRC(bb16db92) SHA1(f57dfbe52b0e545c7c889ac846dc7281d28f2698) )
- ROM_LOAD( "u24.bin", 0x0c00, 0x0400, CRC(17a09f24) SHA1(0cb40ec185f2ee3a26e943d84e8e2834d5f9d3ed) )
- ROM_LOAD( "u23.bin", 0x1000, 0x0400, CRC(0024895e) SHA1(60f81c383f1541555c26f7cf111a12a34f7f4f3e) )
- ROM_LOAD( "u22.bin", 0x1400, 0x0400, CRC(f798304d) SHA1(55526c6daead9b74a88e8bc0311155aa41a93210) )
- ROM_LOAD( "u21.bin", 0x1800, 0x0400, CRC(4c19dd40) SHA1(0bdfed47594c7aa5ff655b507350fc6a912b6855) )
- ROM_LOAD( "u20.bin", 0x1c00, 0x0400, CRC(25887ff2) SHA1(67cfb5ac93902b4c603f02c876c021ff453e5f0e) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u65", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-
-/*
- Car 2 (Headon 2)
-
- 1x Z80
- 1x TDA2002 (sound)
- 2x NE556A (sound)
- 1x oscillator 15468.48
-*/
-
-ROM_START( car2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "car2.0", 0x0000, 0x0400, CRC(37e031f9) SHA1(b8aee0db50507410e5be70d3a8574b7e9dd4a959) )
- ROM_LOAD( "car2.1", 0x0400, 0x0400, CRC(61c47b15) SHA1(47619bd51fcaf47dd72e940c474f310c9287f2f4) )
- ROM_LOAD( "car2.2", 0x0800, 0x0400, CRC(a6c268d4) SHA1(3b6c27f700ea4474f5354bbdcce82883c2e7e6e9) )
- ROM_LOAD( "car2.3", 0x0c00, 0x0400, CRC(17a09f24) SHA1(0cb40ec185f2ee3a26e943d84e8e2834d5f9d3ed) )
- ROM_LOAD( "car2.4", 0x1000, 0x0400, CRC(9af8a2e0) SHA1(92f45bc593fabf7a30615820b4b91677071bc67e) )
- ROM_LOAD( "car2.5", 0x1400, 0x0400, CRC(6975286c) SHA1(bcb5af18a991b9898fe28e69575c89c7b02d762d) )
- ROM_LOAD( "car2.6", 0x1800, 0x0400, CRC(4c19dd40) SHA1(0bdfed47594c7aa5ff655b507350fc6a912b6855) )
- ROM_LOAD( "car2.7", 0x1c00, 0x0400, CRC(41a93920) SHA1(e63df556f998b5e5d99d69a9fd200aaf0403f3f7) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u65", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( invho2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "271b.u33", 0x0000, 0x0400, CRC(44356a73) SHA1(6ff1050d84b6b7a006762c35e0b3d2befb0f90d6) )
- ROM_LOAD( "272b.u32", 0x0400, 0x0400, CRC(bd251265) SHA1(134f081c62173fab80b46918e4a073cf5f72df77) )
- ROM_LOAD( "273b.u31", 0x0800, 0x0400, CRC(2fc80cd9) SHA1(2790fb45233c8d6e74a56fcdfde1c468926d44d2) )
- ROM_LOAD( "274b.u30", 0x0c00, 0x0400, CRC(4fac4210) SHA1(9bb2fe888edab7e52a180d7f4d7fdab17392a736) )
- ROM_LOAD( "275b.u29", 0x1000, 0x0400, CRC(85af508e) SHA1(4b71c9583fe3b16a24f05d685d1edbd53ff81f81) )
- ROM_LOAD( "276b.u28", 0x1400, 0x0400, CRC(e305843a) SHA1(bb5113d3e0a4ca81e055da9c03755d0e6270d927) )
- ROM_LOAD( "277b.u27", 0x1800, 0x0400, CRC(b6b4221e) SHA1(8cfeff5ca7d29d973409df7f422428411462eab6) )
- ROM_LOAD( "278b.u26", 0x1c00, 0x0400, CRC(74d42250) SHA1(023227d314ec91c9b508b7fd60f163414165c25b) )
- ROM_LOAD( "279b.u8", 0x2000, 0x0400, CRC(8d30a3e0) SHA1(ac8cfca1b334d95e209bcfceeeeca31c03faecc8) )
- ROM_LOAD( "280b.u7", 0x2400, 0x0400, CRC(b5ee60ec) SHA1(dbc682b5770755fed8c04ef0f0311b2850228236) )
- ROM_LOAD( "281b.u6", 0x2800, 0x0400, CRC(21a6d4f2) SHA1(e8c8b263ffe53d5af50a561d038bfa96136767ad) )
- ROM_LOAD( "282b.u5", 0x2c00, 0x0400, CRC(07d54f8a) SHA1(f99af42ec24938cdd19c0ff7ac2b9e9882dc3655) )
- ROM_LOAD( "283b.u4", 0x3000, 0x0400, CRC(bdbe7ec1) SHA1(45e08c533acc538d88a0580535325b9ff1a60f2f) )
- ROM_LOAD( "284b.u3", 0x3400, 0x0400, CRC(ae9e9f16) SHA1(7f708ce49f34582d53abad0d811265dd28af899f) )
- ROM_LOAD( "285b.u2", 0x3800, 0x0400, CRC(8dc3ec34) SHA1(1f70027ad3b781244b672ee77225e32589c61e46) )
- ROM_LOAD( "286b.u1", 0x3c00, 0x0400, CRC(4bab9ba2) SHA1(a74881acf222466deb9c9e35dff532af6b10a7fc) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0287.u49", 0x0000, 0x0020, CRC(d4374b01) SHA1(85ea0915f23571358e2e0c2b66b968e7b93f4bd6) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( sspacaho )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-0001.bin", 0x0000, 0x0800, CRC(ba62f57a) SHA1(7cfc079c6afe317b6c389c06802fdf1f83858510) )
- ROM_LOAD( "epr-0002.bin", 0x0800, 0x0800, CRC(94b3c59c) SHA1(e6ee1c25fb45d03d514421c231d794f9da05f47f) )
- ROM_LOAD( "epr-0003.bin", 0x1000, 0x0800, CRC(df13aef2) SHA1(61d210eeb59fe132e14fdd7eb6a39ebc55168097) )
- ROM_LOAD( "epr-0004.bin", 0x1800, 0x0800, CRC(8431e15e) SHA1(b028e718ee90f37c848e5f83494be61cb90338e2) )
- ROM_LOAD( "epr-0005.bin", 0x2000, 0x0800, CRC(eec2b6e7) SHA1(4ed830755b4d1da6111afc6c16c7c633521ccb9c) )
- ROM_LOAD( "epr-0006.bin", 0x2800, 0x0800, CRC(780e47ed) SHA1(533879b8abf0e69644fd8b784dbe9bf10cde6d9f) )
- ROM_LOAD( "epr-0007.bin", 0x3000, 0x0800, CRC(8189a2fa) SHA1(3c13a394f48adb8f7c6b8203bd0749921461ea06) )
- ROM_LOAD( "epr-0008.bin", 0x3800, 0x0800, CRC(34a64a80) SHA1(a588fae0ecaa80677887d8c95ef8896a4bdd77ee) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( samurai )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-289.u33", 0x0000, 0x0400, CRC(a1a9cb03) SHA1(1875a86ad5938295dd5db6bb045be46eba8638ba) )
- ROM_LOAD( "epr-290.u32", 0x0400, 0x0400, CRC(49fede51) SHA1(58ab1779d555281ec436ae90dcdf4ada42625892) )
- ROM_LOAD( "epr-291.u31", 0x0800, 0x0400, CRC(6503dd72) SHA1(e0a3f42418a13f38314ec6e7951cd45c686fecbc) )
- ROM_LOAD( "epr-292.u30", 0x0c00, 0x0400, CRC(179c224f) SHA1(0a202718a9c2f5f4f1553d1dccd99bebb511363f) )
- ROM_LOAD( "epr-366.u29", 0x1000, 0x0400, CRC(3df2abec) SHA1(f52182c93026de0f5e7a3c36fe4a35e386c95d0c) )
- ROM_LOAD( "epr-355.u28", 0x1400, 0x0400, CRC(b24517a4) SHA1(51d613ac21e33c70705f1731b905af72dc561dbf) )
- ROM_LOAD( "epr-367.u27", 0x1800, 0x0400, CRC(992a6e5a) SHA1(45ae4bf297d7ce52d879d3af5e26960c0dd5034c) )
- ROM_LOAD( "epr-368.u26", 0x1c00, 0x0400, CRC(403c72ce) SHA1(eaa7a56a28b393db97fd6f1a62b7592cd47060f0) )
- ROM_LOAD( "epr-369.u8", 0x2000, 0x0400, CRC(3cfd115b) SHA1(58d1d34605b75f0078eb7e61eca8d5897a8b8294) )
- ROM_LOAD( "epr-370.u7", 0x2400, 0x0400, CRC(2c30db12) SHA1(9dcf8aa5cfdda5b350fc6b70524a15f970d98d91) )
- ROM_LOAD( "epr-299.u6", 0x2800, 0x0400, CRC(87c71139) SHA1(10c273c2f6a58bba8b5891dfd851e18898b45fd1) )
- ROM_LOAD( "epr-371.u5", 0x2c00, 0x0400, CRC(761f56cf) SHA1(0d63e8b0ac7bfe9f3cd08cea68eb941b1a5a536c) )
- ROM_LOAD( "epr-301.u4", 0x3000, 0x0400, CRC(23de1ff7) SHA1(51bf437a62ee770918524c8d0e8b0e007a800021) )
- ROM_LOAD( "epr-372.u3", 0x3400, 0x0400, CRC(292cfd89) SHA1(a8131f03e8e9f5009508813445bbea559bc27726) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "pr55.clr", 0x0000, 0x0020, CRC(975f5fb0) SHA1(d5917d68ad5549fe5cc997521c3b0a5a279d2231) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( invinco )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "310a.u27", 0x0000, 0x0400, CRC(e3931365) SHA1(e34083004515ad45ddbf9ab89c34473b6c5d46fb) )
- ROM_LOAD( "311a.u26", 0x0400, 0x0400, CRC(de1a6c4a) SHA1(ca7ab7b4c77319f7923d56ad8b60d16211af19bc) )
- ROM_LOAD( "312a.u25", 0x0800, 0x0400, CRC(e3c08f39) SHA1(13c177980722559ec885565d3f889b830322f25e) )
- ROM_LOAD( "313a.u24", 0x0c00, 0x0400, CRC(b680b306) SHA1(b03a5621bdf6a0bdc79af9361a2c0cc339b50b4b) )
- ROM_LOAD( "314a.u23", 0x1000, 0x0400, CRC(790f07d9) SHA1(222e1c392c92fc547a67d96410f9a4277f3bb6cb) )
- ROM_LOAD( "315a.u22", 0x1400, 0x0400, CRC(0d13bed2) SHA1(c23d937acad2171aae8f76671843a841f62d147f) )
- ROM_LOAD( "316a.u21", 0x1800, 0x0400, CRC(88d7eab8) SHA1(272b099414b68a428f9538f0219f92569525b87c) )
- ROM_LOAD( "317a.u20", 0x1c00, 0x0400, CRC(75389463) SHA1(277ba127f322caf2486735b82bf7b96bb9e34a56) )
- ROM_LOAD( "318a.uxx", 0x2000, 0x0400, CRC(0780721d) SHA1(580aefb382702babdf8248e36330c4b22e8579c8) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0246.u44", 0x0000, 0x0020, CRC(fe4406cb) SHA1(92e2459420a7f7412f02cfaf68604fc233b0a245) ) /* color PROM */
-ROM_END
-
-ROM_START( invds )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "367.u33", 0x0000, 0x0400, CRC(e6a33eae) SHA1(16de70e8fcd093964a448a86bc89b1c607152ead) )
- ROM_LOAD( "368.u32", 0x0400, 0x0400, CRC(421554a8) SHA1(efb6759998e36322258c172aa7e8ba6416b3235f) )
- ROM_LOAD( "369.u31", 0x0800, 0x0400, CRC(531e917a) SHA1(f1d48e18f51de36d01bafab5bfa68d16a8c0192b) )
- ROM_LOAD( "370.u30", 0x0c00, 0x0400, CRC(2ad68f8c) SHA1(0ceee2d04e239856ecf18f93b5ee75d72e031f92) )
- ROM_LOAD( "371.u29", 0x1000, 0x0400, CRC(1b98dc5c) SHA1(ac8a1226405cab9d6049304163d658c5ae611c1a) )
- ROM_LOAD( "372.u28", 0x1400, 0x0400, CRC(3a72190a) SHA1(f2852b3ca5fce274ed5452d28d06a3a27fe8a94f) )
- ROM_LOAD( "373.u27", 0x1800, 0x0400, CRC(3d361520) SHA1(bf8441cd5050f643535229b4761310f7dc8a2997) )
- ROM_LOAD( "374.u26", 0x1c00, 0x0400, CRC(e606e7d9) SHA1(66efa2beda9fcc2f3cd8fc77c99c196de30d1a30) )
- ROM_LOAD( "375.u8", 0x2000, 0x0400, CRC(adbe8d32) SHA1(5c883f0053c4f8124b81c49847b00301edb9f654) )
- ROM_LOAD( "376.u7", 0x2400, 0x0400, CRC(79409a46) SHA1(12772cf3e06d5127adb16396c4589cd9a06cbce5) )
- ROM_LOAD( "377.u6", 0x2800, 0x0400, CRC(3f021a71) SHA1(ba4a3833c6f7d28c3033de77882ff7ee0b96b190) )
- ROM_LOAD( "378.u5", 0x2c00, 0x0400, CRC(49a542b0) SHA1(5aa90df413ac0498cadaff9ca805896066e0f8a8) )
- ROM_LOAD( "379.u4", 0x3000, 0x0400, CRC(ee140e49) SHA1(5c29e34afdf91b68554e678699179802616c1f94) )
- ROM_LOAD( "380.u3", 0x3400, 0x0400, CRC(688ba831) SHA1(24f977c99714a08bf14c7753d42e2744aa86c396) )
- ROM_LOAD( "381.u2", 0x3800, 0x0400, CRC(798ba0c7) SHA1(7867d107f95077c539263619155c7f3ce4ef0968) )
- ROM_LOAD( "382.u1", 0x3c00, 0x0400, CRC(8d195c24) SHA1(5c314947ba13112b4154d3be069892cca4f5da42) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0246.u44", 0x0000, 0x0020, CRC(fe4406cb) SHA1(92e2459420a7f7412f02cfaf68604fc233b0a245) ) /* color PROM */
-
- ROM_REGION( 0x0020, "user1", 0 ) /* misc PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( carhntds )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr617.u33", 0x0000, 0x0400, CRC(0bbfdb4e) SHA1(383599276923264602a0b5efeac9697d9c15a20f) )
- ROM_CONTINUE(0x4000, 0x400)
- ROM_LOAD( "epr618.u32", 0x0400, 0x0400, CRC(5a080b1d) SHA1(3c3d6b8b16d9a8976ee63435e949b67f025e38d8) )
- ROM_LOAD( "epr619.u31", 0x0800, 0x0400, CRC(c6f2f399) SHA1(4bb34816042ec352b0bb71d2d654ebb6fb5083e9) )
- ROM_LOAD( "epr620.u30", 0x0c00, 0x0400, CRC(d9deb88f) SHA1(a863f29cfed782c8871a2268aa28a67ccced1b45) )
- ROM_LOAD( "epr621.u29", 0x1000, 0x0400, CRC(43e5de5c) SHA1(3adff5042be73f4693cee7977c88f425e930532d) )
- ROM_LOAD( "epr622.u28", 0x1400, 0x0400, CRC(c881a3bc) SHA1(fbff24c4075103fd686cfb376b08cf0677522222) )
- ROM_LOAD( "epr623.u27", 0x1800, 0x0400, CRC(297e7f42) SHA1(9e1042fe96f3bf55228b759b905467eff814ad84) )
- ROM_LOAD( "epr624.u26", 0x1c00, 0x0400, CRC(dc943125) SHA1(39f18e29cc3d03ee1b98a969f739e22dfd76b6f7) )
- ROM_LOAD( "epr625.u8", 0x2000, 0x0400, CRC(c86a0842) SHA1(5c59fe64985936b847a4c033a805153f627b1883) )
- ROM_LOAD( "epr626.u7", 0x2400, 0x0400, CRC(9a48c939) SHA1(2c898810f6fd97d4a6edb97236aaa29d08f5598a) )
- ROM_LOAD( "epr627.u6", 0x2800, 0x0400, CRC(b4b147e2) SHA1(8880f80708711b253f5da352679820500680ebab) )
- ROM_LOAD( "epr628.u5", 0x2c00, 0x0400, CRC(aecf3c26) SHA1(2f4419c6ccf03042cf32a415160e41d52fd0ef9c) )
- ROM_LOAD( "epr629.u4", 0x3000, 0x0400, CRC(c5be665b) SHA1(8bb145c140afa6166f08881b7e820335c3f83c08) )
- ROM_LOAD( "epr630.u3", 0x3400, 0x0400, CRC(4312388b) SHA1(d0b53d505276754651d2aeda4b17f2d600f65166) )
- ROM_LOAD( "epr631.u2", 0x3800, 0x0400, CRC(6766c7e5) SHA1(05b0ac31894c3c80d3940206aac2ef21a96ff849) )
- ROM_LOAD( "epr632.u1", 0x3c00, 0x0400, CRC(ae68b7d5) SHA1(de449b62ba39331a4ecf3dfe81511b21b7c881d5) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316.0390.u49", 0x0000, 0x0020, CRC(a0811288) SHA1(a6e78c26f7eeb70125eee715eb6a3e3c82ed7fc8) ) /* color PROM */
-ROM_END
-
-ROM_START( tranqgun )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "u33.bin", 0x0000, 0x0400, CRC(6d50e902) SHA1(1d14c0b28cb3650bb57b9ef61265fe94c453d648) )
- ROM_LOAD( "u32.bin", 0x0400, 0x0400, CRC(f0ba0e60) SHA1(fcdd4355ccc1893a8a0450403f466bee916793dc) )
- ROM_LOAD( "u31.bin", 0x0800, 0x0400, CRC(9fe440d3) SHA1(a0be6caf3ea821c84be83351a0b80c240485218f) )
- ROM_LOAD( "u30.bin", 0x0c00, 0x0400, CRC(1041608e) SHA1(9f9667a4ad98f43c606b534157488fb7dd7b18ba) )
- ROM_LOAD( "u29.bin", 0x1000, 0x0400, CRC(fb5de95f) SHA1(7ff57c2e7b074e74936fde808f455a118dc495c2) )
- ROM_LOAD( "u28.bin", 0x1400, 0x0400, CRC(03fd8727) SHA1(d334c50adcaea02f9b55b4ec1b4c7dda3a0298ca) )
- ROM_LOAD( "u27.bin", 0x1800, 0x0400, CRC(3d93239b) SHA1(211748992f5735cf4b8a69f035aa89b40c814d75) )
- ROM_LOAD( "u26.bin", 0x1c00, 0x0400, CRC(20f64a7f) SHA1(e61e7dd0f418c17954b72d443a1de206ef8cf4d0) )
- ROM_LOAD( "u8.bin", 0x2000, 0x0400, CRC(5121c695) SHA1(6b8ae30f2f17ff886e6c61783613a60b5c3d9b82) )
- ROM_LOAD( "u7.bin", 0x2400, 0x0400, CRC(b13d21f7) SHA1(f624e96c1dada3222b6b5a83f0bdf52b821077d6) )
- ROM_LOAD( "u6.bin", 0x2800, 0x0400, CRC(603cee59) SHA1(7c1f55cfe36cf52687f1c60d9277b46bd12054d4) )
- ROM_LOAD( "u5.bin", 0x2c00, 0x0400, CRC(7f25475f) SHA1(f519d59872d9429300040cb0ce940e8103087763) )
- ROM_LOAD( "u4.bin", 0x3000, 0x0400, CRC(57dc3123) SHA1(db57cb77d840bc97d0fa9de28cc4eba90b0319d0) )
- ROM_LOAD( "u3.bin", 0x3400, 0x0400, CRC(7aa7829b) SHA1(ef9835d83d4468a28aa2a837b3c23760d9e5480e) )
- ROM_LOAD( "u2.bin", 0x3800, 0x0400, CRC(a9b10df5) SHA1(f74e83c5f51ecb53e3190c1ae83fa59b60806f62) )
- ROM_LOAD( "u1.bin", 0x3c00, 0x0400, CRC(431a7449) SHA1(67a142c084078ebebe9ed91b577fffe1ab0f39a2) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "u49.bin", 0x0000, 0x0020, CRC(6481445b) SHA1(2136408f25a95ed73882deaa5a174d4a1a7ba438) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( spacetrk )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "u33.bin", 0x0000, 0x0400, CRC(9033fe50) SHA1(0a9b86af03956575403d8b494963f55887fc4dc3) )
- ROM_LOAD( "u32.bin", 0x0400, 0x0400, CRC(08f61f0d) SHA1(f206b18959e2cb6d4f6962415695eca0412da739) )
- ROM_LOAD( "u31.bin", 0x0800, 0x0400, CRC(1088a8c4) SHA1(ca40098137f0d90548d62a4daead3c6bc488fde0) )
- ROM_LOAD( "u30.bin", 0x0c00, 0x0400, CRC(55560cc8) SHA1(751585e261088cc740aa293a1e71f13b928c37f9) )
- ROM_LOAD( "u29.bin", 0x1000, 0x0400, CRC(71713958) SHA1(85399d3cbe5ed265b59b4441c17247b09c4c34d0) )
- ROM_LOAD( "u28.bin", 0x1400, 0x0400, CRC(7bcf5ca3) SHA1(05a6d31c0229e840081cad7fb17bdebc0fd6484f) )
- ROM_LOAD( "u27.bin", 0x1800, 0x0400, CRC(ad7a2065) SHA1(04a98b4578c7770f69525c614c402ccf2f3c99ed) )
- ROM_LOAD( "u26.bin", 0x1c00, 0x0400, CRC(6060fe77) SHA1(d7606daabdb0212daef6724b0ba6abab13731080) )
- ROM_LOAD( "u8.bin", 0x2000, 0x0400, CRC(75a90624) SHA1(61f10dd66ba1daa1b37c407d22d2ea3da2c8fec8) )
- ROM_LOAD( "u7.bin", 0x2400, 0x0400, CRC(7b31a2ab) SHA1(58ebf8ccb2e807aacc24c0017cb8c094124c1776) )
- ROM_LOAD( "u6.bin", 0x2800, 0x0400, CRC(94135b33) SHA1(deb836034ab1de016a26d45e7176f292aa34038c) )
- ROM_LOAD( "u5.bin", 0x2c00, 0x0400, CRC(cfbf2538) SHA1(d200ae1a866a6e4587226e449a3d09d330a79cf4) )
- ROM_LOAD( "u4.bin", 0x3000, 0x0400, CRC(b4b95129) SHA1(04c4ced1b8d0bf2cbb2533d9870574395a5f0793) )
- ROM_LOAD( "u3.bin", 0x3400, 0x0400, CRC(03ca1d70) SHA1(66ed7664ee1ddbadd6993d44c3684e6cb47912b3) )
- ROM_LOAD( "u2.bin", 0x3800, 0x0400, CRC(a968584b) SHA1(4ea4b83e116627daec4d226591924f84740e7786) )
- ROM_LOAD( "u1.bin", 0x3c00, 0x0400, CRC(e6e300e8) SHA1(4e198915c4f2b904dcc9ad81e5106bd711546e4e) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "u49.bin", 0x0000, 0x0020, CRC(aabae4cd) SHA1(6748d20318aed1c9949a3373166ebdca13eae965) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( spacetrkc )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "u33c.bin", 0x0000, 0x0400, CRC(b056b928) SHA1(1bbf5c30b226c5ca3c09fcff36a1b21132a524b6) )
- ROM_LOAD( "u32c.bin", 0x0400, 0x0400, CRC(dffb11d9) SHA1(5c95b7e493ac9e8714d91d19b6f01967559ce55c) )
- ROM_LOAD( "u31c.bin", 0x0800, 0x0400, CRC(9b25d46f) SHA1(29362fe4587f6425cc55c6f5592f853caf8bc1e2) )
- ROM_LOAD( "u30c.bin", 0x0c00, 0x0400, CRC(3a612bfe) SHA1(914a9a1192bfb255ee8b72671d33b5ae17b3a1b7) )
- ROM_LOAD( "u29c.bin", 0x1000, 0x0400, CRC(d8bb6e0c) SHA1(6bf57dde384a447350deb7125e287af147d51878) )
- ROM_LOAD( "u28c.bin", 0x1400, 0x0400, CRC(0e367740) SHA1(5140244d4cd64727ddfe052b7b4880e9599998f9) )
- ROM_LOAD( "u27c.bin", 0x1800, 0x0400, CRC(d59fec86) SHA1(8f0163aa61fb35a9977e24c36f7c01c3fb0bc156) )
- ROM_LOAD( "u26c.bin", 0x1c00, 0x0400, CRC(9deefa0f) SHA1(d109743e737931227bb504c47ba3cc959ae24756) )
- ROM_LOAD( "u8c.bin", 0x2000, 0x0400, CRC(613116c5) SHA1(23ad643a3df0d3823b776422454cba2e590a49c6) )
- ROM_LOAD( "u7c.bin", 0x2400, 0x0400, CRC(3bdf2464) SHA1(a19a863da8fb33650483ba5b4ea133f1c6393620) )
- ROM_LOAD( "u6c.bin", 0x2800, 0x0400, CRC(039d73fa) SHA1(08498e76b4f29f22078dfbe7ec52f47528f6db42) )
- ROM_LOAD( "u5c.bin", 0x2c00, 0x0400, CRC(1638344f) SHA1(0f8488763f3f3776ab09eb5cf1d4db8ebd384345) )
- ROM_LOAD( "u4c.bin", 0x3000, 0x0400, CRC(e34443cd) SHA1(8f2302f48aaceae70d8e576f318f44e96f92d4f3) )
- ROM_LOAD( "u3c.bin", 0x3400, 0x0400, CRC(6f16cbd7) SHA1(ef32558731d374a1417bb58ba24c1aa79d71ecd8) )
- ROM_LOAD( "u2c.bin", 0x3800, 0x0400, CRC(94da3cdc) SHA1(082f96c6fad0ccb314e80efd3a2d7e156a55c48e) )
- ROM_LOAD( "u1c.bin", 0x3c00, 0x0400, CRC(2a228bf4) SHA1(7c39700c7a63ca3202134acefa8e6f04f7145dfd) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "u49.bin", 0x0000, 0x0020, CRC(aabae4cd) SHA1(6748d20318aed1c9949a3373166ebdca13eae965) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( carnival )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-651.u33", 0x0000, 0x0400, CRC(9f2736e6) SHA1(c3fb9197b5e83dc7d5335de2268e0acb30cf8328) )
- ROM_LOAD( "epr-652.u32", 0x0400, 0x0400, CRC(a1f58beb) SHA1(e027beca7bf3ef5ef67e2195f909332fd194b5dc) )
- ROM_LOAD( "epr-653.u31", 0x0800, 0x0400, CRC(67b17922) SHA1(46cdfd0371dec61a5440c2111660729c0f0ecdb8) )
- ROM_LOAD( "epr-654.u30", 0x0c00, 0x0400, CRC(befb09a5) SHA1(da44b6a869b5eb0705e01fee4478696f6bef9de8) )
- ROM_LOAD( "epr-655.u29", 0x1000, 0x0400, CRC(623fcdad) SHA1(35890964f5cf799c141002916641089ccec0fcc9) )
- ROM_LOAD( "epr-656.u28", 0x1400, 0x0400, CRC(53040332) SHA1(ff7a06d93cb890abf0616770774668396d128ba3) )
- ROM_LOAD( "epr-657.u27", 0x1800, 0x0400, CRC(f2537467) SHA1(262b859098f4f7e5e9bf2f83bda833044824226e) )
- ROM_LOAD( "epr-658.u26", 0x1c00, 0x0400, CRC(fcc3854e) SHA1(7adbd6ca6f636dec75fa6eccdf3381686e074bc6) )
- ROM_LOAD( "epr-659.u8", 0x2000, 0x0400, CRC(28be8d69) SHA1(2d9ac9a53f00fe2282e4317585e6bddadb676c0f) )
- ROM_LOAD( "epr-660.u7", 0x2400, 0x0400, CRC(3873ccdb) SHA1(56be81fdee8947758ba966915c0739e5560a7f94) )
- ROM_LOAD( "epr-661.u6", 0x2800, 0x0400, CRC(d9a96dff) SHA1(0366acf3418901bfeeda59d4cd51fe8ceaad4577) )
- ROM_LOAD( "epr-662.u5", 0x2c00, 0x0400, CRC(d893ca72) SHA1(564176ab7f3757d51db8eef9fbc4228fa2ce328f) )
- ROM_LOAD( "epr-663.u4", 0x3000, 0x0400, CRC(df8c63c5) SHA1(e8d0632b5cb5bd7f698485531f3edeb13efdc685) )
- ROM_LOAD( "epr-664.u3", 0x3400, 0x0400, CRC(689a73e8) SHA1(b4134e8d892df7ba3352e4d3f581923decae6e54) )
- ROM_LOAD( "epr-665.u2", 0x3800, 0x0400, CRC(28e7b2b6) SHA1(57eb5dd0f11da8ff8001e76036264246d6bc27d2) )
- ROM_LOAD( "epr-666.u1", 0x3c00, 0x0400, CRC(4eec7fae) SHA1(cdc858165136c55b01511805c9d4dc6bc598fe1f) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-633", 0x0000, 0x0020, CRC(f0084d80) SHA1(95ec912ac2c64cd58a50c68afc0993746841a531) )
-
- ROM_REGION( 0x0400, "audiocpu", 0 ) /* sound ROM */
- ROM_LOAD( "epr-412.u5", 0x0000, 0x0400, CRC(0dbaa2b0) SHA1(eae7fc362a0ff8f908c42e093c7dbb603659373c) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( carnivalb )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-651.u33", 0x0000, 0x0400, CRC(9f2736e6) SHA1(c3fb9197b5e83dc7d5335de2268e0acb30cf8328) )
- ROM_LOAD( "epr-652.u32", 0x0400, 0x0400, CRC(a1f58beb) SHA1(e027beca7bf3ef5ef67e2195f909332fd194b5dc) )
- ROM_LOAD( "epr-653.u31", 0x0800, 0x0400, CRC(67b17922) SHA1(46cdfd0371dec61a5440c2111660729c0f0ecdb8) )
- ROM_LOAD( "epr-654.u30", 0x0c00, 0x0400, CRC(befb09a5) SHA1(da44b6a869b5eb0705e01fee4478696f6bef9de8) )
- ROM_LOAD( "epr-655.u29", 0x1000, 0x0400, CRC(623fcdad) SHA1(35890964f5cf799c141002916641089ccec0fcc9) )
- ROM_LOAD( "epr-656.u28", 0x1400, 0x0400, CRC(53040332) SHA1(ff7a06d93cb890abf0616770774668396d128ba3) )
- ROM_LOAD( "epr-657.u27", 0x1800, 0x0400, CRC(f2537467) SHA1(262b859098f4f7e5e9bf2f83bda833044824226e) )
- ROM_LOAD( "epr-658.u26", 0x1c00, 0x0400, CRC(fcc3854e) SHA1(7adbd6ca6f636dec75fa6eccdf3381686e074bc6) )
- ROM_LOAD( "epr-659.u8", 0x2000, 0x0400, CRC(28be8d69) SHA1(2d9ac9a53f00fe2282e4317585e6bddadb676c0f) )
- ROM_LOAD( "epr-660.u7", 0x2400, 0x0400, CRC(3873ccdb) SHA1(56be81fdee8947758ba966915c0739e5560a7f94) )
- ROM_LOAD( "epr-661.u6", 0x2800, 0x0400, CRC(d9a96dff) SHA1(0366acf3418901bfeeda59d4cd51fe8ceaad4577) )
- ROM_LOAD( "epr-662.u5", 0x2c00, 0x0400, CRC(d893ca72) SHA1(564176ab7f3757d51db8eef9fbc4228fa2ce328f) )
- ROM_LOAD( "epr-663.u4", 0x3000, 0x0400, CRC(df8c63c5) SHA1(e8d0632b5cb5bd7f698485531f3edeb13efdc685) )
- ROM_LOAD( "epr-664.u3", 0x3400, 0x0400, CRC(689a73e8) SHA1(b4134e8d892df7ba3352e4d3f581923decae6e54) )
- ROM_LOAD( "epr-665.u2", 0x3800, 0x0400, CRC(28e7b2b6) SHA1(57eb5dd0f11da8ff8001e76036264246d6bc27d2) )
- ROM_LOAD( "epr-666.u1", 0x3c00, 0x0400, CRC(4eec7fae) SHA1(cdc858165136c55b01511805c9d4dc6bc598fe1f) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-633", 0x0000, 0x0020, CRC(f0084d80) SHA1(95ec912ac2c64cd58a50c68afc0993746841a531) )
-
- ROM_REGION( 0x0400, "audiocpu", 0 ) /* sound ROM */
- ROM_LOAD( "carnival_b.u5", 0x0000, 0x0400, CRC(422abb43) SHA1(edb6f74ccf9382624353e927ac225e1455bb1144) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( carnivalc )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-501.u33", 0x0000, 0x0400, CRC(688503d2) SHA1(a1fe03c23276d458ba74f7473524918eb9b7c7e5) )
- ROM_LOAD( "epr-652.u32", 0x0400, 0x0400, CRC(a1f58beb) SHA1(e027beca7bf3ef5ef67e2195f909332fd194b5dc) )
- ROM_LOAD( "epr-653.u31", 0x0800, 0x0400, CRC(67b17922) SHA1(46cdfd0371dec61a5440c2111660729c0f0ecdb8) )
- ROM_LOAD( "epr-654.u30", 0x0c00, 0x0400, CRC(befb09a5) SHA1(da44b6a869b5eb0705e01fee4478696f6bef9de8) )
- ROM_LOAD( "epr-655.u29", 0x1000, 0x0400, CRC(623fcdad) SHA1(35890964f5cf799c141002916641089ccec0fcc9) )
- ROM_LOAD( "epr-506.u28", 0x1400, 0x0400, CRC(ba916e97) SHA1(87e1ac8bd21bafb815b702048c6be24f410a8998) )
- ROM_LOAD( "epr-507.u27", 0x1800, 0x0400, CRC(d0bda4a5) SHA1(faf3f3c2a8f962c6c2901e5a4a31b452b506ee22) )
- ROM_LOAD( "epr-508.u26", 0x1c00, 0x0400, CRC(f0258cad) SHA1(065c90835dadeda7085422295cde09491c94b6e0) )
- ROM_LOAD( "epr-509.u8", 0x2000, 0x0400, CRC(dcc8a530) SHA1(2d1cac3b40f5afab5423d45ecc3f5565266f9c03) )
- ROM_LOAD( "epr-510.u7", 0x2400, 0x0400, CRC(92c2ba51) SHA1(c0c0c836d2aa6943bd808acc12161adf23cd0d21) )
- ROM_LOAD( "epr-511.u6", 0x2800, 0x0400, CRC(3af899a0) SHA1(540cbdc6a912cb325bbea33935bfa06e13f0021a) )
- ROM_LOAD( "epr-512.u5", 0x2c00, 0x0400, CRC(09f7b3e6) SHA1(18a58680500148e7a031e91230d73b2ce4dc712d) )
- ROM_LOAD( "epr-513.u4", 0x3000, 0x0400, CRC(8f41974c) SHA1(65e9c2378ad99f804590de36ffba4c60bfa1bfe3) )
- ROM_LOAD( "epr-514.u3", 0x3400, 0x0400, CRC(2788d140) SHA1(7341c44fb1f7eb8c4d25d3e1e75bcf3bfdb9a89c) )
- ROM_LOAD( "epr-515.u2", 0x3800, 0x0400, CRC(10decaa9) SHA1(4c980164dde275e1488ae74a7ad61e6acc75e608) )
- ROM_LOAD( "epr-516.u1", 0x3c00, 0x0400, CRC(7c32b352) SHA1(8cb472a7f71a301417c6a8e4a26a9bdcd43b6062) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-633", 0x0000, 0x0020, CRC(f0084d80) SHA1(95ec912ac2c64cd58a50c68afc0993746841a531) )
-
- ROM_REGION( 0x0400, "audiocpu", 0 ) /* sound ROM */
- ROM_LOAD( "epr-412.u5", 0x0000, 0x0400, CRC(0dbaa2b0) SHA1(eae7fc362a0ff8f908c42e093c7dbb603659373c) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( carnivalh )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-155.u48", 0x0000, 0x0800, CRC(0a5f1f65) SHA1(7830157ad378f92a8069debf78d50b9deafb4d40) )
- ROM_LOAD( "epr-156.u47", 0x0800, 0x0800, CRC(422221ff) SHA1(57180236dd1cf5838131b35256c3d46cb8015804) )
- ROM_LOAD( "epr-157.u46", 0x1000, 0x0800, CRC(1551dffb) SHA1(f91563a14c5febee64b45579acf49518cd54bec3) )
- ROM_LOAD( "epr-158.u45", 0x1800, 0x0800, CRC(9238b5c0) SHA1(673f4fedd2e7beef6bc5e6371b2ed7722f3c141c) )
- ROM_LOAD( "epr-159.u44", 0x2000, 0x0800, CRC(5c2b9a33) SHA1(2cc57ceebd2938e589c07892b6587b8571678fcc) )
- ROM_LOAD( "epr-160.u43", 0x2800, 0x0800, CRC(dd70471f) SHA1(2d987e946873955998c428930592ea7734970b16) )
- ROM_LOAD( "epr-161.u42", 0x3000, 0x0800, CRC(42714a0d) SHA1(96f8904912d85b2e7037d129ff2443e90693fe22) )
- ROM_LOAD( "epr-162.u41", 0x3800, 0x0800, CRC(56e1c120) SHA1(24816b6a9bc238571ab8ea79bb876cf249ed4d60) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "pr-62.u44", 0x0000, 0x0020, CRC(f0084d80) SHA1(95ec912ac2c64cd58a50c68afc0993746841a531) ) /* Same as 316-633 */
-
- ROM_REGION( 0x0400, "audiocpu", 0 ) /* sound ROM */
- ROM_LOAD( "epr-412.u5", 0x0000, 0x0400, CRC(0dbaa2b0) SHA1(eae7fc362a0ff8f908c42e093c7dbb603659373c) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs (type n82s123) */
- ROM_LOAD( "316-043.u65", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-042.u66", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( carnivalha )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-155.u48", 0x0000, 0x0800, CRC(0a5f1f65) SHA1(7830157ad378f92a8069debf78d50b9deafb4d40) )
- ROM_LOAD( "epr-156.u47", 0x0800, 0x0800, CRC(422221ff) SHA1(57180236dd1cf5838131b35256c3d46cb8015804) )
- ROM_LOAD( "epr-157.u46", 0x1000, 0x0800, CRC(1551dffb) SHA1(f91563a14c5febee64b45579acf49518cd54bec3) )
- ROM_LOAD( "epr-158.u45", 0x1800, 0x0800, CRC(9238b5c0) SHA1(673f4fedd2e7beef6bc5e6371b2ed7722f3c141c) )
- ROM_LOAD( "epr-159.u44", 0x2000, 0x0800, CRC(5c2b9a33) SHA1(2cc57ceebd2938e589c07892b6587b8571678fcc) )
- ROM_LOAD( "epr-160.u43", 0x2800, 0x0800, CRC(dd70471f) SHA1(2d987e946873955998c428930592ea7734970b16) )
- ROM_LOAD( "epr-161x.u42", 0x3000, 0x0800, CRC(8133ba08) SHA1(fc314e847810140d99ad071667c10a1a57c9f892) ) // rom marked with 161X, probably modified in some way
- ROM_LOAD( "epr-162.u41", 0x3800, 0x0800, CRC(56e1c120) SHA1(24816b6a9bc238571ab8ea79bb876cf249ed4d60) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "pr-62.u44", 0x0000, 0x0020, CRC(f0084d80) SHA1(95ec912ac2c64cd58a50c68afc0993746841a531) ) /* Same as 316-633 */
-
- ROM_REGION( 0x0400, "audiocpu", 0 ) /* sound ROM */
- ROM_LOAD( "epr-412.u5", 0x0000, 0x0400, CRC(0dbaa2b0) SHA1(eae7fc362a0ff8f908c42e093c7dbb603659373c) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs (type n82s123) */
- ROM_LOAD( "316-043.u65", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-042.u66", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( verbena )
- ROM_REGION( 0x10000, "maincpu", 0 ) // all 2708s
- ROM_LOAD( "16v.u33", 0x0000, 0x0400, CRC(a47a1c54) SHA1(1c8944c24b6eb1d35b778dc7448466f1c5be484e) ) // handwritten label
- ROM_LOAD( "15mm.u32", 0x0400, 0x0400, CRC(a1f58beb) SHA1(e027beca7bf3ef5ef67e2195f909332fd194b5dc) )
- ROM_LOAD( "14mm.u31", 0x0800, 0x0400, CRC(67b17922) SHA1(46cdfd0371dec61a5440c2111660729c0f0ecdb8) )
- ROM_LOAD( "13mm.u30", 0x0c00, 0x0400, CRC(befb09a5) SHA1(da44b6a869b5eb0705e01fee4478696f6bef9de8) )
- ROM_LOAD( "12mm.u29", 0x1000, 0x0400, CRC(b5230913) SHA1(0db699e40c35da113f9301cedcd958d765699aac) )
- ROM_LOAD( "11mm.u28", 0x1400, 0x0400, CRC(53040332) SHA1(ff7a06d93cb890abf0616770774668396d128ba3) )
- ROM_LOAD( "10mm.u27", 0x1800, 0x0400, CRC(a3b9c2db) SHA1(2893fae8c2aeab2a68297bf1f2c3022ff98dca95) )
- ROM_LOAD( "9mm.u26", 0x1c00, 0x0400, CRC(fcc3854e) SHA1(7adbd6ca6f636dec75fa6eccdf3381686e074bc6) )
- ROM_LOAD( "8mm.u8", 0x2000, 0x0400, CRC(28be8d69) SHA1(2d9ac9a53f00fe2282e4317585e6bddadb676c0f) )
- ROM_LOAD( "7mm.u7", 0x2400, 0x0400, CRC(3873ccdb) SHA1(56be81fdee8947758ba966915c0739e5560a7f94) )
- ROM_LOAD( "6mm.u6", 0x2800, 0x0400, CRC(d9a96dff) SHA1(0366acf3418901bfeeda59d4cd51fe8ceaad4577) )
- ROM_LOAD( "5mm.u5", 0x2c00, 0x0400, CRC(d893ca72) SHA1(564176ab7f3757d51db8eef9fbc4228fa2ce328f) )
- ROM_LOAD( "4mm.u4", 0x3000, 0x0400, CRC(df8c63c5) SHA1(e8d0632b5cb5bd7f698485531f3edeb13efdc685) )
- ROM_LOAD( "3mm.u3", 0x3400, 0x0400, CRC(689a73e8) SHA1(b4134e8d892df7ba3352e4d3f581923decae6e54) )
- ROM_LOAD( "2mm.u2", 0x3800, 0x0400, CRC(b94ef7ab) SHA1(8079e0f97688817d2f6ed5810aa1501dc09585d6) )
- ROM_LOAD( "1v.u1", 0x3c00, 0x0400, CRC(6e10c057) SHA1(743a28bb6f4f395fd3db36d5e40acc3475f55f5d) ) // handwritten label
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "mmi6331.u4", 0x0000, 0x0020, CRC(f0084d80) SHA1(95ec912ac2c64cd58a50c68afc0993746841a531) )
-
- ROM_REGION( 0x0400, "audiocpu", 0 ) /* sound ROM */
- ROM_LOAD( "sound.u25", 0x0000, 0x0400, CRC(0dbaa2b0) SHA1(eae7fc362a0ff8f908c42e093c7dbb603659373c) ) // 2708
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "mmi6331.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( brdrline )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "b1.bin", 0x0000, 0x0400, CRC(df182769) SHA1(2b1b70c6282b32e0a4ed80ab4e6b20f90630e910) )
- ROM_LOAD( "b2.bin", 0x0400, 0x0400, CRC(e1d1c4ce) SHA1(86320c836577549af6fe6c311f8475a51de52627) )
- ROM_LOAD( "b3.bin", 0x0800, 0x0400, CRC(4ec4afa2) SHA1(dd5b97f1a37cd655064b773e4a755b87de4c6a3f) )
- ROM_LOAD( "b4.bin", 0x0c00, 0x0400, CRC(88de95f6) SHA1(fe3388346785ad15dead89913e4ff36120a83599) )
- ROM_LOAD( "b5.bin", 0x1000, 0x0400, CRC(2e4e13b9) SHA1(bdf31c11733127b8b77fa72933d3b9dc6834d5d8) )
- ROM_LOAD( "b6.bin", 0x1400, 0x0400, CRC(c181e87a) SHA1(426e1ce15477039e4a19b536500f387518026efc) )
- ROM_LOAD( "b7.bin", 0x1800, 0x0400, CRC(21180015) SHA1(b23f876db1a9a986f1087ead07a01e836d5ee842) )
- ROM_LOAD( "b8.bin", 0x1c00, 0x0400, CRC(56a7fee0) SHA1(495efa91773fd3cf36da4e538893db08e64e5bab) )
- ROM_LOAD( "b9.bin", 0x2000, 0x0400, CRC(bb532e63) SHA1(da511e0be58b13781897e6efb5a59a3558016b12) )
- ROM_LOAD( "b10.bin", 0x2400, 0x0400, CRC(64793709) SHA1(fabfb783f1d93a3d9454fc345a64498e4b5b9138) )
- ROM_LOAD( "b11.bin", 0x2800, 0x0400, CRC(2ae2f928) SHA1(afd99c800801d38ee59008344bd9a3901f72ff50) )
- ROM_LOAD( "b12.bin", 0x2c00, 0x0400, CRC(e14cfaf5) SHA1(d159e93f703aae3c04da08102ff718d5a4ca7a91) )
- ROM_LOAD( "b13.bin", 0x3000, 0x0400, CRC(605e0d27) SHA1(771de6d31ee7896a2441f1df4565027793d99989) )
- ROM_LOAD( "b14.bin", 0x3400, 0x0400, CRC(93f5714f) SHA1(50a043be1e1cf8b1aeb846571a12fe70cbb3477e) )
- ROM_LOAD( "b15.bin", 0x3800, 0x0400, CRC(2f8a9b1c) SHA1(853d5ca017b133c1f13f703cceb20f04199d4752) )
- ROM_LOAD( "b16.bin", 0x3c00, 0x0400, CRC(cc138bed) SHA1(7d3eebdeaff19783d5ef20a7ececec00773434fc) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "borderc.49", 0x0000, 0x0020, CRC(bc6be94e) SHA1(34e113ec25e19212b74907d35be5cb8714a8249c) )
-
- ROM_REGION( 0x0100, "user1", 0 ) /* misc PROM */
- ROM_LOAD( "border.32", 0x0000, 0x0020, CRC(c128d0ba) SHA1(0ce9febbb7e2f5388ed999a479e3d385dba0b342) )
- ROM_LOAD( "bordera.15", 0x0000, 0x0020, CRC(6449e678) SHA1(421c45c8fba3c2bc2a7ebbea2c837c8fa1a5a2f3) ) // sequence
- ROM_LOAD( "borderb.14", 0x0000, 0x0020, CRC(55dcdef1) SHA1(6fbd041edc258b7e1b99bbe9526612cfb1b541f8) ) // control
- /* following 2 from sound board */
- ROM_LOAD( "prom93427.1", 0x0000, 0x0100, CRC(64b98dc7) SHA1(f0bb7d0b4b56cc2936ce4cbec165394f3026ed6d) )
- ROM_LOAD( "prom93427.2", 0x0000, 0x0100, CRC(bda82367) SHA1(1c96453c2ae372892c39b5657cf2b252a90a10a9) )
-
- ROM_REGION( 0x0400, "user2", 0 ) /* sound ROM */
- ROM_LOAD( "au.bin", 0x0000, 0x0400, CRC(a23e1d9f) SHA1(ce209571f6341aa6f036a015e666673098bc98ea) )
-ROM_END
-
-
-ROM_START( brdrlinet )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1171a.u33", 0x0000, 0x0400, CRC(38dd9880) SHA1(1a879ce990129fd34e7265010872ac998d16accf) )
- ROM_LOAD( "1172a.u32", 0x0400, 0x0400, CRC(1a3adff0) SHA1(3fab79688b739d6a5979638115629d0a61f8878b) )
- ROM_LOAD( "1173a.u31", 0x0800, 0x0400, CRC(e668734d) SHA1(b01b06f4a107f14001c70e63e072c575cd97c89b) )
- ROM_LOAD( "1174a.u30.bad", 0x0c00, 0x0400, BAD_DUMP CRC(22c83ae4) SHA1(16da92afe068401a6f27f56b214b600b49d8019f) ) // chip was dead, need another
- ROM_LOAD( "1175a.u29", 0x1000, 0x0400, CRC(116517b8) SHA1(a7ded7cb53735e6cf4994ff70db35dead04828e6) )
- ROM_LOAD( "1176a.u28", 0x1400, 0x0400, CRC(2b2c4ba8) SHA1(fe9ccb94b9d5d7fb9ec6170a7b71f859b22981d3) )
- ROM_LOAD( "1177a.u27", 0x1800, 0x0400, CRC(d8cbcc1e) SHA1(632d2ba84d4276155960b176bf7ac514b214e481) )
- ROM_LOAD( "1178a.u26", 0x1c00, 0x0400, CRC(05b1e3ea) SHA1(38657eb1df334dd66e66d7a1ec5cbe663982e12b) )
- ROM_LOAD( "1179a.u8", 0x2000, 0x0400, CRC(c2dc3181) SHA1(8bd639a8c1d86d6432b9115195b5f394898c936a) )
- ROM_LOAD( "1180a.u7", 0x2400, 0x0400, CRC(c00543a7) SHA1(21df4f31c8070c76f592b8c231fc7b3b192fc20f) )
- ROM_LOAD( "1181a.u6", 0x2800, 0x0400, CRC(aba9ca30) SHA1(2d9d7a13adb21c71f0094c3c0518f995423fabe5) )
- ROM_LOAD( "1182a.u5", 0x2c00, 0x0400, CRC(fe7cfc31) SHA1(93789ffbf9bd3a825dacb551a745ed1154de1773) )
- ROM_LOAD( "1183a.u4", 0x3000, 0x0400, CRC(4e0684cd) SHA1(b1442a5f7b509f2a1775359174ecdf5e90df8150) )
- ROM_LOAD( "1184a.u3", 0x3400, 0x0400, CRC(0f38ca4c) SHA1(1e5e19eae33c258f25495562f542aed38bba34e7) )
- ROM_LOAD( "1185a.u2", 0x3800, 0x0400, CRC(1dff2ab0) SHA1(aab3482b15d1401897feabd4085b16acd5413c8f) )
- ROM_LOAD( "1186a.u1", 0x3c00, 0x0400, CRC(5828ca5a) SHA1(cffa6dc6baa8a53bd165c40d1fc96c590c6e485c) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "u49.bin", 0x0000, 0x0020, CRC(0a2156b3) SHA1(504abe8e253ff9b12ac6ffacd92722f8ee8a30ae) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs */
- ROM_LOAD( "pr-52.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) )
-ROM_END
-
-/*
-Star Raker
-
-Notes from dumper:
-There is a mainboard and a small board. The main board is a normal VIC board and is from a working cab we own.
-From an op we got a box with a similar board plus a small board which I assumed belongs to it,
-but I have no idea what its purpose is. Its not the soundboard and its not included in our working Star Raker cab.
-So maybe it belongs to a different game, but I had it dumped anyway.
-*/
-
-ROM_START( starrkr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-767.u33", 0x0000, 0x0400, CRC(2cfe979c) SHA1(a64f7035788ed428bc5f3ca32e8b1208c378dea9) )
- ROM_LOAD( "epr-768.u32", 0x0400, 0x0400, CRC(cf85f158) SHA1(f091fdc30b10a202318a0c39af450f765b905528) )
- ROM_LOAD( "epr-769.u31", 0x0800, 0x0400, CRC(22ac6362) SHA1(de60ea8480ada2b029956d65f9edbf680efae846) )
- ROM_LOAD( "epr-770.u30", 0x0c00, 0x0400, CRC(d8d2fc6a) SHA1(950f60f3ef11345a08face4d421a678462be917c) )
- ROM_LOAD( "epr-771.u29", 0x1000, 0x0400, CRC(9a88d577) SHA1(aac34dffda10e513e8c656983de42387167b7e92) )
- ROM_LOAD( "epr-772.u28", 0x1400, 0x0400, CRC(bab1574f) SHA1(cf569545383e7b5080b2a363cbc5f90fc3a5f84e) )
- ROM_LOAD( "epr-773.u27", 0x1800, 0x0400, CRC(c2406abd) SHA1(be1d31686a5192c4e72b549ee44160a65ac1a3b1) )
- ROM_LOAD( "epr-774.u26", 0x1c00, 0x0400, CRC(77686d3b) SHA1(16b8f8ea1bfdbe684113c96128c6324ce63ef4f3) )
- ROM_LOAD( "epr-775.u8", 0x2000, 0x0400, CRC(1d00b276) SHA1(d4f850288c0757c937583b1cd80ca540c29fb84d) )
- ROM_LOAD( "epr-776.u7", 0x2400, 0x0400, CRC(7215a72b) SHA1(bbf1f7e291f26cd8379679bab2fd1890b1c7524a) )
- ROM_LOAD( "epr-777.u6", 0x2800, 0x0400, CRC(59176c4c) SHA1(22b9cf5661eb0660039d6d36fb57b0a187b202da) )
- ROM_LOAD( "epr-778.u5", 0x2c00, 0x0400, CRC(b4586631) SHA1(82dbbcf991c4ffda70518401d5cc700da14afb9c) )
- ROM_LOAD( "epr-779.u4", 0x3000, 0x0400, CRC(1f9a736d) SHA1(629bf6da13278cb521d291d0551effba1f415027) )
- ROM_LOAD( "epr-780.u3", 0x3400, 0x0400, CRC(01d89786) SHA1(ccc5644ff6c7f577db4ac4b66a5cd6eb1ff66c1e) )
- ROM_LOAD( "epr-781.u2", 0x3800, 0x0400, CRC(7d1238a2) SHA1(b9195608b0255ddd4c4a03d863f7749a4ee9f706) )
- ROM_LOAD( "epr-782.u1", 0x3c00, 0x0400, CRC(121ce164) SHA1(9d046ad189a3c009547eb775028143e2fffe243d) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "pr-23.u49", 0x0000, 0x0020, CRC(0a2156b3) SHA1(504abe8e253ff9b12ac6ffacd92722f8ee8a30ae) )
-
- ROM_REGION( 0x0800, "user1", 0 ) /* misc PROM */
- ROM_LOAD( "pr-33.u15", 0x0000, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) )
- ROM_LOAD( "pr-34.u14", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) )
- /* following from Small PCB (#97270-P) */
- ROM_LOAD( "pr-58.5", 0x0000, 0x0800, CRC(526ed9d8) SHA1(173a05b7e01147e415b92ec66661f2544dce0ffd) )
- ROM_LOAD( "pr-60.6", 0x0000, 0x0800, CRC(59e6067f) SHA1(e6bd08e23ba6c140fca2b280e7d39ac1092d3926) )
- ROM_LOAD( "pr-59.12", 0x0000, 0x0800, CRC(a2e8090a) SHA1(61d8133d4469243a6a1bbeb851e51c73b22bc3e1) )
- ROM_LOAD( "pr-61.13", 0x0000, 0x0800, CRC(fc663474) SHA1(9fd28575606e19e84abbc63fb66b85b7edc5bc99) )
- ROM_LOAD( "pr-65.17", 0x0000, 0x0800, CRC(a12430b2) SHA1(2df1fc2a0e5afcb41e4b0b1cbe7927d7ae8b5146) )
- ROM_LOAD( "pr-63.18", 0x0000, 0x0800, CRC(b3297499) SHA1(67a9e22c80627fe1924112774201add339f40c62) )
- ROM_LOAD( "pr-64.25", 0x0000, 0x0800, CRC(7342cf53) SHA1(761aa5a38a28c044cbbbe66e3a8a2f47c493d56d) )
- ROM_LOAD( "pr-62.26", 0x0000, 0x0800, CRC(d352c545) SHA1(6da4f7a7974e2f471b081d230a47767315b2f1a7) )
- ROM_LOAD( "pr-66.28", 0x0000, 0x0800, CRC(895c5733) SHA1(881a274cdcf23292ea658dcab793303cfb445e51) )
-
- ROM_REGION( 0x0400, "user2", 0 ) /* sound ROM */
- ROM_LOAD( "epr-613.1", 0x0000, 0x0400, CRC(ff4be0c7) SHA1(7311c34aa88f6ba905a01e7a9f2ed99a0353a06b) )
-ROM_END
-
-/*
-Notes on Sidam set
-
-This set isn't really very interesting, it just has the code to draw the status bar text patched out.
-Only one ROM is changed. Supported because Sidam were a well known Italian bootlegger so this has
-some historical importance. 'Sidam' isn't displayed anywhere ingame, only on the PCB?.
-
----CPU
-
-Lower board (label "BLC200681"):
-1x MK3880-Z80CPU (main)
-1x oscillator 10.000MHz
-
----ROMs:
-
-Lower board (label "BLC200681"):
-16x F2708
-3x PROM 5610
-
-Upper board (label "BLC300681 MADE IN ITALY"):
-1x F2708
-1x PROM 82S123
-2x PROM 93427
-
----Note:
-
-Lower board (label "BLC200681"):
-1x 22x2 edge connector
-1x 8 switches dip
-
-Upper board (label "BLC300681 MADE IN ITALY"):
-7x trimmer
-*/
-
-ROM_START( brdrlins )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1.33", 0x0000, 0x0400, CRC(df182769) SHA1(2b1b70c6282b32e0a4ed80ab4e6b20f90630e910) )
- ROM_LOAD( "2.32", 0x0400, 0x0400, CRC(98b26e2a) SHA1(ae1c3726827571ee1c2716e1044d6aae5608c0af) ) // 3 bytes changed in this rom
- ROM_LOAD( "3.31", 0x0800, 0x0400, CRC(4ec4afa2) SHA1(dd5b97f1a37cd655064b773e4a755b87de4c6a3f) )
- ROM_LOAD( "4.30", 0x0c00, 0x0400, CRC(88de95f6) SHA1(fe3388346785ad15dead89913e4ff36120a83599) )
- ROM_LOAD( "5.29", 0x1000, 0x0400, CRC(2e4e13b9) SHA1(bdf31c11733127b8b77fa72933d3b9dc6834d5d8) )
- ROM_LOAD( "6.28", 0x1400, 0x0400, CRC(c181e87a) SHA1(426e1ce15477039e4a19b536500f387518026efc) )
- ROM_LOAD( "7.27", 0x1800, 0x0400, CRC(21180015) SHA1(b23f876db1a9a986f1087ead07a01e836d5ee842) )
- ROM_LOAD( "8.26", 0x1c00, 0x0400, CRC(56a7fee0) SHA1(495efa91773fd3cf36da4e538893db08e64e5bab) )
- ROM_LOAD( "9.8", 0x2000, 0x0400, CRC(bb532e63) SHA1(da511e0be58b13781897e6efb5a59a3558016b12) )
- ROM_LOAD( "10.7", 0x2400, 0x0400, CRC(64793709) SHA1(fabfb783f1d93a3d9454fc345a64498e4b5b9138) )
- ROM_LOAD( "11.6", 0x2800, 0x0400, CRC(2ae2f928) SHA1(afd99c800801d38ee59008344bd9a3901f72ff50) )
- ROM_LOAD( "12.5", 0x2c00, 0x0400, CRC(e14cfaf5) SHA1(d159e93f703aae3c04da08102ff718d5a4ca7a91) )
- ROM_LOAD( "13.4", 0x3000, 0x0400, CRC(605e0d27) SHA1(771de6d31ee7896a2441f1df4565027793d99989) )
- ROM_LOAD( "14.3", 0x3400, 0x0400, CRC(93f5714f) SHA1(50a043be1e1cf8b1aeb846571a12fe70cbb3477e) )
- ROM_LOAD( "15.2", 0x3800, 0x0400, CRC(2f8a9b1c) SHA1(853d5ca017b133c1f13f703cceb20f04199d4752) )
- ROM_LOAD( "16.1", 0x3c00, 0x0400, CRC(cc138bed) SHA1(7d3eebdeaff19783d5ef20a7ececec00773434fc) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "5610.49", 0x0000, 0x0020, CRC(bc6be94e) SHA1(34e113ec25e19212b74907d35be5cb8714a8249c) )
-
- ROM_REGION( 0x0100, "user1", 0 ) /* misc PROM */
- ROM_LOAD( "82s123.bin", 0x0000, 0x0020, CRC(c128d0ba) SHA1(0ce9febbb7e2f5388ed999a479e3d385dba0b342) )
- ROM_LOAD( "5610.15", 0x0000, 0x0020, CRC(6449e678) SHA1(421c45c8fba3c2bc2a7ebbea2c837c8fa1a5a2f3) )
- ROM_LOAD( "5610.14", 0x0000, 0x0020, CRC(55dcdef1) SHA1(6fbd041edc258b7e1b99bbe9526612cfb1b541f8) )
- /* following 2 from sound board */
- ROM_LOAD( "93427.1", 0x0000, 0x0100, CRC(64b98dc7) SHA1(f0bb7d0b4b56cc2936ce4cbec165394f3026ed6d) )
- ROM_LOAD( "93427.2", 0x0000, 0x0100, CRC(bda82367) SHA1(1c96453c2ae372892c39b5657cf2b252a90a10a9) )
-
- ROM_REGION( 0x0400, "user2", 0 ) /* sound ROM */
- ROM_LOAD( "au.bin", 0x0000, 0x0400, CRC(a23e1d9f) SHA1(ce209571f6341aa6f036a015e666673098bc98ea) )
-ROM_END
-
-ROM_START( brdrlinb )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "border1.33", 0x0000, 0x0800, CRC(48387706) SHA1(b4db2f05e722812370b0b24cd15061d6fc578560) ) // karateco
- ROM_LOAD( "border2.30", 0x0800, 0x0800, CRC(1d669b60) SHA1(47ef5141591e177419fa352968be26ecc6fafd89) )
- ROM_LOAD( "border3.29", 0x1000, 0x0800, CRC(6e4d6fb3) SHA1(4747359c4f09e93c563b93ee1189743894332b47) )
- ROM_LOAD( "border4.27", 0x1800, 0x0800, CRC(718446d8) SHA1(cc15cb37ebb51970fcdebf74ab4308a25b40af2a) )
- ROM_LOAD( "border5.08", 0x2000, 0x0800, CRC(a0584337) SHA1(1fd9c60dc42a178c88d4e4e4b4d5de495ea906c6) )
- ROM_LOAD( "border6.06", 0x2800, 0x0800, CRC(cb30fb98) SHA1(96ea83111e8ccf409fe40f19ce200a50ea9ea288) )
- ROM_LOAD( "border7.04", 0x3000, 0x0800, CRC(200c5321) SHA1(f9faa6125dd2adc69c4ba9d962c0998f815ccd1c) )
- ROM_LOAD( "border8.02", 0x3800, 0x0800, CRC(735e140d) SHA1(1c0b6cf2d8c88601084dfcb8d7490b85ef1a86d5) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "borderc.49", 0x0000, 0x0020, CRC(bc6be94e) SHA1(34e113ec25e19212b74907d35be5cb8714a8249c) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* misc PROM */
- ROM_LOAD( "border.32", 0x0000, 0x0020, CRC(c128d0ba) SHA1(0ce9febbb7e2f5388ed999a479e3d385dba0b342) )
- ROM_LOAD( "bordera.15", 0x0000, 0x0020, CRC(6449e678) SHA1(421c45c8fba3c2bc2a7ebbea2c837c8fa1a5a2f3) )
- ROM_LOAD( "borderb.14", 0x0000, 0x0020, CRC(55dcdef1) SHA1(6fbd041edc258b7e1b99bbe9526612cfb1b541f8) )
-
- ROM_REGION( 0x0400, "user2", 0 ) /* sound ROM */
- ROM_LOAD( "bords.bin", 0x0000, 0x0400, CRC(a23e1d9f) SHA1(ce209571f6341aa6f036a015e666673098bc98ea) )
-ROM_END
-
-ROM_START( startrks )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "0.1a", 0x0000, 0x0400, CRC(2ba4202a) SHA1(1e46e36c37c9f1cecb505a1fe393c24d0e271168) )
- ROM_LOAD( "1.3a", 0x0400, 0x0400, CRC(cf6081b8) SHA1(2294cf6849a8191928f268ba1dbef21659a1475f) )
- ROM_LOAD( "2.4a", 0x0800, 0x0400, CRC(fd983c0c) SHA1(a4aea8707878dcac8b4e3d9acad94f60eee956c6) )
- ROM_LOAD( "3.6a", 0x0c00, 0x0400, CRC(607991c7) SHA1(abfbfdbcedc7192a0cf84f2d28c600fe6f7c7a84) )
- ROM_LOAD( "4.8a", 0x1000, 0x0400, CRC(043bf767) SHA1(76dd79a4cdd23f75a4e7b5642db05e94e0d2b75e) )
- ROM_LOAD( "5.9a", 0x1400, 0x0400, CRC(2aa21da3) SHA1(85bb7b74b3df678bf32370ef77ee620c5d7249ab) )
- ROM_LOAD( "6.11a", 0x1800, 0x0400, CRC(a5315dc8) SHA1(ba6d27d03c9f0100fe89ebbf4b58d166bf259fa8) )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* timing PROMs */
- ROM_LOAD( "82s123.15c", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "82s123.14c", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( digger )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "684.u27", 0x0000, 0x0400, CRC(bba0d7c2) SHA1(1e55dd95b07b562dcc1e52ecf9460d302b14ee60) )
- ROM_LOAD( "685.u26", 0x0400, 0x0400, CRC(85210d8b) SHA1(8260ca809a3a20a52b146d357253aa958d08887e) )
- ROM_LOAD( "686.u25", 0x0800, 0x0400, CRC(2d87238c) SHA1(de8dbe56c4c71b5d75e77c39cfbd771b91c0db0f) )
- ROM_LOAD( "687.u24", 0x0c00, 0x0400, CRC(0dd0604e) SHA1(d357e195a6e61615b0e8cfb027628c2ce5f2b1c5) )
- ROM_LOAD( "688.u23", 0x1000, 0x0400, CRC(2f649667) SHA1(f4c08c7c8f1e9cee84bf844810f006d27bd35025) )
- ROM_LOAD( "689.u22", 0x1400, 0x0400, CRC(89fd63d9) SHA1(413f5df7eedb67848119c675e4edd1ce211ded24) )
- ROM_LOAD( "690.u21", 0x1800, 0x0400, CRC(a86622a6) SHA1(44c0712cc1e11255dc0e27f4754984885c9fa8ad) )
- ROM_LOAD( "691.u20", 0x1c00, 0x0400, CRC(8aca72d8) SHA1(59306dbc350dc64a17ad2f9909ef00e9860c56e7) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-507", 0x0000, 0x0020, CRC(fdb22e8f) SHA1(b09241b532cfe7679e837e9f3e5956cfc588a0be) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* timing PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( pulsar )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "790.u33", 0x0000, 0x0400, CRC(5e3816da) SHA1(83f019fa3598e383310b4c21441e4f8ef0c9d4fb) )
- ROM_LOAD( "791.u32", 0x0400, 0x0400, CRC(ce0aee83) SHA1(f3755592a9aaa2d493d017c8da19354fd5598860) )
- ROM_LOAD( "792.u31", 0x0800, 0x0400, CRC(72d78cf1) SHA1(d292d80826081073d279d163a107926fa80f02d0) )
- ROM_LOAD( "793.u30", 0x0c00, 0x0400, CRC(42155dd4) SHA1(d3032b0509eb3aa9c49b92ae69971ec019310b16) )
- ROM_LOAD( "794.u29", 0x1000, 0x0400, CRC(11c7213a) SHA1(417a608913e84c456f3181e94e496b05599dfb14) )
- ROM_LOAD( "795.u28", 0x1400, 0x0400, CRC(d2f02e29) SHA1(2b4333ecb89abd80634686b9ef667213423bc4a8) )
- ROM_LOAD( "796.u27", 0x1800, 0x0400, CRC(67737a2e) SHA1(6e8616bb0fba603fec9d97a1852986390db67b0a) )
- ROM_LOAD( "797.u26", 0x1c00, 0x0400, CRC(ec250b24) SHA1(b8bbdc888008d072672024fced55fcf3da668532) )
- ROM_LOAD( "798.u8", 0x2000, 0x0400, CRC(1d34912d) SHA1(32b10bc9617fa14b9e98bd572c86bba495f64d18) )
- ROM_LOAD( "799.u7", 0x2400, 0x0400, CRC(f5695e4c) SHA1(77251f917802d01d76a9a6cf8bb6c12919803388) )
- ROM_LOAD( "800.u6", 0x2800, 0x0400, CRC(bf91ad92) SHA1(ebadcb9a6d2ee5e4b432f132095fac8d72e05a34) )
- ROM_LOAD( "801.u5", 0x2c00, 0x0400, CRC(1e9721dc) SHA1(ddb94275c8fd26f7323b89d234b34883737f8738) )
- ROM_LOAD( "802.u4", 0x3000, 0x0400, CRC(d32d2192) SHA1(334c10dd418fe320fc9a689c798e90787aaae7bf) )
- ROM_LOAD( "803.u3", 0x3400, 0x0400, CRC(3ede44d5) SHA1(3967fc6dc25b5872ae1ad389a31257b39879e13d) )
- ROM_LOAD( "804.u2", 0x3800, 0x0400, CRC(62847b01) SHA1(79763623df6eb7d189a0b0583ecc12c88602a44d) )
- ROM_LOAD( "805.u1", 0x3c00, 0x0400, CRC(ab418e86) SHA1(ad0dfd982b3bd3943aaf670d48485218f1cc4998) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-0789.u49", 0x0000, 0x0020, CRC(7fc1861f) SHA1(e005a8afd6b9e6b7d4ddf362c204e472b80582c6) )
-
- ROM_REGION( 0x0020, "user1", 0 ) /* misc PROM */
- ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, CRC(9617d796) SHA1(7cff2741866095ff42eadd8022bea349ec8d2f39) ) /* control PROM */
-ROM_END
-
-ROM_START( heiankyo )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "ha16.u33", 0x0000, 0x0400, CRC(1eec8b36) SHA1(55644cfeb7a9d64e52f11611c91c6186038772a3) )
- ROM_LOAD( "ha15.u32", 0x0400, 0x0400, CRC(c1b9a1a5) SHA1(068ad2da4852a50c948c4f9b3e1b1aa5c5bf5ca5) )
- ROM_LOAD( "ha14.u31", 0x0800, 0x0400, CRC(5b7b582e) SHA1(078b8b7d1836cc31cee244a58fb6a6a50135f833) )
- ROM_LOAD( "ha13.u30", 0x0c00, 0x0400, CRC(4aa67e01) SHA1(5539a028cb1935bb4d6ab747c92792f5462add1f) )
- ROM_LOAD( "ha12.u29", 0x1000, 0x0400, CRC(75889ca6) SHA1(552bcf976f31d7b634b79175c0470978b6b82433) )
- ROM_LOAD( "ha11.u28", 0x1400, 0x0400, CRC(d469226a) SHA1(dfca01d956e12162fab261a017c727a756b67206) )
- ROM_LOAD( "ha10.u27", 0x1800, 0x0400, CRC(4e203074) SHA1(1a80c396ceb9a2b1c737e1af791dbab2bee10ce5) )
- ROM_LOAD( "ha9.u26", 0x1c00, 0x0400, CRC(9c3a3dd2) SHA1(afcd85ec0174bdcab31135b4e271cec1eb75fd02) )
- ROM_LOAD( "ha8.u8", 0x2000, 0x0400, CRC(6cc64878) SHA1(4d03ff925d80835c27512b3bd04ea57f91b4491f) )
- ROM_LOAD( "ha7.u7", 0x2400, 0x0400, CRC(6d2f9527) SHA1(4e51c5404d0302547c1ae85b27ffe4de11d68224) )
- ROM_LOAD( "ha6.u6", 0x2800, 0x0400, CRC(e467c353) SHA1(a76b4f6d9702f760f287b5285f76ea4206c6934a) )
- ROM_LOAD( "ha3.u3", 0x2c00, 0x0400, CRC(6a55eda8) SHA1(f526ebf18a33271b798e53cfcadb27e4c3a03466) )
- ROM_FILL( 0x3000, 0x0400, 0x00 )
- ROM_FILL( 0x3400, 0x0400, 0x00 )
- ROM_LOAD( "ha2.u2", 0x3800, 0x0400, CRC(056b3b8b) SHA1(3cce6c928599604ffdcdb767caa7b32d8ec1e03d) )
- ROM_LOAD( "ha1.u1", 0x3c00, 0x0400, CRC(b8da2b5e) SHA1(70d97b89cb3162bd479203c53148319179a9873f) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "316-138.u49", 0x0010, 0x0010, CRC(67104ea9) SHA1(26b6bd2a1973b83bb9af4e3385d8cb14cb3f62f2) )
- ROM_CONTINUE( 0x0000, 0x0010 )
-
- ROM_REGION( 0x0040, "user1", 0 ) /* misc PROMs */
- ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, CRC(e60a7960) SHA1(b8b8716e859c57c35310efc4594262afedb84823) ) /* control PROM */
- ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* sequence PROM */
-ROM_END
-
-ROM_START( alphaho )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "c0.bin", 0x0000, 0x0400, CRC(db774c23) SHA1(c5042872110ae8d0c5c7629892a16b87e8f19d96) )
- ROM_LOAD( "c1.bin", 0x0400, 0x0400, CRC(b63f4695) SHA1(95b3ca96ca48f2c525eaf2b49956248e46686688) )
- ROM_LOAD( "c2.bin", 0x0800, 0x0400, CRC(4ebf0ba4) SHA1(b6651f7424fd5e62422b45ccce118db64dab50bf) )
- ROM_LOAD( "c3.bin", 0x0c00, 0x0400, CRC(126f17ec) SHA1(a78b9f62d76305903ad56ebf995ba0745774e6f2) )
- ROM_LOAD( "c4.bin", 0x1000, 0x0400, CRC(52798c61) SHA1(c01c11b99f56ca7f5d8824a3b9f795b2075d21a0) )
- ROM_LOAD( "c5.bin", 0x1400, 0x0400, CRC(4827cb36) SHA1(a5f56aa73147503fb6c5a3f38489754d8d27f257) )
- ROM_LOAD( "c6.bin", 0x1800, 0x0400, CRC(8b2ff47e) SHA1(43c84fe40180c42ade3c77790aeadeeb28e5c5cd) )
- ROM_LOAD( "c7.bin", 0x1c00, 0x0400, CRC(44921df4) SHA1(3ece06f20330aebe2770bf74142cd5e7bc5297ec) )
- ROM_LOAD( "c8.bin", 0x2000, 0x0400, CRC(9fb12fca) SHA1(a5b49ddd86be44b9220cc4ceb84b32c55e5d432b) )
- ROM_LOAD( "c9.bin", 0x2400, 0x0400, CRC(e5f622f7) SHA1(57858b6abbf34fc4ab2b19a469cbd945a0e14a0e) )
- ROM_LOAD( "ca.bin", 0x2800, 0x0400, CRC(82b28e77) SHA1(c4f425daa02acbc19d4ecee8bd38d8bb338e085f) )
- ROM_LOAD( "cb.bin", 0x2c00, 0x0400, CRC(94fba0ad) SHA1(c623368c710ddf8ff05e09c963eeb863c9951df3) )
- ROM_LOAD( "cc.bin", 0x3000, 0x0400, CRC(de338b6d) SHA1(a465aaac041e4aa017afb9821dd049ac4950ba92) )
- ROM_LOAD( "cd.bin", 0x3400, 0x0400, CRC(be76baac) SHA1(4b6a46c9484cfc90fa405f8568df44cfc96b1d7a) )
- ROM_LOAD( "ce.bin", 0x3800, 0x0400, CRC(3c409d57) SHA1(fda00b4eaaa187f489a8957952005e08b2b7ba40) )
- ROM_LOAD( "cf.bin", 0x3c00, 0x0400, CRC(d03c5a09) SHA1(eebc1d2302bd2bae28c25187bb099ae618c5cd05) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "alphaho.col", 0x0000, 0x0020, NO_DUMP )
-ROM_END
-
-// Wanted uses 2 sound boards. One from Head On and one from Space Attack. The sound board has the name printed on the bottom
-// together with the Sega Gremlin logo and other numbers.
-
-ROM_START( wantsega )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "4-19_1_9afc.u33", 0x0000, 0x0800, CRC(fc2ccf14) SHA1(345ed91ce74615a89b4ea0a5dc38489b36a4cc6e) )
- ROM_LOAD( "4-19_2_d170.u32", 0x0800, 0x0800, CRC(c1c59576) SHA1(5174c769390438d05682a4999439b2f5659cbda8) )
- ROM_LOAD( "4-19_3_f291.u31", 0x1000, 0x0800, CRC(862b7303) SHA1(8e89311ca23ca89d258744de393ecd88fc8d3bfb) )
- ROM_LOAD( "4-19_4_a49b.u30", 0x1800, 0x0800, CRC(0dfab42b) SHA1(723bda17dfaeec90545a0e8ef9ac83e5d92eec1e) )
- ROM_LOAD( "4-19_5_7b35.u29", 0x2000, 0x0800, CRC(530b9a43) SHA1(af07c2dbfe45c10ef3bd06efe56f780b6afbc9fc) )
- ROM_LOAD( "4-19_6_bc98.u28", 0x2800, 0x0800, CRC(d038b76e) SHA1(b72031b1a6010d70a1db66fc825cb9046fb98330) )
- ROM_LOAD( "4-19_7_f852.u27", 0x3000, 0x0800, CRC(e1bf29bd) SHA1(541e9e83f05e764f9bb6026ba21e15627a9f3cb7) )
- ROM_LOAD( "4-19_8_35df.u26", 0x3800, 0x0800, CRC(1b8a52cf) SHA1(59ecff36406191a5b92892147f6d84d9a501b697) )
- ROM_LOAD( "4-19_9_ffa9.u8", 0x4000, 0x0800, CRC(bd84a06a) SHA1(c60f6c915f01f8f474bcb2f4ebb65be06c51b7f8) )
- ROM_LOAD( "4-19_10_b2be.u7", 0x4800, 0x0800, CRC(bd321dd9) SHA1(25e18f4a35ece041a20e5dc1cd6bc529d3ba2719) )
- ROM_LOAD( "4-19_11_d8fb.u6", 0x5000, 0x0800, CRC(2cb222ca) SHA1(74717c194cdf07dd5b6d99552881a64ab7ef4886) )
- ROM_LOAD( "4-19_12_0bc6.u5", 0x5800, 0x0800, CRC(390e3c32) SHA1(1fd219bf8c09472c337b2f33052092eb8c970f5d) )
- ROM_LOAD( "4-19_13_e95d.u4", 0x6000, 0x0800, CRC(3779e91c) SHA1(0b338ba1558d4b7b1faa7fb1354b39764b1a43cb) )
- ROM_LOAD( "4-19_14_dfca.u3", 0x6800, 0x0800, CRC(7e70b2f7) SHA1(d3986716e8447f258186fafd1a95ce9c52f61033) )
- ROM_LOAD( "4-19_15_7032.u2", 0x7000, 0x0800, CRC(46b71a75) SHA1(a512ebee6020fd2ccbff9342a956131911177b08) )
- ROM_LOAD( "4-19_16_0000.u1", 0x7800, 0x0800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123.u49", 0x0000, 0x0020, CRC(3470a4b6) SHA1(8ccca436bf24246729ac62d196087704d4d3310c) )
-
- ROM_REGION( 0x0040, "timing_proms", 0 )
- ROM_LOAD( "pr3_82s123.u14", 0x0000, 0x0020, CRC(c6452647) SHA1(9a9e21bc578523106a6bf7270b37c453c7098f35) )
- ROM_LOAD( "pr33_82s123.u15", 0x0020, 0x0020, CRC(98579402) SHA1(1a5fa9b31aba83408f255e64799fd6bdd51d647e) )
-ROM_END
-
-/*************************************
- *
- * Game drivers
- *
- *************************************/
-
-// YEAR NAME PARENT MACHINE INPUT CLASS INIT ORIENT. COMPANY, FULLNAME, FLAGS
-GAMEL(1977, depthch, 0, depthch, depthch, vicdual_state, empty_init, ROT0, "Gremlin", "Depthcharge", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
-GAMEL(1977, depthcho, depthch, depthch, depthch, vicdual_state, empty_init, ROT0, "Gremlin", "Depthcharge (older)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
-GAMEL(1977, subhunt, depthch, depthch, depthch, vicdual_state, empty_init, ROT0, "Gremlin (Taito license)", "Sub Hunter (Gremlin / Taito)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
-GAME( 1977, safari, 0, safari, safari, vicdual_state, empty_init, ROT0, "Gremlin", "Safari (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1977, safaria, safari, safari, safari, vicdual_state, empty_init, ROT0, "Gremlin", "Safari (set 2, bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // on a bootleg board, but seems a different code revision too
-GAME( 1978, frogs, 0, frogs, frogs, vicdual_state, empty_init, ROT0, "Gremlin", "Frogs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, sspaceat, 0, sspaceat, sspaceat, vicdual_state, empty_init, ROT270, "Sega", "Space Attack (upright set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, sspaceat2, sspaceat, sspaceat, sspaceat, vicdual_state, empty_init, ROT270, "Sega", "Space Attack (upright set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, sspaceat3, sspaceat, sspaceat, sspaceat, vicdual_state, empty_init, ROT270, "Sega", "Space Attack (upright set 3)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, sspaceatc, sspaceat, sspaceat, sspaceat, vicdual_state, empty_init, ROT270, "Sega", "Space Attack (cocktail)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, sspacaho, 0, sspacaho, sspacaho, vicdual_state, empty_init, ROT270, "Sega", "Space Attack / Head On", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headon, 0, headon, headon, vicdual_state, empty_init, ROT0, "Gremlin", "Head On (2 players)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headon1, headon, headon, headon, vicdual_state, empty_init, ROT0, "Gremlin", "Head On (1 player)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headonn, headon, headonn, headonn, vicdual_state, empty_init, ROT270, "Nintendo", "Head On N", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headons, headon, headons, headons, vicdual_state, empty_init, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headonsa, headon, headons, headonsa, headonsa_state, empty_init, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headonmz, headon, headon, headonmz, vicdual_state, empty_init, ROT0, "bootleg", "Head On (bootleg, alt maze)", MACHINE_SUPPORTS_SAVE )
-GAME( 1979, supcrash, headon, headons, supcrash, vicdual_state, empty_init, ROT0, "bootleg (VGG)", "Super Crash (bootleg of Head On)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, hocrash, headon, headons, headons, vicdual_state, empty_init, ROT0, "bootleg (Fraber)", "Crash (bootleg of Head On)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headon2, 0, headon2, headon2, vicdual_state, empty_init, ROT0, "Sega", "Head On 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, headon2s, headon2, headon2bw, headon2s, headonsa_state, empty_init, ROT0, "bootleg (Sidam)", "Head On 2 (Sidam bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, car2, headon2, headon2bw, car2, vicdual_state, empty_init, ROT0, "bootleg (RZ Bologna)", "Car 2 (bootleg of Head On 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // title still says 'HeadOn 2'
-GAME( 1979, invho2, 0, invho2, invho2, vicdual_state, empty_init, ROT270, "Sega", "Invinco / Head On 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, nsub, 0, nsub, nsub, nsub_state, empty_init, ROT270, "Sega", "N-Sub (upright)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // this is the upright set. cocktail set still needs to be dumped
-GAME( 1980, samurai, 0, samurai, samurai, vicdual_state, empty_init, ROT270, "Sega", "Samurai", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, invinco, 0, invinco, invinco, vicdual_state, empty_init, ROT270, "Sega", "Invinco", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, invds, 0, invds, invds, vicdual_state, empty_init, ROT270, "Sega", "Invinco / Deep Scan", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, carhntds, 0, carhntds, carhntds, vicdual_state, empty_init, ROT270, "Sega", "Car Hunt / Deep Scan (France)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, tranqgun, 0, tranqgun, tranqgun, vicdual_state, empty_init, ROT270, "Sega", "Tranquillizer Gun", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, spacetrk, 0, spacetrk, spacetrk, vicdual_state, empty_init, ROT270, "Sega", "Space Trek (upright)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, spacetrkc, spacetrk, spacetrk, spacetrkc, vicdual_state, empty_init, ROT270, "Sega", "Space Trek (cocktail)", MACHINE_IMPERFECT_GRAPHICS |MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, carnival, 0, carnival, carnival, carnival_state, empty_init, ROT270, "Sega", "Carnival (upright, AY8912 music)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, carnivalb, carnival, carnivalb, carnival, carnival_state, empty_init, ROT270, "Sega", "Carnival (upright, PIT8253 music)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, carnivalc, carnival, carnival, carnivalc, carnival_state, empty_init, ROT270, "Sega", "Carnival (cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, carnivalh, carnival, carnivalh, carnivalh, carnival_state, empty_init, ROT270, "Sega", "Carnival (Head On hardware, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, carnivalha, carnival, carnivalh, carnivalh, carnival_state, empty_init, ROT270, "Sega", "Carnival (Head On hardware, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, verbena, carnival, carnival, carnival, carnival_state, empty_init, ROT270, "bootleg (Cocamatic)", "Verbena (bootleg of Carnival)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, brdrline, 0, brdrline, brdrline, vicdual_state, empty_init, ROT270, "Sega", "Borderline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, starrkr, brdrline, brdrline, starrkr, vicdual_state, empty_init, ROT270, "Sega", "Star Raker", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, brdrlins, brdrline, brdrline, brdrline, vicdual_state, empty_init, ROT270, "bootleg (Sidam)", "Borderline (Sidam bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, brdrlinb, brdrline, brdrline, brdrline, vicdual_state, empty_init, ROT270, "bootleg (Karateco)", "Borderline (Karateco bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, brdrlinet, brdrline, tranqgun, tranqgun, vicdual_state, empty_init, ROT270, "Sega", "Borderline (Tranquillizer Gun conversion)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // official factory conversion
-GAME( 198?, startrks, 0, headons, headons, vicdual_state, empty_init, ROT0, "bootleg (Sidam)", "Star Trek (Head On hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, digger, 0, digger, digger, vicdual_state, empty_init, ROT270, "Sega", "Digger", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, pulsar, 0, pulsar, pulsar, vicdual_state, empty_init, ROT270, "Sega", "Pulsar", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1979, heiankyo, 0, heiankyo, heiankyo, vicdual_state, empty_init, ROT270, "Denki Onkyo", "Heiankyo Alien", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 19??, alphaho, 0, alphaho, alphaho, vicdual_state, empty_init, ROT270, "Data East Corporation", "Alpha Fighter / Head On", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, wantsega, 0, carhntds, wantsega, vicdual_state, empty_init, ROT270, "Sega", "Wanted (Sega)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_CONTROLS | MACHINE_SUPPORTS_SAVE )