summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/rallyx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/rallyx.cpp')
-rw-r--r--src/mame/drivers/rallyx.cpp1437
1 files changed, 0 insertions, 1437 deletions
diff --git a/src/mame/drivers/rallyx.cpp b/src/mame/drivers/rallyx.cpp
deleted file mode 100644
index 617f114af34..00000000000
--- a/src/mame/drivers/rallyx.cpp
+++ /dev/null
@@ -1,1437 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-/***************************************************************************
-
-Rally X (c) 1980 Namco
-New Rally X (c) 1981 Namco
-
-and also
-
-Jungler (c) 1981 Konami
-Tactician (c) 1981 Konami
-Loco-Motion (c) 1982 Konami
-Commando (c) 1983 Sega
-
-driver by Nicola Salmoria
-
-There doesn't seem to be much doubt that Konami copied the video hardware of
-Rally X.
-The boards are surely very different; Rally X has video and sound split on the
-two boards, while the Konami version has all video in one board and all sound
-in the other.
-Rally X uses a single Z80 and Namco sound hardware, while the others use the
-standard Konami sound hardware of that era (slave Z80 + 2xAY-3-8910).
-Also, the Konami design includes an optional starfield generator, only used
-by Tactician.
-
-Rally X has two Namco customs. They are nothing more than simple logic and can
-be replaced by daughter boards with TTL parts.
-NVC285 (DIP28): Z-80 Sync buss controller. Can be replaced by plug-in board
-A082-91383-B000
-NVC293 (DIP18): Video shifter. Can be replaced by plug-in board A082-91388-A000.
-
-
-Rally X Memory map:
-------------------
-Note: the memory map for the RAM 6x chips derived from the schematics doesn't
-seem to be entirely correct. Here it's modified to match program behaviour.
-The names might be assigned incorrectly.
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0-000xxxxxxxxxxx R xxxxxxxx ROM 1B program ROM \[1]
-0-001xxxxxxxxxxx R xxxxxxxx ROM 1C program ROM /
-0-010xxxxxxxxxxx R xxxxxxxx ROM 1D program ROM \[1]
-0-011xxxxxxxxxxx R xxxxxxxx ROM 1E program ROM /
-0-100xxxxxxxxxxx R xxxxxxxx ROM 1H program ROM \[1]
-0-101xxxxxxxxxxx R xxxxxxxx ROM 1J program ROM /
-0-110xxxxxxxxxxx R xxxxxxxx ROM 1K program ROM \[1]
-0-111xxxxxxxxxxx R xxxxxxxx ROM 1L program ROM /
-1-0000xxxxxxxxxx R/W xxxxxxxx RAM 6A/6C radar tilemap RAM + sprites
-1-0001xxxxxxxxxx R/W xxxxxxxx RAM 6B/6D playfield tilemap RAM
-1-0010xxxxxxxxxx R/W xxxxxxxx RAM 6J/6K radar tilemap RAM + sprites
-1-0011xxxxxxxxxx R/W xxxxxxxx RAM 6H/6L playfield tilemap RAM
-1-0110xxxxxxxxxx R/W xxxxxxxx RAM 6F/6M work RAM
-1-0111xxxxxxxxxx R/W xxxxxxxx RAM 6E/6N work RAM
-1-1----00---xxxx W ----xxxx SODWR bullets shape and X pos msb [2]
-1-1----01------- W -------- watchdog reset
-1-1----10000xxxx W ----xxxx RAM 2N \ sound control registers
-1-1----10001xxxx W ----xxxx RAM 2P /
-1-1----10010---- W n.c.
-1-1----10011---- W xxxxxxxx POSIX playfield X scroll
-1-1----10100---- W xxxxxxxx POSIY playfield Y scroll
-1-1----10101---- W n.c.
-1-1----10110 W WR2 ?
-1-1----10111 W WR3 ? this is written to A LOT of times every frame
-1-1----11----000 W -------x BANG explosion sound trigger
-1-1----11----001 W -------x INT ON interrupt enable
-1-1----11----010 W -------x SOUND ON sound enable [3]
-1-1----11----011 W -------x FLIP flip screen
-1-1----11----100 W -------x 1 player start lamp
-1-1----11----101 W -------x 2 players start lamp
-1-1----11----110 W -------x coin lockout
-1-1----11----111 W -------x coin counter
-1-1----00------- R xxxxxxxx switch inputs
-1-1----01------- R xxxxxxxx switch inputs
-1-1----10------- R xxxxxxxx dip switches
-1-1----11 R RDSTB ?
-
-[1] either 2x2716 or 1x2732
-[2] SO = Small Objects? Only locations 4-F are used.
-[3] doesn't seem to work in New Rally X.
-
-I/O ports:
-OUT on port $0 sets the interrupt vector/instruction (the game uses both
-IM 2 and IM 0)
-
-
-Loco-Motion Memory map:
-----------------------
-Main CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3D program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 3E program ROM
-0010xxxxxxxxxxxx R xxxxxxxx ROM 3F program ROM
-0011xxxxxxxxxxxx R xxxxxxxx ROM 3G program ROM
-0100xxxxxxxxxxxx R xxxxxxxx ROM 3J program ROM
-0101xxxxxxxxxxxx R xxxxxxxx ROM 3K program ROM
-0110xxxxxxxxxxxx R xxxxxxxx ROM 3L program ROM
-0111xxxxxxxxxxxx R xxxxxxxx ROM 3M program ROM
-1-000xxxxxxxxxxx R/W xxxxxxxx RAM 3C tilemap RAM (tile code) [1]
-1-001xxxxxxxxxxx R/W xxxxxxxx RAM 3B tilemap RAM (tile attr) [1]
-1-011xxxxxxxxxxx R/W xxxxxxxx RAM 3A work RAM
-1-1----00------- R xxxxxxxx IN1 switch inputs
-1-1----01------- R xxxxxxxx IN2 switch inputs
-1-1----10------- R xxxxxxxx IN3 switch inputs / dip switches
-1-1----11------- R xxxxxxxx IN4 dip switches
-1-1----00---xxxx W ----xxxx SCARW bullets shape and X pos msb
-1-1----01------- W -------- watchdog reset
-1-1----10------- W xxxxxxxx SOUNDDATA command for sound CPU
-1-1----11----000 W -------x SOUNDON trigger irq on sound CPU
-1-1----11----001 W -------x INTST irq enable/acknowledge
-1-1----11----010 W -------x MUT sound disable
-1-1----11----011 W -------x FLIP flip screen
-1-1----11----100 W -------x OUT1 coin counter #1
-1-1----11----101 W -------x OUT2 ?
-1-1----11----110 W -------x OUT3 coin counter #2
-1-1----11----111 W -------x STARSON stars enable (optional)
-
-[1] 1st half is "radar" + sprite registers, 2nd half is scrolling playfield
-
-
-Sound CPU (standard Konami sound board):
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 1B program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 1C program ROM
-0010--xxxxxxxxxx R/W xxxxxxxx RAM 2B/2C work RAM
-0011xxxxxx------ W -------- CKB RC filters enable for 8910 #1 (data is in A6-A11)
-0011------xxxxxx W -------- CKB RC filters enable for 8910 #2 (data is in A0-A5)
-0100------------ R/W xxxxxxxx SEN1 AY-3-8910 #1 r/w [1]
-0101------------ W xxxxxxxx SEN2 AY-3-8910 #1 ctrl
-0110------------ R/W xxxxxxxx SEN3 AY-3-8910 #2 r/w
-0111------------ W xxxxxxxx SEN4 AY-3-8910 #2 ctrl
-
-[1] port A: command from main CPU; port B: timer
-
-
-Notes:
-- Easter egg (both Rally X and New Rally X):
- - enter service mode
- - keep B1 pressed and enter the following sequence:
- 2xU 7xD 1xR 6xL
- (c) NAMCO LTD. 1980 will be added at the bottom of the screen.
-
-- The Test Mode "dip switch" actually comes from the edge connector, but is mapped
- in memory in place of dip switch #8. Dip switch #8 is supposed to freeze the
- game and is entirely handled by hardware.
-
-- PROM 7a controls the video shape. This is used to hide the rightmost 4 char
- columns in Locomotion and Commando, while showing them in Jungler and
- Tactician.
-
-- The playfield scroll registers used in Rally X are present, but not useful
- (always 0) in Jungler and Tactician. They were removed in Locomotn and Commando.
-
-- commsega has more sprites and more "bullets" than the other games.
-
-- it seems that Jungler doesn't support high priority tiles. Maybe they
- disabled that feature because they needed more color combinations.
-
-- there are also 1-pixel sprite and bullet placement differences from game to game.
-
-- cottong is a bootleg of a very different version of locomotn, possibly a
- prototype.
-
-- commsega:
- Due to a bug at 0x1259, bit 3 of DSW1 also affects the "Bonus Life" value:
- - when bit 3 is OFF, you get an extra life at 30000 points
- - when bit 3 is ON , you get an extra life at 50000 points
- At 0x0050 there is code to give infinite lives for player 1 when bit 3 of DSW0
- is ON. I can't tell however when it is supposed to be called.
-
-- tactician has the score area at the bottom of the screen. While highly unusual,
- this is the correct behaviour and has been verified with screenshots.
-
-TODO:
-- commsega: the first time you kill a soldier, the music stops. When you die,
- the music restarts and won't stop a second time.
-
-- rallyx: Three things in the schematics that I haven't been able to trace:
- WR2, WR3 and RDSTB. Only WR3 is actually used by the game.
-
-- rallyx: emulate the explosion with discrete sound components. The schematics
- are available so it should be possible eventually.
-
-- tactician: the bouncing bomb seems to show incorrect graphics when it's hit.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/rallyx.h"
-
-#include "cpu/z80/z80.h"
-#include "machine/74259.h"
-#include "machine/gen_latch.h"
-#include "machine/watchdog.h"
-#include "sound/samples.h"
-#include "speaker.h"
-
-#define MASTER_CLOCK XTAL(18'432'000)
-
-
-/*************************************
- *
- * Memory handlers
- *
- *************************************/
-
-WRITE8_MEMBER(rallyx_state::rallyx_interrupt_vector_w)
-{
- m_maincpu->set_input_line_vector(0, data); // Z80
- m_maincpu->set_input_line(0, CLEAR_LINE);
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::bang_w)
-{
- if (state == 0 && m_last_bang != 0)
- m_samples->start(0, 0);
-
- m_last_bang = state;
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::irq_mask_w)
-{
- m_main_irq_mask = state;
- if (!state)
- m_maincpu->set_input_line(0, CLEAR_LINE);
-}
-
-WRITE_LINE_MEMBER(rallyx_state::nmi_mask_w)
-{
- m_main_irq_mask = state;
- if (!state)
- m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::sound_on_w)
-{
- /* this doesn't work in New Rally X so I'm not supporting it */
- //m_namco_sound->pacman_sound_enable_w(state);
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::flip_screen_w)
-{
- flip_screen_set(state);
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::coin_lockout_w)
-{
- machine().bookkeeping().coin_lockout_w(0, !state);
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::coin_counter_1_w)
-{
- machine().bookkeeping().coin_counter_w(0, state);
-}
-
-
-WRITE_LINE_MEMBER(rallyx_state::coin_counter_2_w)
-{
- machine().bookkeeping().coin_counter_w(1, state);
-}
-
-
-/*************************************
- *
- * Address maps
- *
- *************************************/
-
-void rallyx_state::rallyx_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom();
- map(0x8000, 0x8fff).ram().w(FUNC(rallyx_state::rallyx_videoram_w)).share("videoram");
- map(0x9800, 0x9fff).ram();
- map(0xa000, 0xa000).portr("P1");
- map(0xa080, 0xa080).portr("P2");
- map(0xa100, 0xa100).portr("DSW");
- map(0xa000, 0xa00f).writeonly().share("radarattr");
- map(0xa080, 0xa080).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0xa100, 0xa11f).w(m_namco_sound, FUNC(namco_device::pacman_sound_w));
- map(0xa130, 0xa130).w(FUNC(rallyx_state::rallyx_scrollx_w));
- map(0xa140, 0xa140).w(FUNC(rallyx_state::rallyx_scrolly_w));
- map(0xa170, 0xa170).nopw(); /* ? */
- map(0xa180, 0xa187).w("mainlatch", FUNC(ls259_device::write_d0));
-}
-
-void rallyx_state::io_map(address_map &map)
-{
- map.global_mask(0xff);
- map(0, 0).w(FUNC(rallyx_state::rallyx_interrupt_vector_w));
-}
-
-
-void rallyx_state::jungler_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x8fff).ram().w(FUNC(rallyx_state::rallyx_videoram_w)).share("videoram");
- map(0x9800, 0x9fff).ram();
- map(0xa000, 0xa000).portr("P1");
- map(0xa080, 0xa080).portr("P2");
- map(0xa100, 0xa100).portr("DSW1");
- map(0xa180, 0xa180).portr("DSW2");
- map(0xa000, 0xa00f).mirror(0x00f0).writeonly().share("radarattr"); // jungler writes to a03x
- map(0xa080, 0xa080).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0xa100, 0xa100).w(m_timeplt_audio, FUNC(timeplt_audio_device::sound_data_w));
- map(0xa130, 0xa130).w(FUNC(rallyx_state::rallyx_scrollx_w)); /* only jungler and tactcian */
- map(0xa140, 0xa140).w(FUNC(rallyx_state::rallyx_scrolly_w)); /* only jungler and tactcian */
- map(0xa180, 0xa187).w("mainlatch", FUNC(ls259_device::write_d0));
-}
-
-
-/*************************************
- *
- * Input ports
- *
- *************************************/
-
-static INPUT_PORTS_START( rallyx )
- PORT_START("P1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
-
- PORT_START("P2")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("P2:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW:7,8")
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x38, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW:4,5,6")
- PORT_DIPSETTING( 0x10, "1 Car, Medium" )
- PORT_DIPSETTING( 0x28, "1 Car, Hard" )
- PORT_DIPSETTING( 0x00, "2 Cars, Easy" )
- PORT_DIPSETTING( 0x18, "2 Cars, Medium" )
- PORT_DIPSETTING( 0x30, "2 Cars, Hard" )
- PORT_DIPSETTING( 0x08, "3 Cars, Easy" )
- PORT_DIPSETTING( 0x20, "3 Cars, Medium" )
- PORT_DIPSETTING( 0x38, "3 Cars, Hard" )
- PORT_DIPNAME( 0x06, 0x02, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW:2,3")
- PORT_DIPSETTING( 0x02, "15000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x00)
- PORT_DIPSETTING( 0x04, "30000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x00)
- PORT_DIPSETTING( 0x06, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x00)
-
- PORT_DIPSETTING( 0x02, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x08)
- PORT_DIPSETTING( 0x04, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x08)
- PORT_DIPSETTING( 0x06, "60000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x08)
-
- PORT_DIPSETTING( 0x02, "10000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x10)
- PORT_DIPSETTING( 0x04, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x10)
- PORT_DIPSETTING( 0x06, "30000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x10)
-
- PORT_DIPSETTING( 0x02, "15000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x18)
- PORT_DIPSETTING( 0x04, "30000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x18)
- PORT_DIPSETTING( 0x06, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x18)
-
- PORT_DIPSETTING( 0x02, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x20)
- PORT_DIPSETTING( 0x04, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x20)
- PORT_DIPSETTING( 0x06, "60000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x20)
-
- PORT_DIPSETTING( 0x02, "10000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x28)
- PORT_DIPSETTING( 0x04, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x28)
- PORT_DIPSETTING( 0x06, "30000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x28)
-
- PORT_DIPSETTING( 0x02, "15000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x30)
- PORT_DIPSETTING( 0x04, "30000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x30)
- PORT_DIPSETTING( 0x06, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x30)
-
- PORT_DIPSETTING( 0x02, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x38)
- PORT_DIPSETTING( 0x04, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x38)
- PORT_DIPSETTING( 0x06, "60000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x38)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) )
- PORT_SERVICE_DIPLOC( 0x01, 0x01, "DSW:1")
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( dngrtrck )
- PORT_INCLUDE( rallyx )
-
- PORT_MODIFY("DSW")
- PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW:7,8")
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x40, "1stC/1C 2ndC/2C" )
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0xc0, "1stC/2C 2ndC/3C" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( nrallyx )
- PORT_INCLUDE( rallyx )
-
- PORT_MODIFY("DSW")
- PORT_DIPNAME( 0x38, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW:4,5,6")
- PORT_DIPSETTING( 0x10, "1 Car, Medium" )
- PORT_DIPSETTING( 0x28, "1 Car, Hard" )
- PORT_DIPSETTING( 0x18, "2 Cars, Medium" )
- PORT_DIPSETTING( 0x30, "2 Cars, Hard" )
- PORT_DIPSETTING( 0x00, "3 Cars, Easy" )
- PORT_DIPSETTING( 0x20, "3 Cars, Medium" )
- PORT_DIPSETTING( 0x38, "3 Cars, Hard" )
- PORT_DIPSETTING( 0x08, "4 Cars, Easy" )
-
- PORT_DIPNAME( 0x06, 0x02, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW:2,3")
- PORT_DIPSETTING( 0x02, "20000/80000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x00)
- PORT_DIPSETTING( 0x04, "20000/100000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x00)
- PORT_DIPSETTING( 0x06, "20000/120000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x00)
-
- PORT_DIPSETTING( 0x02, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x08)
- PORT_DIPSETTING( 0x04, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x08)
- PORT_DIPSETTING( 0x06, "60000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x08)
-
- PORT_DIPSETTING( 0x02, "20000/80000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x10)
- PORT_DIPSETTING( 0x04, "20000/100000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x10)
- PORT_DIPSETTING( 0x06, "20000/120000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x10)
-
- PORT_DIPSETTING( 0x02, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x18)
- PORT_DIPSETTING( 0x04, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x18)
- PORT_DIPSETTING( 0x06, "60000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x18)
-
- PORT_DIPSETTING( 0x02, "20000/80000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x20)
- PORT_DIPSETTING( 0x04, "20000/100000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x20)
- PORT_DIPSETTING( 0x06, "20000/120000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x20)
-
- PORT_DIPSETTING( 0x02, "20000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x28)
- PORT_DIPSETTING( 0x04, "40000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x28)
- PORT_DIPSETTING( 0x06, "60000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x28)
-
- PORT_DIPSETTING( 0x02, "20000/80000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x30)
- PORT_DIPSETTING( 0x04, "20000/100000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x30)
- PORT_DIPSETTING( 0x06, "20000/120000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x30)
-
- PORT_DIPSETTING( 0x02, "20000/80000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x38)
- PORT_DIPSETTING( 0x04, "20000/100000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x38)
- PORT_DIPSETTING( 0x06, "20000/120000" ) PORT_CONDITION("DSW", 0x38, EQUALS, 0x38)
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( jungler )
- PORT_START("P1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
-
- PORT_START("P2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("DSW1") /* Sound board */
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("DSW2") /* CPU board */
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW2:1,2,3")
- PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW2:4,5,6")
- PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:7")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x80, 0x80, "Test (255 lives)" ) PORT_DIPLOCATION("DSW2:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( locomotn )
- PORT_START("P1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
-
- PORT_START("P2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("DSW1") /* Sound board */
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:5,6")
- PORT_DIPSETTING( 0x30, "3" )
- PORT_DIPSETTING( 0x20, "4" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x00, "255" )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:4")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
- PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "DSW1:3")
- PORT_DIPNAME( 0x02, 0x02, "Intermissions" ) PORT_DIPLOCATION("DSW1:2")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSW1:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2") /* CPU board */
- PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW2:1,2,3,4")
- PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW2:5,6,7,8")
- PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
- PORT_DIPSETTING( 0x00, "No Coin B" )
- /* "No Coin B" = coins produce sound, but no effect on coin counter */
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( tactcian )
- PORT_INCLUDE( locomotn )
-
- PORT_MODIFY("P1")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
-
- PORT_MODIFY("P2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
-
- PORT_MODIFY("DSW1") /* Sound board */
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:5,6")
- PORT_DIPSETTING( 0x30, "255" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:2,3")
- PORT_DIPSETTING( 0x06, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x04, "A 2C/1C B 1C/3C" ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x06, "A 1C/1C B 1C/6C" ) PORT_CONDITION("DSW2", 0x01, EQUALS, 0x01)
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW1:1")
- PORT_DIPSETTING( 0x00, "10k, 80k then every 100k" )
- PORT_DIPSETTING( 0x01, "20k, 80k then every 100k" )
-
- PORT_MODIFY("DSW2") /* CPU board */
- PORT_DIPNAME( 0x01, 0x00, "Coin Mode" ) PORT_DIPLOCATION("DSW2:1")
- PORT_DIPSETTING( 0x00, "Mode 1" )
- PORT_DIPSETTING( 0x01, "Mode 2" )
- PORT_DIPUNUSED_DIPLOC( 0x02, 0x00, "DSW2:2")
- PORT_DIPUNUSED_DIPLOC( 0x04, 0x00, "DSW2:3")
- PORT_DIPUNUSED_DIPLOC( 0x08, 0x00, "DSW2:4")
- PORT_DIPUNUSED_DIPLOC( 0x10, 0x00, "DSW2:5")
- PORT_DIPUNUSED_DIPLOC( 0x20, 0x00, "DSW2:6")
- PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "DSW2:7")
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x00, "DSW2:8")
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( commsega )
- PORT_START("P1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
-
- PORT_START("P2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("DSW1") /* (sound board) */
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_DIPLOCATION("DSW1:7")
- PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DSW1:6")
- PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DSW1:5")
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4") // "Infinite Lives" - See notes
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW1:1,2,3")
- PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
-
- PORT_START("DSW2") /* (CPU board) */
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:1,2")
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x02, "4" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "6" )
- PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW2:3,4,5")
- PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) // Bonus Life : 50000 points
- PORT_DIPSETTING( 0x14, DEF_STR( 3C_1C ) ) // Bonus Life : 50000 points
- PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) // Bonus Life : 30000 points
- PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) // Bonus Life : 30000 points
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) // Bonus Life : 50000 points
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) // Bonus Life : 30000 points
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) // Bonus Life : 30000 points
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) // Bonus Life : 50000 points
- PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DSW2:6")
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:7") // Check code at 0x1fc5
- PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) // 16 flying enemies to kill
- PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) // 24 flying enemies to kill
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
-INPUT_PORTS_END
-
-
-/*************************************
- *
- * Graphics definitions
- *
- *************************************/
-
-static const gfx_layout rallyx_charlayout =
-{
- 8,8,
- RGN_FRAC(1,1),
- 2,
- { 0, 4 },
- { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 16*8
-};
-
-static const gfx_layout jungler_charlayout =
-{
- 8,8,
- RGN_FRAC(1,1),
- 2,
- { 4, 0 },
- { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 16*8
-};
-
-static const gfx_layout rallyx_spritelayout =
-{
- 16,16,
- RGN_FRAC(1,1),
- 2,
- { 0, 4 },
- { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
- 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
- { 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
-};
-
-static const gfx_layout jungler_spritelayout =
-{
- 16,16,
- RGN_FRAC(1,1),
- 2,
- { 4, 0 },
- { 8*8, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3,
- 24*8+0, 24*8+1, 24*8+2, 24*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3 },
- { 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
-};
-
-static const gfx_layout dotlayout =
-{
- 4,4,
- 8,
- 2,
- { 6, 7 },
- { 0*8, 1*8, 2*8, 3*8 },
- { 0*32, 1*32, 2*32, 3*32 },
- 16*8
-};
-
-static GFXDECODE_START( gfx_rallyx )
- GFXDECODE_ENTRY( "gfx1", 0, rallyx_charlayout, 0, 64 )
- GFXDECODE_ENTRY( "gfx1", 0, rallyx_spritelayout, 0, 64 )
- GFXDECODE_ENTRY( "gfx2", 0, dotlayout, 64*4, 1 )
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_jungler )
- GFXDECODE_ENTRY( "gfx1", 0, jungler_charlayout, 0, 64 )
- GFXDECODE_ENTRY( "gfx1", 0, jungler_spritelayout, 0, 64 )
- GFXDECODE_ENTRY( "gfx2", 0, dotlayout, 64*4, 1 )
-GFXDECODE_END
-
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const char *const rallyx_sample_names[] =
-{
- "*rallyx",
- "bang",
- nullptr /* end of array */
-};
-
-/*************************************
- *
- * Machine driver
- *
- *************************************/
-
-MACHINE_START_MEMBER(rallyx_state,rallyx)
-{
- save_item(NAME(m_last_bang));
- save_item(NAME(m_stars_enable));
- save_item(NAME(m_main_irq_mask));
-}
-
-WRITE_LINE_MEMBER(rallyx_state::rallyx_vblank_irq)
-{
- if (state && m_main_irq_mask)
- m_maincpu->set_input_line(0, ASSERT_LINE);
-}
-
-WRITE_LINE_MEMBER(rallyx_state::jungler_vblank_irq)
-{
- if (state && m_main_irq_mask)
- m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
-}
-
-void rallyx_state::rallyx(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &rallyx_state::rallyx_map);
- m_maincpu->set_addrmap(AS_IO, &rallyx_state::io_map);
-
- ls259_device &mainlatch(LS259(config, "mainlatch")); // 259 at 12M or 4099 at 11M on Logic Board I
- mainlatch.q_out_cb<0>().set(FUNC(rallyx_state::bang_w)); // BANG
- mainlatch.q_out_cb<1>().set(FUNC(rallyx_state::irq_mask_w)); // INT ON
- mainlatch.q_out_cb<2>().set(FUNC(rallyx_state::sound_on_w)); // SOUND ON
- mainlatch.q_out_cb<3>().set(FUNC(rallyx_state::flip_screen_w)); // FLIP
- mainlatch.q_out_cb<4>().set_output("led0");
- mainlatch.q_out_cb<5>().set_output("led1");
- mainlatch.q_out_cb<6>().set(FUNC(rallyx_state::coin_lockout_w));
- mainlatch.q_out_cb<7>().set(FUNC(rallyx_state::coin_counter_1_w));
-
- WATCHDOG_TIMER(config, "watchdog");
-
- MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60.606060);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(36*8, 32*8);
- m_screen->set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(rallyx_state::screen_update_rallyx));
- m_screen->set_palette(m_palette);
- m_screen->screen_vblank().set(FUNC(rallyx_state::rallyx_vblank_irq));
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_rallyx);
-
- PALETTE(config, m_palette, FUNC(rallyx_state::rallyx_palette), 64*4 + 4, 32);
- m_palette->enable_shadows();
-
- MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32); /* 96 KHz */
- m_namco_sound->set_voices(3);
- m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
-
- SAMPLES(config, m_samples);
- m_samples->set_channels(1);
- m_samples->set_samples_names(rallyx_sample_names);
- m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
-}
-
-void rallyx_state::jungler(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &rallyx_state::jungler_map);
-
- ls259_device &mainlatch(LS259(config, "mainlatch")); // 1C on Loco-Motion
- mainlatch.q_out_cb<0>().set("timeplt_audio", FUNC(timeplt_audio_device::sh_irqtrigger_w)); // SOUNDON
- mainlatch.q_out_cb<1>().set(FUNC(rallyx_state::nmi_mask_w)); // INTST
- mainlatch.q_out_cb<2>().set("timeplt_audio", FUNC(timeplt_audio_device::mute_w)); // MUT
- mainlatch.q_out_cb<3>().set(FUNC(rallyx_state::flip_screen_w)); // FLIP
- mainlatch.q_out_cb<4>().set(FUNC(rallyx_state::coin_counter_1_w)); // OUT1
- mainlatch.q_out_cb<5>().set_nop(); // OUT2
- mainlatch.q_out_cb<6>().set(FUNC(rallyx_state::coin_counter_2_w)); // OUT3
- mainlatch.q_out_cb<7>().set(FUNC(rallyx_state::stars_enable_w)); // STARSON
-
- WATCHDOG_TIMER(config, "watchdog");
-
- MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* frames per second, vblank duration */
- m_screen->set_size(36*8, 32*8);
- m_screen->set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(rallyx_state::screen_update_jungler));
- m_screen->set_palette(m_palette);
- m_screen->screen_vblank().set(FUNC(rallyx_state::jungler_vblank_irq));
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_jungler);
-
- PALETTE(config, m_palette, FUNC(rallyx_state::jungler_palette), 64*4 + 4 + 64, 32 + 64);
- m_palette->enable_shadows();
-
- MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler)
-
- /* sound hardware */
- LOCOMOTN_AUDIO(config, "timeplt_audio");
-}
-
-void rallyx_state::tactcian(machine_config &config)
-{
- jungler(config);
-
- m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
-
- MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
-}
-
-void rallyx_state::locomotn(machine_config &config)
-{
- jungler(config);
-
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
-
- MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
-}
-
-void rallyx_state::commsega(machine_config &config)
-{
- jungler(config);
-
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
-
- MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega)
-}
-
-
-/*************************************
- *
- * ROM definition(s)
- *
- *************************************/
-
-ROM_START( rallyx )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1b", 0x0000, 0x1000, CRC(5882700d) SHA1(b6029e9730f1694894fe8b729ac0ba8d6712dea9) )
- ROM_LOAD( "rallyxn.1e", 0x1000, 0x1000, CRC(ed1eba2b) SHA1(82d3a4b34b0ff5cfdb8ca7c18ad5c63d943b8484) )
- ROM_LOAD( "rallyxn.1h", 0x2000, 0x1000, CRC(4f98dd1c) SHA1(8a20fadcea76802d1c412ba62086abb846ad54a8) )
- ROM_LOAD( "rallyxn.1k", 0x3000, 0x1000, CRC(9aacccf0) SHA1(9b22079972c0f9970d62d62751db4783a87796d5) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "8e", 0x0000, 0x1000, CRC(277c1de5) SHA1(30bc57263e8dad870c501c76bce6f42d69ab9e00) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( rallyxa )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "rx1_prg_1.1b", 0x0000, 0x0800, CRC(ef9238db) SHA1(44313381652916a59a8d9959fb170184578472af) )
- ROM_LOAD( "rx1_prg_2.1c", 0x0800, 0x0800, CRC(7cbeb656) SHA1(ff6e669f7d3e91c1cc835106cccefcd81aa28bb8) )
- ROM_LOAD( "rx1_prg_3.1d", 0x1000, 0x0800, CRC(334b1042) SHA1(348a303eb8f03f19e5060d81f733d3145113abd5) )
- ROM_LOAD( "rx1_prg_4.1e", 0x1800, 0x0800, CRC(d6618add) SHA1(4c66160996f3195a83628f486789721935d2cf5b) )
- ROM_LOAD( "rx1_prg_5.bin",0x2000, 0x0800, CRC(3d69f24e) SHA1(fe5a43b7144f62d28aaf0dd92e1d02ef9199b132) )
- ROM_LOAD( "rx1_prg_6.bin",0x2800, 0x0800, CRC(e9740f16) SHA1(02a134ccd3d6557d46492747b04da02e933aa6b4) )
- ROM_LOAD( "rx1_prg_7.1k", 0x3000, 0x0800, CRC(843109f2) SHA1(7241d1025f249d23a0d15b5e31fdb2f5297ffbf4) )
- ROM_LOAD( "rx1_prg_8.1l", 0x3800, 0x0800, CRC(9b846ec9) SHA1(1fd8cce517f31a15e06cf250bc50b5a663424877) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "rx1_chg_1.8e", 0x0000, 0x0800, CRC(1fff38a4) SHA1(5f6ccce2e0daad5915d017e8d067f187eb2ed41d) )
- ROM_LOAD( "rx1_chg_2.8d", 0x0800, 0x0800, CRC(68dff552) SHA1(5dad38db45afbd79b5627a75b295fc920ad68856) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( rallyxm )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1b", 0x0000, 0x1000, CRC(5882700d) SHA1(b6029e9730f1694894fe8b729ac0ba8d6712dea9) )
- ROM_LOAD( "1e", 0x1000, 0x1000, CRC(786585ec) SHA1(8aa75f10d695f4b3483c4bf7030b733318fd3bf3) )
- ROM_LOAD( "1h", 0x2000, 0x1000, CRC(110d7dcd) SHA1(23e0855c2c9300f2068711d160fcdfaedd07832f) )
- ROM_LOAD( "1k", 0x3000, 0x1000, CRC(473ab447) SHA1(f0a37ccc48c97c53672f754ca2ac37dc0dc91a9f) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "8e", 0x0000, 0x1000, CRC(277c1de5) SHA1(30bc57263e8dad870c501c76bce6f42d69ab9e00) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( rallyxmr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "166.bin", 0x0000, 0x0800, CRC(ef9238db) SHA1(44313381652916a59a8d9959fb170184578472af) )
- ROM_LOAD( "167.bin", 0x0800, 0x0800, CRC(7cbeb656) SHA1(ff6e669f7d3e91c1cc835106cccefcd81aa28bb8) )
- ROM_LOAD( "168.bin", 0x1000, 0x0800, CRC(334b1042) SHA1(348a303eb8f03f19e5060d81f733d3145113abd5) )
- ROM_LOAD( "169.bin", 0x1800, 0x0800, CRC(b4852b52) SHA1(bf82ab1db49811114d16cf2cb5a318b98c07603c) )
- ROM_LOAD( "170.bin", 0x2000, 0x0800, CRC(3d69f24e) SHA1(fe5a43b7144f62d28aaf0dd92e1d02ef9199b132) )
- ROM_LOAD( "171.bin", 0x2800, 0x0800, CRC(e9740f16) SHA1(02a134ccd3d6557d46492747b04da02e933aa6b4) )
- ROM_LOAD( "172.bin", 0x3000, 0x0800, CRC(843109f2) SHA1(7241d1025f249d23a0d15b5e31fdb2f5297ffbf4) )
- ROM_LOAD( "173.bin", 0x3800, 0x0800, CRC(3b5b1a81) SHA1(5aa4dd850283062113181674849d531a2908340c) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "175.bin", 0x0000, 0x0800, CRC(50a224e2) SHA1(33da1bdc33f085d19ae2c482747c509cf9441674) )
- ROM_LOAD( "174.bin", 0x0800, 0x0800, CRC(68dff552) SHA1(5dad38db45afbd79b5627a75b295fc920ad68856) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( dngrtrck ) // PROMs weren't dumped for this PCB, supposed to match
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1b-2716.bin", 0x0000, 0x0800, CRC(b6180a12) SHA1(f442fe81f7fac6e915944640c763d7016a6577f6) )
- ROM_LOAD( "1c-2716.bin", 0x0800, 0x0800, CRC(7cbeb656) SHA1(ff6e669f7d3e91c1cc835106cccefcd81aa28bb8) )
- ROM_LOAD( "1d-2716.bin", 0x1000, 0x0800, CRC(594207b1) SHA1(addea746e2378c44c06d6d18d466138946a339cf) )
- ROM_LOAD( "1e-2716.bin", 0x1800, 0x0800, CRC(ae447251) SHA1(7c86193c9418929662b35143c66a5dff44663dd7) )
- ROM_LOAD( "1h-2716.bin", 0x2000, 0x0800, CRC(e0d4b534) SHA1(fb64b21c418a2633d592f4476aed909ea6678fb2) )
- ROM_LOAD( "1j-2716.bin", 0x2800, 0x0800, CRC(e9740f16) SHA1(02a134ccd3d6557d46492747b04da02e933aa6b4) )
- ROM_LOAD( "1k-2716.bin", 0x3000, 0x0800, CRC(843109f2) SHA1(7241d1025f249d23a0d15b5e31fdb2f5297ffbf4) )
- ROM_LOAD( "1l-2716.bin", 0x3800, 0x0800, CRC(17759749) SHA1(8169eebcb02615b99f786f6c5294eb31a8d1911b) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "8e-2716.bin", 0x0000, 0x0800, CRC(50a224e2) SHA1(33da1bdc33f085d19ae2c482747c509cf9441674) )
- ROM_LOAD( "8d-2716.bin", 0x0800, 0x0800, CRC(68dff552) SHA1(5dad38db45afbd79b5627a75b295fc920ad68856) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( nrallyx )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "nrx_prg1.1d", 0x0000, 0x0800, CRC(ba7de9fc) SHA1(2133ca327589600bcbd796c213f034daa0457f72) )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_LOAD( "nrx_prg2.1e", 0x0800, 0x0800, CRC(eedfccae) SHA1(9fca8500f724864a2b73e38bd40cbaeef41617d7) )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_LOAD( "nrx_prg3.1k", 0x2000, 0x0800, CRC(b4d5d34a) SHA1(c533470aac040b3471d79fd6d35beb4fd4b5bb19) )
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_LOAD( "nrx_prg4.1l", 0x2800, 0x0800, CRC(7da5496d) SHA1(ffac2c07dda57285673073266712fa2987e3b34f) )
- ROM_CONTINUE( 0x3800, 0x0800 )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "nrx_chg1.8e", 0x0000, 0x0800, CRC(1fff38a4) SHA1(5f6ccce2e0daad5915d017e8d067f187eb2ed41d) )
- ROM_LOAD( "nrx_chg2.8d", 0x0800, 0x0800, CRC(85d9fffd) SHA1(12dff66d98a808b9dc952b2d87a56308b46a973e) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "nrx1-1.11n", 0x0000, 0x0020, CRC(a0a49017) SHA1(494c920a157e9f876d533c1b0146275a366c4989) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "nrx1-7.8p", 0x0020, 0x0100, CRC(4e46f485) SHA1(3f013aafba96a76d410f2db16d1d24d2fb257aaf) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( nrallyxb )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "nrallyx.1b", 0x0000, 0x1000, CRC(9404c8d6) SHA1(ee7e45c22a2fbf72d3ac5ac26ab1111a22623fc5) )
- ROM_LOAD( "nrallyx.1e", 0x1000, 0x1000, CRC(ac01bf3f) SHA1(8e1a7cce92ef709d18727db6ee7f89936f4b8df8) )
- ROM_LOAD( "nrallyx.1h", 0x2000, 0x1000, CRC(aeba29b5) SHA1(2a6e4568729b83c430bf70e43c4146ad6a556b1b) )
- ROM_LOAD( "nrallyx.1k", 0x3000, 0x1000, CRC(78f17da7) SHA1(1e035746a10f91e898166a58093d45bdb158ae47) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "nrallyx.8e", 0x0000, 0x1000, CRC(ca7a174a) SHA1(dc553df18c45ba399661122be75b71d6cb54d6a2) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* Prom type: IM5623 - dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "nrx1-1.11n", 0x0000, 0x0020, CRC(a0a49017) SHA1(494c920a157e9f876d533c1b0146275a366c4989) ) /* Prom type: M3-7603-5 - palette */
- ROM_LOAD( "nrx1-7.8p", 0x0020, 0x0100, CRC(4e46f485) SHA1(3f013aafba96a76d410f2db16d1d24d2fb257aaf) ) /* Prom type: IM5623 - lookup table */
- ROM_LOAD( "rx1-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* Prom type: N82S123N - video layout (not used) */
- ROM_LOAD( "rx1-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* Prom type: M3-7603-5 - video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */
- ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) /* Prom type: IM5623 */
- ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* Prom type: IM5623 - not used */
-ROM_END
-
-ROM_START( jungler )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "jungr1", 0x0000, 0x1000, CRC(5bd6ad15) SHA1(608de86e19c6726bb7d21e7dc0e936f00121a3f4) )
- ROM_LOAD( "jungr2", 0x1000, 0x1000, CRC(dc99f1e3) SHA1(942405f6c7d816139e36289126fe883a6a9a0a08) )
- ROM_LOAD( "jungr3", 0x2000, 0x1000, CRC(3dcc03da) SHA1(2c328a46511c4c9eec6515b9316a586de6503152) )
- ROM_LOAD( "jungr4", 0x3000, 0x1000, CRC(f92e9940) SHA1(d72a4d0a0ab7c9a1dcbb7925eb8530052640a234) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "1b", 0x0000, 0x1000, CRC(f86999c3) SHA1(4660bd7826219b1bad7d9178918823196d4fd8d6) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "5k", 0x0000, 0x0800, CRC(924262bf) SHA1(593f59630b3bd369aef0819992106b4e6e6a241f) )
- ROM_LOAD( "5m", 0x0800, 0x0800, CRC(131a08ac) SHA1(167a0710a2a153f7f7c6839d2340e5aa725ef039) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "82s129.10g", 0x0000, 0x0100, CRC(c59c51b7) SHA1(e8ac60fed9ba16c61a4c3c09e27f8c3f4e254014) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) /* palette */
- ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) /* loookup table */
- ROM_LOAD( "18s030.7a", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */
- ROM_LOAD( "6331-1.10a", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( junglers )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "5c", 0x0000, 0x1000, CRC(edd71b28) SHA1(6bdd85bc1c24ca57573252fd636e05759164de8a) )
- ROM_LOAD( "5a", 0x1000, 0x1000, CRC(61ea4d46) SHA1(575ffe9fc7d5777c8f2d2b449623c353f42a4249) )
- ROM_LOAD( "4d", 0x2000, 0x1000, CRC(557c7925) SHA1(84d8eb2fdb7ee9098805be9f457a37f51e4bc3b8) )
- ROM_LOAD( "4c", 0x3000, 0x1000, CRC(51aac9a5) SHA1(2c8a24b4ce8cec96c6e09332f3f63bd7d25ae4c6) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "1b", 0x0000, 0x1000, CRC(f86999c3) SHA1(4660bd7826219b1bad7d9178918823196d4fd8d6) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "5k", 0x0000, 0x0800, CRC(924262bf) SHA1(593f59630b3bd369aef0819992106b4e6e6a241f) )
- ROM_LOAD( "5m", 0x0800, 0x0800, CRC(131a08ac) SHA1(167a0710a2a153f7f7c6839d2340e5aa725ef039) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "82s129.10g", 0x0000, 0x0100, CRC(c59c51b7) SHA1(e8ac60fed9ba16c61a4c3c09e27f8c3f4e254014) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) /* palette */
- ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) /* loookup table */
- ROM_LOAD( "18s030.7a", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */
- ROM_LOAD( "6331-1.10a", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( jackler ) /* Board ID SL-HA-2061-21-B */
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "jackler_j1.r1",0x0000, 0x1000, CRC(3fc0d149) SHA1(d2d8273d57e26ebc97158549d5c7dada78bf2ae4) )
- ROM_LOAD( "jackler_j2.r2",0x1000, 0x1000, CRC(5f482c7d) SHA1(5111f114c8427271d4641a55c88e54853e82aa50) )
- ROM_LOAD( "jungr3", 0x2000, 0x1000, CRC(3dcc03da) SHA1(2c328a46511c4c9eec6515b9316a586de6503152) ) // jackler_j2.r2
- ROM_LOAD( "jungr4", 0x3000, 0x1000, CRC(f92e9940) SHA1(d72a4d0a0ab7c9a1dcbb7925eb8530052640a234) ) // jackler_j3.r3
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "1b", 0x0000, 0x1000, CRC(f86999c3) SHA1(4660bd7826219b1bad7d9178918823196d4fd8d6) ) // jackler_j7_sound.1b
-
- ROM_REGION( 0x1800, "gfx1", 0 )
- ROM_LOAD( "jackler_j5.r9",0x0000, 0x1000, CRC(4190c6c0) SHA1(ebd3b5b0e6660045f1ee84006536fa31cb3d5f8e) ) // Both are 2x original
- ROM_LOAD( "jackler_j6.r10",0x0800, 0x1000, CRC(5c001c66) SHA1(aab8342131f831cb9bab4258488a0f666c35ee4d) ) // so mapped to overlap
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "82s129.10g", 0x0000, 0x0100, CRC(c59c51b7) SHA1(e8ac60fed9ba16c61a4c3c09e27f8c3f4e254014) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) /* palette */
- ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) /* loookup table */
- ROM_LOAD( "18s030.7a", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */
- ROM_LOAD( "6331-1.10a", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( savanna )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "sav1.bin", 0x0000, 0x1000, CRC(958c57eb) SHA1(b804ef99bb2f5658de508d3f9f83ca491012a51f) )
- ROM_LOAD( "sav2.bin", 0x1000, 0x1000, CRC(61ea4d46) SHA1(575ffe9fc7d5777c8f2d2b449623c353f42a4249) )
- ROM_LOAD( "sav3.bin", 0x2000, 0x1000, CRC(557c7925) SHA1(84d8eb2fdb7ee9098805be9f457a37f51e4bc3b8) )
- ROM_LOAD( "sav4.bin", 0x3000, 0x1000, CRC(b38b6cbd) SHA1(76ab41097bceb3d73c95ab8a89df702e554ba403) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "1b", 0x0000, 0x1000, CRC(f86999c3) SHA1(4660bd7826219b1bad7d9178918823196d4fd8d6) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "5k", 0x0000, 0x0800, CRC(924262bf) SHA1(593f59630b3bd369aef0819992106b4e6e6a241f) )
- ROM_LOAD( "5m", 0x0800, 0x0800, CRC(131a08ac) SHA1(167a0710a2a153f7f7c6839d2340e5aa725ef039) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "82s129.10g", 0x0000, 0x0100, CRC(c59c51b7) SHA1(e8ac60fed9ba16c61a4c3c09e27f8c3f4e254014) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) /* palette */
- ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) /* loookup table */
- ROM_LOAD( "18s030.7a", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */
- ROM_LOAD( "6331-1.10a", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( tactcian )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "tacticia.001", 0x0000, 0x1000, CRC(99163e39) SHA1(0a863f358a0bb065a9e2c41fcf4c20d370001dfe) )
- ROM_LOAD( "tacticia.002", 0x1000, 0x1000, CRC(6d3e8a69) SHA1(2b4b3f2b7401064540f59070ef6742d1f44ca839) )
- ROM_LOAD( "tacticia.003", 0x2000, 0x1000, CRC(0f71d0fa) SHA1(cb55243853b8b33034af7a6438f9a7c85a774d71) )
- ROM_LOAD( "tacticia.004", 0x3000, 0x1000, CRC(5e15f3b3) SHA1(01979f64b281a958f0a4effe2be21bf0e0a812bf) )
- ROM_LOAD( "tacticia.005", 0x4000, 0x1000, CRC(76456106) SHA1(580428f3c8cf442ee5c0f56db973644229aa8093) )
- ROM_LOAD( "tacticia.006", 0x5000, 0x1000, CRC(b33ca9ea) SHA1(0299c1cb9a3c6368bbbacb60c6f5c6854035a7bf) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "tacticia.s2", 0x0000, 0x1000, CRC(97d145a7) SHA1(7aee9004287590a25e153d45b95dfaac89fbe996) )
- ROM_LOAD( "tacticia.s1", 0x1000, 0x1000, CRC(067f781b) SHA1(640bc7813c239e497644e53a080d81366fcd04df) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "tacticia.c1", 0x0000, 0x1000, CRC(5d3ee965) SHA1(654c033291f3d139fb94f7aacbc2d1917856deb6) )
- ROM_LOAD( "tacticia.c2", 0x1000, 0x1000, CRC(e8c59c4f) SHA1(e4881f2e2e08bb8af37cc679c4e2367528ac4804) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "tact6301.004", 0x0000, 0x0100, CRC(88b0b511) SHA1(785eded1ba761cdb59db579eb8a786516ff58152) ) /* dots */ // tac.a7
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "tact6331.002", 0x0000, 0x0020, CRC(b7ef83b7) SHA1(5ffab25c2dc5be0856a43a93711d39c4aec6660b) ) /* palette */
- ROM_LOAD( "tact6301.003", 0x0020, 0x0100, CRC(a92796f2) SHA1(0faab2dc0f868f4023a34ecfcf972d1c86a224a0) ) /* loookup table */ // tac.b4
- ROM_LOAD( "tact6331.001", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */
-// ROM_LOAD( "10a.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( tactcian2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "tan1", 0x0000, 0x1000, CRC(ddf38b75) SHA1(bad66fd6ae0ab3b91989fca14a8696ed855dc852) )
- ROM_LOAD( "tan2", 0x1000, 0x1000, CRC(f065ee2e) SHA1(f2362c471981af3348465f3c8a5ffb38058432a5) )
- ROM_LOAD( "tan3", 0x2000, 0x1000, CRC(2dba64fe) SHA1(8d312a6db99d2248fef2bbc590ceba333b0fde8b) )
- ROM_LOAD( "tan4", 0x3000, 0x1000, CRC(2ba07847) SHA1(3cd7cd0621ed930cb5955fc2ffe3239f6e176321) )
- ROM_LOAD( "tan5", 0x4000, 0x1000, CRC(1dae4c61) SHA1(70283b8412b0725f1c2acc281625c582a4fae39d) )
- ROM_LOAD( "tan6", 0x5000, 0x1000, CRC(2b36a18d) SHA1(bea8f36ec98975438ab267509bd9d1d1eb605945) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- /* sound ROMs were missing - using the ones from the other set */
- ROM_LOAD( "tacticia.s2", 0x0000, 0x1000, CRC(97d145a7) SHA1(7aee9004287590a25e153d45b95dfaac89fbe996) )
- ROM_LOAD( "tacticia.s1", 0x1000, 0x1000, CRC(067f781b) SHA1(640bc7813c239e497644e53a080d81366fcd04df) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "c1", 0x0000, 0x1000, CRC(5399471f) SHA1(66aea0df982ccbd6caaa24c258b2ba364bc1ecfd) )
- ROM_LOAD( "c2", 0x1000, 0x1000, CRC(8e8861e8) SHA1(38728418b09df06356c1e45a26cf438b93517ce5) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "tact6301.004", 0x0000, 0x0100, CRC(88b0b511) SHA1(785eded1ba761cdb59db579eb8a786516ff58152) ) /* dots */ // tac.a7
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "tact6331.002", 0x0000, 0x0020, CRC(b7ef83b7) SHA1(5ffab25c2dc5be0856a43a93711d39c4aec6660b) ) /* palette */
- ROM_LOAD( "tact6301.003", 0x0020, 0x0100, CRC(a92796f2) SHA1(0faab2dc0f868f4023a34ecfcf972d1c86a224a0) ) /* loookup table */ // tac.b4
- ROM_LOAD( "tact6331.001", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */
-// ROM_LOAD( "10a.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( locomotn )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1a.cpu", 0x0000, 0x1000, CRC(b43e689a) SHA1(7f1a0fa1ea9ff95a9d51b23ea00792ba22024282) )
- ROM_LOAD( "2a.cpu", 0x1000, 0x1000, CRC(529c823d) SHA1(714ae0af254646eb6ebc5f47422246832e89ccfb) )
- ROM_LOAD( "3.cpu", 0x2000, 0x1000, CRC(c9dbfbd1) SHA1(10ec7403053ef52d0ce4aa6eab3e82a3ea5e57ff) )
- ROM_LOAD( "4.cpu", 0x3000, 0x1000, CRC(caf6431c) SHA1(f013d8846fad9f64367b69febeb7512029a639c0) )
- ROM_LOAD( "5.cpu", 0x4000, 0x1000, CRC(64cf8dd6) SHA1(8fa1b5c4a7f136cb74833425a565fa558eeee083) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "1b_s1.bin", 0x0000, 0x1000, CRC(a1105714) SHA1(6e2e264748ab90bc5e8e8167f17ff91677ef6ae7) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "5l_c1.bin", 0x0000, 0x1000, CRC(5732eda9) SHA1(451de30946a9c8198c5ec83cc5c50e3ac2f9f56b) )
- ROM_LOAD( "c2.cpu", 0x1000, 0x1000, CRC(c3035300) SHA1(ddb1d658a28b973b60e2ce72fd7662537e147860) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "10g.bpr", 0x0000, 0x0100, CRC(2ef89356) SHA1(5ed33386bab5d583358709c92f21ad9ad1a1bce9) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "8b.bpr", 0x0000, 0x0020, CRC(75b05da0) SHA1(aee98f5389e42332f30a6882ee22ff23f37e0573) ) /* palette */
- ROM_LOAD( "9d.bpr", 0x0020, 0x0100, CRC(aa6cf063) SHA1(08c1c9ab03eb168954b0170d40e95eed81022acd) ) /* loookup table */
- ROM_LOAD( "7a.bpr", 0x0120, 0x0020, CRC(48c8f094) SHA1(61592209720fddc8991751edf08b6950388af42e) ) /* video layout (not used) */
- ROM_LOAD( "10a.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( gutangtn )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "3d_1.bin", 0x0000, 0x1000, CRC(e9757395) SHA1(78e2f8988ed39d2ecfe1f874be370f603d5eecc1) )
- ROM_LOAD( "3e_2.bin", 0x1000, 0x1000, CRC(11d21d2e) SHA1(fd17dd481bb7bb39234fa7e9946b1cb4fa18109e) )
- ROM_LOAD( "3f_3.bin", 0x2000, 0x1000, CRC(4d80f895) SHA1(7d83f4ee34226636012a84f46af01991a28b96f6) )
- ROM_LOAD( "3h_4.bin", 0x3000, 0x1000, CRC(aa258ddf) SHA1(0f01ac0d72d8bb5a55c91a6fba3e55ed1c038b86) )
- ROM_LOAD( "3j_5.bin", 0x4000, 0x1000, CRC(52aec87e) SHA1(6516724c4e570972f070f6dab5b066ea92f56be0) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "1b_s1.bin", 0x0000, 0x1000, CRC(a1105714) SHA1(6e2e264748ab90bc5e8e8167f17ff91677ef6ae7) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "5l_c1.bin", 0x0000, 0x1000, CRC(5732eda9) SHA1(451de30946a9c8198c5ec83cc5c50e3ac2f9f56b) )
- ROM_LOAD( "5m_c2.bin", 0x1000, 0x1000, CRC(51c542fd) SHA1(1437f8cba15811361b2c5b46085587ea3598fc88) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "10g.bpr", 0x0000, 0x0100, CRC(2ef89356) SHA1(5ed33386bab5d583358709c92f21ad9ad1a1bce9) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "8b.bpr", 0x0000, 0x0020, CRC(75b05da0) SHA1(aee98f5389e42332f30a6882ee22ff23f37e0573) ) /* palette */
- ROM_LOAD( "9d.bpr", 0x0020, 0x0100, CRC(aa6cf063) SHA1(08c1c9ab03eb168954b0170d40e95eed81022acd) ) /* loookup table */
- ROM_LOAD( "7a.bpr", 0x0120, 0x0020, CRC(48c8f094) SHA1(61592209720fddc8991751edf08b6950388af42e) ) /* video layout (not used) */
- ROM_LOAD( "10a.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( cottong )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "c1", 0x0000, 0x1000, CRC(2c256fe6) SHA1(115594c616497eec998e4e3255ec6ab6299346fa) )
- ROM_LOAD( "c2", 0x1000, 0x1000, CRC(1de5e6a0) SHA1(8bb3408a510662ff3b9b7201d2d06fe70685bf7f) )
- ROM_LOAD( "c3", 0x2000, 0x1000, CRC(01f909fe) SHA1(c80295e9f91ce25bfd28e72823b20ee6f6524a5c) )
- ROM_LOAD( "c4", 0x3000, 0x1000, CRC(a89eb3e3) SHA1(058928ade909faba06f177750f914cf1dabaefc3) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "c7", 0x0000, 0x1000, CRC(3d83f6d3) SHA1(e10ed6b6ce7280697c1bc9dbe6c6e6018e1d8be4) )
- ROM_LOAD( "c8", 0x1000, 0x1000, CRC(323e1937) SHA1(75499d6c8a9032fac090a13cd4f36bd350f52dab) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "c5", 0x0000, 0x1000, CRC(992d079c) SHA1(b5acd30f2e8700cc4cd852b190bd1f4163b137e8) )
- ROM_LOAD( "c6", 0x1000, 0x1000, CRC(0149ef46) SHA1(58f684a9b7b9410236b3c54ea6c0fa9853a078c5) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "5.bpr", 0x0000, 0x0100, CRC(21fb583f) SHA1(b8c65fbdd5d8b70bf51341cd60fc2efeaab8bb82) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "2.bpr", 0x0000, 0x0020, CRC(26f42e6f) SHA1(f51578216a5d588c4d0143ce7a23d695a15a3914) ) /* palette */
- ROM_LOAD( "3.bpr", 0x0020, 0x0100, CRC(4aecc0c8) SHA1(3c1086a598d84b4bcb277556b716fd18c76c4364) ) /* loookup table */
- ROM_LOAD( "7a.bpr", 0x0120, 0x0020, CRC(48c8f094) SHA1(61592209720fddc8991751edf08b6950388af42e) ) /* video layout (not used) */
- ROM_LOAD( "10a.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( locoboot )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "g.116", 0x0000, 0x1000, CRC(1248799c) SHA1(b0e513bb7ca6266f9182a91c2a30adc4b414a7ad) )
- ROM_LOAD( "g.117", 0x1000, 0x1000, CRC(5b5b5753) SHA1(22f7fa0968843b52aa6eac743e5447502c86b10f) )
- ROM_LOAD( "g.118", 0x2000, 0x1000, CRC(6bc269e1) SHA1(22d2c97e597fb7e6ae9074c8f921c902b879efe8) )
- ROM_LOAD( "g.119", 0x3000, 0x1000, CRC(3feb762e) SHA1(94ee68549752fac3c67582d968d3f5e3f1380eef) )
-
- /* no other roms were present in this set,
- but it appears to work best with the cottong roms,
- and the program roms appear to be a hack of that
- */
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "c7", 0x0000, 0x1000, CRC(3d83f6d3) SHA1(e10ed6b6ce7280697c1bc9dbe6c6e6018e1d8be4) )
- ROM_LOAD( "c8", 0x1000, 0x1000, CRC(323e1937) SHA1(75499d6c8a9032fac090a13cd4f36bd350f52dab) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "c5", 0x0000, 0x1000, CRC(992d079c) SHA1(b5acd30f2e8700cc4cd852b190bd1f4163b137e8) )
- ROM_LOAD( "c6", 0x1000, 0x1000, CRC(0149ef46) SHA1(58f684a9b7b9410236b3c54ea6c0fa9853a078c5) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "5.bpr", 0x0000, 0x0100, CRC(21fb583f) SHA1(b8c65fbdd5d8b70bf51341cd60fc2efeaab8bb82) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "2.bpr", 0x0000, 0x0020, CRC(26f42e6f) SHA1(f51578216a5d588c4d0143ce7a23d695a15a3914) ) /* palette */
- ROM_LOAD( "3.bpr", 0x0020, 0x0100, CRC(4aecc0c8) SHA1(3c1086a598d84b4bcb277556b716fd18c76c4364) ) /* loookup table */
- ROM_LOAD( "7a.bpr", 0x0120, 0x0020, CRC(48c8f094) SHA1(61592209720fddc8991751edf08b6950388af42e) ) /* video layout (not used) */
- ROM_LOAD( "10a.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-ROM_START( commsega )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "csega1", 0x0000, 0x1000, CRC(92de3405) SHA1(81ef4274b13f92d6274a0a037d7dc77ba0f67a1b) )
- ROM_LOAD( "csega2", 0x1000, 0x1000, CRC(f14e2f9a) SHA1(c1a7ec1c306e07bac0bbf19b60f756650f63ae29) )
- ROM_LOAD( "csega3", 0x2000, 0x1000, CRC(941dbf48) SHA1(01d2d64fb662af423aa04507ba97997772130c54) )
- ROM_LOAD( "csega4", 0x3000, 0x1000, CRC(e0ac69b4) SHA1(3a52b2a6204b7310cfe321c582352b437de16660) )
- ROM_LOAD( "csega5", 0x4000, 0x1000, CRC(bc56ebd0) SHA1(a178cd5ba381b107e720e18f3549247477037998) )
-
- ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
- ROM_LOAD( "csega8", 0x0000, 0x1000, CRC(588b4210) SHA1(43bac1bdac721567e4b5d56e9e4488165872bd6a) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "csega7", 0x0000, 0x1000, CRC(e8e374f9) SHA1(442cc6b7e7d5b9472a5c16d6f78db0c03e651e98) )
- ROM_LOAD( "csega6", 0x1000, 0x1000, CRC(cf07fd5e) SHA1(4fe351c3d093f8f5fcf95e3e921a06e44d14d2a7) )
-
- ROM_REGION( 0x0100, "gfx2", 0 )
- ROM_LOAD( "gg3.bpr", 0x0000, 0x0100, CRC(ae7fd962) SHA1(118359cffb2ad3fdf09456a484aa730cb1b85a5d) ) /* dots */
-
- ROM_REGION( 0x0160, "proms", 0 )
- ROM_LOAD( "gg1.bpr", 0x0000, 0x0020, CRC(f69e585a) SHA1(248740b154732b6bc6f772d4bb19d654798c3739) ) /* palette */
- ROM_LOAD( "gg2.bpr", 0x0020, 0x0100, CRC(0b756e30) SHA1(8890e305547df8df108af0f89074fb1c8bed8e6c) ) /* loookup table */
- ROM_LOAD( "gg0.bpr", 0x0120, 0x0020, CRC(48c8f094) SHA1(61592209720fddc8991751edf08b6950388af42e) ) /* video layout (not used) */
- ROM_LOAD( "tt3.bpr", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */
-ROM_END
-
-
-/*************************************
- *
- * Game driver(s)
- *
- *************************************/
-
-GAME( 1980, rallyx, 0, rallyx, rallyx, rallyx_state, empty_init, ROT0, "Namco", "Rally X (32k Ver.?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, rallyxa, rallyx, rallyx, rallyx, rallyx_state, empty_init, ROT0, "Namco", "Rally X", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, rallyxm, rallyx, rallyx, rallyx, rallyx_state, empty_init, ROT0, "Namco (Midway license)", "Rally X (Midway)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, rallyxmr, rallyx, rallyx, rallyx, rallyx_state, empty_init, ROT0, "bootleg (Model Racing)", "Rally X (Model Racing bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, dngrtrck, rallyx, rallyx, dngrtrck, rallyx_state, empty_init, ROT0, "bootleg (Petaco)", "Danger Track (Rally X bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, nrallyx, 0, rallyx, nrallyx, rallyx_state, empty_init, ROT0, "Namco", "New Rally X", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, nrallyxb, nrallyx, rallyx, nrallyx, rallyx_state, empty_init, ROT0, "Namco", "New Rally X (bootleg?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, jungler, 0, jungler, jungler, rallyx_state, empty_init, ROT90, "Konami", "Jungler", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, junglers, jungler, jungler, jungler, rallyx_state, empty_init, ROT90, "Konami (Stern Electronics license)", "Jungler (Stern Electronics)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, jackler, jungler, jungler, jungler, rallyx_state, empty_init, ROT90, "bootleg", "Jackler (Jungler bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, savanna, jungler, jungler, jungler, rallyx_state, empty_init, ROT90, "bootleg (Olympia)", "Savanna (Jungler bootleg)", MACHINE_SUPPORTS_SAVE ) // or licensed from Konami?
-GAME( 1982, tactcian, 0, tactcian, tactcian, rallyx_state, empty_init, ROT90, "Konami (Sega license)", "Tactician (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, tactcian2,tactcian, tactcian, tactcian, rallyx_state, empty_init, ROT90, "Konami (Sega license)", "Tactician (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, locomotn, 0, locomotn, locomotn, rallyx_state, empty_init, ROT90, "Konami (Centuri license)", "Loco-Motion", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, gutangtn, locomotn, locomotn, locomotn, rallyx_state, empty_init, ROT90, "Konami (Sega license)", "Guttang Gottong", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, cottong, locomotn, locomotn, locomotn, rallyx_state, empty_init, ROT90, "bootleg", "Cotocoto Cottong", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, locoboot, locomotn, locomotn, locomotn, rallyx_state, empty_init, ROT90, "bootleg", "Loco-Motion (bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, commsega, 0, commsega, commsega, rallyx_state, empty_init, ROT90, "Sega", "Commando (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )