From a46ff7198c6f5b386625e0fbaecdf48c6e22d35b Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Sat, 24 Oct 2020 13:07:02 +0200 Subject: megadriv_acbl.cpp: Add PIC dump to 'barek2mb' [Victor Fernandez (City Game), ClawGrip] (#7378) --- src/mame/drivers/megadriv_acbl.cpp | 362 ++++++++++++++++++------------------- 1 file changed, 181 insertions(+), 181 deletions(-) diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp index 685bb74824b..7b727bafe05 100644 --- a/src/mame/drivers/megadriv_acbl.cpp +++ b/src/mame/drivers/megadriv_acbl.cpp @@ -268,8 +268,8 @@ connector, but of course, I can be wrong. // smaller ROM region because some bootlegs check for RAM there (used by topshoot and hshavoc) void md_boot_state::md_bootleg_map(address_map &map) { - map(0x000000, 0x1fffff).rom(); /* Cartridge Program Rom */ - map(0x200000, 0x2023ff).ram(); // tested + map(0x000000, 0x1fffff).rom(); // Cartridge Program ROM + map(0x200000, 0x2023ff).ram(); // Tested map(0xa00000, 0xa01fff).rw(FUNC(md_boot_state::megadriv_68k_read_z80_ram), FUNC(md_boot_state::megadriv_68k_write_z80_ram)); map(0xa02000, 0xa03fff).w(FUNC(md_boot_state::megadriv_68k_write_z80_ram)); @@ -467,7 +467,7 @@ uint16_t md_boot_state::bl_710000_r() * *************************************/ -/* verified from M68000 code */ +// Verified from M68000 code INPUT_PORTS_START( ssf2mdb ) PORT_INCLUDE( md_common ) @@ -483,19 +483,19 @@ INPUT_PORTS_START( ssf2mdb ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_START("EXTRA1") /* Extra buttons for Joypad 1 (6 button + start + mode) NOT READ DIRECTLY */ + PORT_START("EXTRA1") // Extra buttons for Joypad 1 (6 button + start + mode) NOT READ DIRECTLY PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("EXTRA2") /* Extra buttons for Joypad 2 (6 button + start + mode) NOT READ DIRECTLY */ + PORT_START("EXTRA2") // Extra buttons for Joypad 2 (6 button + start + mode) NOT READ DIRECTLY PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("IN0") /* 3rd I/O port */ + PORT_START("IN0") // 3rd I/O port PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) @@ -541,7 +541,7 @@ INPUT_PORTS_START( ssf2mdb ) // PORT_DIPSETTING( 0x00, "10 (Fastest)" ) INPUT_PORTS_END -/* verified from M68000 code */ +// Verified from M68000 code INPUT_PORTS_START( mk3mdb ) PORT_INCLUDE( md_common ) @@ -557,13 +557,13 @@ INPUT_PORTS_START( mk3mdb ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_START("EXTRA1") /* Extra buttons for Joypad 1 (6 button + start + mode) NOT READ DIRECTLY */ + PORT_START("EXTRA1") // Extra buttons for Joypad 1 (6 button + start + mode) NOT READ DIRECTLY PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("EXTRA2") /* Extra buttons for Joypad 2 (6 button + start + mode) NOT READ DIRECTLY */ + PORT_START("EXTRA2") // Extra buttons for Joypad 2 (6 button + start + mode) NOT READ DIRECTLY PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) @@ -604,26 +604,26 @@ INPUT_PORTS_START( mk3mdb ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - PORT_START("DSWC") /* not even read in this set */ + PORT_START("DSWC") // Not even read in this set INPUT_PORTS_END -/* verified from M68000 code */ +// Verified from M68000 code INPUT_PORTS_START( aladmdb ) PORT_INCLUDE( md_common ) - PORT_MODIFY("PAD1") /* Joypad 1 (3 button + start) NOT READ DIRECTLY */ + PORT_MODIFY("PAD1") // Joypad 1 (3 button + start) NOT READ DIRECTLY PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Throw") // a PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Sword") // b PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Jump") // c PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) // start - PORT_MODIFY("PAD2") /* Joypad 2 (3 button + start) NOT READ DIRECTLY - not used */ + PORT_MODIFY("PAD2") // Joypad 2 (3 button + start) NOT READ DIRECTLY - not used PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - /* As I don't know how it is on real hardware, this is more a guess than anything */ + // As I don't know how it is on real hardware, this is more a guess than anything PORT_START("MCU") - PORT_DIPNAME( 0x07, 0x01, DEF_STR( Coinage ) ) /* code at 0x1b2a50 - unsure if there are so many settings */ -// PORT_DIPSETTING( 0x00, "INVALID" ) /* adds 0 credit */ + PORT_DIPNAME( 0x07, 0x01, DEF_STR( Coinage ) ) // Code at 0x1b2a50 - unsure if there are so many settings +// PORT_DIPSETTING( 0x00, "INVALID" ) // Adds 0 credit PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) ) @@ -631,15 +631,15 @@ INPUT_PORTS_START( aladmdb ) PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_7C ) ) -// PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* to avoid it being changed and corrupting Coinage settings */ - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) /* code at 0x1b2680 */ - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) /* "PRACTICE" */ - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) /* "NORMAL" */ - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) /* "DIFFICULT" */ +// PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_CUSTOM ) // To avoid it being changed and corrupting Coinage settings + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) // Code at 0x1b2680 + PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) // "PRACTICE" + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) // "NORMAL" + PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) // "DIFFICULT" // PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPUNUSED( 0x40, IP_ACTIVE_HIGH ) PORT_DIPUNUSED( 0x80, IP_ACTIVE_HIGH ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) /* needed to avoid credits getting mad */ + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) // Needed to avoid credits getting mad INPUT_PORTS_END INPUT_PORTS_START( sonic2mb ) @@ -687,7 +687,7 @@ INPUT_PORTS_END INPUT_PORTS_START( twinktmb ) PORT_INCLUDE( aladmdb ) - /* As I don't know how it is on real hardware, this is more a guess than anything */ + // As I don't know how it is on real hardware, this is more a guess than anything PORT_MODIFY("MCU") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") @@ -711,7 +711,7 @@ INPUT_PORTS_START( twinktmb ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -/* verified from M68000 code */ +// Verified from M68000 code INPUT_PORTS_START( srmdb ) PORT_INCLUDE( md_common ) @@ -727,7 +727,7 @@ INPUT_PORTS_START( srmdb ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // c (duplicate shoot button) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_START("IN0") /* 3rd I/O port */ + PORT_START("IN0") // 3rd I/O port PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) @@ -757,7 +757,7 @@ INPUT_PORTS_START( srmdb ) PORT_DIPSETTING( 0x00, "6" ) INPUT_PORTS_END -static INPUT_PORTS_START( topshoot ) /* Top Shooter Input Ports */ +static INPUT_PORTS_START( topshoot ) // Top Shooter Input Ports PORT_START("IN0") PORT_BIT( 0x4f, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -952,7 +952,7 @@ MACHINE_START_MEMBER(md_boot_state, md_6button) m_io_pad_6b[2] = ioport("IN0"); m_io_pad_6b[3] = ioport("UNK"); - // setup timers for 6 button pads + // Setup timers for 6 button pads for (int i = 0; i < 3; i++) m_io_timeout[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(md_base_state::io_timeout_timer_callback),this), (void*)(uintptr_t)i); } @@ -964,144 +964,6 @@ void md_boot_state::megadrvb_6b(machine_config &config) } -/************************************* - * - * ROM definition(s) - * - *************************************/ - -ROM_START( aladmdb ) - ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */ - 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_REGION( 0x2000, "pic", ROMREGION_ERASE00 ) - ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) -ROM_END - -ROM_START( mk3mdb ) // roms are scrambled, we take care of the address descramble in the ROM load, and the data descramble in the init - // this is bootlegged from "Mortal Kombat 3 (4) [!].bin" - ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "1.u1", 0x080001, 0x020000, CRC(0dc01b23) SHA1(f1aa7ac88c8e3deb5a0a065862722e9d27b87b4c) ) - ROM_CONTINUE( 0x000001, 0x020000) - ROM_CONTINUE( 0x0c0001, 0x020000) - ROM_CONTINUE( 0x040001, 0x020000) - ROM_LOAD16_BYTE( "2.u3", 0x180001, 0x040000, CRC(50250235) SHA1(9f9e06f26163b92c76397fde43b38b3536bcb637) ) - ROM_CONTINUE( 0x100001, 0x040000) - ROM_LOAD16_BYTE( "3.u9", 0x280001, 0x040000, CRC(493404c1) SHA1(73f4bd1eeeee3f175f4378ab406a97f94f88880b) ) - ROM_CONTINUE( 0x200001, 0x040000) - ROM_LOAD16_BYTE( "4.u11",0x380001, 0x040000, CRC(a52156b8) SHA1(0990ef1fb3427a5d3c262e264feb25c1db75ed33) ) - ROM_CONTINUE( 0x300001, 0x040000) - ROM_LOAD16_BYTE( "6.u2", 0x080000, 0x020000, CRC(9852fd6f) SHA1(348befeca5129c5ea2c142760ec93511f98f23cc) ) - ROM_CONTINUE( 0x000000, 0x020000) - ROM_CONTINUE( 0x0c0000, 0x020000) - ROM_CONTINUE( 0x040000, 0x020000) - ROM_LOAD16_BYTE( "5.u4", 0x180000, 0x040000, CRC(ed6a6d13) SHA1(eaab912ee035ece03f7cfceb1b546004399daad5) ) - ROM_CONTINUE( 0x100000, 0x040000) - ROM_LOAD16_BYTE( "7.u10",0x280000, 0x040000, CRC(a124d8d1) SHA1(d391b130992701d0fae7e827ba314b8368d809de) ) - ROM_CONTINUE( 0x200000, 0x040000) - ROM_LOAD16_BYTE( "8.u12",0x380000, 0x040000, CRC(8176f7cc) SHA1(375e1e982b97ba709fb160b04f56f6aa2d580104) ) - ROM_CONTINUE( 0x300000, 0x040000) -ROM_END - -ROM_START( ssf2mdb ) - ROM_REGION( 0x1400000, "maincpu", 0 ) /* 68000 Code */ - /* Special Case, custom PCB, linear ROM mapping of 5meg */ - ROM_LOAD16_BYTE( "rom_a", 0x000000, 0x200000, CRC(59726521) SHA1(3120bac17f56c01ffb9d3f9e31efa0263e3774af) ) - ROM_LOAD16_BYTE( "rom_b", 0x000001, 0x200000, CRC(7dad5540) SHA1(9279068b2218d239fdd557dd959ac70e74853178) ) - ROM_LOAD16_BYTE( "rom_c", 0x400000, 0x080000, CRC(deb48624) SHA1(39ffa7de7b808e0b95cb039bb381705d77420933) ) - ROM_LOAD16_BYTE( "rom_d", 0x400001, 0x080000, CRC(b99f6a5b) SHA1(adbe28a7522024bc66328ac86fecf9ded3310e8e) ) -ROM_END - -ROM_START( srmdb ) - ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */ - 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_END - -ROM_START( topshoot ) /* Top Shooter (c)1995 Sun Mixing */ - ROM_REGION( 0x200000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "tc574000ad_u11_2.bin", 0x000000, 0x080000, CRC(b235c4d9) SHA1(fbb308a5f6e769f3277824cb6a3b50c308969ac2) ) - ROM_LOAD16_BYTE( "tc574000ad_u12_1.bin", 0x000001, 0x080000, CRC(e826f6ad) SHA1(23ec8bb608f954d3b915f061e7076c0c63b8259e) ) - - // not hooked up yet - ROM_REGION( 0x1000, "mcu", 0 ) - ROM_LOAD( "89c51.bin", 0x0000, 0x1000, CRC(595475c8) SHA1(8313819ba06cc92b54f88c1ca9f34be8d1ec94d0) ) -ROM_END - -ROM_START( sbubsm ) - ROM_REGION( 0x200000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "u11.bin", 0x000000, 0x080000, CRC(4f9337ea) SHA1(b245eb615f80afd25e29b2efdddb7f61c1deff6b) ) - ROM_LOAD16_BYTE( "u12.bin", 0x000001, 0x080000, CRC(f5374835) SHA1(3a97910f5f7327ec7ad6425dfdfa72c86196ed33) ) - - ROM_REGION( 0x1000, "mcu", 0 ) // could be the same as topshoot (same PCB) - ROM_LOAD( "89c51.bin", 0x0000, 0x1000, NO_DUMP ) -ROM_END - - -ROM_START( sonic2mb ) - ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "m1", 0x000001, 0x080000, CRC(7b40aa24) SHA1(247882cd1f412366d61aeb4d85bbeefd5f108e1d) ) - 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) ) - ROM_LOAD16_BYTE( "3.u18", 0x000001, 0x080000, CRC(db900e82) SHA1(172a4fe01a0ffd1ea3aed74f2c58234fd55b876d) ) - ROM_LOAD16_BYTE( "4.u15", 0x100000, 0x080000, CRC(6353b4b1) SHA1(9f89a2f02170496ca798b89e37e1f2bae0e9155d) ) - ROM_LOAD16_BYTE( "1.u14", 0x100001, 0x080000, CRC(24d31e12) SHA1(64c1b968e1ee5d0355d902e280f33e4466f27b07) ) - ROM_LOAD16_BYTE( "5.u17", 0x200000, 0x080000, CRC(0feb974f) SHA1(ed1a25b6f1669dc6061d519985b6373fa89176c7) ) - 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) ) - ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(69aa916e) SHA1(7ea6b571fd0b6494051d5846ee9b4564b7692766) ) - - ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 ) - ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) -ROM_END - -ROM_START( jparkmb ) // same PCB as twinktmb, JPA-028 label - ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "f24.bin", 0x000000, 0x080000, CRC(bdd851d2) SHA1(1a75922e848fd5c7cd4ab102c99effcfcf382097) ) - ROM_LOAD16_BYTE( "f23.bin", 0x000001, 0x080000, CRC(8dc66c71) SHA1(a2741ffa583a4b779b7be3e3ae628e97f792ee3d) ) - ROM_LOAD16_BYTE( "f22.bin", 0x100000, 0x080000, CRC(36337d06) SHA1(d537cff2c8ed58da146faf390c09252be359ccd1) ) - ROM_LOAD16_BYTE( "f21.bin", 0x100001, 0x080000, CRC(6ede6b6b) SHA1(cf29300d9278ea03f54cf54ea582bdd8b9bbdbbd) ) - - ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 ) - ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) -ROM_END - /************************************* * * Game-specific driver inits @@ -1112,9 +974,7 @@ ROM_END void md_boot_state::init_aladmdb() { - /* - * Game does a check @ 1afc00 with work RAM fff57c that makes it play like the original console version (i.e. 8 energy hits instead of 2) - */ + // Game does a check @ 1afc00 with work RAM fff57c that makes it play like the original console version (i.e. 8 energy hits instead of 2) #if ENERGY_CONSOLE_MODE uint16_t *rom = (uint16_t *)memregion("maincpu")->base(); rom[0x1afc08/2] = 0x6600; @@ -1127,7 +987,7 @@ void md_boot_state::init_aladmdb() init_megadrij(); } -// this should be correct, the areas of the ROM that differ to the original +// This should be correct, the areas of the ROM that differ to the original // after this decode look like intentional changes void md_boot_state::init_mk3mdb() { @@ -1338,21 +1198,161 @@ void md_boot_state::init_jparkmb() m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16smo_delegate(*this, FUNC(md_boot_state::jparkmb_r))); } + +/************************************* + * + * ROM definition(s) + * + *************************************/ + +ROM_START( aladmdb ) + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 Code + 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_REGION( 0x1000, "pic", ROMREGION_ERASE00 ) + ROM_LOAD( "pic16c57xtp", 0x0000, 0x1000, NO_DUMP ) +ROM_END + +ROM_START( mk3mdb ) // ROMs are scrambled, we take care of the address descramble in the ROM load, and the data descramble in the init + // This is bootlegged from "Mortal Kombat 3 (4) [!].bin" + ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 ) // 68000 Code + ROM_LOAD16_BYTE( "1.u1", 0x080001, 0x020000, CRC(0dc01b23) SHA1(f1aa7ac88c8e3deb5a0a065862722e9d27b87b4c) ) + ROM_CONTINUE( 0x000001, 0x020000) + ROM_CONTINUE( 0x0c0001, 0x020000) + ROM_CONTINUE( 0x040001, 0x020000) + ROM_LOAD16_BYTE( "2.u3", 0x180001, 0x040000, CRC(50250235) SHA1(9f9e06f26163b92c76397fde43b38b3536bcb637) ) + ROM_CONTINUE( 0x100001, 0x040000) + ROM_LOAD16_BYTE( "3.u9", 0x280001, 0x040000, CRC(493404c1) SHA1(73f4bd1eeeee3f175f4378ab406a97f94f88880b) ) + ROM_CONTINUE( 0x200001, 0x040000) + ROM_LOAD16_BYTE( "4.u11",0x380001, 0x040000, CRC(a52156b8) SHA1(0990ef1fb3427a5d3c262e264feb25c1db75ed33) ) + ROM_CONTINUE( 0x300001, 0x040000) + ROM_LOAD16_BYTE( "6.u2", 0x080000, 0x020000, CRC(9852fd6f) SHA1(348befeca5129c5ea2c142760ec93511f98f23cc) ) + ROM_CONTINUE( 0x000000, 0x020000) + ROM_CONTINUE( 0x0c0000, 0x020000) + ROM_CONTINUE( 0x040000, 0x020000) + ROM_LOAD16_BYTE( "5.u4", 0x180000, 0x040000, CRC(ed6a6d13) SHA1(eaab912ee035ece03f7cfceb1b546004399daad5) ) + ROM_CONTINUE( 0x100000, 0x040000) + ROM_LOAD16_BYTE( "7.u10",0x280000, 0x040000, CRC(a124d8d1) SHA1(d391b130992701d0fae7e827ba314b8368d809de) ) + ROM_CONTINUE( 0x200000, 0x040000) + ROM_LOAD16_BYTE( "8.u12",0x380000, 0x040000, CRC(8176f7cc) SHA1(375e1e982b97ba709fb160b04f56f6aa2d580104) ) + ROM_CONTINUE( 0x300000, 0x040000) +ROM_END + +ROM_START( ssf2mdb ) + ROM_REGION( 0x1400000, "maincpu", 0 ) // 68000 Code + // Special Case, custom PCB, linear ROM mapping of 5meg + ROM_LOAD16_BYTE( "rom_a", 0x000000, 0x200000, CRC(59726521) SHA1(3120bac17f56c01ffb9d3f9e31efa0263e3774af) ) + ROM_LOAD16_BYTE( "rom_b", 0x000001, 0x200000, CRC(7dad5540) SHA1(9279068b2218d239fdd557dd959ac70e74853178) ) + ROM_LOAD16_BYTE( "rom_c", 0x400000, 0x080000, CRC(deb48624) SHA1(39ffa7de7b808e0b95cb039bb381705d77420933) ) + ROM_LOAD16_BYTE( "rom_d", 0x400001, 0x080000, CRC(b99f6a5b) SHA1(adbe28a7522024bc66328ac86fecf9ded3310e8e) ) +ROM_END + +ROM_START( srmdb ) + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 Code + 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_END + +ROM_START( topshoot ) // Top Shooter (c)1995 Sun Mixing + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "tc574000ad_u11_2.bin", 0x000000, 0x080000, CRC(b235c4d9) SHA1(fbb308a5f6e769f3277824cb6a3b50c308969ac2) ) + ROM_LOAD16_BYTE( "tc574000ad_u12_1.bin", 0x000001, 0x080000, CRC(e826f6ad) SHA1(23ec8bb608f954d3b915f061e7076c0c63b8259e) ) + + // Not hooked up yet + ROM_REGION( 0x1000, "mcu", 0 ) + ROM_LOAD( "89c51.bin", 0x0000, 0x1000, CRC(595475c8) SHA1(8313819ba06cc92b54f88c1ca9f34be8d1ec94d0) ) +ROM_END + +ROM_START( sbubsm ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "u11.bin", 0x000000, 0x080000, CRC(4f9337ea) SHA1(b245eb615f80afd25e29b2efdddb7f61c1deff6b) ) + ROM_LOAD16_BYTE( "u12.bin", 0x000001, 0x080000, CRC(f5374835) SHA1(3a97910f5f7327ec7ad6425dfdfa72c86196ed33) ) + + ROM_REGION( 0x1000, "mcu", 0 ) // could be the same as topshoot (same PCB) + ROM_LOAD( "89c51.bin", 0x0000, 0x1000, NO_DUMP ) +ROM_END + +ROM_START( sonic2mb ) + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 Code + ROM_LOAD16_BYTE( "m1", 0x000001, 0x080000, CRC(7b40aa24) SHA1(247882cd1f412366d61aeb4d85bbeefd5f108e1d) ) + 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) ) + + // Not hooked up yet + ROM_REGION( 0x1000, "pic", ROMREGION_ERASE00 ) + ROM_LOAD( "bk_pic16c57rcp.bin", 0x0000, 0x1000, CRC(434ad1b7) SHA1(9241554793c7375cf58239e762481a4b80a51df6) ) // Unprotected +ROM_END + +ROM_START( barek3mb ) + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 Code + ROM_LOAD16_BYTE( "6.u19", 0x000000, 0x080000, CRC(2de19519) SHA1(f5fcef1da8b5370e399f0451382e3c6e7754c9c8) ) + ROM_LOAD16_BYTE( "3.u18", 0x000001, 0x080000, CRC(db900e82) SHA1(172a4fe01a0ffd1ea3aed74f2c58234fd55b876d) ) + ROM_LOAD16_BYTE( "4.u15", 0x100000, 0x080000, CRC(6353b4b1) SHA1(9f89a2f02170496ca798b89e37e1f2bae0e9155d) ) + ROM_LOAD16_BYTE( "1.u14", 0x100001, 0x080000, CRC(24d31e12) SHA1(64c1b968e1ee5d0355d902e280f33e4466f27b07) ) + ROM_LOAD16_BYTE( "5.u17", 0x200000, 0x080000, CRC(0feb974f) SHA1(ed1a25b6f1669dc6061d519985b6373fa89176c7) ) + 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) ) + ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(69aa916e) SHA1(7ea6b571fd0b6494051d5846ee9b4564b7692766) ) + + ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 ) + ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) +ROM_END + +ROM_START( jparkmb ) // Same PCB as twinktmb, JPA-028 label + ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 Code + ROM_LOAD16_BYTE( "f24.bin", 0x000000, 0x080000, CRC(bdd851d2) SHA1(1a75922e848fd5c7cd4ab102c99effcfcf382097) ) + ROM_LOAD16_BYTE( "f23.bin", 0x000001, 0x080000, CRC(8dc66c71) SHA1(a2741ffa583a4b779b7be3e3ae628e97f792ee3d) ) + ROM_LOAD16_BYTE( "f22.bin", 0x100000, 0x080000, CRC(36337d06) SHA1(d537cff2c8ed58da146faf390c09252be359ccd1) ) + ROM_LOAD16_BYTE( "f21.bin", 0x100001, 0x080000, CRC(6ede6b6b) SHA1(cf29300d9278ea03f54cf54ea582bdd8b9bbdbbd) ) + + ROM_REGION( 0x1000, "pic", ROMREGION_ERASE00 ) + ROM_LOAD( "pic16c57xtp", 0x0000, 0x1000, NO_DUMP ) +ROM_END + + /************************************* * * Game driver(s) * *************************************/ -GAME( 1993, aladmdb, 0, megadrvb, aladmdb, md_boot_state, init_aladmdb, ROT0, "bootleg / Sega", "Aladdin (bootleg of Japanese Megadrive version)", 0) -GAME( 1996, mk3mdb, 0, megadrvb_6b, mk3mdb, md_boot_state, init_mk3mdb, ROT0, "bootleg / Midway", "Mortal Kombat 3 (bootleg of Megadrive version)", 0) -GAME( 1994, ssf2mdb, 0, megadrvb_6b, ssf2mdb, md_boot_state, init_ssf2mdb, ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)", 0) -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( 1996, sbubsm, 0, md_bootleg, sbubsm, md_boot_state, init_sbubsm, ROT0, "Sun Mixing", "Super Bubble Bobble (Sun Mixing, Megadrive clone hardware)", 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( 1994, bk3ssrmb, 0, megadrvb_6b, bk3ssrmb, 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 +GAME( 1993, aladmdb, 0, megadrvb, aladmdb, md_boot_state, init_aladmdb, ROT0, "bootleg / Sega", "Aladdin (bootleg of Japanese Megadrive version)", 0 ) +GAME( 1996, mk3mdb, 0, megadrvb_6b, mk3mdb, md_boot_state, init_mk3mdb, ROT0, "bootleg / Midway", "Mortal Kombat 3 (bootleg of Megadrive version)", 0 ) +GAME( 1994, ssf2mdb, 0, megadrvb_6b, ssf2mdb, md_boot_state, init_ssf2mdb, ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)", 0 ) +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( 1996, sbubsm, 0, md_bootleg, sbubsm, md_boot_state, init_sbubsm, ROT0, "Sun Mixing", "Super Bubble Bobble (Sun Mixing, Megadrive clone hardware)", 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 hook up +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_6b, bk3ssrmb, 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 -- cgit v1.2.3