summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp46
-rw-r--r--src/mame/drivers/qix.cpp66
-rw-r--r--src/mame/includes/megadriv_acbl.h2
-rw-r--r--src/mame/includes/qix.h5
-rw-r--r--src/mame/machine/qix.cpp5
-rw-r--r--src/mame/mame.lst2
6 files changed, 100 insertions, 26 deletions
diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp
index 8bc27d110d4..afb0db44e1c 100644
--- a/src/mame/drivers/megadriv_acbl.cpp
+++ b/src/mame/drivers/megadriv_acbl.cpp
@@ -6,6 +6,7 @@
Games supported:
* Aladdin
+ * Bare Knuckle II
* Bare Knuckle III
* Jurassic Park
* Mortal Kombat 3
@@ -356,6 +357,18 @@ uint16_t md_boot_state::jparkmb_r()
return 0x0000;
}
+uint16_t md_boot_state::barek2mb_r()
+{
+ if (m_maincpu->pc()==0xfa40)
+ return 0x0400; // TODO: what's this? Needed or the game doesn't boot
+
+ 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());
+ return 0x0000;
+}
+
uint16_t md_boot_state::mk3mdb_dsw_r(offs_t offset)
{
static const char *const dswname[3] = { "DSWA", "DSWB", "DSWC" };
@@ -769,6 +782,11 @@ static INPUT_PORTS_START( topshoot ) /* Top Shooter Input Ports */
PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
+INPUT_PORTS_START( barek2 )
+ PORT_INCLUDE( aladmdb )
+ // TODO!
+INPUT_PORTS_END
+
INPUT_PORTS_START( barek3 )
PORT_INCLUDE( md_common )
@@ -843,7 +861,7 @@ ROM_START( aladmdb )
ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(5e2671e4) SHA1(54705c7614fc7b5a1065478fa41f51dd1d8045b7) )
ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(142a0366) SHA1(6c94aa9936cd11ccda503b52019a6721e64a32f0) )
ROM_LOAD16_BYTE( "m3.bin", 0x100001, 0x080000, CRC(0feeeb19) SHA1(bd567a33077ab9997871d21736066140d50e3d70) )
- ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(bc712661) SHA1(dfd554d000399e17b4ddc69761e572195ed4e1f0))
+ ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(bc712661) SHA1(dfd554d000399e17b4ddc69761e572195ed4e1f0) )
ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 )
ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP )
@@ -888,7 +906,7 @@ ROM_START( srmdb )
ROM_LOAD16_BYTE( "u1", 0x000001, 0x020000, CRC(c59f33bd) SHA1(bd5bce7698a70ea005b79ab34bcdb056872ef980) )
ROM_LOAD16_BYTE( "u2", 0x000000, 0x020000, CRC(9125c054) SHA1(c73bdeb6b11c59d2b5f5968959b02697957ca894) )
ROM_LOAD16_BYTE( "u3", 0x040001, 0x020000, CRC(0fee0fbe) SHA1(001e0fda12707512aad537e533acf28e726e6107) )
- ROM_LOAD16_BYTE( "u4", 0x040000, 0x020000, CRC(fc2aed41) SHA1(27eb3957f5ed26ee5276523b1df46fa7eb298e1f))
+ ROM_LOAD16_BYTE( "u4", 0x040000, 0x020000, CRC(fc2aed41) SHA1(27eb3957f5ed26ee5276523b1df46fa7eb298e1f) )
ROM_END
ROM_START( topshoot ) /* Top Shooter (c)1995 Sun Mixing */
@@ -907,6 +925,17 @@ ROM_START( sonic2mb )
ROM_LOAD16_BYTE( "m2", 0x000000, 0x080000, CRC(84b3f758) SHA1(19846b9d951db6f78f3e155d33f1b6349fb87f1a) )
ROM_END
+ROM_START( barek2mb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(1c1fa718) SHA1(393488f7747478728eb4f20c10b0cfce3b188719) )
+ ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(59ee0905) SHA1(0e9f1f6e17aae2dd99bf9d7f640568b48ba699c7) )
+ ROM_LOAD16_BYTE( "m3.bin", 0x100001, 0x080000, CRC(6ec5af5d) SHA1(9088a2d4cff5e7eb439ebaa91ad3bfff11366127) )
+ ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(d8c61e0d) SHA1(3d06e656f6621bb0741211f80c1ecff1669475ee) )
+
+ ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 )
+ ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP )
+ROM_END
+
ROM_START( barek3mb )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "6.u19", 0x000000, 0x080000, CRC(2de19519) SHA1(f5fcef1da8b5370e399f0451382e3c6e7754c9c8) )
@@ -1068,6 +1097,14 @@ void md_boot_state::init_topshoot()
init_megadriv();
}
+void md_boot_state::init_barek2()
+{
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x220000, 0x220001, write16smo_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x330000, 0x330001, read16smo_delegate(*this, FUNC(md_boot_state::barek2mb_r)));
+
+ init_megadrij();
+}
+
void md_boot_state::init_barek3()
{
uint8_t* rom = memregion("maincpu")->base();
@@ -1126,6 +1163,7 @@ GAME( 1994, ssf2mdb, 0, megadrvb_6b, ssf2mdb, md_boot_state, init_ssf2mdb, R
GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, init_srmdb, ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Megadrive version)", 0)
GAME( 1995, topshoot, 0, md_bootleg, topshoot, md_boot_state, init_topshoot, ROT0, "Sun Mixing", "Top Shooter", 0)
GAME( 1993, sonic2mb, 0, md_bootleg, sonic2mb, md_boot_state, init_sonic2mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Megadrive version)", 0 ) // flying wires going through the empty PIC space aren't completely understood
+GAME( 1994, barek2mb, 0, md_bootleg, barek2, md_boot_state, init_barek2, ROT0, "bootleg / Sega", "Bare Knuckle II (bootleg of Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation
GAME( 1994, barek3mb, 0, megadrvb, barek3, md_boot_state, init_barek3, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Megadrive version)", 0 )
-GAME( 1993, twinktmb, 0, md_bootleg, twinktmb, md_boot_state, init_twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Megadrive 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 Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation
+GAME( 1993, twinktmb, 0, md_bootleg, twinktmb, md_boot_state, init_twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Megadrive 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 Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation
diff --git a/src/mame/drivers/qix.cpp b/src/mame/drivers/qix.cpp
index 4c2faffe3b3..3b9ddce892e 100644
--- a/src/mame/drivers/qix.cpp
+++ b/src/mame/drivers/qix.cpp
@@ -681,7 +681,12 @@ void zookeep_state::zookeep(machine_config &config)
video(config);
}
-
+void zookeep_state::zookeepbl(machine_config &config)
+{
+ qix(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &zookeep_state::main_map);
+ video(config);
+}
/***************************************************************************
@@ -1106,6 +1111,28 @@ ROM_START( zookeep3 )
ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
ROM_END
+// the top PCB is definitely an Italian made one (same place Sidam PCBs were made). The bottom PCB (MTD-19) looks like one of those Taito PCBs made for licensees.
+// there's an unpopulated IC location for an M68705
+// only ROMS 16-17, 18-19 and 26-27 had still stickers on, so the others are educated guesses
+ROM_START( zookeepbl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zk-12-13.bin", 0x8000, 0x2000, CRC(b85e5200) SHA1(3f47626fe35f2e9fa893595e06ea4275a9beb10b) )
+ ROM_LOAD( "zk-14-15.bin", 0xa000, 0x2000, CRC(b621a415) SHA1(7b6e595f1c797d6619e7ea128aeb67f432d64a83) )
+ ROM_LOAD( "zk-16-17.bin", 0xc000, 0x2000, CRC(9e192104) SHA1(318c902debfcb49a02a3a776bf2a860685603b3c) )
+ ROM_LOAD( "zk-18-19.bin", 0xe000, 0x2000, CRC(2854b69d) SHA1(3d258d57909228d13b1b557e8178b722ec297d6d) )
+
+ ROM_REGION( 0x12000, "videocpu", 0 )
+ ROM_LOAD( "zk-5-6.bin", 0x0a000, 0x2000, CRC(467b42dc) SHA1(e92a98b56959f5ccf2a4dc4ebafa13f9074e551b) )
+ ROM_LOAD( "zk-7-8.bin", 0x0c000, 0x2000, CRC(2a5571ed) SHA1(ac6947c8fb22c0c549c747cc88b1a4da7063fcf6) )
+ ROM_LOAD( "zk-9-10.bin", 0x0e000, 0x2000, CRC(7430e09c) SHA1(05a2cd5a9dd06c235881e7d9b734be1d3e41de5d) ) // only ROM with differences compared to the parent
+ ROM_LOAD( "zk-3-4.bin", 0x10000, 0x2000, CRC(ab5a72f0) SHA1(4595a785d212464d599cfacd75ea4fc368231550) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "zk-25.bin", 0xd000, 0x1000, CRC(32e6d667) SHA1(4d693ac4a73746f17515b805382f5aeaf606da39) ) // 0xxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0xd000, 0x1000 )
+ ROM_LOAD( "zk-26-27.bin", 0xe000, 0x2000, CRC(2138554c) SHA1(6fbf46e0dd3d8a0dd526064baee3d84212713b9a) )
+ROM_END
+
ROM_START( slither )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -1433,21 +1460,22 @@ WRITE_LINE_MEMBER(qix_state::kram3_lic_videocpu_changed)
*
*************************************/
-GAME( 1981, qix, 0, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (Rev 2)", MACHINE_SUPPORTS_SAVE ) // newest set? closest to 'qix2'
-GAME( 1981, qixa, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, smaller roms)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, qixb, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, qixo, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", MACHINE_SUPPORTS_SAVE ) // oldest set / prototype? has incorrect spelling 'deutch' and doesn't allow language selection to be changed
-GAME( 1981, qix2, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix II (Tournament)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, sdungeon, 0, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon", MACHINE_SUPPORTS_SAVE ) // actually released July 1982
-GAME( 1981, sdungeona, sdungeon, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon (larger roms)", MACHINE_SUPPORTS_SAVE ) // same as above but uses larger ROMs
-GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo )
-GAMEL(1982, elecyoyo2, elecyoyo, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo )
-GAME( 1982, kram, 0, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, kram2, kram, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, kram3, kram, kram3, kram, qix_state, init_kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zookeep, 0, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zookeep2, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, zookeep3, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, slither, 0, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, slithera, slither, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, complexx, 0, qix, complexx, qix_state, empty_init, ROT270, "Taito America Corporation", "Complex X", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, qix, 0, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (Rev 2)", MACHINE_SUPPORTS_SAVE ) // newest set? closest to 'qix2'
+GAME( 1981, qixa, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, smaller roms)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, qixb, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, qixo, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", MACHINE_SUPPORTS_SAVE ) // oldest set / prototype? has incorrect spelling 'deutch' and doesn't allow language selection to be changed
+GAME( 1981, qix2, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix II (Tournament)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, sdungeon, 0, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon", MACHINE_SUPPORTS_SAVE ) // actually released July 1982
+GAME( 1981, sdungeona, sdungeon, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon (larger roms)", MACHINE_SUPPORTS_SAVE ) // same as above but uses larger ROMs
+GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo )
+GAMEL(1982, elecyoyo2, elecyoyo, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo )
+GAME( 1982, kram, 0, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, kram2, kram, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, kram3, kram, kram3, kram, qix_state, init_kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zookeep, 0, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zookeep2, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zookeep3, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zookeepbl, zookeep, zookeepbl, zookeep, zookeep_state, empty_init, ROT0, "bootleg", "Zoo Keeper (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, slither, 0, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, slithera, slither, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, complexx, 0, qix, complexx, qix_state, empty_init, ROT270, "Taito America Corporation", "Complex X", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/megadriv_acbl.h b/src/mame/includes/megadriv_acbl.h
index 12e7a95dc7e..115477423b1 100644
--- a/src/mame/includes/megadriv_acbl.h
+++ b/src/mame/includes/megadriv_acbl.h
@@ -24,6 +24,7 @@ public:
void init_topshoot();
void init_puckpkmn();
void init_hshavoc();
+ void init_barek2();
void init_barek3();
void init_sonic2mb();
void init_twinktmb();
@@ -34,6 +35,7 @@ private:
uint16_t bl_710000_r();
void aladmdb_w(uint16_t data);
uint16_t aladmdb_r();
+ uint16_t barek2mb_r();
uint16_t jparkmb_r();
uint16_t twinktmb_r();
uint16_t mk3mdb_dsw_r(offs_t offset);
diff --git a/src/mame/includes/qix.h b/src/mame/includes/qix.h
index 7ba49a2d8c8..cc4e9bbba41 100644
--- a/src/mame/includes/qix.h
+++ b/src/mame/includes/qix.h
@@ -168,6 +168,8 @@ public:
protected:
virtual void machine_start() override;
+ optional_device<m68705p_device> m_mcu;
+
private:
uint8_t coin_r();
void coin_w(uint8_t data);
@@ -178,8 +180,6 @@ private:
void mcu_porta_w(uint8_t data);
void mcu_portb_w(uint8_t data);
- required_device<m68705p_device> m_mcu;
-
/* machine state */
uint8_t m_68705_porta_out;
uint8_t m_coinctrl;
@@ -194,6 +194,7 @@ public:
{ }
void zookeep(machine_config &config);
+ void zookeepbl(machine_config &config);
void video(machine_config &config);
protected:
diff --git a/src/mame/machine/qix.cpp b/src/mame/machine/qix.cpp
index e7f9b38d3fe..8479daabc6d 100644
--- a/src/mame/machine/qix.cpp
+++ b/src/mame/machine/qix.cpp
@@ -33,7 +33,10 @@ void qixmcu_state::machine_start()
void zookeep_state::machine_start()
{
- qixmcu_state::machine_start();
+ if (m_mcu)
+ qixmcu_state::machine_start();
+ else
+ qix_state::machine_start();
/* configure the banking */
m_vidbank->configure_entry(0, memregion("videocpu")->base() + 0xa000);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 0bef4cf2f58..2ef6b0908d7 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -22128,6 +22128,7 @@ megajet // 1993 Sega Mega Jet (Japan)
@source:megadriv_acbl.cpp
aladmdb // MegaDrive-based hack
+barek2mb // MegaDrive-based hack
barek3mb // MegaDrive-based hack
jparkmb // MegaDrive-based hack
mk3mdb // MegaDrive-based hack
@@ -34906,6 +34907,7 @@ slithera // (c) 1982 Century II
zookeep // ZA (c) 1982 Taito America Corporation
zookeep2 // ZA (c) 1982 Taito America Corporation
zookeep3 // ZA (c) 1982 Taito America Corporation
+zookeepbl // bootleg
@source:ql.cpp
ql // 1984 Sinclair QL (UK)