diff options
Diffstat (limited to 'src/mame/drivers/dynax.c')
-rw-r--r-- | src/mame/drivers/dynax.c | 370 |
1 files changed, 280 insertions, 90 deletions
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index d575a70bcf2..4676ba1983a 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -24,6 +24,7 @@ Year + Game Main Board Sub Board CPU Sound 90 Mj Campus Hunting D3312108L1-1 D23SUB1 Z80 AY8912 YM2413 M5205 RAM 90 Hana Jingi no number D3312108L1-2 Z80 AY8912 YM2413 M5205 RAM 90 7jigen no Youseitachi D3707198L1 D23SUB1 Z80 AY8912 YM2413 M5205 RAM +89 Mj Electromagnetic Base D3803248L1 Z80 AY8912 YM2413 M5205 RAM 90 Mj Electron Base Z80 AY8912 YM2413 RAM 90 Mj X-Tal/Diamond 7 D4005208L1-1 D23SUB Z80 AY8912 YM2413 M5205 RAM 90 Mj Neruton Haikujiradan D4005208L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 RAM @@ -33,6 +34,7 @@ Year + Game Main Board Sub Board CPU Sound 91 Mj Angels D5512068L1-1 D6107068L-1 Z80 AY8912 YM2413 M5205 RAM 91 Mj Comic Gekijou V.1 D5512068L1-1 D6107068L-1 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001, Battery 91 Mj Tenkaigen TLCS AY8910 YM2413 M6242 RAM Protection, Battery +91 Mj Ougon No Pai D6209038L1-0 TLCS AY8910 YM2413 RAM Undumped TMP91P640 Code, Battery 92 Quiz TV Gassyuukoku D5512068L1-2 D6410288L-1 Z80 AY8912 YM2413 M5205 RAM 92 Hanafuda Hana Tengoku D6502208L1 D6107068L-1 Z80 AY8910 YM2413 M6242 RAM 94 Mj Reach (bootleg) bootleg TLCS AY8910 YM2413 M6242 PROM Battery @@ -555,7 +557,7 @@ static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state ) AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write) // - AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1 + AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW0 AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen @@ -640,7 +642,7 @@ static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state ) AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write) // - AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1 + AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW0 AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // @@ -1044,7 +1046,7 @@ READ8_MEMBER(dynax_state::mjelctrn_keyboard_1_r) READ8_MEMBER(dynax_state::mjelctrn_dsw_r) { int dsw = (m_keyb & 0xc0) >> 6; - static const char *const dswnames[] = { "DSW0", "DSW1", "DSW3", "DSW4" }; + static const char *const dswnames[] = { "DSW0", "DSW1", "DSW2", "DSW3" }; return ioport(dswnames[dsw])->read(); } @@ -1092,6 +1094,39 @@ static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8, dynax_state ) AM_RANGE( 0xe7, 0xe7 ) AM_WRITE(hnoridur_palbank_w) ADDRESS_MAP_END +static ADDRESS_MAP_START( mjembase_io_map, AS_IO, 8, dynax_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ym2413", ym2413_device, write) // + AM_RANGE( 0x06, 0x06 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, dsw0 + AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // + AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // + AM_RANGE( 0x11, 0x12 ) AM_WRITE(mjelctrn_blitter_ack_w) //? + AM_RANGE( 0x1c, 0x1c ) AM_READ_PORT("DSW1") + AM_RANGE( 0x1e, 0x1e ) AM_READ_PORT("DSW2") + AM_RANGE( 0x20, 0x20 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select + AM_RANGE( 0x21, 0x21 ) AM_READ_PORT("COINS") // Coins + AM_RANGE( 0x22, 0x22 ) AM_READ(mjelctrn_keyboard_1_r) // P2 + AM_RANGE( 0x23, 0x23 ) AM_READ(hanamai_keyboard_0_r) // P1 + AM_RANGE( 0x24, 0x24 ) AM_READ_PORT("DSW3") +// AM_RANGE( 0x40, 0x40 ) AM_WRITENOP // CRT Controller +// AM_RANGE( 0x41, 0x41 ) AM_WRITENOP // CRT Controller + AM_RANGE( 0x61, 0x67 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter + AM_RANGE( 0x80, 0x80 ) AM_WRITE(dynax_flipscreen_w) // Flip Screen + AM_RANGE( 0x81, 0x81 ) AM_WRITE(hanamai_layer_half_w) // half of the interleaved layer to write to + AM_RANGE( 0x82, 0x82 ) AM_WRITE(hnoridur_layer_half2_w) // + AM_RANGE( 0x83, 0x83 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters + AM_RANGE( 0x84, 0x84 ) AM_WRITE(dynax_coincounter_1_w) // + AM_RANGE( 0xa0, 0xa0 ) AM_WRITE(hnoridur_rombank_w) // BANK ROM Select + AM_RANGE( 0xc0, 0xc0 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen + AM_RANGE( 0xc1, 0xc1 ) AM_WRITE(mjembase_blit_dest_w) // Destination Layer + AM_RANGE( 0xc2, 0xc2 ) AM_WRITE(dynax_blit_palette01_w) // Layers Palettes + AM_RANGE( 0xc3, 0xc3 ) AM_WRITE(mjembase_blit_palette23_w) // + AM_RANGE( 0xc4, 0xc4 ) AM_WRITE(mjembase_priority_w) // layer priority and enable + AM_RANGE( 0xc5, 0xc5 ) AM_WRITE(dynax_blit_backpen_w) // Background Color + AM_RANGE( 0xc6, 0xc6 ) AM_WRITE(yarunara_blit_romregion_w) // Blitter ROM bank + AM_RANGE( 0xc7, 0xc7 ) AM_WRITE(hnoridur_palbank_w) +ADDRESS_MAP_END + /*************************************************************************** Mahjong Tenkaigen @@ -3026,9 +3061,9 @@ static INPUT_PORTS_START( jantouki ) PORT_DIPSETTING( 0x02, "11:00" ) PORT_DIPSETTING( 0x01, "11:30" ) PORT_DIPSETTING( 0x00, "12:00" ) - PORT_DIPNAME( 0x08, 0x08, "Moles On Gal's Face" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Nudity" ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x08, DEF_STR( No ) ) // Moles On Gal's Face PORT_DIPNAME( 0x10, 0x10, "Buy Screen Bonus Points" ) /* Sets your points to 100 every time you arrive at the screen for buying special items. */ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -3097,6 +3132,131 @@ static INPUT_PORTS_START( jantouki ) INPUT_PORTS_END +static INPUT_PORTS_START( mjembase ) + PORT_START("DSW2") /* DIP1, 7c20 (port $1e) */ + PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" ) + PORT_DIPSETTING( 0x00, "50" ) + PORT_DIPSETTING( 0x01, "53" ) + PORT_DIPSETTING( 0x02, "56" ) + PORT_DIPSETTING( 0x03, "59" ) + PORT_DIPSETTING( 0x04, "62" ) + PORT_DIPSETTING( 0x05, "65" ) + PORT_DIPSETTING( 0x06, "68" ) + PORT_DIPSETTING( 0x07, "71" ) + PORT_DIPSETTING( 0x08, "75" ) + PORT_DIPSETTING( 0x09, "78" ) + PORT_DIPSETTING( 0x0a, "81" ) + PORT_DIPSETTING( 0x0b, "84" ) + PORT_DIPSETTING( 0x0c, "87" ) + PORT_DIPSETTING( 0x0d, "90" ) + PORT_DIPSETTING( 0x0e, "93" ) + PORT_DIPSETTING( 0x0f, "96" ) + PORT_DIPNAME( 0x30, 0x30, "Max Bet" ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "5" ) + PORT_DIPSETTING( 0x10, "10" ) + PORT_DIPSETTING( 0x00, "20" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coin_B ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSW1") /* DIP2, 7c21 (port $1c) */ + PORT_DIPNAME( 0x03, 0x03, "Difficulty?" ) + PORT_DIPSETTING( 0x03, "0" ) // 20 + PORT_DIPSETTING( 0x00, "1" ) // 32 + PORT_DIPSETTING( 0x01, "2" ) // 64 + PORT_DIPSETTING( 0x02, "3" ) // c8 + PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) + PORT_DIPNAME( 0x30, 0x30, "Min Pay?" ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "2" ) + PORT_DIPSETTING( 0x10, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x40, 0x40, "Allow Coin Out" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "Win A Prize?" ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSW0") /* DIP3, 7c22 (port $06, AY) */ /* note that these are in reverse order wrt the others */ + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "DonDen Key" ) + PORT_DIPSETTING( 0x02, "A" ) + PORT_DIPSETTING( 0x00, "Flip Flop" ) + PORT_DIPNAME( 0x04, 0x04, "Draw New Tile" ) + PORT_DIPSETTING( 0x00, "Automatic" ) + PORT_DIPSETTING( 0x04, "Manual" ) + PORT_DIPNAME( 0x08, 0x08, "Win Rate?" ) + PORT_DIPSETTING( 0x08, DEF_STR( High ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) + PORT_DIPNAME( 0x10, 0x10, "YAKU times" ) + PORT_DIPSETTING( 0x10, "1" ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPNAME( 0xe0, 0xe0, "YAKUMAN Bonus" ) + PORT_DIPSETTING( 0xe0, "Cut" ) + PORT_DIPSETTING( 0x60, "1 T" ) + PORT_DIPSETTING( 0xa0, "300" ) + PORT_DIPSETTING( 0x20, "500" ) + PORT_DIPSETTING( 0xc0, "700" ) + PORT_DIPSETTING( 0x40, "1000" ) +// PORT_DIPSETTING( 0x80, "1000" ) +// PORT_DIPSETTING( 0x00, "1000" ) + + PORT_START("DSW3") /* DIP4, 7c23 (port $24) */ + PORT_DIPNAME( 0x01, 0x01, "Last Chance" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "Pay Rate?" ) + PORT_DIPSETTING( 0x02, DEF_STR( High ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) + PORT_DIPNAME( 0x04, 0x04, "Choose Bonus" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "In-Game Bet?" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, "In-Game Music" ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, "Select Girl" ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Nudity" ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) // Moles On Gal's Face + + PORT_START("FAKE") /* IN10 - Fake DSW */ + PORT_DIPNAME( 0xff, 0xff, "Allow Bets" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0xff, DEF_STR( On ) ) + + PORT_START("COINS") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 18B + PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) // Test + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // Analyzer + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE3 ) // Memory Reset + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // Note + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) // Service + + PORT_INCLUDE( MAHJONG_KEYS_BET ) +INPUT_PORTS_END + + static INPUT_PORTS_START( mjelct3 ) PORT_START("DSW0") /* 7c21 (select = 00) */ PORT_DIPNAME( 0x03, 0x03, "Difficulty?" ) @@ -3163,7 +3323,7 @@ static INPUT_PORTS_START( mjelct3 ) PORT_INCLUDE( MAHJONG_KEYS_BET ) - PORT_START("DSW3") /* 7c22 (select = 80) */ + PORT_START("DSW2") /* 7c22 (select = 80) */ PORT_DIPNAME( 0x07, 0x07, "YAKUMAN Bonus" ) PORT_DIPSETTING( 0x07, "Cut" ) PORT_DIPSETTING( 0x06, "1 T" ) @@ -3189,7 +3349,7 @@ static INPUT_PORTS_START( mjelct3 ) PORT_DIPSETTING( 0x80, "None (Part 2)" ) PORT_DIPSETTING( 0x00, "Super Express (Part 3)" ) - PORT_START("DSW4") /* 7c23 (select = c0) */ + PORT_START("DSW3") /* 7c23 (select = c0) */ PORT_DIPNAME( 0x01, 0x01, "Last Chance" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -3211,9 +3371,9 @@ static INPUT_PORTS_START( mjelct3 ) PORT_DIPNAME( 0x40, 0x40, "Select Girl" ) PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Moles On Gal's Face" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Nudity" ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) // Moles On Gal's Face PORT_START("FAKE") /* IN10 - Fake DSW */ PORT_DIPNAME( 0xff, 0xff, "Allow Bets" ) @@ -3288,7 +3448,7 @@ static INPUT_PORTS_START( mjelctrn ) PORT_INCLUDE( MAHJONG_KEYS_BET ) - PORT_START("DSW3") /* 7c22 (select = 80) */ + PORT_START("DSW2") /* 7c22 (select = 80) */ PORT_DIPNAME( 0x07, 0x07, "YAKUMAN Bonus" ) PORT_DIPSETTING( 0x07, "Cut" ) PORT_DIPSETTING( 0x06, "1 T" ) @@ -3314,7 +3474,7 @@ static INPUT_PORTS_START( mjelctrn ) PORT_DIPSETTING( 0x80, "None (Part 2)" ) PORT_DIPSETTING( 0x00, "???? (Part 4)" ) - PORT_START("DSW4") // 7c23 (select = c0) + PORT_START("DSW3") // 7c23 (select = c0) PORT_DIPNAME( 0x01, 0x01, "Last Chance" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -3413,7 +3573,7 @@ static INPUT_PORTS_START( majxtal7 ) PORT_INCLUDE( MAHJONG_KEYS_BET ) - PORT_START("DSW3") /* select = 80 */ + PORT_START("DSW2") /* select = 80 */ PORT_DIPNAME( 0x07, 0x07, "YAKUMAN Bonus" ) PORT_DIPSETTING( 0x07, "Cut" ) PORT_DIPSETTING( 0x06, "1 T" ) @@ -3439,7 +3599,7 @@ static INPUT_PORTS_START( majxtal7 ) PORT_DIPSETTING( 0x80, "X-Tal" ) PORT_DIPSETTING( 0x00, "Diamond" ) - PORT_START("DSW4") /* select = c0 */ + PORT_START("DSW3") /* select = c0 */ PORT_DIPNAME( 0x01, 0x01, "Last Chance" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -3533,9 +3693,9 @@ static INPUT_PORTS_START( neruton ) PORT_INCLUDE( MAHJONG_KEYS ) - /* 2008-06 FP: the following are needed to make happy the read handlers shared with mjelctrn*/ + /* 2008-06 FP: the following are needed to make happy the read handlers shared with mjelctrn */ + PORT_START("DSW2") PORT_START("DSW3") - PORT_START("DSW4") PORT_START("FAKE") INPUT_PORTS_END @@ -4482,6 +4642,14 @@ static MACHINE_CONFIG_DERIVED( mjelctrn, hnoridur ) MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( mjembase, hnoridur ) + MCFG_CPU_MODIFY("maincpu") + 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 */ + + MCFG_VIDEO_START_OVERRIDE(dynax_state,mjembase) +MACHINE_CONFIG_END /*************************************************************************** Neruton @@ -5821,6 +5989,37 @@ ROM_START( mjelctrb ) ROM_LOAD( "eb-02.rom", 0x00000, 0x80000, CRC(e1f1b431) SHA1(04a612aff4c30cb8ea741f228bfa7e4289acfee8) ) ROM_END +/*************************************************************************** + +Mahjong Electromagnetic Base +DYNAX D3803248L1 + +AY-3-8912?, MSM5205? +HD46505SP?, Dynax blitter? (rest of the chips are scratched) +4 x DSW8, 28-way connector + +***************************************************************************/ + +ROM_START( mjembase ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "dynax_3815.20a", 0x00000, 0x20000, CRC(35b35b48) SHA1(9966804337a7c6de160a09087e1fea3b0a515fe4) ) + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data + ROM_LOAD( "dynax_3803.7c", 0x000000, 0x20000, CRC(5480c4f8) SHA1(8f533683eb08281f50247c17e7ccfcfd2d8f1937) ) + ROM_LOAD( "dynax_3802.6c", 0x020000, 0x20000, CRC(ba27976a) SHA1(cb9ce82054b7568507807a891ada3d39adf094d2) ) + ROM_LOAD( "dynax_3801.5c", 0x040000, 0x20000, CRC(84a013ac) SHA1(3d5c196f7474bb13d9b724befec3de7f247953e3) ) + ROM_LOAD( "dynax_3804.1a", 0x060000, 0x20000, CRC(8c055525) SHA1(8e31bef48a8b89e79ecb8b71855bc20036667561) ) + ROM_LOAD( "dynax_3805.3a", 0x080000, 0x20000, CRC(a27b2063) SHA1(9da26086832f047c65ad88147e65d1f65e9b7677) ) + ROM_LOAD( "dynax_3806.5a", 0x0a0000, 0x20000, CRC(42486764) SHA1(217ea04fad8853b03522474a70a322642a5301a5) ) + ROM_LOAD( "dynax_3807.6a", 0x0c0000, 0x20000, CRC(c29abf8f) SHA1(79e05fc0decd450622189ce1c8681c4442c566b0) ) + ROM_LOAD( "dynax_3808.7a", 0x0e0000, 0x20000, CRC(72efcd62) SHA1(9b84043fc9b2dcaf97a58aba0ba4ce27ee64381c) ) + + ROM_REGION( 0x040000, "gfx2", 0 ) // blitter data + ROM_LOAD( "dynax_3809.9a", 0x000000, 0x20000, CRC(7c239069) SHA1(71c8b437a555ab48ce600ff283d50e0a21e9f8eb) ) + ROM_LOAD( "dynax_381a.10a", 0x020000, 0x20000, CRC(72c092c7) SHA1(3a4f1cd56c9544dcd4689e385c98407c45ac894c) ) +ROM_END + /* @@ -6340,7 +6539,7 @@ ROM_START( tenkai ) // It appears that the first half of lzc-01.u6 in tenkaibb (as well as the same data in other bootleg versions) // does not exist _anywhere_ in this rom dump, and in this way some girls won't show correctly (such as the 3rd one) ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data - ROM_LOAD( "tydg002.u8", 0x000000, 0x80000, BAD_DUMP CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // not dumped, rom taken from tenkaid + ROM_LOAD( "tydg002.u8", 0x000000, 0x80000, BAD_DUMP CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // not dumped, rom taken from ougonpaib ROM_LOAD( "taicom01.15b", 0x080000, 0x80000, BAD_DUMP CRC(39e4e6f3) SHA1(5b543a5933446091d7cfd519d5a6f23047d8a9f2) ) // either this was dumped half size, or the above rom was missing from the pcb ROM_REGION( 0x100000, "gfx2", 0 ) // blitter data @@ -6533,7 +6732,7 @@ ROM_START( tenkaicb ) // it doesn't need the internal rom from tenkai ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data - ROM_LOAD( "tydg002.u8", 0x00000, 0x80000, BAD_DUMP CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // not dumped, rom taken from tenkaid + ROM_LOAD( "tydg002.u8", 0x00000, 0x80000, BAD_DUMP CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // not dumped, rom taken from ougonpaib ROM_LOAD( "rom.u12", 0x80000, 0x80000, BAD_DUMP CRC(39e4e6f3) SHA1(5b543a5933446091d7cfd519d5a6f23047d8a9f2) ) // either this was dumped half size, or the above rom was missing from the pcb ROM_REGION( 0x100000, "gfx2", 0 ) // blitter data @@ -6543,7 +6742,61 @@ ROM_END /*************************************************************************** -Mahjong Tenkaigen (? PCB is not working) +tenkaigen set 2 + +romcmp tenkaie tenkai: + +epr-a01.rom taicom00.2c IDENTICAL + +lzc-01.rom [2/2] taicom01.15b IDENTICAL + +lzc-02.rom [1/2] taicom02.11b IDENTICAL +lzc-02.rom [2/2] taicom03.13b IDENTICAL + +***************************************************************************/ + +ROM_START( tenkaie ) + ROM_REGION( 0x50000, "maincpu", 0 ) + ROM_LOAD( "epr-a01.rom", 0x00000, 0x40000, CRC(a35e54db) SHA1(247c856e19989fb834e8ed135393927bbd9c0277) ) + ROM_RELOAD( 0x10000, 0x40000 ) + ROM_LOAD( "tmp91p640n-10.5b", 0x00000, 0x04000, BAD_DUMP CRC(509f1c97) SHA1(08557bea2e924053fd5bc9de5e306f3ecf8e98e6) ) // sldh - not dumped, rom taken from tenkai + + ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data + ROM_LOAD( "lzc-01.rom", 0x000000, 0x100000, CRC(786698e3) SHA1(9ddf4e31f454fb3c7969b1433771e95a976de741) ) + + ROM_REGION( 0x100000, "gfx2", 0 ) // blitter data + ROM_LOAD( "lzc-02.rom", 0x000000, 0x100000, CRC(90a19443) SHA1(8f593c00e39dd5acc76b058591019d117967a17b) ) +ROM_END + +/*************************************************************************** + +Mahjong Ougon No Pai +DYNAX D6209038L1-0 + +AY-3-8910A, rest of the chips are scratched +2 x DSW10, 2 x DSW8, 1 x DSW4, Battery + +***************************************************************************/ + +ROM_START( ougonpai ) + ROM_REGION( 0x90000, "maincpu", 0 ) + ROM_LOAD( "dynax_6201b.2c", 0x00000, 0x40000, CRC(18ef8eda) SHA1(48a3e4566b0a86db907602fd235c01d96eddec23) ) + ROM_RELOAD( 0x10000, 0x40000 ) + ROM_RELOAD( 0x50000, 0x40000 ) + ROM_LOAD( "ougonpai_tmp91p640n-10.5b", 0x00000, 0x04000, NO_DUMP ) + + ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data + ROM_LOAD( "dynax_6202.11b", 0x00000, 0x80000, CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // = tydg002.u8 (ougonpaib) + ROM_LOAD( "dynax_6203.13b", 0x80000, 0x80000, CRC(60717d91) SHA1(85dbb510d33b36d2255b740ccc4917216dd21497) ) // = tydg003.u6 (ougonpaib) + + ROM_REGION( 0x100000, "gfx2", 0 ) // blitter data + ROM_LOAD( "dynax_6204.14b", 0x00000, 0x80000, CRC(4142f94b) SHA1(9982f12333973b307c210e39310eafc88b8620e1) ) // ~= tydg004.u21 (ougonpaib) + ROM_LOAD( "dynax_6205.15b", 0x80000, 0x80000, CRC(39e4e6f3) SHA1(5b543a5933446091d7cfd519d5a6f23047d8a9f2) ) // = tydg005.u19 (ougonpaib) +ROM_END + +/*************************************************************************** + +Mahjong Ougon No Pai (bootleg, PCB is not working) PCB Layout ---------- @@ -6570,92 +6823,27 @@ PCB Layout |Y 81461 81461 21.245MHz | |-------------------------------------------| -romcmp tenkaid tenkaibb: - -tydg002.u8 lzc-01.u6 [1/2] IDENTICAL -tydg005.u19 lzc-01.u6 [2/2] IDENTICAL - -tydg001.u11 [1/4] tdh-12m.u11 [odd 2/2] 6.478882% -tydg001.u11 [2/4] lzc-03.u15 [odd] 31.292725% -tydg001.u11 [3/4] tdh-12m.u11 [even 2/2] 55.366516% -tydg001.u11 [4/4] lzc-03.u15 [even] 59.931946% - -tydg003.u6 [1/2] lzc-02.u19 [3/4] 2.625275% -tydg003.u6 [2/2] lzc-02.u19 [2/4] 1.834488% - -tydg004.u21 [1/2] lzc-02.u19 [1/4] 3.769302% -tydg004.u21 [2/2] lzc-02.u19 [4/4] 14.524460% - -romcmp tenkaid tenkai: - -tydg005.u19 taicom01.15b IDENTICAL - -tydg001.u11 [1/4] taicom00.2c [1/4] 26.155090% -tydg001.u11 [2/4] taicom00.2c [3/4] 22.038269% -tydg001.u11 [3/4] taicom00.2c [2/4] 4.237366% -tydg001.u11 [4/4] taicom00.2c [4/4] 59.855652% - -tydg002.u8 [4/4] taicom03.13b [2/4] 4.472351% - -tydg003.u6 [1/4] taicom02.11b [3/4] 2.860260% -tydg003.u6 [2/4] taicom03.13b [3/4] 6.129456% -tydg003.u6 [3/4] taicom02.11b [2/4] 2.205658% - -tydg004.u21 [1/4] taicom02.11b [1/4] 5.610657% -tydg004.u21 [2/4] taicom03.13b [1/4] 1.743317% -tydg004.u21 [3/4] taicom02.11b [4/4] 2.343750% -tydg004.u21 [4/4] taicom03.13b [4/4] 24.230194% - ***************************************************************************/ -ROM_START( tenkaid ) +ROM_START( ougonpaib ) ROM_REGION( 0x90000, "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( "tenkaid_tmp91p640n-10.5b", 0x00000, 0x04000, NO_DUMP ) + ROM_LOAD( "ougonpaib_tmp91p640n-10.5b", 0x00000, 0x04000, NO_DUMP ) ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data - ROM_LOAD( "tydg002.u8", 0x00000, 0x80000, CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) + ROM_LOAD( "tydg002.u8", 0x00000, 0x80000, CRC(b0f08a20) SHA1(5f7083d5caadd77594eaf46efa11a8756cefcf7d) ) // = lzc-01.u6 [1/2] ROM_LOAD( "tydg003.u6", 0x80000, 0x80000, CRC(60717d91) SHA1(85dbb510d33b36d2255b740ccc4917216dd21497) ) ROM_REGION( 0x100000, "gfx2", 0 ) // blitter data ROM_LOAD( "tydg004.u21", 0x00000, 0x80000, CRC(b7d49d04) SHA1(756c35bbe207b5bfc6e05d6da99a7ad5a3453506) ) - ROM_LOAD( "tydg005.u19", 0x80000, 0x80000, CRC(39e4e6f3) SHA1(5b543a5933446091d7cfd519d5a6f23047d8a9f2) ) + ROM_LOAD( "tydg005.u19", 0x80000, 0x80000, CRC(39e4e6f3) SHA1(5b543a5933446091d7cfd519d5a6f23047d8a9f2) ) // = taicom01.15b = lzc-01.u6 [2/2] ROM_END /*************************************************************************** -tenkaigen set 2 - -romcmp tenkaie tenkai: - -epr-a01.rom taicom00.2c IDENTICAL - -lzc-01.rom [2/2] taicom01.15b IDENTICAL - -lzc-02.rom [1/2] taicom02.11b IDENTICAL -lzc-02.rom [2/2] taicom03.13b IDENTICAL - -***************************************************************************/ - -ROM_START( tenkaie ) - ROM_REGION( 0x50000, "maincpu", 0 ) - ROM_LOAD( "epr-a01.rom", 0x00000, 0x40000, CRC(a35e54db) SHA1(247c856e19989fb834e8ed135393927bbd9c0277) ) - ROM_RELOAD( 0x10000, 0x40000 ) - ROM_LOAD( "tmp91p640n-10.5b", 0x00000, 0x04000, BAD_DUMP CRC(509f1c97) SHA1(08557bea2e924053fd5bc9de5e306f3ecf8e98e6) ) // sldh - not dumped, rom taken from tenkai - - ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data - ROM_LOAD( "lzc-01.rom", 0x000000, 0x100000, CRC(786698e3) SHA1(9ddf4e31f454fb3c7969b1433771e95a976de741) ) - - ROM_REGION( 0x100000, "gfx2", 0 ) // blitter data - ROM_LOAD( "lzc-02.rom", 0x000000, 0x100000, CRC(90a19443) SHA1(8f593c00e39dd5acc76b058591019d117967a17b) ) -ROM_END - - -/*************************************************************************** - Mahjong Comic Gekijou Vol.1 (c)1991 Dynax / Tenho Iwatani D5512068L1-1 (main PCB) @@ -6913,6 +7101,7 @@ GAME( 1991, yarunara, 0, yarunara, yarunara, driver_device, 0, ROT GAME( 1991, mjangels, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Angels - Comic Theater Vol.2 (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1992, quiztvqq, 0, quiztvqq, quiztvqq, driver_device, 0, ROT180, "Dynax", "Quiz TV Gassyuukoku Q&Q (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1993, mjelctrn, 0, mjelctrn, mjelctrn, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 4, Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1989, mjembase, mjelctrn, mjembase, mjembase, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electromagnetic Base", GAME_SUPPORTS_SAVE ) GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan)", GAME_SUPPORTS_SAVE ) GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, alt., Japan)", GAME_SUPPORTS_SAVE ) GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)", GAME_SUPPORTS_SAVE ) @@ -6925,8 +7114,9 @@ GAME( 1991, tenkai, 0, tenkai, tenkai, driver_device, 0, ROT GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen Part 2 (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg b)", GAME_SUPPORTS_SAVE ) GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg c)", GAME_SUPPORTS_SAVE ) -GAME( 1991, tenkaid, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Tenkaigen (set 1)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) GAME( 1991, tenkaie, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Tenkaigen (set 2)", GAME_SUPPORTS_SAVE ) +GAME( 1991, ougonpai, 0, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Ougon No Pai", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) +GAME( 1991, ougonpaib,ougonpai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Ougon No Pai (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) GAME( 1994, mjreach, 0, tenkai, mjreach, dynax_state, mjreach, ROT0, "bootleg / Dynax", "Mahjong Reach (bootleg)", GAME_SUPPORTS_SAVE ) GAME( 1995, shpeng, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "WSAC Systems?", "Sea Hunter Penguin", GAME_NO_COCKTAIL | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) // not a dynax board. proms? GAME( 1996, majrjhdx, 0, majrjhdx, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Raijinhai DX", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |