QuarterArcade Coin-Op Tech Net

Quick Nav: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

: : : VM Driver Source

Source Listing


     1: /*****************************************************************************
     2: 
     3: 	Irem M90/M97 system games:
     4: 
     5: 	Hasamu							1991 M90
     6: 	Bomberman						1992 M90
     7: 	Bomberman World / Atomic Punk	1992 M97
     8: 	Quiz F-1 1,2finish				1992 M97
     9: 	Risky Challenge / Gussun Oyoyo	1993 M97
    10: 	Shisensho II					1993 M97
    11: 
    12: 
    13: 	Uses M72 sound hardware.
    14: 
    15: 	Emulation by Bryan McPhail, mish@tendril.co.uk, thanks to Chris Hardy!
    16: 
    17: Notes:
    18: 
    19: - Samples are not played in bbmanw/atompunk.
    20: 
    21: - Not sure about the clock speeds. In hasamu and quizf1 service mode, the
    22:   selection moves too fast with the clock set at 16 MHz. It's still fast at
    23:   8 MHz, but at least it's usable.
    24: 
    25: *****************************************************************************/
    26: 
    27: #include "driver.h" 
    28: #include "vidhrdw/generic.h" 
    29: #include "m92.h" 
    30: #include "machine/irem_cpu.h" 
    31: #include "sndhrdw/m72.h" 
    32: #include "state.h" 
    33: 
    34: static int bankaddress;
    35: 
    36: extern unsigned char *m90_video_data;
    37: 
    38: VIDEO_UPDATE( m90 );
    39: VIDEO_UPDATE( m90_bootleg );
    40: WRITE_HANDLER( m90_video_control_w );
    41: WRITE_HANDLER( m90_video_w );
    42: VIDEO_START( m90 );
    43: 
    44: /***************************************************************************/
    45: 
    46: static void set_m90_bank(void)
    47: {
    48: 	data8_t *rom = memory_region(REGION_USER1);
    49: 
    50: 	if (!rom)
    51: 		usrintf_showmessage("bankswitch with no banked ROM!");
    52: 	else
    53: 		cpu_setbank(1,rom + bankaddress);
    54: }
    55: 
    56: /***************************************************************************/
    57: 
    58: static WRITE_HANDLER( m90_coincounter_w )
    59: {
    60: 	if (offset==0)
    61: 	{
    62: 		coin_counter_w(0,data & 0x01);
    63: 		coin_counter_w(1,data & 0x02);
    64: 
    65: 		if (data&0xfe) logerror("Coin counter %02x\n",data);
    66: 	}
    67: }
    68: 
    69: static WRITE_HANDLER( quizf1_bankswitch_w )
    70: {
    71: 	if (offset == 0)
    72: 	{
    73: 		bankaddress = 0x10000 * (data & 0x0f);
    74: 		set_m90_bank();
    75: 	}
    76: }
    77: 
    78: /***************************************************************************/
    79: 
    80: static MEMORY_READ_START( readmem )
    81: 	{ 0x00000, 0x7ffff, MRA_ROM },
    82: 	{ 0x80000, 0x8ffff, MRA_BANK1 },	/* Quiz F1 only */
    83: 	{ 0xa0000, 0xa3fff, MRA_RAM },
    84: 	{ 0xd0000, 0xdffff, MRA_RAM },
    85: 	{ 0xe0000, 0xe03ff, paletteram_r },
    86: 	{ 0xffff0, 0xfffff, MRA_ROM },
    87: MEMORY_END
    88: 
    89: static MEMORY_WRITE_START( writemem )
    90: 	{ 0x00000, 0x7ffff, MWA_ROM },
    91: 	{ 0x80000, 0x8ffff, MWA_ROM },	/* Quiz F1 only */
    92: 	{ 0xa0000, 0xa3fff, MWA_RAM },
    93: 	{ 0xd0000, 0xdffff, m90_video_w, &m90_video_data },
    94: 	{ 0xe0000, 0xe03ff, paletteram_xBBBBBGGGGGRRRRR_w, &paletteram },
    95: 	{ 0xffff0, 0xfffff, MWA_ROM },
    96: MEMORY_END
    97: 
    98: static MEMORY_READ_START( bootleg_readmem )
    99: 	{ 0x00000, 0x3ffff, MRA_ROM },
   100: 	{ 0x60000, 0x60fff, MRA_RAM },
   101: 	{ 0xa0000, 0xa3fff, MRA_RAM },
   102: 	{ 0xd0000, 0xdffff, MRA_RAM },
   103: 	{ 0xe0000, 0xe03ff, paletteram_r },
   104: 	{ 0xffff0, 0xfffff, MRA_ROM },
   105: MEMORY_END
   106: 
   107: static MEMORY_WRITE_START( bootleg_writemem )
   108: 	{ 0x00000, 0x3ffff, MWA_ROM },
   109: 	{ 0x6000e, 0x60fff, MWA_RAM, &spriteram },
   110: 	{ 0xa0000, 0xa3fff, MWA_RAM },
   111: //	{ 0xd0000, 0xdffff, m90_bootleg_video_w, &m90_video_data },
   112: 	{ 0xe0000, 0xe03ff, paletteram_xBBBBBGGGGGRRRRR_w, &paletteram },
   113: 	{ 0xffff0, 0xfffff, MWA_ROM },
   114: MEMORY_END
   115: 
   116: static PORT_READ_START( readport )
   117: 	{ 0x00, 0x00, input_port_0_r }, /* Player 1 */
   118: 	{ 0x01, 0x01, input_port_1_r }, /* Player 2 */
   119: 	{ 0x02, 0x02, input_port_2_r }, /* Coins */
   120: 	{ 0x03, 0x03, MRA_NOP },		/* Unused?  High byte of above */
   121: 	{ 0x04, 0x04, input_port_3_r }, /* Dip 1 */
   122: 	{ 0x05, 0x05, input_port_4_r }, /* Dip 2 */
   123: 	{ 0x06, 0x06, input_port_5_r }, /* Player 3 */
   124: 	{ 0x07, 0x07, input_port_6_r }, /* Player 4 */
   125: PORT_END
   126: 
   127: static PORT_WRITE_START( writeport )
   128: 	{ 0x00, 0x01, m72_sound_command_w },
   129: 	{ 0x02, 0x03, m90_coincounter_w },
   130: 	{ 0x04, 0x05, quizf1_bankswitch_w },
   131: 	{ 0x80, 0x8f, m90_video_control_w },
   132: PORT_END
   133: 
   134: /*****************************************************************************/
   135: 
   136: static MEMORY_READ_START( sound_readmem )
   137: 	{ 0x0000, 0xefff, MRA_ROM },
   138: 	{ 0xf000, 0xffff, MRA_RAM },
   139: MEMORY_END
   140: 
   141: static MEMORY_WRITE_START( sound_writemem )
   142: 	{ 0x0000, 0xefff, MWA_ROM },
   143: 	{ 0xf000, 0xffff, MWA_RAM },
   144: MEMORY_END
   145: 
   146: static PORT_READ_START( sound_readport )
   147: 	{ 0x01, 0x01, YM2151_status_port_0_r },
   148: 	{ 0x80, 0x80, soundlatch_r },
   149: 	{ 0x84, 0x84, m72_sample_r },
   150: PORT_END
   151: 
   152: static PORT_WRITE_START( sound_writeport )
   153: 	{ 0x00, 0x00, YM2151_register_port_0_w },
   154: 	{ 0x01, 0x01, YM2151_data_port_0_w },
   155: 	{ 0x80, 0x81, rtype2_sample_addr_w },
   156: 	{ 0x82, 0x82, m72_sample_w },
   157: 	{ 0x83, 0x83, m72_sound_irq_ack_w },
   158: PORT_END
   159: 
   160: static PORT_READ_START( bbmanw_sound_readport )
   161: 	{ 0x41, 0x41, YM2151_status_port_0_r },
   162: 	{ 0x42, 0x42, soundlatch_r },
   163: //	{ 0x41, 0x41, m72_sample_r },
   164: PORT_END
   165: 
   166: static PORT_WRITE_START( bbmanw_sound_writeport )
   167: 	{ 0x40, 0x40, YM2151_register_port_0_w },
   168: 	{ 0x41, 0x41, YM2151_data_port_0_w },
   169: 	{ 0x42, 0x42, m72_sound_irq_ack_w },
   170: //	{ 0x40, 0x41, rtype2_sample_addr_w },
   171: //	{ 0x42, 0x42, m72_sample_w },
   172: PORT_END
   173: 
   174: /*****************************************************************************/
   175: 
   176: 
   177: INPUT_PORTS_START( hasamu )
   178: 	IREM_JOYSTICK_1_2(1)
   179: 	IREM_JOYSTICK_1_2(2)
   180: 	IREM_COINS
   181: 
   182: 	PORT_START	/* Dip switch bank 1 */
   183: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
   184: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   185: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   186: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   187: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   188: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   189: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   190: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   191: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   192: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   193: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   194: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   195: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   196: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   197: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   198: 	PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
   199: 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
   200: 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
   201: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
   202: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   203: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   204: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
   205: 
   206: 	PORT_START	/* Dip switch bank 2 */
   207: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   208: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   209: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   210: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   211: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   212: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   213: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   214: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   215: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   216: 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
   217: 	PORT_DIPSETTING(    0x08, "1" )
   218: 	PORT_DIPSETTING(    0x00, "2" )
   219: 	/* Coin Mode 1 */
   220: 	IREM_COIN_MODE_1_NEW
   221: 	/* Coin Mode 2, not supported yet */
   222: //	IREM_COIN_MODE_2
   223: INPUT_PORTS_END
   224: 
   225: INPUT_PORTS_START( bombrman )
   226: 	IREM_JOYSTICK_1_2(1)
   227: 	IREM_JOYSTICK_1_2(2)
   228: 	IREM_COINS
   229: 
   230: 	PORT_START	/* Dip switch bank 1 */
   231: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
   232: 	PORT_DIPSETTING(    0x02, "2" )
   233: 	PORT_DIPSETTING(    0x03, "3" )
   234: 	PORT_DIPSETTING(    0x01, "4" )
   235: 	PORT_DIPSETTING(    0x00, "5" )
   236: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* Probably difficulty */
   237: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   238: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   239: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   240: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   241: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   242: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   243: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   244: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   245: 	PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
   246: 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
   247: 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
   248: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
   249: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   250: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   251: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
   252: 
   253: 	PORT_START	/* Dip switch bank 2 */
   254: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   255: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   256: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   257: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   258: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   259: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   260: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   261: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   262: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   263: 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
   264: 	PORT_DIPSETTING(    0x08, "1" )
   265: 	PORT_DIPSETTING(    0x00, "2" )
   266: 	/* Coin Mode 1 */
   267: 	IREM_COIN_MODE_1_NEW
   268: 	/* Coin Mode 2, not supported yet */
   269: //	IREM_COIN_MODE_2
   270: INPUT_PORTS_END
   271: 
   272: INPUT_PORTS_START( bbmanw )
   273: 	IREM_JOYSTICK_1_2(1)
   274: 	IREM_JOYSTICK_1_2(2)
   275: 	IREM_COINS
   276: 
   277: 	PORT_START	/* Dip switch bank 1 */
   278: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
   279: 	PORT_DIPSETTING(    0x02, "2" )
   280: 	PORT_DIPSETTING(    0x03, "3" )
   281: 	PORT_DIPSETTING(    0x01, "4" )
   282: 	PORT_DIPSETTING(    0x00, "5" )
   283: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* Probably difficulty */
   284: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   285: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   286: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   287: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   288: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   289: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   290: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   291: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   292: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   293: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
   294: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   295: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
   296: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   297: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   298: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
   299: 
   300: 	PORT_START	/* Dip switch bank 2 */
   301: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   302: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   303: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   304: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) )
   305: 	PORT_DIPSETTING(    0x00, "2 Players" )
   306: 	PORT_DIPSETTING(    0x02, "4 Players" )
   307: 	PORT_DIPNAME( 0x04, 0x04, "Coin Slots" )
   308: 	PORT_DIPSETTING(    0x04, "Common" )
   309: 	PORT_DIPSETTING(    0x00, "Separate" )
   310: 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
   311: 	PORT_DIPSETTING(    0x08, "1" )
   312: 	PORT_DIPSETTING(    0x00, "2" )
   313: 	/* Coin Mode 1 */
   314: 	IREM_COIN_MODE_1_NEW
   315: 	/* Coin Mode 2, not supported yet */
   316: //	IREM_COIN_MODE_2
   317: 
   318: 	IREM_JOYSTICK_3_4(3)
   319: 	IREM_JOYSTICK_3_4(4)
   320: INPUT_PORTS_END
   321: 
   322: INPUT_PORTS_START( quizf1 )
   323: 	PORT_START
   324: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
   325: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
   326: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
   327: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
   328: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
   329: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
   330: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
   331: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
   332: 	PORT_START
   333: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
   334: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
   335: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
   336: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
   337: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
   338: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   339: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   340: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   341: 	IREM_COINS
   342: 
   343: 	PORT_START	/* Dip switch bank 1 */
   344: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
   345: 	PORT_DIPSETTING(    0x02, "2" )
   346: 	PORT_DIPSETTING(    0x03, "3" )
   347: 	PORT_DIPSETTING(    0x01, "4" )
   348: 	PORT_DIPSETTING(    0x00, "5" )
   349: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* Probably difficulty */
   350: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   351: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   352: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   353: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   354: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   355: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   356: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   357: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   358: 	PORT_DIPNAME( 0x20, 0x00, "Input Device" )	/* input related (joystick/buttons select?) */
   359: 	PORT_DIPSETTING(    0x20, "Joystick" )
   360: 	PORT_DIPSETTING(    0x00, "Buttons" )
   361: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
   362: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   363: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   364: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
   365: 
   366: 	PORT_START	/* Dip switch bank 2 */
   367: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   368: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   369: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   370: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   371: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   372: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   373: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   374: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   375: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   376: 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
   377: 	PORT_DIPSETTING(    0x08, "1" )
   378: 	PORT_DIPSETTING(    0x00, "2" )
   379: 	/* Coin Mode 1 */
   380: 	IREM_COIN_MODE_1_NEW
   381: 	/* Coin Mode 2, not supported yet */
   382: //	IREM_COIN_MODE_2
   383: INPUT_PORTS_END
   384: 
   385: INPUT_PORTS_START( m97 )
   386: 	IREM_JOYSTICK_1_2(1)
   387: 	IREM_JOYSTICK_1_2(2)
   388: 	IREM_COINS
   389: 
   390: 	PORT_START	/* Dip switch bank 1 */
   391: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
   392: 	PORT_DIPSETTING(    0x02, "2" )
   393: 	PORT_DIPSETTING(    0x03, "3" )
   394: 	PORT_DIPSETTING(    0x01, "4" )
   395: 	PORT_DIPSETTING(    0x00, "5" )
   396: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* Probably difficulty */
   397: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   398: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   399: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   400: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   401: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   402: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   403: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   404: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   405: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   406: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
   407: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   408: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
   409: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   410: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   411: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
   412: 
   413: 	PORT_START	/* Dip switch bank 2 */
   414: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   415: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   416: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   417: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   418: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   419: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   420: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   421: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   422: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   423: 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
   424: 	PORT_DIPSETTING(    0x08, "1" )
   425: 	PORT_DIPSETTING(    0x00, "2" )
   426: 	/* Coin Mode 1 */
   427: 	IREM_COIN_MODE_1_NEW
   428: 	/* Coin Mode 2, not supported yet */
   429: //	IREM_COIN_MODE_2
   430: INPUT_PORTS_END
   431: 
   432: /*****************************************************************************/
   433: 
   434: static struct GfxLayout charlayout =
   435: {
   436: 	8,8,
   437: 	RGN_FRAC(1,4),
   438: 	4,
   439: 	{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
   440: 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
   441: 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
   442: 	8*8
   443: };
   444: 
   445: static struct GfxLayout spritelayout =
   446: {
   447: 	16,16,
   448: 	RGN_FRAC(1,4),
   449: 	4,
   450: 	{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
   451: 	{ 0, 1, 2, 3, 4, 5, 6, 7,
   452: 		16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
   453: 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
   454: 			8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
   455: 	32*8
   456: };
   457: 
   458: static struct GfxDecodeInfo gfxdecodeinfo[] =
   459: {
   460: 	{ REGION_GFX1, 0, &charlayout,     0, 16 },
   461: 	{ REGION_GFX1, 0, &spritelayout, 256, 16 },
   462: 	{ -1 } /* end of array */
   463: };
   464: 
   465: /*****************************************************************************/
   466: 
   467: static struct YM2151interface ym2151_interface =
   468: {
   469: 	1,			/* 1 chip */
   470: 	3579545,	/* 3.579545 MHz */
   471: 	{ YM3012_VOL(90,MIXER_PAN_LEFT,90,MIXER_PAN_RIGHT) },
   472: 	{ m72_ym2151_irq_handler },
   473: 	{ 0 }
   474: };
   475: 
   476: static struct DACinterface dac_interface =
   477: {
   478: 	1,	/* 1 channel */
   479: 	{ 60 }
   480: };
   481: 
   482: static INTERRUPT_GEN( m90_interrupt )
   483: {
   484: 	cpu_set_irq_line_and_vector(0, 0, HOLD_LINE, 0x60/4);
   485: }
   486: 
   487: 
   488: 
   489: static MACHINE_DRIVER_START( m90 )
   490: 
   491: 	/* basic machine hardware */
   492: 	MDRV_CPU_ADD(V30,32000000/4)	/* 8 MHz ??????? */
   493: 	MDRV_CPU_MEMORY(readmem,writemem)
   494: 	MDRV_CPU_PORTS(readport,writeport)
   495: 	MDRV_CPU_VBLANK_INT(m90_interrupt,1)
   496: 
   497: 	MDRV_CPU_ADD(Z80, 3579545)
   498: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
   499: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
   500: 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
   501: 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,128)	/* clocked by V1? (Vigilante) */
   502: 								/* IRQs are generated by main Z80 and YM2151 */
   503: 	MDRV_FRAMES_PER_SECOND(60)
   504: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   505: 
   506: 	MDRV_MACHINE_INIT(m72_sound)
   507: 
   508: 	/* video hardware */
   509: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   510: 	MDRV_SCREEN_SIZE(64*8, 64*8)
   511: 	MDRV_VISIBLE_AREA(6*8, 54*8-1, 17*8, 47*8-1)
   512: 	MDRV_GFXDECODE(gfxdecodeinfo)
   513: 	MDRV_PALETTE_LENGTH(512)
   514: 
   515: 	MDRV_VIDEO_START(m90)
   516: 	MDRV_VIDEO_UPDATE(m90)
   517: 
   518: 	/* sound hardware */
   519: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   520: 	MDRV_SOUND_ADD(DAC, dac_interface)
   521: MACHINE_DRIVER_END
   522: 
   523: static MACHINE_DRIVER_START( quizf1 )
   524: 
   525: 	MDRV_IMPORT_FROM( m90 )
   526: 	MDRV_VISIBLE_AREA(6*8, 54*8-1, 17*8-8, 47*8-1+8)
   527: 
   528: MACHINE_DRIVER_END
   529: 
   530: 
   531: static MACHINE_DRIVER_START( bombrman )
   532: 
   533: 	/* basic machine hardware */
   534: 	MDRV_CPU_ADD(V30,32000000/4)	/* 8 MHz ??????? */
   535: 	MDRV_CPU_MEMORY(readmem,writemem)
   536: 	MDRV_CPU_PORTS(readport,writeport)
   537: 	MDRV_CPU_VBLANK_INT(m90_interrupt,1)
   538: 
   539: 	MDRV_CPU_ADD(Z80, 3579545)
   540: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
   541: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
   542: 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
   543: 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,128)	/* clocked by V1? (Vigilante) */
   544: 								/* IRQs are generated by main Z80 and YM2151 */
   545: 	MDRV_FRAMES_PER_SECOND(60)
   546: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   547: 	MDRV_MACHINE_INIT(m72_sound)
   548: 
   549: 	/* video hardware */
   550: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   551: 	MDRV_SCREEN_SIZE(64*8, 64*8)
   552: 	MDRV_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1)
   553: 	MDRV_GFXDECODE(gfxdecodeinfo)
   554: 	MDRV_PALETTE_LENGTH(512)
   555: 
   556: 	MDRV_VIDEO_START(m90)
   557: 	MDRV_VIDEO_UPDATE(m90)
   558: 
   559: 	/* sound hardware */
   560: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   561: 	MDRV_SOUND_ADD(DAC, dac_interface)
   562: MACHINE_DRIVER_END
   563: 
   564: 
   565: static MACHINE_DRIVER_START( bbmanw )
   566: 
   567: 	/* basic machine hardware */
   568: 	MDRV_CPU_ADD(V30,32000000/4)	/* 8 MHz ??????? */
   569: 	MDRV_CPU_MEMORY(readmem,writemem)
   570: 	MDRV_CPU_PORTS(readport,writeport)
   571: 	MDRV_CPU_VBLANK_INT(m90_interrupt,1)
   572: 
   573: 	MDRV_CPU_ADD(Z80, 3579545)
   574: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
   575: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
   576: 	MDRV_CPU_PORTS(bbmanw_sound_readport,bbmanw_sound_writeport)
   577: 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,128)	/* clocked by V1? (Vigilante) */
   578: 								/* IRQs are generated by main Z80 and YM2151 */
   579: 	MDRV_FRAMES_PER_SECOND(60)
   580: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   581: 	MDRV_MACHINE_INIT(m72_sound)
   582: 
   583: 	/* video hardware */
   584: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   585: 	MDRV_SCREEN_SIZE(64*8, 64*8)
   586: 	MDRV_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1)
   587: 	MDRV_GFXDECODE(gfxdecodeinfo)
   588: 	MDRV_PALETTE_LENGTH(512)
   589: 
   590: 	MDRV_VIDEO_START(m90)
   591: 	MDRV_VIDEO_UPDATE(m90)
   592: 
   593: 	/* sound hardware */
   594: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   595: 	MDRV_SOUND_ADD(DAC, dac_interface)
   596: MACHINE_DRIVER_END
   597: 
   598: 
   599: static MACHINE_DRIVER_START( bootleg )
   600: 
   601: 	/* basic machine hardware */
   602: 	MDRV_CPU_ADD(V30,32000000/4)	/* 16 MHz */
   603: 	MDRV_CPU_MEMORY(bootleg_readmem,bootleg_writemem)
   604: 	MDRV_CPU_PORTS(readport,writeport)
   605: 	MDRV_CPU_VBLANK_INT(m90_interrupt,1)
   606: 
   607: 	MDRV_CPU_ADD(Z80, 3579545)
   608: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
   609: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
   610: 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
   611: 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,128)	/* clocked by V1? (Vigilante) */
   612: 								/* IRQs are generated by main Z80 and YM2151 */
   613: 	MDRV_FRAMES_PER_SECOND(60)
   614: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   615: 	MDRV_MACHINE_INIT(m72_sound)
   616: 
   617: 	/* video hardware */
   618: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   619: 	MDRV_SCREEN_SIZE(320, 240)
   620: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
   621: 	MDRV_GFXDECODE(gfxdecodeinfo)
   622: 	MDRV_PALETTE_LENGTH(512)
   623: 
   624: 	MDRV_VIDEO_START(m90)
   625: 	MDRV_VIDEO_UPDATE(m90)
   626: 
   627: 	/* sound hardware */
   628: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   629: 	MDRV_SOUND_ADD(DAC, dac_interface)
   630: MACHINE_DRIVER_END
   631: 
   632: /***************************************************************************/
   633: 
   634: #define CODE_SIZE 0x100000 
   635: 
   636: ROM_START( hasamu )
   637: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   638: 	ROM_LOAD16_BYTE( "hasc-p1.bin",  0x00001, 0x20000, CRC(53df9834) SHA1(2e7e38157a497e3def69c4abcae5803f71a098da) )
   639: 	ROM_LOAD16_BYTE( "hasc-p0.bin",  0x00000, 0x20000, CRC(dff0ba6e) SHA1(83e20b3ae10b57c1e58d3d44bfca2ffd5f142056) )
   640: 	ROM_COPY( REGION_CPU1, 0x3fff0,  0xffff0, 0x10 )	/* start vector */
   641: 
   642: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   643: 	ROM_LOAD( "hasc-sp.bin",    0x0000, 0x10000, CRC(259b1687) SHA1(39c3a89b1d0f5fec2a94a3048cc4639fe96820e2) )
   644: 
   645: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
   646: 	ROM_LOAD( "hasc-c0.bin",    0x000000, 0x20000, CRC(dd5a2174) SHA1(c28499419f961d126a838dd1390db74c1475ee02) )
   647: 	ROM_LOAD( "hasc-c1.bin",    0x020000, 0x20000, CRC(76b8217c) SHA1(8b21562875d856a1ce4863f325d049090f5716ae) )
   648: 	ROM_LOAD( "hasc-c2.bin",    0x040000, 0x20000, CRC(d90f9a68) SHA1(c9eab3e87dd5d3eb88461be493d88f5482c9e257) )
   649: 	ROM_LOAD( "hasc-c3.bin",    0x060000, 0x20000, CRC(6cfe0d39) SHA1(104feeacbbc86b168c41cd37fc5797781d9b5a0f) )
   650: 
   651: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* samples */
   652: 	/* No samples */
   653: ROM_END
   654: 
   655: ROM_START( bombrman )
   656: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   657: 	ROM_LOAD16_BYTE( "bbm-p1.bin",   0x00001, 0x20000, CRC(982bd166) SHA1(ed67393ec319127616bff5fa3b7f84e8ac8e1d93) )
   658: 	ROM_LOAD16_BYTE( "bbm-p0.bin",   0x00000, 0x20000, CRC(0a20afcc) SHA1(a42b7458938300b0c84c820c1ea627aed9080f1b) )
   659: 	ROM_COPY( REGION_CPU1, 0x3fff0,  0xffff0, 0x10 )	/* start vector */
   660: 
   661: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   662: 	ROM_LOAD( "bbm-sp.bin",    0x0000, 0x10000, CRC(251090cd) SHA1(9245072c1afbfa3e4a1d1549942765d58bd78ed3) )
   663: 
   664: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
   665: 	ROM_LOAD( "bbm-c0.bin",    0x000000, 0x40000, CRC(695d2019) SHA1(3537e9fb0e7dc13d6113b4af71cba3c73392335a) )
   666: 	ROM_LOAD( "bbm-c1.bin",    0x040000, 0x40000, CRC(4c7c8bbc) SHA1(31ab5557d96c4184a9c02ed1c309f3070d148e25) )
   667: 	ROM_LOAD( "bbm-c2.bin",    0x080000, 0x40000, CRC(0700d406) SHA1(0d43a31a726b0de0004beef41307de2508106b69) )
   668: 	ROM_LOAD( "bbm-c3.bin",    0x0c0000, 0x40000, CRC(3c3613af) SHA1(f9554a73e95102333e449f6e81f2bb817ec00881) )
   669: 
   670: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* samples */
   671: 	ROM_LOAD( "bbm-v0.bin",    0x0000, 0x20000, CRC(0fa803fe) SHA1(d2ac1e624de38bed385442ceae09a76f203fa084) )
   672: ROM_END
   673: 
   674: ROM_START( dynablsb )
   675: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )
   676: 	ROM_LOAD16_BYTE( "db2-26.bin",   0x00001, 0x20000, CRC(a78c72f8) )
   677: 	ROM_LOAD16_BYTE( "db3-25.bin",   0x00000, 0x20000, CRC(bf3137c3) )
   678: 	ROM_COPY( REGION_CPU1, 0x3fff0,  0xffff0, 0x10 )	/* start vector */
   679: 
   680: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   681: 	ROM_LOAD( "db1-17.bin",    0x0000, 0x10000, CRC(e693c32f) )
   682: 
   683: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
   684: 	ROM_LOAD( "bbm-c0.bin",    0x000000, 0x40000, CRC(695d2019) SHA1(3537e9fb0e7dc13d6113b4af71cba3c73392335a) )
   685: 	ROM_LOAD( "bbm-c1.bin",    0x040000, 0x40000, CRC(4c7c8bbc) SHA1(31ab5557d96c4184a9c02ed1c309f3070d148e25) )
   686: 	ROM_LOAD( "bbm-c2.bin",    0x080000, 0x40000, CRC(0700d406) SHA1(0d43a31a726b0de0004beef41307de2508106b69) )
   687: 	ROM_LOAD( "bbm-c3.bin",    0x0c0000, 0x40000, CRC(3c3613af) SHA1(f9554a73e95102333e449f6e81f2bb817ec00881) )
   688: 
   689: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* samples */
   690: 	/* Does this have a sample rom? */
   691: ROM_END
   692: 
   693: ROM_START( bbmanw )
   694: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   695: 	ROM_LOAD16_BYTE( "db_h0-b.rom",  0x00001, 0x40000, CRC(567d3709) SHA1(1447fc68798589a8757ee2d133d053b80f052113) )
   696: 	ROM_LOAD16_BYTE( "db_l0-b.rom",  0x00000, 0x40000, CRC(e762c22b) SHA1(b389a65adf1348e6529a992d9b68178d7503238e) )
   697: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   698: 
   699: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   700: 	ROM_LOAD( "db_sp.rom",    0x0000, 0x10000, CRC(6bc1689e) SHA1(099c275632965e19eb6131863f69d2afa9916e90) )
   701: 
   702: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   703: 	ROM_LOAD( "bbm2_c0.bin",  0x000000, 0x40000, CRC(e7ce058a) SHA1(f2336718ecbce4771f27abcdc4d28fe91c702a9e) )
   704: 	ROM_LOAD( "bbm2_c1.bin",  0x080000, 0x40000, CRC(636a78a9) SHA1(98562ea056e5bd36c1a094ae6f267367236d166f) )
   705: 	ROM_LOAD( "bbm2_c2.bin",  0x100000, 0x40000, CRC(9ac2142f) SHA1(744fe1acae2fcba0051c303b644081546b4aed9e) )
   706: 	ROM_LOAD( "bbm2_c3.bin",  0x180000, 0x40000, CRC(47af1750) SHA1(dce176a6ca95852208b6eba7fb88a0d96467c34b) )
   707: 
   708: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )
   709: 	ROM_LOAD( "db_w04m.rom",    0x0000, 0x20000, CRC(4ad889ed) SHA1(b685892a2348f17f89c6d6ce91216f6cf1e33751) )
   710: ROM_END
   711: 
   712: ROM_START( bbmanwj )
   713: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   714: 	ROM_LOAD16_BYTE( "bbm2_h0.bin",  0x00001, 0x40000, CRC(e1407b91) SHA1(6c94afc6b1d2a469295890ee5dd9d9d5a02ae5c4) )
   715: 	ROM_LOAD16_BYTE( "bbm2_l0.bin",  0x00000, 0x40000, CRC(20873b49) SHA1(30ae595f7961cd56f2506608ae76973b2d0e73ca) )
   716: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   717: 
   718: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   719: 	ROM_LOAD( "bbm2sp-b.bin", 0x0000, 0x10000, CRC(b8d8108c) SHA1(ef4fb46d843819c273db2083754eb312f5abd44e) )
   720: 
   721: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   722: 	ROM_LOAD( "bbm2_c0.bin",  0x000000, 0x40000, CRC(e7ce058a) SHA1(f2336718ecbce4771f27abcdc4d28fe91c702a9e) )
   723: 	ROM_LOAD( "bbm2_c1.bin",  0x080000, 0x40000, CRC(636a78a9) SHA1(98562ea056e5bd36c1a094ae6f267367236d166f) )
   724: 	ROM_LOAD( "bbm2_c2.bin",  0x100000, 0x40000, CRC(9ac2142f) SHA1(744fe1acae2fcba0051c303b644081546b4aed9e) )
   725: 	ROM_LOAD( "bbm2_c3.bin",  0x180000, 0x40000, CRC(47af1750) SHA1(dce176a6ca95852208b6eba7fb88a0d96467c34b) )
   726: 
   727: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* samples */
   728: 	ROM_LOAD( "bbm2_vo.bin",  0x0000, 0x20000, CRC(0ae655ff) SHA1(78752182662fd8f5b55bbbc2787c9f2b04096ea1) )
   729: ROM_END
   730: 
   731: ROM_START( atompunk )
   732: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   733: 	ROM_LOAD16_BYTE( "bm2-ho-a.9f",  0x00001, 0x40000, CRC(7d858682) SHA1(03580e2903becb69766023585c6ecffbb8e0b9c5) )
   734: 	ROM_LOAD16_BYTE( "bm2-lo-a.9k",  0x00000, 0x40000, CRC(c7568031) SHA1(ff4d0809260a088f530098a0173eec16fa6396f1) )
   735: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   736: 
   737: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   738: 	ROM_LOAD( "db_sp.rom",             0x0000, 0x10000, CRC(6bc1689e) SHA1(099c275632965e19eb6131863f69d2afa9916e90) )
   739: 
   740: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   741: 	ROM_LOAD( "bbm2_c0.bin",  0x000000, 0x40000, CRC(e7ce058a) SHA1(f2336718ecbce4771f27abcdc4d28fe91c702a9e) )
   742: 	ROM_LOAD( "bbm2_c1.bin",  0x080000, 0x40000, CRC(636a78a9) SHA1(98562ea056e5bd36c1a094ae6f267367236d166f) )
   743: 	ROM_LOAD( "bbm2_c2.bin",  0x100000, 0x40000, CRC(9ac2142f) SHA1(744fe1acae2fcba0051c303b644081546b4aed9e) )
   744: 	ROM_LOAD( "bbm2_c3.bin",  0x180000, 0x40000, CRC(47af1750) SHA1(dce176a6ca95852208b6eba7fb88a0d96467c34b) )
   745: 
   746: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* samples */
   747: 	ROM_LOAD( "db_w04m.rom",           0x0000, 0x20000, CRC(4ad889ed) SHA1(b685892a2348f17f89c6d6ce91216f6cf1e33751) )
   748: ROM_END
   749: 
   750: ROM_START( quizf1 )
   751: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   752: 	ROM_LOAD16_BYTE( "qf1-h0-.77",   0x000001, 0x40000, CRC(280e3049) SHA1(3b1f303d803f844fd260ed93e4d12a72876e4dbe) )
   753: 	ROM_LOAD16_BYTE( "qf1-l0-.79",   0x000000, 0x40000, CRC(94588a6f) SHA1(ee912739c7719fc2b099da0c63f7473eedcfc718) )
   754: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   755: 
   756: 	ROM_REGION( 0x100000, REGION_USER1, 0 )
   757: 	ROM_LOAD16_BYTE( "qf1-h1-.78",   0x000001, 0x80000, CRC(c6c2eb2b) SHA1(83de08b0c72da8c3e4786063802d83cb1015032a) )	/* banked at 80000-8FFFF */
   758: 	ROM_LOAD16_BYTE( "qf1-l1-.80",   0x000000, 0x80000, CRC(3132c144) SHA1(de3ae35cdfbb1231cab343142ac700df00f9b77a) )
   759: 
   760: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   761: 	ROM_LOAD( "qf1-sp-.33",   0x0000, 0x10000, CRC(0664fa9f) SHA1(db003beb4f8461bf4411efa8df9f700770fb153b) )
   762: 
   763: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   764: 	ROM_LOAD( "qf1-c0-.81",   0x000000, 0x80000, CRC(c26b521e) SHA1(eb5d33a21d1f82e361e0c0945abcf42562c32f03) )
   765: 	ROM_LOAD( "qf1-c1-.82",   0x080000, 0x80000, CRC(db9d7394) SHA1(06b41288c41df8ae0cafb53e77b519d0419cf1d9) )
   766: 	ROM_LOAD( "qf1-c2-.83",   0x100000, 0x80000, CRC(0b1460ae) SHA1(c6394e6bb2a4e3722c20d9f291cb6ba7aad5766d) )
   767: 	ROM_LOAD( "qf1-c3-.84",   0x180000, 0x80000, CRC(2d32ff37) SHA1(f414f6bad1ffc4396fd757155e602bdefdc99408) )
   768: 
   769: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* samples */
   770: 	ROM_LOAD( "qf1-v0-.30",   0x0000, 0x40000, CRC(b8d16e7c) SHA1(28a20afb171dc68848f9fe793f53571d4c7502dd) )
   771: ROM_END
   772: 
   773: ROM_START( riskchal )
   774: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   775: 	ROM_LOAD16_BYTE( "rc_h0.rom",    0x00001, 0x40000, CRC(4c9b5344) )
   776: 	ROM_LOAD16_BYTE( "rc_l0.rom",    0x00000, 0x40000, CRC(0455895a) )
   777: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   778: 
   779: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   780: 	ROM_LOAD( "rc_sp.rom",    0x0000, 0x10000, CRC(bb80094e) )
   781: 
   782: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   783: 	ROM_LOAD( "rc_c0.rom",    0x000000, 0x80000, CRC(84d0b907) )
   784: 	ROM_LOAD( "rc_c1.rom",    0x080000, 0x80000, CRC(cb3784ef) )
   785: 	ROM_LOAD( "rc_c2.rom",    0x100000, 0x80000, CRC(687164d7) )
   786: 	ROM_LOAD( "rc_c3.rom",    0x180000, 0x80000, CRC(c86be6af) )
   787: 
   788: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* samples */
   789: 	ROM_LOAD( "rc_v0.rom",    0x0000, 0x40000, CRC(cddac360) )
   790: ROM_END
   791: 
   792: ROM_START( gussun )
   793: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   794: 	ROM_LOAD16_BYTE( "l4_h0.rom",    0x00001, 0x40000, CRC(9d585e61) )
   795: 	ROM_LOAD16_BYTE( "l4_l0.rom",    0x00000, 0x40000, CRC(c7b4c519) )
   796: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   797: 
   798: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   799: 	ROM_LOAD( "rc_sp.rom",    0x0000, 0x10000, CRC(bb80094e) )
   800: 
   801: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   802: 	ROM_LOAD( "rc_c0.rom",    0x000000, 0x80000, CRC(84d0b907) )
   803: 	ROM_LOAD( "rc_c1.rom",    0x080000, 0x80000, CRC(cb3784ef) )
   804: 	ROM_LOAD( "rc_c2.rom",    0x100000, 0x80000, CRC(687164d7) )
   805: 	ROM_LOAD( "rc_c3.rom",    0x180000, 0x80000, CRC(c86be6af) )
   806: 
   807: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* samples */
   808: 	ROM_LOAD( "rc_v0.rom",    0x0000, 0x40000, CRC(cddac360) )
   809: ROM_END
   810: 
   811: ROM_START( shisen2 )
   812: 	ROM_REGION( CODE_SIZE * 2, REGION_CPU1, 0 )
   813: 	ROM_LOAD16_BYTE( "sis2-ho-.rom", 0x00001, 0x40000, CRC(6fae0aea) )
   814: 	ROM_LOAD16_BYTE( "sis2-lo-.rom", 0x00000, 0x40000, CRC(2af25182) )
   815: 	ROM_COPY( REGION_CPU1, 0x7fff0,  0xffff0, 0x10 )	/* start vector */
   816: 
   817: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
   818: 	ROM_LOAD( "sis2-sp-.rom", 0x0000, 0x10000, CRC(6fc0ff3a) )
   819: 
   820: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
   821: 	ROM_LOAD( "ic81.rom",     0x000000, 0x80000, CRC(5a7cb88f) )
   822: 	ROM_LOAD( "ic82.rom",     0x080000, 0x80000, CRC(54a7852c) )
   823: 	ROM_LOAD( "ic83.rom",     0x100000, 0x80000, CRC(2bd65dc6) )
   824: 	ROM_LOAD( "ic84.rom",     0x180000, 0x80000, CRC(876d5fdb) )
   825: ROM_END
   826: 
   827: 
   828: 
   829: static DRIVER_INIT( hasamu )
   830: {
   831: 	irem_cpu_decrypt(0,gunforce_decryption_table);
   832: }
   833: 
   834: static DRIVER_INIT( bombrman )
   835: {
   836: 	irem_cpu_decrypt(0,bomberman_decryption_table);
   837: }
   838: 
   839: /* Bomberman World executes encrypted code from RAM! */
   840: static WRITE_HANDLER (bbmanw_ram_write)
   841: {
   842: 	unsigned char *RAM = memory_region(REGION_CPU1);
   843: 	RAM[0x0a0c00+offset]=data;
   844: 	RAM[0x1a0c00+offset]=dynablaster_decryption_table[data];
   845: }
   846: 
   847: static DRIVER_INIT( bbmanw )
   848: {
   849: 	irem_cpu_decrypt(0,dynablaster_decryption_table);
   850: 
   851: 	install_mem_write_handler(0, 0xa0c00, 0xa0cff, bbmanw_ram_write);
   852: }
   853: 
   854: static DRIVER_INIT( quizf1 )
   855: {
   856: 	irem_cpu_decrypt(0,lethalth_decryption_table);
   857: 
   858: 	bankaddress = 0;
   859: 	set_m90_bank();
   860: 
   861: 	state_save_register_int("main", 0, "bankaddress", &bankaddress);
   862: 	state_save_register_func_postload(set_m90_bank);
   863: }
   864: 
   865: static DRIVER_INIT( riskchal )
   866: {
   867: 	irem_cpu_decrypt(0,gussun_decryption_table);
   868: }
   869: 
   870: static DRIVER_INIT( shisen2 )
   871: {
   872: 	irem_cpu_decrypt(0,shisen2_decryption_table);
   873: }
   874: 
   875: 
   876: 
   877: GAMEX(1991, hasamu,   0,        m90,      hasamu,   hasamu,   ROT0, "Irem", "Hasamu (Japan)", GAME_NO_COCKTAIL )
   878: GAMEX(1991, bbmanw,   0,        bbmanw,   bbmanw,   bbmanw,   ROT0, "Irem", "Bomber Man World (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
   879: GAMEX(1991, bbmanwj,  bbmanw,   bombrman, bbmanw,   bbmanw,   ROT0, "Irem", "Bomber Man World (Japan)", GAME_NO_COCKTAIL )
   880: GAMEX(1992, bombrman, 0,        bombrman, bombrman, bombrman, ROT0, "Irem (licensed from Hudson Soft)", "Bomberman (Japan)", GAME_NO_COCKTAIL )
   881: GAMEX(1992, dynablsb, bombrman, bootleg,  bombrman, 0,        ROT0, "bootleg", "Dynablaster (bootleg)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
   882: GAMEX(1992, atompunk, bbmanw,   bbmanw,   bbmanw,   bbmanw,   ROT0, "Irem America", "New Atomic Punk - Global Quest (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
   883: GAMEX(1992, quizf1,   0,        quizf1,   quizf1,   quizf1,   ROT0, "Irem", "Quiz F-1 1,2finish", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
   884: GAMEX(1993, riskchal, 0,        m90,      m97,      riskchal, ROT0, "Irem", "Risky Challenge", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
   885: GAMEX(1993, gussun,   riskchal, m90,      m97,      riskchal, ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
   886: GAMEX(1993, shisen2,  0,        m90,      m97,      shisen2,  ROT0, "Tamtex", "Shisensho II", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
   887: 




powered by ggdb.com this page took approx. 0.008s