summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/zaxxon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/zaxxon.cpp')
-rw-r--r--src/mame/drivers/zaxxon.cpp1624
1 files changed, 0 insertions, 1624 deletions
diff --git a/src/mame/drivers/zaxxon.cpp b/src/mame/drivers/zaxxon.cpp
deleted file mode 100644
index db85175205d..00000000000
--- a/src/mame/drivers/zaxxon.cpp
+++ /dev/null
@@ -1,1624 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-/***************************************************************************
-
- Sega Zaxxon hardware
-
- Games supported:
- * Zaxxon
- * Super Zaxxon
- * Future Spy
- * Razmatazz
- * Ixion
- * Congo Bongo
-
- DIP locations verified from manual for:
- * Zaxxon
- * Congo Bongo
-
- Known bugs:
- * discrete sound emulation
-
-****************************************************************************
-
- Zaxxon memory map (preliminary)
-
- 0000-1fff ROM 3
- 2000-3fff ROM 2
- 4000-4fff ROM 1
- 6000-67ff RAM 1
- 6800-6fff RAM 2
- 8000-83ff Video RAM
- a000-a0ff sprites
-
- read:
- c000 IN0
- c001 IN1
- c002 DSW0
- c003 DSW1
- c100 IN2
- see the input_ports definition below for details on the input bits
-
- write:
- c000 coin A enable
- c001 coin B enable
- c002 coin aux enable
- c003-c004 coin counters
- c006 flip screen
- ff3c-ff3f sound (see below)
- fff0 interrupt enable
- fff1 character color bank (not used during the game, but used in test mode)
- fff8-fff9 background playfield position (11 bits)
- fffa background color bank (0 = standard 1 = reddish)
- fffb background enable
-
- interrupts:
- VBlank triggers IRQ, handled with interrupt mode 1
- NMI enters the test mode.
-
- Changes:
- 25 Jan 98 LBO
- * Added crude support for samples based on Frank's info. As of yet, I don't have
- a set that matches the names - I need a way to edit the .wav files I have.
- Hopefully I'll be able to create a good set shortly. I also don't know which
- sounds "loop".
- 26 Jan 98 LBO
- * Fixed the sound support. I lack explosion samples and the base missile sample so
- these are untested. I'm also unsure about the background noise. It seems to have
- a variable volume so I've tried to reproduce that via just 1 sample.
-
- 12 Mar 98 ATJ
- * For the moment replaced Brad's version of the samples with mine from the Mame/P
- release. As yet, no variable volume, but I will be combining the features from
- Brad's driver into mine ASAP.
-
-****************************************************************************
-
- Ixion Board Info
-
- Ixion
- Sega(prototype) 7/1/1983
-
-
- Board set is a modified Super Zaxxon, similar to Razzmatazz
-
- [G80 Sound board]
-
-
-
- U51
- U50
-
- [834-0214 ZAXXON-SOUNDII]
-
- 315-5013 U27 U28 U29
-
-
- U68 U69 U72
- U98
-
- [ ZAXXON-VIDEOII]
-
-
- U77 U78 U79 U90 U91 U92 U93
- U111 U112 U113
-
-****************************************************************************
-
- Congo Bongo memory map (preliminary)
-
- 0000-1fff ROM 1
- 2000-3fff ROM 2
- 4000-5fff ROM 3
- 6000-7fff ROM 4
-
- 8000-87ff RAM 1
- 8800-8fff RAM 2
- a000-a3ff Video RAM
- a400-a7ff Color RAM
-
- 8400-8fff sprites
-
- read:
- c000 IN0
- c001 IN1
- c002 DSW1
- c003 DSW2
- c008 IN2
-
- write:
- c000-c002 ?
- c006 ?
- c018 coinAen, used to enable input on coin slot A
- c019 coinBen, used to enable input on coin slot B
- c01a serven, used to enable input on service sw
- c01b counterA,coin counter for slot A
- c01c counterB,coin counter for slot B
- c01d background enable
- c01e flip screen
- c01f interrupt enable
-
- c028-c029 background playfield position
- c031 sprite enable ?
- c032 sprite start
- c033 sprite count
-
-
- interrupts:
- VBlank triggers IRQ, handled with interrupt mode 1
- NMI causes a ROM/RAM test.
-
- ----------------------------------------------------------------------
-
- There are two different Congo Bongo boardsets. One is a 3-stack (which I have)
- and the other is a 2-stack.
-
- The smaller third board is just a dedicated sound board, then later they started
- making 2-stack boardset versions with merged sound circuits built into the control
- board.
-
- The schematic name for the control board on the two-stack set is "Control Board II"
- my boardset uses control board 1.
-
- The ROMs that are dumped for MAME are from the 3-stack boardset.
- The ROMs on control board II are in different socket assignments than the ROMs
- found on control board 1.
-
- For example:
- MAME congo1.bin = ROM 1 at location U35 on the 3-stack control board 1
- MAME congo1.bin = ROM 1 at location U21 on the 2-stack control board II
-
- So the locations are different between the two boardsets but they appear to use
- the same ROM.
-
- The Video boards are exactly the same between the two boardset versions (bottom
- board) nothing changed with the video boards.
-
- Both the 2-stack control board and 3-stack control board use a PROM that's contents
- are identical between the two. Apparently the 3-Stack Control Board prom was
- dumped as a TBP28L22, because that is how the 2-Stack Control board prom was dumped.
-
- Board Location Label PROM Type
- --------------------- -------- --------------- ---------
- 3-Stack Control Board U68 MR020 (PR-5308) TBP28S42?
- 2-Stack Control Board U87 MR019 (PR-5315) TBP28L22?
-
- For the 3-stack control board PROM sheet 2 of 6 for the 834-5212 board lists the pinouts
- and they match the physical board. The PROM also has the TI logo and a date code? of J810A.
-
- ROM locations are different with ROMs 1-5 on control board II and a different
- numbered ROM in U87.
-
- ----ROM--NAMES-------------------------------------
-
-
- THREE STACK BOARDSET
- control board = 834-5166
- video board = 834-5167
- sound board = 834-5168
-
-
- Current MAME Schematic Board
- Names Names Location (3-stack)
- ------------ --------- -------------------
-
- congo.u68 = MR020 U68 control board
- congo1.bin = ROM 1 U35 control board
- congo2.bin = ROM 2 U34 control board
- congo3.bin = ROM 3 U33 control board
- congo4.bin = ROM 4 U32 control board
- congo5.bin = ROM 5 U76 control board
- congo6.bin = ROM 6 U57 video board
- congo7.bin = ROM 7 U58 video board
- congo8.bin = ROM 8 U93 video board
- congo9.bin = ROM 9 U94 video board
- congo10.bin = ROM 10 U95 video board
- congo11.bin = ROM 11 U77 video board
- congo12.bin = ROM 12 U78 video board
- congo13.bin = ROM 13 U79 video board
- congo14.bin = ROM 14 U104 video board
- congo15.bin = ROM 15 U105 video board
- congo16.bin = ROM 16 U106 video board
- congo17.bin = ROM 17 U11 sound board
-
-
-
- TWO STACK BOARDSET
- control board II = 834-5212
- video board = 834-5167
-
-
- Current MAME Schematic Board
- Names Names Location (2-stack)
- ------------ --------- -------------------
-
- congo.u68 = MR019 U87 control board
- congo1.bin = ROM 1 U21 control board
- congo2.bin = ROM 2 U22 control board
- congo3.bin = ROM 3 U23 control board
- congo4.bin = ROM 4 U24 control board
- congo5.bin = ROM 5 U77 control board
- congo6.bin = ROM 6 U57 video board
- congo7.bin = ROM 7 U58 video board
- congo8.bin = ROM 8 U93 video board
- congo9.bin = ROM 9 U94 video board
- congo10.bin = ROM 10 U95 video board
- congo11.bin = ROM 11 U77 video board
- congo12.bin = ROM 12 U78 video board
- congo13.bin = ROM 13 U79 video board
- congo14.bin = ROM 14 U104 video board
- congo15.bin = ROM 15 U105 video board
- congo16.bin = ROM 16 U106 video board
- congo17.bin = ROM 17 U19 control board
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/zaxxon.h"
-#include "audio/segasnd.h"
-
-#include "cpu/z80/z80.h"
-#include "machine/gen_latch.h"
-#include "machine/i8255.h"
-#include "machine/segacrpt_device.h"
-#include "sound/samples.h"
-#include "sound/sn76496.h"
-
-#include "screen.h"
-#include "speaker.h"
-
-
-/*************************************
- *
- * Constants
- *
- *************************************/
-
-static constexpr XTAL MASTER_CLOCK = 48.66_MHz_XTAL;
-static constexpr XTAL SOUND_CLOCK = 4_MHz_XTAL;
-
-static constexpr XTAL PIXEL_CLOCK = MASTER_CLOCK/8;
-
-#define HTOTAL (384)
-#define HBEND (0)
-#define HBSTART (256)
-
-#define VTOTAL (264)
-#define VBEND (16)
-#define VBSTART (240)
-
-
-
-/*************************************
- *
- * Interrupt generation
- *
- *************************************/
-
-INPUT_CHANGED_MEMBER(zaxxon_state::service_switch)
-{
- /* pressing the service switch sends an NMI */
- if (newval)
- m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-}
-
-
-WRITE_LINE_MEMBER(zaxxon_state::vblank_int)
-{
- if (state && m_int_enabled)
- m_maincpu->set_input_line(0, ASSERT_LINE);
-}
-
-
-WRITE_LINE_MEMBER(zaxxon_state::int_enable_w)
-{
- m_int_enabled = state;
- if (!m_int_enabled)
- m_maincpu->set_input_line(0, CLEAR_LINE);
-}
-
-
-
-/*************************************
- *
- * Machine setup
- *
- *************************************/
-
-void zaxxon_state::machine_start()
-{
- /* register for save states */
- save_item(NAME(m_int_enabled));
- save_item(NAME(m_coin_status));
-}
-
-
-
-/*************************************
- *
- * Input handlers
- *
- *************************************/
-
-READ8_MEMBER(zaxxon_state::razmataz_counter_r)
-{
- /* this behavior is really unknown; however, the code is using this */
- /* counter as a sort of timeout when talking to the sound board */
- /* it needs to be increasing at a reasonable rate but not too fast */
- /* or else the sound will mess up */
- return m_razmataz_counter++ >> 8;
-}
-
-
-template <int Num>
-CUSTOM_INPUT_MEMBER(zaxxon_state::razmataz_dial_r)
-{
- int res;
-
- int delta = m_dials[Num]->read();
-
- if (delta < 0x80)
- {
- // right
- m_razmataz_dial_pos[Num] -= delta;
- res = (m_razmataz_dial_pos[Num] << 1) | 1;
- }
- else
- {
- // left
- m_razmataz_dial_pos[Num] += delta;
- res = (m_razmataz_dial_pos[Num] << 1);
- }
-
- return res;
-}
-
-
-
-/*************************************
- *
- * Output handlers
- *
- *************************************/
-
-WRITE8_MEMBER(zaxxon_state::zaxxon_control_w)
-{
- // address decode for E0F8/E0F9 (74LS138 @ U57) has its G2B enable input in common with this latch
- bool a3 = BIT(offset, 3);
- m_mainlatch[1]->write_bit((a3 ? 4 : 0) | (offset & 3), BIT(data, 0));
- if (a3 && !BIT(offset, 1))
- bg_position_w(space, offset & 1, data);
-}
-
-
-WRITE_LINE_MEMBER(zaxxon_state::coin_counter_a_w)
-{
- machine().bookkeeping().coin_counter_w(0, state);
-}
-
-
-WRITE_LINE_MEMBER(zaxxon_state::coin_counter_b_w)
-{
- machine().bookkeeping().coin_counter_w(1, state);
-}
-
-
-// There is no external coin lockout circuitry; instead, the pcb simply latches
-// each coin input, which then needs to be explicitly cleared by the game.
-// Each coin input first passes through a debounce circuit consisting of a
-// LS175 quad flip-flop and LS10 3-input NAND gate, which is not emulated.
-WRITE_LINE_MEMBER(zaxxon_state::coin_enable_w)
-{
- for (int n = 0; n < 3; n++)
- if (!BIT(m_mainlatch[0]->output_state(), n))
- m_coin_status[n] = 0;
-}
-
-
-INPUT_CHANGED_MEMBER(zaxxon_state::zaxxon_coin_inserted)
-{
- if (newval && BIT(m_mainlatch[0]->output_state(), param))
- m_coin_status[param] = 1;
-}
-
-
-template <int Num>
-READ_LINE_MEMBER(zaxxon_state::zaxxon_coin_r)
-{
- return m_coin_status[Num];
-}
-
-
-
-/*************************************
- *
- * Main CPU memory handlers
- *
- *************************************/
-
-/* complete memory map derived from schematics */
-void zaxxon_state::zaxxon_map(address_map &map)
-{
- map(0x0000, 0x5fff).rom();
- map(0x6000, 0x6fff).ram();
- map(0x8000, 0x83ff).mirror(0x1c00).ram().w(FUNC(zaxxon_state::zaxxon_videoram_w)).share("videoram");
- map(0xa000, 0xa0ff).mirror(0x1f00).ram().share("spriteram");
- map(0xc000, 0xc000).mirror(0x18fc).portr("SW00");
- map(0xc001, 0xc001).mirror(0x18fc).portr("SW01");
- map(0xc002, 0xc002).mirror(0x18fc).portr("DSW02");
- map(0xc003, 0xc003).mirror(0x18fc).portr("DSW03");
- map(0xc100, 0xc100).mirror(0x18ff).portr("SW100");
- map(0xc000, 0xc007).mirror(0x18f8).w("mainlatch1", FUNC(ls259_device::write_d0));
- map(0xe03c, 0xe03f).mirror(0x1f00).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xe0f0, 0xe0f3).mirror(0x1f00).select(0x0008).w(FUNC(zaxxon_state::zaxxon_control_w));
-}
-
-void zaxxon_state::decrypted_opcodes_map(address_map &map)
-{
- map(0x0000, 0x5fff).rom().share("decrypted_opcodes");
-}
-
-/* derived from Zaxxon, different sound hardware */
-void zaxxon_state::ixion_map(address_map &map)
-{
- map(0x0000, 0x5fff).rom();
- map(0x6000, 0x6fff).ram();
- map(0x8000, 0x83ff).mirror(0x1c00).ram().w(FUNC(zaxxon_state::zaxxon_videoram_w)).share("videoram");
- map(0xa000, 0xa0ff).mirror(0x1f00).ram().share("spriteram");
- map(0xc000, 0xc000).mirror(0x18fc).portr("SW00");
- map(0xc001, 0xc001).mirror(0x18fc).portr("SW01");
- map(0xc002, 0xc002).mirror(0x18fc).portr("DSW02");
- map(0xc003, 0xc003).mirror(0x18fc).portr("DSW03");
- map(0xc100, 0xc100).mirror(0x18ff).portr("SW100");
- map(0xc000, 0xc007).mirror(0x18f8).w("mainlatch1", FUNC(ls259_device::write_d0));
- map(0xe03c, 0xe03c).mirror(0x1f00).rw("usbsnd", FUNC(usb_sound_device::status_r), FUNC(usb_sound_device::data_w));
- map(0xe0f0, 0xe0f3).mirror(0x1f00).select(0x0008).w(FUNC(zaxxon_state::zaxxon_control_w));
-}
-
-
-/* complete memory map derived from schematics */
-void zaxxon_state::congo_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x8fff).ram();
- map(0xa000, 0xa3ff).mirror(0x1800).ram().w(FUNC(zaxxon_state::zaxxon_videoram_w)).share("videoram");
- map(0xa400, 0xa7ff).mirror(0x1800).ram().w(FUNC(zaxxon_state::congo_colorram_w)).share("colorram");
- map(0xc000, 0xc000).mirror(0x1fc4).portr("SW00");
- map(0xc001, 0xc001).mirror(0x1fc4).portr("SW01");
- map(0xc002, 0xc002).mirror(0x1fc4).portr("DSW02");
- map(0xc003, 0xc003).mirror(0x1fc4).portr("DSW03");
- map(0xc008, 0xc008).mirror(0x1fc7).portr("SW100");
- map(0xc018, 0xc01f).mirror(0x1fc0).w("mainlatch1", FUNC(ls259_device::write_d0));
- map(0xc020, 0xc027).mirror(0x1fc0).w("mainlatch2", FUNC(ls259_device::write_d0));
- map(0xc028, 0xc029).mirror(0x1fc4).w(FUNC(zaxxon_state::bg_position_w));
- map(0xc030, 0xc033).mirror(0x1fc4).w(FUNC(zaxxon_state::congo_sprite_custom_w));
- map(0xc038, 0xc03f).mirror(0x1fc0).w("soundlatch", FUNC(generic_latch_8_device::write));
-}
-
-
-/* complete memory map derived from schematics */
-void zaxxon_state::congo_sound_map(address_map &map)
-{
- map(0x0000, 0x1fff).rom();
- map(0x4000, 0x47ff).mirror(0x1800).ram();
- map(0x6000, 0x6000).mirror(0x1fff).w("sn1", FUNC(sn76489a_device::write));
- map(0x8000, 0x8003).mirror(0x1ffc).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xa000, 0xa000).mirror(0x1fff).w("sn2", FUNC(sn76489a_device::write));
-}
-
-
-
-/*************************************
- *
- * Port definitions
- *
- *************************************/
-
-static INPUT_PORTS_START( zaxxon )
- PORT_START("SW00")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("SW01")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("SW100")
- PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(zaxxon_state, zaxxon_coin_r<0>)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(zaxxon_state, zaxxon_coin_r<1>)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(zaxxon_state, zaxxon_coin_r<2>)
-
- PORT_START("COIN")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_inserted, 0)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_inserted, 1)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_inserted, 2)
-
- PORT_START("SERVICESW")
- PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_HIGH ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,service_switch, 0)
-
- PORT_START("DSW02")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!1,!2")
- PORT_DIPSETTING( 0x03, "10000" )
- PORT_DIPSETTING( 0x01, "20000" )
- PORT_DIPSETTING( 0x02, "30000" )
- PORT_DIPSETTING( 0x00, "40000" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:!3")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:!4")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6")
- PORT_DIPSETTING( 0x30, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x40, 0x40, "Sound" ) PORT_DIPLOCATION("SW1:!7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
-
- PORT_START("DSW03")
- PORT_DIPNAME( 0x0f, 0x03, DEF_STR ( Coin_B ) ) PORT_DIPLOCATION("SW2:!1,!2,!3,!4")
- PORT_DIPSETTING( 0x0f, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x0b, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x06, "2C/1C 5C/3C 6C/4C" )
- PORT_DIPSETTING( 0x0a, "2C/1C 3C/2C 4C/3C" )
- PORT_DIPSETTING( 0x03, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x02, "1C/1C 5C/6C" )
- PORT_DIPSETTING( 0x0c, "1C/1C 4C/5C" )
- PORT_DIPSETTING( 0x04, "1C/1C 2C/3C" )
- PORT_DIPSETTING( 0x0d, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x08, "1C/2C 5C/11C" )
- PORT_DIPSETTING( 0x00, "1C/2C 4C/9C" )
- PORT_DIPSETTING( 0x05, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x09, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x01, DEF_STR ( 1C_5C ) )
- PORT_DIPSETTING( 0x0e, DEF_STR ( 1C_6C ) )
- PORT_DIPNAME( 0xf0, 0x30, DEF_STR ( Coin_A ) ) PORT_DIPLOCATION("SW2:!5,!6,!7,!8")
- PORT_DIPSETTING( 0xf0, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x70, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0xb0, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x60, "2C/1C 5C/3C 6C/4C" )
- PORT_DIPSETTING( 0xa0, "2C/1C 3C/2C 4C/3C" )
- PORT_DIPSETTING( 0x30, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x20, "1C/1C 5C/6C" )
- PORT_DIPSETTING( 0xc0, "1C/1C 4C/5C" )
- PORT_DIPSETTING( 0x40, "1C/1C 2C/3C" )
- PORT_DIPSETTING( 0xd0, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x80, "1C/2C 5C/11C" )
- PORT_DIPSETTING( 0x00, "1C/2C 4C/9C" )
- PORT_DIPSETTING( 0x50, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x90, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x10, DEF_STR ( 1C_5C ) )
- PORT_DIPSETTING( 0xe0, DEF_STR ( 1C_6C ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( szaxxon )
- PORT_INCLUDE(zaxxon)
-
- PORT_MODIFY("DSW02")
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( futspy )
- PORT_INCLUDE(zaxxon)
-
- PORT_MODIFY("SW00")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_MODIFY("SW01")
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_MODIFY("DSW02")
- PORT_DIPNAME( 0x0f, 0x00, DEF_STR ( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
- PORT_DIPSETTING( 0x08, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x0a, "2C/1C 5C/3C 6C/4C" )
- PORT_DIPSETTING( 0x0b, "2C/1C 4C/3C" )
- PORT_DIPSETTING( 0x00, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x0e, "1C/1C 2C/3C" )
- PORT_DIPSETTING( 0x0d, "1C/1C 4C/5C" )
- PORT_DIPSETTING( 0x0c, "1C/1C 5C/6C" )
- PORT_DIPSETTING( 0x09, DEF_STR ( 2C_3C ) )
- PORT_DIPSETTING( 0x01, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x0f, "1C/2C 5C/11C" )
- PORT_DIPSETTING( 0x02, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x03, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x04, DEF_STR ( 1C_5C ) )
- PORT_DIPSETTING( 0x05, DEF_STR ( 1C_6C ) )
- PORT_DIPNAME( 0xf0, 0x00, DEF_STR ( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
- PORT_DIPSETTING( 0x80, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x70, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x60, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0xa0, "2C/1C 5C/3C 6C/4C" )
- PORT_DIPSETTING( 0xb0, "2C/1C 4C/3C" )
- PORT_DIPSETTING( 0x00, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0xe0, "1C/1C 2C/3C" )
- PORT_DIPSETTING( 0xd0, "1C/1C 4C/5C" )
- PORT_DIPSETTING( 0xc0, "1C/1C 5C/6C" )
- PORT_DIPSETTING( 0x90, DEF_STR ( 2C_3C ) )
- PORT_DIPSETTING( 0x10, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0xf0, "1C/2C 5C/11C" )
- PORT_DIPSETTING( 0x20, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x30, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x40, DEF_STR ( 1C_5C ) )
- PORT_DIPSETTING( 0x50, DEF_STR ( 1C_6C ) )
-
- PORT_MODIFY("DSW03")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x08, "5" )
- PORT_DIPSETTING( 0x0c, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x00, "20K 40K 60K" )
- PORT_DIPSETTING( 0x10, "30K 60K 90K" )
- PORT_DIPSETTING( 0x20, "40K 70K 100K" )
- PORT_DIPSETTING( 0x30, "40K 80K 120K" )
- PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( razmataz )
- PORT_START("SW00")
- PORT_BIT( 0xff, 0x00, IPT_CUSTOM) PORT_CUSTOM_MEMBER(zaxxon_state, razmataz_dial_r<0>)
-
- PORT_START("DIAL.0")
- PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_RESET PORT_PLAYER(1)
-
- PORT_START("SW01")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("SW04")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x1e, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("SW08")
- PORT_BIT( 0xff, 0x00, IPT_CUSTOM) PORT_CUSTOM_MEMBER(zaxxon_state, razmataz_dial_r<1>)
-
- PORT_START("DIAL.1")
- PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_RESET PORT_PLAYER(2)
-
- PORT_START("SW0C")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x1e, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("SW100")
- PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(zaxxon_state, zaxxon_coin_r<0>)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(zaxxon_state, zaxxon_coin_r<1>)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(zaxxon_state, zaxxon_coin_r<2>)
-
- PORT_START("COIN")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_inserted, 0)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_inserted, 1)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_inserted, 2)
-
- PORT_START("SERVICESW")
- PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_HIGH ) PORT_CHANGED_MEMBER(DEVICE_SELF, zaxxon_state,service_switch, 0)
-
- PORT_START("DSW02")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) )
- PORT_DIPSETTING( 0x00, "50000" )
- PORT_DIPSETTING( 0x01, "100000" )
- PORT_DIPSETTING( 0x02, "150000" )
- PORT_DIPSETTING( 0x03, "200000" )
- PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x30, "6" )
- 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_HIGH, IPT_UNUSED )
-
- PORT_START("DSW03")
- PORT_DIPNAME( 0x07, 0x03, DEF_STR( Coin_B ) )
- PORT_DIPSETTING( 0x00, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x04, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x06, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x07, DEF_STR ( 1C_5C ) )
- PORT_DIPNAME( 0x38, 0x18, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x00, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x28, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x30, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x38, DEF_STR ( 1C_5C ) )
- PORT_DIPNAME( 0x40, 0x40, "Test Flip Screen" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Free_Play ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( ixion )
- PORT_INCLUDE(zaxxon)
-
- PORT_MODIFY("SW00")
- PORT_BIT( 0xff, 0x00, IPT_CUSTOM) PORT_CUSTOM_MEMBER(zaxxon_state, razmataz_dial_r<0>)
-
- PORT_START("DIAL.0")
- PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_RESET
-
- PORT_MODIFY("SW01")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_MODIFY("DSW02")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) )
- PORT_DIPSETTING( 0x00, "40000" )
- PORT_DIPSETTING( 0x01, "60000" )
- PORT_DIPSETTING( 0x02, "80000" )
- PORT_DIPSETTING( 0x03, "100000" )
- PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x08, "4" )
- PORT_DIPSETTING( 0x0c, "5" )
- PORT_DIPNAME( 0x70, 0x30, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Easiest ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Easier ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x30, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x50, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x60, DEF_STR( Harder ) )
- PORT_DIPSETTING( 0x70, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_MODIFY("DSW03")
- PORT_DIPNAME( 0x07, 0x03, DEF_STR( Coin_B ) )
- PORT_DIPSETTING( 0x00, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x04, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x06, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x07, DEF_STR ( 1C_5C ) )
- PORT_DIPNAME( 0x38, 0x18, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x00, DEF_STR ( 4C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR ( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR ( 2C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR ( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR ( 1C_2C ) )
- PORT_DIPSETTING( 0x28, DEF_STR ( 1C_3C ) )
- PORT_DIPSETTING( 0x30, DEF_STR ( 1C_4C ) )
- PORT_DIPSETTING( 0x38, DEF_STR ( 1C_5C ) )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Free_Play ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( congo )
- PORT_INCLUDE(zaxxon)
-
- PORT_MODIFY("SW00")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_DIPNAME( 0x20, 0x00, "Test Back and Target" )
- PORT_DIPSETTING( 0x20, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_MODIFY("SW01")
- PORT_DIPNAME( 0x20, 0x00, "Test I/O and Dip SW" )
- PORT_DIPSETTING( 0x20, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_MODIFY("DSW02")
- PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!3,!4")
- PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
-INPUT_PORTS_END
-
-
-/*************************************
- *
- * Graphics definitions
- *
- *************************************/
-
-static const gfx_layout zaxxon_spritelayout =
-{
- 32,32,
- RGN_FRAC(1,3),
- 3,
- { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) },
- { 0, 1, 2, 3, 4, 5, 6, 7,
- 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7,
- 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7,
- 24*8+0, 24*8+1, 24*8+2, 24*8+3, 24*8+4, 24*8+5, 24*8+6, 24*8+7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
- 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8,
- 64*8, 65*8, 66*8, 67*8, 68*8, 69*8, 70*8, 71*8,
- 96*8, 97*8, 98*8, 99*8, 100*8, 101*8, 102*8, 103*8 },
- 128*8
-};
-
-
-static GFXDECODE_START( gfx_zaxxon )
- GFXDECODE_ENTRY( "gfx_tx", 0, gfx_8x8x2_planar, 0, 64*2 ) /* characters */
- GFXDECODE_ENTRY( "gfx_bg", 0, gfx_8x8x3_planar, 0, 32*2 ) /* background tiles */
- GFXDECODE_ENTRY( "gfx_spr", 0, zaxxon_spritelayout, 0, 32*2 ) /* sprites */
-GFXDECODE_END
-
-
-/*************************************
- *
- * Machine driver
- *
- *************************************/
-
-void zaxxon_state::root(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/16);
- m_maincpu->set_addrmap(AS_PROGRAM, &zaxxon_state::zaxxon_map);
-
- I8255A(config, m_ppi);
- m_ppi->out_pa_callback().set(FUNC(zaxxon_state::zaxxon_sound_a_w));
- m_ppi->out_pb_callback().set(FUNC(zaxxon_state::zaxxon_sound_b_w));
- m_ppi->out_pc_callback().set(FUNC(zaxxon_state::zaxxon_sound_c_w));
-
- LS259(config, m_mainlatch[0]); // U55 on Zaxxon IC Board A
- m_mainlatch[0]->q_out_cb<0>().set(FUNC(zaxxon_state::coin_enable_w)); // COIN EN A
- m_mainlatch[0]->q_out_cb<1>().set(FUNC(zaxxon_state::coin_enable_w)); // COIN EN B
- m_mainlatch[0]->q_out_cb<2>().set(FUNC(zaxxon_state::coin_enable_w)); // SERV EN
- m_mainlatch[0]->q_out_cb<3>().set(FUNC(zaxxon_state::coin_counter_a_w)); // COUNT A
- m_mainlatch[0]->q_out_cb<4>().set(FUNC(zaxxon_state::coin_counter_b_w)); // COUNT B
- m_mainlatch[0]->q_out_cb<6>().set(FUNC(zaxxon_state::flipscreen_w)); // FLIP
-
- LS259(config, m_mainlatch[1]); // U56 on Zaxxon IC Board A
- m_mainlatch[1]->q_out_cb<0>().set(FUNC(zaxxon_state::int_enable_w)); // INTON
- m_mainlatch[1]->q_out_cb<1>().set(FUNC(zaxxon_state::fg_color_w)); // CREF 1
- m_mainlatch[1]->q_out_cb<6>().set(FUNC(zaxxon_state::bg_color_w)); // CREF 3
- m_mainlatch[1]->q_out_cb<7>().set(FUNC(zaxxon_state::bg_enable_w)); // BEN
-
- /* video hardware */
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_zaxxon);
- PALETTE(config, m_palette, FUNC(zaxxon_state::zaxxon_palette), 256);
-
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
- screen.set_screen_update(FUNC(zaxxon_state::screen_update_zaxxon));
- screen.set_palette(m_palette);
- screen.screen_vblank().set(FUNC(zaxxon_state::vblank_int));
-}
-
-
-void zaxxon_state::zaxxon(machine_config &config)
-{
- root(config);
-
- /* sound hardware */
- SPEAKER(config, "speaker").front_center();
- zaxxon_samples(config);
-}
-
-
-void zaxxon_state::szaxxon(machine_config &config)
-{
- zaxxon(config);
- m_maincpu->set_addrmap(AS_OPCODES, &zaxxon_state::decrypted_opcodes_map);
-}
-
-
-void zaxxon_state::szaxxone(machine_config &config)
-{
- zaxxon(config);
- sega_315_5013_device &maincpu(SEGA_315_5013(config.replace(), m_maincpu, MASTER_CLOCK/16));
- maincpu.set_addrmap(AS_PROGRAM, &zaxxon_state::zaxxon_map);
- maincpu.set_addrmap(AS_OPCODES, &zaxxon_state::decrypted_opcodes_map);
- maincpu.set_decrypted_tag(":decrypted_opcodes");
- maincpu.set_size(0x6000);
-}
-
-
-void zaxxon_state::futspye(machine_config &config)
-{
- root(config);
- sega_315_5061_device &maincpu(SEGA_315_5061(config.replace(), m_maincpu, MASTER_CLOCK/16));
- maincpu.set_addrmap(AS_PROGRAM, &zaxxon_state::zaxxon_map);
- maincpu.set_addrmap(AS_OPCODES, &zaxxon_state::decrypted_opcodes_map);
- maincpu.set_decrypted_tag(":decrypted_opcodes");
- maincpu.set_size(0x6000);
-
-
- /* video hardware */
- subdevice<screen_device>("screen")->set_screen_update(FUNC(zaxxon_state::screen_update_futspy));
-
- /* sound hardware */
- SPEAKER(config, "speaker").front_center();
- zaxxon_samples(config);
-}
-
-
-void zaxxon_state::razmataze(machine_config &config)
-{
- root(config);
- sega_315_5098_device &maincpu(SEGA_315_5098(config.replace(), m_maincpu, MASTER_CLOCK/16));
- maincpu.set_addrmap(AS_PROGRAM, &zaxxon_state::ixion_map);
- maincpu.set_addrmap(AS_OPCODES, &zaxxon_state::decrypted_opcodes_map);
- maincpu.set_decrypted_tag(":decrypted_opcodes");
- maincpu.set_size(0x6000);
-
- config.device_remove("ppi8255");
-
- /* video hardware */
- MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz)
- subdevice<screen_device>("screen")->set_screen_update(FUNC(zaxxon_state::screen_update_razmataz));
-
- /* sound hardware */
- SPEAKER(config, "speaker").front_center();
- SEGAUSBROM(config, "usbsnd", 0, m_maincpu).add_route(ALL_OUTPUTS, "speaker", 1.0);
-}
-
-
-void zaxxon_state::ixion(machine_config &config)
-{
- razmataze(config);
- sega_315_5013_device &maincpu(SEGA_315_5013(config.replace(), m_maincpu, MASTER_CLOCK/16));
- maincpu.set_addrmap(AS_PROGRAM, &zaxxon_state::ixion_map);
- maincpu.set_addrmap(AS_OPCODES, &zaxxon_state::decrypted_opcodes_map);
- maincpu.set_decrypted_tag(":decrypted_opcodes");
- maincpu.set_size(0x6000);
-
- m_mainlatch[0]->q_out_cb<6>().set_nop(); // flip screen not used
-}
-
-
-void zaxxon_state::congo(machine_config &config)
-{
- root(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &zaxxon_state::congo_map);
-
- m_ppi->in_pa_callback().set("soundlatch", FUNC(generic_latch_8_device::read));
- m_ppi->out_pa_callback().set_nop();
- m_ppi->out_pb_callback().set(FUNC(zaxxon_state::congo_sound_b_w));
- m_ppi->out_pc_callback().set(FUNC(zaxxon_state::congo_sound_c_w));
-
- // U52 on Control Board
- m_mainlatch[0]->q_out_cb<5>().set(FUNC(zaxxon_state::bg_enable_w)); // BEN
- m_mainlatch[0]->q_out_cb<7>().set(FUNC(zaxxon_state::int_enable_w)); // INTON
-
- // U53 on Control Board
- m_mainlatch[1]->q_out_cb<0>().set_nop(); // not used
- m_mainlatch[1]->q_out_cb<3>().set(FUNC(zaxxon_state::bg_color_w)); // CREF 3
- m_mainlatch[1]->q_out_cb<6>().set(FUNC(zaxxon_state::congo_fg_bank_w)); // BS
- m_mainlatch[1]->q_out_cb<7>().set(FUNC(zaxxon_state::congo_color_bank_w)); // CBS
-
- z80_device &audiocpu(Z80(config, "audiocpu", SOUND_CLOCK));
- audiocpu.set_addrmap(AS_PROGRAM, &zaxxon_state::congo_sound_map);
- audiocpu.set_periodic_int(FUNC(zaxxon_state::irq0_line_hold), attotime::from_hz(SOUND_CLOCK/16/16/16/4));
-
- /* video hardware */
- m_palette->set_entries(512).set_init(FUNC(zaxxon_state::zaxxon_palette));
-
- MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo)
- subdevice<screen_device>("screen")->set_screen_update(FUNC(zaxxon_state::screen_update_congo));
-
- /* sound hardware */
- SPEAKER(config, "speaker").front_center();
-
- GENERIC_LATCH_8(config, "soundlatch");
-
- SN76489A(config, "sn1", SOUND_CLOCK).add_route(ALL_OUTPUTS, "speaker", 1.0); // schematic shows sn76489A
-
- SN76489A(config, "sn2", SOUND_CLOCK/4).add_route(ALL_OUTPUTS, "speaker", 1.0); // schematic shows sn76489A
-
- congo_samples(config);
-}
-
-
-/*************************************
- *
- * ROM definitions
- *
- *************************************/
-
-ROM_START( zaxxon )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "zaxxon_rom3d.u27", 0x0000, 0x2000, CRC(6e2b4a30) SHA1(80ac53c554c84226b119cbe3cf3470bcdbcd5762) ) /* These 3 roms had a red D stamped on them */
- ROM_LOAD( "zaxxon_rom2d.u28", 0x2000, 0x2000, CRC(1c9ea398) SHA1(0cd259be3fa80f3d53dfa76d5ca06773cdfe5945) )
- ROM_LOAD( "zaxxon_rom1d.u29", 0x4000, 0x1000, CRC(1c123ef9) SHA1(2588be06ea7baca6112d58c78a1eeb98aad8a02e) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "zaxxon_rom14.u68", 0x0000, 0x0800, CRC(07bf8c52) SHA1(425157a1625b1bd5169c3218b958010bf6af12bb) )
- ROM_LOAD( "zaxxon_rom15.u69", 0x0800, 0x0800, CRC(c215edcb) SHA1(f1ded2173eb139f48d2ca86c5ef00acbe6c11cd3) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "zaxxon_rom6.u113", 0x0000, 0x2000, CRC(6e07bb68) SHA1(a002f3441b0f0044615ce71ecbd14edadba16270) )
- ROM_LOAD( "zaxxon_rom5.u112", 0x2000, 0x2000, CRC(0a5bce6a) SHA1(a86543727389931244ba8a576b543d7ac05a2585) )
- ROM_LOAD( "zaxxon_rom4.u111", 0x4000, 0x2000, CRC(a5bf1465) SHA1(a8cd27dfb4a606bae8bfddcf936e69e980fb1977) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "zaxxon_rom11.u77", 0x0000, 0x2000, CRC(eaf0dd4b) SHA1(194e2ca0a806e0cb6bb7cc8341d1fc6f2ea911f6) )
- ROM_LOAD( "zaxxon_rom12.u78", 0x2000, 0x2000, CRC(1c5369c7) SHA1(af6a5984c3cedfa8c9efcd669f4f205b51a433b2) )
- ROM_LOAD( "zaxxon_rom13.u79", 0x4000, 0x2000, CRC(ab4e8a9a) SHA1(4ac79cccc30e4adfa878b36101e97e20ac010438) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "zaxxon_rom8.u91", 0x0000, 0x2000, CRC(28d65063) SHA1(e1f90716236c61df61bdc6915a8e390cb4dcbf15) )
- ROM_LOAD( "zaxxon_rom7.u90", 0x2000, 0x2000, CRC(6284c200) SHA1(d26a9049541479b8b19f5aa0690cf4aaa787c9b5) )
- ROM_LOAD( "zaxxon_rom10.u93", 0x4000, 0x2000, CRC(a95e61fd) SHA1(a0f8c15ff75affa3532abf8f340811cf415421fd) )
- ROM_LOAD( "zaxxon_rom9.u92", 0x6000, 0x2000, CRC(7e42691f) SHA1(2124363be8f590b74e2b15dd3f90d77dd9ca9528) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "mro16.u76", 0x0000, 0x0100, CRC(6cc6695b) SHA1(01ae8450ccc302e1a5ae74230d44f6f531a962e2) ) /* BPROM from TI stamped as J214A2 MRO16 */
- ROM_LOAD( "zaxxon.u72", 0x0100, 0x0100, CRC(deaa21f7) SHA1(0cf08fb62f77d93ff7cb883c633e0db35906e11d) ) /* Same data as PR-5167 from Super Zaxxon */
-ROM_END
-
-ROM_START( zaxxon2 )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "zaxxon_rom3a.u27", 0x0000, 0x2000, CRC(b18e428a) SHA1(d3ff077e37a3ed8a9cc32cba19e1694b79df6b30) ) /* Need to verify proper revision level via ROM label */
- ROM_LOAD( "zaxxon_rom2a.u28", 0x2000, 0x2000, CRC(1c9ea398) SHA1(0cd259be3fa80f3d53dfa76d5ca06773cdfe5945) ) /* Need to verify proper revision level via ROM label */
- ROM_LOAD( "zaxxon_rom1a.u29", 0x4000, 0x1000, CRC(1977d933) SHA1(b0100a51a85928b8df3b07b27c9e7e4f929d7893) ) /* Need to verify proper revision level via ROM label */
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "zaxxon_rom14.u68", 0x0000, 0x0800, CRC(07bf8c52) SHA1(425157a1625b1bd5169c3218b958010bf6af12bb) )
- ROM_LOAD( "zaxxon_rom15.u69", 0x0800, 0x0800, CRC(c215edcb) SHA1(f1ded2173eb139f48d2ca86c5ef00acbe6c11cd3) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "zaxxon_rom6.u113", 0x0000, 0x2000, CRC(6e07bb68) SHA1(a002f3441b0f0044615ce71ecbd14edadba16270) )
- ROM_LOAD( "zaxxon_rom5.u112", 0x2000, 0x2000, CRC(0a5bce6a) SHA1(a86543727389931244ba8a576b543d7ac05a2585) )
- ROM_LOAD( "zaxxon_rom4.u111", 0x4000, 0x2000, CRC(a5bf1465) SHA1(a8cd27dfb4a606bae8bfddcf936e69e980fb1977) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "zaxxon_rom11.u77", 0x0000, 0x2000, CRC(eaf0dd4b) SHA1(194e2ca0a806e0cb6bb7cc8341d1fc6f2ea911f6) )
- ROM_LOAD( "zaxxon_rom12.u78", 0x2000, 0x2000, CRC(1c5369c7) SHA1(af6a5984c3cedfa8c9efcd669f4f205b51a433b2) )
- ROM_LOAD( "zaxxon_rom13.u79", 0x4000, 0x2000, CRC(ab4e8a9a) SHA1(4ac79cccc30e4adfa878b36101e97e20ac010438) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "zaxxon_rom8.u91", 0x0000, 0x2000, CRC(28d65063) SHA1(e1f90716236c61df61bdc6915a8e390cb4dcbf15) )
- ROM_LOAD( "zaxxon_rom7.u90", 0x2000, 0x2000, CRC(6284c200) SHA1(d26a9049541479b8b19f5aa0690cf4aaa787c9b5) )
- ROM_LOAD( "zaxxon_rom10.u93", 0x4000, 0x2000, CRC(a95e61fd) SHA1(a0f8c15ff75affa3532abf8f340811cf415421fd) )
- ROM_LOAD( "zaxxon_rom9.u92", 0x6000, 0x2000, CRC(7e42691f) SHA1(2124363be8f590b74e2b15dd3f90d77dd9ca9528) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "mro16.u76", 0x0000, 0x0100, CRC(6cc6695b) SHA1(01ae8450ccc302e1a5ae74230d44f6f531a962e2) ) /* BPROM from TI stamped as J214A2 MRO16 */
- ROM_LOAD( "mro17.u41", 0x0100, 0x0100, CRC(a9e1fb43) SHA1(57dbcfe2438fd090c08594818549aeea6339eab2) ) /* BPROM from TI stamped as J214A2 MRO17 */
-ROM_END
-
-ROM_START( zaxxon3 )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "zaxxon3_alt.u27", 0x0000, 0x2000, CRC(2f2f2b7c) SHA1(009b6f8943b35bf933c56e9538377be3e1db6a6d) ) /* Need to verify proper revision level via ROM label */
- ROM_LOAD( "zaxxon2_alt.u28", 0x2000, 0x2000, CRC(ae7e1c38) SHA1(896f920e04c182eced3a3714b45a1d96e45b4473) ) /* Need to verify proper revision level via ROM label */
- ROM_LOAD( "zaxxon1_alt.u29", 0x4000, 0x1000, CRC(cc67c097) SHA1(d258b2900a173b0f3f8acd94b6b636ce3324616d) ) /* Need to verify proper revision level via ROM label */
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "zaxxon_rom14.u68", 0x0000, 0x0800, CRC(07bf8c52) SHA1(425157a1625b1bd5169c3218b958010bf6af12bb) )
- ROM_LOAD( "zaxxon_rom15.u69", 0x0800, 0x0800, CRC(c215edcb) SHA1(f1ded2173eb139f48d2ca86c5ef00acbe6c11cd3) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "zaxxon_rom6.u113", 0x0000, 0x2000, CRC(6e07bb68) SHA1(a002f3441b0f0044615ce71ecbd14edadba16270) )
- ROM_LOAD( "zaxxon_rom5.u112", 0x2000, 0x2000, CRC(0a5bce6a) SHA1(a86543727389931244ba8a576b543d7ac05a2585) )
- ROM_LOAD( "zaxxon_rom4.u111", 0x4000, 0x2000, CRC(a5bf1465) SHA1(a8cd27dfb4a606bae8bfddcf936e69e980fb1977) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "zaxxon_rom11.u77", 0x0000, 0x2000, CRC(eaf0dd4b) SHA1(194e2ca0a806e0cb6bb7cc8341d1fc6f2ea911f6) )
- ROM_LOAD( "zaxxon_rom12.u78", 0x2000, 0x2000, CRC(1c5369c7) SHA1(af6a5984c3cedfa8c9efcd669f4f205b51a433b2) )
- ROM_LOAD( "zaxxon_rom13.u79", 0x4000, 0x2000, CRC(ab4e8a9a) SHA1(4ac79cccc30e4adfa878b36101e97e20ac010438) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "zaxxon_rom8.u91", 0x0000, 0x2000, CRC(28d65063) SHA1(e1f90716236c61df61bdc6915a8e390cb4dcbf15) )
- ROM_LOAD( "zaxxon_rom7.u90", 0x2000, 0x2000, CRC(6284c200) SHA1(d26a9049541479b8b19f5aa0690cf4aaa787c9b5) )
- ROM_LOAD( "zaxxon_rom10.u93", 0x4000, 0x2000, CRC(a95e61fd) SHA1(a0f8c15ff75affa3532abf8f340811cf415421fd) )
- ROM_LOAD( "zaxxon_rom9.u92", 0x6000, 0x2000, CRC(7e42691f) SHA1(2124363be8f590b74e2b15dd3f90d77dd9ca9528) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "mro16.u76", 0x0000, 0x0100, CRC(6cc6695b) SHA1(01ae8450ccc302e1a5ae74230d44f6f531a962e2) ) /* BPROM from TI stamped as J214A2 MRO16 */
- ROM_LOAD( "mro17.u41", 0x0100, 0x0100, CRC(a9e1fb43) SHA1(57dbcfe2438fd090c08594818549aeea6339eab2) ) /* BPROM from TI stamped as J214A2 MRO17 */
-ROM_END
-
-ROM_START( zaxxonj )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "zaxxon_rom3.u13", 0x0000, 0x2000, CRC(925168c7) SHA1(0f14b5072b5be252955ffb3a30fa6c76b3e6a6c4) )
- ROM_LOAD( "zaxxon_rom2.u12", 0x2000, 0x2000, CRC(c088df92) SHA1(c0c6cd8dcf6db65129980331fa9ecc3800b63436) )
- ROM_LOAD( "zaxxon_rom1.u11", 0x4000, 0x1000, CRC(f832dd79) SHA1(1d626f22630eaa53603637991a06aeb7401e9769) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "zaxxon_rom14.u54", 0x0000, 0x0800, CRC(07bf8c52) SHA1(425157a1625b1bd5169c3218b958010bf6af12bb) )
- ROM_LOAD( "zaxxon_rom15.u55", 0x0800, 0x0800, CRC(c215edcb) SHA1(f1ded2173eb139f48d2ca86c5ef00acbe6c11cd3) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "zaxxon_rom6.u70", 0x0000, 0x2000, CRC(6e07bb68) SHA1(a002f3441b0f0044615ce71ecbd14edadba16270) )
- ROM_LOAD( "zaxxon_rom5.u69", 0x2000, 0x2000, CRC(0a5bce6a) SHA1(a86543727389931244ba8a576b543d7ac05a2585) )
- ROM_LOAD( "zaxxon_rom4.u68", 0x4000, 0x2000, CRC(a5bf1465) SHA1(a8cd27dfb4a606bae8bfddcf936e69e980fb1977) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "zaxxon_rom11.u59", 0x0000, 0x2000, CRC(eaf0dd4b) SHA1(194e2ca0a806e0cb6bb7cc8341d1fc6f2ea911f6) )
- ROM_LOAD( "zaxxon_rom12.u60", 0x2000, 0x2000, CRC(1c5369c7) SHA1(af6a5984c3cedfa8c9efcd669f4f205b51a433b2) )
- ROM_LOAD( "zaxxon_rom13.u61", 0x4000, 0x2000, CRC(ab4e8a9a) SHA1(4ac79cccc30e4adfa878b36101e97e20ac010438) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "zaxxon_rom8.u58", 0x0000, 0x2000, CRC(28d65063) SHA1(e1f90716236c61df61bdc6915a8e390cb4dcbf15) )
- ROM_LOAD( "zaxxon_rom7.u57", 0x2000, 0x2000, CRC(6284c200) SHA1(d26a9049541479b8b19f5aa0690cf4aaa787c9b5) )
- ROM_LOAD( "zaxxon_rom10.u60", 0x4000, 0x2000, CRC(a95e61fd) SHA1(a0f8c15ff75affa3532abf8f340811cf415421fd) )
- ROM_LOAD( "zaxxon_rom9.u59", 0x6000, 0x2000, CRC(7e42691f) SHA1(2124363be8f590b74e2b15dd3f90d77dd9ca9528) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "mro16.u76", 0x0000, 0x0100, CRC(6cc6695b) SHA1(01ae8450ccc302e1a5ae74230d44f6f531a962e2) ) /* BPROM from TI stamped as J214A2 MRO16 */
- ROM_LOAD( "mro17.u41", 0x0100, 0x0100, CRC(a9e1fb43) SHA1(57dbcfe2438fd090c08594818549aeea6339eab2) ) /* BPROM from TI stamped as J214A2 MRO17 */
-ROM_END
-
-ROM_START( zaxxonb )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "jackson_rom3.u27", 0x0000, 0x2000, CRC(125bca1c) SHA1(f4160966d42e5282736cde8a276204ba8910ca61) ) /* Need to verify ALL the labels in this set */
- ROM_LOAD( "jackson_rom2.u28", 0x2000, 0x2000, CRC(c088df92) SHA1(c0c6cd8dcf6db65129980331fa9ecc3800b63436) ) /* Same data as ROM2 from the Japanese set */
- ROM_LOAD( "jackson_rom1.u29", 0x4000, 0x1000, CRC(e7bdc417) SHA1(209f0d259f60b984c84229bb31af1ef939adc73e) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "zaxxon_rom14.u54", 0x0000, 0x0800, CRC(07bf8c52) SHA1(425157a1625b1bd5169c3218b958010bf6af12bb) )
- ROM_LOAD( "zaxxon_rom15.u55", 0x0800, 0x0800, CRC(c215edcb) SHA1(f1ded2173eb139f48d2ca86c5ef00acbe6c11cd3) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "zaxxon_rom6.u70", 0x0000, 0x2000, CRC(6e07bb68) SHA1(a002f3441b0f0044615ce71ecbd14edadba16270) )
- ROM_LOAD( "zaxxon_rom5.u69", 0x2000, 0x2000, CRC(0a5bce6a) SHA1(a86543727389931244ba8a576b543d7ac05a2585) )
- ROM_LOAD( "zaxxon_rom4.u68", 0x4000, 0x2000, CRC(a5bf1465) SHA1(a8cd27dfb4a606bae8bfddcf936e69e980fb1977) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "zaxxon_rom11.u59", 0x0000, 0x2000, CRC(eaf0dd4b) SHA1(194e2ca0a806e0cb6bb7cc8341d1fc6f2ea911f6) )
- ROM_LOAD( "zaxxon_rom12.u60", 0x2000, 0x2000, CRC(1c5369c7) SHA1(af6a5984c3cedfa8c9efcd669f4f205b51a433b2) )
- ROM_LOAD( "zaxxon_rom13.u61", 0x4000, 0x2000, CRC(ab4e8a9a) SHA1(4ac79cccc30e4adfa878b36101e97e20ac010438) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "zaxxon_rom8.u58", 0x0000, 0x2000, CRC(28d65063) SHA1(e1f90716236c61df61bdc6915a8e390cb4dcbf15) )
- ROM_LOAD( "zaxxon_rom7.u57", 0x2000, 0x2000, CRC(6284c200) SHA1(d26a9049541479b8b19f5aa0690cf4aaa787c9b5) )
- ROM_LOAD( "zaxxon_rom10.u60", 0x4000, 0x2000, CRC(a95e61fd) SHA1(a0f8c15ff75affa3532abf8f340811cf415421fd) )
- ROM_LOAD( "zaxxon_rom9.u59", 0x6000, 0x2000, CRC(7e42691f) SHA1(2124363be8f590b74e2b15dd3f90d77dd9ca9528) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "mro16.u76", 0x0000, 0x0100, CRC(6cc6695b) SHA1(01ae8450ccc302e1a5ae74230d44f6f531a962e2) ) /* BPROM from TI stamped as J214A2 MRO16 */
- ROM_LOAD( "zaxxon.u72", 0x0100, 0x0100, CRC(deaa21f7) SHA1(0cf08fb62f77d93ff7cb883c633e0db35906e11d) )
-ROM_END
-
-
-ROM_START( szaxxon )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "1804e.u27", 0x0000, 0x2000, CRC(af7221da) SHA1(b5d3beb296d52ed69b4ceacf329c20a72e3a1dce) )
- ROM_LOAD( "1803e.u28", 0x2000, 0x2000, CRC(1b90fb2a) SHA1(afb2bd2ffee3f5e589064f59b6ac21ed915094df) )
- ROM_LOAD( "1802e.u29", 0x4000, 0x1000, CRC(07258b4a) SHA1(91e3a0c0df6c9cf66980d1ffcc3830ffdbef8c2f) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "1815b.u68", 0x0000, 0x0800, CRC(bccf560c) SHA1(9f92bd15466048a5665bfc2ebc8c6504af9353eb) )
- ROM_LOAD( "1816b.u69", 0x0800, 0x0800, CRC(d28c628b) SHA1(42ab7dc0e4e0d09213054597373383cdb6a55699) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "1807b.u113", 0x0000, 0x2000, CRC(f51af375) SHA1(8682217dc800f43b73cd5e8501dbf3b7cd136dc1) )
- ROM_LOAD( "1806b.u112", 0x2000, 0x2000, CRC(a7de021d) SHA1(a1bee07aa906366aa69866d1bdff38e2d90fafdd) )
- ROM_LOAD( "1805b.u111", 0x4000, 0x2000, CRC(5bfb3b04) SHA1(f898e42d6bc1fd3629c9caee3c2af27805969ac6) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "1812e.u77", 0x0000, 0x2000, CRC(1503ae41) SHA1(d4085f15fcbfb9547a7f9e2cb7ce9276c4d6c08d) )
- ROM_LOAD( "1813e.u78", 0x2000, 0x2000, CRC(3b53d83f) SHA1(118e9d2b4f5daf96f5a38ccd92d0b046a470b0b2) )
- ROM_LOAD( "1814e.u79", 0x4000, 0x2000, CRC(581e8793) SHA1(2b3305dd55dc09d7394ed8ae691773972dba28b9) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "1809b.u91", 0x0000, 0x2000, CRC(dd1b52df) SHA1(8170dd9f81c41104694951a2c74405d0c6d8b9b6) )
- ROM_LOAD( "1808b.u90", 0x2000, 0x2000, CRC(b5bc07f0) SHA1(1e4d460ce8cca66b081ee8ec1a9adb6ef98274ec) )
- ROM_LOAD( "1811b.u93", 0x4000, 0x2000, CRC(68e84174) SHA1(b78c44d92078552835a20bcb7125fc9ca8af5048) )
- ROM_LOAD( "1810b.u92", 0x6000, 0x2000, CRC(a509994b) SHA1(51541ec78ab3f8241a5ddf7f99a46f5e44292992) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "pr-5168.u98", 0x0000, 0x0100, CRC(15727a9f) SHA1(42840e9ab303fb64102a1dbae03d66c9cf743a9f) ) /* TBP24S10N */
- ROM_LOAD( "pr-5167.u72", 0x0100, 0x0100, CRC(deaa21f7) SHA1(0cf08fb62f77d93ff7cb883c633e0db35906e11d) ) /* TBP28L22 */
-ROM_END
-
-
-ROM_START( futspy )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "fs_snd.u27", 0x0000, 0x2000, CRC(7578fe7f) SHA1(ab42bdf74b07c1ba5337c3d34647d3ee16f9db05) )
- ROM_LOAD( "fs_snd.u28", 0x2000, 0x2000, CRC(8ade203c) SHA1(f095f4019befff7af4203c886ef42357f79592a1) )
- ROM_LOAD( "fs_snd.u29", 0x4000, 0x1000, CRC(734299c3) SHA1(12acf71d9d00e0e0df29c4d8c397ad407266b364) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "fs_snd.u68", 0x0000, 0x0800, CRC(305fae2d) SHA1(fbe89feff0fb2d4515000d1b73b7c91aac4e0b67) )
- ROM_LOAD( "fs_snd.u69", 0x0800, 0x0800, CRC(3c5658c0) SHA1(70ac44b9334b086cdecd73f5f7820a0bf8ae2629) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "fs_vid.u113", 0x0000, 0x2000, CRC(36d2bdf6) SHA1(c27835055beedf61ba644070f8920b6008d99040) )
- ROM_LOAD( "fs_vid.u112", 0x2000, 0x2000, CRC(3740946a) SHA1(e7579dd91628a811a60a8d8a5b407728b74aa17e) )
- ROM_LOAD( "fs_vid.u111", 0x4000, 0x2000, CRC(4cd4df98) SHA1(3ae4b2d0a79069e0de81596805bcf1a9ae7912cf) )
-
- ROM_REGION( 0xc000, "gfx_spr", 0 )
- ROM_LOAD( "fs_vid.u77", 0x0000, 0x4000, CRC(1b93c9ec) SHA1(4b1d3b7e35d65cc3b96eb4f2e98c59e779bcb1c1) )
- ROM_LOAD( "fs_vid.u78", 0x4000, 0x4000, CRC(50e55262) SHA1(363acbde7b37a2358b3e53cfc08c9bd5dee73d55) )
- ROM_LOAD( "fs_vid.u79", 0x8000, 0x4000, CRC(bfb02e3e) SHA1(f53bcec46b8c7d26e9ab01c821a8d1578b85f786) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "fs_vid.u91", 0x0000, 0x2000, CRC(86da01f4) SHA1(954e4be1b0e24c8bc88c2b328e3a0e32005bb7b2) )
- ROM_LOAD( "fs_vid.u90", 0x2000, 0x2000, CRC(2bd41d2d) SHA1(efb74b4bce31c7868ab6438e07b02b0539d35120) )
- ROM_LOAD( "fs_vid.u93", 0x4000, 0x2000, CRC(b82b4997) SHA1(263f74aab47fc4e516b2111eaa94beea61c5fbe5) )
- ROM_LOAD( "fs_vid.u92", 0x6000, 0x2000, CRC(af4015af) SHA1(6ed01a42d395ada6f2442b68f901fe61b04c8e44) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "futrprom.u98", 0x0000, 0x0100, CRC(9ba2acaa) SHA1(20e0257ca531ddc398b3aab861c7b5c41b659d40) )
- ROM_LOAD( "futrprom.u72", 0x0100, 0x0100, CRC(f9e26790) SHA1(339f27e0126312d35211b5ce533f293b58851c1d) )
-ROM_END
-
-
-ROM_START( razmataz )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "u27", 0x0000, 0x2000, CRC(254f350f) SHA1(f8e84778b7ffc4da76e97992f01c742c212480cf) )
- ROM_LOAD( "u28", 0x2000, 0x2000, CRC(3a1eaa99) SHA1(d1f2a61a8548135c9754097aa468672616244710) )
- ROM_LOAD( "u29", 0x4000, 0x2000, CRC(0ee67e78) SHA1(c6c703000a4e0da8af65be53b2a6b2ef67860c30) )
-
- ROM_REGION( 0x1000, "usbcpu", 0 )
- ROM_LOAD( "1924.u51", 0x0000, 0x0800, CRC(a75e0011) SHA1(7d67ce2e8a2de471221b3b565a937ae1a35e1560) )
- ROM_LOAD( "1923.u50", 0x0800, 0x0800, CRC(59994a51) SHA1(57ccee24a989efe39f8ffc08aab7d72a1cdef3d1) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "1921.u68", 0x0000, 0x0800, CRC(77f8ff5a) SHA1(d535109387559dd5b58dc6432a1eae6535442079) )
- ROM_LOAD( "1922.u69", 0x0800, 0x0800, CRC(cf63621e) SHA1(60452ad34f2b0e0afa0f09455d9aa84058c54fd5) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "1934.u113", 0x0000, 0x2000, CRC(39bb679c) SHA1(0a384286dbfc8b35e4779119f62769b6cfc93a52) )
- ROM_LOAD( "1933.u112", 0x2000, 0x2000, CRC(1022185e) SHA1(874d796baea8ade2c642f3640ec7875a9f509a68) )
- ROM_LOAD( "1932.u111", 0x4000, 0x2000, CRC(c7a715eb) SHA1(8b04558c87c5a5f94a5bab9fbe198a0b8a84ebf4) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "1925.u77", 0x0000, 0x2000, CRC(a7965437) SHA1(24ab3cc9b6d70e8cab4f0a20f84fb98682b321f5) )
- ROM_LOAD( "1926.u78", 0x2000, 0x2000, CRC(9a3af434) SHA1(0b5b1ac9cf8bee1c3830ef3baffcd7d3a05bf765) )
- ROM_LOAD( "1927.u79", 0x4000, 0x2000, CRC(0323de2b) SHA1(6f6ceafe6472d59bd0ffecb9dd2d401659157b50) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "1929.u91", 0x0000, 0x2000, CRC(55c7c757) SHA1(ad8d548eb965f343e88bad4b4ad1b5b226f21d71) )
- ROM_LOAD( "1928.u90", 0x2000, 0x2000, CRC(e58b155b) SHA1(dd6abeae66de69734b7aa5e133dbfb8f8a35578e) )
- ROM_LOAD( "1931.u93", 0x4000, 0x2000, CRC(55fe0f82) SHA1(391434b41b6235199a4f19a8873a523cbb417f70) )
- ROM_LOAD( "1930.u92", 0x6000, 0x2000, CRC(f355f105) SHA1(93067b7390c05b71020e77abdd9577b39e486d9f) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "clr.u98", 0x0000, 0x0100, CRC(0fd671af) SHA1(7f26139398754dae7383c9375fca95b7970fcefb) )
- ROM_LOAD( "clr.u72", 0x0100, 0x0100, CRC(03233bc5) SHA1(30bd690da7eda4e13df90d7ee59dbf744b3541a4) )
-ROM_END
-
-
-ROM_START( ixion )
- ROM_REGION( 0x6000, "maincpu", 0 )
- ROM_LOAD( "1937d.u27", 0x0000, 0x2000, CRC(f447aac5) SHA1(f6ec02f20482649ba1765254e0e67a8593075092) )
- ROM_LOAD( "1938b.u28", 0x2000, 0x2000, CRC(17f48640) SHA1(d661e8ae0747c2c526360cb72e403deba7a98e71) )
- ROM_LOAD( "1955b.u29", 0x4000, 0x1000, CRC(78636ec6) SHA1(afca6418221e700749031cb3fa738907d77c1566) )
-
- ROM_REGION( 0x1000, "usbcpu", 0 )
- ROM_LOAD( "1944a.u51", 0x0000, 0x0800, CRC(88215098) SHA1(54bd1c71e7f10f20623e47f4e791f54ce698bc08) )
- ROM_LOAD( "1943a.u50", 0x0800, 0x0800, CRC(77e5a1f0) SHA1(00152ffb59ebac718b300fdf24314b456748ffbe) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 )
- ROM_LOAD( "1939a.u68", 0x0000, 0x0800, CRC(c717ddc7) SHA1(86fdef368f097a27aac6e05bf3208fcdaf7d9da7) )
- ROM_LOAD( "1940a.u69", 0x0800, 0x0800, CRC(ec4bb3ad) SHA1(8a38bc48cda59b5e76a5153d459bb2d01d6a56f3) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 )
- ROM_LOAD( "1952a.u113", 0x0000, 0x2000, CRC(ffb9b03d) SHA1(b7a900166a880ca4a71fec6ad02f5c0ecfc92df8) )
- ROM_LOAD( "1951a.u112", 0x2000, 0x2000, CRC(db743f1b) SHA1(a5d13d597fe999757137d96fb4bf7c7efc7a3245) )
- ROM_LOAD( "1950a.u111", 0x4000, 0x2000, CRC(c2de178a) SHA1(0347a751accb02576b9cd8b123b79018cc05268c) )
-
- ROM_REGION( 0x6000, "gfx_spr", 0 )
- ROM_LOAD( "1945a.u77", 0x0000, 0x2000, CRC(3a3fbfe7) SHA1(f3a503f476524f9de5b55de49009972124e58601) )
- ROM_LOAD( "1946a.u78", 0x2000, 0x2000, CRC(f2cb1b53) SHA1(8c2fb58ce7de7876c4d2f1a3d13c6a5efd06d354) )
- ROM_LOAD( "1947a.u79", 0x4000, 0x2000, CRC(d2421e92) SHA1(07000055ace2c6983c7add180904d6bc20e1bb3b) )
-
- ROM_REGION( 0x8000, "tilemap_dat", 0 )
- ROM_LOAD( "1948a.u91", 0x0000, 0x2000, CRC(7a7fcbbe) SHA1(76dffffcadbe446091ee98958873aa76f7b17213) )
- ROM_LOAD( "1953a.u90", 0x2000, 0x2000, CRC(6b626ea7) SHA1(7e02da0b031a42b077c173d85f15f75242e61e98) )
- ROM_LOAD( "1949a.u93", 0x4000, 0x2000, CRC(e7722d09) SHA1(c9a0fb4fac798454facd3d5dd02d2c05cfe8e3a6) )
- ROM_LOAD( "1954a.u92", 0x6000, 0x2000, CRC(a970f5ff) SHA1(0f1f8f329ceefcbd0725f8eeff1b01348f5c9374) )
-
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "1942a.u98", 0x0000, 0x0100, CRC(3a8e6f74) SHA1(c2d480f8c8a111c1e23cbf819dea807f8128208d) )
- ROM_LOAD( "1941a.u72", 0x0100, 0x0100, CRC(a5d0d97e) SHA1(2677508b44f9b7a6c6ee56e49a7b88073e80debe) )
-ROM_END
-
-/*
-Extra notes about Congo Bongo:
-
-There is known to be a version of Congo Bongo with official Sega "EPR" numbers. Sega game ID number for this set is 834-5197
-
-3 board stack with 834-5181 stickered as 834-5207 with standard 834-5167 video board & 834-5168 sound board.
-EPR-5309A.rom1 @ U35
-EPR-5310A.rom2 @ U34
-EPR-5311A.rom3 @ U33
-EPR-5312A.rom4 @ U32
-
-Uses the MR018 BPROM @ U68
-
-Oddly, it seems most Congo Bongo board sets (2 & 3 board stacks) have hand written labels for the program roms. At least
-all the PCB photos I found via Google as well as those included in a recent redump of both board set types. And YES it's
-actually "CONGO BONGO REV C ROM 2A" this is verified in several PCB photos.
-
-*/
-
-ROM_START( congo ) /* 2 board stack, Sega game ID number for this set is 834-5180 */
- ROM_REGION( 0x8000, "maincpu", 0 ) /* Located on 834-5181 PCB, AKA Tip Top-CONTR II */
- ROM_LOAD( "congo_rev_c_rom1.u21", 0x0000, 0x2000, CRC(09355b5b) SHA1(0085ac7eb0035a88cb54cdd3dd6b2643141d39db) ) /* SUM16 written on label 044A */
- ROM_LOAD( "congo_rev_c_rom2a.u22", 0x2000, 0x2000, CRC(1c5e30ae) SHA1(7cc5420e0e7a2793a671b938c121ae4079f5b1b8) ) /* SUM16 written on label DD4D */
- ROM_LOAD( "congo_rev_c_rom3.u23", 0x4000, 0x2000, CRC(5ee1132c) SHA1(26294cd69ee43dfd29fc3642e8c04552dcdbaa49) ) /* SUM16 written on label C932 */
- ROM_LOAD( "congo_rev_c_rom4.u24", 0x6000, 0x2000, CRC(5332b9bf) SHA1(8440cc6f92918b3b467a5a0b86c9defeb0a7db0e) ) /* SUM16 written on label 5128 */
-
- ROM_REGION( 0x2000, "audiocpu", 0 ) /* Located on 834-5181 PCB, AKA Tip Top-CONTR II */
- ROM_LOAD( "tip_top_rom_17.u19", 0x0000, 0x2000, CRC(5024e673) SHA1(6f846146a4e29bcdfd5bd1bc5f1211d344cd5afa) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 ) /* Located on 834-5181 PCB, AKA Tip Top-CONTR II */
- ROM_LOAD( "tip_top_rom_5.u76", 0x00000, 0x1000, CRC(7bf6ba2b) SHA1(3a2bd21b0e0e55cbd737c7b075492b5e8f944150) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_8.u93", 0x00000, 0x2000, CRC(db99a619) SHA1(499029197d26f9aea3ac15d66b5738ce7dea1f6c) )
- ROM_LOAD( "tip_top_rom_9.u94", 0x02000, 0x2000, CRC(93e2309e) SHA1(bd8a74332cac0cf85f319c1f35d04a4781c9d655) )
- ROM_LOAD( "tip_top_rom_10.u95", 0x04000, 0x2000, CRC(f27a9407) SHA1(d41c90c89ae28c92bf0c57927357d9b68ed7e0ef) )
-
- ROM_REGION( 0xc000, "gfx_spr", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_12.u78", 0x00000, 0x2000, CRC(15e3377a) SHA1(04a7fbfd58924359fae0ba76ed152f325f07beae) )
- ROM_LOAD( "tip_top_rom_13.u79", 0x02000, 0x2000, CRC(1d1321c8) SHA1(d12e156a24db105c5f941b7ef79f32181b616710) )
- ROM_LOAD( "tip_top_rom_11.u77", 0x04000, 0x2000, CRC(73e2709f) SHA1(14919facf08f6983c3a9baad031239a1b57c8202) )
- ROM_LOAD( "tip_top_rom_14.u104", 0x06000, 0x2000, CRC(bf9169fe) SHA1(303d68e38e9a47464f14dc5be6bff1be01b88bb6) )
- ROM_LOAD( "tip_top_rom_16.u106", 0x08000, 0x2000, CRC(cb6d5775) SHA1(b1f8ead6e6f8ad995baaeb7f8554d41ed2296fff) )
- ROM_LOAD( "tip_top_rom_15.u105", 0x0a000, 0x2000, CRC(7b15a7a4) SHA1(b1c05e60a1442e4dd56d197be8b768bcbf45e2d9) )
-
- ROM_REGION( 0x4000, "tilemap_dat", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_6.u57", 0x0000, 0x2000, CRC(d637f02b) SHA1(29127149924c5bfdeb9456d7df2a5a5d14098794) )
- ROM_LOAD( "tip_top_rom_7.u58", 0x2000, 0x2000, CRC(80927943) SHA1(4683520c241d209c6cabeaead9b363f046c30f70) )
-
- ROM_REGION( 0x0200, "proms", 0 ) /* Located on 834-5181 PCB, AKA Tip Top-CONTR II */
- ROM_LOAD( "mr019.u87", 0x0000, 0x100, CRC(b788d8ae) SHA1(9765180f3087140c75e5953409df841787558160) ) /* BPROM type is a TBP28L22 per the schematics */
- ROM_RELOAD( 0x0100, 0x100 )
-ROM_END
-
-ROM_START( congoa ) /* 3 board stack, Sega game ID number for this set is 834-5156 */
- ROM_REGION( 0x8000, "maincpu", 0 ) /* Located on 834-5166 PCB AKA Tip Top-CONTR */
- ROM_LOAD( "congo_rev_c_rom1.u35", 0x0000, 0x2000, CRC(09355b5b) SHA1(0085ac7eb0035a88cb54cdd3dd6b2643141d39db) ) /* SUM16 written on label 044A */
- ROM_LOAD( "congo_rev_c_rom2a.u34", 0x2000, 0x2000, CRC(1c5e30ae) SHA1(7cc5420e0e7a2793a671b938c121ae4079f5b1b8) ) /* SUM16 written on label DD4D */
- ROM_LOAD( "congo_rev_c_rom3.u33", 0x4000, 0x2000, CRC(5ee1132c) SHA1(26294cd69ee43dfd29fc3642e8c04552dcdbaa49) ) /* SUM16 written on label C932 */
- ROM_LOAD( "congo_rev_c_rom4.u32", 0x6000, 0x2000, CRC(5332b9bf) SHA1(8440cc6f92918b3b467a5a0b86c9defeb0a7db0e) ) /* SUM16 written on label 5128 */
-
- ROM_REGION( 0x2000, "audiocpu", 0 ) /* Located on 834-5168 PCB AKA Tip Top-SOUND */
- ROM_LOAD( "tip_top_rom_17.u11", 0x0000, 0x2000, CRC(5024e673) SHA1(6f846146a4e29bcdfd5bd1bc5f1211d344cd5afa) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 ) /* Located on 834-5166 PCB AKA Tip Top-CONTR */
- ROM_LOAD( "tip_top_rom_5.u76", 0x00000, 0x1000, CRC(7bf6ba2b) SHA1(3a2bd21b0e0e55cbd737c7b075492b5e8f944150) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_8.u93", 0x00000, 0x2000, CRC(db99a619) SHA1(499029197d26f9aea3ac15d66b5738ce7dea1f6c) )
- ROM_LOAD( "tip_top_rom_9.u94", 0x02000, 0x2000, CRC(93e2309e) SHA1(bd8a74332cac0cf85f319c1f35d04a4781c9d655) )
- ROM_LOAD( "tip_top_rom_10.u95", 0x04000, 0x2000, CRC(f27a9407) SHA1(d41c90c89ae28c92bf0c57927357d9b68ed7e0ef) )
-
- ROM_REGION( 0xc000, "gfx_spr", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_12.u78", 0x00000, 0x2000, CRC(15e3377a) SHA1(04a7fbfd58924359fae0ba76ed152f325f07beae) )
- ROM_LOAD( "tip_top_rom_13.u79", 0x02000, 0x2000, CRC(1d1321c8) SHA1(d12e156a24db105c5f941b7ef79f32181b616710) )
- ROM_LOAD( "tip_top_rom_11.u77", 0x04000, 0x2000, CRC(73e2709f) SHA1(14919facf08f6983c3a9baad031239a1b57c8202) )
- ROM_LOAD( "tip_top_rom_14.u104", 0x06000, 0x2000, CRC(bf9169fe) SHA1(303d68e38e9a47464f14dc5be6bff1be01b88bb6) )
- ROM_LOAD( "tip_top_rom_16.u106", 0x08000, 0x2000, CRC(cb6d5775) SHA1(b1f8ead6e6f8ad995baaeb7f8554d41ed2296fff) )
- ROM_LOAD( "tip_top_rom_15.u105", 0x0a000, 0x2000, CRC(7b15a7a4) SHA1(b1c05e60a1442e4dd56d197be8b768bcbf45e2d9) )
-
- ROM_REGION( 0x4000, "tilemap_dat", 0 ) /* Located on 834-5167 PCB, Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_6.u57", 0x0000, 0x2000, CRC(d637f02b) SHA1(29127149924c5bfdeb9456d7df2a5a5d14098794) )
- ROM_LOAD( "tip_top_rom_7.u58", 0x2000, 0x2000, CRC(80927943) SHA1(4683520c241d209c6cabeaead9b363f046c30f70) )
-
- ROM_REGION( 0x0200, "proms", 0 ) /* Located on 834-5166 PCB AKA Tip Top-CONTR */
- ROM_LOAD( "mr018.u68", 0x0000, 0x200, CRC(56b9f1ba) SHA1(32ae743087f7c2dfba6818df8e9d665d8d9a3ee7) ) /* dumped as TBP28S42, first 256 bytes match MR019 then 0xFF filled */
-ROM_END
-
-ROM_START( tiptop ) /* 3 board stack */
- ROM_REGION( 0x8000, "maincpu", 0 ) /* Located on 834-5166 PCB AKA Tip Top-CONTR */
- ROM_LOAD( "tiptop1.u35", 0x0000, 0x2000, CRC(e19dc77b) SHA1(d3782dd55701e0f5cd426ad2771c1bd0264c366a) )
- ROM_LOAD( "tiptop2.u34", 0x2000, 0x2000, CRC(3fcd3b6e) SHA1(2898807ee36fca7fbc06616c9a070604beb782b9) )
- ROM_LOAD( "tiptop3.u33", 0x4000, 0x2000, CRC(1c94250b) SHA1(cb70a91d07b0a9c61a093f1b5d37f2e69d1345c1) )
- ROM_LOAD( "tiptop4.u32", 0x6000, 0x2000, CRC(577b501b) SHA1(5cad98a60a5241ba9467aa03fcd94c7490e6dbbb) )
-
- ROM_REGION( 0x2000, "audiocpu", 0 ) /* Located on 834-5168 PCB AKA Tip Top-SOUND */
- ROM_LOAD( "tip_top_rom_17.u11", 0x0000, 0x2000, CRC(5024e673) SHA1(6f846146a4e29bcdfd5bd1bc5f1211d344cd5afa) )
-
- ROM_REGION( 0x1000, "gfx_tx", 0 ) /* Located on 834-5166 PCB AKA Tip Top-CONTR */
- ROM_LOAD( "tip_top_rom_5.u76", 0x00000, 0x1000, CRC(7bf6ba2b) SHA1(3a2bd21b0e0e55cbd737c7b075492b5e8f944150) )
-
- ROM_REGION( 0x6000, "gfx_bg", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_8.u93", 0x00000, 0x2000, CRC(db99a619) SHA1(499029197d26f9aea3ac15d66b5738ce7dea1f6c) )
- ROM_LOAD( "tip_top_rom_9.u94", 0x02000, 0x2000, CRC(93e2309e) SHA1(bd8a74332cac0cf85f319c1f35d04a4781c9d655) )
- ROM_LOAD( "tip_top_rom_10.u95", 0x04000, 0x2000, CRC(f27a9407) SHA1(d41c90c89ae28c92bf0c57927357d9b68ed7e0ef) )
-
- ROM_REGION( 0xc000, "gfx_spr", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_12.u78", 0x00000, 0x2000, CRC(15e3377a) SHA1(04a7fbfd58924359fae0ba76ed152f325f07beae) )
- ROM_LOAD( "tip_top_rom_13.u79", 0x02000, 0x2000, CRC(1d1321c8) SHA1(d12e156a24db105c5f941b7ef79f32181b616710) )
- ROM_LOAD( "tip_top_rom_11.u77", 0x04000, 0x2000, CRC(73e2709f) SHA1(14919facf08f6983c3a9baad031239a1b57c8202) )
- ROM_LOAD( "tip_top_rom_14.u104", 0x06000, 0x2000, CRC(bf9169fe) SHA1(303d68e38e9a47464f14dc5be6bff1be01b88bb6) )
- ROM_LOAD( "tip_top_rom_16.u106", 0x08000, 0x2000, CRC(cb6d5775) SHA1(b1f8ead6e6f8ad995baaeb7f8554d41ed2296fff) )
- ROM_LOAD( "tip_top_rom_15.u105", 0x0a000, 0x2000, CRC(7b15a7a4) SHA1(b1c05e60a1442e4dd56d197be8b768bcbf45e2d9) )
-
- ROM_REGION( 0x4000, "tilemap_dat", 0 ) /* Located on 834-5167 PCB, AKA Tip Tip-VIDEO */
- ROM_LOAD( "tip_top_rom_6.u57", 0x0000, 0x2000, CRC(d637f02b) SHA1(29127149924c5bfdeb9456d7df2a5a5d14098794) )
- ROM_LOAD( "tip_top_rom_7.u58", 0x2000, 0x2000, CRC(80927943) SHA1(4683520c241d209c6cabeaead9b363f046c30f70) )
-
- ROM_REGION( 0x0200, "proms", 0 ) /* Located on 834-5166 PCB AKA Tip Top-CONTR */
- ROM_LOAD( "mr018.u68", 0x0000, 0x200, CRC(56b9f1ba) SHA1(32ae743087f7c2dfba6818df8e9d665d8d9a3ee7) ) /* dumped as TBP28S42, first 256 bytes match MR019 then 0xFF filled */
-ROM_END
-
-
-/*************************************
- *
- * Driver initialization
- *
- *************************************/
-
-void zaxxon_state::init_zaxxonj()
-{
-/*
- the values vary, but the translation mask is always laid out like this:
-
- 0 1 2 3 4 5 6 7 8 9 a b c d e f
- 0 A A B B A A B B C C D D C C D D
- 1 A A B B A A B B C C D D C C D D
- 2 E E F F E E F F G G H H G G H H
- 3 E E F F E E F F G G H H G G H H
- 4 A A B B A A B B C C D D C C D D
- 5 A A B B A A B B C C D D C C D D
- 6 E E F F E E F F G G H H G G H H
- 7 E E F F E E F F G G H H G G H H
- 8 H H G G H H G G F F E E F F E E
- 9 H H G G H H G G F F E E F F E E
- a D D C C D D C C B B A A B B A A
- b D D C C D D C C B B A A B B A A
- c H H G G H H G G F F E E F F E E
- d H H G G H H G G F F E E F F E E
- e D D C C D D C C B B A A B B A A
- f D D C C D D C C B B A A B B A A
-
- (e.g. 0xc0 is XORed with H)
- therefore in the following tables we only keep track of A, B, C, D, E, F, G and H.
-*/
- static const uint8_t data_xortable[2][8] =
- {
- { 0x0a,0x0a,0x22,0x22,0xaa,0xaa,0x82,0x82 }, /* ...............0 */
- { 0xa0,0xaa,0x28,0x22,0xa0,0xaa,0x28,0x22 }, /* ...............1 */
- };
-
- static const uint8_t opcode_xortable[8][8] =
- {
- { 0x8a,0x8a,0x02,0x02,0x8a,0x8a,0x02,0x02 }, /* .......0...0...0 */
- { 0x80,0x80,0x08,0x08,0xa8,0xa8,0x20,0x20 }, /* .......0...0...1 */
- { 0x8a,0x8a,0x02,0x02,0x8a,0x8a,0x02,0x02 }, /* .......0...1...0 */
- { 0x02,0x08,0x2a,0x20,0x20,0x2a,0x08,0x02 }, /* .......0...1...1 */
- { 0x88,0x0a,0x88,0x0a,0xaa,0x28,0xaa,0x28 }, /* .......1...0...0 */
- { 0x80,0x80,0x08,0x08,0xa8,0xa8,0x20,0x20 }, /* .......1...0...1 */
- { 0x88,0x0a,0x88,0x0a,0xaa,0x28,0xaa,0x28 }, /* .......1...1...0 */
- { 0x02,0x08,0x2a,0x20,0x20,0x2a,0x08,0x02 } /* .......1...1...1 */
- };
-
- uint8_t *rom = memregion("maincpu")->base();
-
- for (int A = 0x0000; A < 0x6000; A++)
- {
- uint8_t src = rom[A];
-
- /* pick the translation table from bit 0 of the address */
- int i = A & 1;
-
- /* pick the offset in the table from bits 1, 3 and 5 of the source data */
- int j = ((src >> 1) & 1) + (((src >> 3) & 1) << 1) + (((src >> 5) & 1) << 2);
- /* the bottom half of the translation table is the mirror image of the top */
- if (src & 0x80) j = 7 - j;
-
- /* decode the ROM data */
- rom[A] = src ^ data_xortable[i][j];
-
- /* now decode the opcodes */
- /* pick the translation table from bits 0, 4, and 8 of the address */
- i = ((A >> 0) & 1) + (((A >> 4) & 1) << 1) + (((A >> 8) & 1) << 2);
- m_decrypted_opcodes[A] = src ^ opcode_xortable[i][j];
- }
-}
-
-
-
-void zaxxon_state::init_razmataz()
-{
- address_space &pgmspace = m_maincpu->space(AS_PROGRAM);
-
- /* additional input ports are wired */
- pgmspace.install_read_port(0xc004, 0xc004, 0x18f3, "SW04");
- pgmspace.install_read_port(0xc008, 0xc008, 0x18f3, "SW08");
- pgmspace.install_read_port(0xc00c, 0xc00c, 0x18f3, "SW0C");
-
- /* unknown behavior expected here */
- pgmspace.install_read_handler(0xc80a, 0xc80a, read8_delegate(*this, FUNC(zaxxon_state::razmataz_counter_r)));
-
- /* additional state saving */
- save_item(NAME(m_razmataz_dial_pos));
- save_item(NAME(m_razmataz_counter));
-}
-
-
-
-/*************************************
- *
- * Game drivers
- *
- *************************************/
-
-/* these games run on standard Zaxxon hardware */
-GAME( 1982, zaxxon, 0, zaxxon, zaxxon, zaxxon_state, empty_init, ROT90, "Sega", "Zaxxon (set 1, rev D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zaxxon2, zaxxon, zaxxon, zaxxon, zaxxon_state, empty_init, ROT90, "Sega", "Zaxxon (set 2, unknown rev)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zaxxon3, zaxxon, zaxxon, zaxxon, zaxxon_state, empty_init, ROT90, "Sega", "Zaxxon (set 3, unknown rev)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zaxxonj, zaxxon, szaxxon, zaxxon, zaxxon_state, init_zaxxonj, ROT90, "Sega", "Zaxxon (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zaxxonb, zaxxon, szaxxon, zaxxon, zaxxon_state, init_zaxxonj, ROT90, "bootleg", "Jackson", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-
-/* standard Zaxxon hardware but extra sound board plugged into 8255 PPI socket and encrypted cpu */
-GAME( 1982, szaxxon, 0, szaxxone, szaxxon, zaxxon_state, empty_init, ROT90, "Sega", "Super Zaxxon (315-5013)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-
-/* standard Zaxxon hardware? but encrypted cpu */
-GAME( 1984, futspy, 0, futspye, futspy, zaxxon_state, empty_init, ROT90, "Sega", "Future Spy (315-5061)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-
-/* these games run on modified Zaxxon hardware with no skewing, extra inputs, and a */
-/* G-80 Universal Sound Board */
-GAME( 1983, razmataz, 0, razmataze, razmataz, zaxxon_state, init_razmataz, ROT90, "Sega", "Razzmatazz", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, ixion, 0, ixion, ixion, zaxxon_state, empty_init, ROT270, "Sega", "Ixion (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
-
-/* these games run on a slightly newer Zaxxon hardware with more ROM space and a */
-/* custom sprite DMA chip */
-GAME( 1983, congo, 0, congo, congo, zaxxon_state, empty_init, ROT90, "Sega", "Congo Bongo (Rev C, 2 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, congoa, congo, congo, congo, zaxxon_state, empty_init, ROT90, "Sega", "Congo Bongo (Rev C, 3 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, tiptop, congo, congo, congo, zaxxon_state, empty_init, ROT90, "Sega", "Tip Top (3 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )