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

Coin-Op : Arcade : Kuri Kinton : VM Driver Source

Source Listing


     1: /*
     2:   Taito L-System
     3: 
     4:   Monoprocessor games (1 main z80, no sound z80)
     5:   - Plotting
     6:   - Puzznic
     7:   - Palamedes
     8:   - Cachat / Tube-It
     9:   - American Horseshoes
    10:   - Play Girls
    11:   - Play Girls 2
    12:   - Cuby Bop
    13:   
    14:   Dual processor games
    15:   - Kuri Kinton
    16:   - Evil Stone
    17: 
    18:   Triple processor games (2 main z80, 1 sound z80)
    19:   - Fighting hawk
    20:   - Raimais
    21:   - Champion Wrestler
    22: 
    23: Notes:
    24: - the system uses RAM based characters, which aren't really supported by the
    25:   TileMap system, so we have to tilemap_mark_all_tiles_dirty() to compensate
    26: - kurikina has some debug dip switches (invulnerability, slow motion) so might
    27:   be a prototype. It also doesn't have service mode (or has it disabled).
    28: 
    29: TODO:
    30: - champwr ADPCM interface is not entirely understood, it involves also addresses
    31:   0xd000 and 0xe000, and maybe also YM2203 port B.
    32: - slowdowns in fhawk, probably the interrupts have to be generated at a
    33:   different time.
    34: - plgirls doesn't work without a kludge because of an interrupt issue. This
    35:   happens because the program enables interrupts before setting IM2, so the
    36:   interrupt vector is interpreted as IM0, which is obviously bogus.
    37: - The  puzznic protection is worked around,  but I'm not happy with it
    38:   (the 68705-returned values are wrong, I'm sure of that).
    39: - A bunch of control registers are simply ignored
    40: - The source of   irqs 0 and  1 is  unknown, while  2 is vblank  (0 is
    41:   usually   ignored  by the  program,    1   leads  to  reading    the
    42:   ports... maybe vbl-in, vbl-out and hblank ?).
    43: - Text Plane colours are only right in Cuby Bop once you've started a game
    44:   & reset
    45: - Scrolling in Cuby Bop's Game seems incorrect.
    46: 
    47: */
    48: 
    49: 
    50: #include "driver.h" 
    51: #include "cpu/z80/z80.h" 
    52: #include "sndhrdw/taitosnd.h" 
    53: 
    54: VIDEO_EOF( taitol );
    55: VIDEO_START( taitol );
    56: VIDEO_UPDATE( taitol );
    57: 
    58: void taitol_chardef14_m(int offset);
    59: void taitol_chardef15_m(int offset);
    60: void taitol_chardef16_m(int offset);
    61: void taitol_chardef17_m(int offset);
    62: void taitol_chardef1c_m(int offset);
    63: void taitol_chardef1d_m(int offset);
    64: void taitol_chardef1e_m(int offset);
    65: void taitol_chardef1f_m(int offset);
    66: void taitol_bg18_m(int offset);
    67: void taitol_bg19_m(int offset);
    68: void taitol_char1a_m(int offset);
    69: void taitol_obj1b_m(int offset);
    70: 
    71: WRITE_HANDLER( taitol_control_w );
    72: READ_HANDLER( taitol_control_r );
    73: WRITE_HANDLER( horshoes_bankg_w );
    74: WRITE_HANDLER( taitol_bankc_w );
    75: READ_HANDLER( taitol_bankc_r );
    76: 
    77: 
    78: 
    79: static void (*rambank_modify_notifiers[12])(int) =
    80: {
    81: 	taitol_chardef14_m,	// 14
    82: 	taitol_chardef15_m,	// 15
    83: 	taitol_chardef16_m,	// 16
    84: 	taitol_chardef17_m,	// 17
    85: 
    86: 	taitol_bg18_m,		// 18
    87: 	taitol_bg19_m,		// 19
    88: 	taitol_char1a_m,	// 1a
    89: 	taitol_obj1b_m,		// 1b
    90: 
    91: 	taitol_chardef1c_m,	// 1c
    92: 	taitol_chardef1d_m,	// 1d
    93: 	taitol_chardef1e_m,	// 1e
    94: 	taitol_chardef1f_m,	// 1f
    95: };
    96: 
    97: static void (*current_notifier[4])(int);
    98: static unsigned char *current_base[4];
    99: 
   100: static int cur_rombank, cur_rombank2, cur_rambank[4];
   101: static int irq_adr_table[3];
   102: static int irq_enable = 0;
   103: 
   104: unsigned char *taitol_rambanks;
   105: 
   106: static unsigned char *palette_ram;
   107: static unsigned char *empty_ram;
   108: static unsigned char *shared_ram;
   109: 
   110: static mem_read_handler porte0_r;
   111: static mem_read_handler porte1_r;
   112: static mem_read_handler portf0_r;
   113: static mem_read_handler portf1_r;
   114: 
   115: static void palette_notifier(int addr)
   116: {
   117: 	unsigned char *p = palette_ram + (addr & ~1);
   118: 	unsigned char byte0 = *p++;
   119: 	unsigned char byte1 = *p;
   120: 
   121: 	unsigned int b = (byte1 & 0xf) * 0x11;
   122: 	unsigned int g = ((byte0 & 0xf0)>>4) * 0x11;
   123: 	unsigned int r = (byte0 & 0xf) * 0x11;
   124: 
   125: 	//	addr &= 0x1ff;
   126: 
   127: 	if(addr > 0x200)
   128: 	{
   129: logerror("Large palette ? %03x (%04x)\n", addr, activecpu_get_pc());
   130: 	}
   131: 	else
   132: 	{
   133: 		//		r = g = b = ((addr & 0x1e) != 0)*255;
   134: 		palette_set_color(addr/2, r, g, b);
   135: 	}
   136: }
   137: 
   138: static void machine_init(void)
   139: {
   140: 	int i;
   141: 
   142: 	taitol_rambanks = auto_malloc(0x1000*12);
   143: 	palette_ram = auto_malloc(0x1000);
   144: 	empty_ram = auto_malloc(0x1000);
   145: 
   146: 	for(i=0;i<3;i++)
   147: 		irq_adr_table[i] = 0;
   148: 
   149: 	irq_enable = 0;
   150: 
   151: 	for(i=0;i<4;i++)
   152: 	{
   153: 		cur_rambank[i] = 0x80;
   154: 		current_base[i] = palette_ram;
   155: 		current_notifier[i] = palette_notifier;
   156: 		cpu_setbank(2+i, current_base[i]);
   157: 	}
   158: 	cur_rombank = cur_rombank2 = 0;
   159: 	cpu_setbank(1, memory_region(REGION_CPU1) + 0x10000);
   160: 
   161: 	for(i=0;i<512;i++)
   162: 	{
   163: 		decodechar(Machine->gfx[2], i, taitol_rambanks,
   164: 				   Machine->drv->gfxdecodeinfo[2].gfxlayout);
   165: 		decodechar(Machine->gfx[2], i+512, taitol_rambanks + 0x4000,
   166: 				   Machine->drv->gfxdecodeinfo[2].gfxlayout);
   167: 	}
   168: }
   169: 
   170: 
   171: static MACHINE_INIT( fhawk )
   172: {
   173: 	machine_init();
   174: 	porte0_r = 0;
   175: 	porte1_r = 0;
   176: 	portf0_r = 0;
   177: 	portf1_r = 0;
   178: }
   179: 
   180: static MACHINE_INIT( raimais )
   181: {
   182: 	machine_init();
   183: 	porte0_r = 0;
   184: 	porte1_r = 0;
   185: 	portf0_r = 0;
   186: 	portf1_r = 0;
   187: }
   188: 
   189: static MACHINE_INIT( champwr )
   190: {
   191: 	machine_init();
   192: 	porte0_r = 0;
   193: 	porte1_r = 0;
   194: 	portf0_r = 0;
   195: 	portf1_r = 0;
   196: }
   197: 
   198: 
   199: static MACHINE_INIT( kurikint )
   200: {
   201: 	machine_init();
   202: 	porte0_r = 0;
   203: 	porte1_r = 0;
   204: 	portf0_r = 0;
   205: 	portf1_r = 0;
   206: }
   207: 
   208: static MACHINE_INIT( evilston )
   209: {
   210: 	machine_init();
   211: 	porte0_r = 0;
   212: 	porte1_r = 0;
   213: 	portf0_r = 0;
   214: 	portf1_r = 0;
   215: }
   216: 
   217: static MACHINE_INIT( puzznic )
   218: {
   219: 	machine_init();
   220: 	porte0_r = input_port_0_r;
   221: 	porte1_r = input_port_1_r;
   222: 	portf0_r = input_port_2_r;
   223: 	portf1_r = input_port_3_r;
   224: }
   225: 
   226: static MACHINE_INIT( plotting )
   227: {
   228: 	machine_init();
   229: 	porte0_r = input_port_0_r;
   230: 	porte1_r = input_port_1_r;
   231: 	portf0_r = input_port_2_r;
   232: 	portf1_r = input_port_3_r;
   233: }
   234: 
   235: static MACHINE_INIT( palamed )
   236: {
   237: 	machine_init();
   238: 	porte0_r = input_port_0_r;
   239: 	porte1_r = 0;
   240: 	portf0_r = input_port_1_r;
   241: 	portf1_r = 0;
   242: }
   243: 
   244: static MACHINE_INIT( cachat )
   245: {
   246: 	machine_init();
   247: 	porte0_r = input_port_0_r;
   248: 	porte1_r = 0;
   249: 	portf0_r = input_port_1_r;
   250: 	portf1_r = 0;
   251: }
   252: 
   253: static MACHINE_INIT( horshoes )
   254: {
   255: 	machine_init();
   256: 	porte0_r = input_port_0_r;
   257: 	porte1_r = input_port_1_r;
   258: 	portf0_r = input_port_2_r;
   259: 	portf1_r = input_port_3_r;
   260: }
   261: 
   262: 
   263: 
   264: static INTERRUPT_GEN( vbl_interrupt )
   265: {
   266: 	/* kludge to make plgirls boot */
   267: 	if (cpunum_get_reg(0,Z80_IM) != 2) return;
   268: 
   269: 	// What is really generating interrupts 0 and 1 is still to be found
   270: 
   271: 	if (cpu_getiloops() == 1 && (irq_enable & 1))
   272: 		cpu_set_irq_line_and_vector(0, 0, HOLD_LINE, irq_adr_table[0]);
   273: 	else if (cpu_getiloops() == 2 && (irq_enable & 2))
   274: 		cpu_set_irq_line_and_vector(0, 0, HOLD_LINE, irq_adr_table[1]);
   275: 	else if (cpu_getiloops() == 0 && (irq_enable & 4))
   276: 		cpu_set_irq_line_and_vector(0, 0, HOLD_LINE, irq_adr_table[2]);
   277: }
   278: 
   279: static WRITE_HANDLER( irq_adr_w )
   280: {
   281: //logerror("irq_adr_table[%d] = %02x\n",offset,data);
   282: 	irq_adr_table[offset] = data;
   283: }
   284: 
   285: static READ_HANDLER( irq_adr_r )
   286: {
   287: 	return irq_adr_table[offset];
   288: }
   289: 
   290: static WRITE_HANDLER( irq_enable_w )
   291: {
   292: //logerror("irq_enable = %02x\n",data);
   293: 	irq_enable = data;
   294: }
   295: 
   296: static READ_HANDLER( irq_enable_r )
   297: {
   298: 	return irq_enable;
   299: }
   300: 
   301: 
   302: static WRITE_HANDLER( rombankswitch_w )
   303: {
   304: 	static int high = 0;
   305: 	if(cur_rombank != data)
   306: 	{
   307: 		if(data>high)
   308: 		{
   309: 			high = data;
   310: 			logerror("New rom size : %x\n", (high+1)*0x2000);
   311: 		}
   312: 
   313: //		logerror("robs %d, %02x (%04x)\n", offset, data, activecpu_get_pc());
   314: 		cur_rombank = data;
   315: 		cpu_setbank(1, memory_region(REGION_CPU1)+0x10000+0x2000*cur_rombank);
   316: 	}
   317: }
   318: 
   319: static WRITE_HANDLER( rombank2switch_w )
   320: {
   321: 	static int high = 0;
   322: 
   323: 	data &= 0xf;
   324: 
   325: 	if(cur_rombank2 != data)
   326: 	{
   327: 		if(data>high)
   328: 		{
   329: 			high = data;
   330: 			logerror("New rom2 size : %x\n", (high+1)*0x4000);
   331: 		}
   332: 
   333: //		logerror("robs2 %02x (%04x)\n", data, activecpu_get_pc());
   334: 
   335: 		cur_rombank2 = data;
   336: 		cpu_setbank(6, memory_region(REGION_CPU3)+0x10000+0x4000*cur_rombank2);
   337: 	}
   338: }
   339: 
   340: static READ_HANDLER( rombankswitch_r )
   341: {
   342: 	return cur_rombank;
   343: }
   344: 
   345: static READ_HANDLER( rombank2switch_r )
   346: {
   347: 	return cur_rombank2;
   348: }
   349: 
   350: static WRITE_HANDLER( rambankswitch_w )
   351: {
   352: 	if(cur_rambank[offset]!=data)
   353: 	{
   354: 		cur_rambank[offset]=data;
   355: //logerror("rabs %d, %02x (%04x)\n", offset, data, activecpu_get_pc());
   356: 		if(data>=0x14 && data<=0x1f)
   357: 		{
   358: 			data -= 0x14;
   359: 			current_notifier[offset] = rambank_modify_notifiers[data];
   360: 			current_base[offset] = taitol_rambanks+0x1000*data;
   361: 		}
   362: 		else if (data == 0x80)
   363: 		{
   364: 			current_notifier[offset] = palette_notifier;
   365: 			current_base[offset] = palette_ram;
   366: 		}
   367: 		else
   368: 		{
   369: logerror("unknown rambankswitch %d, %02x (%04x)\n", offset, data, activecpu_get_pc());
   370: 			current_notifier[offset] = 0;
   371: 			current_base[offset] = empty_ram;
   372: 		}
   373: 		cpu_setbank(2+offset, current_base[offset]);
   374: 	}
   375: }
   376: 
   377: static READ_HANDLER( rambankswitch_r )
   378: {
   379: 	return cur_rambank[offset];
   380: }
   381: 
   382: static WRITE_HANDLER( bank0_w )
   383: {
   384: 	if(current_base[0][offset]!=data)
   385: 	{
   386: 		current_base[0][offset] = data;
   387: 		if(current_notifier[0])
   388: 			current_notifier[0](offset);
   389: 	}
   390: }
   391: 
   392: static WRITE_HANDLER( bank1_w )
   393: {
   394: 	if(current_base[1][offset]!=data)
   395: 	{
   396: 		current_base[1][offset] = data;
   397: 		if(current_notifier[1])
   398: 			current_notifier[1](offset);
   399: 	}
   400: }
   401: 
   402: static WRITE_HANDLER( bank2_w )
   403: {
   404: 	if(current_base[2][offset]!=data)
   405: 	{
   406: 		current_base[2][offset] = data;
   407: 		if(current_notifier[2])
   408: 			current_notifier[2](offset);
   409: 	}
   410: }
   411: 
   412: static WRITE_HANDLER( bank3_w )
   413: {
   414: 	if(current_base[3][offset]!=data)
   415: 	{
   416: 		current_base[3][offset] = data;
   417: 		if(current_notifier[3])
   418: 			current_notifier[3](offset);
   419: 	}
   420: }
   421: 
   422: static WRITE_HANDLER( control2_w )
   423: {
   424: 	coin_lockout_w(0,~data & 0x01);
   425: 	coin_lockout_w(1,~data & 0x02);
   426: 	coin_counter_w(0,data & 0x04);
   427: 	coin_counter_w(1,data & 0x08);
   428: }
   429: 
   430: static int extport;
   431: 
   432: static READ_HANDLER( portA_r )
   433: {
   434: 	if (extport == 0) return porte0_r(0);
   435: 	else return porte1_r(0);
   436: }
   437: 
   438: static READ_HANDLER( portB_r )
   439: {
   440: 	if (extport == 0) return portf0_r(0);
   441: 	else return portf1_r(0);
   442: }
   443: 
   444: static READ_HANDLER( ym2203_data0_r )
   445: {
   446: 	extport = 0;
   447: 	return YM2203_read_port_0_r(offset);
   448: }
   449: 
   450: static READ_HANDLER( ym2203_data1_r )
   451: {
   452: 	extport = 1;
   453: 	return YM2203_read_port_0_r(offset);
   454: }
   455: 
   456: static int *mcu_reply;
   457: static int mcu_pos = 0, mcu_reply_len = 0;
   458: static int last_data_adr, last_data;
   459: 
   460: static int puzznic_mcu_reply[] = { 0x50, 0x1f, 0xb6, 0xba, 0x06, 0x03, 0x47, 0x05, 0x00 };
   461: 
   462: static WRITE_HANDLER( mcu_data_w )
   463: {
   464: 	last_data = data;
   465: 	last_data_adr = activecpu_get_pc();
   466: //	logerror("mcu write %02x (%04x)\n", data, activecpu_get_pc());
   467: 	switch(data)
   468: 	{
   469: 	case 0x43:
   470: 		mcu_pos = 0;
   471: 		mcu_reply = puzznic_mcu_reply;
   472: 		mcu_reply_len = sizeof(puzznic_mcu_reply);
   473: 		break;
   474: 	}
   475: }
   476: 
   477: static WRITE_HANDLER( mcu_control_w )
   478: {
   479: //	logerror("mcu control %02x (%04x)\n", data, activecpu_get_pc());
   480: }
   481: 
   482: static READ_HANDLER( mcu_data_r )
   483: {
   484: //	logerror("mcu read (%04x) [%02x, %04x]\n", activecpu_get_pc(), last_data, last_data_adr);
   485: 	if(mcu_pos==mcu_reply_len)
   486: 		return 0;
   487: 
   488: 	return mcu_reply[mcu_pos++];
   489: }
   490: 
   491: static READ_HANDLER( mcu_control_r )
   492: {
   493: //	logerror("mcu control read (%04x)\n", activecpu_get_pc());
   494: 	return 0x1;
   495: }
   496: 
   497: #if 0 
   498: static WRITE_HANDLER( sound_w )
   499: {
   500: 	logerror("Sound_w %02x (%04x)\n", data, activecpu_get_pc());
   501: }
   502: #endif 
   503: 
   504: static READ_HANDLER( shared_r )
   505: {
   506: 	return shared_ram[offset];
   507: }
   508: 
   509: static WRITE_HANDLER( shared_w )
   510: {
   511: 	shared_ram[offset] = data;
   512: }
   513: 
   514: static int mux_ctrl = 0;
   515: 
   516: static READ_HANDLER( mux_r )
   517: {
   518: 	switch(mux_ctrl)
   519: 	{
   520: 	case 0:
   521: 		return input_port_0_r(0);
   522: 	case 1:
   523: 		return input_port_1_r(0);
   524: 	case 2:
   525: 		return input_port_2_r(0);
   526: 	case 3:
   527: 		return input_port_3_r(0);
   528: 	case 7:
   529: 		return input_port_4_r(0);
   530: 	default:
   531: 		logerror("Mux read from unknown port %d (%04x)\n", mux_ctrl, activecpu_get_pc());
   532: 		return 0xff;
   533: 	}
   534: }
   535: 
   536: static WRITE_HANDLER( mux_w )
   537: {
   538: 	switch(mux_ctrl)
   539: 	{
   540: 	case 4:
   541: 		control2_w(0, data);
   542: 		break;
   543: 	default:
   544: 		logerror("Mux write to unknown port %d, %02x (%04x)\n", mux_ctrl, data, activecpu_get_pc());
   545: 	}
   546: }
   547: 
   548: static WRITE_HANDLER( mux_ctrl_w )
   549: {
   550: 	mux_ctrl = data;
   551: }
   552: 
   553: 
   554: 
   555: 
   556: static int champwr_adpcm_start;
   557: 
   558: static WRITE_HANDLER( champwr_adpcm_lo_w )
   559: {
   560: 	champwr_adpcm_start = (champwr_adpcm_start & 0xff00ff) | (data << 8);
   561: }
   562: 
   563: static WRITE_HANDLER( champwr_adpcm_hi_w )
   564: {
   565: 	UINT8 *rom = memory_region(REGION_SOUND1);
   566: 	int romlen = memory_region_length(REGION_SOUND1);
   567: 	int length;
   568: 	int i;
   569: 
   570: 	champwr_adpcm_start = ((champwr_adpcm_start & 0x00ffff) | (data << 16)) & (romlen-1);
   571: 	i = champwr_adpcm_start + 0x20;
   572: 	while (i < romlen && (rom[i] || rom[i+1] || rom[i+2] || rom[i+3]))
   573: 		i += 4;
   574: 	length = i - champwr_adpcm_start;
   575: 
   576: 	ADPCM_play(0,champwr_adpcm_start,length*2);
   577: }
   578: 
   579: 
   580: 
   581: static int trackx,tracky;
   582: 
   583: static READ_HANDLER( horshoes_tracky_reset_r )
   584: {
   585: 	/* reset the trackball counter */
   586: 	tracky = readinputport(4);
   587: 	return 0;
   588: }
   589: 
   590: static READ_HANDLER( horshoes_trackx_reset_r )
   591: {
   592: 	/* reset the trackball counter */
   593: 	trackx = readinputport(5);
   594: 	return 0;
   595: }
   596: 
   597: static READ_HANDLER( horshoes_tracky_lo_r )
   598: {
   599: 	return (readinputport(4) - tracky) & 0xff;
   600: }
   601: 
   602: static READ_HANDLER( horshoes_tracky_hi_r )
   603: {
   604: 	return (readinputport(4) - tracky) >> 8;
   605: }
   606: 
   607: static READ_HANDLER( horshoes_trackx_lo_r )
   608: {
   609: 	return (readinputport(5) - trackx) & 0xff;
   610: }
   611: 
   612: static READ_HANDLER( horshoes_trackx_hi_r )
   613: {
   614: 	return (readinputport(5) - trackx) >> 8;
   615: }
   616: 
   617: 
   618: 
   619: 
   620: #define COMMON_BANKS_READ \ 
   621: 	{ 0x0000, 0x5fff, MRA_ROM },			\
   622: 	{ 0x6000, 0x7fff, MRA_BANK1 },			\
   623: 	{ 0xc000, 0xcfff, MRA_BANK2 },			\
   624: 	{ 0xd000, 0xdfff, MRA_BANK3 },			\
   625: 	{ 0xe000, 0xefff, MRA_BANK4 },			\
   626: 	{ 0xf000, 0xfdff, MRA_BANK5 },			\
   627: 	{ 0xfe00, 0xfe03, taitol_bankc_r },		\
   628: 	{ 0xfe04, 0xfe04, taitol_control_r },	\
   629: 	{ 0xff00, 0xff02, irq_adr_r },			\
   630: 	{ 0xff03, 0xff03, irq_enable_r },		\
   631: 	{ 0xff04, 0xff07, rambankswitch_r },	\
   632: 	{ 0xff08, 0xff08, rombankswitch_r }
   633: 
   634: #define COMMON_BANKS_WRITE \ 
   635: 	{ 0x0000, 0x7fff, MWA_ROM },			\
   636: 	{ 0xc000, 0xcfff, bank0_w },			\
   637: 	{ 0xd000, 0xdfff, bank1_w },			\
   638: 	{ 0xe000, 0xefff, bank2_w },			\
   639: 	{ 0xf000, 0xfdff, bank3_w },			\
   640: 	{ 0xfe00, 0xfe03, taitol_bankc_w },		\
   641: 	{ 0xfe04, 0xfe04, taitol_control_w },	\
   642: 	{ 0xff00, 0xff02, irq_adr_w },			\
   643: 	{ 0xff03, 0xff03, irq_enable_w },		\
   644: 	{ 0xff04, 0xff07, rambankswitch_w },	\
   645: 	{ 0xff08, 0xff08, rombankswitch_w }
   646: 
   647: #define COMMON_SINGLE_READ \ 
   648: 	{ 0xa000, 0xa000, YM2203_status_port_0_r },	\
   649: 	{ 0xa001, 0xa001, ym2203_data0_r },			\
   650: 	{ 0xa003, 0xa003, ym2203_data1_r },			\
   651: 	{ 0x8000, 0x9fff, MRA_RAM }
   652: 
   653: #define COMMON_SINGLE_WRITE \ 
   654: 	{ 0xa000, 0xa000, YM2203_control_port_0_w },	\
   655: 	{ 0xa001, 0xa001, YM2203_write_port_0_w },		\
   656: 	{ 0x8000, 0x9fff, MWA_RAM }
   657: 
   658: 
   659: 
   660: static MEMORY_READ_START( fhawk_readmem )
   661: 	COMMON_BANKS_READ,
   662: 	{ 0x8000, 0x9fff, MRA_RAM },
   663: 	{ 0xa000, 0xbfff, MRA_RAM },
   664: MEMORY_END
   665: 
   666: static MEMORY_WRITE_START( fhawk_writemem )
   667: 	COMMON_BANKS_WRITE,
   668: 	{ 0x8000, 0x9fff, MWA_RAM, &shared_ram },
   669: 	{ 0xa000, 0xbfff, MWA_RAM },
   670: MEMORY_END
   671: 
   672: static MEMORY_READ_START( fhawk_2_readmem )
   673: 	{ 0x0000, 0x7fff, MRA_ROM },
   674: 	{ 0x8000, 0xbfff, MRA_BANK6 },
   675: 	{ 0xc800, 0xc800, MRA_NOP },
   676: 	{ 0xc801, 0xc801, taitosound_comm_r },
   677: 	{ 0xe000, 0xffff, shared_r },
   678: 	{ 0xd000, 0xd000, input_port_0_r },
   679: 	{ 0xd001, 0xd001, input_port_1_r },
   680: 	{ 0xd002, 0xd002, input_port_2_r },
   681: 	{ 0xd003, 0xd003, input_port_3_r },
   682: 	{ 0xd007, 0xd007, input_port_4_r },
   683: MEMORY_END
   684: 
   685: static MEMORY_WRITE_START( fhawk_2_writemem )
   686: 	{ 0x0000, 0xbfff, MWA_ROM },
   687: 	{ 0xc000, 0xc000, rombank2switch_w },
   688: 	{ 0xc800, 0xc800, taitosound_port_w },
   689: 	{ 0xc801, 0xc801, taitosound_comm_w },
   690: 	{ 0xd000, 0xd000, MWA_NOP },	// Direct copy of input port 0
   691: 	{ 0xd004, 0xd004, control2_w },
   692: 	{ 0xd005, 0xd006, MWA_NOP },	// Always 0
   693: 	{ 0xe000, 0xffff, shared_w },
   694: MEMORY_END
   695: 
   696: static MEMORY_READ_START( fhawk_3_readmem )
   697: 	{ 0x0000, 0x3fff, MRA_ROM },
   698: 	{ 0x4000, 0x7fff, MRA_BANK7 },
   699: 	{ 0x8000, 0x9fff, MRA_RAM },
   700: 	{ 0xe000, 0xe000, MRA_NOP },
   701: 	{ 0xe001, 0xe001, taitosound_slave_comm_r },
   702: 	{ 0xf000, 0xf000, YM2203_status_port_0_r },
   703: MEMORY_END
   704: 
   705: static MEMORY_WRITE_START( fhawk_3_writemem )
   706: 	{ 0x0000, 0x7fff, MWA_ROM },
   707: 	{ 0x8000, 0x9fff, MWA_RAM },
   708: 	{ 0xe000, 0xe000, taitosound_slave_port_w },
   709: 	{ 0xe001, 0xe001, taitosound_slave_comm_w },
   710: 	{ 0xf000, 0xf000, YM2203_control_port_0_w },
   711: 	{ 0xf001, 0xf001, YM2203_write_port_0_w },
   712: MEMORY_END
   713: 
   714: static MEMORY_READ_START( raimais_readmem )
   715: 	COMMON_BANKS_READ,
   716: 	{ 0x8000, 0x87ff, MRA_RAM },
   717: 	{ 0x8800, 0x8800, mux_r },
   718: 	{ 0x8801, 0x8801, MRA_NOP },	// Watchdog or interrupt ack (value ignored)
   719: 	{ 0x8c00, 0x8c00, MRA_NOP },
   720: 	{ 0x8c01, 0x8c01, taitosound_comm_r },
   721: 	{ 0xa000, 0xbfff, MRA_RAM },
   722: MEMORY_END
   723: static MEMORY_WRITE_START( raimais_writemem )
   724: 	COMMON_BANKS_WRITE,
   725: 	{ 0x8000, 0x87ff, MWA_RAM, &shared_ram },
   726: 	{ 0x8800, 0x8800, mux_w },
   727: 	{ 0x8801, 0x8801, mux_ctrl_w },
   728: 	{ 0x8c00, 0x8c00, taitosound_port_w },
   729: 	{ 0x8c01, 0x8c01, taitosound_comm_w },
   730: 	{ 0xa000, 0xbfff, MWA_RAM },
   731: MEMORY_END
   732: 
   733: static MEMORY_READ_START( raimais_2_readmem )
   734: 	{ 0x0000, 0xbfff, MRA_ROM },
   735: 	{ 0xc000, 0xdfff, MRA_RAM },
   736: 	{ 0xe000, 0xe7ff, shared_r },
   737: MEMORY_END
   738: 
   739: static MEMORY_WRITE_START( raimais_2_writemem )
   740: 	{ 0x0000, 0xbfff, MWA_ROM },
   741: 	{ 0xc000, 0xdfff, MWA_RAM },
   742: 	{ 0xe000, 0xe7ff, shared_w },
   743: MEMORY_END
   744: 
   745: 
   746: static MEMORY_READ_START( raimais_3_readmem )
   747: 	{ 0x0000, 0x3fff, MRA_ROM },
   748: 	{ 0x4000, 0x7fff, MRA_BANK7 },
   749: 	{ 0xc000, 0xdfff, MRA_RAM },
   750: 	{ 0xe000, 0xe000, YM2610_status_port_0_A_r },
   751: 	{ 0xe001, 0xe001, YM2610_read_port_0_r },
   752: 	{ 0xe002, 0xe002, YM2610_status_port_0_B_r },
   753: 	{ 0xe200, 0xe200, MRA_NOP },
   754: 	{ 0xe201, 0xe201, taitosound_slave_comm_r },
   755: MEMORY_END
   756: 
   757: static WRITE_HANDLER( sound_bankswitch_w )
   758: {
   759: 	unsigned char *RAM = memory_region(REGION_CPU2);
   760: 	int banknum = (data - 1) & 3;
   761: 
   762: 	cpu_setbank (7, &RAM [0x10000 + (banknum * 0x4000)]);
   763: }
   764: 
   765: static MEMORY_WRITE_START( raimais_3_writemem )
   766: 	{ 0x0000, 0x7fff, MWA_ROM },
   767: 	{ 0xc000, 0xdfff, MWA_RAM },
   768: 	{ 0xe000, 0xe000, YM2610_control_port_0_A_w },
   769: 	{ 0xe001, 0xe001, YM2610_data_port_0_A_w },
   770: 	{ 0xe002, 0xe002, YM2610_control_port_0_B_w },
   771: 	{ 0xe003, 0xe003, YM2610_data_port_0_B_w },
   772: 	{ 0xe200, 0xe200, taitosound_slave_port_w },
   773: 	{ 0xe201, 0xe201, taitosound_slave_comm_w },
   774: 	{ 0xe400, 0xe403, MWA_NOP }, /* pan */
   775: 	{ 0xe600, 0xe600, MWA_NOP }, /* ? */
   776: 	{ 0xee00, 0xee00, MWA_NOP }, /* ? */
   777: 	{ 0xf000, 0xf000, MWA_NOP }, /* ? */
   778: 	{ 0xf200, 0xf200, sound_bankswitch_w },
   779: MEMORY_END
   780: 
   781: 
   782: static MEMORY_READ_START( champwr_readmem )
   783: 	COMMON_BANKS_READ,
   784: 	{ 0x8000, 0x9fff, MRA_RAM },
   785: 	{ 0xa000, 0xbfff, MRA_RAM },
   786: MEMORY_END
   787: 
   788: 
   789: static MEMORY_WRITE_START( champwr_writemem )
   790: 	COMMON_BANKS_WRITE,
   791: 	{ 0x8000, 0x9fff, MWA_RAM },
   792: 	{ 0xa000, 0xbfff, MWA_RAM, &shared_ram },
   793: MEMORY_END
   794: 
   795: static MEMORY_READ_START( champwr_2_readmem )
   796: 	{ 0x0000, 0x7fff, MRA_ROM },
   797: 	{ 0x8000, 0xbfff, MRA_BANK6 },
   798: 	{ 0xc000, 0xdfff, shared_r },
   799: 	{ 0xe000, 0xe000, input_port_0_r },
   800: 	{ 0xe001, 0xe001, input_port_1_r },
   801: 	{ 0xe002, 0xe002, input_port_2_r },
   802: 	{ 0xe003, 0xe003, input_port_3_r },
   803: 	{ 0xe007, 0xe007, input_port_4_r },
   804: 	{ 0xe008, 0xe00f, MRA_NOP },
   805: 	{ 0xe800, 0xe800, MRA_NOP },
   806: 	{ 0xe801, 0xe801, taitosound_comm_r },
   807: 	{ 0xf000, 0xf000, rombank2switch_r },
   808: MEMORY_END
   809: 
   810: static MEMORY_WRITE_START( champwr_2_writemem )
   811: 	{ 0x0000, 0xbfff, MWA_ROM },
   812: 	{ 0xc000, 0xdfff, shared_w },
   813: 	{ 0xe000, 0xe000, MWA_NOP },	// Watchdog
   814: 	{ 0xe004, 0xe004, control2_w },
   815: 	{ 0xe800, 0xe800, taitosound_port_w },
   816: 	{ 0xe801, 0xe801, taitosound_comm_w },
   817: 	{ 0xf000, 0xf000, rombank2switch_w },
   818: MEMORY_END
   819: 
   820: static MEMORY_READ_START( champwr_3_readmem )
   821: 	{ 0x0000, 0x3fff, MRA_ROM },
   822: 	{ 0x4000, 0x7fff, MRA_BANK7 },
   823: 	{ 0x8000, 0x8fff, MRA_RAM },
   824: 	{ 0x9000, 0x9000, YM2203_status_port_0_r },
   825: 	{ 0xa000, 0xa000, MRA_NOP },
   826: 	{ 0xa001, 0xa001, taitosound_slave_comm_r },
   827: MEMORY_END
   828: 
   829: static MEMORY_WRITE_START( champwr_3_writemem )
   830: 	{ 0x0000, 0x7fff, MWA_ROM },
   831: 	{ 0x8000, 0x8fff, MWA_RAM },
   832: 	{ 0x9000, 0x9000, YM2203_control_port_0_w },
   833: 	{ 0x9001, 0x9001, YM2203_write_port_0_w },
   834: 	{ 0xa000, 0xa000, taitosound_slave_port_w },
   835: 	{ 0xa001, 0xa001, taitosound_slave_comm_w },
   836: 	{ 0xb000, 0xb000, champwr_adpcm_hi_w },
   837: 	{ 0xc000, 0xc000, champwr_adpcm_lo_w },
   838: 	{ 0xd000, 0xd000, MWA_NOP },	/* ADPCM related */
   839: 	{ 0xe000, 0xe000, MWA_NOP },	/* ADPCM related */
   840: MEMORY_END
   841: 
   842: 
   843: 
   844: static MEMORY_READ_START( kurikint_readmem )
   845: 	COMMON_BANKS_READ,
   846: 	{ 0x8000, 0x9fff, MRA_RAM },
   847: 	{ 0xa000, 0xa7ff, MRA_RAM },
   848: 	{ 0xa800, 0xa800, mux_r },
   849: 	{ 0xa801, 0xa801, MRA_NOP },	// Watchdog or interrupt ack (value ignored)
   850: MEMORY_END
   851: 
   852: static MEMORY_WRITE_START( kurikint_writemem )
   853: 	COMMON_BANKS_WRITE,
   854: 	{ 0x8000, 0x9fff, MWA_RAM },
   855: 	{ 0xa000, 0xa7ff, MWA_RAM, &shared_ram },
   856: 	{ 0xa800, 0xa800, mux_w },
   857: 	{ 0xa801, 0xa801, mux_ctrl_w },
   858: MEMORY_END
   859: 
   860: static MEMORY_READ_START( kurikint_2_readmem )
   861: 	{ 0x0000, 0x7fff, MRA_ROM },
   862: 	{ 0xc000, 0xdfff, MRA_RAM },
   863: 	{ 0xe000, 0xe7ff, shared_r },
   864: 	{ 0xe800, 0xe800, YM2203_status_port_0_r },
   865: #if 0 
   866: 	{ 0xd000, 0xd000, input_port_0_r },
   867: 	{ 0xd001, 0xd001, input_port_1_r },
   868: 	{ 0xd002, 0xd002, input_port_2_r },
   869: 	{ 0xd003, 0xd003, input_port_3_r },
   870: 	{ 0xd007, 0xd007, input_port_4_r },
   871: #endif 
   872: MEMORY_END
   873: 
   874: static MEMORY_WRITE_START( kurikint_2_writemem )
   875: 	{ 0x0000, 0x7fff, MWA_ROM },
   876: 	{ 0xc000, 0xdfff, MWA_RAM },
   877: 	{ 0xe000, 0xe7ff, shared_w },
   878: 	{ 0xe800, 0xe800, YM2203_control_port_0_w },
   879: 	{ 0xe801, 0xe801, YM2203_write_port_0_w },
   880: #if 0 
   881: 	{ 0xc000, 0xc000, rombank2switch_w },
   882: #endif 
   883: MEMORY_END
   884: 
   885: 
   886: 
   887: static MEMORY_READ_START( puzznic_readmem )
   888: 	COMMON_BANKS_READ,
   889: 	COMMON_SINGLE_READ,
   890: 	{ 0xa800, 0xa800, MRA_NOP },	// Watchdog
   891: 	{ 0xb000, 0xb7ff, MRA_RAM },	// Wrong, used to overcome protection
   892: 	{ 0xb800, 0xb800, mcu_data_r },
   893: 	{ 0xb801, 0xb801, mcu_control_r },
   894: MEMORY_END
   895: 
   896: static MEMORY_WRITE_START( puzznic_writemem )
   897: 	COMMON_BANKS_WRITE,
   898: 	COMMON_SINGLE_WRITE,
   899: 	{ 0xb000, 0xb7ff, MWA_RAM },	// Wrong, used to overcome protection
   900: 	{ 0xb800, 0xb800, mcu_data_w },
   901: 	{ 0xb801, 0xb801, mcu_control_w },
   902: 	{ 0xbc00, 0xbc00, MWA_NOP },	// Control register, function unknown
   903: MEMORY_END
   904: 
   905: 
   906: static MEMORY_READ_START( plotting_readmem )
   907: 	COMMON_BANKS_READ,
   908: 	COMMON_SINGLE_READ,
   909: MEMORY_END
   910: 
   911: static MEMORY_WRITE_START( plotting_writemem )
   912: 	COMMON_BANKS_WRITE,
   913: 	COMMON_SINGLE_WRITE,
   914: 	{ 0xa800, 0xa800, MWA_NOP },	// Watchdog or interrupt ack
   915: 	{ 0xb800, 0xb800, MWA_NOP },	// Control register, function unknown
   916: MEMORY_END
   917: 
   918: 
   919: static MEMORY_READ_START( palamed_readmem )
   920: 	COMMON_BANKS_READ,
   921: 	COMMON_SINGLE_READ,
   922: 	{ 0xa800, 0xa800, input_port_2_r },
   923: 	{ 0xa801, 0xa801, input_port_3_r },
   924: 	{ 0xa802, 0xa802, input_port_4_r },
   925: 	{ 0xb001, 0xb001, MRA_NOP },	// Watchdog or interrupt ack
   926: MEMORY_END
   927: 
   928: static MEMORY_WRITE_START( palamed_writemem )
   929: 	COMMON_BANKS_WRITE,
   930: 	COMMON_SINGLE_WRITE,
   931: 	{ 0xa803, 0xa803, MWA_NOP },	// Control register, function unknown
   932: 	{ 0xb000, 0xb000, MWA_NOP },	// Control register, function unknown (copy of 8822)
   933: MEMORY_END
   934: 
   935: 
   936: static MEMORY_READ_START( cachat_readmem )
   937: 	COMMON_BANKS_READ,
   938: 	COMMON_SINGLE_READ,
   939: 	{ 0xa800, 0xa800, input_port_2_r },
   940: 	{ 0xa801, 0xa801, input_port_3_r },
   941: 	{ 0xa802, 0xa802, input_port_4_r },
   942: 	{ 0xb001, 0xb001, MRA_NOP },	// Watchdog or interrupt ack (value ignored)
   943: 	{ 0xfff8, 0xfff8, rombankswitch_r },
   944: MEMORY_END
   945: 
   946: static MEMORY_WRITE_START( cachat_writemem )
   947: 	COMMON_BANKS_WRITE,
   948: 	COMMON_SINGLE_WRITE,
   949: 	{ 0xa803, 0xa803, MWA_NOP },	// Control register, function unknown
   950: 	{ 0xb000, 0xb000, MWA_NOP },	// Control register, function unknown
   951: 	{ 0xfff8, 0xfff8, rombankswitch_w },
   952: MEMORY_END
   953: 
   954: 
   955: static MEMORY_READ_START( horshoes_readmem )
   956: 	COMMON_BANKS_READ,
   957: 	COMMON_SINGLE_READ,
   958: 	{ 0xa800, 0xa800, horshoes_tracky_lo_r },
   959: 	{ 0xa802, 0xa802, horshoes_tracky_reset_r },
   960: 	{ 0xa803, 0xa803, horshoes_trackx_reset_r },
   961: 	{ 0xa804, 0xa804, horshoes_tracky_hi_r },
   962: 	{ 0xa808, 0xa808, horshoes_trackx_lo_r },
   963: 	{ 0xa80c, 0xa80c, horshoes_trackx_hi_r },
   964: 	{ 0xb801, 0xb801, MRA_NOP },	// Watchdog or interrupt ack
   965: MEMORY_END
   966: 
   967: static MEMORY_WRITE_START( horshoes_writemem )
   968: 	COMMON_BANKS_WRITE,
   969: 	COMMON_SINGLE_WRITE,
   970: 	{ 0xb802, 0xb802, horshoes_bankg_w },
   971: 	{ 0xbc00, 0xbc00, MWA_NOP },
   972: MEMORY_END
   973: 
   974: static MEMORY_READ_START( evilston_readmem )
   975: 	COMMON_BANKS_READ,
   976: 	{ 0x8000, 0x9fff, MRA_RAM },
   977: 	{ 0xa000, 0xa7ff, MRA_RAM },
   978: 	{ 0xa800, 0xa800, input_port_0_r },	
   979: 	{ 0xa801, 0xa801, input_port_1_r },	
   980: 	{ 0xa802, 0xa802, input_port_2_r },
   981: 	{ 0xa803, 0xa803, input_port_3_r },
   982: 	{ 0xa807, 0xa807, input_port_4_r },
   983: MEMORY_END
   984: 
   985: 
   986: 
   987: static WRITE_HANDLER (evilston_snd_w)
   988: {
   989: 	shared_ram[0x7fe]=data&0x7f;
   990: 	cpu_set_irq_line(1,IRQ_LINE_NMI,PULSE_LINE); 
   991: }
   992: 
   993: 
   994: 
   995: 
   996: static MEMORY_WRITE_START( evilston_writemem )
   997: 	COMMON_BANKS_WRITE,
   998: 	{ 0x8000, 0x9fff, MWA_RAM },
   999: 	{ 0xa000, 0xa7ff, MWA_RAM,&shared_ram},//shared2_w },
  1000: 	{ 0xa800, 0xa800, MWA_RAM },//watchdog ?
  1001: 	{ 0xa804, 0xa804, MWA_RAM}, //coin couters/locks ?
  1002: 	
  1003: MEMORY_END
  1004: 
  1005: static MEMORY_READ_START( evilston_2_readmem )
  1006: 	{ 0x0000, 0xbfff, MRA_ROM },
  1007: 	{ 0xc000, 0xdfff, MRA_RAM },
  1008: 	{ 0xe000, 0xe7ff, shared_r},//shared_r },
  1009: 	{ 0xe800, 0xe800, YM2203_status_port_0_r },
  1010: 	{ 0xf000, 0xf7ff, MRA_BANK7 },
  1011: MEMORY_END
  1012: 
  1013: static MEMORY_WRITE_START( evilston_2_writemem )
  1014: 	{ 0x0000, 0xbfff, MWA_ROM },
  1015: 	{ 0xc000, 0xdfff, MWA_RAM },
  1016: 	{ 0xe000, 0xe7ff, shared_w },
  1017: 	{ 0xe800, 0xe800, YM2203_control_port_0_w },
  1018: 	{ 0xe801, 0xe801, YM2203_write_port_0_w },
  1019: MEMORY_END
  1020: 
  1021: 
  1022: 
  1023: /***********************************************************
  1024: 			 INPUT PORTS, DIPs
  1025: ***********************************************************/
  1026: 
  1027: #define TAITO_COINAGE_WORLD_8 \ 
  1028: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
  1029: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) ) \
  1030: 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) ) \
  1031: 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) ) \
  1032: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
  1033: 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
  1034: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_2C ) ) \
  1035: 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) ) \
  1036: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_4C ) ) \
  1037: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_6C ) )
  1038: 
  1039: #define TAITO_COINAGE_JAPAN_8 \ 
  1040: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
  1041: 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) ) \
  1042: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
  1043: 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) ) \
  1044: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_2C ) ) \
  1045: 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
  1046: 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) ) \
  1047: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) ) \
  1048: 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) ) \
  1049: 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
  1050: 
  1051: #define TAITO_COINAGE_JAPAN_NEW_8 \ 
  1052: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
  1053: 	PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) ) \
  1054: 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) ) \
  1055: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
  1056: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_2C ) ) \
  1057: 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
  1058: 	PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) ) \
  1059: 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) ) \
  1060: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) ) \
  1061: 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
  1062: 
  1063: #define TAITO_COINAGE_US_8 \ 
  1064: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \
  1065: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) ) \
  1066: 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) ) \
  1067: 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) ) \
  1068: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
  1069: 	PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) \
  1070: 	PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) ) \
  1071: 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) ) \
  1072: 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_1C ) ) \
  1073: 	PORT_DIPSETTING(    0xc0, "Same as Start" )
  1074: 
  1075: #define TAITO_DIFFICULTY_8 \ 
  1076: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \
  1077: 	PORT_DIPSETTING(    0x02, "Easy" ) \
  1078: 	PORT_DIPSETTING(    0x03, "Medium" ) \
  1079: 	PORT_DIPSETTING(    0x01, "Hard" ) \
  1080: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1081: 
  1082: #define TAITO_L_PLAYERS_INPUT( player ) \ 
  1083: 	PORT_START \
  1084: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | player ) \
  1085: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | player ) \
  1086: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | player ) \
  1087: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | player ) \
  1088: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | player ) \
  1089: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | player ) \
  1090: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1091: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1092: 
  1093: #define TAITO_L_SYSTEM_INPUT( type, impulse ) \ 
  1094: 	PORT_START \
  1095: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) \
  1096: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) \
  1097: 	PORT_BIT_IMPULSE( 0x04, type, IPT_COIN1, impulse ) \
  1098: 	PORT_BIT_IMPULSE( 0x08, type, IPT_COIN2, impulse ) \
  1099: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1100: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1101: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) \
  1102: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
  1103: 
  1104: #define TAITO_L_DSWA_2_4 \ 
  1105: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) \
  1106: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) ) \
  1107: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
  1108: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) \
  1109: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) \
  1110: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) \
  1111: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1112: 
  1113: INPUT_PORTS_START( fhawk )
  1114: 	PORT_START
  1115: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1116: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1117: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1118: 	TAITO_L_DSWA_2_4
  1119: 	TAITO_COINAGE_JAPAN_8
  1120: 
  1121: 	PORT_START
  1122: 	TAITO_DIFFICULTY_8
  1123: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )  // all in manual
  1124: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1125: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1126: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
  1127: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1128: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1129: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
  1130: 	PORT_DIPSETTING(    0x30, "3" )
  1131: 	PORT_DIPSETTING(    0x20, "4" )
  1132: 	PORT_DIPSETTING(    0x10, "5" )
  1133: 	PORT_DIPSETTING(    0x00, "6" )
  1134: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
  1135: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1136: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1137: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
  1138: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1139: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1140: 
  1141: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER1 )
  1142: 
  1143: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER2 )
  1144: 
  1145: 	TAITO_L_SYSTEM_INPUT( IP_ACTIVE_LOW, 4 )
  1146: INPUT_PORTS_END
  1147: 
  1148: INPUT_PORTS_START( raimais )
  1149: 	PORT_START
  1150: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1151: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1152: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1153: 	TAITO_L_DSWA_2_4
  1154: 	TAITO_COINAGE_JAPAN_8
  1155: 
  1156: 	PORT_START
  1157: 	TAITO_DIFFICULTY_8
  1158: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
  1159: 	PORT_DIPSETTING(    0x08, "80k and 160k" )
  1160: 	PORT_DIPSETTING(    0x0c, "80k only" )
  1161: 	PORT_DIPSETTING(    0x04, "160k only" )
  1162: 	PORT_DIPSETTING(    0x00, "None" )
  1163: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
  1164: 	PORT_DIPSETTING(    0x30, "3" )
  1165: 	PORT_DIPSETTING(    0x20, "4" )
  1166: 	PORT_DIPSETTING(    0x10, "5" )
  1167: 	PORT_DIPSETTING(    0x00, "6" )
  1168: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1169: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1170: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1171: 	PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
  1172: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1173: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1174: 
  1175: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER1 )
  1176: 
  1177: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER2 )
  1178: 
  1179: 	TAITO_L_SYSTEM_INPUT( IP_ACTIVE_HIGH, 1 )
  1180: INPUT_PORTS_END
  1181: 
  1182: #define CHAMPWR_DSWB \ 
  1183: 	PORT_START \
  1184: 	TAITO_DIFFICULTY_8 \
  1185: 	PORT_DIPNAME( 0x0c, 0x0c, "Time" ) \
  1186: 	PORT_DIPSETTING(    0x08, "2 minutes" ) \
  1187: 	PORT_DIPSETTING(    0x0c, "3 minutes" ) \
  1188: 	PORT_DIPSETTING(    0x04, "4 minutes" ) \
  1189: 	PORT_DIPSETTING(    0x00, "5 minutes" ) \
  1190: 	PORT_DIPNAME( 0x30, 0x30, "1 minute Lenght" ) \
  1191: 	PORT_DIPSETTING(    0x00, "30 sec" ) \
  1192: 	PORT_DIPSETTING(    0x10, "40 sec" ) \
  1193: 	PORT_DIPSETTING(    0x30, "50 sec" ) \
  1194: 	PORT_DIPSETTING(    0x20, "60 sec" ) \
  1195: 	PORT_DIPNAME( 0x40, 0x40, "Allow Continue" ) \
  1196: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) \
  1197: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) ) \
  1198: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) \
  1199: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) ) \
  1200: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1201: 
  1202: #define CHAMPWR_INPUTS \ 
  1203:  	PORT_START \
  1204: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) \
  1205: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) \
  1206: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) \
  1207: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) \
  1208: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) \
  1209: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) \
  1210: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) \
  1211: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) \
  1212:  \
  1213: 	PORT_START \
  1214: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_LOW, IPT_COIN2, 1 ) \
  1215: 	PORT_BIT_IMPULSE( 0x02, IP_ACTIVE_LOW, IPT_COIN1, 1 ) \
  1216: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1217: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1218: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1219: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1220: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1221: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
  1222:  \
  1223: 	PORT_START \
  1224: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 ) \
  1225: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 ) \
  1226: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 ) \
  1227: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 ) \
  1228: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 ) \
  1229: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 ) \
  1230: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 ) \
  1231: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1232: 
  1233: INPUT_PORTS_START( champwr )
  1234: 	PORT_START
  1235: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )  // all 2 in manual
  1236: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1237: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1238: 	TAITO_L_DSWA_2_4
  1239: 	TAITO_COINAGE_WORLD_8
  1240: 
  1241: 	CHAMPWR_DSWB
  1242: 
  1243: 	CHAMPWR_INPUTS
  1244: INPUT_PORTS_END
  1245: 
  1246: INPUT_PORTS_START( champwrj )
  1247: 	PORT_START
  1248: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
  1249: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1250: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1251: 	TAITO_L_DSWA_2_4
  1252: 	TAITO_COINAGE_JAPAN_8
  1253: 
  1254: 	CHAMPWR_DSWB
  1255: 
  1256: 	CHAMPWR_INPUTS
  1257: INPUT_PORTS_END
  1258: 
  1259: INPUT_PORTS_START( champwru )
  1260: 	PORT_START
  1261: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
  1262: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1263: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1264: 	TAITO_L_DSWA_2_4
  1265: 	TAITO_COINAGE_US_8
  1266: 
  1267: 	CHAMPWR_DSWB
  1268: 
  1269: 	CHAMPWR_INPUTS
  1270: INPUT_PORTS_END
  1271: 
  1272: #define KURIKIN_DSWB \ 
  1273: 	PORT_START \
  1274: 	TAITO_DIFFICULTY_8 \
  1275: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) \
  1276: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) ) \
  1277: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
  1278: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) \
  1279: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) ) \
  1280: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
  1281: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) \
  1282: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) ) \
  1283: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
  1284: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) \
  1285: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) ) \
  1286: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
  1287: 	PORT_DIPNAME( 0x40, 0x40, "Bosses' messages" ) \
  1288: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) \
  1289: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) ) \
  1290: 	PORT_DIPNAME( 0x80, 0x80, "Allow Continue" ) \
  1291: 	PORT_DIPSETTING(    0x80, "5 Times" ) \
  1292: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1293: 
  1294: INPUT_PORTS_START( kurikint )
  1295: 	PORT_START
  1296: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1297: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1298: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1299: 	TAITO_L_DSWA_2_4
  1300: 	TAITO_COINAGE_WORLD_8
  1301: 
  1302: 	KURIKIN_DSWB
  1303: 
  1304: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER1 )
  1305: 
  1306: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER2 )
  1307: 
  1308: 	TAITO_L_SYSTEM_INPUT( IP_ACTIVE_HIGH, 4 )
  1309: INPUT_PORTS_END
  1310: 
  1311: INPUT_PORTS_START( kurikinj )
  1312: 	PORT_START
  1313: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1314: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1315: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1316: 	TAITO_L_DSWA_2_4
  1317: 	TAITO_COINAGE_JAPAN_8
  1318: 
  1319: 	KURIKIN_DSWB
  1320: 
  1321: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER1 )
  1322: 
  1323: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER2 )
  1324: 
  1325: 	TAITO_L_SYSTEM_INPUT( IP_ACTIVE_HIGH, 4 )
  1326: INPUT_PORTS_END
  1327: 
  1328: INPUT_PORTS_START( kurikina )
  1329: 	PORT_START
  1330: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1331: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1332: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1333: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
  1334: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1335: 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  1336: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1337: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1338: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1339: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1340: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1341: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1342: 	TAITO_COINAGE_WORLD_8
  1343: 
  1344: 	PORT_START
  1345: 	PORT_BITX(    0x01, 0x01, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level select", IP_KEY_NONE, IP_JOY_NONE )
  1346: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1347: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1348: 	PORT_BITX(    0x02, 0x02, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  1349: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1350: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1351: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
  1352: 	PORT_DIPSETTING(    0x08, "Easy" )
  1353: 	PORT_DIPSETTING(    0x0c, "Medium" )
  1354: 	PORT_DIPSETTING(    0x04, "Hard" )
  1355: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1356: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1357: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1358: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1359: 	PORT_DIPNAME( 0x20, 0x20, "Bosses' messages" )
  1360: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1361: 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
  1362: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1363: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1364: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1365: 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Slow Motion", IP_KEY_NONE, IP_JOY_NONE )
  1366: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1367: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1368: 
  1369: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER1 )
  1370: 
  1371: 	TAITO_L_PLAYERS_INPUT( IPF_PLAYER2 )
  1372: 
  1373: 	TAITO_L_SYSTEM_INPUT( IP_ACTIVE_HIGH, 4 )
  1374: INPUT_PORTS_END
  1375: 
  1376: INPUT_PORTS_START( puzznic )
  1377: 	PORT_START
  1378: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1379: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1380: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1381: 	TAITO_L_DSWA_2_4
  1382: 	/* There is no Coin B in the Manuals */
  1383: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) )
  1384: 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
  1385: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) )
  1386: 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) )
  1387: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_2C ) )
  1388: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
  1389: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1390: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1391: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
  1392: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1393: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1394: 
  1395: 	PORT_START
  1396: 	/* Difficulty controls the Timer Speed (how many seconds are there in a minute) */
  1397: 	TAITO_DIFFICULTY_8
  1398: 	PORT_DIPNAME( 0x0c, 0x0c, "Retries" )
  1399: 	PORT_DIPSETTING(    0x00, "0" )
  1400: 	PORT_DIPSETTING(    0x04, "1" )
  1401: 	PORT_DIPSETTING(    0x0c, "2" )
  1402: 	PORT_DIPSETTING(    0x08, "3" )
  1403: 	PORT_DIPNAME( 0x10, 0x10, "Bombs" )
  1404: 	PORT_DIPSETTING(    0x10, "0" )
  1405: 	PORT_DIPSETTING(    0x00, "2" )
  1406: 	PORT_DIPNAME( 0x20, 0x20, "Girls" )
  1407: 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1408: 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
  1409: 	PORT_DIPNAME( 0xc0, 0xc0, "Terms of Replay" )
  1410: 	PORT_DIPSETTING(    0x40, "Stage one step back/Timer continuous" )
  1411: 	PORT_DIPSETTING(    0xc0, "Stage reset to start/Timer continuous" )
  1412: 	PORT_DIPSETTING(    0x80, "Stage reset to start/Timer reset to start" )
  1413: //	PORT_DIPSETTING(    0x00, "No Use" )
  1414: 
  1415: 	PORT_START
  1416: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1417: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
  1418: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
  1419: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1420: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1421: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1422: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1423: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1424: 
  1425: 	PORT_START
  1426: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1427: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1428: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
  1429: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1430: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1431: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1432: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1433: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1434: 
  1435: 	PORT_START /* Not read yet. There is no Coin_B in manual */
  1436: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1437: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1438: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1439: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1440: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1441: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1442: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1443: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1444: INPUT_PORTS_END
  1445: 
  1446: INPUT_PORTS_START( plotting )
  1447: 	PORT_START
  1448: 	PORT_DIPNAME( 0x01, 0x01, "Max Players" )
  1449: 	PORT_DIPSETTING(    0x00, "1" )
  1450: 	PORT_DIPSETTING(    0x01, "2" )
  1451: 	TAITO_L_DSWA_2_4
  1452: 	TAITO_COINAGE_WORLD_8
  1453: 
  1454: 	PORT_START
  1455: 	TAITO_DIFFICULTY_8
  1456: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1457: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1458: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1459: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1460: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1461: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1462: 	PORT_DIPNAME( 0x30, 0x30, "Misses" )
  1463: 	PORT_DIPSETTING(    0x20, "1" )
  1464: 	PORT_DIPSETTING(    0x30, "2" )
  1465: 	PORT_DIPSETTING(    0x10, "3" )
  1466: 	PORT_DIPSETTING(    0x00, "4" )
  1467: 	PORT_DIPNAME( 0x40, 0x40, "Allow Continue" )
  1468: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1469: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  1470: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1471: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1472: 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  1473: 
  1474: 	PORT_START
  1475: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1476: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
  1477: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
  1478: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1479: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1480: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1481: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1482: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1483: 
  1484: 	PORT_START
  1485: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
  1486: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1487: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
  1488: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1489: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1490: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1491: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1492: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1493: INPUT_PORTS_END
  1494: 
  1495: INPUT_PORTS_START( palamed )
  1496: 	PORT_START
  1497: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1498: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1499: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1500: 	TAITO_L_DSWA_2_4
  1501: 	TAITO_COINAGE_JAPAN_NEW_8
  1502: 
  1503: 	PORT_START
  1504: 	/* Difficulty controls how faster falls the dice lines */
  1505: 	TAITO_DIFFICULTY_8
  1506: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1507: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1508: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1509: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1510: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1511: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1512: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1513: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1514: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1515: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1516: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1517: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1518: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1519: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1520: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1521: 	PORT_DIPNAME( 0x80, 0x80, "Versus Mode" )
  1522: 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1523: 	PORT_DIPSETTING(    0x80, DEF_STR( Yes ) )
  1524: 
  1525: 	PORT_START
  1526: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1527: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
  1528: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 1 )
  1529: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 1 )
  1530: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1531: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1532: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1533: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1534: 
  1535: 	PORT_START
  1536: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1537: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1538: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1539: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1540: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1541: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1542: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1543: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1544: 
  1545: 	PORT_START
  1546: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1547: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1548: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1549: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1550: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1551: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1552: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1553: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1554: INPUT_PORTS_END
  1555: 
  1556: INPUT_PORTS_START( cachat )
  1557: 	PORT_START
  1558: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1559: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1560: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1561: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
  1562: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1563: 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  1564: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1565: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
  1566: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1567: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1568: 	TAITO_COINAGE_JAPAN_NEW_8
  1569: 
  1570: 	PORT_START
  1571: 	TAITO_DIFFICULTY_8
  1572: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1573: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1574: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1575: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1576: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1577: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1578: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1579: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1580: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1581: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1582: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1583: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1584: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1585: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1586: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1587: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1588: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1589: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1590: 
  1591: 	PORT_START
  1592: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1593: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
  1594: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 1 )
  1595: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 1 )
  1596: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1597: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1598: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1599: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1600: 
  1601: 	PORT_START
  1602: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1603: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1604: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1605: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1606: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1607: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1608: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1609: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1610: 
  1611: 	PORT_START
  1612: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1613: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1614: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1615: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1616: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1617: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1618: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1619: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1620: INPUT_PORTS_END
  1621: 
  1622: INPUT_PORTS_START( tubeit )
  1623: 	PORT_START
  1624: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1625: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1626: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1627: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
  1628: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1629: 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  1630: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1631: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
  1632: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1633: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1634: 	TAITO_COINAGE_WORLD_8
  1635: 
  1636: 	PORT_START
  1637: 	TAITO_DIFFICULTY_8
  1638: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1639: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1640: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1641: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1642: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1643: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1644: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1645: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1646: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1647: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1648: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1649: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1650: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1651: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1652: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1653: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1654: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1655: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1656: 
  1657: 	PORT_START
  1658: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1659: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
  1660: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 1 )
  1661: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 1 )
  1662: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1663: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1664: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1665: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1666: 
  1667: 	PORT_START
  1668: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1669: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1670: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1671: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1672: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1673: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1674: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1675: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1676: 
  1677: 	PORT_START
  1678: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1679: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1680: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1681: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1682: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1683: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1684: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1685: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1686: INPUT_PORTS_END
  1687: 
  1688: INPUT_PORTS_START( horshoes )
  1689: 	PORT_START
  1690: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1691: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1692: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1693: 	TAITO_L_DSWA_2_4
  1694: 	/* The Coinage is the same as US, but it has no Continue Price feature */
  1695: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) )
  1696: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
  1697: 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) )
  1698: 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
  1699: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) )
  1700: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1701: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1702: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1703: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1704: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1705: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1706: 
  1707: 	PORT_START
  1708: 	/* Not for sure, the CPU seems to play better when set to Hardest */
  1709: 	TAITO_DIFFICULTY_8
  1710: 	PORT_DIPNAME( 0x04, 0x04, "Time" )
  1711: 	PORT_DIPSETTING(    0x00, "20 sec" )
  1712: 	PORT_DIPSETTING(    0x04, "30 sec" )
  1713: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1714: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1715: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1716: 	PORT_DIPNAME( 0x10, 0x10, "Innings" )
  1717: 	PORT_DIPSETTING(    0x10, "3 per Credit" )
  1718: 	PORT_DIPSETTING(    0x00, "9 per Credit" )
  1719: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1720: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1721: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1722: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1723: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1724: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1725: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1726: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1727: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1728: 
  1729: 	PORT_START
  1730: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1731: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
  1732: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1733: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1734: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1735: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1736: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1737: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1738: 
  1739: 	PORT_START
  1740: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
  1741: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1742: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1743: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1744: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1745: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1746: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1747: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1748: 
  1749: 	PORT_START
  1750: 	PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_Y | IPF_REVERSE, 50, 30, 0, 0 )
  1751: 
  1752: 	PORT_START
  1753: 	PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_X, 50, 30, 0, 0 )
  1754: INPUT_PORTS_END
  1755: 
  1756: INPUT_PORTS_START( plgirls )
  1757: 	PORT_START
  1758: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) )
  1759: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1760: 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  1761: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
  1762: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1763: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1764: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1765: 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) )
  1766: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
  1767: 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) )
  1768: 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
  1769: 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
  1770: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_3C ) )
  1771: 	PORT_DIPSETTING(    0x28, DEF_STR( 1C_2C ) )
  1772: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
  1773: //	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) )
  1774: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1775: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1776: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1777: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1778: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1779: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1780: 
  1781: 	PORT_START
  1782: 	/* Difficulty controls the Ball Speed */
  1783: 	TAITO_DIFFICULTY_8
  1784: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1785: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1786: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1787: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1788: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1789: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1790: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1791: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1792: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1793: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1794: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1795: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1796: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1797: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1798: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1799: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1800: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1801: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1802: 
  1803: 	PORT_START
  1804: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1805: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
  1806: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 1 )
  1807: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 1 )
  1808: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1809: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1810: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1811: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1812: 
  1813: 	PORT_START
  1814: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1815: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1816: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1817: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1818: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1819: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1820: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1821: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1822: 
  1823: 	PORT_START
  1824: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1825: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1826: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1827: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1828: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1829: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1830: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1831: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1832: INPUT_PORTS_END
  1833: 
  1834: INPUT_PORTS_START( plgirls2 )
  1835: 	PORT_START
  1836: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1837: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1838: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1839: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
  1840: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1841: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1842: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1843: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1844: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1845: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1846: 	TAITO_COINAGE_JAPAN_8
  1847: 
  1848: 	PORT_START
  1849: 	/* Difficulty controls the number of hits requiered to destroy enemies */
  1850: 	TAITO_DIFFICULTY_8
  1851: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1852: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1853: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1854: 	PORT_DIPNAME( 0x18, 0x18, "Life" )
  1855: 	PORT_DIPSETTING(    0x10, "3/2/3" )
  1856: 	PORT_DIPSETTING(    0x18, "4/3/4" )
  1857: 	PORT_DIPSETTING(    0x08, "5/4/5" )
  1858: 	PORT_DIPSETTING(    0x00, "6/5/6" )
  1859: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1860: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1861: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1862: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1863: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1864: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1865: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1866: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1867: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1868: 
  1869: 	PORT_START
  1870: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1871: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
  1872: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 1 )
  1873: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 1 )
  1874: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1875: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1876: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1877: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1878: 
  1879: 	PORT_START
  1880: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1881: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1882: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1883: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1884: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1885: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1886: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1887: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1888: 
  1889: 	PORT_START
  1890: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1891: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1892: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1893: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1894: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1895: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1896: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1897: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1898: INPUT_PORTS_END
  1899: 
  1900: INPUT_PORTS_START( cubybop )
  1901: 	PORT_START
  1902: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1903: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1904: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1905: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1906: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1907: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1908: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1909: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
  1910: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1911: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1912: 	TAITO_COINAGE_JAPAN_NEW_8
  1913: 
  1914: 	PORT_START
  1915: 	TAITO_DIFFICULTY_8
  1916: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1917: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1918: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1919: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1920: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1921: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1922: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1923: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1924: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1925: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1926: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1927: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1928: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1929: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1930: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1931: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1932: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1933: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1934: 
  1935: 	PORT_START
  1936: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1937: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
  1938: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 1 )
  1939: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 1 )
  1940: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1941: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1942: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1943: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1944: 
  1945: 	PORT_START
  1946: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1947: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1948: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1949: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1950: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1951: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1952: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1953: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1954: 
  1955: 	PORT_START
  1956: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1957: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1958: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1959: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1960: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1961: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1962: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1963: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1964: INPUT_PORTS_END
  1965: 
  1966: INPUT_PORTS_START( evilston )
  1967: 
  1968: 	PORT_START
  1969: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  1970: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1971: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  1972: 	TAITO_L_DSWA_2_4
  1973: 	TAITO_COINAGE_WORLD_8
  1974: 
  1975: 	PORT_START
  1976: 	TAITO_DIFFICULTY_8
  1977: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )  
  1978: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1979: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1980: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
  1981: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1982: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1983: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
  1984: 	PORT_DIPSETTING(    0x30, "3" )
  1985: 	PORT_DIPSETTING(    0x20, "2" )
  1986: 	PORT_DIPSETTING(    0x10, "1" )
  1987: 	PORT_DIPSETTING(    0x00, "4" )
  1988:   PORT_DIPNAME( 0xc0, 0x00, "Language" )
  1989:   PORT_DIPSETTING(    0x00, "English" )
  1990:   PORT_DIPSETTING(    0x80, "English" )
  1991:   PORT_DIPSETTING(    0x40, "English" )
  1992:   PORT_DIPSETTING(    0xc0, "Japanese" )
  1993: 	
  1994: 	PORT_START
  1995: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1996: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1997: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1  )
  1998: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1999: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  2000: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
  2001: 
  2002: 	PORT_START 
  2003: 	
  2004: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) 
  2005: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) 
  2006: 	PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_COIN1, 4 ) 
  2007: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN2, 4 ) 
  2008: 	
  2009: 	PORT_START
  2010: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  2011: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  2012: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  2013: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  2014: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_COCKTAIL | IPF_4WAY )
  2015: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_COCKTAIL | IPF_4WAY )
  2016: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_COCKTAIL | IPF_4WAY )
  2017: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_COCKTAIL | IPF_4WAY )
  2018: 
  2019: INPUT_PORTS_END
  2020: 
  2021: 
  2022: 
  2023: static struct GfxLayout bg1_layout =
  2024: {
  2025: 	8, 8,
  2026: 	RGN_FRAC(1,2),
  2027: 	4,
  2028: 	{ RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 },
  2029: 	{ 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 },
  2030: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
  2031: 	8*8*2
  2032: };
  2033: 
  2034: static struct GfxLayout bg2_layout =
  2035: {
  2036: 	8, 8,
  2037: 	RGN_FRAC(1,1),
  2038: 	4,
  2039: 	{ 8, 12, 0, 4 },
  2040: 	{ 3, 2, 1, 0, 19, 18, 17, 16 },
  2041: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  2042: 	8*8*4
  2043: };
  2044: 
  2045: #define O 8*8*2 
  2046: #define O2 2*O 
  2047: static struct GfxLayout sp1_layout =
  2048: {
  2049: 	16, 16,
  2050: 	RGN_FRAC(1,2),
  2051: 	4,
  2052: 	{ RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 },
  2053: 	{ 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0, O+3, O+2, O+1, O+0, O+8+3, O+8+2, O+8+1, O+8+0 },
  2054: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, O2+0*16, O2+1*16, O2+2*16, O2+3*16, O2+4*16, O2+5*16, O2+6*16, O2+7*16 },
  2055: 	8*8*2*4
  2056: };
  2057: #undef O 
  2058: #undef O2 
  2059: 
  2060: #define O 8*8*4 
  2061: #define O2 2*O 
  2062: static struct GfxLayout sp2_layout =
  2063: {
  2064: 	16, 16,
  2065: 	RGN_FRAC(1,1),
  2066: 	4,
  2067: 	{ 8, 12, 0, 4 },
  2068: 	{ 3, 2, 1, 0, 19, 18, 17, 16, O+3, O+2, O+1, O+0, O+19, O+18, O+17, O+16 },
  2069: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, O2+0*32, O2+1*32, O2+2*32, O2+3*32, O2+4*32, O2+5*32, O2+6*32, O2+7*32 },
  2070: 	8*8*4*4
  2071: };
  2072: #undef O 
  2073: #undef O2 
  2074: 
  2075: static struct GfxLayout char_layout =
  2076: {
  2077: 	8, 8,
  2078: 	1024,
  2079: 	4,
  2080: 	{ 8, 12, 0, 4 },
  2081: 	{ 3, 2, 1, 0, 19, 18, 17, 16},
  2082: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  2083: 	8*8*4
  2084: };
  2085: 
  2086: static struct GfxDecodeInfo gfxdecodeinfo1[] =
  2087: {
  2088: 	{ REGION_GFX1, 0, &bg1_layout, 0, 16 },
  2089: 	{ REGION_GFX1, 0, &sp1_layout, 0, 16 },
  2090: 	{ 0,           0, &char_layout,  0, 16 },  // Ram-based
  2091: 	{ -1 }
  2092: };
  2093: 
  2094: static struct GfxDecodeInfo gfxdecodeinfo2[] =
  2095: {
  2096: 	{ REGION_GFX1, 0, &bg2_layout, 0, 16 },
  2097: 	{ REGION_GFX1, 0, &sp2_layout, 0, 16 },
  2098: 	{ 0,           0, &char_layout,  0, 16 },  // Ram-based
  2099: 	{ -1 }
  2100: };
  2101: 
  2102: 
  2103: 
  2104: static void irqhandler(int irq)
  2105: {
  2106: 	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
  2107: }
  2108: 
  2109: static WRITE_HANDLER( portA_w )
  2110: {
  2111: 	static int cur_bank = 0;
  2112: 
  2113: 	if (cur_bank != (data & 0x03) )
  2114: 	{
  2115: 		int bankaddress;
  2116: 		unsigned char *RAM = memory_region(REGION_CPU2);
  2117: 
  2118: 		cur_bank = data & 0x03;
  2119: 		bankaddress = 0x10000 + (cur_bank-1) * 0x4000;
  2120: 		cpu_setbank(7,&RAM[bankaddress]);
  2121: 		//logerror ("YM2203 bank change val=%02x  pc=%04x\n",cur_bank, activecpu_get_pc() );
  2122: 	}
  2123: }
  2124: 
  2125: static struct YM2203interface ym2203_interface_triple =
  2126: {
  2127: 	1,			/* 1 chip */
  2128: 	3000000,	/* ??? */
  2129: 	{ YM2203_VOL(80,20) },
  2130: 	{ 0 },
  2131: 	{ 0 },
  2132: 	{ portA_w },
  2133: 	{ 0 },
  2134: 	{ irqhandler }
  2135: };
  2136: 
  2137: static struct ADPCMinterface adpcm_interface =
  2138: {
  2139: 	1,			/* 1 channel */
  2140: 	8000,		/* 8000Hz playback? */
  2141: 	REGION_SOUND1,	/* memory region */
  2142: 	{ 80 } 	/* volume */
  2143: };
  2144: 
  2145: 
  2146: static struct YM2610interface ym2610_interface =
  2147: {
  2148: 	1,	/* 1 chip */
  2149: 	8000000,	/* 8 MHz */
  2150: 	{ 25 },
  2151: 	{ 0 },
  2152: 	{ 0 },
  2153: 	{ 0 },
  2154: 	{ 0 },
  2155: 	{ irqhandler },
  2156: 	{ REGION_SOUND1 },
  2157: 	{ REGION_SOUND1 },
  2158: 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) }
  2159: };
  2160: 
  2161: static struct YM2203interface ym2203_interface_double =
  2162: {
  2163: 	1,			/* 1 chip */
  2164: 	3000000,	/* ??? */
  2165: 	{ YM2203_VOL(80,20) },
  2166: 	{ 0 },
  2167: 	{ 0 },
  2168: 	{ 0 },
  2169: 	{ 0 },
  2170: 	{ 0 }
  2171: };
  2172: 
  2173: static struct YM2203interface ym2203_interface_evilston =
  2174: {
  2175: 	1,			/* 1 chip */
  2176: 	3000000,	/* ??? */
  2177: 	{ YM2203_VOL(80,0) },
  2178: 	{ 0 },
  2179: 	{ 0 },
  2180: 	{ 0 },
  2181: 	{ 0 },
  2182: 	{ 0 }
  2183: };
  2184: 
  2185: 
  2186: 
  2187: static struct YM2203interface ym2203_interface_single =
  2188: {
  2189: 	1,			/* 1 chip */
  2190: 	3000000,	/* ??? */
  2191: 	{ YM2203_VOL(80,20) },
  2192: 	{ portA_r },
  2193: 	{ portB_r },
  2194: 	{ 0 },
  2195: 	{ 0 },
  2196: 	{ 0 }
  2197: };
  2198: 
  2199: 
  2200: static MACHINE_DRIVER_START( fhawk )
  2201: 
  2202: 	/* basic machine hardware */
  2203: 	MDRV_CPU_ADD_TAG("cpu1", Z80, 6000000)	/* ? xtal is 13.33056 */
  2204: 	MDRV_CPU_MEMORY(fhawk_readmem,fhawk_writemem)
  2205: 	MDRV_CPU_VBLANK_INT(vbl_interrupt,3)
  2206: 
  2207: 	MDRV_CPU_ADD_TAG("sound", Z80, 4000000)	/* ? xtal is 13.33056 */
  2208: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
  2209: 	MDRV_CPU_MEMORY(fhawk_3_readmem,fhawk_3_writemem)
  2210: 
  2211: 	MDRV_CPU_ADD_TAG("cpu2", Z80, 6000000)	/* ? xtal is 13.33056 */
  2212: 	MDRV_CPU_MEMORY(fhawk_2_readmem,fhawk_2_writemem)
  2213: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
  2214: 
  2215: 	MDRV_FRAMES_PER_SECOND(60)
  2216: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2217: 	MDRV_INTERLEAVE(100)
  2218: 
  2219: 	MDRV_MACHINE_INIT(fhawk)
  2220: 
  2221: 	/* video hardware */
  2222: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2223: 	MDRV_SCREEN_SIZE(40*8, 32*8)
  2224: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
  2225: 	MDRV_GFXDECODE(gfxdecodeinfo2)
  2226: 	MDRV_PALETTE_LENGTH(256)
  2227: 
  2228: 	MDRV_VIDEO_START(taitol)
  2229: 	MDRV_VIDEO_EOF(taitol)
  2230: 	MDRV_VIDEO_UPDATE(taitol)
  2231: 
  2232: 	/* sound hardware */
  2233: 	MDRV_SOUND_ADD_TAG("2203", YM2203, ym2203_interface_triple)
  2234: MACHINE_DRIVER_END
  2235: 
  2236: 
  2237: static MACHINE_DRIVER_START( champwr )
  2238: 
  2239: 	/* basic machine hardware */
  2240: 	MDRV_IMPORT_FROM(fhawk)
  2241: 	MDRV_CPU_MODIFY("cpu1")
  2242: 	MDRV_CPU_MEMORY(champwr_readmem,champwr_writemem)
  2243: 
  2244: 	MDRV_CPU_MODIFY("sound")
  2245: 	MDRV_CPU_MEMORY(champwr_3_readmem,champwr_3_writemem)
  2246: 
  2247: 	MDRV_CPU_MODIFY("cpu2")
  2248: 	MDRV_CPU_MEMORY(champwr_2_readmem,champwr_2_writemem)
  2249: 
  2250: 	MDRV_MACHINE_INIT(champwr)
  2251: 
  2252: 	/* sound hardware */
  2253: 	MDRV_SOUND_ADD(ADPCM, adpcm_interface)
  2254: MACHINE_DRIVER_END
  2255: 
  2256: 
  2257: static MACHINE_DRIVER_START( raimais )
  2258: 
  2259: 	/* basic machine hardware */
  2260: 	MDRV_IMPORT_FROM(fhawk)
  2261: 	MDRV_CPU_MODIFY("cpu1")
  2262: 	MDRV_CPU_MEMORY(raimais_readmem,raimais_writemem)
  2263: 
  2264: 	MDRV_CPU_MODIFY("sound")
  2265: 	MDRV_CPU_MEMORY(raimais_3_readmem,raimais_3_writemem)
  2266: 
  2267: 	MDRV_CPU_MODIFY("cpu2")
  2268: 	MDRV_CPU_MEMORY(raimais_2_readmem,raimais_2_writemem)
  2269: 
  2270: 	MDRV_MACHINE_INIT(raimais)
  2271: 
  2272: 	/* sound hardware */
  2273: 	MDRV_SOUND_REPLACE("2203", YM2610, ym2610_interface)
  2274: MACHINE_DRIVER_END
  2275: 
  2276: 
  2277: static MACHINE_DRIVER_START( kurikint )
  2278: 
  2279: 	/* basic machine hardware */
  2280: 	MDRV_CPU_ADD(Z80, 6000000)	/* ? xtal is 13.33056 */
  2281: 	MDRV_CPU_MEMORY(kurikint_readmem,kurikint_writemem)
  2282: 	MDRV_CPU_VBLANK_INT(vbl_interrupt,3)
  2283: 
  2284: 	MDRV_CPU_ADD(Z80, 6000000)	/* ? xtal is 13.33056 */
  2285: 	MDRV_CPU_MEMORY(kurikint_2_readmem,kurikint_2_writemem)
  2286: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
  2287: 
  2288: 	MDRV_FRAMES_PER_SECOND(60)
  2289: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2290: 	MDRV_INTERLEAVE(100)
  2291: 
  2292: 	MDRV_MACHINE_INIT(kurikint)
  2293: 
  2294: 	/* video hardware */
  2295: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2296: 	MDRV_SCREEN_SIZE(40*8, 32*8)
  2297: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
  2298: 	MDRV_GFXDECODE(gfxdecodeinfo2)
  2299: 	MDRV_PALETTE_LENGTH(256)
  2300: 
  2301: 	MDRV_VIDEO_START(taitol)
  2302: 	MDRV_VIDEO_EOF(taitol)
  2303: 	MDRV_VIDEO_UPDATE(taitol)
  2304: 
  2305: 	/* sound hardware */
  2306: 	MDRV_SOUND_ADD(YM2203, ym2203_interface_double)
  2307: MACHINE_DRIVER_END
  2308: 
  2309: 
  2310: static MACHINE_DRIVER_START( kurikina )
  2311: 
  2312: 	/* basic machine hardware */
  2313: 	MDRV_IMPORT_FROM(kurikint)
  2314: 
  2315: 	/* video hardware */
  2316: 	MDRV_GFXDECODE(gfxdecodeinfo1)
  2317: MACHINE_DRIVER_END
  2318: 
  2319: 
  2320: static MACHINE_DRIVER_START( plotting )
  2321: 
  2322: 	/* basic machine hardware */
  2323: 	MDRV_CPU_ADD_TAG("main", Z80, 6000000)	/* ? xtal is 13.33056 */
  2324: 	MDRV_CPU_MEMORY(plotting_readmem,plotting_writemem)
  2325: 	MDRV_CPU_VBLANK_INT(vbl_interrupt,3)
  2326: 
  2327: 	MDRV_FRAMES_PER_SECOND(60)
  2328: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2329: 
  2330: 	MDRV_MACHINE_INIT(plotting)
  2331: 
  2332: 	/* video hardware */
  2333: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2334: 	MDRV_SCREEN_SIZE(40*8, 32*8)
  2335: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
  2336: 	MDRV_GFXDECODE(gfxdecodeinfo1)
  2337: 	MDRV_PALETTE_LENGTH(256)
  2338: 
  2339: 	MDRV_VIDEO_START(taitol)
  2340: 	MDRV_VIDEO_EOF(taitol)
  2341: 	MDRV_VIDEO_UPDATE(taitol)
  2342: 
  2343: 	/* sound hardware */
  2344: 	MDRV_SOUND_ADD(YM2203, ym2203_interface_single)
  2345: MACHINE_DRIVER_END
  2346: 
  2347: 
  2348: static MACHINE_DRIVER_START( puzznic )
  2349: 
  2350: 	/* basic machine hardware */
  2351: 	MDRV_IMPORT_FROM(plotting)
  2352: 	MDRV_CPU_MODIFY("main")
  2353: 	MDRV_CPU_MEMORY(puzznic_readmem,puzznic_writemem)
  2354: 
  2355: 	MDRV_MACHINE_INIT(puzznic)
  2356: MACHINE_DRIVER_END
  2357: 
  2358: 
  2359: static MACHINE_DRIVER_START( horshoes )
  2360: 
  2361: 	/* basic machine hardware */
  2362: 	MDRV_IMPORT_FROM(plotting)
  2363: 	MDRV_CPU_MODIFY("main")
  2364: 	MDRV_CPU_MEMORY(horshoes_readmem,horshoes_writemem)
  2365: 
  2366: 	MDRV_MACHINE_INIT(horshoes)
  2367: MACHINE_DRIVER_END
  2368: 
  2369: 
  2370: static MACHINE_DRIVER_START( palamed )
  2371: 
  2372: 	/* basic machine hardware */
  2373: 	MDRV_IMPORT_FROM(plotting)
  2374: 	MDRV_CPU_MODIFY("main")
  2375: 	MDRV_CPU_MEMORY(palamed_readmem,palamed_writemem)
  2376: 
  2377: 	MDRV_MACHINE_INIT(palamed)
  2378: MACHINE_DRIVER_END
  2379: 
  2380: 
  2381: static MACHINE_DRIVER_START( cachat )
  2382: 
  2383: 	/* basic machine hardware */
  2384: 	MDRV_IMPORT_FROM(plotting)
  2385: 	MDRV_CPU_MODIFY("main")
  2386: 	MDRV_CPU_MEMORY(cachat_readmem,cachat_writemem)
  2387: 
  2388: 	MDRV_MACHINE_INIT(cachat)
  2389: MACHINE_DRIVER_END
  2390: 
  2391: static MACHINE_DRIVER_START( evilston )
  2392: 
  2393: 	/* basic machine hardware */
  2394: 	MDRV_CPU_ADD(Z80, 6000000)	
  2395: 	MDRV_CPU_MEMORY(evilston_readmem,evilston_writemem)
  2396: 	MDRV_CPU_VBLANK_INT(vbl_interrupt,3)
  2397: 
  2398: 	MDRV_CPU_ADD(Z80, 6000000)	
  2399: 	MDRV_CPU_MEMORY(evilston_2_readmem,evilston_2_writemem)
  2400: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
  2401: 	
  2402: 	MDRV_FRAMES_PER_SECOND(60)
  2403: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2404: 	MDRV_INTERLEAVE(100)
  2405: 
  2406: 	MDRV_MACHINE_INIT(evilston)
  2407: 
  2408: 	/* video hardware */
  2409: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2410: 	MDRV_SCREEN_SIZE(40*8, 32*8)
  2411: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
  2412: 	MDRV_GFXDECODE(gfxdecodeinfo2)
  2413: 	MDRV_PALETTE_LENGTH(256)
  2414: 
  2415: 	MDRV_VIDEO_START(taitol)
  2416: 	MDRV_VIDEO_EOF(taitol)
  2417: 	MDRV_VIDEO_UPDATE(taitol)
  2418: 
  2419: 	/* sound hardware */
  2420: 	MDRV_SOUND_ADD(YM2203, ym2203_interface_evilston)
  2421: MACHINE_DRIVER_END
  2422: 
  2423: 
  2424: 
  2425: 
  2426: ROM_START( raimais )
  2427: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2428: 	ROM_LOAD( "b36-08-1.bin", 0x00000, 0x20000, CRC(6cc8f79f) SHA1(17b4903f87e6d5447c8557c2baca1728f86245dc) )
  2429: 	ROM_RELOAD(               0x10000, 0x20000 )
  2430: 	ROM_LOAD( "b36-09.bin",   0x30000, 0x20000, CRC(9c466e43) SHA1(2466a3f1f8124323008c9925f90e9a1d2edf1564) )
  2431: 
  2432: 	ROM_REGION( 0x1c000, REGION_CPU2, 0 )	/* sound (sndhrdw/rastan.c wants it as #2 */
  2433: 	ROM_LOAD( "b36-06.bin",   0x00000, 0x4000, CRC(29bbc4f8) SHA1(39a68729c6180c5f6cdf604e692018e7d6bf5591) )
  2434: 	ROM_CONTINUE(             0x10000, 0xc000 )
  2435: 
  2436: 	ROM_REGION( 0x10000, REGION_CPU3, 0 )
  2437: 	ROM_LOAD( "b36-07.bin",   0x00000, 0x10000, CRC(4f3737e6) SHA1(ff5f5d4ca5485441d03c8cb01a6a096941ab02eb) )
  2438: 
  2439: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2440: 	ROM_LOAD( "b36-01.bin",   0x00000, 0x80000, CRC(89355cb2) SHA1(433e929fe8b488af84e88486d9679468a3d9677a) )
  2441: 	ROM_LOAD( "b36-02.bin",   0x80000, 0x80000, CRC(e71da5db) SHA1(aa47ae02c359264c0a1f09ecc583eefd1ef1dfa4) )
  2442: 
  2443: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )
  2444: 	ROM_LOAD( "b36-03.bin",   0x00000, 0x80000, CRC(96166516) SHA1(a6748218188cbd1b037f6c0845416665c0d55a7b) )
  2445: ROM_END
  2446: 
  2447: ROM_START( fhawk )
  2448: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2449: 	ROM_LOAD( "b70-07.bin", 0x00000, 0x20000, CRC(939114af) SHA1(66218536dcb3b34ffa01d3c9c2fee365d91cfe00) )
  2450: 	ROM_RELOAD(             0x10000, 0x20000 )
  2451: 	ROM_LOAD( "b70-03.bin", 0x30000, 0x80000, CRC(42d5a9b8) SHA1(10714fe95c372cec12376e615a9abe213aff12bc) )
  2452: 
  2453: 	ROM_REGION( 0x1c000, REGION_CPU2, 0 )	/* sound (sndhrdw/rastan.c wants it as #2 */
  2454: 	ROM_LOAD( "b70-09.bin", 0x00000, 0x4000, CRC(85cccaa2) SHA1(5459cd8df9d94e1938008cfc17d4ebac98004bfc) )
  2455: 	ROM_CONTINUE(           0x10000, 0xc000 )
  2456: 
  2457: 	ROM_REGION( 0x30000, REGION_CPU3, 0 )
  2458: 	ROM_LOAD( "b70-08.bin", 0x00000, 0x20000, CRC(4d795f48) SHA1(58040d8ccbd0572cf6aef6ea9dd646b9338a03a0) )
  2459: 	ROM_RELOAD(             0x10000, 0x20000 )
  2460: 
  2461: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2462: 	ROM_LOAD( "b70-01.bin", 0x00000, 0x80000, CRC(fcdf67e2) SHA1(08a6a04a45c4adb4f5b4b0b83e90b2e5fe5cb0b1) )
  2463: 	ROM_LOAD( "b70-02.bin", 0x80000, 0x80000, CRC(35f7172e) SHA1(f257e9db470bb6dcca491b89cb666ef6d2546887) )
  2464: ROM_END
  2465: 
  2466: ROM_START( champwr )
  2467: 	ROM_REGION( 0xf0000, REGION_CPU1, 0 )
  2468: 	ROM_LOAD( "c01-13.rom", 0x00000, 0x20000, CRC(7ef47525) SHA1(79789fa3bcaeb6666c108d2e4b69a1f9341b2f4a) )
  2469: 	ROM_RELOAD(             0x10000, 0x20000 )
  2470: 	ROM_LOAD( "c01-04.rom", 0x30000, 0x20000, CRC(358bd076) SHA1(beb20a09370d05de719dde596eadca8fecb14ce5) )
  2471: 
  2472: 	ROM_REGION( 0x1c000, REGION_CPU2, 0 )	/* sound (sndhrdw/rastan.c wants it as #2 */
  2473: 	ROM_LOAD( "c01-08.rom", 0x00000, 0x4000, CRC(810efff8) SHA1(dd4fc046095e0e815e8e1fd96d258da0d6bba298) )
  2474: 	ROM_CONTINUE(           0x10000, 0xc000 )
  2475: 
  2476: 	ROM_REGION( 0x30000, REGION_CPU3, 0 )
  2477: 	ROM_LOAD( "c01-07.rom", 0x00000, 0x20000, CRC(5117c98f) SHA1(16b3a443eb113d2591833884a1b0ff297d8c00a4) )
  2478: 	ROM_RELOAD(             0x10000, 0x20000 )
  2479: 
  2480: 	ROM_REGION( 0x180000, REGION_GFX1, ROMREGION_DISPOSE )
  2481: 	ROM_LOAD( "c01-01.rom", 0x000000, 0x80000, CRC(f302e6e9) SHA1(456b046932c1ee29c890b8e87d417c4bb508c06a) )
  2482: 	ROM_LOAD( "c01-02.rom", 0x080000, 0x80000, CRC(1e0476c4) SHA1(b7922e5196990ad4382f367ec80b5c72e75f9d35) )
  2483: 	ROM_LOAD( "c01-03.rom", 0x100000, 0x80000, CRC(2a142dbc) SHA1(5d0e40ec266d3abcff4237c5c609355c65b4fa33) )
  2484: 
  2485: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* ADPCM samples */
  2486: 	ROM_LOAD( "c01-05.rom", 0x00000, 0x20000, CRC(22efad4a) SHA1(54fb33dfba5059dee16fa8b5a33b0b2d62a78373) )
  2487: ROM_END
  2488: 
  2489: ROM_START( champwru )
  2490: 	ROM_REGION( 0xf0000, REGION_CPU1, 0 )
  2491: 	ROM_LOAD( "c01-12.rom", 0x00000, 0x20000, CRC(09f345b3) SHA1(f3f9a7dab0b3f87b6919a7b37cb52245e112cb08) )
  2492: 	ROM_RELOAD(             0x10000, 0x20000 )
  2493: 	ROM_LOAD( "c01-04.rom", 0x30000, 0x20000, CRC(358bd076) SHA1(beb20a09370d05de719dde596eadca8fecb14ce5) )
  2494: 
  2495: 	ROM_REGION( 0x1c000, REGION_CPU2, 0 )	/* sound (sndhrdw/rastan.c wants it as #2 */
  2496: 	ROM_LOAD( "c01-08.rom", 0x00000, 0x4000, CRC(810efff8) SHA1(dd4fc046095e0e815e8e1fd96d258da0d6bba298) )
  2497: 	ROM_CONTINUE(           0x10000, 0xc000 )
  2498: 
  2499: 	ROM_REGION( 0x30000, REGION_CPU3, 0 )
  2500: 	ROM_LOAD( "c01-07.rom", 0x00000, 0x20000, CRC(5117c98f) SHA1(16b3a443eb113d2591833884a1b0ff297d8c00a4) )
  2501: 	ROM_RELOAD(             0x10000, 0x20000 )
  2502: 
  2503: 	ROM_REGION( 0x180000, REGION_GFX1, ROMREGION_DISPOSE )
  2504: 	ROM_LOAD( "c01-01.rom", 0x000000, 0x80000, CRC(f302e6e9) SHA1(456b046932c1ee29c890b8e87d417c4bb508c06a) )
  2505: 	ROM_LOAD( "c01-02.rom", 0x080000, 0x80000, CRC(1e0476c4) SHA1(b7922e5196990ad4382f367ec80b5c72e75f9d35) )
  2506: 	ROM_LOAD( "c01-03.rom", 0x100000, 0x80000, CRC(2a142dbc) SHA1(5d0e40ec266d3abcff4237c5c609355c65b4fa33) )
  2507: 
  2508: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* ADPCM samples */
  2509: 	ROM_LOAD( "c01-05.rom", 0x00000, 0x20000, CRC(22efad4a) SHA1(54fb33dfba5059dee16fa8b5a33b0b2d62a78373) )
  2510: ROM_END
  2511: 
  2512: ROM_START( champwrj )
  2513: 	ROM_REGION( 0xf0000, REGION_CPU1, 0 )
  2514: 	ROM_LOAD( "c01-06.bin", 0x00000, 0x20000, CRC(90fa1409) SHA1(7904488d567ce5d8705b2d2c8a4b4aae310cc28b) )
  2515: 	ROM_RELOAD(             0x10000, 0x20000 )
  2516: 	ROM_LOAD( "c01-04.rom", 0x30000, 0x20000, CRC(358bd076) SHA1(beb20a09370d05de719dde596eadca8fecb14ce5) )
  2517: 
  2518: 	ROM_REGION( 0x1c000, REGION_CPU2, 0 )	/* sound (sndhrdw/rastan.c wants it as #2 */
  2519: 	ROM_LOAD( "c01-08.rom", 0x00000, 0x4000, CRC(810efff8) SHA1(dd4fc046095e0e815e8e1fd96d258da0d6bba298) )
  2520: 	ROM_CONTINUE(           0x10000, 0xc000 )
  2521: 
  2522: 	ROM_REGION( 0x30000, REGION_CPU3, 0 )
  2523: 	ROM_LOAD( "c01-07.rom", 0x00000, 0x20000, CRC(5117c98f) SHA1(16b3a443eb113d2591833884a1b0ff297d8c00a4) )
  2524: 	ROM_RELOAD(             0x10000, 0x20000 )
  2525: 
  2526: 	ROM_REGION( 0x180000, REGION_GFX1, ROMREGION_DISPOSE )
  2527: 	ROM_LOAD( "c01-01.rom", 0x000000, 0x80000, CRC(f302e6e9) SHA1(456b046932c1ee29c890b8e87d417c4bb508c06a) )
  2528: 	ROM_LOAD( "c01-02.rom", 0x080000, 0x80000, CRC(1e0476c4) SHA1(b7922e5196990ad4382f367ec80b5c72e75f9d35) )
  2529: 	ROM_LOAD( "c01-03.rom", 0x100000, 0x80000, CRC(2a142dbc) SHA1(5d0e40ec266d3abcff4237c5c609355c65b4fa33) )
  2530: 
  2531: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* ADPCM samples */
  2532: 	ROM_LOAD( "c01-05.rom", 0x00000, 0x20000, CRC(22efad4a) SHA1(54fb33dfba5059dee16fa8b5a33b0b2d62a78373) )
  2533: ROM_END
  2534: 
  2535: 
  2536: ROM_START( kurikint )
  2537: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2538: 	ROM_LOAD( "b42-09.2",    0x00000, 0x20000, CRC(e97c4394) SHA1(fdeb15315166f7615d4039d5dc9c28d53cee86f2) )
  2539: 	ROM_RELOAD(              0x10000, 0x20000 )
  2540: 	ROM_LOAD( "b42-06.6",    0x30000, 0x20000, CRC(fa15fd65) SHA1(a810d7315878212e4e5344a24addf117ea6baeab) )
  2541: 
  2542: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
  2543: 	ROM_LOAD( "b42-07.22",   0x00000, 0x10000, CRC(0f2719c0) SHA1(f870335a75f236f0059522f9a577dee7ca3acb2f) )
  2544: 
  2545: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2546: 	ROM_LOAD( "b42-01.1",    0x00000, 0x80000, CRC(7d1a1fec) SHA1(28311b07673686c18988400d0254533a454f07f4) )
  2547: 	ROM_LOAD( "b42-02.5",    0x80000, 0x80000, CRC(1a52e65c) SHA1(20a1fc4d02b5928fb01444079692e23d178c6297) )
  2548: ROM_END
  2549: 
  2550: ROM_START( kurikinu )
  2551: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2552: 	ROM_LOAD( "b42-08.2",    0x00000, 0x20000, CRC(7075122e) SHA1(55f5f0cf3b91b7b408f9c05c91f9839c43b49c5f) )
  2553: 	ROM_RELOAD(              0x10000, 0x20000 )
  2554: 	ROM_LOAD( "b42-06.6",    0x30000, 0x20000, CRC(fa15fd65) SHA1(a810d7315878212e4e5344a24addf117ea6baeab) )
  2555: 
  2556: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
  2557: 	ROM_LOAD( "b42-07.22",   0x00000, 0x10000, CRC(0f2719c0) SHA1(f870335a75f236f0059522f9a577dee7ca3acb2f) )
  2558: 
  2559: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2560: 	ROM_LOAD( "b42-01.1",    0x00000, 0x80000, CRC(7d1a1fec) SHA1(28311b07673686c18988400d0254533a454f07f4) )
  2561: 	ROM_LOAD( "b42-02.5",    0x80000, 0x80000, CRC(1a52e65c) SHA1(20a1fc4d02b5928fb01444079692e23d178c6297) )
  2562: ROM_END
  2563: 
  2564: ROM_START( kurikinj )
  2565: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2566: 	ROM_LOAD( "b42_05.2",    0x00000, 0x20000, CRC(077222b8) SHA1(953fb3444f6bb0dbe0323a0fd8fc3067b106a4f6) )
  2567: 	ROM_RELOAD(              0x10000, 0x20000 )
  2568: 	ROM_LOAD( "b42-06.6",    0x30000, 0x20000, CRC(fa15fd65) SHA1(a810d7315878212e4e5344a24addf117ea6baeab) )
  2569: 
  2570: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
  2571: 	ROM_LOAD( "b42-07.22",   0x00000, 0x10000, CRC(0f2719c0) SHA1(f870335a75f236f0059522f9a577dee7ca3acb2f) )
  2572: 
  2573: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2574: 	ROM_LOAD( "b42-01.1",    0x00000, 0x80000, CRC(7d1a1fec) SHA1(28311b07673686c18988400d0254533a454f07f4) )
  2575: 	ROM_LOAD( "b42-02.5",    0x80000, 0x80000, CRC(1a52e65c) SHA1(20a1fc4d02b5928fb01444079692e23d178c6297) )
  2576: ROM_END
  2577: 
  2578: ROM_START( kurikina )
  2579: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2580: 	ROM_LOAD( "kk_ic2.rom",  0x00000, 0x20000, CRC(908603f2) SHA1(f810f2501458224e9264a984f22547cc8ccc2b0e) )
  2581: 	ROM_RELOAD(              0x10000, 0x20000 )
  2582: 	ROM_LOAD( "kk_ic6.rom",  0x30000, 0x20000, CRC(a4a957b1) SHA1(bbdb5b71ab613a8c89f7a0300abd85408951dc7e) )
  2583: 
  2584: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
  2585: 	ROM_LOAD( "b42-07.22",   0x00000, 0x10000, CRC(0f2719c0) SHA1(f870335a75f236f0059522f9a577dee7ca3acb2f) )
  2586: 
  2587: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2588: 	ROM_LOAD( "kk_1-1l.rom", 0x00000, 0x20000, CRC(df1d4fcd) SHA1(300cad3636ea9648595c3f4bba3ca737f95f7354) )
  2589: 	ROM_LOAD( "kk_2-2l.rom", 0x20000, 0x20000, CRC(fca7f647) SHA1(0571e8fc2eda9f139e81d6d191368fb99764f797) )
  2590: 	ROM_LOAD( "kk_5-3l.rom", 0x40000, 0x20000, CRC(d080fde1) SHA1(e5011cdf35bf5d39f4786e6d60d2b35a79560dfa) )
  2591: 	ROM_LOAD( "kk_7-4l.rom", 0x60000, 0x20000, CRC(f5bf6829) SHA1(4c1b4c6f451ed823730762f67c2e716789cddb10) )
  2592: 	ROM_LOAD( "kk_3-1h.rom", 0x80000, 0x20000, CRC(71af848e) SHA1(1e4d050c9191a8645f324de84767662ed80165b6) )
  2593: 	ROM_LOAD( "kk_4-2h.rom", 0xa0000, 0x20000, CRC(cebb5bac) SHA1(6c1e3cdea353bd835b49b95af0bb718e2b46ecfe) )
  2594: 	ROM_LOAD( "kk_6-3h.rom", 0xc0000, 0x20000, CRC(322e3752) SHA1(7592b5dc7945c96f53aeb5c328c54c0dcba3809a) )
  2595: 	ROM_LOAD( "kk_8-4h.rom", 0xe0000, 0x20000, CRC(117bde99) SHA1(fe0f56b6c840e35870639c4de129443e14720a7b) )
  2596: ROM_END
  2597: 
  2598: 
  2599: ROM_START( plotting )
  2600: 	ROM_REGION( 0x20000, REGION_CPU1, 0 )
  2601: 	ROM_LOAD( "plot01.bin", 0x00000, 0x10000, CRC(5b30bc25) SHA1(df8839a90da9e5122d75b6faaf97f59499dbd316) )
  2602: 	ROM_RELOAD(             0x10000, 0x10000 )
  2603: 
  2604: 	ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
  2605: 	ROM_LOAD( "plot07.bin", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) )
  2606: 	ROM_LOAD( "plot08.bin", 0x10000, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) )
  2607: ROM_END
  2608: 
  2609: ROM_START( puzznic )
  2610: 	ROM_REGION( 0x30000, REGION_CPU1, 0 )
  2611: 	ROM_LOAD( "u11.rom",  0x00000, 0x20000, CRC(a4150b6c) SHA1(27719b8993735532cd59f4ed5693ff3143ee2336) )
  2612: 	ROM_RELOAD(           0x10000, 0x20000 )
  2613: 
  2614: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 2k for the microcontroller */
  2615: 	ROM_LOAD( "mc68705p", 0x0000, 0x0800, NO_DUMP )
  2616: 
  2617: 	ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE )
  2618: 	ROM_LOAD( "u10.rom",  0x00000, 0x20000, CRC(4264056c) SHA1(d2d8a170ae0f361093a5384935238605a59e5938) )
  2619: 	ROM_LOAD( "u09.rom",  0x20000, 0x20000, CRC(3c115f8b) SHA1(8d518be01b7c4d6d993d5d9b62aab719a5c8baca) )
  2620: ROM_END
  2621: 
  2622: ROM_START( horshoes )
  2623: 	ROM_REGION( 0x30000, REGION_CPU1, 0 )
  2624: 	ROM_LOAD( "c47.03", 0x00000, 0x20000, CRC(37e15b20) SHA1(85baa0ee553e4c9fed38294ba8912f18f519e62f) )
  2625: 	ROM_RELOAD(         0x10000, 0x20000 )
  2626: 
  2627: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
  2628: 	ROM_LOAD( "c47.02", 0x00000, 0x10000, CRC(35f96526) SHA1(e7f9b33d82b050aff49f991aa12db436421caa5b) )
  2629: 	ROM_CONTINUE (      0x20000, 0x10000 )
  2630: 	ROM_LOAD( "c47.04", 0x40000, 0x10000, CRC(aeac7121) SHA1(cf67688cde14d452da6d9cbd7a81593f4048ce77) )
  2631: 	ROM_CONTINUE (      0x60000, 0x10000 )
  2632: 	ROM_LOAD( "c47.01", 0x10000, 0x10000, CRC(031c73d8) SHA1(deef972fbf226701f9a6469ae3934129dc52ce9c) )
  2633: 	ROM_CONTINUE (      0x30000, 0x10000 )
  2634: 	ROM_LOAD( "c47.05", 0x50000, 0x10000, CRC(b2a3dafe) SHA1(5ffd3e296272ef3f31432005c827f057aac79497) )
  2635: 	ROM_CONTINUE (      0x70000, 0x10000 )
  2636: ROM_END
  2637: 
  2638: ROM_START( palamed )
  2639: 	ROM_REGION( 0x30000, REGION_CPU1, 0 )
  2640: 	ROM_LOAD( "c63.02", 0x00000, 0x20000, CRC(55a82bb2) SHA1(f157ad770351d4b8d8f8c061c4e330d6391fc624) )
  2641: 	ROM_RELOAD(         0x10000, 0x20000 )
  2642: 
  2643: 	ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE )
  2644: 	ROM_LOAD( "c63.04", 0x00000, 0x20000, CRC(c7bbe460) SHA1(1c1f186d0b0b2e383f82c53ae93b975a75f50f9c) )
  2645: 	ROM_LOAD( "c63.03", 0x20000, 0x20000, CRC(fcd86e44) SHA1(bdd0750ed6e93cc49f09f4ccb05b0c4a44cb9c23) )
  2646: ROM_END
  2647: 
  2648: ROM_START( cachat )
  2649: 	ROM_REGION( 0x30000, REGION_CPU1, 0 )
  2650: 	ROM_LOAD( "cac6",  0x00000, 0x20000, CRC(8105cf5f) SHA1(e6dd22165436c247db887a04c3e69c9e2505bb33) )
  2651: 	ROM_RELOAD(        0x10000, 0x20000 )
  2652: 
  2653: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
  2654: 	ROM_LOAD( "cac9",  0x00000, 0x20000, CRC(bc462914) SHA1(3eede8940cabadf563acb63059bfc2d13253b29f) )
  2655: 	ROM_LOAD( "cac10", 0x20000, 0x20000, CRC(ecc64b31) SHA1(04ce97cdcdbdbd38602011f5ed27fe9182fb500a) )
  2656: 	ROM_LOAD( "cac7",  0x40000, 0x20000, CRC(7fb71578) SHA1(34cfa1383ea1f3cbf45eaf6b989a1248cdef1bb9) )
  2657: 	ROM_LOAD( "cac8",  0x60000, 0x20000, CRC(d2a63799) SHA1(71b024b239834ef068b7fc20cd49aae7853e0f7c) )
  2658: ROM_END
  2659: 
  2660: ROM_START( tubeit )
  2661: 	ROM_REGION( 0x30000, REGION_CPU1, 0 )
  2662: 	ROM_LOAD( "t-i_02.6", 0x00000, 0x20000, CRC(54730669) SHA1(a44ebd31a8588a133a7552a39fa8d52ba1985e45) )
  2663: 	ROM_RELOAD(         0x10000, 0x20000 )
  2664: 
  2665: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
  2666: 	ROM_LOAD( "t-i_03.7", 0x40000, 0x40000, CRC(e1c3fed0) SHA1(cd68dbf61ed820f4aa50c630e7cb778aafb433c2) )
  2667: 	ROM_LOAD( "t-i_04.9", 0x00000, 0x40000, CRC(b4a6e31d) SHA1(e9abab8f19c78207f25a62104bcae1e391cbd2c0) )
  2668: ROM_END
  2669: 
  2670: ROM_START( cubybop )
  2671: 	ROM_REGION( 0x50000, REGION_CPU1, 0 )
  2672: 	ROM_LOAD( "cb06.6", 0x00000, 0x40000, CRC(66b89a85) SHA1(2ba26d71fd1aa8e64584a5908a1d797666718d49) )
  2673: 	ROM_RELOAD(         0x10000, 0x40000 )
  2674: 
  2675: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2676: 	ROM_LOAD( "cb09.9",  0x00000, 0x40000, CRC(5f831e59) SHA1(db319a6c1058200274d687163b4df2f78a2bf879) )
  2677: 	ROM_LOAD( "cb10.10", 0x40000, 0x40000, CRC(430510fc) SHA1(95c0a0ebd0485a15090f302e5d2f4da8204baf7c) )
  2678: 	ROM_LOAD( "cb07.7",  0x80000, 0x40000, CRC(3582de99) SHA1(51620cc9044aef8e5ed0335b7d5d6d67a7857005) )
  2679: 	ROM_LOAD( "cb08.8",  0xc0000, 0x40000, CRC(09e18a51) SHA1(18db47d1d84f9be892bc796116c7ef7d0c1ee59f) )
  2680: ROM_END
  2681: 
  2682: ROM_START( plgirls )
  2683: 	ROM_REGION( 0x50000, REGION_CPU1, 0 )
  2684: 	ROM_LOAD( "pg03.ic6",    0x00000, 0x40000, CRC(6ca73092) SHA1(f5679f047a29b936046c0d3677489df553ad7b41) )
  2685: 	ROM_RELOAD(              0x10000, 0x40000 )
  2686: 
  2687: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
  2688: 	ROM_LOAD( "pg02.ic9",    0x00000, 0x40000, CRC(3cf05ca9) SHA1(502c45a5330dda1b2fbf7d3d0c9bc6e889ff07d8) )
  2689: 	ROM_LOAD( "pg01.ic7",    0x40000, 0x40000, CRC(79e41e74) SHA1(aa8efbeeee47f84e19b639821a89a7bcd67fe7a9) )
  2690: ROM_END
  2691: 
  2692: ROM_START( plgirls2 )
  2693: 	ROM_REGION( 0x50000, REGION_CPU1, 0 )
  2694: 	ROM_LOAD( "pg2_1j.ic6",  0x00000, 0x40000, CRC(f924197a) SHA1(ecaaefd1b3715ba60608e05d58be67e3c71f653a) )
  2695: 	ROM_RELOAD(              0x10000, 0x40000 )
  2696: 
  2697: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2698: 	ROM_LOAD( "cho-l.ic9",   0x00000, 0x80000, CRC(956384ec) SHA1(94a2b95f340e96bdccbeafd373f0dea90b8328dd) )
  2699: 	ROM_LOAD( "cho-h.ic7",   0x80000, 0x80000, CRC(992f99b1) SHA1(c79f1014d73654740f7823812f92376d65d6b15d) )
  2700: ROM_END
  2701: 
  2702: ROM_START( evilston )
  2703: 	ROM_REGION( 0xb0000, REGION_CPU1, 0 )
  2704: 	ROM_LOAD( "c67-03.ic2",    0x00000, 0x20000, CRC(53419982) SHA1(ecc338e2237d26c5ff25b756d371b26b23beed1e) )
  2705: 	ROM_RELOAD(              0x10000, 0x20000 )
  2706: 	ROM_LOAD( "c67-04.ic6",    0x30000, 0x20000, CRC(55d57e19) SHA1(8815bcaafe7ee056314b4131e3fb7963854dd6ba) )
  2707: 
  2708: 	ROM_REGION( 0x80000, REGION_CPU2, 0 )
  2709: 	ROM_LOAD( "c67-05.22",   0x00000, 0x20000, CRC(94d3a642) SHA1(af20aa5bb60a45c05eb1deba23ba30e6640ca235) )
  2710: 	
  2711: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  2712: 	ROM_LOAD( "c67-01.ic1",    0x00000, 0x80000, CRC(2f351bf4) SHA1(0fb37abf3413cd11baece1c9bbca5a51b0f28938) )
  2713: 	ROM_LOAD( "c67-02.ic5",    0x80000, 0x80000, CRC(eb4f895c) SHA1(2c902572fe5a5d4442e4dd29e8a85cb40c384140) )
  2714: ROM_END
  2715: 
  2716: 
  2717: 
  2718: 
  2719: // bits 7..0 => bits 0..7
  2720: static DRIVER_INIT( plotting )
  2721: {
  2722: 	unsigned char tab[256];
  2723: 	unsigned char *p;
  2724: 	int i;
  2725: 
  2726: 	for(i=0;i<256;i++)
  2727: 	{
  2728: 		int j, v=0;
  2729: 		for(j=0;j<8;j++)
  2730: 			if(i & (1<<j))
  2731: 				v |= 1<<(7-j);
  2732: 		tab[i] = v;
  2733: 	}
  2734: 	p = memory_region(REGION_CPU1);
  2735: 	for(i=0;i<0x20000;i++)
  2736: 	{
  2737: 		*p = tab[*p];
  2738: 		p++;
  2739: 	}
  2740: }
  2741: 
  2742: static DRIVER_INIT( evilston )
  2743: {
  2744: 	unsigned char *ROM = memory_region(REGION_CPU2);
  2745: 	ROM[0x72]=0x45;	/* reti -> retn  ('dead' loop @ $1104 )*/
  2746: 	install_mem_write_handler( 0, 0xa7fe, 0xa7fe, evilston_snd_w);
  2747: }
  2748: 
  2749: 
  2750: GAME( 1988, raimais,  0,        raimais,  raimais,  0,        ROT0,   "Taito Corporation", "Raimais (Japan)" )
  2751: GAME( 1988, fhawk,    0,        fhawk,    fhawk,    0,        ROT270, "Taito Corporation", "Fighting Hawk (Japan)" )
  2752: GAME( 1989, champwr,  0,        champwr,  champwr,  0,        ROT0,   "Taito Corporation Japan", "Champion Wrestler (World)" )
  2753: GAME( 1989, champwru, champwr,  champwr,  champwru, 0,        ROT0,   "Taito America Corporation", "Champion Wrestler (US)" )
  2754: GAME( 1989, champwrj, champwr,  champwr,  champwrj, 0,        ROT0,   "Taito Corporation", "Champion Wrestler (Japan)" )
  2755: GAME( 1988, kurikint, 0,        kurikint, kurikint, 0,        ROT0,   "Taito Corporation Japan", "Kuri Kinton (World)" )
  2756: GAME( 1988, kurikinu, kurikint, kurikint, kurikinj, 0,        ROT0,   "Taito America Corporation", "Kuri Kinton (US)" )
  2757: GAME( 1988, kurikinj, kurikint, kurikint, kurikinj, 0,        ROT0,   "Taito Corporation", "Kuri Kinton (Japan)" )
  2758: GAME( 1988, kurikina, kurikint, kurikina, kurikina, 0,        ROT0,   "Taito Corporation Japan", "Kuri Kinton (World, prototype?)" )
  2759: GAME( 1989, plotting, 0,        plotting, plotting, plotting, ROT0,   "Taito Corporation Japan", "Plotting (World)" )
  2760: GAME( 1989, puzznic,  0,        puzznic,  puzznic,  0,        ROT0,   "Taito Corporation", "Puzznic (Japan)" )
  2761: GAME( 1990, horshoes, 0,        horshoes, horshoes, 0,        ROT270, "Taito America Corporation", "American Horseshoes (US)" )
  2762: GAME( 1990, palamed,  0,        palamed,  palamed,  0,        ROT0,   "Taito Corporation", "Palamedes (Japan)" )
  2763: GAME( 1993, cachat,   0,        cachat,   cachat,   0,        ROT0,   "Taito Corporation", "Cachat (Japan)" )
  2764: GAME( 1993, tubeit,   cachat,   cachat,   tubeit,   0,        ROT0,   "Taito Corporation", "Tube-It" )  // No (c) message
  2765: GAME( 199?, cubybop,  0,        cachat,   cubybop,  0,        ROT0,   "Taito Corporation", "Cuby Bop" ) // No (c) message
  2766: 
  2767: GAME( 1992, plgirls,  0,        cachat,   plgirls,  0,        ROT270, "Hot-B.", "Play Girls" )
  2768: GAME( 1993, plgirls2, 0,        cachat,   plgirls2, 0,        ROT270, "Hot-B.", "Play Girls 2" )
  2769: 
  2770: GAME( 1990, evilston, 0,        evilston, evilston, evilston, ROT270, "Spacy Industrial, Ltd.", "Evil Stone" )
  2771: 




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