summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author HappyASR <HappyASR@gmail.com>2021-11-29 12:48:30 +0800
committer GitHub <noreply@github.com>2021-11-29 15:48:30 +1100
commit24e51dcff3a773280ccfd781bc7dea956dca5f57 (patch)
tree637057566314b27fcf094fb4c8d4ef45a0c40e50 /src
parent7d4c5c7848f817a254d134a757f9be94dbdaded3 (diff)
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]
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/dynax.cpp72
-rw-r--r--src/mame/includes/dynax.h3
-rw-r--r--src/mame/mame.lst4
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<tmp91640_device &>(*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