summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2020-09-07 20:24:15 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2020-09-07 20:24:15 +0200
commit94caa62e69aa7a01310f1d6785d97bada6fad523 (patch)
treecab388625002c2d216a6df23ee5a2d1bf41f5170
parentdc711da2def0046c1ddc197058f0ce31e82c82ef (diff)
New machines marked as NOT_WORKING
---------------------------------- Bare Knuckle III / Sunset Riders (bootleg of Megadrive versions) [hammy]
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp70
-rw-r--r--src/mame/includes/megadriv_acbl.h5
-rw-r--r--src/mame/mame.lst3
3 files changed, 53 insertions, 25 deletions
diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp
index 031b0985e7b..b29e23e75df 100644
--- a/src/mame/drivers/megadriv_acbl.cpp
+++ b/src/mame/drivers/megadriv_acbl.cpp
@@ -8,6 +8,7 @@
* Aladdin
* Bare Knuckle II
* Bare Knuckle III
+ * Bare Knuckle III / Sunset Riders
* Jurassic Park
* Mortal Kombat 3
* Sonic The Hedgehog 2
@@ -155,10 +156,6 @@ Top Shooter PCB info
Top Shooter - (c)1995 - older board, look more like an actual hacked cart system, has an MCU
- Not Dumped
-
- Super Bubble Bobble (a bubble bobble rip-off from Sun Mixing, looks like it may be on this hardware)
-
TOP SHOOTER - Sun Mixing Co. Ltd. 1995
To me it seems like an original cartridge-based arcade board
@@ -369,19 +366,7 @@ uint16_t md_boot_state::barek2mb_r()
return 0x0000;
}
-uint16_t md_boot_state::mk3mdb_dsw_r(offs_t offset)
-{
- static const char *const dswname[3] = { "DSWA", "DSWB", "DSWC" };
- return ioport(dswname[offset])->read();
-}
-
-uint16_t md_boot_state::ssf2mdb_dsw_r(offs_t offset)
-{
- static const char *const dswname[3] = { "DSWA", "DSWB", "DSWC" };
- return ioport(dswname[offset])->read();
-}
-
-uint16_t md_boot_state::srmdb_dsw_r(offs_t offset)
+uint16_t md_boot_state::dsw_r(offs_t offset)
{
static const char *const dswname[3] = { "DSWA", "DSWB", "DSWC" };
return ioport(dswname[offset])->read();
@@ -1023,6 +1008,18 @@ ROM_START( barek3mb )
ROM_LOAD16_BYTE( "2.u16", 0x200001, 0x080000, CRC(bba4a585) SHA1(32c59729943d7b4c1a39f2a2b0dae9ce16991e9c) )
ROM_END
+ROM_START( bk3ssrmb )
+ ROM_REGION( 0x400000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "1.u15", 0x000000, 0x080000, CRC(120a4b64) SHA1(7084fde0d08143f48f83d2afef30522d75c7889c) )
+ ROM_LOAD16_BYTE( "5.u14", 0x000001, 0x080000, CRC(1eb625d3) SHA1(8f67ab874643b3eafe91768df84ea4a3b8a5fa82) )
+ ROM_LOAD16_BYTE( "2.u13", 0x100000, 0x080000, CRC(af439685) SHA1(5cc55608355e11096c9fadb8d2460cf66704deec) )
+ ROM_LOAD16_BYTE( "6.u12", 0x100001, 0x080000, CRC(24d31e12) SHA1(64c1b968e1ee5d0355d902e280f33e4466f27b07) )
+ ROM_LOAD16_BYTE( "3.u11", 0x200000, 0x080000, CRC(dfa5c478) SHA1(079a9cad5c2252b2d65aa3c4dc9cba331078eeb9) )
+ ROM_LOAD16_BYTE( "7.u10", 0x200001, 0x080000, CRC(bba4a585) SHA1(32c59729943d7b4c1a39f2a2b0dae9ce16991e9c) )
+ ROM_LOAD16_BYTE( "4.u9", 0x300000, 0x040000, CRC(e5f1ab97) SHA1(0f4c527043f1272e75a996f4f7270c6ea4ed3c4d) )
+ ROM_LOAD16_BYTE( "8.u8", 0x300001, 0x040000, CRC(32ee1048) SHA1(1b135c200b4440e95a7d1766b4b404ddd238872d) )
+ROM_END
+
ROM_START( twinktmb ) // same PCB as sonic2mb, but in this one the PIC is populated
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(44424f8f) SHA1(e16318bfdf869765c821c264cf9a7e6c728f7073) )
@@ -1111,7 +1108,7 @@ void md_boot_state::init_mk3mdb()
rom[0x07] = 0x02;
rom[0x06] = 0x10;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::mk3mdb_dsw_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::dsw_r)));
init_megadriv();
// 6 button game, so overwrite 3 button io handlers
@@ -1127,7 +1124,7 @@ void md_boot_state::init_ssf2mdb()
membank("bank5")->set_base(memregion( "maincpu" )->base() + 0x400000 );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::ssf2mdb_dsw_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::dsw_r)));
init_megadrij();
// 6 button game, so overwrite 3 button io handlers
@@ -1158,7 +1155,7 @@ void md_boot_state::init_srmdb()
rom[0x06] = 0xd2;
rom[0x07] = 0x00;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::srmdb_dsw_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::dsw_r)));
init_megadriv();
}
@@ -1180,7 +1177,7 @@ void md_boot_state::init_topshoot()
void md_boot_state::init_sbubsm()
{
// needed to boot, somme kind of hardware ident?
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16smo_delegate(*this, FUNC(md_boot_state::sbubsm_400000_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16smo_delegate(*this, FUNC(md_boot_state::sbubsm_400000_r)));
m_maincpu->space(AS_PROGRAM).install_read_handler(0x400002, 0x400003, read16smo_delegate(*this, FUNC(md_boot_state::sbubsm_400002_r)));
// these are shared RAM, MCU puts the inputs here
@@ -1218,6 +1215,36 @@ void md_boot_state::init_barek3()
init_megadrij();
}
+void md_boot_state::init_bk3ssrmb()
+{
+ uint8_t* rom = memregion("maincpu")->base();
+
+ for (int x = 0x00001; x < 0x80000; x += 2)
+ {
+ rom[x] = bitswap<8>(rom[x] ^ 0xff, 3, 1, 6, 4, 7, 0, 2, 5);
+ }
+
+ for (int x = 0x80001; x < 0x100000; x += 2)
+ {
+ rom[x] = bitswap<8>(rom[x], 3, 7, 0, 5, 1, 6, 2, 4);
+ }
+
+ for (int x = 0x100001; x < 0x300000; x += 2)
+ {
+ rom[x] = bitswap<8>(rom[x], 1, 7, 6, 4, 5, 2, 3, 0);
+ }
+
+ for (int x = 0x300001; x < 0x380000; x += 2)
+ {
+ rom[x] = bitswap<8>(rom[x] ^ 0xff, 3, 1, 6, 4, 7, 0, 2, 5);
+ }
+
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::dsw_r)));
+
+
+ init_megadrij();
+}
+
void md_boot_state::init_sonic2mb()
{
// 100000 = writes to unpopulated MCU?
@@ -1264,5 +1291,6 @@ GAME( 1996, sbubsm, 0, md_bootleg, sbubsm, md_boot_state, init_sbubsm, R
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( 1994, bk3ssrmb, 0, megadrvb, srmdb, md_boot_state, init_bk3ssrmb, ROT0, "bootleg / Sega", "Bare Knuckle III / Sunset Riders (bootleg of Megadrive 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 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/includes/megadriv_acbl.h b/src/mame/includes/megadriv_acbl.h
index f5d832f1bf0..990e49e4989 100644
--- a/src/mame/includes/megadriv_acbl.h
+++ b/src/mame/includes/megadriv_acbl.h
@@ -26,6 +26,7 @@ public:
void init_hshavoc();
void init_barek2();
void init_barek3();
+ void init_bk3ssrmb();
void init_sonic2mb();
void init_twinktmb();
void init_jparkmb();
@@ -39,9 +40,7 @@ private:
uint16_t barek2mb_r();
uint16_t jparkmb_r();
uint16_t twinktmb_r();
- uint16_t mk3mdb_dsw_r(offs_t offset);
- uint16_t ssf2mdb_dsw_r(offs_t offset);
- uint16_t srmdb_dsw_r(offs_t offset);
+ uint16_t dsw_r(offs_t offset);
uint16_t topshoot_200051_r();
uint16_t sbubsm_400000_r();
uint16_t sbubsm_400002_r();
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index f2041e2c6f8..38d94df25ff 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -22175,13 +22175,14 @@ megajet // 1993 Sega Mega Jet (Japan)
aladmdb // MegaDrive-based hack
barek2mb // MegaDrive-based hack
barek3mb // MegaDrive-based hack
+bk3ssrmb // MegaDrive-based hack
jparkmb // MegaDrive-based hack
mk3mdb // MegaDrive-based hack
+sbubsm // (c) 1996 Sun Mixing
sonic2mb // MegaDrive-based hack
srmdb // MegaDrive-based hack
ssf2mdb // MegaDrive-based hack
topshoot // (c) 1995 Sun Mixing
-sbubsm // (c) 1996 Sun Mixing
twinktmb // MegaDrive-based hack
@source:megadriv_rad.cpp