From 08889a8007a1efa867db3c09547bd9fda85958d6 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Wed, 4 Mar 2009 19:42:21 +0000 Subject: [PATCH] New games added or promoted from NOT_WORKING status --------------------------------------------------- Mahjong Club [Yasuhiro Ogawa] ======================================================================== I wonder if this game is a bootleg or just a rip-off..."XEX" logo is pretty much similar to the Dynax one... --- src/mame/drivers/royalmah.c | 204 +++++++++++++++++++++++++++++++++++- src/mame/mamedriv.c | 1 + 2 files changed, 204 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index 8a0a4e95bad..0bb4543e88f 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -380,8 +380,39 @@ static WRITE8_HANDLER ( daisyari_bank_w ) // printf("%08x %02x\n",address,data); memory_set_bankptr(space->machine, 1,&rom[address]); + + /* bit 1 used too but unknown purpose. */ } +static READ8_HANDLER ( mjclub_dsw_r ) +{ + switch (dsw_select) + { +// case 0x00: return input_port_read(space->machine, "DSW4"); + case 0x40: return input_port_read(space->machine, "DSW2"); + case 0x80: return input_port_read(space->machine, "DSW3"); + case 0xc0: return input_port_read(space->machine, "DSW4"); + } + + return 0; +} + +static WRITE8_HANDLER ( mjclub_bank_w ) +{ + UINT8 *rom = memory_region(space->machine, "maincpu"); + int address; + + dsw_select = data & 0xc0; + + data &= 0x0f; + + address = 0x10000 + data * 0x8000; +// printf("%08x\n",address); + + memory_set_bankptr(space->machine, 1,&rom[address]); + + /* bit 5 used too but unknown purpose. */ +} static ADDRESS_MAP_START( royalmah_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -463,6 +494,15 @@ static ADDRESS_MAP_START( daisyari_iomap, ADDRESS_SPACE_IO, 8 ) AM_RANGE( 0xc0, 0xc0 ) AM_READWRITE( daisyari_dsw_r, daisyari_bank_w ) ADDRESS_MAP_END +static ADDRESS_MAP_START( mjclub_iomap, ADDRESS_SPACE_IO, 8 ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE( 0x00, 0x00 ) AM_READWRITE( mjclub_dsw_r, mjclub_bank_w ) + AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "ay", ay8910_r ) + AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "ay", ay8910_data_address_w) + AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE( royalmah_palbank_w ) + AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE( input_port_select_w ) +ADDRESS_MAP_END + static ADDRESS_MAP_START( mjdiplob_iomap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "ay", ay8910_r ) @@ -1491,6 +1531,119 @@ static INPUT_PORTS_START( daisyari ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) INPUT_PORTS_END +/* TODO: check dip-switches */ +static INPUT_PORTS_START( mjclub ) + PORT_INCLUDE( mjctrl2 ) + + PORT_START("DSW1") + PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" ) + PORT_DIPSETTING( 0x0f, "96%" ) + PORT_DIPSETTING( 0x0e, "93%" ) + PORT_DIPSETTING( 0x0d, "90%" ) + PORT_DIPSETTING( 0x0c, "87%" ) + PORT_DIPSETTING( 0x0b, "84%" ) + PORT_DIPSETTING( 0x0a, "81%" ) + PORT_DIPSETTING( 0x09, "78%" ) + PORT_DIPSETTING( 0x08, "75%" ) + PORT_DIPSETTING( 0x07, "71%" ) + PORT_DIPSETTING( 0x06, "68%" ) + PORT_DIPSETTING( 0x05, "65%" ) + PORT_DIPSETTING( 0x04, "62%" ) + PORT_DIPSETTING( 0x03, "59%" ) + PORT_DIPSETTING( 0x02, "56%" ) + PORT_DIPSETTING( 0x01, "53%" ) + PORT_DIPSETTING( 0x00, "50%" ) + PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" ) + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPSETTING( 0x20, "10" ) + PORT_DIPSETTING( 0x30, "20" ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "Debug mode" ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSW3") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Full Tests" ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSW2") + PORT_DIPNAME( 0x01, 0x00, "DSW2" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("DSW4") + PORT_DIPNAME( 0x01, 0x00, "DSW4" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "Background Color" ) + PORT_DIPSETTING( 0x00, "White" ) + PORT_DIPSETTING( 0x80, "Green" ) +INPUT_PORTS_END + static INPUT_PORTS_START( mjdiplob ) PORT_INCLUDE( mjctrl2 ) @@ -2532,6 +2685,12 @@ static MACHINE_DRIVER_START( daisyari ) MDRV_CPU_IO_MAP(daisyari_iomap,0) MACHINE_DRIVER_END +static MACHINE_DRIVER_START( mjclub ) + MDRV_IMPORT_FROM(royalmah) + MDRV_CPU_REPLACE("maincpu", Z80, 8000000/2) /* 4 MHz ? */ + MDRV_CPU_IO_MAP(mjclub_iomap,0) +MACHINE_DRIVER_END + static MACHINE_DRIVER_START( ippatsu ) MDRV_IMPORT_FROM(dondenmj) MDRV_CPU_MODIFY("maincpu") @@ -2870,6 +3029,13 @@ ROM_START( makaijan ) ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(97e1defe) SHA1(b5002218b2292f7623dd9a205ce183dedeec03f1) ) ROM_END +/*************************************************************************** + +Daisyarin +(c)1989 Best System + +***************************************************************************/ + ROM_START( daisyari ) ROM_REGION( 0x50000, "maincpu", 0 ) ROM_LOAD( "1a.bin", 0x00000, 0x10000, CRC(7d14f90c) SHA1(742684d0785a93a45de0467e004db00531d016e2) ) @@ -2883,6 +3049,41 @@ ROM_START( daisyari ) ROM_LOAD( "6k.bin", 0x0000, 0x0020, CRC(c1e427df) SHA1(9a9980d93dff4b87a940398b18277acaf946eeab) ) ROM_END +/*************************************************************************** + +Mahjong Club +(c)XEX + +Royal mahjong subboard + +1 +3 +4 +5 +63s081n + +6116 RAM +surface scrached 40pin DIP (Z80?) +4.000MHz + +***************************************************************************/ + +ROM_START( mjclub ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "5", 0x00000, 0x10000, CRC(cd148465) SHA1(42d1848656e461cfbf3fc0ba88ef8f4e67425f8c) ) + /* bank switched ROMs follow */ + ROM_COPY( "maincpu", 0x00000, 0x10000, 0x10000 ) + ROM_LOAD( "1", 0x50000, 0x10000, CRC(d0131f4b) SHA1(aac40b47b48f0ebfb07aaf17cb2a080fdcaa4697) ) + ROM_LOAD( "3", 0x60000, 0x10000, CRC(25628c38) SHA1(5166934c488c2f91bd6026c7896ad3536727d950) ) + ROM_LOAD( "4", 0x70000, 0x10000, CRC(a6ada333) SHA1(5fd44bf298a6f327118b98641af1aa0910519ded) ) + ROM_COPY( "maincpu", 0x50000, 0x40000, 0x10000 ) /*guess*/ + ROM_COPY( "maincpu", 0x60000, 0x30000, 0x10000 ) + ROM_COPY( "maincpu", 0x70000, 0x20000, 0x10000 ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "63s081n", 0x0000, 0x0020, CRC(4add90c5) SHA1(de14abcba6eee53e73801ff12c45a75e875e6ca3) ) +ROM_END + ROM_START( majs101b ) ROM_REGION( 0x90000, "maincpu", 0 ) ROM_LOAD( "171.3e", 0x00000, 0x10000, CRC(fa3c553b) SHA1(fda212559c4d55610a12ad2927afe21f9069c7b6) ) @@ -3884,7 +4085,8 @@ GAME( 1986, ippatsu, 0, ippatsu, ippatsu, ippatsu, ROT0, "Public Sof GAME( 1986, suzume, 0, suzume, suzume, 0, ROT0, "Dyna Electronics", "Watashiha Suzumechan (Japan)", 0 ) GAME( 1986, mjsiyoub, 0, royalmah, royalmah, 0, ROT0, "Visco", "Mahjong Shiyou (Japan)", GAME_NOT_WORKING ) GAME( 1986, mjsenka, 0, royalmah, royalmah, 0, ROT0, "Visco", "Mahjong Senka (Japan)", GAME_NOT_WORKING ) -GAME( 1986, mjyarou, 0, royalmah, royalmah, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan", GAME_NOT_WORKING ) +GAME( 1986, mjyarou, 0, royalmah, royalmah, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan)", GAME_NOT_WORKING ) +GAME( 1986?, mjclub, 0, mjclub, mjclub, 0, ROT0, "Xex", "Mahjong Club [BET] (Japan)", 0 ) GAME( 1987, mjdiplob, 0, mjdiplob, mjdiplob, 0, ROT0, "Dynax", "Mahjong Diplomat [BET] (Japan)", 0 ) GAME( 1987, tontonb, 0, tontonb, tontonb, 0, ROT0, "Dynax", "Tonton [BET] (Japan)", 0 ) GAME( 1987, makaijan, 0, makaijan, makaijan, 0, ROT0, "Dynax", "Makaijan [BET] (Japan)", 0 ) diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c index e0cec0ed0f5..555246753b2 100644 --- a/src/mame/mamedriv.c +++ b/src/mame/mamedriv.c @@ -7470,6 +7470,7 @@ Other Sun games DRIVER( mjsiyoub ) /* (c) 1986 Visco */ DRIVER( mjsenka ) /* (c) 1986 Visco */ DRIVER( mjyarou ) /* (c) 1986 Visco / Video System */ + DRIVER( mjclub ) /* (c) 1986 Xex */ DRIVER( daisyari ) /* (c) 1989 Best System */ DRIVER( suzume ) /* ?? (c) 1986 Dyna Electronics */ DRIVER( hnayayoi ) /* "02" (c) 1987 Dyna Electronics */