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)
This commit is contained in:
AJR 2018-08-31 12:51:22 -04:00
parent c133d80173
commit 2b610f7ca1
3 changed files with 237 additions and 91 deletions

View File

@ -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()
{
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 )

View File

@ -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;

View File

@ -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