From 7cd37b77c151c9f1f6ecd1f09740f36205b079e1 Mon Sep 17 00:00:00 2001 From: Brian Troha Date: Tue, 20 Aug 2013 01:05:59 +0000 Subject: [PATCH] new Puzzle Bang Bang clone New Clone Added ----------------------------------------- Puzzle Bang Bang (Korea, version 2.9 / 990108) [gp-lee, The Guru] --- src/mame/drivers/vamphalf.c | 105 ++++++++++++++++++++++++------------ src/mame/mame.lst | 1 + 2 files changed, 73 insertions(+), 33 deletions(-) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 807359a8aba..34ad2dc2540 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -11,7 +11,7 @@ Minigame Cool Collection (c) 1999 SemiCom Jumping Break (c) 1999 F2 System Lup Lup Puzzle (c) 1999 Omega System (version 3.0 and 2.9) - Puzzle Bang Bang (c) 1999 Omega System (version 2.8) + Puzzle Bang Bang (c) 1999 Omega System (version 2.8 and 2.9) Super Lup Lup Puzzle (c) 1999 Omega System (version 4.0) Vamf 1/2 (c) 1999 Danbi & F2 System (Europe version) Vamp 1/2 (c) 1999 Danbi & F2 System (Korea version) @@ -121,6 +121,7 @@ public: DECLARE_READ16_MEMBER(luplup_speedup_r); DECLARE_READ16_MEMBER(luplup29_speedup_r); DECLARE_READ16_MEMBER(puzlbang_speedup_r); + DECLARE_READ16_MEMBER(puzlbanga_speedup_r); DECLARE_READ32_MEMBER(wyvernwg_speedup_r); DECLARE_READ32_MEMBER(wyvernwga_speedup_r); DECLARE_READ32_MEMBER(finalgdr_speedup_r); @@ -150,6 +151,7 @@ public: DECLARE_READ8_MEMBER(qs1000_p1_r); DECLARE_WRITE8_MEMBER(qs1000_p3_w); + DECLARE_DRIVER_INIT(vamphalf); DECLARE_DRIVER_INIT(vamphafk); DECLARE_DRIVER_INIT(coolmini); DECLARE_DRIVER_INIT(mrkicker); @@ -157,17 +159,17 @@ public: DECLARE_DRIVER_INIT(jmpbreak); DECLARE_DRIVER_INIT(dtfamily); DECLARE_DRIVER_INIT(dquizgo2); - DECLARE_DRIVER_INIT(puzlbang); + DECLARE_DRIVER_INIT(suplup); + DECLARE_DRIVER_INIT(luplup); DECLARE_DRIVER_INIT(luplup29); + DECLARE_DRIVER_INIT(puzlbang); + DECLARE_DRIVER_INIT(puzlbanga); DECLARE_DRIVER_INIT(toyland); DECLARE_DRIVER_INIT(aoh); DECLARE_DRIVER_INIT(finalgdr); - DECLARE_DRIVER_INIT(suplup); DECLARE_DRIVER_INIT(misncrft); DECLARE_DRIVER_INIT(boonggab); - DECLARE_DRIVER_INIT(vamphalf); DECLARE_DRIVER_INIT(wyvernwg); - DECLARE_DRIVER_INIT(luplup); UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; @@ -1001,11 +1003,11 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( sound_ym_oki ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_YM2151_ADD("ymsnd", 28000000/8) + MCFG_YM2151_ADD("ymsnd", XTAL_28MHz/8) /* 3.5MHz */ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", 28000000/16 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28MHz/16 , OKIM6295_PIN7_HIGH) /* 1.75MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1013,11 +1015,11 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( sound_suplup ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_YM2151_ADD("ymsnd", 14318180/4) + MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* 3.579545 MHz */ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", 1789772.5 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, OKIM6295_PIN7_HIGH) /* 1.7897725 MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1039,7 +1041,7 @@ static MACHINE_CONFIG_DERIVED( vamphalf, common ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( misncrft, common ) - MCFG_CPU_REPLACE("maincpu", GMS30C2116, 50000000) /* 50 MHz */ + MCFG_CPU_REPLACE("maincpu", GMS30C2116, XTAL_50MHz) /* 50 MHz */ MCFG_CPU_PROGRAM_MAP(common_map) MCFG_CPU_IO_MAP(misncrft_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) @@ -1069,7 +1071,7 @@ static MACHINE_CONFIG_DERIVED( jmpbreak, common ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mrdig, common ) - MCFG_CPU_REPLACE("maincpu", GMS30C2116, 50000000) /* 50 MHz */ + MCFG_CPU_REPLACE("maincpu", GMS30C2116, XTAL_50MHz) /* 50 MHz */ MCFG_CPU_PROGRAM_MAP(common_map) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(mrdig_io) @@ -1079,7 +1081,7 @@ static MACHINE_CONFIG_DERIVED( mrdig, common ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( wyvernwg, common ) - MCFG_CPU_REPLACE("maincpu", E132T, 50000000) /* 50 MHz */ + MCFG_CPU_REPLACE("maincpu", E132T, XTAL_50MHz) /* 50 MHz */ MCFG_CPU_PROGRAM_MAP(common_32bit_map) MCFG_CPU_IO_MAP(wyvernwg_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) @@ -1088,7 +1090,7 @@ static MACHINE_CONFIG_DERIVED( wyvernwg, common ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( finalgdr, common ) - MCFG_CPU_REPLACE("maincpu", E132T, 50000000) /* 50 MHz */ + MCFG_CPU_REPLACE("maincpu", E132T, XTAL_50MHz) /* 50 MHz */ MCFG_CPU_PROGRAM_MAP(common_32bit_map) MCFG_CPU_IO_MAP(finalgdr_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) @@ -1099,7 +1101,7 @@ static MACHINE_CONFIG_DERIVED( finalgdr, common ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mrkicker, common ) - MCFG_CPU_REPLACE("maincpu", E132T, 50000000) /* 50 MHz */ + MCFG_CPU_REPLACE("maincpu", E132T, XTAL_50MHz) /* 50 MHz */ MCFG_CPU_PROGRAM_MAP(common_32bit_map) MCFG_CPU_IO_MAP(mrkicker_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) @@ -1110,7 +1112,7 @@ static MACHINE_CONFIG_DERIVED( mrkicker, common ) MACHINE_CONFIG_END static MACHINE_CONFIG_START( aoh, vamphalf_state ) - MCFG_CPU_ADD("maincpu", E132XN, 20000000*4) /* 4x internal multiplier */ + MCFG_CPU_ADD("maincpu", E132XN, XTAL_20MHz*4) /* 4x internal multiplier */ MCFG_CPU_PROGRAM_MAP(aoh_map) MCFG_CPU_IO_MAP(aoh_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) @@ -1131,15 +1133,15 @@ static MACHINE_CONFIG_START( aoh, vamphalf_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_YM2151_ADD("ymsnd", 3579545) + MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki_1", 32000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki_1", XTAL_32MHz/8, OKIM6295_PIN7_HIGH) /* 4MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki_2", 32000000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki_2", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) /* 1MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1292,10 +1294,10 @@ ROM_START( luplup ) /* version 3.0 / 990128 */ ROM_LOAD( "luplup-rom2.v30", 0x80000, 0x80000, CRC(99840155) SHA1(e208f8731c06b634e84fb73e04f6cdbb8b504b94) ) ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */ - ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(8e2c4453) SHA1(fbf7d72263beda2ef90bccf0369d6e93e76d45b2) ) - ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) - ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(40e85f94) SHA1(531e67eb4eedf47b0dded52ba2f4942b12cbbe2f) ) - ROM_LOAD32_WORD( "luplup-romu01", 0x400002, 0x200000, CRC(f2645b78) SHA1(b54c3047346c0f40dba0ba23b0d607cc53384edb) ) + ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) ) + ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) + ROM_LOAD32_WORD( "luplup30-roml01", 0x400000, 0x200000, CRC(40e85f94) SHA1(531e67eb4eedf47b0dded52ba2f4942b12cbbe2f) ) /* This one changed between v2.9 & v3.0 */ + ROM_LOAD32_WORD( "luplup30-romu01", 0x400002, 0x200000, CRC(f2645b78) SHA1(b54c3047346c0f40dba0ba23b0d607cc53384edb) ) /* This one changed between v2.9 & v3.0 */ ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "vrom1.bin", 0x00000, 0x40000, CRC(34a56987) SHA1(4d8983648a7f0acf43ff4c9c8aa6c8640ee2bbfe) ) @@ -1311,27 +1313,42 @@ ROM_START( luplup29 ) /* version 2.9 / 990108 */ ROM_LOAD( "luplup-rom2.v29", 0x80000, 0x80000, CRC(50dac70f) SHA1(0e313114a988cb633a89508fda17eb09023827a2) ) ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */ - ROM_LOAD32_WORD( "luplup29-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) ) - ROM_LOAD32_WORD( "luplup29-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) - ROM_LOAD32_WORD( "luplup29-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) ) - ROM_LOAD32_WORD( "luplup29-romu01", 0x400002, 0x200000, CRC(16746158) SHA1(a5036a7aaa717fde89d62b7ff7a3fded8b7f5cda) ) + ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) ) + ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) + ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) ) + ROM_LOAD32_WORD( "luplup-romu01", 0x400002, 0x200000, CRC(16746158) SHA1(a5036a7aaa717fde89d62b7ff7a3fded8b7f5cda) ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "vrom1.bin", 0x00000, 0x40000, CRC(34a56987) SHA1(4d8983648a7f0acf43ff4c9c8aa6c8640ee2bbfe) ) ROM_END -ROM_START( puzlbang ) /* version 2.8 / 990106 - Korea only, cannot select title or language */ +ROM_START( puzlbang ) /* version 2.9 / 990108 - Korea only, cannot select title, language and limited selection of background choices, EI: censored */ + ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ + ROM_LOAD( "pbb-rom1.v29", 0x00000, 0x80000, CRC(eb829586) SHA1(1f8a6af7c51c715724f5a242f4e22f7f6fb1f0ee) ) + ROM_LOAD( "pbb-rom2.v29", 0x80000, 0x80000, CRC(fb84c793) SHA1(a2d27caecdae457d12b48d88d19ce417f69507c6) ) + + ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */ + ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) ) + ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) + ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) ) + ROM_LOAD32_WORD( "luplup-romu01", 0x400002, 0x200000, CRC(16746158) SHA1(a5036a7aaa717fde89d62b7ff7a3fded8b7f5cda) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ + ROM_LOAD( "vrom1.bin", 0x00000, 0x40000, CRC(34a56987) SHA1(4d8983648a7f0acf43ff4c9c8aa6c8640ee2bbfe) ) +ROM_END + + +ROM_START( puzlbanga ) /* version 2.8 / 990106 - Korea only, cannot select title, language or change background selection, EI: censored */ ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_LOAD( "pbb-rom1.v28", 0x00000, 0x80000, CRC(fd21c5ff) SHA1(bc6314bbb2495c140788025153c893d5fd00bdc1) ) ROM_LOAD( "pbb-rom2.v28", 0x80000, 0x80000, CRC(490ecaeb) SHA1(2b0f25e3d681ddf95b3c65754900c046b5b50b09) ) ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */ - ROM_LOAD32_WORD( "pbbang28-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) ) - ROM_LOAD32_WORD( "pbbang28-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) - ROM_LOAD32_WORD( "pbbang28-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) ) - ROM_LOAD32_WORD( "pbbang28-romu01", 0x400002, 0x200000, CRC(16746158) SHA1(a5036a7aaa717fde89d62b7ff7a3fded8b7f5cda) ) - + ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) ) + ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) ) + ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) ) + ROM_LOAD32_WORD( "luplup-romu01", 0x400002, 0x200000, CRC(16746158) SHA1(a5036a7aaa717fde89d62b7ff7a3fded8b7f5cda) ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "vrom1.bin", 0x00000, 0x40000, CRC(34a56987) SHA1(4d8983648a7f0acf43ff4c9c8aa6c8640ee2bbfe) ) ROM_END @@ -2353,6 +2370,19 @@ READ16_MEMBER(vamphalf_state::puzlbang_speedup_r) space.device().execute().eat_cycles(50); } + return m_wram[(0x113f14/2)+offset]; +} + +READ16_MEMBER(vamphalf_state::puzlbanga_speedup_r) +{ + if(space.device().safe_pc() == 0xae6d2 ) + { + if(irq_active(space)) + space.device().execute().spin_until_interrupt(); + else + space.device().execute().eat_cycles(50); + } + return m_wram[(0x113ecc/2)+offset]; } @@ -2562,6 +2592,14 @@ DRIVER_INIT_MEMBER(vamphalf_state,luplup29) } DRIVER_INIT_MEMBER(vamphalf_state,puzlbang) +{ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f17, read16_delegate(FUNC(vamphalf_state::puzlbang_speedup_r), this)); + + m_palshift = 8; + /* no flipscreen */ +} + +DRIVER_INIT_MEMBER(vamphalf_state,puzlbanga) { m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecf, read16_delegate(FUNC(vamphalf_state::puzlbang_speedup_r), this)); @@ -2681,7 +2719,8 @@ GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, jmpbreak, RO GAME( 1999, suplup, 0, suplup, common, vamphalf_state, suplup, ROT0, "Omega System", "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)" , 0 ) GAME( 1999, luplup, suplup, suplup, common, vamphalf_state, luplup, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", 0 ) GAME( 1999, luplup29, suplup, suplup, common, vamphalf_state, luplup29, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", 0 ) -GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", 0 ) +GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", 0 ) +GAME( 1999, puzlbanga,suplup, suplup, common, vamphalf_state, puzlbanga,ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", 0 ) GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf_state, vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe)", 0 ) GAME( 1999, vamphalfk,vamphalf, vamphalf, common, vamphalf_state, vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea)", 0 ) GAME( 2000, dquizgo2, 0, coolmini, common, vamphalf_state, dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , 0) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d2b34edc2ff..78358aab857 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9978,6 +9978,7 @@ coolmini // (c) 1999 SemiCom luplup // (c) 1999 Omega System luplup29 // (c) 1999 Omega System puzlbang // (c) 1999 Omega System +puzlbanga // (c) 1999 Omega System suplup // (c) 1999 Omega System jmpbreak // (c) 1999 F2 System vamphalf // (c) 1999 DanBi & F2 System