From 617d239027b9085bf1530e15ab2ec6368ad86188 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 12 Oct 2023 18:14:21 +0200 Subject: - dynax/royalmah.cpp: dumped internal ROMs for mjvegas and cafepara [Sergio Galiano, Recreativos Piscis, Hammy] Clones promoted to working -------------------------- Mahjong Vegas (Japan) [Sergio Galiano, Recreativos Piscis, Hammy] --- src/mame/dynax/royalmah.cpp | 77 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/src/mame/dynax/royalmah.cpp b/src/mame/dynax/royalmah.cpp index 5656e4856da..b236dffed2d 100644 --- a/src/mame/dynax/royalmah.cpp +++ b/src/mame/dynax/royalmah.cpp @@ -255,6 +255,7 @@ public: void mjdejavu(machine_config &config) ATTR_COLD; void mjtensin(machine_config &config) ATTR_COLD; void cafetime(machine_config &config) ATTR_COLD; + void mjvegas(machine_config &config) ATTR_COLD; void mjvegasa(machine_config &config) ATTR_COLD; void ichiban(machine_config &config) ATTR_COLD; void pongboo2(machine_config &config) ATTR_COLD; @@ -265,6 +266,7 @@ public: void init_daisyari() ATTR_COLD; void init_mjtensin() ATTR_COLD; void init_cafetime() ATTR_COLD; + void init_mjvegas() ATTR_COLD; void init_mjvegasa() ATTR_COLD; void init_jongshin() ATTR_COLD; void init_mjifb() ATTR_COLD; @@ -340,6 +342,10 @@ private: void mjvegasa_12400_w(uint8_t data); uint8_t mjvegasa_12500_r(); + uint8_t mjvegas_p5_r(); + void mjvegas_p6_w(uint8_t data); + void mjvegas_p7_w(uint8_t data); + void mjderngr_palette(palette_device &palette) const ATTR_COLD; INTERRUPT_GEN_MEMBER(suzume_irq); @@ -394,6 +400,7 @@ private: uint8_t m_suzume_bank = 0; uint8_t m_mjyarou_bank = 0; + uint8_t m_mjvegas_p5_val = 0; }; @@ -1443,7 +1450,26 @@ void royalmah_prgbank_state::cafetime_map(address_map &map) /**************************************************************************** Mahjong Vegas ****************************************************************************/ +uint8_t royalmah_prgbank_state::mjvegas_p5_r() +{ + return m_mjvegas_p5_val; +} + +void royalmah_prgbank_state::mjvegas_p6_w(uint8_t data) +{ + m_mjvegas_p5_val &= 0x0f; + + if (data & 0x07) + m_mjvegas_p5_val |= (1 << 4); +} +void royalmah_prgbank_state::mjvegas_p7_w(uint8_t data) +{ + m_mjvegas_p5_val &= 0xf0; + + if (data & 0x07) + m_mjvegas_p5_val |= (1 << 3); +} void royalmah_prgbank_state::mjvegasa_p4_w(uint8_t data) { m_rombank = (m_rombank & 0xf8) | ((data & 0x0e) >> 1); @@ -4103,6 +4129,20 @@ void royalmah_prgbank_state::mjvegasa(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::mjvegas(machine_config &config) +{ + mjvegasa(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::mjvegasa_map); + tmp.port_read<3>().set(FUNC(royalmah_prgbank_state::mjtensin_p3_r)); + tmp.port_write<3>().set(FUNC(royalmah_prgbank_state::mjvegasa_p3_w)); + tmp.port_write<4>().set(FUNC(royalmah_prgbank_state::mjvegasa_p4_w)); + tmp.port_read<5>().set(FUNC(royalmah_prgbank_state::mjvegas_p5_r)); + tmp.port_write<6>().set(FUNC(royalmah_prgbank_state::mjvegas_p6_w)); + tmp.port_write<7>().set(FUNC(royalmah_prgbank_state::mjvegas_p7_w)); +} + void royalmah_prgbank_state::ichiban(machine_config &config) { // basic machine hardware @@ -4945,12 +4985,13 @@ and a PLCC68 chip (likely FPGA) ROM_START( cafepara ) ROM_REGION( 0x290000, "maincpu", 0 ) - ROM_LOAD( "cafepara.tmp91640", 0x000000, 0x004000, NO_DUMP ) // VIDEO & AM MICRO COMPUTER SYSTEMS 1999 TECHNO-TOP,LIMITED NAGOYA JAPAN MAHJONG CAFE PARADISE TSS001 VER. 1.00 - ROM_LOAD( "00101.1h", 0x000000, 0x080000, CRC(f5917280) SHA1(e6180e36643075ab9fa5bc27baef2a464a23f581) ) + ROM_LOAD( "00101.1h", 0x000000, 0x080000, CRC(f5917280) SHA1(e6180e36643075ab9fa5bc27baef2a464a23f581) ) + ROM_LOAD( "cafepara.tmp91640", 0x000000, 0x004000, CRC(0575607c) SHA1(e641ffd1bd44f2b4a0cdf72c49990933a0f0ff22) ) + // bank switched ROMs follow - ROM_RELOAD( 0x010000, 0x080000 ) - ROM_LOAD( "00102.1d", 0x090000, 0x200000, CRC(ed3b5447) SHA1(ac24e9c00c94c35d2b2ec35f0c4262ceeda5408f) ) + ROM_COPY( "maincpu", 0x000000, 0x010000, 0x080000 ) + ROM_LOAD( "00102.1d", 0x090000, 0x200000, CRC(ed3b5447) SHA1(ac24e9c00c94c35d2b2ec35f0c4262ceeda5408f) ) ROM_REGION( 0x400, "proms", 0 ) ROM_LOAD( "ts001b.4h", 0x000, 0x200, CRC(b0019654) SHA1(78ba9b35744849c430f99137ea0da3d5564cc72a) ) @@ -5031,13 +5072,14 @@ Notes: ***************************************************************************/ ROM_START( mjvegas ) - ROM_REGION( 0xd0000, "maincpu", 0 ) - ROM_LOAD( "50xx.tmp90841", 0x00000, 0x02000, NO_DUMP ) - ROM_LOAD( "5001a.1b", 0x00000, 0x20000, CRC(91859a47) SHA1(3c452405bf28f5e7302eaccdf472e91b64629a67) ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "5001a.1b", 0x00000, 0x20000, CRC(91859a47) SHA1(3c452405bf28f5e7302eaccdf472e91b64629a67) ) // external ROM with first 0x2000 empty + ROM_LOAD( "50xx.tmp90840", 0x00000, 0x02000, CRC(091a85dc) SHA1(964ccbc13466464c2feee10f807078ec517bed5c) ) // internal ROM + // bank switched ROMs follow - ROM_RELOAD( 0x10000, 0x20000 ) - ROM_LOAD( "5002.1d", 0x30000, 0x80000, CRC(016c0a32) SHA1(5c5fdd631eacb36a0ee7dba9e070c2d3d3d8fd5b) ) - ROM_LOAD( "5003.1e", 0xb0000, 0x20000, CRC(5323cc85) SHA1(58b75ba560f05a0568024f52ee89f54713219452) ) + ROM_COPY( "maincpu", 0x000000, 0x070000, 0x020000 ) // 0c-0f + ROM_LOAD( "5002.1d", 0x210000, 0x80000, CRC(016c0a32) SHA1(5c5fdd631eacb36a0ee7dba9e070c2d3d3d8fd5b) ) // 40-4f + ROM_LOAD( "5003.1e", 0x2f0000, 0x20000, CRC(5323cc85) SHA1(58b75ba560f05a0568024f52ee89f54713219452) ) // 5c-5f ROM_REGION( 0x400, "proms", 0 ) ROM_LOAD( "d50-2_82s147.4h", 0x000, 0x200, CRC(3c960ea2) SHA1(65e05e3f129e9e6fcb14b7d44a75a76919c54d52) ) @@ -5742,6 +5784,13 @@ void royalmah_prgbank_state::init_mjvegasa() save_item(NAME(m_rombank)); } +void royalmah_prgbank_state::init_mjvegas() +{ + init_mjvegasa(); + + save_item(NAME(m_mjvegas_p5_val)); +} + void royalmah_prgbank_state::init_jongshin() { m_mainbank->configure_entries(0, 3, memregion("maincpu")->base() + 0x10000, 0x8000); @@ -5888,13 +5937,13 @@ GAME( 1990, mjifb, 0, mjifb, mjifb, royalmah_prgbank_state, ini GAME( 1990, mjifb2, mjifb, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Dynax", "Mahjong If...? [BET](2921)", 0 ) GAME( 1990, mjifb3, mjifb, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Dynax", "Mahjong If...? [BET](2931)", 0 ) GAME( 1991, mjvegasa, 0, mjvegasa, mjvegasa, royalmah_prgbank_state, init_mjvegasa, ROT0, "Dynax", "Mahjong Vegas (Japan, unprotected)", 0 ) -GAME( 1991, mjvegas, mjvegasa, mjvegasa, mjvegasa, royalmah_prgbank_state, init_mjvegasa, ROT0, "Dynax", "Mahjong Vegas (Japan)", MACHINE_NOT_WORKING ) +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 ) +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, 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 ) -GAME( 1999, cafepara, 0, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING ) +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, mjvegasa, mjvegasa, royalmah_prgbank_state, init_mjvegasa, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING ) // needs correct memory map and CPU ports -- cgit v1.2.3