summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Tom <37988779+TwistedTom@users.noreply.github.com>2020-06-30 13:29:13 +0100
committer GitHub <noreply@github.com>2020-06-30 08:29:13 -0400
commit1a53c842b9854f48d371e5ffda0325e61f005221 (patch)
tree0cb40e63b67c3841d5ebb6f2494defd24eae926c
parent1d8375eedddc81a17cf72cbf4462da8caefd02fa (diff)
mkyawdim2 fix sound, add pal dumps (#6884)
mkyawdim2: fix sound, add pal dumps
-rw-r--r--src/mame/drivers/midyunit.cpp106
-rw-r--r--src/mame/includes/midyunit.h3
-rw-r--r--src/mame/machine/midyunit.cpp15
3 files changed, 93 insertions, 31 deletions
diff --git a/src/mame/drivers/midyunit.cpp b/src/mame/drivers/midyunit.cpp
index 8b4dc76205c..d7f759c8999 100644
--- a/src/mame/drivers/midyunit.cpp
+++ b/src/mame/drivers/midyunit.cpp
@@ -145,6 +145,21 @@ void midyunit_state::yawdim_oki_bank_w(uint8_t data)
m_oki->set_rom_bank(data & 3);
}
+void midyunit_state::yawdim2_oki_bank_w(uint8_t data)
+{
+ int bnk = (data >> 1 & 4) + (data & 3);
+ m_oki->set_rom_bank(bnk);
+
+ if (!(data & 4))
+ m_oki->reset();
+}
+
+uint8_t midyunit_state::yawdim2_soundlatch_r()
+{
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
+ return m_soundlatch->read();
+}
+
/*************************************
@@ -2636,27 +2651,34 @@ ROM_END
ROM_START( mkyawdim2 )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound CPU */
- // Differs from other mkyawdim set
- ROM_LOAD ( "yawdim.u167", 0x00000, 0x08000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
+ // Differs from other mkyawdim sets
+ ROM_LOAD ( "yawdim.u167", 0x00000, 0x08000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) ) // 27c512
ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM */
- // Half size as mkyawdim set
- ROM_LOAD( "yawdim.u159", 0x00000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) )
- ROM_CONTINUE( 0x40000, 0x20000 )
- ROM_RELOAD( 0x80000, 0x20000 )
- ROM_CONTINUE( 0xc0000, 0x20000 )
- ROM_LOAD( "mw-15.u160", 0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
- ROM_CONTINUE( 0x60000, 0x20000 )
- ROM_CONTINUE( 0xa0000, 0x20000 )
- ROM_CONTINUE( 0xe0000, 0x20000 )
+ ROM_REGION( 0x200000, "oki", 0 ) /* ADPCM */
+ ROM_LOAD( "yawdim.u159", 0x000000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) ) // 27c020 Half size of mkyawdim set
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_RELOAD( 0x040000, 0x20000 )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_RELOAD( 0x080000, 0x20000 )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+ ROM_RELOAD( 0x0c0000, 0x20000 )
+ ROM_CONTINUE( 0x1c0000, 0x20000 )
+ ROM_LOAD( "mw-15.u160", 0x020000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) ) // 4Mbit mask
+ ROM_CONTINUE( 0x060000, 0x20000 )
+ ROM_CONTINUE( 0x0a0000, 0x20000 )
+ ROM_CONTINUE( 0x0e0000, 0x20000 )
+ ROM_RELOAD( 0x120000, 0x20000 )
+ ROM_CONTINUE( 0x160000, 0x20000 )
+ ROM_CONTINUE( 0x1a0000, 0x20000 )
+ ROM_CONTINUE( 0x1e0000, 0x20000 )
ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
- ROM_LOAD16_BYTE( "4.u25", 0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) )
+ ROM_LOAD16_BYTE( "4.u25", 0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) ) // 2x 4Mbit masks
ROM_LOAD16_BYTE( "5.u26", 0x00001, 0x80000, CRC(7a37dc5c) SHA1(c4fc6933d8b990c5c56c65282b1f72b90b5d5435) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* 8mbit dumps */
- ROM_LOAD ( "b-1.bin", 0x000000, 0x100000, CRC(f41e61c6) SHA1(7dad38839d5c9aa0cfa7b2f7199f14e0f2c4494b) )
+ ROM_LOAD ( "b-1.bin", 0x000000, 0x100000, CRC(f41e61c6) SHA1(7dad38839d5c9aa0cfa7b2f7199f14e0f2c4494b) ) // 6x 8Mbit masks
ROM_LOAD ( "b-2.bin", 0x100000, 0x100000, CRC(8052740b) SHA1(f1b7fd536966d9d0ce690cdec635069c340d678e) )
ROM_LOAD ( "a-1.bin", 0x200000, 0x100000, CRC(7da3cb93) SHA1(23b9053b3241b69988f7f2e6a9d1353dac4fc8ab) )
@@ -2664,6 +2686,28 @@ ROM_START( mkyawdim2 )
ROM_LOAD ( "c-1.bin", 0x400000, 0x100000, CRC(de27c4c3) SHA1(a7760d239749c7463808adec72795f9785f553ec) )
ROM_LOAD ( "c-2.bin", 0x500000, 0x100000, CRC(d99203f3) SHA1(46ea21cbedfd42838562594b9bdc5d80360b7e5e) )
+
+ ROM_REGION( 0x900, "plds", 0 )
+ ROM_LOAD( "22v10.p1", 0x000, 0x2dd, CRC(15c24092) SHA1(7bbd1453c9a230dfa641239f15abb5aec93eb0dd) ) // unsecured
+ ROM_LOAD( "22v10.p2", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "22v10.p3", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "16v8.p4", 0x000, 0x117, NO_DUMP ) // secured, registered
+ ROM_LOAD( "22v10.p5", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "16v8.p6", 0x000, 0x117, NO_DUMP ) // secured, registered
+ ROM_LOAD( "16v8.p7", 0x300, 0x117, CRC(fbbdc832) SHA1(8fe5448dad6025f98c70a9dd9aa7d07a75a6762c) ) // secured but bruteforced ok
+ ROM_LOAD( "16v8.p8", 0x500, 0x117, CRC(8c573ab4) SHA1(9f16936c34cbaaa89b56356353f2a76fd4f28605) ) // secured but bruteforced ok
+ ROM_LOAD( "22v10.p9", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "20v8.p10", 0x000, 0x157, NO_DUMP ) // secured
+ ROM_LOAD( "20v8.p11", 0x000, 0x157, NO_DUMP ) // secured
+ ROM_LOAD( "22v10.p12", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "22v10.p13", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "22v10.p14", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "22v10.p15", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "20v8.p16", 0x000, 0x157, NO_DUMP ) // secured
+ ROM_LOAD( "20v8.p17", 0x000, 0x157, NO_DUMP ) // secured
+ ROM_LOAD( "22v10.p18", 0x000, 0x2dd, NO_DUMP ) // secured
+ ROM_LOAD( "16v8.p19", 0x700, 0x117, CRC(0346b5fc) SHA1(0cc1e1dcd6017de2e80eb1d40ac3a591e589b030) ) // unsecured
+ // also u130: ti TPC1020AFN-084C PLCC84, unattempted
ROM_END
@@ -2672,7 +2716,7 @@ ROM_START( mkyawdim3 )
ROM_LOAD ( "15.bin", 0x00000, 0x10000, CRC(b58d229e) SHA1(3ed14ef650dfa7f9d460611b19e9233a022cbea6) )
ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM */
- ROM_LOAD( "13.bin", 0x00000, 0x20000, CRC(921c613d) SHA1(be62b87f195b6347112ab13cc14514d4c88a8b86) ) // Half size as mkyawdim2 set and a quarter of mkyawdim
+ ROM_LOAD( "13.bin", 0x00000, 0x20000, CRC(921c613d) SHA1(be62b87f195b6347112ab13cc14514d4c88a8b86) ) // Half size of mkyawdim2 set and a quarter of mkyawdim
ROM_RELOAD( 0x40000, 0x20000 )
ROM_RELOAD( 0x80000, 0x20000 )
ROM_RELOAD( 0xc0000, 0x20000 )
@@ -3091,22 +3135,22 @@ GAME( 1991, term2la1, term2, term2, term2, midyunit_st
GAME( 1991, term2pa2, term2, term2, term2, midyunit_state, init_term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (prototype, rev PA2 10/18/91)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, term2lg1, term2, term2, term2, midyunit_state, init_term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LG1 11/04/91)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkla4, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkla3, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkla2, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkla1, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkprot9, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkprot8, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 8.0 07/21/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkprot4, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 4.0 07/14/92)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkyturbo, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.1 09/09/93, hack)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkyturboe, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.0 08/31/92, hack)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mknifty, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo, hack)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mknifty666, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo 666, hack)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkrep, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Reptile Man hack)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1992, mkyawdim, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, mkyawdim2, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
-GAME( 1992, mkyawdim3, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
-GAME( 1992, mkyawdim4, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
+GAME( 1992, mkla4, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkla3, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkla2, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkla1, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkprot9, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkprot8, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 8.0 07/21/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkprot4, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, init_mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 4.0 07/14/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyturbo, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.1 09/09/93, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyturboe, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.0 08/31/92, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mknifty, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mknifty666, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo 666, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkrep, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, init_mkyturbo, ROT0, "hack", "Mortal Kombat (Reptile Man hack)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1992, mkyawdim, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyawdim2, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim2, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // some sound effects are missing on real pcb
+GAME( 1992, mkyawdim3, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
+GAME( 1992, mkyawdim4, mk, mkyawdim, mkyawdim, midyunit_state, init_mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
GAME( 1992, totcarn, 0, yunit_adpcm_6bit_fast, totcarn, midyunit_state, init_totcarn, ROT0, "Midway", "Total Carnage (rev LA1 03/10/92)", MACHINE_SUPPORTS_SAVE )
GAME( 1992, totcarnp, totcarn, yunit_adpcm_6bit_fast, totcarn, midyunit_state, init_totcarn, ROT0, "Midway", "Total Carnage (prototype, rev 1.0 01/25/92)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/midyunit.h b/src/mame/includes/midyunit.h
index 322348345ff..772dd14d777 100644
--- a/src/mame/includes/midyunit.h
+++ b/src/mame/includes/midyunit.h
@@ -63,6 +63,7 @@ public:
void init_trog();
void init_totcarn();
void init_mkyawdim();
+ void init_mkyawdim2();
void init_shimpact();
void init_hiimpact();
void init_mkyturbo();
@@ -156,6 +157,8 @@ private:
uint16_t midyunit_dma_r(offs_t offset);
void midyunit_dma_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void yawdim_oki_bank_w(uint8_t data);
+ void yawdim2_oki_bank_w(uint8_t data);
+ uint8_t yawdim2_soundlatch_r();
TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg);
TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg);
TMS340X0_SCANLINE_IND16_CB_MEMBER(scanline_update);
diff --git a/src/mame/machine/midyunit.cpp b/src/mame/machine/midyunit.cpp
index 12a707bbd51..cbd4319dc42 100644
--- a/src/mame/machine/midyunit.cpp
+++ b/src/mame/machine/midyunit.cpp
@@ -18,6 +18,7 @@
#define SOUND_CVSD 3
#define SOUND_ADPCM 4
#define SOUND_YAWDIM 5
+#define SOUND_YAWDIM2 6
@@ -303,6 +304,7 @@ void midyunit_state::init_generic(int bpp, int sound, int prot_start, int prot_e
break;
case SOUND_YAWDIM:
+ case SOUND_YAWDIM2:
break;
}
}
@@ -450,6 +452,13 @@ void midyunit_state::init_mkyawdim()
init_generic(6, SOUND_YAWDIM, 0, 0);
}
+void midyunit_state::init_mkyawdim2()
+{
+ m_audiocpu->space(AS_PROGRAM).install_write_handler(0x9000, 0x97ff, write8smo_delegate(*this, FUNC(midyunit_state::yawdim2_oki_bank_w)));
+ m_audiocpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xa7ff, read8smo_delegate(*this, FUNC(midyunit_state::yawdim2_soundlatch_r)));
+ init_mkyawdim();
+}
+
/*************************************
*
@@ -551,6 +560,7 @@ MACHINE_RESET_MEMBER(midyunit_state,midyunit)
break;
case SOUND_YAWDIM:
+ case SOUND_YAWDIM2:
break;
}
}
@@ -595,5 +605,10 @@ void midyunit_state::midyunit_sound_w(offs_t offset, uint16_t data, uint16_t mem
m_soundlatch->write(data);
m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
break;
+
+ case SOUND_YAWDIM2:
+ m_soundlatch->write(data);
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
+ break;
}
}