summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/rallyx.cpp351
-rw-r--r--src/mame/includes/rallyx.h87
-rw-r--r--src/mame/mame.lst1
-rw-r--r--src/mame/video/rallyx.cpp122
4 files changed, 284 insertions, 277 deletions
diff --git a/src/mame/drivers/rallyx.cpp b/src/mame/drivers/rallyx.cpp
index 617f114af34..abf9e18a39d 100644
--- a/src/mame/drivers/rallyx.cpp
+++ b/src/mame/drivers/rallyx.cpp
@@ -209,14 +209,14 @@ TODO:
*
*************************************/
-WRITE8_MEMBER(rallyx_state::rallyx_interrupt_vector_w)
+void rallyx_state::rallyx_interrupt_vector_w(uint8_t data)
{
m_maincpu->set_input_line_vector(0, data); // Z80
m_maincpu->set_input_line(0, CLEAR_LINE);
}
-WRITE_LINE_MEMBER(rallyx_state::bang_w)
+void rallyx_state::bang_w(int state)
{
if (state == 0 && m_last_bang != 0)
m_samples->start(0, 0);
@@ -225,14 +225,14 @@ WRITE_LINE_MEMBER(rallyx_state::bang_w)
}
-WRITE_LINE_MEMBER(rallyx_state::irq_mask_w)
+void rallyx_state::irq_mask_w(int state)
{
m_main_irq_mask = state;
if (!state)
m_maincpu->set_input_line(0, CLEAR_LINE);
}
-WRITE_LINE_MEMBER(rallyx_state::nmi_mask_w)
+void rallyx_state::nmi_mask_w(int state)
{
m_main_irq_mask = state;
if (!state)
@@ -240,32 +240,32 @@ WRITE_LINE_MEMBER(rallyx_state::nmi_mask_w)
}
-WRITE_LINE_MEMBER(rallyx_state::sound_on_w)
+void rallyx_state::sound_on_w(int state)
{
- /* this doesn't work in New Rally X so I'm not supporting it */
+ // 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)
+void rallyx_state::flip_screen_w(int state)
{
flip_screen_set(state);
}
-WRITE_LINE_MEMBER(rallyx_state::coin_lockout_w)
+void rallyx_state::coin_lockout_w(int state)
{
machine().bookkeeping().coin_lockout_w(0, !state);
}
-WRITE_LINE_MEMBER(rallyx_state::coin_counter_1_w)
+void rallyx_state::coin_counter_1_w(int state)
{
machine().bookkeeping().coin_counter_w(0, state);
}
-WRITE_LINE_MEMBER(rallyx_state::coin_counter_2_w)
+void rallyx_state::coin_counter_2_w(int state)
{
machine().bookkeeping().coin_counter_w(1, state);
}
@@ -280,17 +280,17 @@ WRITE_LINE_MEMBER(rallyx_state::coin_counter_2_w)
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(0x8000, 0x8fff).ram().w(FUNC(rallyx_state::videoram_w)).share(m_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(0xa000, 0xa00f).writeonly().share(m_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(0xa130, 0xa130).w(FUNC(rallyx_state::scrollx_w));
+ map(0xa140, 0xa140).w(FUNC(rallyx_state::scrolly_w));
+ map(0xa170, 0xa170).nopw(); // ?
map(0xa180, 0xa187).w("mainlatch", FUNC(ls259_device::write_d0));
}
@@ -304,17 +304,17 @@ void rallyx_state::io_map(address_map &map)
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(0x8000, 0x8fff).ram().w(FUNC(rallyx_state::videoram_w)).share(m_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(0xa000, 0xa00f).mirror(0x00f0).writeonly().share(m_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(0xa130, 0xa130).w(FUNC(rallyx_state::scrollx_w)); // only jungler and tactcian
+ map(0xa140, 0xa140).w(FUNC(rallyx_state::scrolly_w)); // only jungler and tactcian
map(0xa180, 0xa187).w("mainlatch", FUNC(ls259_device::write_d0));
}
@@ -480,11 +480,11 @@ static INPUT_PORTS_START( jungler )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
- PORT_START("DSW1") /* Sound board */
+ 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_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 ) )
@@ -533,7 +533,7 @@ static INPUT_PORTS_START( locomotn )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
- PORT_START("DSW1") /* Sound board */
+ 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")
@@ -552,7 +552,7 @@ static INPUT_PORTS_START( locomotn )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_START("DSW2") /* CPU board */
+ 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 ) )
@@ -587,7 +587,7 @@ static INPUT_PORTS_START( locomotn )
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 */
+ // "No Coin B" = coins produce sound, but no effect on coin counter
INPUT_PORTS_END
@@ -600,7 +600,7 @@ static INPUT_PORTS_START( tactcian )
PORT_MODIFY("P2")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_MODIFY("DSW1") /* Sound board */
+ 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" )
@@ -619,7 +619,7 @@ static INPUT_PORTS_START( tactcian )
PORT_DIPSETTING( 0x00, "10k, 80k then every 100k" )
PORT_DIPSETTING( 0x01, "20k, 80k then every 100k" )
- PORT_MODIFY("DSW2") /* CPU board */
+ 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" )
@@ -654,7 +654,7 @@ static INPUT_PORTS_START( commsega )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
- PORT_START("DSW1") /* (sound board) */
+ 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")
@@ -672,7 +672,7 @@ static INPUT_PORTS_START( commsega )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_START("DSW2") /* (CPU board) */
+ 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" )
@@ -785,7 +785,7 @@ static const char *const rallyx_sample_names[] =
{
"*rallyx",
"bang",
- nullptr /* end of array */
+ nullptr // end of array
};
/*************************************
@@ -801,13 +801,13 @@ MACHINE_START_MEMBER(rallyx_state,rallyx)
save_item(NAME(m_main_irq_mask));
}
-WRITE_LINE_MEMBER(rallyx_state::rallyx_vblank_irq)
+void rallyx_state::rallyx_vblank_irq(int state)
{
if (state && m_main_irq_mask)
m_maincpu->set_input_line(0, ASSERT_LINE);
}
-WRITE_LINE_MEMBER(rallyx_state::jungler_vblank_irq)
+void rallyx_state::jungler_vblank_irq(int state)
{
if (state && m_main_irq_mask)
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
@@ -815,8 +815,8 @@ WRITE_LINE_MEMBER(rallyx_state::jungler_vblank_irq)
void rallyx_state::rallyx(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ // 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);
@@ -834,7 +834,7 @@ void rallyx_state::rallyx(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
- /* video hardware */
+ // 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));
@@ -851,10 +851,10 @@ void rallyx_state::rallyx(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx)
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
- NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32); /* 96 KHz */
+ 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);
@@ -866,8 +866,8 @@ void rallyx_state::rallyx(machine_config &config)
void rallyx_state::jungler(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ // 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
@@ -884,10 +884,10 @@ void rallyx_state::jungler(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
- /* video hardware */
+ // 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_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));
@@ -901,7 +901,7 @@ void rallyx_state::jungler(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler)
- /* sound hardware */
+ // sound hardware
LOCOMOTN_AUDIO(config, "timeplt_audio");
}
@@ -952,17 +952,17 @@ ROM_START( rallyx )
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_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_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 )
@@ -981,17 +981,17 @@ ROM_START( rallyxa )
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_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_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 )
@@ -1005,17 +1005,17 @@ ROM_START( rallyxm )
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_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_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 )
@@ -1034,17 +1034,17 @@ ROM_START( rallyxmr )
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_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_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
@@ -1063,17 +1063,17 @@ ROM_START( dngrtrck ) // PROMs weren't dumped for this PCB, supposed to match
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_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_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 )
@@ -1092,17 +1092,17 @@ ROM_START( nrallyx )
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_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_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 )
@@ -1116,17 +1116,17 @@ ROM_START( nrallyxb )
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_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_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 )
@@ -1144,13 +1144,13 @@ ROM_START( jungler )
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_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_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) // palette
+ ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) // lookup 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 )
@@ -1168,16 +1168,44 @@ ROM_START( junglers )
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_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_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) // palette
+ ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) // lookup 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 */
+// main PCB is marked: "OLYMPIA", "[C] 13-53", "Konami LICENSED", "CE" and "22 A" on solder side
+// sound PCB is marked: "OLYMPIA", "[C] 15-82", "Konami LICENSED", "CE" and "22 B" on component side
+ROM_START( junglero )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "j1.bin", 0x0000, 0x1000, CRC(5bd6ad15) SHA1(608de86e19c6726bb7d21e7dc0e936f00121a3f4) )
+ ROM_LOAD( "j2.bin", 0x1000, 0x1000, CRC(dc99f1e3) SHA1(942405f6c7d816139e36289126fe883a6a9a0a08) )
+ ROM_LOAD( "j3.bin", 0x2000, 0x1000, CRC(3dcc03da) SHA1(2c328a46511c4c9eec6515b9316a586de6503152) )
+ ROM_LOAD( "j4.bin", 0x3000, 0x1000, CRC(f92e9940) SHA1(d72a4d0a0ab7c9a1dcbb7925eb8530052640a234) )
+
+ ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
+ ROM_LOAD( "js1.bin", 0x0000, 0x1000, CRC(f86999c3) SHA1(4660bd7826219b1bad7d9178918823196d4fd8d6) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "j5.bin", 0x0000, 0x800, CRC(4190c6c0) SHA1(ebd3b5b0e6660045f1ee84006536fa31cb3d5f8e) )
+ ROM_IGNORE(0x800)
+ ROM_LOAD( "j6.bin", 0x0800, 0x800, CRC(5c001c66) SHA1(aab8342131f831cb9bab4258488a0f666c35ee4d) )
+ ROM_IGNORE(0x800)
+
+ ROM_REGION( 0x0100, "gfx2", 0 )
+ ROM_LOAD( "am27s21dc.jn4", 0x0000, 0x0100, CRC(c59c51b7) SHA1(e8ac60fed9ba16c61a4c3c09e27f8c3f4e254014) ) // dots
+
+ ROM_REGION( 0x0160, "proms", 0 )
+ ROM_LOAD( "dm74s288n.jn2", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) // palette
+ ROM_LOAD( "tbp24s10.jn5", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) // lookup table
+ ROM_LOAD( "dm74s288n.jn1", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) // video layout (not used)
+ ROM_LOAD( "mb7051.jn3", 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) )
@@ -1192,13 +1220,13 @@ ROM_START( jackler ) /* Board ID SL-HA-2061-21-B */
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_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_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) // palette
+ ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) // lookup 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 )
@@ -1216,13 +1244,13 @@ ROM_START( savanna )
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_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_LOAD( "18s030.8b", 0x0000, 0x0020, CRC(55a7e6d1) SHA1(f9e4ff3b165235db2fd8dab94c43bc686c3ad29b) ) // palette
+ ROM_LOAD( "tbp24s10.9d", 0x0020, 0x0100, CRC(d223f7b8) SHA1(87b62f09d4eda09c16d99d1554017d18e52b5886) ) // lookup 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 )
@@ -1243,13 +1271,13 @@ ROM_START( tactcian )
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_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_LOAD( "tact6331.002", 0x0000, 0x0020, CRC(b7ef83b7) SHA1(5ffab25c2dc5be0856a43a93711d39c4aec6660b) ) // palette
+ ROM_LOAD( "tact6301.003", 0x0020, 0x0100, CRC(a92796f2) SHA1(0faab2dc0f868f4023a34ecfcf972d1c86a224a0) ) // lookup 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 )
@@ -1262,7 +1290,7 @@ ROM_START( tactcian2 )
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 */
+ // 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) )
@@ -1271,13 +1299,13 @@ ROM_START( tactcian2 )
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_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_LOAD( "tact6331.002", 0x0000, 0x0020, CRC(b7ef83b7) SHA1(5ffab25c2dc5be0856a43a93711d39c4aec6660b) ) // palette
+ ROM_LOAD( "tact6301.003", 0x0020, 0x0100, CRC(a92796f2) SHA1(0faab2dc0f868f4023a34ecfcf972d1c86a224a0) ) // lookup 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 )
@@ -1296,13 +1324,13 @@ ROM_START( locomotn )
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_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_LOAD( "8b.bpr", 0x0000, 0x0020, CRC(75b05da0) SHA1(aee98f5389e42332f30a6882ee22ff23f37e0573) ) // palette
+ ROM_LOAD( "9d.bpr", 0x0020, 0x0100, CRC(aa6cf063) SHA1(08c1c9ab03eb168954b0170d40e95eed81022acd) ) // lookup 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 )
@@ -1321,13 +1349,13 @@ ROM_START( gutangtn )
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_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_LOAD( "8b.bpr", 0x0000, 0x0020, CRC(75b05da0) SHA1(aee98f5389e42332f30a6882ee22ff23f37e0573) ) // palette
+ ROM_LOAD( "9d.bpr", 0x0020, 0x0100, CRC(aa6cf063) SHA1(08c1c9ab03eb168954b0170d40e95eed81022acd) ) // lookup 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 )
@@ -1346,13 +1374,13 @@ ROM_START( cottong )
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_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_LOAD( "2.bpr", 0x0000, 0x0020, CRC(26f42e6f) SHA1(f51578216a5d588c4d0143ce7a23d695a15a3914) ) // palette
+ ROM_LOAD( "3.bpr", 0x0020, 0x0100, CRC(4aecc0c8) SHA1(3c1086a598d84b4bcb277556b716fd18c76c4364) ) // lookup 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 )
@@ -1376,13 +1404,13 @@ ROM_START( locoboot )
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_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_LOAD( "2.bpr", 0x0000, 0x0020, CRC(26f42e6f) SHA1(f51578216a5d588c4d0143ce7a23d695a15a3914) ) // palette
+ ROM_LOAD( "3.bpr", 0x0020, 0x0100, CRC(4aecc0c8) SHA1(3c1086a598d84b4bcb277556b716fd18c76c4364) ) // lookup 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 )
@@ -1401,13 +1429,13 @@ ROM_START( commsega )
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_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_LOAD( "gg1.bpr", 0x0000, 0x0020, CRC(f69e585a) SHA1(248740b154732b6bc6f772d4bb19d654798c3739) ) // palette
+ ROM_LOAD( "gg2.bpr", 0x0020, 0x0100, CRC(0b756e30) SHA1(8890e305547df8df108af0f89074fb1c8bed8e6c) ) // lookup 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
@@ -1426,6 +1454,7 @@ GAME( 1981, nrallyx, 0, rallyx, nrallyx, rallyx_state, empty_init, RO
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( 1981, junglero, jungler, jungler, jungler, rallyx_state, empty_init, ROT90, "Konami (Olympia license)", "Jungler (Olympia)", 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 )
diff --git a/src/mame/includes/rallyx.h b/src/mame/includes/rallyx.h
index 7ce65190614..5a03bcf1424 100644
--- a/src/mame/includes/rallyx.h
+++ b/src/mame/includes/rallyx.h
@@ -15,13 +15,6 @@
class rallyx_state : public driver_device
{
public:
- struct jungler_star
- {
- int x, y, color;
- };
-
- static constexpr unsigned JUNGLER_MAX_STARS = 1000;
-
rallyx_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
@@ -35,7 +28,14 @@ public:
m_screen(*this, "screen")
{ }
- /* memory pointers */
+ void commsega(machine_config &config);
+ void jungler(machine_config &config);
+ void locomotn(machine_config &config);
+ void rallyx(machine_config &config);
+ void tactcian(machine_config &config);
+
+private:
+ // memory pointers
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_radarattr;
uint8_t * m_spriteram;
@@ -43,19 +43,28 @@ public:
uint8_t * m_radarx;
uint8_t * m_radary;
- /* video-related */
+ // video-related
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
- /* misc */
- int m_last_bang;
- int m_spriteram_base;
- int m_stars_enable;
- int m_total_stars;
- uint8_t m_drawmode_table[4];
+ // misc
+ static constexpr unsigned JUNGLER_MAX_STARS = 1000;
+
+ struct jungler_star
+ {
+ uint16_t x, y;
+ uint8_t color;
+ };
+
+ bool m_last_bang;
+ uint8_t m_spriteram_base;
+ bool m_stars_enable;
+ uint16_t m_total_stars;
+ uint8_t m_drawmode_table[4];
struct jungler_star m_stars[JUNGLER_MAX_STARS];
+ bool m_main_irq_mask;
- /* devices */
+ // devices
required_device<cpu_device> m_maincpu;
optional_device<namco_device> m_namco_sound;
optional_device<samples_device> m_samples;
@@ -64,41 +73,43 @@ public:
required_device<palette_device> m_palette;
required_device<screen_device> m_screen;
- bool m_main_irq_mask;
- DECLARE_WRITE8_MEMBER(rallyx_interrupt_vector_w);
- DECLARE_WRITE_LINE_MEMBER(bang_w);
- DECLARE_WRITE_LINE_MEMBER(irq_mask_w);
- DECLARE_WRITE_LINE_MEMBER(nmi_mask_w);
- DECLARE_WRITE_LINE_MEMBER(sound_on_w);
- DECLARE_WRITE_LINE_MEMBER(flip_screen_w);
- DECLARE_WRITE_LINE_MEMBER(coin_lockout_w);
- DECLARE_WRITE_LINE_MEMBER(coin_counter_1_w);
- DECLARE_WRITE_LINE_MEMBER(coin_counter_2_w);
- DECLARE_WRITE8_MEMBER(rallyx_videoram_w);
- DECLARE_WRITE8_MEMBER(rallyx_scrollx_w);
- DECLARE_WRITE8_MEMBER(rallyx_scrolly_w);
- DECLARE_WRITE_LINE_MEMBER(stars_enable_w);
+ void rallyx_interrupt_vector_w(uint8_t data);
+ void bang_w(int state);
+ void irq_mask_w(int state);
+ void nmi_mask_w(int state);
+ void sound_on_w(int state);
+ void flip_screen_w(int state);
+ void coin_lockout_w(int state);
+ void coin_counter_1_w(int state);
+ void coin_counter_2_w(int state);
+ void videoram_w(offs_t offset, uint8_t data);
+ void scrollx_w(uint8_t data);
+ void scrolly_w(uint8_t data);
+ void stars_enable_w(int state);
+ void rallyx_vblank_irq(int state);
+ void jungler_vblank_irq(int state);
+
TILEMAP_MAPPER_MEMBER(fg_tilemap_scan);
TILE_GET_INFO_MEMBER(rallyx_bg_get_tile_info);
TILE_GET_INFO_MEMBER(rallyx_fg_get_tile_info);
TILE_GET_INFO_MEMBER(locomotn_bg_get_tile_info);
TILE_GET_INFO_MEMBER(locomotn_fg_get_tile_info);
+
DECLARE_MACHINE_START(rallyx);
DECLARE_VIDEO_START(rallyx);
- void rallyx_palette(palette_device &palette) const;
DECLARE_VIDEO_START(jungler);
- void jungler_palette(palette_device &palette) const;
DECLARE_VIDEO_START(locomotn);
DECLARE_VIDEO_START(commsega);
+
+ void rallyx_palette(palette_device &palette) const;
+ void jungler_palette(palette_device &palette) const;
uint32_t screen_update_rallyx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_jungler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_locomotn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE_LINE_MEMBER(rallyx_vblank_irq);
- DECLARE_WRITE_LINE_MEMBER(jungler_vblank_irq);
inline void rallyx_get_tile_info( tile_data &tileinfo, int tile_index, int ram_offs);
inline void locomotn_get_tile_info(tile_data &tileinfo,int tile_index,int ram_offs);
void calculate_star_field();
- void rallyx_video_start_common();
+ void video_start_common();
void plot_star( bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y, int color );
void draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect );
void rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
@@ -106,11 +117,7 @@ public:
void rallyx_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, bool transpen );
void jungler_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, bool transpen );
void locomotn_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, bool transpen );
- void commsega(machine_config &config);
- void locomotn(machine_config &config);
- void tactcian(machine_config &config);
- void rallyx(machine_config &config);
- void jungler(machine_config &config);
+
void io_map(address_map &map);
void jungler_map(address_map &map);
void rallyx_map(address_map &map);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index af0cf007df1..3fadfdaa87c 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -34367,6 +34367,7 @@ dngrtrck // Petaco bootleg
gutangtn // GX359 (c) 1982 Konami + Sega license
jackler // 1 9 8 2 (Jungler Bootleg)
jungler // GX327 (c) 1981 Konami
+junglero // Olympia license
junglers // GX327 (c) 1981 Stern
locoboot // bootleg
locomotn // GX359 (c) 1982 Konami + Centuri license
diff --git a/src/mame/video/rallyx.cpp b/src/mame/video/rallyx.cpp
index dd2107a15f0..081f07da6f1 100644
--- a/src/mame/video/rallyx.cpp
+++ b/src/mame/video/rallyx.cpp
@@ -207,7 +207,7 @@ void rallyx_state::jungler_palette(palette_device &palette) const
***************************************************************************/
-/* the video RAM has space for 32x32 tiles and is only partially used for the radar */
+// the video RAM has space for 32x32 tiles and is only partially used for the radar
TILEMAP_MAPPER_MEMBER(rallyx_state::fg_tilemap_scan)
{
return col + (row << 5);
@@ -267,22 +267,17 @@ TILE_GET_INFO_MEMBER(rallyx_state::locomotn_fg_get_tile_info)
void rallyx_state::calculate_star_field( )
{
- int generator;
- int x, y;
-
- /* precalculate the star background */
+ // precalculate the star background
m_total_stars = 0;
- generator = 0;
+ int generator = 0;
- for (y = 0; y < 256; y++)
+ for (int y = 0; y < 256; y++)
{
- for (x = 0; x < 288; x++)
+ for (int x = 0; x < 288; x++)
{
- int bit1, bit2;
-
generator <<= 1;
- bit1 = (~generator >> 17) & 1;
- bit2 = (generator >> 5) & 1;
+ int bit1 = (~generator >> 17) & 1;
+ int bit2 = (generator >> 5) & 1;
if (bit1 ^ bit2)
generator |= 1;
@@ -304,22 +299,20 @@ void rallyx_state::calculate_star_field( )
}
}
-void rallyx_state::rallyx_video_start_common( )
+void rallyx_state::video_start_common( )
{
- int i;
-
m_spriteram = m_videoram + 0x00;
m_spriteram2 = m_spriteram + 0x800;
m_radarx = m_videoram + 0x20;
m_radary = m_radarx + 0x800;
- for (i = 0; i < 16; i++)
+ for (int i = 0; i < 16; i++)
m_palette->shadow_table()[i] = i + 16;
- for (i = 16; i < 32; i++)
+ for (int i = 16; i < 32; i++)
m_palette->shadow_table()[i] = i;
- for (i = 0; i < 3; i++)
+ for (int i = 0; i < 3; i++)
m_drawmode_table[i] = DRAWMODE_SHADOW;
m_drawmode_table[3] = DRAWMODE_NONE;
@@ -330,12 +323,12 @@ VIDEO_START_MEMBER(rallyx_state,rallyx)
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
- /* the scrolling tilemap is slightly misplaced in Rally X */
+ // the scrolling tilemap is slightly misplaced in Rally X
m_bg_tilemap->set_scrolldx(3, 3);
m_spriteram_base = 0x14;
- rallyx_video_start_common();
+ video_start_common();
}
@@ -346,7 +339,7 @@ VIDEO_START_MEMBER(rallyx_state,jungler)
m_spriteram_base = 0x14;
- rallyx_video_start_common();
+ video_start_common();
calculate_star_field();
}
@@ -358,7 +351,7 @@ VIDEO_START_MEMBER(rallyx_state,locomotn)
m_spriteram_base = 0x14;
- rallyx_video_start_common();
+ video_start_common();
calculate_star_field();
}
@@ -368,10 +361,10 @@ VIDEO_START_MEMBER(rallyx_state,commsega)
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
- /* commsega has more sprites and bullets than the other games */
+ // commsega has more sprites and bullets than the other games
m_spriteram_base = 0x00;
- rallyx_video_start_common();
+ video_start_common();
calculate_star_field();
}
@@ -382,7 +375,7 @@ VIDEO_START_MEMBER(rallyx_state,commsega)
***************************************************************************/
-WRITE8_MEMBER(rallyx_state::rallyx_videoram_w)
+void rallyx_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
if (offset & 0x400)
@@ -391,17 +384,17 @@ WRITE8_MEMBER(rallyx_state::rallyx_videoram_w)
m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
}
-WRITE8_MEMBER(rallyx_state::rallyx_scrollx_w)
+void rallyx_state::scrollx_w(uint8_t data)
{
m_bg_tilemap->set_scrollx(0, data);
}
-WRITE8_MEMBER(rallyx_state::rallyx_scrolly_w)
+void rallyx_state::scrolly_w(uint8_t data)
{
m_bg_tilemap->set_scrolly(0, data);
}
-WRITE_LINE_MEMBER(rallyx_state::stars_enable_w)
+void rallyx_state::stars_enable_w(int state)
{
m_stars_enable = state;
}
@@ -424,9 +417,7 @@ void rallyx_state::plot_star( bitmap_ind16 &bitmap, const rectangle &cliprect, i
void rallyx_state::draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- int offs;
-
- for (offs = 0; offs < m_total_stars; offs++)
+ for (int offs = 0; offs < m_total_stars; offs++)
{
int x = m_stars[offs].x;
int y = m_stars[offs].y;
@@ -439,20 +430,16 @@ void rallyx_state::draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect )
void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- uint8_t *spriteram = m_spriteram;
- uint8_t *spriteram_2 = m_spriteram2;
- int offs;
-
- for (offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
+ for (int offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
{
- int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1);
- int sy = 241 - spriteram_2[offs];
- int color = spriteram_2[offs + 1] & 0x3f;
- int flipx = spriteram[offs] & 1;
- int flipy = spriteram[offs] & 2;
+ int sx = m_spriteram[offs + 1] + ((m_spriteram2[offs + 1] & 0x80) << 1);
+ int sy = 241 - m_spriteram2[offs];
+ int color = m_spriteram2[offs + 1] & 0x3f;
+ int flipx = m_spriteram[offs] & 1;
+ int flipy = m_spriteram[offs] & 2;
m_gfxdecode->gfx(1)->prio_transmask(bitmap,cliprect,
- (spriteram[offs] & 0xfc) >> 2,
+ (m_spriteram[offs] & 0xfc) >> 2,
color,
flipx,flipy,
sx,sy,
@@ -463,19 +450,15 @@ void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bit
void rallyx_state::locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- uint8_t *spriteram = m_spriteram;
- uint8_t *spriteram_2 = m_spriteram2;
- int offs;
-
- for (offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
+ for (int offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
{
- int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1);
- int sy = 241 - spriteram_2[offs];
- int color = spriteram_2[offs + 1] & 0x3f;
- int flip = spriteram[offs] & 2;
+ int sx = m_spriteram[offs + 1] + ((m_spriteram2[offs + 1] & 0x80) << 1);
+ int sy = 241 - m_spriteram2[offs];
+ int color = m_spriteram2[offs + 1] & 0x3f;
+ int flip = m_spriteram[offs] & 2;
m_gfxdecode->gfx(1)->prio_transmask(bitmap,cliprect,
- ((spriteram[offs] & 0x7c) >> 2) + 0x20*(spriteram[offs] & 0x01) + ((spriteram[offs] & 0x80) >> 1),
+ ((m_spriteram[offs] & 0x7c) >> 2) + 0x20*(m_spriteram[offs] & 0x01) + ((m_spriteram[offs] & 0x80) >> 1),
color,
flip,flip,
sx,sy,
@@ -486,14 +469,10 @@ void rallyx_state::locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &b
void rallyx_state::rallyx_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, bool transpen )
{
- int offs;
-
- for (offs = m_spriteram_base; offs < 0x20; offs++)
+ for (int offs = m_spriteram_base; offs < 0x20; offs++)
{
- int x, y;
-
- x = m_radarx[offs] + ((~m_radarattr[offs & 0x0f] & 0x01) << 8);
- y = 253 - m_radary[offs];
+ int x = m_radarx[offs] + ((~m_radarattr[offs & 0x0f] & 0x01) << 8);
+ int y = 253 - m_radary[offs];
if (flip_screen())
x -= 3;
@@ -516,14 +495,10 @@ void rallyx_state::rallyx_draw_bullets( bitmap_ind16 &bitmap, const rectangle &c
void rallyx_state::jungler_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, bool transpen )
{
- int offs;
-
- for (offs = m_spriteram_base; offs < 0x20; offs++)
+ for (int offs = m_spriteram_base; offs < 0x20; offs++)
{
- int x, y;
-
- x = m_radarx[offs] + ((~m_radarattr[offs & 0x0f] & 0x08) << 5);
- y = 253 - m_radary[offs];
+ int x = m_radarx[offs] + ((~m_radarattr[offs & 0x0f] & 0x08) << 5);
+ int y = 253 - m_radary[offs];
if (transpen)
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
@@ -544,13 +519,8 @@ void rallyx_state::jungler_draw_bullets( bitmap_ind16 &bitmap, const rectangle &
void rallyx_state::locomotn_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, bool transpen )
{
- int offs;
-
- for (offs = m_spriteram_base; offs < 0x20; offs++)
+ for (int offs = m_spriteram_base; offs < 0x20; offs++)
{
- int x, y;
-
-
/* it looks like in commsega the addresses used are
a000-a003 a004-a00f
8020-8023 8034-803f
@@ -558,8 +528,8 @@ void rallyx_state::locomotn_draw_bullets( bitmap_ind16 &bitmap, const rectangle
so 8024-8033 and 8824-8833 are not used
*/
- x = m_radarx[offs] + ((~m_radarattr[offs & 0x0f] & 0x08) << 5);
- y = 252 - m_radary[offs];
+ int x = m_radarx[offs] + ((~m_radarattr[offs & 0x0f] & 0x08) << 5);
+ int y = 252 - m_radary[offs];
if (transpen)
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
@@ -632,7 +602,7 @@ uint32_t rallyx_state::screen_update_jungler(screen_device &screen, bitmap_ind16
screen.priority().fill(0, cliprect);
- /* tile priority doesn't seem to be supported in Jungler */
+ // tile priority doesn't seem to be supported in Jungler
m_bg_tilemap->draw(screen, bitmap, bg_clip, 0, 0);
m_fg_tilemap->draw(screen, bitmap, fg_clip, 0, 0);
m_bg_tilemap->draw(screen, bitmap, bg_clip, 1, 0);
@@ -658,7 +628,7 @@ uint32_t rallyx_state::screen_update_locomotn(screen_device &screen, bitmap_ind1
if (flip_screen())
{
- /* handle reduced visible area in some games */
+ // handle reduced visible area in some games
if (screen.visible_area().max_x == 32 * 8 - 1)
{
bg_clip.min_x = 4 * 8;