From 20b7b1dab6d078c897419cab25dc3fa4bdbdd03e Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 5 Feb 2024 19:32:43 +0100 Subject: - dynax/dynax.cpp: proper address map for the ougonhai set, still needs correct MCU hookup - taito/galastrm.cpp: added PLDs dumps [f205v, Porchy] --- src/mame/dynax/dynax.cpp | 149 +++++++++++++++++++++++++++++--------------- src/mame/dynax/dynax.h | 4 ++ src/mame/taito/galastrm.cpp | 11 ++++ 3 files changed, 113 insertions(+), 51 deletions(-) diff --git a/src/mame/dynax/dynax.cpp b/src/mame/dynax/dynax.cpp index 4c46cac4812..3587fb5a987 100644 --- a/src/mame/dynax/dynax.cpp +++ b/src/mame/dynax/dynax.cpp @@ -1257,6 +1257,36 @@ void dynax_state::tenkai_banked_map(address_map &map) map(0x90000, 0x97fff).rw(FUNC(dynax_state::tenkai_palette_r), FUNC(dynax_state::tenkai_palette_w)); } +void dynax_state::ougonhai_map(address_map &map) // TODO: verify once the protection is beaten +{ + map(0x00000, 0x05fff).rom(); + map(0x06000, 0x07eff).ram().share("nvram"); + map(0x07fc0, 0x07fc0).r("aysnd", FUNC(ay8910_device::data_r)); // AY8910 + map(0x07fc1, 0x07fc1).w("aysnd", FUNC(ay8910_device::data_w)); // + map(0x07fc2, 0x07fc2).w("aysnd", FUNC(ay8910_device::address_w)); // + map(0x07fd8, 0x07fdf).w(m_mainlatch, FUNC(ls259_device::write_d0)); + map(0x07fe0, 0x07fef).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)); + map(0x07ff0, 0x07ff0).w(FUNC(dynax_state::tenkai_ipsel_w)); + map(0x07ff1, 0x07ff1).w(FUNC(dynax_state::tenkai_ip_w)); + map(0x07ff2, 0x07ff3).r(FUNC(dynax_state::tenkai_ip_r)); + map(0x08000, 0x0ffff).m(m_bankdev, FUNC(address_map_bank_device::amap8)); + // map(0x10020, 0x10021).w("ym2413", FUNC(ym2413_device::write)); // TODO + map(0x10040, 0x10040).w(m_blitter, FUNC(dynax_blitter_rev2_device::pen_w)); // Destination Pen + map(0x10044, 0x10044).w(FUNC(dynax_state::tenkai_blit_dest_w)); // Destination Layer + map(0x10048, 0x10048).w(FUNC(dynax_state::tenkai_blit_palette23_w)); // Layers Palettes + map(0x1004c, 0x1004c).w(FUNC(dynax_state::tenkai_blit_palette01_w)); // + map(0x10050, 0x10050).w(FUNC(dynax_state::tenkai_priority_w)); // layer priority and enable + map(0x10054, 0x10054).w(FUNC(dynax_state::dynax_blit_backpen_w)); // Background Color + map(0x10058, 0x10058).w(FUNC(dynax_state::tenkai_blit_romregion_w)); // Blitter ROM bank + map(0x100e1, 0x100e7).w(m_blitter, FUNC(dynax_blitter_rev2_device::regs_w)); // Blitter (inverted scroll values) +} + +void dynax_state::ougonhai_banked_map(address_map &map) +{ + map(0x00000, 0x3ffff).rom().region("maincpu", 0x10000); + map(0x90000, 0x97fff).rw(FUNC(dynax_state::tenkai_palette_r), FUNC(dynax_state::tenkai_palette_w)); +} + /*************************************************************************** Mahjong Gekisha ***************************************************************************/ @@ -4937,7 +4967,7 @@ 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) +void dynax_state::ougonhaib1(machine_config &config) { tenkai(config); @@ -4945,6 +4975,23 @@ void dynax_state::ougonhai(machine_config &config) tmp.port_write<7>().set(FUNC(dynax_state::ougonhai_p7_w)); } +void dynax_state::ougonhai(machine_config &config) +{ + tenkai(config); + + tmp90840_device &tmp(TMP90840(config.replace(), m_maincpu, 21472700 / 2)); + tmp.set_addrmap(AS_PROGRAM, &dynax_state::ougonhai_map); + tmp.port_read<3>().set(FUNC(dynax_state::tenkai_p3_r)); + tmp.port_write<3>().set(FUNC(dynax_state::tenkai_p3_w)); + tmp.port_write<4>().set(FUNC(dynax_state::tenkai_p4_w)); + tmp.port_read<5>().set(FUNC(dynax_state::tenkai_p5_r)); + tmp.port_write<6>().set(FUNC(dynax_state::tenkai_p6_w)); + tmp.port_write<7>().set(FUNC(dynax_state::ougonhai_p7_w)); + tmp.port_read<8>().set(FUNC(dynax_state::tenkai_p8_r)); + + m_bankdev->set_map(&dynax_state::ougonhai_banked_map); +} + /*************************************************************************** Mahjong Gekisha ***************************************************************************/ @@ -7035,7 +7082,7 @@ ROM_START( ougonhaib3 ) 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( "mg-3.u21", 0x100000, 0x080000, CRC(8ef6a17a) SHA1(f4cbf91dd33b2a96a6a2ad67da3c9a69892e2405) ) // BADADDR xx-xxxxxxxxxxxxxxxx ROM_LOAD( "m27c512.u15", 0x180000, 0x010000, CRC(4adbb785) SHA1(6838de0a7fb0fb4d566b9ed33993a51c59fb4686) ) ROM_END @@ -7279,53 +7326,53 @@ ROM_END ***************************************************************************/ -GAME( 1988, janyuki, 0, janyuki, janyuki, jantouki_state, empty_init, ROT0, "Dynax", "Jong Yu Ki (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hanamai, 0, hanamai, hanamai, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana no Mai (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, hnkochou, hanamai, hanamai, hnkochou, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Kochou (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hjingi, 0, hjingi, hjingi, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Jingi (Japan set 1, Bet)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 -GAME( 1990, hjingia, hjingi, hjingi, hjingi, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Jingi (Japan set 2, Bet)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 -GAME( 1989, hnoridur, hjingi, hnoridur, hnoridur, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Oriduru (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, drgpunch, 0, sprtmtch, drgpunch, dynax_state, empty_init, ROT0, "Dynax", "Dragon Punch (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, sprtmtch, drgpunch, sprtmtch, sprtmtch, dynax_state, empty_init, ROT0, "Dynax (Fabtek license)", "Sports Match", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, janyuki, 0, janyuki, janyuki, jantouki_state, empty_init, ROT0, "Dynax", "Jong Yu Ki (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hanamai, 0, hanamai, hanamai, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana no Mai (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, hnkochou, hanamai, hanamai, hnkochou, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Kochou (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hjingi, 0, hjingi, hjingi, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Jingi (Japan set 1, Bet)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 +GAME( 1990, hjingia, hjingi, hjingi, hjingi, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Jingi (Japan set 2, Bet)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 +GAME( 1989, hnoridur, hjingi, hnoridur, hnoridur, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana Oriduru (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, drgpunch, 0, sprtmtch, drgpunch, dynax_state, empty_init, ROT0, "Dynax", "Dragon Punch (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, sprtmtch, drgpunch, sprtmtch, sprtmtch, dynax_state, empty_init, ROT0, "Dynax (Fabtek license)", "Sports Match", MACHINE_SUPPORTS_SAVE ) // these 3 are Korean hacks / bootlegs of Dragon Punch / Sports Match -GAME( 1994, maya, 0, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "Promat", "Maya (set 1)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract -GAME( 1994, mayaa, maya, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "Promat", "Maya (set 2)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract -GAME( 1994, mayab, maya, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "Promat", "Maya (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mayac, maya, sprtmtch, drgpunch, blktouch_state, init_mayac, ROT0, "Promat", "Maya (set 4, clean)", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, inca, 0, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "", "Inca", MACHINE_SUPPORTS_SAVE ) // PCB by "Barko", game too? -GAME( 199?, blktouch, 0, sprtmtch, drgpunch, blktouch_state, init_blktouch, ROT0, "Yang Gi Co Ltd.", "Black Touch (Korea)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, mjfriday, 0, mjfriday, mjfriday, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Friday (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gekisha, 0, gekisha, gekisha, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Gekisha (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mcnpshnt, 0, mcnpshnt, mcnpshnt, dynax_adpcm_state, empty_init, ROT0, "Dynax", "Mahjong Campus Hunting (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, 7jigen, 0, nanajign, nanajign, dynax_adpcm_state, empty_init, ROT180, "Dynax", "7jigen no Youseitachi - Mahjong 7 Dimensions (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, jantouki, 0, jantouki, jantouki, jantouki_state, empty_init, ROT0, "Dynax", "Jong Tou Ki (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjdialq2, 0, mjdialq2, mjdialq2, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Dial Q2 (Japan set 1)", MACHINE_SUPPORTS_SAVE ) // "VER. 1.00" at bootup -GAME( 1991, mjdialq2a,mjdialq2, mjdialq2, mjdialq2, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Dial Q2 (Japan set 2)", MACHINE_SUPPORTS_SAVE ) // "VER. 1.00" at bootup -GAME( 1991, yarunara, 0, yarunara, yarunara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Mahjong Yarunara (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjangels, 0, mjangels, yarunara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Mahjong Angels - Comic Theater Vol.2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, warahana, 0, mjangels, warahana, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Warai no Hana Tenshi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quiztvqq, 0, quiztvqq, quiztvqq, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Quiz TV Gassyuukoku Q&Q (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mjelctrn, 0, mjelctrn, mjelctrn, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 4, Japan, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjembase, mjelctrn, mjembase, mjembase, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electromagnetic Base (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan set 1, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan set 2, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan bootleg, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, majxtal7, 7jigen, neruton, majxtal7, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan, Bet)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // reuses a subset of 7jigen assets -GAME( 1990, neruton, 0, neruton, neruton, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, nerutona, neruton, neruton, neruton, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, hanayara, 0, yarunara, hanayara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana wo Yaraneba! (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjcomv1, 0, mjangels, yarunara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Mahjong Comic Gekijou Vol.1 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkai, 0, tenkai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Tenkaigen (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen Part 2 (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // FIXME: check if Japan & Bet -GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen (Japan bootleg b, Bet)", MACHINE_SUPPORTS_SAVE ) // FIXME: check if "b" is a PCB rev. letter -GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen (Japan bootleg c, Bet)", MACHINE_SUPPORTS_SAVE ) // FIXME: check if "c" is a PCB rev. letter -GAME( 1991, tenkaie, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Tenkaigen (Japan set 2, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonhai, 0, ougonhai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Ougon no Hai (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // FIXME: correct TMP90840 hookup, confirm being a Bet game as well -GAME( 1991, ougonhaib1,ougonhai,ougonhai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (Japan bootleg set 1, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonhaib2,ougonhai,ougonhai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (Japan bootleg set 2, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonhaib3,ougonhai,ougonhai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (Japan bootleg set 3, Bet)", 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, cdracula_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? -GAME( 1995, intrgirl, 0, sprtmtch, drgpunch, dynax_state, empty_init, ROT0, "Barko", "Intergirl", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // not a dynax board. +GAME( 1994, maya, 0, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "Promat", "Maya (set 1)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract +GAME( 1994, mayaa, maya, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "Promat", "Maya (set 2)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract +GAME( 1994, mayab, maya, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "Promat", "Maya (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mayac, maya, sprtmtch, drgpunch, blktouch_state, init_mayac, ROT0, "Promat", "Maya (set 4, clean)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, inca, 0, sprtmtch, drgpunch, blktouch_state, init_maya, ROT0, "", "Inca", MACHINE_SUPPORTS_SAVE ) // PCB by "Barko", game too? +GAME( 199?, blktouch, 0, sprtmtch, drgpunch, blktouch_state, init_blktouch, ROT0, "Yang Gi Co Ltd.", "Black Touch (Korea)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, mjfriday, 0, mjfriday, mjfriday, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Friday (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gekisha, 0, gekisha, gekisha, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Gekisha (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mcnpshnt, 0, mcnpshnt, mcnpshnt, dynax_adpcm_state, empty_init, ROT0, "Dynax", "Mahjong Campus Hunting (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 7jigen, 0, nanajign, nanajign, dynax_adpcm_state, empty_init, ROT180, "Dynax", "7jigen no Youseitachi - Mahjong 7 Dimensions (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, jantouki, 0, jantouki, jantouki, jantouki_state, empty_init, ROT0, "Dynax", "Jong Tou Ki (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjdialq2, 0, mjdialq2, mjdialq2, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Dial Q2 (Japan set 1)", MACHINE_SUPPORTS_SAVE ) // "VER. 1.00" at bootup +GAME( 1991, mjdialq2a, mjdialq2, mjdialq2, mjdialq2, dynax_state, empty_init, ROT180, "Dynax", "Mahjong Dial Q2 (Japan set 2)", MACHINE_SUPPORTS_SAVE ) // "VER. 1.00" at bootup +GAME( 1991, yarunara, 0, yarunara, yarunara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Mahjong Yarunara (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjangels, 0, mjangels, yarunara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Mahjong Angels - Comic Theater Vol.2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, warahana, 0, mjangels, warahana, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Warai no Hana Tenshi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quiztvqq, 0, quiztvqq, quiztvqq, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Quiz TV Gassyuukoku Q&Q (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mjelctrn, 0, mjelctrn, mjelctrn, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 4, Japan, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjembase, mjelctrn, mjembase, mjembase, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electromagnetic Base (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan set 1, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan set 2, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan bootleg, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, majxtal7, 7jigen, neruton, majxtal7, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan, Bet)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // reuses a subset of 7jigen assets +GAME( 1990, neruton, 0, neruton, neruton, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, nerutona, neruton, neruton, neruton, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, hanayara, 0, yarunara, hanayara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Hana wo Yaraneba! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjcomv1, 0, mjangels, yarunara, dynax_adpcm_state, empty_init, ROT180, "Dynax", "Mahjong Comic Gekijou Vol.1 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkai, 0, tenkai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Tenkaigen (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen Part 2 (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // FIXME: check if Japan & Bet +GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen (Japan bootleg b, Bet)", MACHINE_SUPPORTS_SAVE ) // FIXME: check if "b" is a PCB rev. letter +GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Tenkaigen (Japan bootleg c, Bet)", MACHINE_SUPPORTS_SAVE ) // FIXME: check if "c" is a PCB rev. letter +GAME( 1991, tenkaie, tenkai, tenkai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Tenkaigen (Japan set 2, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhai, 0, ougonhai, tenkai, dynax_state, empty_init, ROT0, "Dynax", "Mahjong Ougon no Hai (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // FIXME: correct TMP90840 hookup, confirm being a Bet game as well +GAME( 1991, ougonhaib1, ougonhai, ougonhaib1, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (Japan bootleg set 1, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhaib2, ougonhai, ougonhaib1, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (Japan bootleg set 2, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonhaib3, ougonhai, ougonhaib1, tenkai, dynax_state, empty_init, ROT0, "bootleg", "Mahjong Ougon no Hai (Japan bootleg set 3, Bet)", 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, cdracula_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? +GAME( 1995, intrgirl, 0, sprtmtch, drgpunch, dynax_state, empty_init, ROT0, "Barko", "Intergirl", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // not a dynax board. diff --git a/src/mame/dynax/dynax.h b/src/mame/dynax/dynax.h index 170a44235c7..1505131d443 100644 --- a/src/mame/dynax/dynax.h +++ b/src/mame/dynax/dynax.h @@ -43,6 +43,7 @@ public: void majrjhdx(machine_config &config); void tenkai(machine_config &config); void ougonhai(machine_config &config); + void ougonhaib1(machine_config &config); void mjreach(machine_config &config); void mjdialq2(machine_config &config); void sprtmtch(machine_config &config); @@ -209,6 +210,9 @@ private: void tenkai_map(address_map &map) ATTR_COLD; void tenkai_banked_map(address_map &map) ATTR_COLD; + void ougonhai_map(address_map &map) ATTR_COLD; + void ougonhai_banked_map(address_map &map) ATTR_COLD; + void gekisha_map(address_map &map) ATTR_COLD; void gekisha_banked_map(address_map &map) ATTR_COLD; diff --git a/src/mame/taito/galastrm.cpp b/src/mame/taito/galastrm.cpp index 98234a3f243..072ca51a67f 100644 --- a/src/mame/taito/galastrm.cpp +++ b/src/mame/taito/galastrm.cpp @@ -918,6 +918,17 @@ ROM_START( galastrm ) ROM_REGION16_BE( 0x80, "eeprom", 0 ) ROM_LOAD16_WORD( "eeprom-galastrm.bin", 0x0000, 0x0080, CRC(94efa7a6) SHA1(5870b988cb364065e8bd779efbdadca8d3ffc17c) ) + + ROM_REGION( 0x1200, "plds", ROMREGION_ERASE00 ) + ROM_LOAD( "c99-16.bin", 0x0000, 0x0104, CRC(9340e376) SHA1(3795063e44a1da5947e8695532b6d6277af5e873) ) + ROM_LOAD( "c99-17.bin", 0x0200, 0x0144, CRC(81d55be5) SHA1(dc7302eced7c5a519aa882a1e11cf44809c2fc50) ) + ROM_LOAD( "c99-18.bin", 0x0400, 0x0149, CRC(eca1501d) SHA1(d62823a77d1a76921a07889d8ded593b03cc3eca) ) + ROM_LOAD( "c99-19.bin", 0x0600, 0x0104, CRC(6310ef1d) SHA1(cb61b0a5fe9aca42a06090c0332b8e013f1c4d8f) ) + ROM_LOAD( "c99-20.bin", 0x0800, 0x0144, CRC(5d527b8b) SHA1(7e7d8a5c37d602b4e802e4d18edafb31f6182b1a) ) + ROM_LOAD( "c99-21.bin", 0x0a00, 0x0104, CRC(eb2407a1) SHA1(bfe2a06ccadac3205ae6d9cd85d434ab12088ce9) ) + ROM_LOAD( "c99-24.bin", 0x0c00, 0x0144, CRC(a0ec9b49) SHA1(2f283a271a4f47d28a9421c7dadf272a6b4d167e) ) + ROM_LOAD( "c99-25.bin", 0x0e00, 0x0144, CRC(d7cbb8be) SHA1(daeb1cb3b5a5c0445be8b18f9e80f048e1818fda) ) + ROM_LOAD( "c99-26.bin", 0x1000, 0x0144, CRC(d65cbcb9) SHA1(e4579d15d9fbc300b736948dbc322c1c6aa4aa2a) ) ROM_END } // anonymous namespace -- cgit v1.2.3