From 88810c6029a1d10f6e0e6a1e421213de16d56fff Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 30 Jun 2023 04:28:35 +0200 Subject: New clones marked not working ----------------------------- Cue Ball Wizard (older display rev.) [PinMAME] Bare Knuckle III (bootleg of Mega Drive version, protected) [H4M573R , Hammy] --- src/mame/mame.lst | 28 +++++++------- src/mame/pinball/gts3a.cpp | 28 ++++++++++++-- src/mame/sega/megadriv_acbl.cpp | 81 +++++++++++++++++++++++++++++------------ src/mame/sega/megadriv_acbl.h | 2 + 4 files changed, 99 insertions(+), 40 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index cf4c39736eb..3df61c1d00b 100755 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36056,6 +36056,7 @@ brooks // cueball // cueballa // cueballb // +cueballc // freddy // freddy3 // gladiatp // @@ -38458,19 +38459,20 @@ gen_nomd // 1995 Sega Genesis Nomad (USA) megajet // 1993 Sega Mega Jet (Japan) @source:sega/megadriv_acbl.cpp -aladmdb // MegaDrive-based hack -barekch // MegaDrive-based hack -barek2ch // MegaDrive-based hack -barek2mb // MegaDrive-based hack -barek3mb // MegaDrive-based hack -bk3ssrmb // MegaDrive-based hack -jparkmb // MegaDrive-based hack -mk3mdb // MegaDrive-based hack -sonic2mb // MegaDrive-based hack -sonic3mb // MegaDrive-based hack -srmdb // MegaDrive-based hack -ssf2mdb // MegaDrive-based hack -twinktmb // MegaDrive-based hack +aladmdb +barekch +barek2ch +barek2mb +barek3mb +barek3mba +bk3ssrmb +jparkmb +mk3mdb +sonic2mb +sonic3mb +srmdb +ssf2mdb +twinktmb @source:sega/megadriv_rad.cpp rad_sf2 // (c)2004 Radica diff --git a/src/mame/pinball/gts3a.cpp b/src/mame/pinball/gts3a.cpp index 7cd5dcc2cde..322fe359c7f 100644 --- a/src/mame/pinball/gts3a.cpp +++ b/src/mame/pinball/gts3a.cpp @@ -598,6 +598,27 @@ ROM_START(cueballb) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(c22f5cc5) SHA1(a5bfbc1824bc483eecc961851bd411cb0dbcdc4a)) ROM_END +ROM_START(cueballc) + ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) + ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(3437fdd8) SHA1(2a0fc9bc8e3d0c430ce2cf8afad378fc93af609d)) + + ROM_REGION(0x80000, "dmdcpu", ROMREGION_ERASEFF) + ROM_LOAD("dsprom0.bin", 0x00000, 0x40000, CRC(3756efeb) SHA1(2bf84a840ad134666c76d49b89c2de76c0420af8)) + ROM_RELOAD(0x40000, 0x40000) + + ROM_REGION(0x10000, "p7sound:audiocpu", ROMREGION_ERASEFF) + ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(9fd04109) SHA1(27864fe4e9c248dce6221c9e56861967d089b216)) + + ROM_REGION(0x100000, "p7sound:oki", ROMREGION_ERASEFF) + ROM_LOAD("arom1.bin", 0x00000, 0x40000, CRC(476bb11c) SHA1(ce546df59933cc230a6671dec493bbbe71146dee)) + ROM_RELOAD(0x40000, 0x40000) + ROM_LOAD("arom2.bin", 0x80000, 0x40000, CRC(23708ad9) SHA1(156fcb19403f9845404af1a4ac4edfd3fcde601d)) + ROM_RELOAD(0xc0000, 0x40000) + + ROM_REGION(0x10000, "p7sound:speechcpu", ROMREGION_ERASEFF) + ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(c22f5cc5) SHA1(a5bfbc1824bc483eecc961851bd411cb0dbcdc4a)) +ROM_END + /*------------------------------------------------------------------- / Frank Thomas' Big Hurt (#745) /-------------------------------------------------------------------*/ @@ -1348,9 +1369,10 @@ GAME(1992, smbpa, smbp, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Got GAME(1992, smbpb, smbp, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Super Mario Brothers (pinball, set 3)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1992, smbpc, smbp, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Super Mario Brothers (pinball, set 4)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1992, smbmush, 0, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Super Mario Brothers Mushroom World", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1992, cueball, 0, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (set 1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1992, cueballa, cueball, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (set 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1992, cueballb, cueball, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (set 3)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1992, cueball, 0, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1992, cueballa, cueball, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (rev. 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1992, cueballb, cueball, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (rev. 3)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1992, cueballc, cueball, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (older display rev.)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1993, sfightii, 0, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Street Fighter II (pinball, set 1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1993, sfightiia, sfightii, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Street Fighter II (pinball, set 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1993, sfightiib, sfightii, p7, gts3a, gts3a_state, init_gts3a, ROT0, "Gottlieb", "Street Fighter II (pinball, set 3)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/sega/megadriv_acbl.cpp b/src/mame/sega/megadriv_acbl.cpp index 2276c563a0f..d92d4b12706 100644 --- a/src/mame/sega/megadriv_acbl.cpp +++ b/src/mame/sega/megadriv_acbl.cpp @@ -209,7 +209,7 @@ void md_boot_state::aladmdb_w(uint16_t data) uint16_t md_boot_state::aladmdb_r() { - if (m_maincpu->pc()==0x1b2a56) + if (m_maincpu->pc() == 0x1b2a56) { m_aladmdb_mcu_port = ioport("MCU")->read(); @@ -218,9 +218,9 @@ uint16_t md_boot_state::aladmdb_r() else return (0x100); //MCU status, needed if you fall into a pitfall } - if (m_maincpu->pc()==0x1b2a72) return 0x0000; - if (m_maincpu->pc()==0x1b2d24) return (ioport("MCU")->read() & 0x00f0) | 0x1200; // difficulty - if (m_maincpu->pc()==0x1b2d4e) return 0x0000; + if (m_maincpu->pc() == 0x1b2a72) return 0x0000; + if (m_maincpu->pc() == 0x1b2d24) return (ioport("MCU")->read() & 0x00f0) | 0x1200; // difficulty + if (m_maincpu->pc() == 0x1b2d4e) return 0x0000; logerror("aladbl_r : %06x\n",m_maincpu->pc()); return 0x0000; @@ -228,10 +228,10 @@ uint16_t md_boot_state::aladmdb_r() uint16_t md_boot_state::twinktmb_r() { - if (m_maincpu->pc()==0x02f81e) + if (m_maincpu->pc() == 0x02f81e) return ioport("COIN")->read(); // TODO: coins don't respond well - if (m_maincpu->pc()==0x02f84e) return 0x0000; // what's this? dips? + if (m_maincpu->pc() == 0x02f84e) return 0x0000; // what's this? dips? //logerror("twinktmb_r : %06x\n",m_maincpu->pc()); @@ -240,10 +240,10 @@ uint16_t md_boot_state::twinktmb_r() uint16_t md_boot_state::jparkmb_r() { - if (m_maincpu->pc()==0x1e327a) + if (m_maincpu->pc() == 0x1e327a) return ioport("COIN")->read(); // TODO: coins don't respond well - if (m_maincpu->pc()==0x1e3254) return 0x0000; // what's this? dips? + if (m_maincpu->pc() == 0x1e3254) return 0x0000; // what's this? dips? //logerror("jparkmb_r : %06x\n",m_maincpu->pc()); @@ -252,13 +252,25 @@ uint16_t md_boot_state::jparkmb_r() uint16_t md_boot_state::barek2mb_r() { - if (m_maincpu->pc()==0xfa40) + if (m_maincpu->pc() == 0xfa40) return 0x0400; // TODO: what's this? Needed or the game doesn't boot - if (m_maincpu->pc()==0xfa88) + if (m_maincpu->pc() == 0xfa88) return 0x0ff0; // TODO: fix this, should probably read coin inputs, as is gives 9 credits at start up - logerror("aladbl_r : %06x\n",m_maincpu->pc()); + logerror("barek2mb_r : %06x\n", m_maincpu->pc()); + return 0x0000; +} + +uint16_t md_boot_state::barek3mba_r() // missing PIC dump, simulated for now +{ + if (m_maincpu->pc() == 0x4dbc6) + return 0x0300; + + if (m_maincpu->pc() == 0x4dc34) + return 0x0ff0; // TODO: fix this, should probably read coin inputs, as is gives 9 credits at start up + + logerror("barek3mba_r : %06x\n", m_maincpu->pc()); return 0x0000; } @@ -1009,6 +1021,13 @@ void md_boot_state::init_barek3() init_megadrij(); } +void md_boot_state::init_barek3a() +{ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16smo_delegate(*this, FUNC(md_boot_state::barek3mba_r))); + + init_megadrij(); +} + void md_boot_6button_state::init_bk3ssrmb() { uint8_t* rom = memregion("maincpu")->base(); @@ -1177,6 +1196,19 @@ ROM_START( barek3mb ) ROM_LOAD16_BYTE( "2.u16", 0x200001, 0x080000, CRC(bba4a585) SHA1(32c59729943d7b4c1a39f2a2b0dae9ce16991e9c) ) ROM_END +ROM_START( barek3mba ) + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 Code + ROM_LOAD16_BYTE( "u4", 0x000000, 0x080000, CRC(6b116813) SHA1(df9811c5da9f58f2bba462447b792f3067b10411) ) + ROM_LOAD16_BYTE( "u3", 0x000001, 0x080000, CRC(8c891e5a) SHA1(aa1fb1aa2c68b1ae24e1ac30a82bc4e454b952b5) ) + ROM_LOAD16_BYTE( "u6", 0x100000, 0x080000, CRC(a2ec29e2) SHA1(8e8eee64554396070455a737f4009d33d2ffa535) ) + ROM_LOAD16_BYTE( "u5", 0x100001, 0x080000, CRC(f79e0028) SHA1(54022eadc6e345c049b7357b17b636b31d2af914) ) + ROM_LOAD16_BYTE( "u8", 0x200000, 0x080000, CRC(55be9542) SHA1(f78c273858f3ae77b36f1229797e80a4ab102a03) ) + ROM_LOAD16_BYTE( "u7", 0x200001, 0x080000, CRC(bba4a585) SHA1(32c59729943d7b4c1a39f2a2b0dae9ce16991e9c) ) + + ROM_REGION( 0x1000, "pic", ROMREGION_ERASE00 ) + ROM_LOAD( "bk_pic16c57rcp.bin", 0x0000, 0x1000, NO_DUMP ) +ROM_END + ROM_START( bk3ssrmb ) ROM_REGION( 0x400000, "maincpu", 0 ) ROM_LOAD16_BYTE( "1.u15", 0x000000, 0x080000, CRC(120a4b64) SHA1(7084fde0d08143f48f83d2afef30522d75c7889c) ) @@ -1232,18 +1264,19 @@ ROM_END * *************************************/ -GAME( 1993, aladmdb, 0, megadrvb, aladmdb, md_boot_state, init_aladmdb, ROT0, "bootleg / Sega", "Aladdin (bootleg of Japanese Mega Drive version)", 0 ) -GAME( 1996, mk3mdb, 0, megadrvb_6b, mk3mdb, md_boot_6button_state, init_mk3mdb, ROT0, "bootleg / Midway", "Mortal Kombat 3 (bootleg of Mega Drive version)", 0 ) -GAME( 1994, ssf2mdb, 0, ssf2mdb, ssf2mdb, md_boot_6button_state, init_megadrij, ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese Mega Drive version)", 0 ) -GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, init_srmdb, ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Mega Drive version)", 0 ) -GAME( 1993, sonic2mb, 0, md_bootleg, sonic2mb, md_boot_state, init_sonic2mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Mega Drive version)", 0 ) // Flying wires going through the empty PIC space aren't completely understood -GAME( 1993, sonic3mb, 0, md_bootleg, sonic3mb, md_sonic3bl_state, init_sonic3mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 3 (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // undumped PIC -GAME( 1994, barek2mb, 0, md_bootleg, barek2, md_boot_state, init_barek2, ROT0, "bootleg / Sega", "Bare Knuckle II (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC hook up -GAME( 1994, barek3mb, 0, megadrvb, barek3, md_boot_state, init_barek3, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Mega Drive version)", 0 ) -GAME( 1994, bk3ssrmb, 0, megadrvb_6b, bk3ssrmb, md_boot_6button_state, init_bk3ssrmb, ROT0, "bootleg / Sega", "Bare Knuckle III / Sunset Riders (bootleg of Mega Drive versions)", MACHINE_NOT_WORKING ) // Currently boots as Bare Knuckle III, mechanism to switch game not found yet -GAME( 1993, twinktmb, 0, md_bootleg, twinktmb, md_boot_state, init_twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC decap or simulation -GAME( 1993, jparkmb, 0, md_bootleg, twinktmb, md_boot_state, init_jparkmb, ROT0, "bootleg / Sega", "Jurassic Park (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC decap or simulation +GAME( 1993, aladmdb, 0, megadrvb, aladmdb, md_boot_state, init_aladmdb, ROT0, "bootleg / Sega", "Aladdin (bootleg of Japanese Mega Drive version)", 0 ) +GAME( 1996, mk3mdb, 0, megadrvb_6b, mk3mdb, md_boot_6button_state, init_mk3mdb, ROT0, "bootleg / Midway", "Mortal Kombat 3 (bootleg of Mega Drive version)", 0 ) +GAME( 1994, ssf2mdb, 0, ssf2mdb, ssf2mdb, md_boot_6button_state, init_megadrij, ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese Mega Drive version)", 0 ) +GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, init_srmdb, ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Mega Drive version)", 0 ) +GAME( 1993, sonic2mb, 0, md_bootleg, sonic2mb, md_boot_state, init_sonic2mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Mega Drive version)", 0 ) // Flying wires going through the empty PIC space aren't completely understood +GAME( 1993, sonic3mb, 0, md_bootleg, sonic3mb, md_sonic3bl_state, init_sonic3mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 3 (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // undumped PIC +GAME( 1994, barek2mb, 0, md_bootleg, barek2, md_boot_state, init_barek2, ROT0, "bootleg / Sega", "Bare Knuckle II (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC hook up +GAME( 1994, barek3mb, 0, megadrvb, barek3, md_boot_state, init_barek3, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Mega Drive version)", 0 ) +GAME( 1994, barek3mba, barek3mb, megadrvb, barek3, md_boot_state, init_barek3a, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Mega Drive version, protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // undumped PIC +GAME( 1994, bk3ssrmb, 0, megadrvb_6b, bk3ssrmb, md_boot_6button_state, init_bk3ssrmb, ROT0, "bootleg / Sega", "Bare Knuckle III / Sunset Riders (bootleg of Mega Drive versions)", MACHINE_NOT_WORKING ) // Currently boots as Bare Knuckle III, mechanism to switch game not found yet +GAME( 1993, twinktmb, 0, md_bootleg, twinktmb, md_boot_state, init_twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC decap or simulation +GAME( 1993, jparkmb, 0, md_bootleg, twinktmb, md_boot_state, init_jparkmb, ROT0, "bootleg / Sega", "Jurassic Park (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC decap or simulation // Chinese bootlegs. Very clean looking with custom chips marked TA-04, TA-05 and TA-06. -GAME( 1994, barekch, 0, megadrvb_6b, barekch, md_boot_6button_state, init_barekch, ROT0, "bootleg", "Bare Knuckle (Chinese bootleg of Mega Drive version)", 0 ) -GAME( 1994, barek2ch, 0, md_bootleg, barek2ch, md_boot_state, init_barek2ch, ROT0, "bootleg", "Bare Knuckle II (Chinese bootleg of Mega Drive version)", 0 ) +GAME( 1994, barekch, 0, megadrvb_6b, barekch, md_boot_6button_state, init_barekch, ROT0, "bootleg", "Bare Knuckle (Chinese bootleg of Mega Drive version)", 0 ) +GAME( 1994, barek2ch, 0, md_bootleg, barek2ch, md_boot_state, init_barek2ch, ROT0, "bootleg", "Bare Knuckle II (Chinese bootleg of Mega Drive version)", 0 ) diff --git a/src/mame/sega/megadriv_acbl.h b/src/mame/sega/megadriv_acbl.h index e804d3a3392..23446bb09e0 100644 --- a/src/mame/sega/megadriv_acbl.h +++ b/src/mame/sega/megadriv_acbl.h @@ -22,6 +22,7 @@ public: void init_barek2(); void init_barek2ch(); void init_barek3(); + void init_barek3a(); void init_sonic2mb(); void init_twinktmb(); void init_jparkmb(); @@ -35,6 +36,7 @@ private: void aladmdb_w(uint16_t data); uint16_t aladmdb_r(); uint16_t barek2mb_r(); + uint16_t barek3mba_r(); uint16_t jparkmb_r(); uint16_t twinktmb_r(); -- cgit v1.2.3