summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/omegrace.c
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2015-11-08 12:56:12 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2015-11-08 12:56:12 +0100
commit7c19aac60e12d6f5ea301bdb34d7826a01e0b06f (patch)
treef310d86aa2c6bfc19d115307dedde4eb0cd52dad /src/mame/drivers/omegrace.c
parenta57b46ae933badd7441ce1644711dbb851e2b504 (diff)
Rename *.c -> *.cpp in our source (nw)
Diffstat (limited to 'src/mame/drivers/omegrace.c')
-rw-r--r--src/mame/drivers/omegrace.c625
1 files changed, 0 insertions, 625 deletions
diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c
deleted file mode 100644
index 7f7ef74044f..00000000000
--- a/src/mame/drivers/omegrace.c
+++ /dev/null
@@ -1,625 +0,0 @@
-// license:???
-// copyright-holders:Bernd Wiebelt
-/***************************************************************************
-
- Midway Omega Race hardware
-
- driver by Bernd Wiebelt
-
- Games supported:
- * Omega Race [2 sets]
- * Delta Race (Omega Race bootleg by Allied Leisure)
-
- Known bugs:
- * none at this time
-
-****************************************************************************
-
- This driver is dedicated to my loving wife Natalia Wiebelt
- and my daughter Lara Anna Maria
- Summer 1997 Bernd Wiebelt
-
- Many thanks to Al Kossow for the original sources and the solid documentation.
- Without him, I could never had completed this driver.
-
-
- --------
-
-
- Omega Race Memory Map
- Version 1.1 (Jul 24,1997)
- ---------------------
-
- 0000 - 3fff PROM
- 4000 - 4bff RAM (3k)
- 5c00 - 5cff NVRAM (256 x 4bits)
- 8000 - 8fff Vec RAM (4k)
- 9000 - 9fff Vec ROM (4k)
-
- 15 14 13 12 11 10
- --+--+--+--+--+--
- 0 0 0 0 M8 - 2732 (4k)
- 0 0 0 1 L8 - 2732
- 0 0 1 0 K8 - 2732
- 0 0 1 1 J8 - 2732
-
- 0 1 - 0 0 0 RAM (3k)
- 0 1 - 0 0 1
- 0 1 - 0 1 0
-
- 0 1 - 1 1 1 4 Bit BB RAM (d0-d3)
-
- 1 - - 0 0 Vec RAM (4k)
- 1 - - 0 1
- 1 - - 1 0 Vec ROM (2k) E1
- 1 - - 1 1 Vec ROM (2k) F1
-
- I/O Ports
-
- 8 Start/ (VG start)
- 9 WDOG/ (Reset watchdog)
- A SEQRES/ (VG stop/reset?)
- B RDSTOP/ d7 = stop (VG running if 0)
-
- 10 I DIP SW C4 (game ship settings)
-
- 6 5 4 3 2 1
- 1st bonus ship at
- | | | | 0 0 40,000
- | | | | 0 1 50,000
- | | | | 1 0 70,000
- | | | | 1 1 100,000
- | | | | 2nd and 3rd bonus ships
- | | 0 0 150,000 250,000
- | | 0 1 250,000 500,000
- | | 1 0 500,000 750,000
- | | 1 1 750,000 1,500,000
- | | ships per credit
- 0 0 1 credit = 2 ships / 2 credits = 4 ships
- 0 1 1 credit = 2 ships / 2 credits = 5 ships
- 1 0 1 credit = 3 ships / 2 credits = 6 ships
- 1 1 1 credit = 3 ships / 2 credits = 7 ships
-
- 11 I 7 = Test
- 6 = P1 Fire
- 5 = P1 Thrust
- 4 = Tilt
-
- 1 = Coin 2
- 0 = Coin 1
-
- 12 I 7 = 1P1CR
- 6 = 1P2CR
-
- 3 = 2P2CR -+
- 2 = 2P1CR |
- 1 = P2Fire |
- 0 = P2Thr -+ cocktail only
-
- 13 O 7 =
- 6 = screen reverse
- 5 = 2 player 2 credit start LED
- 4 = 2 player 1 credit start LED
- 3 = 1 player 1 credit start LED
- 2 = 1 player 1 credit start LED
- 1 = coin meter 2
- 0 = coin meter 1
-
- 14 O sound command (interrupts sound Z80)
-
- 15 I encoder 1 (d7-d2)
-
- The encoder is a 64 position Grey Code encoder, or a
- pot and A to D converter.
-
- Unlike the quadrature inputs on Atari and Sega games,
- Omega Race's controller is an absolute angle.
-
- 0x00, 0x04, 0x14, 0x10, 0x18, 0x1c, 0x5c, 0x58,
- 0x50, 0x54, 0x44, 0x40, 0x48, 0x4c, 0x6c, 0x68,
- 0x60, 0x64, 0x74, 0x70, 0x78, 0x7c, 0xfc, 0xf8,
- 0xf0, 0xf4, 0xe4, 0xe0, 0xe8, 0xec, 0xcc, 0xc8,
- 0xc0, 0xc4, 0xd4, 0xd0, 0xd8, 0xdc, 0x9c, 0x98,
- 0x90, 0x94, 0x84, 0x80, 0x88, 0x8c, 0xac, 0xa8,
- 0xa0, 0xa4, 0xb4, 0xb0, 0xb8, 0xbc, 0x3c, 0x38,
- 0x30, 0x34, 0x24, 0x20, 0x28, 0x2c, 0x0c, 0x08
-
- 16 I encoder 2 (d5-d0)
-
- The inputs aren't scrambled as they are on the 1 player
- encoder
-
- 17 I DIP SW C6 (coin/cocktail settings)
-
- 8 7 6 5 4 3 2 1
- coin switch 1
- | | | | | 0 0 0 1 coin 2 credits
- | | | | | 0 0 1 1 coin 3 credits
- | | | | | 0 1 0 1 coin 5 credits
- | | | | | 0 1 1 4 coins 5 credits
- | | | | | 1 0 0 3 coins 4 credits
- | | | | | 1 0 1 2 coins 3 credits
- | | | | | 1 1 0 2 coins 1 credit
- | | | | | 1 1 1 1 coin 1 credit
- | | | | |
- | | | | | coin switch 2
- | | 0 0 0 1 coin 2 credits
- | | 0 0 1 1 coin 3 credits
- | | 0 1 0 1 coin 5 credits
- | | 0 1 1 4 coins 5 credits
- | | 1 0 0 3 coins 4 credits
- | | 1 0 1 2 coins 3 credits
- | | 1 1 0 2 coins 1 credit
- | | 1 1 1 1 coin 1 credit
- | |
- | 0 coin play
- | 1 free play
- |
- 0 normal
- 1 cocktail
-
- display list format: (4 byte opcodes)
-
- +------+------+------+------+------+------+------+------+
- |DY07 DY06 DY05 DY04 DY03 DY02 DY01 DY00 | 0
- +------+------+------+------+------+------+------+------+
- |OPCD3 OPCD2 OPCD1 OPCD0 DY11 DY10 DY09 DY08 | 1 OPCD 1111 = ABBREV/
- +------+------+------+------+------+------+------+------+
- |DX07 DX06 DX05 DX04 DX03 DX02 DX01 DX00 | 2
- +------+------+------+------+------+------+------+------+
- |INTEN3 INTEN2 INTEN1 INTEN0 DX11 DX10 DX09 DX08 | 3
- +------+------+------+------+------+------+------+------+
-
- Draw relative vector 0x80 1000YYYY YYYYYYYY IIIIXXXX XXXXXXXX
-
- Draw relative vector
- and load scale 0x90 1001YYYY YYYYYYYY SSSSXXXX XXXXXXXX
-
- Beam to absolute
- screen position 0xA0 1010YYYY YYYYYYYY ----XXXX XXXXXXXX
-
- Halt 0xB0 1011---- --------
-
- Jump to subroutine 0xC0 1100AAAA AAAAAAAA
-
- Return from subroutine 0xD0 1101---- --------
-
- Jump to new address 0xE0 1110AAAA AAAAAAAA
-
- Short vector draw 0xF0 1111YYYY IIIIXXXX
-
-
- Sound Z80 Memory Map
-
- 0000 ROM
- 1000 RAM
-
- 15 14 13 12 11 10
- 0 2k prom (K5)
- 1 2k prom (J5)
- 1 1k RAM (K4,J4)
-
- I/O (write-only)
-
- 0,1 8912 (K3)
- 2,3 8912 (J3)
-
-
- I/O (read-only)
-
- 0 input port from main CPU.
- main CPU writing port generated INT
- Sound Commands:
-
- 0 - reset sound CPU
-
-***************************************************************************/
-
-#include "emu.h"
-#include "cpu/z80/z80.h"
-#include "video/vector.h"
-#include "video/avgdvg.h"
-#include "sound/ay8910.h"
-#include "machine/nvram.h"
-
-#include "omegrace.lh"
-
-
-class omegrace_state : public driver_device
-{
-public:
- omegrace_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu"),
- m_dvg(*this, "dvg") { }
-
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<dvg_device> m_dvg;
-
- DECLARE_READ8_MEMBER(omegrace_vg_go_r);
- DECLARE_READ8_MEMBER(omegrace_spinner1_r);
- DECLARE_WRITE8_MEMBER(omegrace_leds_w);
- DECLARE_WRITE8_MEMBER(omegrace_soundlatch_w);
- DECLARE_DRIVER_INIT(omegrace);
- virtual void machine_reset();
-};
-
-
-/*************************************
- *
- * Machine init
- *
- *************************************/
-
-void omegrace_state::machine_reset()
-{
- address_space &space = m_maincpu->space(AS_PROGRAM);
- /* Omega Race expects the vector processor to be ready. */
-m_dvg->reset_w(space, 0, 0);
-}
-
-
-
-/*************************************
- *
- * Vector processor interaction
- *
- *************************************/
-
-READ8_MEMBER(omegrace_state::omegrace_vg_go_r)
-{
- m_dvg->go_w(space, 0, 0);
- return 0;
-}
-
-
-/*************************************
- *
- * Input handlers
- *
- *************************************/
-
-/*
- * Encoder bit mappings
- * The encoder is a 64 way switch, with the inputs scrambled
- * on the input port (and shifted 2 bits to the left for the
- * 1 player encoder
- *
- * 3 6 5 4 7 2 for encoder 1 (shifted two bits left..)
- *
- *
- * 5 4 3 2 1 0 for encoder 2 (not shifted..)
- */
-
-static const UINT8 spinnerTable[64] =
-{
- 0x00, 0x04, 0x14, 0x10, 0x18, 0x1c, 0x5c, 0x58,
- 0x50, 0x54, 0x44, 0x40, 0x48, 0x4c, 0x6c, 0x68,
- 0x60, 0x64, 0x74, 0x70, 0x78, 0x7c, 0xfc, 0xf8,
- 0xf0, 0xf4, 0xe4, 0xe0, 0xe8, 0xec, 0xcc, 0xc8,
- 0xc0, 0xc4, 0xd4, 0xd0, 0xd8, 0xdc, 0x9c, 0x98,
- 0x90, 0x94, 0x84, 0x80, 0x88, 0x8c, 0xac, 0xa8,
- 0xa0, 0xa4, 0xb4, 0xb0, 0xb8, 0xbc, 0x3c, 0x38,
- 0x30, 0x34, 0x24, 0x20, 0x28, 0x2c, 0x0c, 0x08
-};
-
-
-READ8_MEMBER(omegrace_state::omegrace_spinner1_r)
-{
- return (spinnerTable[ioport("SPIN0")->read() & 0x3f]);
-}
-
-
-
-/*************************************
- *
- * Output handlers
- *
- *************************************/
-
-WRITE8_MEMBER(omegrace_state::omegrace_leds_w)
-{
- /* bits 0 and 1 are coin counters */
- coin_counter_w(machine(), 0,data & 0x01);
- coin_counter_w(machine(), 1,data & 0x02);
-
- /* bits 2 to 5 are the start leds (4 and 5 cocktail only) */
- set_led_status(machine(), 0,~data & 0x04);
- set_led_status(machine(), 1,~data & 0x08);
- set_led_status(machine(), 2,~data & 0x10);
- set_led_status(machine(), 3,~data & 0x20);
-
- /* bit 6 flips screen (not supported) */
-}
-
-
-WRITE8_MEMBER(omegrace_state::omegrace_soundlatch_w)
-{
- soundlatch_byte_w (space, offset, data);
- m_audiocpu->set_input_line(0, HOLD_LINE);
-}
-
-
-
-/*************************************
- *
- * Main CPU memory handlers
- *
- *************************************/
-
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, omegrace_state )
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4bff) AM_RAM
- AM_RANGE(0x5c00, 0x5cff) AM_RAM AM_SHARE("nvram") /* NVRAM */
- AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x8000) /* vector ram */
- AM_RANGE(0x9000, 0x9fff) AM_ROM /* vector rom */
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( port_map, AS_IO, 8, omegrace_state )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x08, 0x08) AM_READ(omegrace_vg_go_r)
- AM_RANGE(0x09, 0x09) AM_READ(watchdog_reset_r)
- AM_RANGE(0x0a, 0x0a) AM_DEVWRITE("dvg", dvg_device, reset_w)
- AM_RANGE(0x0b, 0x0b) AM_READ_PORT("AVGDVG") /* vg_halt */
- AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP SW C4 */
- AM_RANGE(0x17, 0x17) AM_READ_PORT("DSW2") /* DIP SW C6 */
- AM_RANGE(0x11, 0x11) AM_READ_PORT("IN0") /* Player 1 input */
- AM_RANGE(0x12, 0x12) AM_READ_PORT("IN1") /* Player 2 input */
- AM_RANGE(0x13, 0x13) AM_WRITE(omegrace_leds_w) /* coin counters, leds, flip screen */
- AM_RANGE(0x14, 0x14) AM_WRITE(omegrace_soundlatch_w) /* Sound command */
- AM_RANGE(0x15, 0x15) AM_READ(omegrace_spinner1_r) /* 1st controller */
- AM_RANGE(0x16, 0x16) AM_READ_PORT("SPIN1") /* 2nd controller (cocktail) */
-ADDRESS_MAP_END
-
-
-/*************************************
- *
- * Sound CPU memory handlers
- *
- *************************************/
-
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, omegrace_state )
- AM_RANGE(0x0000, 0x07ff) AM_ROM AM_MIRROR(0x800)
- AM_RANGE(0x1000, 0x13ff) AM_RAM
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( sound_port, AS_IO, 8, omegrace_state )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ(soundlatch_byte_r) // the game reads from ay1 port b, but ay8912 only has port a
- AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8912_device, address_data_w)
- AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8912_device, address_data_w)
-ADDRESS_MAP_END
-
-
-
-/*************************************
- *
- * Port definitions
- *
- *************************************/
-
-static INPUT_PORTS_START( omegrace )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x03, 0x03, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x00, "40k" )
- PORT_DIPSETTING( 0x01, "50k" )
- PORT_DIPSETTING( 0x02, "70k" )
- PORT_DIPSETTING( 0x03, "100k" )
- PORT_DIPNAME( 0x0c, 0x0c, "2nd & 3rd Bonus Life" ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x00, "150k 250k" )
- PORT_DIPSETTING( 0x04, "250k 500k" )
- PORT_DIPSETTING( 0x08, "500k 750k" )
- PORT_DIPSETTING( 0x0c, "750k 1500k" )
- PORT_DIPNAME( 0x30, 0x30, "Credit(s)/Ships" ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x00, "1C/2S 2C/4S" )
- PORT_DIPSETTING( 0x10, "1C/2S 2C/5S" )
- PORT_DIPSETTING( 0x20, "1C/3S 2C/6S" )
- PORT_DIPSETTING( 0x30, "1C/3S 2C/7S" )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 4C_5C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR( 4C_5C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
-
- PORT_START("IN0") /* port 0x11 */
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
-
- PORT_START("IN1") /* port 0x12 */
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("2 Players Start (1 credit)")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START4 ) PORT_NAME("2 Players Start (2 credits)")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("1 Player Start (1 credit)")
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START3 ) PORT_NAME("1 Player Start (2 credits)")
-
- PORT_START("SPIN0") /* port 0x15 - spinner */
- PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(12) PORT_KEYDELTA(10)
-
- PORT_START("SPIN1") /* port 0x16 - second spinner */
- PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(12) PORT_KEYDELTA(10) PORT_COCKTAIL
-
- PORT_START("AVGDVG") /* port 0x0b */
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
-INPUT_PORTS_END
-
-
-
-/*************************************
- *
- * Machine drivers
- *
- *************************************/
-
-static MACHINE_CONFIG_START( omegrace, omegrace_state )
-
- /* basic machine hardware */
-
- /* main CPU */
- /* XTAL101 Crystal @ 12mhz */
- /* through 74LS161, Pin 13 = divide by 4 */
- MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4)
- MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_IO_MAP(port_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(omegrace_state, irq0_line_hold, 250)
-
- /* audio CPU */
- /* XTAL101 Crystal @ 12mhz */
- /* through 74LS161, Pin 12 = divide by 8 */
- /* Fed to CPU as 1.5mhz though line J4-D */
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_12MHz/8)
- MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_CPU_IO_MAP(sound_port)
- MCFG_CPU_PERIODIC_INT_DRIVER(omegrace_state, nmi_line_pulse, 250)
-
- MCFG_NVRAM_ADD_0FILL("nvram")
-
- /* video hardware */
- MCFG_VECTOR_ADD("vector")
- MCFG_SCREEN_ADD("screen", VECTOR)
- MCFG_SCREEN_REFRESH_RATE(40)
- MCFG_SCREEN_SIZE(400, 300)
- MCFG_SCREEN_VISIBLE_AREA(522, 1566, 522, 1566)
- MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
-
- MCFG_DEVICE_ADD("dvg", DVG, 0)
- MCFG_AVGDVG_VECTOR("vector")
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
-
- /* XTAL101 Crystal @ 12mhz */
- /* through 74LS92, Pin 8 = divide by 12 */
- MCFG_SOUND_ADD("ay1", AY8912, XTAL_12MHz/12)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-
- MCFG_SOUND_ADD("ay2", AY8912, XTAL_12MHz/12)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-/*************************************
- *
- * ROM definitions
- *
- *************************************/
-
-ROM_START( omegrace )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "omega.m7", 0x0000, 0x1000, CRC(0424d46e) SHA1(cc1ac6c06ba6f6e8466fa08286a0c70b5335af33) )
- ROM_LOAD( "omega.l7", 0x1000, 0x1000, CRC(edcd7a7d) SHA1(5d142de2f48b01d563578a54fd5540e5d0ac8f4c) )
- ROM_LOAD( "omega.k7", 0x2000, 0x1000, CRC(6d10f197) SHA1(9609a0cbeeef2efa10d49cde9f0afdca96e9c2f8) )
- ROM_LOAD( "omega.j7", 0x3000, 0x1000, CRC(8e8d4b54) SHA1(944192c0f6f0cdb25d492ee9f33959d38a1062f2) )
- ROM_LOAD( "omega.e1", 0x9000, 0x0800, CRC(1d0fdf3a) SHA1(3333397a9745874cea1dd6a1bda783cc59393b55) )
- ROM_LOAD( "omega.f1", 0x9800, 0x0800, CRC(d44c0814) SHA1(2f216ee6de88bbe09775619003aee2d5aa8c554d) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "sound.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) )
-
- ROM_REGION( 0x100, "user1", 0 )
- ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
-ROM_END
-
-ROM_START( omegrace2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "o.r._1a.m7", 0x0000, 0x1000, CRC(f8539d46) SHA1(bb0c6bc2a84e904d1cb00822052c53c0a8ff1083) )
- ROM_LOAD( "o.r._2a.l7", 0x1000, 0x1000, CRC(0ff70783) SHA1(5fceaaea1439c3ae408a45f4d7839ec56b71504c) )
- ROM_LOAD( "o.r._3a.k7", 0x2000, 0x1000, CRC(6349130d) SHA1(a1ff62044d9e59294f56079e704beeebc65a56aa) )
- ROM_LOAD( "o.r._4a.j7", 0x3000, 0x1000, CRC(0a5ef64a) SHA1(42bcc5d5bfe11af4b26ba7753d83e121eef4b597) )
- ROM_LOAD( "o.r._vector_i_6-1-81.e1", 0x9000, 0x0800, CRC(1d0fdf3a) SHA1(3333397a9745874cea1dd6a1bda783cc59393b55) )
- ROM_LOAD( "o.r._vector_ii_6-1-81.f1", 0x9800, 0x0800, CRC(d44c0814) SHA1(2f216ee6de88bbe09775619003aee2d5aa8c554d) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "o.r.r._audio_6-1-81.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) )
-
- ROM_REGION( 0x100, "user1", 0 )
- ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
-ROM_END
-
-ROM_START( deltrace )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "omega.m7", 0x0000, 0x1000, CRC(0424d46e) SHA1(cc1ac6c06ba6f6e8466fa08286a0c70b5335af33) )
- ROM_LOAD( "omega.l7", 0x1000, 0x1000, CRC(edcd7a7d) SHA1(5d142de2f48b01d563578a54fd5540e5d0ac8f4c) )
- ROM_LOAD( "omega.k7", 0x2000, 0x1000, CRC(6d10f197) SHA1(9609a0cbeeef2efa10d49cde9f0afdca96e9c2f8) )
- ROM_LOAD( "delta.j7", 0x3000, 0x1000, CRC(8ef9541e) SHA1(89e34f50a958ac60c5f223bcb6c1c14796b903c7) )
- ROM_LOAD( "omega.e1", 0x9000, 0x0800, CRC(1d0fdf3a) SHA1(3333397a9745874cea1dd6a1bda783cc59393b55) )
- ROM_LOAD( "omega.f1", 0x9800, 0x0800, CRC(d44c0814) SHA1(2f216ee6de88bbe09775619003aee2d5aa8c554d) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "sound.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) )
-
- ROM_REGION( 0x100, "user1", 0 )
- ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
-ROM_END
-
-
-/*************************************
- *
- * Game specific initalization
- *
- *************************************/
-
-DRIVER_INIT_MEMBER(omegrace_state,omegrace)
-{
- int i, len = memregion("user1")->bytes();
- UINT8 *prom = memregion("user1")->base();
-
- /* Omega Race has two pairs of the state PROM output
- * lines swapped before going into the decoder.
- * Since all other avg/dvg games connect the PROM
- * in a consistent way to the decoder, we swap the bits
- * here. */
- for (i=0; i<len; i++)
- prom[i] = BITSWAP8(prom[i],7,6,5,4,1,0,3,2);
-}
-
-
-/*************************************
- *
- * Game drivers
- *
- *************************************/
-
-GAMEL(1981, omegrace, 0, omegrace, omegrace, omegrace_state, omegrace, ROT0, "Midway", "Omega Race (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_omegrace )
-GAMEL(1981, omegrace2, omegrace, omegrace, omegrace, omegrace_state, omegrace, ROT0, "Midway", "Omega Race (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_omegrace )
-GAMEL(1981, deltrace, omegrace, omegrace, omegrace, omegrace_state, omegrace, ROT0, "bootleg (Allied Leisure)", "Delta Race", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_omegrace )