From d693b3f8d93d2dd45ff026d10241139b9ddbde10 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Wed, 15 May 2024 20:31:29 +0200 Subject: [PATCH] Add a new Jump Bug bootleg on Galaxian hardware (#12350) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New working clones ----------------------- Jump Bug (bootleg, set 2) [Arcadedealer aka Edgar Solé aka Dios, Recreativas.org] --- src/mame/galaxian/galaxian.cpp | 58 ++++++++++++++++++++++++++++------ src/mame/galaxian/galaxian.h | 2 ++ src/mame/mame.lst | 1 + 3 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/mame/galaxian/galaxian.cpp b/src/mame/galaxian/galaxian.cpp index 782ba636be6..87f0b24c589 100644 --- a/src/mame/galaxian/galaxian.cpp +++ b/src/mame/galaxian/galaxian.cpp @@ -2531,21 +2531,18 @@ void monsterz_state::monsterz_map(address_map &map) /* changes from galaxian map: galaxian sound removed $4800-$57ff: contains video and object RAM (normally at $5000-$5fff) - $5800-$5fff: AY-8910 access added $6002-$6006: graphics banking controls replace coin lockout, coin counter, and lfo $7002: coin counter (moved from $6003) $8000-$afff: additional ROM area $b000-$bfff: protection (T00 custom chip) */ -void galaxian_state::jumpbug_map(address_map &map) +void galaxian_state::jumpbugbrf_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x3fff).rom(); map(0x4000, 0x47ff).ram(); map(0x4800, 0x4bff).mirror(0x0400).ram().w(FUNC(galaxian_state::galaxian_videoram_w)).share("videoram"); map(0x5000, 0x50ff).mirror(0x0700).ram().w(FUNC(galaxian_state::galaxian_objram_w)).share("spriteram"); - map(0x5800, 0x5800).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::data_w)); - map(0x5900, 0x5900).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::address_w)); map(0x6000, 0x6000).mirror(0x07ff).portr("IN0"); map(0x6002, 0x6006).mirror(0x07f8).w(FUNC(galaxian_state::galaxian_gfxbank_w)); map(0x6800, 0x6800).mirror(0x07ff).portr("IN1"); @@ -2559,6 +2556,16 @@ void galaxian_state::jumpbug_map(address_map &map) map(0xb000, 0xbfff).r(FUNC(galaxian_state::jumpbug_protection_r)); } +/* changes from jumpbugbrf map: + $5800-$5fff: AY-8910 access added +*/ +void galaxian_state::jumpbug_map(address_map &map) +{ + jumpbugbrf_map(map); + map(0x5800, 0x5800).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::data_w)); + map(0x5900, 0x5900).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::address_w)); +} + void galaxian_state::frogf_map(address_map &map) { @@ -7482,7 +7489,6 @@ void galaxian_state::sidam_bootleg_base(machine_config &config) m_screen->set_raw(12_MHz_XTAL, SIDAM_HTOTAL, SIDAM_HBEND, SIDAM_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART); set_x_scale(SIDAM_XSCALE); set_h0_start(SIDAM_H0START); - } @@ -7913,12 +7919,20 @@ void guttangt_state::guttangts3(machine_config &config) -void galaxian_state::jumpbug(machine_config &config) +void galaxian_state::jumpbugbrf(machine_config &config) { galaxian_base(config); config.device_remove("watchdog"); + // basic machine hardware + m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::jumpbugbrf_map); +} + +void galaxian_state::jumpbug(machine_config &config) +{ + jumpbugbrf(config); + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::jumpbug_map); @@ -13549,6 +13563,29 @@ ROM_START( jumpbugb ) ROM_LOAD( "l06_prom.bin", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) ) ROM_END +// Recreativos Franco PCB. There is no AY-8910, although the AY-8910 routines are still on the code. +ROM_START( jumpbugbrf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bg1-2732.bin", 0x0000, 0x1000, CRC(415aa1b7) SHA1(4f9edd7e9720acf085dd8910849c2f2fac5cb547) ) + ROM_LOAD( "bg2-2732.bin", 0x1000, 0x1000, CRC(b1c27510) SHA1(66fbe0b94b6c101cb50d7a3ff78160110415dff9) ) + ROM_LOAD( "bg3-2732.bin", 0x2000, 0x1000, CRC(cb8b8a0f) SHA1(9e8591471dda2cb964ba2a866d4a5a3ef65d8707) ) + ROM_LOAD( "bg4-2732.bin", 0x3000, 0x1000, CRC(66751d12) SHA1(26c68cfb59596ae164ee9ae4a24ddf8dc7a923a7) ) + ROM_LOAD( "bg5-2732.bin", 0x8000, 0x1000, CRC(7553b5e2) SHA1(6439585e713581dd36cea6324414f803d683216f) ) + ROM_LOAD( "bg6-2732.bin", 0x9000, 0x1000, CRC(47be9843) SHA1(495d6fc732267bfd19a953b0b70df3f94b3c1e38) ) + ROM_LOAD( "bg7-2732.bin", 0xa000, 0x1000, CRC(2c4b37aa) SHA1(14dea66b083a421623e7be8deb9fee8ed5e7ee28) ) + + ROM_REGION( 0x3000, "gfx1", 0 ) + ROM_LOAD( "jbl", 0x0000, 0x0800, BAD_DUMP CRC(9a091b0a) SHA1(19b88f802ee80ff8901ef99e3688f2869f1a69c5) ) // Missing on this PCB, borrowed from 'jumpbugb' + ROM_LOAD( "jbm", 0x0800, 0x0800, BAD_DUMP CRC(8a0fc082) SHA1(58b72a3161950a2fb71cdab3f30bb3abb19c7978) ) // Missing on this PCB, borrowed from 'jumpbugb' + ROM_LOAD( "jbn", 0x1000, 0x0800, BAD_DUMP CRC(155186e0) SHA1(717ddaecc52a4ef03a01fcddb520acdbfb0d722a) ) // Missing on this PCB, borrowed from 'jumpbugb' + ROM_LOAD( "jbi", 0x1800, 0x0800, BAD_DUMP CRC(7749b111) SHA1(55071ce04708bd52177644298f76ae79d23f6ac9) ) // Missing on this PCB, borrowed from 'jumpbugb' + ROM_LOAD( "jbj", 0x2000, 0x0800, BAD_DUMP CRC(06e8d7df) SHA1(d04f1503d9fde5aae92652cb9d2eb16bd6a0fe9c) ) // Missing on this PCB, borrowed from 'jumpbugb' + ROM_LOAD( "jbk", 0x2800, 0x0800, BAD_DUMP CRC(b8dbddf3) SHA1(043de444890a93459789dc99c43ef88ff66b79e4) ) // Missing on this PCB, borrowed from 'jumpbugb' + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "82s123.bin", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) ) +ROM_END + ROM_START( olibug ) // bootleg on an original Midway Galaxian PCB ROM_REGION( 0x10000, "maincpu", 0 ) // b6 and b7 differ from jumpbugb ROM_LOAD( "b1.bin", 0x0000, 0x1000, CRC(415aa1b7) SHA1(4f9edd7e9720acf085dd8910849c2f2fac5cb547) ) @@ -16647,10 +16684,11 @@ GAME( 198?, fantastc, 0, fantastc, fantastc, galaxian_state, init_ GAME( 198?, timefgtr, 0, timefgtr, timefgtr, galaxian_state, init_timefgtr, ROT90, "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Time Pilot (!) not a clone // Extra ROMs, protection, and sound hardware replaced with AY8910 -GAME( 1981, jumpbug, 0, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "Hoei (Rock-Ola license)", "Jump Bug", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // or by Alpha Denshi Co. under contract from Hoei? -GAME( 1981, jumpbugb, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Jump Bug (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // bootleg of Sega license -GAME( 1982, olibug, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Oli Bug (bootleg of Jump Bug)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) // one bad GFX ROM, uses Galaxian color PROM? -GAME( 1983, levers, 0, jumpbug, levers, galaxian_state, init_jumpbug, ROT90, "Rock-Ola", "Levers", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, jumpbug, 0, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "Hoei (Rock-Ola license)", "Jump Bug", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // or by Alpha Denshi Co. under contract from Hoei? +GAME( 1981, jumpbugb, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Jump Bug (bootleg, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // bootleg of Sega license +GAME( 1982, jumpbugbrf, jumpbug, jumpbugbrf, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg (Recreativos Franco)", "Jump Bug (bootleg, set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg from Recreativos Franco, without AY-8910 +GAME( 1982, olibug, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Oli Bug (bootleg of Jump Bug)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) // one bad GFX ROM, uses Galaxian color PROM? +GAME( 1983, levers, 0, jumpbug, levers, galaxian_state, init_jumpbug, ROT90, "Rock-Ola", "Levers", MACHINE_SUPPORTS_SAVE ) // 2nd CPU driving AY8910 for sound GAME( 1982, checkman, 0, checkman, checkman, galaxian_state, init_checkman, ROT90, "Zilec-Zenitone", "Check Man", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/galaxian/galaxian.h b/src/mame/galaxian/galaxian.h index ef4a4704b44..a3d0803c44a 100644 --- a/src/mame/galaxian/galaxian.h +++ b/src/mame/galaxian/galaxian.h @@ -279,6 +279,7 @@ public: void turtles(machine_config &config); void fantastc(machine_config &config); void jumpbug(machine_config &config); + void jumpbugbrf(machine_config &config); void checkmaj(machine_config &config); void pacmanbl(machine_config &config); void quaak(machine_config &config); @@ -367,6 +368,7 @@ protected: void galaxian_map_discrete(address_map &map); void highroll_map(address_map &map); void jumpbug_map(address_map &map); + void jumpbugbrf_map(address_map &map); void jungsub_map(address_map &map); void jungsub_io_map(address_map &map); void konami_sound_map(address_map &map); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 685ce076230..c8f6d81e61e 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18576,6 +18576,7 @@ guttangts3 // highroll // jumpbug // (c) 1981 Rock-ola jumpbugb // (c) 1981 Sega +jumpbugbrf // bootleg jungsub // bootleg kamakazi3 // Video Games (UK) Ltd., hack or bootleg? kamikazesp // bootleg (Euromatic S.A.)