From 24e51dcff3a773280ccfd781bc7dea956dca5f57 Mon Sep 17 00:00:00 2001 From: HappyASR Date: Mon, 29 Nov 2021 12:48:30 +0800 Subject: dynax.cpp: Added TMP91P640N dump for Mahjong Ougon no Hai. [XingXing] Machines promoted to working ---------------------------- Mahjong Ougon no Hai (bootleg) [XingXing] New working clones ------------------ Mahjong Ougon no Hai (bootleg 1) [XingXing, little0] New clones marked as NOT_WORKING -------------------------------- Mahjong Ougon no Hai (bootleg 2) [XingXing, little0] --- src/mame/drivers/dynax.cpp | 72 ++++++++++++++++++++++++++++++++++++++++------ src/mame/includes/dynax.h | 3 ++ src/mame/mame.lst | 4 ++- 3 files changed, 70 insertions(+), 9 deletions(-) diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp index f20ad353730..14ab21bf32d 100644 --- a/src/mame/drivers/dynax.cpp +++ b/src/mame/drivers/dynax.cpp @@ -1040,6 +1040,7 @@ void dynax_state::tenkai_ipsel_w(offs_t offset, uint8_t data) void dynax_state::tenkai_ip_w(uint8_t data) { + m_input_mode = data; switch (m_input_sel) { case 0x0c: @@ -1070,6 +1071,7 @@ uint8_t dynax_state::tenkai_ip_r(offs_t offset) switch (m_input_sel) { case 0x00: + case 0x80: return ioport("COINS")->read(); // coins default: @@ -1093,8 +1095,13 @@ uint8_t dynax_state::tenkai_ip_r(offs_t offset) // player 1 case 0x82: + if (m_input_mode != 0xff) + return 0x00; if (m_keyb >= 5) + { logerror("%04x: unmapped keyb=%02x read\n", m_maincpu->pc(), m_keyb); + return 0x00; + } return ioport(keynames0[m_keyb++])->read(); default: @@ -1160,6 +1167,7 @@ void dynax_state::tenkai_p3_w(uint8_t data) m_rombank = ((data & 0x04) << 1) | (m_rombank & 0x07); tenkai_update_rombank(); } + void dynax_state::tenkai_p4_w(uint8_t data) { m_rombank = (m_rombank & 0x08) | ((data & 0x0e) >> 1); @@ -1333,6 +1341,14 @@ void dynax_state::gekisha_banked_map(address_map &map) map(0x10080, 0x10080).nopw(); // ? 0,1,6 (bit 0 = screen disable?) } +void dynax_state::ougonhai_p7_w(uint8_t data) +{ + m_tenkai_p5_val &= 0xf0; + + if (data & 0x0f) + m_tenkai_p5_val |= (1 << 3); +} + /*************************************************************************** Castle Of Dracula @@ -4122,6 +4138,7 @@ MACHINE_START_MEMBER(dynax_state,dynax) save_item(NAME(m_blitter2_irq_mask)); save_item(NAME(m_input_sel)); + save_item(NAME(m_input_mode)); save_item(NAME(m_dsw_sel)); save_item(NAME(m_keyb)); save_item(NAME(m_coins)); @@ -4145,6 +4162,7 @@ MACHINE_RESET_MEMBER(dynax_state,dynax) MACHINE_RESET_CALL_MEMBER(adpcm); m_input_sel = 0; + m_input_mode = 0; m_dsw_sel = 0; m_keyb = 0; m_coins = 0; @@ -4909,6 +4927,14 @@ void dynax_state::mjreach(machine_config &config) m_mainlatch->q_out_cb<0>().set(FUNC(dynax_state::flipscreen_w)); // not inverted } +void dynax_state::ougonhai(machine_config &config) +{ + tenkai(config); + + tmp91640_device &tmp = downcast(*m_maincpu); + tmp.port_write<7>().set(FUNC(dynax_state::ougonhai_p7_w)); +} + /*************************************************************************** Mahjong Gekisha ***************************************************************************/ @@ -7022,7 +7048,7 @@ ROM_START( ougonhai ) ROM_LOAD( "dynax_6201b.2c", 0x00000, 0x40000, CRC(18ef8eda) SHA1(48a3e4566b0a86db907602fd235c01d96eddec23) ) ROM_RELOAD( 0x10000, 0x40000 ) ROM_RELOAD( 0x50000, 0x40000 ) - ROM_LOAD( "ougonhai_tmp91p640n-10.5b", 0x00000, 0x04000, NO_DUMP ) + ROM_LOAD( "ougonhai_tmp91p640n-10.5b", 0x00000, 0x04000, BAD_DUMP CRC(eb7933b9) SHA1(c5c36231963681644d99130a79594cb61d0c09cc) ) ROM_REGION( 0x200000, "blitter", 0 ) // blitter data ROM_LOAD( "dynax_6202.11b", 0x000000, 0x80000, CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // = tydg002.u8 (ougonhaib) @@ -7062,13 +7088,12 @@ PCB Layout ***************************************************************************/ -ROM_START( ougonhaib ) - ROM_REGION( 0x90000, "maincpu", 0 ) +ROM_START( ougonhaib1 ) + ROM_REGION( 0x50000, "maincpu", 0 ) ROM_LOAD( "tydg001.u11", 0x00000, 0x40000, CRC(4ffa543c) SHA1(ab6ec7bd735358643f5186c6c983fa8b599fe84b) ) ROM_RELOAD( 0x10000, 0x40000 ) - ROM_RELOAD( 0x50000, 0x40000 ) - // tenkai internal rom is incompatible with the code of this set - ROM_LOAD( "ougonhaib_tmp91p640n-10.5b", 0x00000, 0x04000, NO_DUMP ) + ROM_LOAD( "ougonhai_tmp91p640n-10.5b", 0x00000, 0x04000, CRC(eb7933b9) SHA1(c5c36231963681644d99130a79594cb61d0c09cc) ) + ROM_REGION( 0x200000, "blitter", 0 ) // blitter data ROM_LOAD( "tydg002.u8", 0x000000, 0x80000, CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // = lzc-01.u6 [1/2] @@ -7077,6 +7102,35 @@ ROM_START( ougonhaib ) ROM_LOAD( "tydg005.u19", 0x180000, 0x80000, CRC(39e4e6f3) SHA1(5b543a5933446091d7cfd519d5a6f23047d8a9f2) ) // = taicom01.15b = lzc-01.u6 [2/2] ROM_END + +ROM_START( ougonhaib2 ) + ROM_REGION( 0x50000, "maincpu", 0 ) + ROM_LOAD( "hc03.u11", 0x00000, 0x40000, CRC(fc635d8a) SHA1(fb4cbe676022890c53e79cb173ceada5e22687f2) ) + ROM_RELOAD( 0x10000, 0x40000 ) + ROM_LOAD( "ougonhai_tmp91p640n-10.5b", 0x00000, 0x04000, CRC(eb7933b9) SHA1(c5c36231963681644d99130a79594cb61d0c09cc) ) + + ROM_REGION( 0x200000, "blitter", 0 ) // blitter data + ROM_LOAD( "hc02.u8", 0x000000, 0x80000, CRC(f656e314) SHA1(69069a3cb961179edb7ba9ada3f574f37e3cbd80) ) + ROM_CONTINUE(0x100000, 0x80000) + ROM_LOAD( "hc01.u19", 0x080000, 0x80000, CRC(57ce658b) SHA1(0608625ac112dea5d433f843230cf192623eddfc) ) + ROM_CONTINUE(0x180000, 0x80000) +ROM_END + + +ROM_START( ougonhaib3 ) + ROM_REGION( 0x50000, "maincpu", 0 ) + ROM_LOAD( "mg-1.u11", 0x00000, 0x40000, CRC(dd1ed979) SHA1(53ae532f789b184c7cd4d504408f4ad2c1492cfb) ) + ROM_RELOAD( 0x10000, 0x40000 ) + ROM_RELOAD( 0x10000, 0x38000 ) + ROM_CONTINUE(0, 0x4000) + ROM_IGNORE(0x4000) + + ROM_REGION( 0x200000, "blitter", 0 ) // blitter data + ROM_LOAD( "mc-1.u8", 0x000000, 0x100000, CRC(786698e3) SHA1(9ddf4e31f454fb3c7969b1433771e95a976de741) ) + ROM_LOAD( "mg-3.u21", 0x100000, 0x080000, CRC(8ef6a17a) SHA1(f4cbf91dd33b2a96a6a2ad67da3c9a69892e2405) ) + ROM_LOAD( "m27c512.u15", 0x180000, 0x010000, CRC(4adbb785) SHA1(6838de0a7fb0fb4d566b9ed33993a51c59fb4686) ) +ROM_END + /*************************************************************************** Mahjong Comic Gekijou Vol.1 @@ -7359,8 +7413,10 @@ GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, dynax_state, empty_init, GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg b)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg c)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, tenkaie, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Tenkaigen (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonhai, 0, tenkai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Ougon no Hai", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonhaib,ougonhai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhai, 0, ougonhai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Ougon no Hai", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhaib1,ougonhai,ougonhai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhaib2,ougonhai,ougonhai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhaib3,ougonhai,ougonhai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (bootleg set 3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) GAME( 1994, mjreach, 0, mjreach, mjreach, dynax_state, empty_init, ROT0, "bootleg / Dynax", "Mahjong Reach (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, cdracula, 0, cdracula, cdracula, dynax_state, empty_init, ROT0, "Yun Sung (Escape license)","Castle Of Dracula", MACHINE_SUPPORTS_SAVE ) // not a dynax board GAME( 1995, shpeng, 0, sprtmtch, drgpunch, dynax_state, empty_init, ROT0, "WSAC Systems?", "Sea Hunter Penguin", MACHINE_NO_COCKTAIL | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // not a dynax board. proms? diff --git a/src/mame/includes/dynax.h b/src/mame/includes/dynax.h index d3c852d88e9..82ea35558f5 100644 --- a/src/mame/includes/dynax.h +++ b/src/mame/includes/dynax.h @@ -53,6 +53,7 @@ public: void nanajign(machine_config &config); void cdracula(machine_config &config); void tenkai(machine_config &config); + void ougonhai(machine_config &config); void hjingi(machine_config &config); void mjreach(machine_config &config); void neruton(machine_config &config); @@ -95,6 +96,7 @@ protected: /* input / output */ uint8_t m_input_sel; + uint8_t m_input_mode; uint8_t m_dsw_sel; uint8_t m_keyb; uint8_t m_coins; @@ -169,6 +171,7 @@ private: void tenkai_p7_w(uint8_t data); void tenkai_p8_w(uint8_t data); uint8_t tenkai_p8_r(); + void ougonhai_p7_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(tenkai_6c_w); DECLARE_WRITE_LINE_MEMBER(tenkai_70_w); void tenkai_blit_romregion_w(uint8_t data); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 8964abf9f49..9e875aff10d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12735,7 +12735,9 @@ mjreach // (c) 1994 bootleg neruton // "45" Mahjong Neruton Haikujiradan 1990 Dynax nerutona // "45" Mahjong Neruton Haikujiradan 1990 Dynax ougonhai // "62" (c) 1991 Dynax -ougonhaib // "62" (c) 1991 bootleg +ougonhaib1 // "62" (c) 1991 bootleg +ougonhaib2 // "62" (c) 1991 bootleg +ougonhaib3 // "62" (c) 1991 bootleg quiztvqq // "64" Quiz TV Gassyuukoku Q&Q 1992 Dynax shpeng // (c) 1995 WSAC Systems intrgirl // (c) 1995 Barko -- cgit v1.2.3