From f700b584dc41721b98ae7c86125f7ecf292c8e79 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Tue, 10 Jan 2023 17:59:21 +0100 Subject: [PATCH] New working clones ------------------ Gals Panic (unprotected, ver. 2.0) [Brian Troha, The Dumping Union] - capcom/tigeroad.cpp: derived clocks from actual XTALs present of PCBs [Brian Troha] --- src/mame/capcom/tigeroad.cpp | 20 ++++++++++---------- src/mame/kaneko/galpanic.cpp | 34 ++++++++++++++++++++++++++++------ src/mame/mame.lst | 1 + 3 files changed, 39 insertions(+), 16 deletions(-) diff --git a/src/mame/capcom/tigeroad.cpp b/src/mame/capcom/tigeroad.cpp index f56449c25c8..024d1867811 100644 --- a/src/mame/capcom/tigeroad.cpp +++ b/src/mame/capcom/tigeroad.cpp @@ -634,7 +634,7 @@ void tigeroad_state::tigeroad(machine_config &config) // Timings may be different, driver originally had 60.08Hz vblank. screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259 + screen.set_raw(XTAL(24'000'000)/4, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259 screen.set_screen_update(FUNC(tigeroad_state::screen_update)); screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); screen.set_palette(m_palette); @@ -672,7 +672,7 @@ void f1dream_state::f1dream(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &f1dream_state::f1dream_map); - I8751(config, m_mcu, XTAL(10'000'000)); // ??? + I8751(config, m_mcu, XTAL(10'000'000)); // 8MHz rated chip, 24.0000MHz/3??? m_mcu->set_addrmap(AS_IO, &f1dream_state::f1dream_mcu_io); m_mcu->port_out_cb<1>().set("soundlatch", FUNC(generic_latch_8_device::write)); m_mcu->port_out_cb<3>().set(FUNC(f1dream_state::out3_w)); @@ -685,7 +685,7 @@ void tigeroad_state::toramich(machine_config &config) // basic machine hardware - z80_device &sample(Z80(config, "sample", 3579545)); // ? + z80_device &sample(Z80(config, "sample", XTAL(3'579'545))); sample.set_addrmap(AS_PROGRAM, &tigeroad_state::sample_map); sample.set_addrmap(AS_IO, &tigeroad_state::sample_port_map); sample.set_periodic_int(FUNC(tigeroad_state::irq0_line_hold), attotime::from_hz(4000)); // ? @@ -696,14 +696,14 @@ void tigeroad_state::toramich(machine_config &config) m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); } -void tigeroad_state::f1dream_comad(machine_config &config) +void tigeroad_state::f1dream_comad(machine_config &config) // COMAD-01 PCB with 24.0000MHz, 10.0000MHz & 8.0000MHz OSCs { // basic machine hardware - M68000(config, m_maincpu, 8000000); + M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &tigeroad_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(tigeroad_state::irq2_line_hold)); - Z80(config, m_audiocpu, 4000000); + Z80(config, m_audiocpu, XTAL(8'000'000)/2); // 4MHz m_audiocpu->set_addrmap(AS_PROGRAM, &tigeroad_state::comad_sound_map); m_audiocpu->set_addrmap(AS_IO, &tigeroad_state::comad_sound_io_map); @@ -713,7 +713,7 @@ void tigeroad_state::f1dream_comad(machine_config &config) BUFFERED_SPRITERAM16(config, "spriteram"); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259 + screen.set_raw(XTAL(24'000'000)/4, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259 screen.set_screen_update(FUNC(tigeroad_state::screen_update)); screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); screen.set_palette(m_palette); @@ -731,11 +731,11 @@ void tigeroad_state::f1dream_comad(machine_config &config) GENERIC_LATCH_8(config, "soundlatch"); - ym2203_device &ym1(YM2203(config, "ym1", 2000000)); + ym2203_device &ym1(YM2203(config, "ym1", XTAL(8'000'000)/4)); // 2MHz ym1.irq_handler().set_inputline("audiocpu", 0); ym1.add_route(ALL_OUTPUTS, "mono", 0.40); - ym2203_device &ym2(YM2203(config, "ym2", 2000000)); + ym2203_device &ym2(YM2203(config, "ym2", XTAL(8'000'000)/4)); // 2MHz ym2.add_route(ALL_OUTPUTS, "mono", 0.40); } @@ -755,7 +755,7 @@ void pushman_state::pushman(machine_config &config) f1dream_comad(config); m_maincpu->set_addrmap(AS_PROGRAM, &pushman_state::pushman_map); - M68705R3(config, m_mcu, 4000000); // No idea + M68705R3(config, m_mcu, XTAL(8'000'000)/2); // 4MHz m_mcu->porta_w().set(FUNC(pushman_state::mcu_pa_w)); m_mcu->portb_w().set(FUNC(pushman_state::mcu_pb_w)); m_mcu->portc_w().set(FUNC(pushman_state::mcu_pc_w)); diff --git a/src/mame/kaneko/galpanic.cpp b/src/mame/kaneko/galpanic.cpp index 3d4426dffff..577793c17f3 100644 --- a/src/mame/kaneko/galpanic.cpp +++ b/src/mame/kaneko/galpanic.cpp @@ -386,7 +386,28 @@ void galpanic_state::galpanica(machine_config &config) ***************************************************************************/ -ROM_START( galpanic ) // PAMERA-04 PCB with the PAMERA-SUB daughter card and unpopulated CALC1 ULA socket +ROM_START( galpanic ) // PAMERA-04 PCB with the PAMERA-SUB daughter card and unpopulated CALC1 ULA socket, has ROM for real women (same as the galsnew sets in expro02.cpp) + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "ver.2.0_pm_112-subic5.subic5", 0x000000, 0x20000, CRC(8bf38add) SHA1(fc31fbe1c449a776175a4e3ecbed08ec5551a9ae) ) // Located on the PAMERA-SUB daughter card + ROM_LOAD16_BYTE( "ver.2.0_pm_111-subic6.subic6", 0x000001, 0x20000, CRC(6dc4b075) SHA1(41a529a0e5808f902f6ac11681daae7545739ab0) ) // Located on the PAMERA-SUB daughter card + ROM_LOAD16_WORD_SWAP( "pm017e", 0x080000, 0x80000, CRC(bc41b6ca) SHA1(0aeaf024dd7c84550e7df27230a1d4f04cc1d61c) ) // contains real (non-cartoon) women, used after each 3rd round + ROM_LOAD16_BYTE( "pm004e.8", 0x100001, 0x80000, CRC(d3af52bc) SHA1(46be057106388578defecab1cdd1793ec76ebe92) ) + ROM_LOAD16_BYTE( "pm005e.7", 0x100000, 0x80000, CRC(d7ec650c) SHA1(6c2250c74381497154bf516e0cf1db6bb56bb446) ) + ROM_LOAD16_BYTE( "pm000e.15", 0x200001, 0x80000, CRC(5d220f3f) SHA1(7ff373e01027c8832712f7a2d732f8e49b875878) ) + ROM_LOAD16_BYTE( "pm001e.14", 0x200000, 0x80000, CRC(90433eb1) SHA1(8688a85747ad9ecac395d782f130baa64fb9d12b) ) + ROM_LOAD16_BYTE( "pm002e.17", 0x300001, 0x80000, CRC(713ee898) SHA1(c9f608a57fb90e5ee15eb76a74a7afcc406d5b4e) ) + ROM_LOAD16_BYTE( "pm003e.16", 0x300000, 0x80000, CRC(6bb060fd) SHA1(4fc3946866c5a55e8340b62b5ad9beae723ce0da) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD( "pm006e.67", 0x000000, 0x100000, CRC(57aec037) SHA1(e6ba095b6892d4dcd76ba3343a97dd98ae29dc24) ) + + ROM_REGION( 0x100000, "oki", 0 ) + // 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs + ROM_LOAD( "pm008e.l", 0x00000, 0x80000, CRC(d9379ba8) SHA1(5ae7c743319b1a12f2b101a9f0f8fe0728ed1476) ) + ROM_LOAD( "pm007e.u", 0x80000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) ) +ROM_END + +ROM_START( galpanica ) // PAMERA-04 PCB with the PAMERA-SUB daughter card and unpopulated CALC1 ULA socket ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "pm110.4m2", 0x000000, 0x80000, CRC(ae6b17a8) SHA1(f3a625eef45cc85cdf9760f77ea7ce93387911f9) ) ROM_LOAD16_BYTE( "pm109.4m1", 0x000001, 0x80000, CRC(b85d792d) SHA1(0ed78e15f6e58285ce6944200b023ada1e673b0e) ) @@ -408,7 +429,7 @@ ROM_START( galpanic ) // PAMERA-04 PCB with the PAMERA-SUB daughter card and unp ROM_LOAD( "pm007e.u", 0x80000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) ) ROM_END -ROM_START( galpanica ) // PAMERA-04 PCB with the CALC1 ULA used +ROM_START( galpanicb ) // PAMERA-04 PCB with the CALC1 ULA used ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "pm110.4m2", 0x000000, 0x80000, CRC(ae6b17a8) SHA1(f3a625eef45cc85cdf9760f77ea7ce93387911f9) ) ROM_LOAD16_BYTE( "pm109.4m1", 0x000001, 0x80000, CRC(b85d792d) SHA1(0ed78e15f6e58285ce6944200b023ada1e673b0e) ) @@ -428,7 +449,7 @@ ROM_START( galpanica ) // PAMERA-04 PCB with the CALC1 ULA used ROM_LOAD( "pm007e.u", 0x80000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) ) ROM_END -ROM_START( galpanicb ) // PAMERA-04 PCB with the CALC1 ULA used +ROM_START( galpanicc ) // PAMERA-04 PCB with the CALC1 ULA used ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "pm109p.u88-01.ic6", 0x000000, 0x20000, CRC(a6d60dba) SHA1(2a63642709051c27b9a366c433127426bb579c35) ) // read as 27C010 ROM_LOAD16_BYTE( "pm110p.u87-01.ic5", 0x000001, 0x20000, CRC(3214fd48) SHA1(d8d77cb6b74caea2545f4e62eb9223aaf770785a) ) // read as 27C010 @@ -451,6 +472,7 @@ ROM_END } // anonymous namespace -GAME( 1990, galpanic, 0, galpanic, galpanic, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (unprotected)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galpanica, galpanic, galpanica, galpanica, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (ULA protected, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galpanicb, galpanic, galpanica, galpanica, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (ULA protected, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanic, 0, galpanic, galpanic, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (unprotected, ver. 2.0)",MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanica, galpanic, galpanic, galpanic, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (unprotected)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanicb, galpanic, galpanica, galpanica, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (ULA protected, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanicc, galpanic, galpanica, galpanica, galpanic_state, empty_init, ROT90, "Kaneko", "Gals Panic (ULA protected, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index be5a10cb7b9..a51a25d2a5d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15043,6 +15043,7 @@ galpani3k // (c) 1995 Kaneko (Korea) galpanic // (c) 1990 Kaneko galpanica // (c) 1990 Kaneko galpanicb // (c) 1990 Kaneko +galpanicc // (c) 1990 Kaneko @source:kaneko/galpanic_ms.cpp galpanicms