From 5259b88b1feb7ac467372a2841dfac782e3c1f03 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 15 Nov 2023 18:15:18 +0100 Subject: royalmah/dynax.cpp: dumped TMP internal ROMs for cafedoll and cafebrk [buffi, Recreativos Piscis] --- src/mame/dataeast/dec8.cpp | 2 +- src/mame/dynax/royalmah.cpp | 75 ++++++++++++++++++++++++++++++++++++--------- 2 files changed, 62 insertions(+), 15 deletions(-) diff --git a/src/mame/dataeast/dec8.cpp b/src/mame/dataeast/dec8.cpp index 9b726860c5f..dc3291fe534 100644 --- a/src/mame/dataeast/dec8.cpp +++ b/src/mame/dataeast/dec8.cpp @@ -2556,7 +2556,7 @@ ROM_START( shackled ) ROM_LOAD( "dk-07.5h", 0x08000, 0x08000, CRC(887e4bcc) SHA1(6427396080e9cd8647adff47c8ed04593a14268c) ) ROM_REGION( 0x1000, "mcu", 0 ) /* ID8751H (fake) MCU (based on 'breywood' with ID byte changed from 00 to 01) */ - ROM_LOAD( "dk.18a", 0x0000, 0x1000, CRC(1af06149) SHA1(b9cb2a4986dbcfc78b0cbea2c1e2bdac1db479cd) BAD_DUMP ) + ROM_LOAD( "dk-e.18a", 0x0000, 0x1000, CRC(1af06149) SHA1(b9cb2a4986dbcfc78b0cbea2c1e2bdac1db479cd) BAD_DUMP ) /* Hand written "E" */ ROM_REGION( 0x08000, "gfx1", 0 ) /* characters */ ROM_LOAD( "dk-00.2a", 0x00000, 0x08000, CRC(69b975aa) SHA1(38cb96768c79ff1aa1b4b190e08ec9155baf698a) ) diff --git a/src/mame/dynax/royalmah.cpp b/src/mame/dynax/royalmah.cpp index 7a25b5fc12c..fd168c83669 100644 --- a/src/mame/dynax/royalmah.cpp +++ b/src/mame/dynax/royalmah.cpp @@ -37,13 +37,13 @@ Year + Game Board(s) CPU Company Not 90 Mahjong If..? D2909278L TLCS-90 Dynax Larger palette 91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Larger palette, RTC 92 Mahjong Cafe Time D6310128L1-1 TLCS-90 Dynax Larger palette, RTC -93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal ROM +93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC 93 Ichi Ban Jian MJ911 Z80 Excel Larger palette, additional YM2413 95 Mahjong Tensinhai D10010318L1 TLCS-90 Dynax Larger palette, RTC 96 Janputer '96 NS503X0727 Z80 Dynax Larger palette, RTC 97 Pong Boo! 2 NEW PONG-BOO Z80(?) OCT OKI M6295, no PROMs 97 Janputer Special CS166P008 + NS5110207 Z80 Dynax Larger palette, RTC -99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal ROM +99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Larger palette, RTC 99 Mahjong Cafe Paradise ? + TSS001-0001 TLCS-90 Techno-Top Larger palette, RTC ----------------------------------------------------------------------------------------------------------------------- @@ -93,6 +93,11 @@ Stephh's notes (based on the games Z80 code and some tests) : - cafepara, janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to access some hidden options. (thanks bnathan) +- cafebrk and cafepara share the same internal TMP91640 code, while + cafedoll and mjvegas share the same internal TMP90840 code. Curiously, + cafetime has the same internal TMP90840 code as cafedoll and mjvegas, + but it's configured to run in external ROM mode. + ****************************************************************************/ #include "emu.h" @@ -254,6 +259,7 @@ public: void mjifb(machine_config &config) ATTR_COLD; void mjdejavu(machine_config &config) ATTR_COLD; void mjtensin(machine_config &config) ATTR_COLD; + void cafedoll(machine_config &config) ATTR_COLD; void cafepara(machine_config &config) ATTR_COLD; void cafetime(machine_config &config) ATTR_COLD; void mjvegas(machine_config &config) ATTR_COLD; @@ -266,6 +272,7 @@ public: void init_suzume() ATTR_COLD; void init_daisyari() ATTR_COLD; void init_mjtensin() ATTR_COLD; + void init_cafedoll() ATTR_COLD; void init_cafetime() ATTR_COLD; void init_mjvegas() ATTR_COLD; void init_mjvegasa() ATTR_COLD; @@ -334,6 +341,9 @@ private: uint8_t cafetime_7fe4_r(); void cafetime_7fe3_w(uint8_t data); + void cafedoll_p6_w(uint8_t data); + void cafedoll_p7_w(uint8_t data); + void mjvegasa_p4_w(uint8_t data); void mjvegasa_p3_w(uint8_t data); void mjvegasa_rombank_w(uint8_t data); @@ -1402,6 +1412,22 @@ void royalmah_prgbank_state::cafetime_p3_w(uint8_t data) m_mainbank->set_entry(m_rombank); } +void royalmah_prgbank_state::cafedoll_p6_w(uint8_t data) +{ + m_mjvegas_p5_val &= 0x0f; + + if (data & 0x03) + m_mjvegas_p5_val |= (1 << 4); +} + +void royalmah_prgbank_state::cafedoll_p7_w(uint8_t data) +{ + m_mjvegas_p5_val &= 0xf0; + + if (data & 0x0f) + m_mjvegas_p5_val |= (1 << 3); +} + void royalmah_prgbank_state::cafetime_dsw_w(uint8_t data) { m_dsw_select = data; @@ -4137,6 +4163,18 @@ void royalmah_prgbank_state::cafetime(machine_config &config) MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); } +void royalmah_prgbank_state::cafedoll(machine_config &config) +{ + cafetime(config); + tmp90840_device &tmp(TMP90840(config.replace(), m_maincpu, XTAL(8'000'000))); // XTAL is verified, should it be divided? + tmp.set_addrmap(AS_PROGRAM, &royalmah_prgbank_state::cafetime_map); + tmp.port_write<3>().set(FUNC(royalmah_prgbank_state::cafetime_p3_w)); + tmp.port_write<4>().set(FUNC(royalmah_prgbank_state::cafetime_p4_w)); + tmp.port_read<5>().set(FUNC(royalmah_prgbank_state::mjvegas_p5_r)); + tmp.port_write<6>().set(FUNC(royalmah_prgbank_state::cafedoll_p6_w)); + tmp.port_write<7>().set(FUNC(royalmah_prgbank_state::cafedoll_p7_w)); +} + void royalmah_prgbank_state::cafepara(machine_config &config) { cafetime(config); @@ -5000,12 +5038,12 @@ Notes: ROM_START( cafedoll ) ROM_REGION( 0x190000, "maincpu", 0 ) - ROM_LOAD( "76xx.tmp90841", 0x00000, 0x02000, NO_DUMP ) - ROM_LOAD( "7601", 0x000000, 0x80000, CRC(20c80ad9) SHA1(e45edd101c6e26c0fa3c3f15f4a4152a853e41bd) ) + ROM_LOAD( "7601", 0x000000, 0x80000, CRC(20c80ad9) SHA1(e45edd101c6e26c0fa3c3f15f4a4152a853e41bd) ) + ROM_LOAD( "76xx.tmp90840", 0x000000, 0x02000, CRC(091a85dc) SHA1(964ccbc13466464c2feee10f807078ec517bed5c) ) // internal ROM // bank switched ROMs follow - ROM_RELOAD( 0x010000, 0x80000 ) - ROM_LOAD( "7602", 0x090000, 0x80000, CRC(f472960c) SHA1(cc2feb4374ba94035101114c73e1690cfeac9b91) ) - ROM_LOAD( "7603", 0x110000, 0x80000, CRC(c4293019) SHA1(afd717844e9e681ada14e80cd10dce0ed60d4259) ) + ROM_COPY( "maincpu", 0x000000, 0x010000, 0x80000 ) + ROM_LOAD( "7602", 0x090000, 0x80000, CRC(f472960c) SHA1(cc2feb4374ba94035101114c73e1690cfeac9b91) ) + ROM_LOAD( "7603", 0x110000, 0x80000, CRC(c4293019) SHA1(afd717844e9e681ada14e80cd10dce0ed60d4259) ) ROM_REGION( 0x400, "proms", 0 ) ROM_LOAD( "d76-2_82s147.9f", 0x000, 0x200, CRC(9c1d0512) SHA1(3ca82d4271badc890701ecc76b97e80b16509b50) ) @@ -5297,11 +5335,13 @@ Notes: ***************************************************************************/ ROM_START( cafebrk ) - ROM_REGION( 0x280000, "maincpu", 0 ) - ROM_LOAD( "528.tmp91640", 0x000000, 0x004000, NO_DUMP ) - ROM_LOAD( "528011.1f", 0x000000, 0x080000, CRC(440ae60b) SHA1(c24efd76ba73adcb614b1974e8f92592800ba53c) ) + ROM_REGION( 0x290000, "maincpu", 0 ) + ROM_LOAD( "528011.1f", 0x000000, 0x080000, CRC(440ae60b) SHA1(c24efd76ba73adcb614b1974e8f92592800ba53c) ) + ROM_LOAD( "528.tmp91640", 0x000000, 0x004000, CRC(0575607c) SHA1(e641ffd1bd44f2b4a0cdf72c49990933a0f0ff22) ) // internal ROM + // bank switched ROMs follow - ROM_LOAD( "52802.1d", 0x080000, 0x200000, CRC(bf4760fc) SHA1(d54ab9e298800a31d95a5f8b98ab9ba5b2866acf) ) + ROM_COPY( "maincpu", 0x000000, 0x010000, 0x080000 ) + ROM_LOAD( "52802.1d", 0x090000, 0x200000, CRC(bf4760fc) SHA1(d54ab9e298800a31d95a5f8b98ab9ba5b2866acf) ) ROM_REGION( 0x400, "proms", 0 ) ROM_LOAD( "ns528b2.4h", 0x000, 0x200, CRC(5699e69a) SHA1(fe13b93dd2c4a16865b4edcb0fee1390fdade725) ) @@ -5821,6 +5861,13 @@ void royalmah_prgbank_state::init_cafetime() save_item(NAME(m_rombank)); } +void royalmah_prgbank_state::init_cafedoll() +{ + init_cafetime(); + + save_item(NAME(m_mjvegas_p5_val)); +} + void royalmah_prgbank_state::init_mjvegasa() { m_mainbank->configure_entries(0, 128, memregion("maincpu")->base() + 0x10000, 0x8000); @@ -5983,11 +6030,11 @@ GAME( 1990, mjifb3, mjifb, mjifb, mjifb, royalmah_prgbank_state, ini GAME( 1991, mjvegasa, 0, mjvegasa, mjvegasa, royalmah_prgbank_state, init_mjvegasa, ROT0, "Dynax", "Mahjong Vegas (Japan, unprotected)", 0 ) GAME( 1991, mjvegas, mjvegasa, mjvegas, mjvegasa, royalmah_prgbank_state, init_mjvegas, ROT0, "Dynax", "Mahjong Vegas (Japan)", 0 ) GAME( 1992, cafetime, 0, cafetime, cafetime, royalmah_prgbank_state, init_cafetime, ROT0, "Dynax", "Mahjong Cafe Time", 0 ) -GAME( 1993, cafedoll, 0, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Dynax", "Mahjong Cafe Doll (Japan)", MACHINE_NOT_WORKING ) // missing internal ROM dump +GAME( 1993, cafedoll, 0, cafedoll, cafetime, royalmah_prgbank_state, init_cafedoll, ROT0, "Dynax", "Mahjong Cafe Doll (Japan, Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct banking implementation (P3 seems to be used differently) GAME( 1993, ichiban, 0, ichiban, ichiban, royalmah_prgbank_state, init_ichiban, ROT0, "Excel", "Ichi Ban Jyan", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND ) // should just need correct palette and ROM banking GAME( 1995, mjtensin, 0, mjtensin, mjtensin, royalmah_prgbank_state, init_mjtensin, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", MACHINE_NOT_WORKING ) GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_prgbank_state, init_janptr96, ROT0, "Dynax", "Janputer '96 (Japan)", 0 ) GAME( 1997, janptrsp, 0, janptr96, janptr96, royalmah_prgbank_state, init_janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 ) GAME( 1997, pongboo2, 0, pongboo2, ichiban, royalmah_prgbank_state, init_pongboo2, ROT0, "OCT", "Pong Boo! 2 (Ver. 1.31)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // banking, palette, inputs -GAME( 1999, cafebrk, 0, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING ) // missing internal ROM dump -GAME( 1999, cafepara, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Techno-Top", "Mahjong Cafe Paradise (Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct banking and / or ROM descrambling +GAME( 1999, cafebrk, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break (Ver. 1.01J)", MACHINE_NOT_WORKING ) // needs correct banking and / or 1d ROM descrambling +GAME( 1999, cafepara, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Techno-Top", "Mahjong Cafe Paradise (Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct banking and / or 1d ROM descrambling -- cgit v1.2.3