From 8562d6be2096c254a3c2f449db9a8cc08626c4ed Mon Sep 17 00:00:00 2001 From: Luca Elia Date: Fri, 24 Jul 2015 22:22:07 +0200 Subject: [PATCH] New games added or promoted from NOT_WORKING status --------------------------------------------------- Mahjong Gorgeous Night (Japan, TSM003-01) [Dyq, Guru, Luca Elia] --- src/mame/arcade.lst | 9 +- src/mame/drivers/ddenlovr.c | 162 ++++++++++++++++++++++++++++++++++-- src/mame/drivers/dynax.c | 50 ++++++++--- 3 files changed, 202 insertions(+), 19 deletions(-) diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index 3089399ad4e..6544aa7c228 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -9746,11 +9746,12 @@ realbrko // "600" Billiard Academy Real Break 1998 (Europe) realbrkk // "600" Billiard Academy Real Break 1998 (Korea) janshinp // "700j" 1996 Dynax / Sigma dtoyoken // "700d" 1996 Dynax / Sigma -cafepara // 1999 Techno-Top -daimyojn // 2002 Dynax / Techno-Top -momotaro // 2004 Techno-Top +cafepara // "001" 1999 Techno-Top +mjgnight // "003" 2000 Techno-Top +daimyojn // "017" 2002 Dynax / Techno-Top +momotaro // "027" 2004 Techno-Top kotbinyo // 1997 Dynax / Shinwhajin -kotbinsp // 1997 Dynax / Shinwhajin +kotbinsp // "909" 1997 Dynax / Shinwhajin pkgnsh // "505" Pachinko Gindama Shoubu 1998 (Japan) pkgnshdx // "522" Pachinko Gindama Shoubu DX 1998 (Japan) diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 5f042d9ecc3..ed12dc4ada3 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -46,6 +46,7 @@ Year + Game Board CPU Sound Custom 98 Mj Chuukanejyo D11107218L1 Z80 AY8910 YM2413 M6295 70C160F009 98 Mj Reach Ippatsu KC80 YM2413 M6295 70C160F011 99 Mj Jong-Tei NM532-9902 Z80 YM2413 M6295 4L10FXXXX? +00 Mj Gorgeous Night TSM003-0002 Z80 YM2413 M6295 4L10FXXXX? 02 Mj Daimyojin TSM015-0111 Z80 YM2413 M6295 70C160F011 04 Mj Momotarou TSM015-0111? Z80 YM2413 M6295 70C160F011? -------------------------------------------------------------------------------------------------------------------- @@ -387,6 +388,9 @@ public: DECLARE_WRITE8_MEMBER(mjflove_coincounter_w); DECLARE_WRITE8_MEMBER(jongtei_dsw_keyb_w); DECLARE_READ8_MEMBER(jongtei_busy_r); + DECLARE_READ8_MEMBER(mjgnight_protection_r); + DECLARE_WRITE8_MEMBER(mjgnight_protection_w); + DECLARE_WRITE8_MEMBER(mjgnight_coincounter_w); DECLARE_READ8_MEMBER(sryudens_keyb_r); DECLARE_WRITE8_MEMBER(sryudens_coincounter_w); DECLARE_WRITE8_MEMBER(sryudens_rambank_w); @@ -3909,6 +3913,63 @@ static ADDRESS_MAP_START( jongtei_portmap, AS_IO, 8, ddenlovr_state ) ADDRESS_MAP_END +/*************************************************************************** + Mahjong Gorgeous Night +***************************************************************************/ + +WRITE8_MEMBER(ddenlovr_state::mjgnight_coincounter_w) +{ + m_prot_val = data; + + set_led_status(machine(), 0, data & 0x01); // led? 1 in-game, 0 in service mode / while booting + + coin_counter_w(machine(), 0, data & 0x04); // coin-out + coin_counter_w(machine(), 1, data & 0x08); // coin-in + + if (data & 0xf2) + logerror("%04x: warning, coin counter = %02x\n", space.device().safe_pc(), data); + +#ifdef MAME_DEBUG +// popmessage("COIN = %02x", data); +#endif +} + +WRITE8_MEMBER(ddenlovr_state::mjgnight_protection_w) +{ + m_prot_val = data; +} + +READ8_MEMBER(ddenlovr_state::mjgnight_protection_r) +{ + switch (m_prot_val) + { + case 0x12: return 0x12; + case 0xc0: return 0x01; + } + return m_prot_val; +} + +static ADDRESS_MAP_START( mjgnight_portmap, AS_IO, 8, ddenlovr_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x2c, 0x2c) AM_READWRITE(jongtei_busy_r, jongtei_okibank_w) + AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w) + AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w) + AM_RANGE(0x31, 0x31) AM_WRITE(jongtei_dsw_keyb_w) + AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r) + AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM") + AM_RANGE(0x41, 0x42) AM_READ(hanakanz_keyb_r) + AM_RANGE(0x46, 0x46) AM_WRITE(mjgnight_coincounter_w) + AM_RANGE(0x46, 0x46) AM_READ(hanakanz_rand_r) + AM_RANGE(0x47, 0x47) AM_READWRITE(mjgnight_protection_r, mjgnight_protection_w) + AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w) + AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w) + AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r) + AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2413", ym2413_device, write) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write) + AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write) +ADDRESS_MAP_END + + /*************************************************************************** Mahjong Seiryu Densetsu ***************************************************************************/ @@ -4858,7 +4919,7 @@ static INPUT_PORTS_START( htengoku ) PORT_DIPNAME( 0x08, 0x08, "Max Bet" ) PORT_DIPSETTING( 0x08, "5" ) PORT_DIPSETTING( 0x00, "10" ) - PORT_DIPNAME( 0x30, 0x30, "Min Rate To Start" ) + PORT_DIPNAME( 0x30, 0x30, "Min Rate To Play" ) PORT_DIPSETTING( 0x30, "1" ) PORT_DIPSETTING( 0x20, "2" ) PORT_DIPSETTING( 0x10, "3" ) @@ -6520,6 +6581,62 @@ static INPUT_PORTS_START( jongtei ) INPUT_PORTS_END +static INPUT_PORTS_START( mjgnight ) + + PORT_INCLUDE(jongtei) + + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x38, 0x38, "Min Rate To Play" ) + PORT_DIPSETTING( 0x38, "1" ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x28, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x18, "5" ) + PORT_DIPSETTING( 0x10, "6" ) + PORT_DIPSETTING( 0x08, "7" ) + PORT_DIPSETTING( 0x00, "8" ) + PORT_DIPNAME( 0xc0, 0xc0, "Payout" ) + PORT_DIPSETTING( 0xc0, "300" ) + PORT_DIPSETTING( 0x80, "500" ) + PORT_DIPSETTING( 0x40, "700" ) + PORT_DIPSETTING( 0x00, "1000" ) + + PORT_MODIFY("DSW4") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "In Game Music" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + +INPUT_PORTS_END + static INPUT_PORTS_START( mjchuuka ) @@ -10507,7 +10624,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_START( jongtei, ddenlovr_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) // ? + MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) // TMPZ84C015 MCFG_CPU_PROGRAM_MAP(hanakanz_map) MCFG_CPU_IO_MAP(jongtei_portmap) MCFG_CPU_VBLANK_INT_DRIVER("screen", ddenlovr_state, hanakanz_irq) @@ -10543,6 +10660,15 @@ static MACHINE_CONFIG_START( jongtei, ddenlovr_state ) MCFG_MSM6242_OUT_INT_HANDLER(WRITELINE(ddenlovr_state, hanakanz_rtc_irq)) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( mjgnight, jongtei ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_IO_MAP(mjgnight_portmap) + + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_SIZE(336, 256) + MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5-4, 256-11-1-4) +MACHINE_CONFIG_END + /*************************************************************************** Mahjong Seiryu Densetsu ***************************************************************************/ @@ -12711,6 +12837,31 @@ ROM_END /*************************************************************************** +Mahjong Gorgeous Night + +PCB is identical to Mahjong Jong-Tei, but with number: +TSM003-0002 Techno-Top, Limited + +***************************************************************************/ + +ROM_START( mjgnight ) + ROM_REGION( 0x90000+16*0x1000, "maincpu", 0 ) /* Z80 Code */ + ROM_LOAD( "00302.5b", 0x00000, 0x80000, CRC(7169611a) SHA1(90744799b57001a4f6d0767db639362f24d3797c) ) + ROM_RELOAD( 0x10000, 0x80000 ) + + ROM_REGION( 0x800000, "blitter", 0 ) /* blitter data */ + ROM_LOAD( "00303.7b", 0x000000, 0x200000, CRC(5b2f28a5) SHA1(12fff6d5736e58e32b0efd6d136952bc4c03e661) ) + ROM_LOAD( "00304.8b", 0x200000, 0x200000, CRC(82624fb6) SHA1(bea307a59b2dd8e6655c8fb02f1eaa6aa072cbdc) ) + ROM_LOAD( "00305.10b", 0x400000, 0x200000, CRC(4a5a6ac5) SHA1(ef89f56d9033eb2c633d5ee2ddd13f6325c61051) ) + ROM_LOAD( "00306.12b", 0x600000, 0x200000, CRC(143c4d24) SHA1(9a9544b98162240fbc0adb867eff8630b3cd1800) ) + + ROM_REGION( 0x200000, "oki", 0 ) /* Samples */ + ROM_LOAD( "00301.2a", 0x000000, 0x100000, CRC(f5a0953a) SHA1(be8847b581d7cf8d6e2c1361312e12e1513a9621) ) + ROM_RELOAD( 0x100000, 0x100000 ) +ROM_END + +/*************************************************************************** + Mahjong Seiryu Densetsu Dynax 1996 @@ -13015,9 +13166,9 @@ GAME( 1994, mjmyornt, 0, mjmyornt, mjmyornt, driver_device, 0, R GAME( 1994, mjmyuniv, 0, mjmyuniv, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious Universe", GAME_NO_COCKTAIL ) GAME( 1994, quiz365, 0, quiz365, quiz365, driver_device, 0, ROT0, "Nakanihon", "Quiz 365 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION ) GAME( 1994, quiz365t, quiz365, quiz365, quiz365, driver_device, 0, ROT0, "Nakanihon / Taito", "Quiz 365 (Hong Kong & Taiwan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION ) -GAME( 1994, rongrong, 0, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Europe)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS ) -GAME( 1994, rongrongj, rongrong, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS ) -GAME( 1994, rongrongg, rongrong, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Germany)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS ) +GAME( 1994, rongrong, 0, rongrong, rongrong, ddenlovr_state,rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Europe)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS ) +GAME( 1994, rongrongj, rongrong, rongrong, rongrong, ddenlovr_state,rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS ) +GAME( 1994, rongrongg, rongrong, rongrong, rongrong, ddenlovr_state,rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Germany)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS ) GAME( 1994, hparadis, 0, hparadis, hparadis, driver_device, 0, ROT0, "Dynax", "Super Hana Paradise (Japan)", GAME_NO_COCKTAIL ) GAME( 1995, hgokou, 0, hgokou, hgokou, driver_device, 0, ROT0, "Dynax (Alba license)", "Hanafuda Hana Gokou (Japan)", GAME_NO_COCKTAIL ) GAME( 1995, hgokbang, hgokou, hgokbang, hgokou, driver_device, 0, ROT0, "Dynax", "Hanafuda Hana Gokou Bangaihen (Japan)", GAME_NO_COCKTAIL ) @@ -13043,5 +13194,6 @@ GAME( 1997, hkagerou, 0, hkagerou, hkagerou, driver_device, 0, R GAME( 1998, mjchuuka, 0, mjchuuka, mjchuuka, driver_device, 0, ROT0, "Dynax", "Mahjong Chuukanejyo (China)", GAME_NO_COCKTAIL ) GAME( 1998, mjreach1, 0, mjreach1, mjreach1, driver_device, 0, ROT0, "Nihon System", "Mahjong Reach Ippatsu (Japan)", GAME_NO_COCKTAIL ) GAME( 1999, jongtei, 0, jongtei, jongtei, driver_device, 0, ROT0, "Dynax", "Mahjong Jong-Tei (Japan, NM532-01)", GAME_NO_COCKTAIL ) +GAME( 2000, mjgnight, 0, mjgnight, mjgnight, driver_device, 0, ROT0, "Techno-Top", "Mahjong Gorgeous Night (Japan, TSM003-01)", GAME_NO_COCKTAIL ) GAME( 2002, daimyojn, 0, daimyojn, daimyojn, driver_device, 0, ROT0, "Dynax / Techno-Top / Techno-Planning", "Mahjong Daimyojin (Japan, T017-PB-00)", GAME_NO_COCKTAIL ) GAME( 2004, momotaro, 0, daimyojn, daimyojn, ddenlovr_state,momotaro, ROT0, "Techno-Top", "Mahjong Momotarou (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 4d31b8125ea..34af2d93529 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -4441,7 +4441,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_START( hnoridur, dynax_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */ + MCFG_CPU_ADD("maincpu",Z80,XTAL_22MHz / 4) /* 5.5MHz */ MCFG_CPU_PROGRAM_MAP(hnoridur_mem_map) MCFG_CPU_IO_MAP(hnoridur_io_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dynax_state, sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */ @@ -4467,14 +4467,14 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 16) + MCFG_SOUND_ADD("aysnd", AY8910, XTAL_22MHz / 16) MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - MCFG_SOUND_ADD("ym2413", YM2413, 3579545) + MCFG_SOUND_ADD("ym2413", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_SOUND_ADD("msm", MSM5205, 384000) + MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(dynax_state, adpcm_int)) /* IRQ handler */ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) @@ -4811,7 +4811,7 @@ static MACHINE_CONFIG_DERIVED( mjelctrn, hnoridur ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mjembase, hnoridur ) - MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_MODIFY("maincpu") // TMPZ84015 MCFG_CPU_PROGRAM_MAP(nanajign_mem_map) MCFG_CPU_IO_MAP(mjembase_io_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dynax_state, mjelctrn_vblank_interrupt) /* IM 2 needs a vector on the data bus */ @@ -6267,12 +6267,42 @@ ROM_END /*************************************************************************** -Mahjong Electromagnetic Base -DYNAX D3803248L1 +Mahjong Electromagnetic Base (Dynax, 1989) -AY-3-8912?, MSM5205? -HD46505SP?, Dynax blitter? (rest of the chips are scratched) -4 x DSW8, 28-way connector +PCB Layout +---------- + +D3803248L1 +sticker: M6100524A + |--------------------------------------| + | TMS4461 17G032 3804 | +|-| TMS4461 3805 | +| TMS4461 TMS4461 3801 3806 | +| TMS4461 TMS4461 3802 3807 | +| 3803 3808 | +| PAL 3809 | +| 6845SP 381A | +| 2018 PAL | +| DSW4 384KHz 2018 DSW1 0.1UF| +| LM358 M5205 | +| LM358 YM2413 CPU TC5563| +| MB3712 AY-3-8912 | +|-|VOL DSW3 DSW2 | + |VOL 3.579545MHz 22MHz 3815 | + |--------------------------------------| +Notes: + CPU - surface scratched, clock input 11MHz [22/2], looks like TMPZ84015 + AY-3-8912 - clock 1.375MHz [22/16] + YM2413 - clock 3.579545MHz + M5205 - clock 384kHz + 6845SP - clock 2.75MHz [22/8], VSync pin - 60.1188Hz, HSync pin - 15.8112kHz + TMS4461 - 1Mx4-bit DRAM + 2018 - 2kx8-bit SRAM + TC5563 - 8kx8-bit SRAM + 17G032 - custom Dynax GFX chip + DSW1-4 - 8-position DIP switches + 0.1UF - 5.5v 0.1UF supercap + MB3712 - Fujitsu MB3712 AMP ***************************************************************************/