summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-08-31 12:51:22 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-08-31 13:11:10 -0400
commit2b610f7ca13fd30cae8028ce0c6d0c6cf1550f55 (patch)
tree2d9b827ca962c2a97110ae1eb79143139cc382ed
parentc133d8017311301209618f38b586b5cca0b61733 (diff)
New working clones
------------------ Mandanga (bootleg of Mandinga on Galaxian hardware, set 1) [Ivan Vangelista, Dumping Union] Mandanga (bootleg of Mandinga on Galaxian hardware, set 2) [Ivan Vangelista, Dumping Union] galaxian.cpp: Start moving memory stuff out of init functions and into address maps (nw)
-rw-r--r--src/mame/drivers/galaxian.cpp305
-rw-r--r--src/mame/includes/galaxian.h21
-rw-r--r--src/mame/mame.lst2
3 files changed, 237 insertions, 91 deletions
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index 933a902c3ed..0282aa817e7 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -1584,6 +1584,26 @@ void galaxian_state::galaxian_map(address_map &map)
galaxian_map_discrete(map);
}
+void galaxian_state::frogg_map(address_map &map)
+{
+ galaxian_map(map);
+ map(0x4000, 0x47ff).ram(); // needs a full 2k of RAM
+}
+
+void galaxian_state::mandingarf_map(address_map &map)
+{
+ galaxian_map(map);
+ map(0x4000, 0x47ff).ram(); // needs a full 2k of RAM
+ map(0xc000, 0xc7ff).rom().region("maincpu", 0xc000); // extend ROM
+}
+
+void galaxian_state::victoryc_map(address_map &map)
+{
+ galaxian_map(map);
+ map(0x7004, 0x7004).mirror(0x07f8).nopw(); // disable the stars
+ map(0x8000, 0x87ff).ram(); // needs a full 2k of RAM
+}
+
/* map derived from schematics */
void galaxian_state::mooncrst_map_discrete(address_map &map)
@@ -1626,6 +1646,48 @@ void galaxian_state::mooncrst_map(address_map &map)
mooncrst_map_discrete(map);
}
+void galaxian_state::froggermc_map(address_map &map)
+{
+ mooncrst_map_base(map); // no discrete sound
+ map(0x8000, 0x87ff).ram(); // actually needs 2k of RAM
+ map(0xa800, 0xa800).mirror(0x7ff).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xb001, 0xb001).mirror(0x7f8).w(FUNC(galaxian_state::froggermc_sound_control_w));
+}
+
+void galaxian_state::thepitm_map(address_map &map)
+{
+ mooncrst_map(map);
+ map(0x0000, 0x47ff).rom().region("maincpu", 0); // extend ROM
+ map(0xb000, 0xb000).mirror(0x7f8).nopw(); // interrupt enable moved
+ map(0xb001, 0xb001).mirror(0x7f8).w(FUNC(galaxian_state::irq_enable_w));
+ map(0xb004, 0xb004).mirror(0x7f8).nopw(); // disable the stars
+}
+
+void galaxian_state::skybase_map(address_map &map)
+{
+ mooncrst_map(map);
+ map(0x0000, 0x5fff).rom().region("maincpu", 0); // extend ROM
+ map(0x8000, 0x87ff).ram(); // needs a full 2k of RAM
+ map(0xa002, 0xa002).mirror(0x7f8).w(FUNC(galaxian_state::galaxian_gfxbank_w)); // coin lockout replaced by graphics bank
+}
+
+void galaxian_state::kong_map(address_map &map)
+{
+ mooncrst_map(map);
+ map(0x0000, 0x7fff).rom().region("maincpu", 0); // extend ROM
+ map(0x8000, 0x87ff).ram(); // needs a full 2k of RAM
+}
+
+void galaxian_state::scorpnmc_map(address_map &map)
+{
+ mooncrst_map(map);
+ map(0x4000, 0x47ff).ram();
+ map(0x5000, 0x67ff).rom().region("maincpu", 0x5000); // extra ROM
+ map(0x8000, 0x87ff).unmaprw(); // doesn't appear to use original RAM
+ map(0xb000, 0xb000).mirror(0x7f8).nopw(); // interrupt enable moved
+ map(0xb001, 0xb001).mirror(0x7f8).w(FUNC(galaxian_state::irq_enable_w));
+}
+
void galaxian_state::fantastc_map(address_map &map)
{
@@ -4592,6 +4654,68 @@ static INPUT_PORTS_START( amidars )
INPUT_PORTS_END
+static INPUT_PORTS_START( mandingarf )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) // unused?
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ /* the rest appear to be unused, except for Lives? */
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0xc0, "2" )
+ PORT_DIPSETTING( 0x40, "3" ) // skips the self test checks?
+ PORT_DIPSETTING( 0x80, "4" )
+ PORT_DIPSETTING( 0x00, "255 (Cheat)" ) // skips the self test checks?
+
+ /* these two are reversed for some reason... */
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "30000 70000" )
+ PORT_DIPSETTING( 0x02, "50000 80000" )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x00, "A 1/1 B 1/6" )
+ PORT_DIPSETTING( 0x04, "A 2/1 B 1/3" )
+ /* the rest appear to be unused? */
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START( theend )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -5896,6 +6020,12 @@ MACHINE_CONFIG_START(galaxian_state::galaxian)
galaxian_audio(config);
MACHINE_CONFIG_END
+MACHINE_CONFIG_START(galaxian_state::victoryc)
+ galaxian(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(victoryc_map)
+MACHINE_CONFIG_END
+
MACHINE_CONFIG_START(galaxian_state::spactrai)
galaxian(config);
/* strange memory map with RAM in the middle of ROM, there's a large block on the ROM board */
@@ -5903,6 +6033,17 @@ MACHINE_CONFIG_START(galaxian_state::spactrai)
MCFG_DEVICE_PROGRAM_MAP(spactrai_map)
MACHINE_CONFIG_END
+MACHINE_CONFIG_START(galaxian_state::frogg)
+ galaxian(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(frogg_map)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(galaxian_state::mandingarf)
+ galaxian(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(mandingarf_map)
+MACHINE_CONFIG_END
MACHINE_CONFIG_START(galaxian_state::pacmanbl)
galaxian(config);
@@ -5969,6 +6110,30 @@ MACHINE_CONFIG_START(galaxian_state::moonqsr)
MCFG_DEVICE_OPCODES_MAP(moonqsr_decrypted_opcodes_map)
MACHINE_CONFIG_END
+MACHINE_CONFIG_START(galaxian_state::thepitm)
+ mooncrst(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(thepitm_map)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(galaxian_state::skybase)
+ mooncrst(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(skybase_map)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(galaxian_state::kong)
+ mooncrst(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(kong_map)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(galaxian_state::scorpnmc)
+ mooncrst(config);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(scorpnmc_map)
+MACHINE_CONFIG_END
+
MACHINE_CONFIG_START(galaxian_state::fantastc)
galaxian_base(config);
@@ -6118,7 +6283,7 @@ MACHINE_CONFIG_START(galaxian_state::froggermc)
/* alternate memory map */
MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mooncrst_map_base) /* no discrete sound ! */
+ MCFG_DEVICE_PROGRAM_MAP(froggermc_map)
MCFG_DEVICE_MODIFY("audiocpu")
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, galaxian_state, froggermc_audiocpu_irq_ack)
@@ -6809,33 +6974,15 @@ void galaxian_state::init_batman2()
void galaxian_state::init_frogg()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
- /* same as galaxian... */
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::frogger_draw_background, &galaxian_state::frogger_extend_tile_info, &galaxian_state::frogger_extend_sprite_info);
-
- /* ...but needs a full 2k of RAM */
- space.install_ram(0x4000, 0x47ff);
}
-void galaxian_state::init_victoryc()
-{
- init_victorycb();
-
- decode_victoryc();
-}
-void galaxian_state::init_victorycb()
+void galaxian_state::init_victoryc()
{
init_galaxian();
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
- /* needs a full 2k of RAM */
- space.install_ram(0x8000, 0x87ff);
-
- /* disable the stars */
- space.unmap_write(0x7004, 0x7004, 0x7f8);
+ decode_victoryc();
}
/*************************************
@@ -7085,34 +7232,15 @@ void galaxian_state::init_dingoe()
void galaxian_state::init_skybase()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
/* video extensions */
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info);
-
- /* coin lockout replaced by graphics bank */
- space.install_write_handler(0xa002, 0xa002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
-
- /* needs a full 2k of RAM */
- space.install_ram(0x8000, 0x87ff);
-
- /* extend ROM */
- space.install_rom(0x0000, 0x5fff, memregion("maincpu")->base());
}
void galaxian_state::init_kong()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
/* video extensions */
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, nullptr, &galaxian_state::upper_extend_sprite_info);
-
- /* needs a full 2k of RAM */
- space.install_ram(0x8000, 0x87ff);
-
- /* extend ROM */
- space.install_rom(0x0000, 0x7fff, memregion("maincpu")->base());
}
@@ -7257,41 +7385,8 @@ void galaxian_state::init_kingball()
void galaxian_state::init_scorpnmc()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
/* video extensions */
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::batman2_extend_tile_info, &galaxian_state::upper_extend_sprite_info);
-
- /* move the interrupt enable from $b000 to $b001 */
- space.unmap_write(0xb000, 0xb000, 0x7f8);
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
-
- /* extra ROM */
- space.install_rom(0x5000, 0x67ff, memregion("maincpu")->base() + 0x5000);
-
- /* install RAM at $4000-$4800 */
- space.install_ram(0x4000, 0x47ff);
-
- /* doesn't appear to use original RAM */
- space.unmap_readwrite(0x8000, 0x87ff);
-}
-
-void galaxian_state::init_thepitm()
-{
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
- /* video extensions */
- common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::mooncrst_extend_tile_info, &galaxian_state::mooncrst_extend_sprite_info);
-
- /* move the interrupt enable from $b000 to $b001 */
- space.unmap_write(0xb000, 0xb000, 0x7f8);
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
-
- /* disable the stars */
- space.unmap_write(0xb004, 0xb004, 0x7f8);
-
- /* extend ROM */
- space.install_rom(0x0000, 0x47ff, memregion("maincpu")->base());
}
/*************************************
@@ -7429,17 +7524,9 @@ void galaxian_state::init_quaak()
void galaxian_state::init_froggermc()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
/* video extensions */
common_init(nullptr, &galaxian_state::frogger_draw_background, &galaxian_state::frogger_extend_tile_info, &galaxian_state::frogger_extend_sprite_info);
- space.install_write_handler(0xa800, 0xa800, 0, 0x7ff, 0, write8_delegate(FUNC(generic_latch_8_device::write), (generic_latch_8_device*)m_soundlatch));
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::froggermc_sound_control_w),this));
-
- /* actually needs 2k of RAM */
- space.install_ram(0x8000, 0x87ff);
-
/* decrypt */
decode_froggermc_sound();
}
@@ -10877,6 +10964,46 @@ ROM_START( mandinga )
ROM_LOAD( "6e.bin", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) ) // 82s123
ROM_END
+ROM_START( mandingarf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "2716-mg1.bin", 0x0000, 0x0800, CRC(a684a494) SHA1(76885bb3bdab09f46c7daa25164a2fdaa744742f) ) // 2716
+ ROM_LOAD( "2716-mg2.bin", 0x0800, 0x0800, CRC(f4038373) SHA1(8823b9816fc4ea03b92e08776c13610980f5ea7a) ) // 2716
+ ROM_LOAD( "2716-mg3.bin", 0x1000, 0x0800, CRC(96842877) SHA1(043ce4ed2628a209ca21cc42516c02366cd9f1fa) ) // 2716
+ ROM_LOAD( "2716-mg4.bin", 0x1800, 0x0800, CRC(29873461) SHA1(7d0ee9a82f02163b4cc6a7097e88ae34e96ebf58) ) // 2716
+ ROM_LOAD( "2716-mg5.bin", 0x2000, 0x0800, CRC(400cf1bb) SHA1(06c891f7581b0c1036f6845ea847cd20b6f5dedc) ) // 2716
+ ROM_LOAD( "2716-mg6.bin", 0x2800, 0x0800, CRC(5382f7ed) SHA1(425ec2c2caf404fc8ab13ee38d6567413022e1a1) ) // 2716
+ ROM_LOAD( "2716-mg7.bin", 0x3000, 0x0800, CRC(e78d0c6d) SHA1(947ac20463384ca0721875954d59ec4ae15b0670) ) // 2716
+ ROM_LOAD( "2716-mg8.bin", 0x3800, 0x0800, CRC(8a4018ae) SHA1(9aba6f4527c59b0b016038236d5a6074e65966f6) ) // 2716
+ ROM_LOAD( "2716-mg11.bin", 0xc000, 0x0800, BAD_DUMP CRC(d8bf57e7) SHA1(421a0fa02fccbc52d460fafec6437bd2b7564056) ) // 2716(?), taken from mandingac
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "2716-mg9.bin", 0x0000, 0x0800, CRC(2082ad0a) SHA1(c6014d9575e92adf09b0961c2158a779ebe940c4) ) // 2716
+ ROM_LOAD( "2716-mg10.bin", 0x0800, 0x0800, CRC(1891fc68) SHA1(6d03f5092fd73462c9d81c1a64e39120d9f10aea) ) // 2716
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6e.bin", 0x0000, 0x0020, BAD_DUMP CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) ) // not present, using mandinga PROM
+ROM_END
+
+ROM_START( mandingac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "2716-4.bin", 0x0000, 0x0800, CRC(a684a494) SHA1(76885bb3bdab09f46c7daa25164a2fdaa744742f) ) // 2716
+ ROM_LOAD( "2716-3.bin", 0x0800, 0x0800, CRC(f4038373) SHA1(8823b9816fc4ea03b92e08776c13610980f5ea7a) ) // 2716
+ ROM_LOAD( "2716-1.bin", 0x1000, 0x0800, CRC(96842877) SHA1(043ce4ed2628a209ca21cc42516c02366cd9f1fa) ) // 2716
+ ROM_LOAD( "2716-9.bin", 0x1800, 0x0800, CRC(b69f9f71) SHA1(cb781d61a481c493e89605bc0edc6a092d8b4d56) ) // 2716
+ ROM_LOAD( "2716-8.bin", 0x2000, 0x0800, CRC(400cf1bb) SHA1(06c891f7581b0c1036f6845ea847cd20b6f5dedc) ) // 2716
+ ROM_LOAD( "2716-7.bin", 0x2800, 0x0800, CRC(5382f7ed) SHA1(425ec2c2caf404fc8ab13ee38d6567413022e1a1) ) // 2716
+ ROM_LOAD( "2716-6.bin", 0x3000, 0x0800, CRC(c4e63305) SHA1(e03aed5ad89305ffc243cff8ff147ec82419c7bc) ) // 2716
+ ROM_LOAD( "2716-5.bin", 0x3800, 0x0800, CRC(8a4018ae) SHA1(9aba6f4527c59b0b016038236d5a6074e65966f6) ) // 2716
+ ROM_LOAD( "2716-2.bin", 0xc000, 0x0800, CRC(d8bf57e7) SHA1(421a0fa02fccbc52d460fafec6437bd2b7564056) ) // 2716
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "2716-10.bin", 0x0000, 0x0800, CRC(2082ad0a) SHA1(c6014d9575e92adf09b0961c2158a779ebe940c4) ) // 2716
+ ROM_LOAD( "2716-11.bin", 0x0800, 0x0800, CRC(1891fc68) SHA1(6d03f5092fd73462c9d81c1a64e39120d9f10aea) ) // 2716
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "82s123.bin", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) ) // 82s123
+ROM_END
+
ROM_START( theend )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ic13_1t.bin", 0x0000, 0x0800, CRC(93e555ba) SHA1(f684927cecabfbd7544f7549a6152c0a6a436019) )
@@ -12163,8 +12290,8 @@ GAME( 1982, catacomb, 0, galaxian, catacomb, galaxian_state, init_
GAME( 19??, omegab, theend, galaxian, omegab, galaxian_state, init_galaxian, ROT270, "bootleg?", "Omega (bootleg?)", MACHINE_SUPPORTS_SAVE )
/* basic hardware + extra RAM */
-GAME( 1982, victoryc, 0, galaxian, victoryc, galaxian_state, init_victoryc, ROT270, "Comsoft", "Victory (Comsoft)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, victorycb, victoryc, galaxian, victoryc, galaxian_state, init_victorycb, ROT270, "bootleg", "Victory (Comsoft) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, victoryc, 0, victoryc, victoryc, galaxian_state, init_victoryc, ROT270, "Comsoft", "Victory (Comsoft)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, victorycb, victoryc, victoryc, victoryc, galaxian_state, init_galaxian, ROT270, "bootleg", "Victory (Comsoft) (bootleg)", MACHINE_SUPPORTS_SAVE )
/* these games require the coin lockout mechanism to be disabled */
GAME( 1981, warofbug, 0, galaxian, warofbug, galaxian_state, init_nolock, ROT90, "Armenia / Food and Fun Corp", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze", MACHINE_SUPPORTS_SAVE )
@@ -12272,11 +12399,11 @@ GAME( 1980, moonal2, 0, mooncrst, moonal2, galaxian_state, init_
GAME( 1980, moonal2b, moonal2, mooncrst, moonal2, galaxian_state, init_galaxian, ROT90, "Namco / Nichibutsu", "Moon Alien Part 2 (older version)", MACHINE_SUPPORTS_SAVE )
/* larger romspace, interrupt enable moved */
-GAME( 198?, thepitm, thepit, mooncrst, thepitm, galaxian_state, init_thepitm, ROT90, "bootleg (KZH)", "The Pit (bootleg on Moon Quasar hardware)", MACHINE_SUPPORTS_SAVE ) // on an original MQ-2FJ pcb, even if the memory map appears closer to Moon Cresta
+GAME( 198?, thepitm, thepit, thepitm, thepitm, galaxian_state, init_mooncrsu, ROT90, "bootleg (KZH)", "The Pit (bootleg on Moon Quasar hardware)", MACHINE_SUPPORTS_SAVE ) // on an original MQ-2FJ pcb, even if the memory map appears closer to Moon Cresta
/* other games on basic mooncrst hardware */
-GAME( 1982, skybase, 0, mooncrst, skybase, galaxian_state, init_skybase, ROT90, "Omori Electric Co., Ltd.", "Sky Base", MACHINE_SUPPORTS_SAVE )
-GAME( 198?, kong, 0, mooncrst, kong, galaxian_state, init_kong, ROT90, "Taito do Brasil", "Kong (Donkey Kong conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Donkey Kong (!) not a clone
+GAME( 1982, skybase, 0, skybase, skybase, galaxian_state, init_skybase, ROT90, "Omori Electric Co., Ltd.", "Sky Base", MACHINE_SUPPORTS_SAVE )
+GAME( 198?, kong, 0, kong, kong, galaxian_state, init_kong, ROT90, "Taito do Brasil", "Kong (Donkey Kong conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Donkey Kong (!) not a clone
/* larger romspace, 2*AY8910, based on Super Star Crest board? */
// there may be an alternate version called "Fantasy" according to flyers; is it the same?
@@ -12350,6 +12477,8 @@ GAME( 1982, amigo, amidar, turtles, amidaru, galaxian_state, init_
GAME( 1982, amigo2, amidar, amigo2, amidaru, galaxian_state, init_turtles, ROT90, "bootleg", "Amigo (bootleg of Amidar, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, amidars, amidar, scramble, amidars, galaxian_state, init_scramble, ROT90, "Konami", "Amidar (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, mandinga, amidar, scramble, amidars, galaxian_state, init_mandinga, ROT90, "bootleg (Artemi)", "Mandinga (bootleg of Amidar)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // sound ROMs have identical halves, reference for color http://www.youtube.com/watch?v=6uGK4AZxV2U
+GAME( 1982, mandingarf, amidar, mandingarf, mandingarf, galaxian_state, init_galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Mandanga (bootleg of Mandinga on Galaxian hardware, set 1)", MACHINE_NO_COCKTAIL | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // assume same issue as mandinga
+GAME( 1982, mandingac, amidar, mandingarf, mandingarf, galaxian_state, init_galaxian, ROT90, "bootleg (Centromatic)", "Mandanga (bootleg of Mandinga on Galaxian hardware, set 2)", MACHINE_NO_COCKTAIL | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // assume same issue as mandinga
/* The End/Scramble based hardware */
@@ -12383,8 +12512,8 @@ GAME( 1981, jungsub, jungler, jungsub, jungsub, galaxian_state, init_
GAME( 1982, scorpion, 0, scorpion, scorpion, galaxian_state, init_scorpion, ROT90, "Zaccaria", "Scorpion (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
GAME( 1982, scorpiona, scorpion, scorpion, scorpion, galaxian_state, init_scorpion, ROT90, "Zaccaria", "Scorpion (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
GAME( 1982, scorpionb, scorpion, scorpion, scorpion, galaxian_state, init_scorpion, ROT90, "Zaccaria", "Scorpion (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
-GAME( 19??, scorpionmc, scorpion, mooncrst, scorpnmc, galaxian_state, init_scorpnmc, ROT90, "bootleg? (Dorneer)", "Scorpion (Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE )
-GAME( 19??, aracnis, scorpion, mooncrst, aracnis, galaxian_state, init_scorpnmc, ROT90, "bootleg", "Aracnis (bootleg of Scorpion on Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 19??, scorpionmc, scorpion, scorpnmc, scorpnmc, galaxian_state, init_scorpnmc, ROT90, "bootleg? (Dorneer)", "Scorpion (Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, aracnis, scorpion, scorpnmc, aracnis, galaxian_state, init_scorpnmc, ROT90, "bootleg", "Aracnis (bootleg of Scorpion on Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
/* SF-X hardware; based on Scramble with extra Z80 and 8255 driving a DAC-based sample player */
GAME( 1983, sfx, 0, sfx, sfx, galaxian_state, init_sfx, ORIENTATION_FLIP_X, "Nichibutsu", "SF-X", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h
index d4eda2a5d11..80a71d3aba4 100644
--- a/src/mame/includes/galaxian.h
+++ b/src/mame/includes/galaxian.h
@@ -185,7 +185,6 @@ public:
void init_timefgtr();
void init_kingball();
void init_scorpnmc();
- void init_thepitm();
void init_theend();
void init_scramble();
void init_explorer();
@@ -211,7 +210,6 @@ public:
void init_warofbugg();
void init_jungsub();
void init_victoryc();
- void init_victorycb();
TILE_GET_INFO_MEMBER(bg_get_tile_info);
DECLARE_PALETTE_INIT(galaxian);
DECLARE_PALETTE_INIT(moonwar);
@@ -317,8 +315,18 @@ public:
void zigzag(machine_config &config);
void checkman(machine_config &config);
void jungsub(machine_config &config);
+ void victoryc(machine_config &config);
+ void frogg(machine_config &config);
+ void mandingarf(machine_config &config);
+ void thepitm(machine_config &config);
+ void skybase(machine_config &config);
+ void kong(machine_config &config);
+ void scorpnmc(machine_config &config);
+
void galaxian_audio(machine_config &config);
void mooncrst_audio(machine_config &config);
+
+protected:
void amigo2_map(address_map &map);
void anteaterg_map(address_map &map);
void anteatergg_map(address_map &map);
@@ -329,10 +337,12 @@ public:
void explorer_map(address_map &map);
void fantastc_map(address_map &map);
void frogf_map(address_map &map);
+ void frogg_map(address_map &map);
void frogger_map(address_map &map);
void frogger_sound_map(address_map &map);
void frogger_sound_portmap(address_map &map);
void froggeram_map(address_map &map);
+ void froggermc_map(address_map &map);
void galaxian_map(address_map &map);
void galaxian_map_base(address_map &map);
void galaxian_map_discrete(address_map &map);
@@ -343,6 +353,8 @@ public:
void kingball_sound_portmap(address_map &map);
void konami_sound_map(address_map &map);
void konami_sound_portmap(address_map &map);
+ void kong_map(address_map &map);
+ void mandingarf_map(address_map &map);
void monsterz_map(address_map &map);
void mooncrst_map(address_map &map);
void mooncrst_map_base(address_map &map);
@@ -352,21 +364,24 @@ public:
void mshuttle_map(address_map &map);
void mshuttle_portmap(address_map &map);
void scobra_map(address_map &map);
+ void scorpnmc_map(address_map &map);
void sfx_map(address_map &map);
void sfx_sample_map(address_map &map);
void sfx_sample_portmap(address_map &map);
+ void skybase_map(address_map &map);
void spactrai_map(address_map &map);
void takeoff_sound_map(address_map &map);
void takeoff_sound_portmap(address_map &map);
void tenspot_select_map(address_map &map);
void theend_map(address_map &map);
+ void thepitm_map(address_map &map);
void timefgtr_map(address_map &map);
void turpins_map(address_map &map);
void turpins_sound_map(address_map &map);
void turtles_map(address_map &map);
+ void victoryc_map(address_map &map);
void zigzag_map(address_map &map);
-protected:
virtual void machine_start() override { m_lamps.resolve(); }
virtual void video_start() override;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index e8af15c3b32..1c23f7bbd27 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -13336,6 +13336,8 @@ losttomb // (c) 1982 Stern
losttombh // (c) 1982 Stern
luctoday // 1980 Sigma
mandinga // bootleg (Artemi)
+mandingarf // bootleg (Recreativos Franco S.A.)
+mandingac // bootleg (Centromatic)
mltiwars // bootleg (Gayton Games)
monsterz // (c) 1982 Nihon (Arcade TV Game List - P.102, Left, 20 from top)
moonal2 // [1980] Nichibutsu