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 : Ghox : VM Driver Source

Source Listing


     1: /*****************************************************************************
     2: 
     3: 		ToaPlan      game hardware from 1991 - 1994
     4: 		Raizing/8ing game hardware from 1993 onwards
     5: 		-------------------------------------------------
     6: 		Driver by: Quench and Yochizo
     7: 
     8:    Raizing games and Truxton 2 are heavily dependent on the Raine source -
     9:    many thanks to Richard Bush and the Raine team. [Yochizo]
    10: 
    11: 
    12: 
    13: Supported games:
    14: 
    15: 	Name		Board No	Maker			Game name
    16: 	----------------------------------------------------------------------------
    17: 	tekipaki	TP-020		 Toaplan		Teki Paki
    18: 	ghox		TP-021		 Toaplan		Ghox
    19: 	dogyuun		TP-022		 Toaplan		Dogyuun
    20: 	kbash		TP-023		 Toaplan		Knuckle Bash
    21: 	truxton2	TP-024		 Toaplan		Truxton 2 / Tatsujin 2
    22: 	pipibibs	TP-025		 Toaplan		Pipi & Bibis
    23: 	whoopee		TP-025		 Toaplan		Whoopee
    24: 	pipibibi	bootleg?	 Toaplan		Pipi & Bibis
    25: 	fixeight	TP-026		 Toaplan		FixEight
    26: 	grindstm	TP-027		 Toaplan		Grind Stormer  (1992)
    27: 	grindsta	TP-027		 Toaplan		Grind Stormer  (1992) (older)
    28: 	vfive		TP-027		 Toaplan		V-V  (V-Five)  (1993 - Japan only)
    29: 	batsugun	TP-030		 Toaplan		Batsugun
    30: 	batugnsp	TP-030		 Toaplan		Batsugun  (Special Version)
    31: 	snowbro2	??????		 Toaplan		Snow Bros. 2 - With New Elves
    32: 
    33: 	mahoudai	RA-MA7893-01 Raizing		Mahou Daisakusen
    34: 	shippumd	??????		 Raizing/8ing	Shippu Mahou Daisakusen
    35: 	battleg		RA9503		 Raizing/8ing	Battle Garegga (Type 2)
    36: 	battlega	RA9503		 Raizing/8ing	Battle Garegga
    37: 	battlegb	RA9503		 Raizing/8ing	Battle Garegga (New Version?)
    38: 	batrider	RA9704		 Raizing/8ing	Armed Police Batrider - Rev B (Japan - Ver. Fri Feb 13 1998)
    39: 	batridra	RA9704		 Raizing/8ing	Armed Police Batrider (Japan - Ver. Mon Dec 22 1997)
    40: 	batridrk	RA9704		 Raizing/8ing	Armed Police Batrider (Korea - Ver. Fri Feb 13 1998)
    41: 	bbakraid	ET68-V99	 8ing			Battle Bakraid - unlimited version (Japan - Tue Jun 8th, 1999)
    42: 	bbakrada	ET68-V99	 8ing			Battle Bakraid (Japan - Wed Apr 7th, 1999)
    43: 
    44: 
    45: 
    46:  ****************************************************************************
    47:  * Battle Garegga and Armed Police Batrider have secret characters.			*
    48:  * Try to input the following commands to use them.							*
    49:  * ======================================================================== *
    50:  * Battle Garegga															*
    51:  *		After inserting a coin (pushing a credit button), input				*
    52:  *		UP  UP  DOWN  DOWN  LEFT  RIGHT  LEFT  RIGHT  A  B  C  START		*
    53:  *		then you can use Mahou Daisakusen characters.						*
    54:  *																			*
    55:  * ------------------------------------------------------------------------ *
    56:  * Armed Police Batrider													*
    57:  *		After inserting a coin (pushing a credit button), input				*
    58:  *		UP  UP  DOWN  DOWN  LEFT  RIGHT  LEFT  RIGHT  A  B  START			*
    59:  *		then you can use Mahou Daisakusen and Battle Garegga characters.	*
    60:  *																			*
    61:  ****************************************************************************
    62: 
    63: 
    64:  ############################################################################
    65:  # Battle Bakraid 'Unlimited Version' has unlocking codes to gain			#
    66:  # access to extra players and game features.								#
    67:  # Special thanks go to the 'R8ZING Shooter Tribute' page for finding		#
    68:  # and publishing this info.												#
    69:  #																			#
    70:  # ======================================================================== #
    71:  #		PLAYER SELECT: PHASE 2												#
    72:  # Result:	3 more fighter planes available:								#
    73:  # Code:	UP  UP  DOWN  DOWN  LEFT  RIGHT  LEFT  RIGHT  A  B  Start		#
    74:  # Conditions:																#
    75:  #		1. Start from the title screen										#
    76:  #		2. Insert Coin														#
    77:  #		3. Watch the 20 sec. counter and enter each part of the code right	#
    78:  #		   between the counting.											#
    79:  # Example: 12,up,11,up,10,down,9,down,8,left,7,right,6.left,5,r..			#
    80:  # After entering the [B] button a chime should sound. Phase 2 unlocked!	#
    81:  #																			#
    82:  # ------------------------------------------------------------------------ #
    83:  #		PLAYER SELECT: PHASE 3												#
    84:  # Result:	2 more fighter planes available:								#
    85:  # Code:	UP  UP  DOWN  DOWN  LEFT  RIGHT  LEFT  RIGHT  B  A  Start		#
    86:  # Conditions:																#
    87:  #		1. Start from the title screen										#
    88:  #		2. Insert Coin														#
    89:  #		3. Watch the 20 sec. counter and enter each part of the code right	#
    90:  #		   between the counting.											#
    91:  # Important: The entering of this code has to be finished before the		#
    92:  # counter passes 10 ! To do so, you will have to start after coin			#
    93:  # insertion, right before it starts to count:								#
    94:  # Example: up,19,up,18,down,17,down,16,left,15,right,14.left,..			#
    95:  # After entering the [A] button a chime should sound. Phase 3 unlocked!	#
    96:  #																			#
    97:  # ------------------------------------------------------------------------ #
    98:  #		TEAM EDIT: ENABLE													#
    99:  # Result:	Unlocks the 'team edit' feature to select a team of different	#
   100:  # 			ships. See selection secrets on how to enter the team edit mode.#
   101:  # Code:	UP  DOWN  UP  DOWN  LEFT  RIGHT  LEFT  RIGHT  A  B  Start		#
   102:  # Conditions:																#
   103:  #		1. Start from the title screen										#
   104:  #		2. Insert Coin														#
   105:  #		3. Watch the 20 sec. counter and enter each part of the code right	#
   106:  #		   between the counting.											#
   107:  # Important: This code hast to be entered so that the counter is at 0 when	#
   108:  # you press the final button [B]. To do so, start after second 9:			#
   109:  # Example: 9,up,8,down,7,up,6,down,5,left,4,right,3,left,2,right,1,A,0,B	#
   110:  # After entering the [B] button a chime should sound. Team edit unlocked!	#
   111:  #																			#
   112:  # ------------------------------------------------------------------------ #
   113:  #		SPECIAL COURSE : ENABLE												#
   114:  # Result:	Unlocks the boss mode, a game mode where you fight the bosses	#
   115:  # 			only.															#
   116:  # Code:	UP  DOWN  UP  DOWN  LEFT  RIGHT  LEFT  RIGHT  B  A  Start		#
   117:  # Conditions:																#
   118:  #		1. Start from the title screen										#
   119:  #		2. Hold [C] button													#
   120:  #		3. Insert Coin														#
   121:  #		4. Watch the 20 sec. counter and enter each part of the code right	#
   122:  #		   between the counting.											#
   123:  #		5. Release [C] button												#
   124:  # After entering the [A] button a chime should sound. Special course		#
   125:  # unlocked!																#
   126:  ############################################################################
   127: 
   128: 
   129: 
   130: *************** Hardware Info ***************
   131: 
   132: CPU:
   133:  MC68000P10
   134:  TMP68HC000N-16
   135: 
   136: Sound CPU/MCU:
   137:  HD647180X0FS6 (Hitachi Z180 Compatible CPU with inernal ROM code)
   138:  Z84C0006PEC (Z80)
   139: 
   140: 
   141: Sound Chips:
   142:  YM3812
   143:  YM2151
   144:  YM2151 + YM3014
   145:  YM2151 + M6295
   146:  YM2151 + M6295 + M6295
   147:  YMZ280B-F + YAC516-E (Digital to Analog Converter)
   148: 
   149: 
   150: Graphics Custom 208pin QFP:
   151:  GP9001 L7A0498 TOA PLAN
   152: 
   153: Toaplan / Riazing / 8ing games use different revisions of the custom
   154: Toa Plan 208 pin QFP L7A0498 GP9001 series graphics processing chip:
   155: 
   156: Fixeight				L7A0498 GP9001 TOA PLAN 9150
   157: Grind Stormer			L7A0498 GP9001 TOA PLAN 9150
   158: Truxton II				L7A0498 GP9001 TOA PLAN 9152
   159: Ghox					L7A0498 GP9001 TOA PLAN 9044
   160: Armed Police Batrider	L7A0498 GP9001 TOA PLAN NNG 9217 WK94254
   161: Battle Garegga			L7A0498 GP9001 TOA PLAN 9236
   162: Mahou Daisakusen		L7A0498 GP9001 TOA PLAN 9240
   163: Battle Bakraid			L7A0498 GP9001 TOA PLAN 9335
   164: 
   165: 
   166: Game status:
   167: 
   168: Teki Paki                      Working, but no sound. Missing sound MCU dump
   169: Ghox                           Working, but no sound. Missing sound MCU dump
   170: Dogyuun                        Working, but no sound. MCU type unknown - its a Z?80 of some sort.
   171: Knuckle Bash                   Working, but no sound. MCU dump exists, its a Z?80 of some sort.
   172: Truxton 2                      Working.
   173: Pipi & Bibis                   Working.
   174: Whoopee                        Working. Missing sound MCU dump. Using bootleg sound CPU dump for now
   175: Pipi & Bibis (Ryouta Kikaku)   Working.
   176: FixEight                       Not working properly. Missing background GFX (controlled by MCU). MCU type unknown - its a Z?80 of some sort.
   177: Grind Stormer                  Working, but no sound. MCU type unknown - its a Z?80 of some sort.
   178: VFive                          Working, but no sound. MCU type unknown - its a Z?80 of some sort.
   179: Batsugun                       Working, but no sound and wrong GFX priorities. MCU type unknown - its a Z?80 of some sort.
   180: Batsugun Sp'                   Working, but no sound and wrong GFX priorities. MCU type unknown - its a Z?80 of some sort.
   181: Snow Bros. 2                   Working.
   182: Mahou Daisakusen               Working.
   183: Shippu Mahou Daisakusen        Working.
   184: Battle Garegga                 Working.
   185: Armed Police Batrider          Working.
   186: Battle Bakraid                 Working, but sound levels/panning/fading are bad
   187: 
   188: 
   189: Notes:
   190: 	See Input Port definition header below, for instructions
   191: 	  on how to enter pause/slow motion modes.
   192: 	Code at $20A26 forces territory to Japan in V-Five. Some stuff
   193: 	  NOP'd at reset vector, and Z?80 CPU post test is skipped (bootleg ?)
   194: 
   195: To Do / Unknowns:
   196: 	- Whoopee/Teki Paki sometimes tests bit 5 of the territory port
   197: 		just after testing for vblank. Why ?
   198: 	- Whoppee is currently using the sound CPU ROM (Z80) from a differnt
   199: 		(pirate ?) version of Pipi and Bibis (Ryouta Kikaku copyright).
   200: 		It really has a HD647180 CPU, and its internal ROM needs to be dumped.
   201: 	- Fix top character text layer (implement the line position table).
   202: 
   203: 
   204: 
   205: *****************************************************************************/
   206: 
   207: 
   208: #include "driver.h" 
   209: #include "vidhrdw/generic.h" 
   210: #include "cpu/m68000/m68000.h" 
   211: #include "cpu/z80/z80.h" 
   212: #include "machine/eeprom.h" 
   213: 
   214: 
   215: /**************** Machine stuff ******************/
   216: #define HD64x180 0		/* Define if CPU support is available */ 
   217: #define Zx80     0 
   218: 
   219: #define CPU_2_NONE		0x00 
   220: #define CPU_2_Z80		0x5a 
   221: #define CPU_2_HD647180	0xa5 
   222: #define CPU_2_Zx80		0xff 
   223: 
   224: /************ Machine RAM related values ************/
   225: static data8_t *toaplan2_shared_ram;
   226: static data8_t *raizing_shared_ram;		/* Shared ram used in Shippumd and Mahoudai */
   227: static data16_t *toaplan2_shared_ram16;	/* Really 8bit RAM connected to Z180 */
   228: static data16_t *Zx80_shared_ram;		/* Really 8bit RAM connected to Z180 */
   229: static data16_t *battleg_commram16;		/* Comm ram used in Battle Garegga */
   230: static data16_t *raizing_cpu_comm16;	/* Raizing commands for the Z80 */
   231: static data8_t  raizing_cpu_reply[2];	/* Raizing replies to the 68K */
   232: 
   233: /************ Video RAM related values ************/
   234: extern data16_t *toaplan2_txvideoram16;
   235: extern data16_t *toaplan2_txvideoram16_offs;
   236: extern data16_t *toaplan2_txscrollram16;
   237: extern data16_t *toaplan2_tx_gfxram16;
   238: size_t toaplan2_tx_vram_size;
   239: size_t toaplan2_tx_offs_vram_size;
   240: size_t toaplan2_tx_scroll_vram_size;
   241: size_t paletteram_size;
   242: 
   243: /********** Status related values **********/
   244: int toaplan2_sub_cpu = 0;
   245: static int mcu_data = 0;
   246: static int video_status;
   247: static int prev_scanline;
   248: //static int prev_beampos;
   249: static INT8 old_p1_paddle_h;			/* For Ghox */
   250: static INT8 old_p1_paddle_v;
   251: static INT8 old_p2_paddle_h;
   252: static INT8 old_p2_paddle_v;
   253: static int current_bank = 2;			/* Z80 bank used in Battle Garegga and Batrider */
   254: static int raizing_Z80_busreq;
   255: static int bbakraid_unlimited_ver;
   256: 
   257: static int current_scanline = 0;
   258: static int vblank_irq;
   259: 
   260: /**************** Video stuff ******************/
   261: WRITE16_HANDLER( toaplan2_0_voffs_w );
   262: WRITE16_HANDLER( toaplan2_1_voffs_w );
   263: 
   264: READ16_HANDLER ( toaplan2_0_videoram16_r );
   265: READ16_HANDLER ( toaplan2_1_videoram16_r );
   266: WRITE16_HANDLER( toaplan2_0_videoram16_w );
   267: WRITE16_HANDLER( toaplan2_1_videoram16_w );
   268: 
   269: READ16_HANDLER ( toaplan2_txvideoram16_r );
   270: WRITE16_HANDLER( toaplan2_txvideoram16_w );
   271: READ16_HANDLER ( toaplan2_txvideoram16_offs_r );
   272: WRITE16_HANDLER( toaplan2_txvideoram16_offs_w );
   273: READ16_HANDLER ( toaplan2_txscrollram16_r );
   274: WRITE16_HANDLER( toaplan2_txscrollram16_w );
   275: READ16_HANDLER ( toaplan2_tx_gfxram16_r );
   276: WRITE16_HANDLER( toaplan2_tx_gfxram16_w );
   277: READ16_HANDLER ( raizing_tx_gfxram16_r );
   278: WRITE16_HANDLER( raizing_tx_gfxram16_w );
   279: 
   280: WRITE16_HANDLER( toaplan2_0_scroll_reg_select_w );
   281: WRITE16_HANDLER( toaplan2_1_scroll_reg_select_w );
   282: WRITE16_HANDLER( toaplan2_0_scroll_reg_data_w );
   283: WRITE16_HANDLER( toaplan2_1_scroll_reg_data_w );
   284: 
   285: WRITE16_HANDLER( batrider_objectbank_w );
   286: WRITE16_HANDLER( batrider_textdata_decode );
   287: 
   288: VIDEO_EOF( toaplan2_0 );
   289: VIDEO_EOF( toaplan2_1 );
   290: VIDEO_EOF( batrider_0 );
   291: VIDEO_START( toaplan2_0 );
   292: VIDEO_START( toaplan2_1 );
   293: VIDEO_START( truxton2_0 );
   294: VIDEO_START( battleg_0 );
   295: VIDEO_START( batrider_0 );
   296: VIDEO_UPDATE( toaplan2_0 );
   297: VIDEO_UPDATE( truxton2_0 );
   298: VIDEO_UPDATE( dogyuun_1 );
   299: VIDEO_UPDATE( batsugun_1 );
   300: VIDEO_UPDATE( batrider_0 );
   301: VIDEO_UPDATE( mahoudai_0 );
   302: 
   303: 
   304: /********* Video wrappers for PIPIBIBI *********/
   305: READ16_HANDLER ( pipibibi_videoram16_r );
   306: WRITE16_HANDLER( pipibibi_videoram16_w );
   307: READ16_HANDLER ( pipibibi_spriteram16_r );
   308: WRITE16_HANDLER( pipibibi_spriteram16_w );
   309: WRITE16_HANDLER( pipibibi_scroll_w );
   310: 
   311: 
   312: 
   313: /***************************************************************************
   314:   Initialisation handlers
   315: ***************************************************************************/
   316: 
   317: 
   318: static MACHINE_INIT( toaplan2 )		/* machine_init_toaplan2(); */
   319: {
   320: 	mcu_data = 0;
   321: }
   322: 
   323: static MACHINE_INIT( ghox )
   324: {
   325: 	old_p1_paddle_h = 0;
   326: 	old_p1_paddle_v = 0;
   327: 	old_p2_paddle_h = 0;
   328: 	old_p2_paddle_v = 0;
   329: 
   330: 	machine_init_toaplan2();
   331: }
   332: 
   333: static MACHINE_INIT( batrider )
   334: {
   335: 	current_bank = 2;
   336: 
   337: 	machine_init_toaplan2();
   338: }
   339: 
   340: static DRIVER_INIT( T2_Z80 )		/* init_t2_Z80(); */
   341: {
   342: 	toaplan2_sub_cpu = CPU_2_Z80;
   343: }
   344: 
   345: static DRIVER_INIT( T2_Z180 )
   346: {
   347: 	toaplan2_sub_cpu = CPU_2_HD647180;
   348: }
   349: 
   350: static DRIVER_INIT( T2_Zx80 )
   351: {
   352: 	toaplan2_sub_cpu = CPU_2_Zx80;
   353: }
   354: 
   355: static DRIVER_INIT( T2_noZ80 )
   356: {
   357: 	toaplan2_sub_cpu = CPU_2_NONE;
   358: }
   359: 
   360: static DRIVER_INIT( fixeight )
   361: {
   362: 	install_mem_read16_handler(0, 0x28f002, 0x28fbff, MRA16_RAM );
   363: 	install_mem_write16_handler(0, 0x28f002, 0x28fbff, MWA16_RAM );
   364: 
   365: 	toaplan2_sub_cpu = CPU_2_Zx80;
   366: }
   367: 
   368: static DRIVER_INIT( pipibibi )
   369: {
   370: 	int A;
   371: 	int oldword, newword;
   372: 
   373: 	data16_t *pipibibi_68k_rom = (data16_t *)(memory_region(REGION_CPU1));
   374: 
   375: 	/* unscramble the 68K ROM data. */
   376: 
   377: 	for (A = 0; A < (0x040000/2); A+=4)
   378: 	{
   379: 		newword = 0;
   380: 		oldword = pipibibi_68k_rom[A];
   381: 		newword |= ((oldword & 0x0001) << 9);
   382: 		newword |= ((oldword & 0x0002) << 14);
   383: 		newword |= ((oldword & 0x0004) << 8);
   384: 		newword |= ((oldword & 0x0018) << 1);
   385: 		newword |= ((oldword & 0x0020) << 9);
   386: 		newword |= ((oldword & 0x0040) << 7);
   387: 		newword |= ((oldword & 0x0080) << 5);
   388: 		newword |= ((oldword & 0x0100) << 3);
   389: 		newword |= ((oldword & 0x0200) >> 1);
   390: 		newword |= ((oldword & 0x0400) >> 8);
   391: 		newword |= ((oldword & 0x0800) >> 10);
   392: 		newword |= ((oldword & 0x1000) >> 12);
   393: 		newword |= ((oldword & 0x6000) >> 7);
   394: 		newword |= ((oldword & 0x8000) >> 12);
   395: 		pipibibi_68k_rom[A] = newword;
   396: 
   397: 		newword = 0;
   398: 		oldword = pipibibi_68k_rom[A+1];
   399: 		newword |= ((oldword & 0x0001) << 8);
   400: 		newword |= ((oldword & 0x0002) << 12);
   401: 		newword |= ((oldword & 0x0004) << 5);
   402: 		newword |= ((oldword & 0x0008) << 11);
   403: 		newword |= ((oldword & 0x0010) << 2);
   404: 		newword |= ((oldword & 0x0020) << 10);
   405: 		newword |= ((oldword & 0x0040) >> 1);
   406: 		newword |= ((oldword & 0x0080) >> 7);
   407: 		newword |= ((oldword & 0x0100) >> 4);
   408: 		newword |= ((oldword & 0x0200) << 0);
   409: 		newword |= ((oldword & 0x0400) >> 7);
   410: 		newword |= ((oldword & 0x0800) >> 1);
   411: 		newword |= ((oldword & 0x1000) >> 10);
   412: 		newword |= ((oldword & 0x2000) >> 2);
   413: 		newword |= ((oldword & 0x4000) >> 13);
   414: 		newword |= ((oldword & 0x8000) >> 3);
   415: 		pipibibi_68k_rom[A+1] = newword;
   416: 
   417: 		newword = 0;
   418: 		oldword = pipibibi_68k_rom[A+2];
   419: 		newword |= ((oldword & 0x000f) << 4);
   420: 		newword |= ((oldword & 0x00f0) >> 4);
   421: 		newword |= ((oldword & 0x0100) << 3);
   422: 		newword |= ((oldword & 0x0200) << 1);
   423: 		newword |= ((oldword & 0x0400) >> 1);
   424: 		newword |= ((oldword & 0x0800) >> 3);
   425: 		newword |= ((oldword & 0x1000) << 3);
   426: 		newword |= ((oldword & 0x2000) << 1);
   427: 		newword |= ((oldword & 0x4000) >> 1);
   428: 		newword |= ((oldword & 0x8000) >> 3);
   429: 		pipibibi_68k_rom[A+2] = newword;
   430: 
   431: 		newword = 0;
   432: 		oldword = pipibibi_68k_rom[A+3];
   433: 		newword |= ((oldword & 0x000f) << 4);
   434: 		newword |= ((oldword & 0x00f0) >> 4);
   435: 		newword |= ((oldword & 0x0100) << 7);
   436: 		newword |= ((oldword & 0x0200) << 5);
   437: 		newword |= ((oldword & 0x0400) << 3);
   438: 		newword |= ((oldword & 0x0800) << 1);
   439: 		newword |= ((oldword & 0x1000) >> 1);
   440: 		newword |= ((oldword & 0x2000) >> 3);
   441: 		newword |= ((oldword & 0x4000) >> 5);
   442: 		newword |= ((oldword & 0x8000) >> 7);
   443: 		pipibibi_68k_rom[A+3] = newword;
   444: 	}
   445: 
   446: 	toaplan2_sub_cpu = CPU_2_Z80;
   447: }
   448: 
   449: static DRIVER_INIT( battleg )
   450: {
   451: 	data8_t *Z80 = (data8_t *)memory_region(REGION_CPU2);
   452: 
   453: 	/* Set Z80 bank switch */
   454: 	cpu_setbank(1, &Z80[0x10000]);		/* Default bank is 2 */
   455: 
   456: 	toaplan2_sub_cpu = CPU_2_Z80;
   457: }
   458: 
   459: static DRIVER_INIT( bbakraid )
   460: {
   461: 	bbakraid_unlimited_ver = 1;
   462: 	toaplan2_sub_cpu = CPU_2_Z80;
   463: }
   464: 
   465: static DRIVER_INIT( bbakrada )
   466: {
   467: 	bbakraid_unlimited_ver = 0;
   468: 	toaplan2_sub_cpu = CPU_2_Z80;
   469: }
   470: 
   471: 
   472: /***************************************************************************
   473:   Toaplan games
   474: ***************************************************************************/
   475: 
   476: READ16_HANDLER( toaplan2_inputport_0_word_r )
   477: {
   478: //	int retval = (current_scanline>255) ? 1 : 0;
   479: 	int retval = vblank_irq;
   480: 	return retval;
   481: }
   482: 
   483: static void toaplan2_irq(int irq_line)
   484: {
   485: 	if (cpu_getiloops() == 0) current_scanline = 255;
   486: 
   487: 	if(current_scanline == 245)
   488: 	{
   489: 		cpu_set_irq_line(0, irq_line, HOLD_LINE);
   490: 		vblank_irq = 1;
   491: 	}
   492: 
   493: 	current_scanline++;
   494: 	if(current_scanline > 261)
   495: 	{
   496: 		current_scanline = 0;
   497: 		vblank_irq = 0;
   498: 	}
   499: }
   500: 
   501: static INTERRUPT_GEN( toaplan2_vblank_irq2 ) {toaplan2_irq(2);}
   502: static INTERRUPT_GEN( toaplan2_vblank_irq3 ) {toaplan2_irq(3);}
   503: static INTERRUPT_GEN( toaplan2_vblank_irq4 ) {toaplan2_irq(4);}
   504: 
   505: static READ16_HANDLER( video_count_r )
   506: {
   507: 	/* +---------+---------+--------+---------------------------+ */
   508: 	/* | /H-Sync | /V-Sync | /Blank |       Scanline Count      | */
   509: 	/* | Bit 15  | Bit 14  | Bit 8  |  Bit 7-0 (count from #EF) | */
   510: 	/* +---------+---------+--------+---------------------------+ */
   511: 	/*************** Control Signals are active low ***************/
   512: 
   513: //	static int current_beampos = 0;
   514: 
   515: //	logerror("Was VC=%04x  Vbl=%02x  VS=%04x  HS=%04x - ",video_status,vblank_irq,prev_scanline,prev_beampos );
   516: 
   517: 	video_status = 0xff00;						/* Set signals inactive */
   518: 	video_status |= (current_scanline & 0xff);	/* Scanline */
   519: 
   520: 	if (vblank_irq) {
   521: 		video_status &= ~0x0100;
   522: 	}
   523: 	if (prev_scanline != current_scanline) {
   524: 		video_status &= ~0x8000;				/* Activate V-Sync Clk */
   525: 	}
   526: //	if (current_beampos) {
   527: //		video_status &= ~0x4000;
   528: //	}
   529: //	current_beampos = ~current_beampos;
   530: 	prev_scanline = current_scanline;
   531: 
   532: //	logerror("Now VC=%04x  Vbl=%02x  VS=%04x  HS=%04x\n",video_status,vblank_irq,cpu_getscanline(),cpu_gethorzbeampos() );
   533: 
   534: 	return video_status;
   535: }
   536: 
   537: static WRITE_HANDLER( toaplan2_coin_w )
   538: {
   539: 	/* +----------------+------ Bits 7-5 not used ------+--------------+ */
   540: 	/* | Coin Lockout 2 | Coin Lockout 1 | Coin Count 2 | Coin Count 1 | */
   541: 	/* |     Bit 3      |     Bit 2      |     Bit 1    |     Bit 0    | */
   542: 
   543: 	if (data & 0x0f)
   544: 	{
   545: 		coin_lockout_w( 0, ((data & 4) ? 0 : 1) );
   546: 		coin_lockout_w( 1, ((data & 8) ? 0 : 1) );
   547: 		coin_counter_w( 0, (data & 1) ); coin_counter_w( 0, 0 );
   548: 		coin_counter_w( 1, (data & 2) ); coin_counter_w( 1, 0 );
   549: 	}
   550: 	else
   551: 	{
   552: 		coin_lockout_global_w(1); /* Lock all coin slots */
   553: 	}
   554: 	if (data & 0xe0)
   555: 	{
   556: 		logerror("Writing unknown upper bits (%02x) to coin control\n",data);
   557: 	}
   558: }
   559: static WRITE16_HANDLER( toaplan2_coin_word_w )
   560: {
   561: 	if (ACCESSING_LSB)
   562: 	{
   563: 		toaplan2_coin_w(offset, data & 0xff);
   564: 		if (toaplan2_sub_cpu == CPU_2_Z80)
   565: 		{
   566: 			if (Machine->drv->sound[1].sound_type == SOUND_OKIM6295)
   567: 			{
   568: 				OKIM6295_set_bank_base(0, (((data & 0x10) >> 4) * 0x40000));
   569: 			}
   570: 		}
   571: 	}
   572: 	if (ACCESSING_MSB && (data & 0xff00) )
   573: 	{
   574: 		logerror("Writing unknown upper MSB command (%04x) to coin control\n",data & 0xff00);
   575: 	}
   576: }
   577: 
   578: static READ16_HANDLER( toaplan2_shared_r )
   579: {
   580: 	return toaplan2_shared_ram[offset] & 0xff;
   581: }
   582: 
   583: static WRITE16_HANDLER( toaplan2_shared_w )
   584: {
   585: 	if (ACCESSING_LSB)
   586: 	{
   587: 		toaplan2_shared_ram[offset] = data & 0xff;
   588: 	}
   589: }
   590: 
   591: static WRITE16_HANDLER( toaplan2_hd647180_cpu_w )
   592: {
   593: 	/* Command sent to secondary CPU. Support for HD647180 will be
   594: 	   required when a ROM dump becomes available for this hardware */
   595: 
   596: 	if (ACCESSING_LSB)
   597: 	{
   598: 		if (toaplan2_sub_cpu == CPU_2_Z80)			/* Whoopee */
   599: 		{
   600: 			toaplan2_shared_ram[0] = data & 0xff;
   601: 		}
   602: 		else										/* Teki Paki */
   603: 		{
   604: 			mcu_data = data & 0xff;
   605: 			logerror("PC:%08x Writing command (%04x) to secondary CPU shared port\n",activecpu_get_previouspc(),mcu_data);
   606: 		}
   607: 	}
   608: }
   609: 
   610: static READ16_HANDLER( c2map_port_6_r )
   611: {
   612: 	/* For Teki Paki hardware */
   613: 	/* bit 4 high signifies secondary CPU is ready */
   614: 	/* bit 5 is tested low before V-Blank bit ??? */
   615: 	switch (toaplan2_sub_cpu)
   616: 	{
   617: 		case CPU_2_Z80:			mcu_data = toaplan2_shared_ram[0]; break; /* Whoopee */
   618: 		case CPU_2_HD647180:	mcu_data = 0xff; break;					  /* Teki Paki */
   619: 		default:				mcu_data = 0x00; break;
   620: 	}
   621: 	if (mcu_data == 0xff) mcu_data = 0x10;
   622: 	else mcu_data = 0x00;
   623: 	return ( mcu_data | input_port_6_r(0) );
   624: }
   625: 
   626: static READ16_HANDLER( pipibibi_z80_status_r )
   627: {
   628: 	return toaplan2_shared_ram[0] & 0xff;
   629: }
   630: 
   631: static WRITE16_HANDLER( pipibibi_z80_task_w )
   632: {
   633: 	if (ACCESSING_LSB)
   634: 	{
   635: 		toaplan2_shared_ram[0] = data & 0xff;
   636: 	}
   637: }
   638: 
   639: static READ16_HANDLER( ghox_p1_h_analog_r )
   640: {
   641: 	INT8 value, new_value;
   642: 
   643: 	new_value = input_port_7_r(0);
   644: 	if (new_value == old_p1_paddle_h) return 0;
   645: 	value = new_value - old_p1_paddle_h;
   646: 	old_p1_paddle_h = new_value;
   647: 	return value;
   648: }
   649: 
   650: static READ16_HANDLER( ghox_p1_v_analog_r )
   651: {
   652: 	INT8 new_value;
   653: 
   654: 	new_value = input_port_9_r(0);		/* fake vertical movement */
   655: 	if (new_value == old_p1_paddle_v) return input_port_1_r(0);
   656: 	if (new_value >  old_p1_paddle_v)
   657: 	{
   658: 		old_p1_paddle_v = new_value;
   659: 		return (input_port_1_r(0) | 2);
   660: 	}
   661: 	old_p1_paddle_v = new_value;
   662: 	return (input_port_1_r(0) | 1);
   663: }
   664: 
   665: static READ16_HANDLER( ghox_p2_h_analog_r )
   666: {
   667: 	INT8 value, new_value;
   668: 
   669: 	new_value = input_port_8_r(0);
   670: 	if (new_value == old_p2_paddle_h) return 0;
   671: 	value = new_value - old_p2_paddle_h;
   672: 	old_p2_paddle_h = new_value;
   673: 	return value;
   674: }
   675: 
   676: static READ16_HANDLER( ghox_p2_v_analog_r )
   677: {
   678: 	INT8 new_value;
   679: 
   680: 	new_value = input_port_10_r(0);		/* fake vertical movement */
   681: 	if (new_value == old_p2_paddle_v) return input_port_2_r(0);
   682: 	if (new_value >  old_p2_paddle_v)
   683: 	{
   684: 		old_p2_paddle_v = new_value;
   685: 		return (input_port_2_r(0) | 2);
   686: 	}
   687: 	old_p2_paddle_v = new_value;
   688: 	return (input_port_2_r(0) | 1);
   689: }
   690: 
   691: static READ16_HANDLER( ghox_mcu_r )
   692: {
   693: 	return 0xff;
   694: }
   695: 
   696: static WRITE16_HANDLER( ghox_mcu_w )
   697: {
   698: 	if (ACCESSING_LSB)
   699: 	{
   700: 		mcu_data = data;
   701: 		if ((data >= 0xd0) && (data < 0xe0))
   702: 		{
   703: 			offset = ((data & 0x0f) * 2) + (0x38 / 2);
   704: 			toaplan2_shared_ram16[offset  ] = 0x0005;	/* Return address for */
   705: 			toaplan2_shared_ram16[offset-1] = 0x0056;	/*   RTS instruction */
   706: 		}
   707: 		else
   708: 		{
   709: 			logerror("PC:%08x Writing %08x to HD647180 cpu shared ram status port\n",activecpu_get_previouspc(),mcu_data);
   710: 		}
   711: 		toaplan2_shared_ram16[0x56 / 2] = 0x004e;	/* Return a RTS instruction */
   712: 		toaplan2_shared_ram16[0x58 / 2] = 0x0075;
   713: 
   714: 		if (data == 0xd3)
   715: 		{
   716: 		toaplan2_shared_ram16[0x56 / 2] = 0x003a;	//	move.w  d1,d5
   717: 		toaplan2_shared_ram16[0x58 / 2] = 0x0001;
   718: 		toaplan2_shared_ram16[0x5a / 2] = 0x0008;	//	bclr.b  #0,d5
   719: 		toaplan2_shared_ram16[0x5c / 2] = 0x0085;
   720: 		toaplan2_shared_ram16[0x5e / 2] = 0x0000;
   721: 		toaplan2_shared_ram16[0x60 / 2] = 0x0000;
   722: 		toaplan2_shared_ram16[0x62 / 2] = 0x00cb;	//	muls.w  #3,d5
   723: 		toaplan2_shared_ram16[0x64 / 2] = 0x00fc;
   724: 		toaplan2_shared_ram16[0x66 / 2] = 0x0000;
   725: 		toaplan2_shared_ram16[0x68 / 2] = 0x0003;
   726: 		toaplan2_shared_ram16[0x6a / 2] = 0x0090;	//	sub.w   d5,d0
   727: 		toaplan2_shared_ram16[0x6c / 2] = 0x0045;
   728: 		toaplan2_shared_ram16[0x6e / 2] = 0x00e5;	//	lsl.b   #2,d1
   729: 		toaplan2_shared_ram16[0x70 / 2] = 0x0009;
   730: 		toaplan2_shared_ram16[0x72 / 2] = 0x004e;	//	rts
   731: 		toaplan2_shared_ram16[0x74 / 2] = 0x0075;
   732: 		}
   733: 	}
   734: }
   735: 
   736: static READ16_HANDLER( ghox_shared_ram_r )
   737: {
   738: 	/* Ghox 68K reads data from MCU shared RAM and writes it to main RAM.
   739: 	   It then subroutine jumps to main RAM and executes this code.
   740: 	   Here, we're just returning a RTS instruction for now.
   741: 	   See above ghox_mcu_w routine.
   742: 
   743: 	   Offset $56 and $58 are accessed from around PC:0F814
   744: 
   745: 	   Offset $38 and $36 are accessed from around PC:0DA7C
   746: 	   Offset $3c and $3a are accessed from around PC:02E3C
   747: 	   Offset $40 and $3E are accessed from around PC:103EE
   748: 	   Offset $44 and $42 are accessed from around PC:0FB52
   749: 	   Offset $48 and $46 are accessed from around PC:06776
   750: 	*/
   751: 
   752: 	return toaplan2_shared_ram16[offset] & 0xff;
   753: }
   754: static WRITE16_HANDLER( ghox_shared_ram_w )
   755: {
   756: 	if (ACCESSING_LSB)
   757: 	{
   758: 		toaplan2_shared_ram16[offset] = data & 0xff;
   759: 	}
   760: }
   761: static READ16_HANDLER( kbash_sub_cpu_r )
   762: {
   763: /*	Knuckle Bash's  68000 reads secondary CPU status via an I/O port.
   764: 	If a value of 2 is read, then secondary CPU is busy.
   765: 	Secondary CPU must report 0xff when no longer busy, to signify that it
   766: 	has passed POST.
   767: */
   768: 	return 0xff;
   769: }
   770: 
   771: static WRITE16_HANDLER( kbash_sub_cpu_w )
   772: {
   773: 	logerror("PC:%08x writing %04x to Zx80 secondary CPU status port %02x\n",activecpu_get_previouspc(),mcu_data,offset/2);
   774: }
   775: 
   776: static READ16_HANDLER( shared_ram_r )
   777: {
   778: /*	Other games using a Zx80 based secondary CPU, have shared memory between
   779: 	the 68000 and the Zx80 CPU. The 68000 reads the status of the Zx80
   780: 	via a location of the shared memory.
   781: */
   782: 	return toaplan2_shared_ram16[offset] & 0xff;
   783: }
   784: 
   785: static WRITE16_HANDLER( shared_ram_w )
   786: {
   787: 	if (ACCESSING_LSB)
   788: 	{
   789: 		data &= 0xff;
   790: 		switch (offset * 2)
   791: 		{
   792: 			case 0x6e8:
   793: 			case 0x9e8:
   794: 			case 0x9f0:
   795: 			case 0xcf0:
   796: 			case 0xcf8:
   797: 			case 0xff8: toaplan2_shared_ram16[offset + 1] = data; /* Dogyuun */
   798: 						toaplan2_shared_ram16[offset + 2] = data; /* FixEight */
   799: 						logerror("PC:%08x Writing  (%04x) to secondary CPU\n",activecpu_get_previouspc(),data);
   800: 						if (data == 0x81) data = 0x0001;
   801: 						break;
   802: 			default:	break;
   803: 		}
   804: 		toaplan2_shared_ram16[offset] = data;
   805: 	}
   806: }
   807: 
   808: static READ16_HANDLER( Zx80_status_port_r )
   809: {
   810: /*** Status port includes Zx80 CPU POST codes. ************
   811:  *** This is actually a part of the 68000/Zx80 Shared RAM */
   812: 
   813: 	/*** Dogyuun mcu post data ***/
   814: 	if (mcu_data == 0x800000aa) mcu_data = 0xff;
   815: 	if (mcu_data == 0x00) mcu_data = 0x800000aa;
   816: 
   817: 	/*** FixEight mcu post data ***/
   818: 	if (mcu_data == 0x8000ffaa)
   819: 	{
   820: #if 0 	/* check the 37B6 code */ 
   821: 		/* copy nvram data to shared ram after post is complete */
   822: 		fixeight_sharedram[0] = fixeight_nvram[0];	/* Dip Switch A */
   823: 		fixeight_sharedram[1] = fixeight_nvram[1];	/* Dip Switch B */
   824: 		fixeight_sharedram[2] = fixeight_nvram[2];	/* Territory */
   825: #endif 
   826: 		/* Hack Alert ! Fixeight does not have any DSW. The main CPU has a */
   827: 		/* game keeping service mode. It writes/reads the settings to/from */
   828: 		/* these shared RAM locations. The secondary CPU reads/writes them */
   829: 		/* from/to nvram to store the settings (a 93C45 EEPROM) */
   830: 		install_mem_read16_handler (0, 0x28f002, 0x28f003, MRA16_RAM);
   831: 		install_mem_read16_handler (0, 0x28f004, 0x28f005, input_port_5_word_r);	/* Dip Switch A - Wrong !!! */
   832: 		install_mem_read16_handler (0, 0x28f006, 0x28f007, input_port_6_word_r);	/* Dip Switch B - Wrong !!! */
   833: 		install_mem_read16_handler (0, 0x28f008, 0x28f009, input_port_7_word_r);	/* Territory Jumper block - Wrong !!! */
   834: 		install_mem_read16_handler (0, 0x28f00a, 0x28fbff, MRA16_RAM);
   835: 		install_mem_write16_handler (0, 0x28f002, 0x28f003, MWA16_RAM);
   836: 		install_mem_write16_handler (0, 0x28f004, 0x28f009, MWA16_NOP);
   837: 		install_mem_write16_handler (0, 0x28f00a, 0x28fbff, MWA16_RAM);
   838: 
   839: 		mcu_data = 0xffff;
   840: 	}
   841: 	if (mcu_data == 0xffaa) mcu_data = 0x8000ffaa;
   842: 	if (mcu_data == 0xff00) mcu_data = 0xffaa;
   843: 
   844: 	logerror("PC:%08x reading %08x from Zx80 secondary CPU command/status port\n",activecpu_get_previouspc(),mcu_data);
   845: 	return mcu_data & 0xff;
   846: }
   847: 
   848: static WRITE16_HANDLER( Zx80_command_port_w )
   849: {
   850: 	if (ACCESSING_LSB)
   851: 	{
   852: 		mcu_data = data;
   853: 	logerror("PC:%08x Writing command (%04x) to Zx80 secondary CPU command/status port\n",activecpu_get_previouspc(),mcu_data);
   854: }
   855: }
   856: 
   857: static READ16_HANDLER( Zx80_sharedram_r )
   858: {
   859: 	return Zx80_shared_ram[offset] & 0xff;
   860: }
   861: 
   862: static WRITE16_HANDLER( Zx80_sharedram_w )
   863: {
   864: 	if (ACCESSING_LSB)
   865: 	{
   866: 		Zx80_shared_ram[offset] = data & 0xff;
   867: 	}
   868: }
   869: 
   870: static WRITE16_HANDLER( oki_bankswitch_w )
   871: {
   872: 	if (ACCESSING_LSB)
   873: 	{
   874: 		OKIM6295_set_bank_base(0, (data & 1) * 0x40000);
   875: 	}
   876: }
   877: 
   878: 
   879: 
   880: /***************************************************************************
   881:   Raizing games
   882: ***************************************************************************/
   883: 
   884: static READ16_HANDLER( raizing_shared_ram_r )
   885: {
   886: 	return raizing_shared_ram[offset] & 0xff;
   887: }
   888: 
   889: static WRITE16_HANDLER( raizing_shared_ram_w )
   890: {
   891: 	if (ACCESSING_LSB)
   892: 	{
   893: 		raizing_shared_ram[offset] = data & 0xff;
   894: 	}
   895: }
   896: 
   897: static READ16_HANDLER( battleg_commram_r )
   898: {
   899: 	return battleg_commram16[offset];
   900: }
   901: 
   902: static WRITE16_HANDLER( battleg_commram_w )
   903: {
   904: 	COMBINE_DATA(&battleg_commram16[offset]);
   905: 	cpu_set_irq_line(1, 0, HOLD_LINE);
   906: 	if (offset == 0) cpu_yield();	/* Command issued so switch control */
   907: }
   908: 
   909: static READ_HANDLER( battleg_commram_check_r0 )
   910: {
   911: 	data8_t *battleg_common_RAM = (data8_t *)battleg_commram16;
   912: 
   913: 	return battleg_common_RAM[BYTE_XOR_BE(offset * 2 + 1)];
   914: }
   915: 
   916: static WRITE_HANDLER( battleg_commram_check_w0 )
   917: {
   918: 	data8_t *battleg_common_RAM = (data8_t *)battleg_commram16;
   919: 
   920: 	battleg_common_RAM[BYTE_XOR_BE(0)] = data;
   921: 	cpu_yield();					/* Command issued so switch control */
   922: }
   923: 
   924: static READ16_HANDLER( battleg_z80check_r )
   925: {
   926: 	return raizing_shared_ram[offset + 0x10] & 0xff;
   927: }
   928: 
   929: static WRITE_HANDLER( battleg_bankswitch_w )
   930: {
   931: 	data8_t *RAM = (data8_t *)memory_region(REGION_CPU2);
   932: 	int bankaddress;
   933: 	int bank;
   934: 
   935: 	bank = (data & 0x0f) - 10;
   936: 
   937: 	if (bank != current_bank)
   938: 	{
   939: 		current_bank = bank;
   940: 		bankaddress = 0x10000 + 0x4000 * current_bank;
   941: 		cpu_setbank(1, &RAM[bankaddress]);
   942: 	}
   943: }
   944: 
   945: static void raizing_oki6295_set_bankbase( int chip, int channel, int base )
   946: {
   947: 	/* The OKI6295 ROM space is divided in four banks, each one independantly */
   948: 	/* controlled. The sample table at the beginning of the addressing space  */
   949: 	/* is divided in four pages as well, banked together with the sample data */
   950: 
   951: 	data8_t *rom = (data8_t *)memory_region(REGION_SOUND1 + chip);
   952: 
   953: 	/* copy the samples */
   954: 	memcpy(rom + channel * 0x10000, rom + 0x40000 + base, 0x10000);
   955: 
   956: 	/* and also copy the samples address table */
   957: 	rom += channel * 0x100;
   958: 	memcpy(rom, rom + 0x40000 + base, 0x100);
   959: }
   960: 
   961: 
   962: static WRITE_HANDLER( raizing_okim6295_bankselect_0 )
   963: {
   964: 	raizing_oki6295_set_bankbase( 0, 0,  (data       & 0x0f) * 0x10000);
   965: 	raizing_oki6295_set_bankbase( 0, 1, ((data >> 4) & 0x0f) * 0x10000);
   966: }
   967: 
   968: static WRITE_HANDLER( raizing_okim6295_bankselect_1 )
   969: {
   970: 	raizing_oki6295_set_bankbase( 0, 2,  (data       & 0x0f) * 0x10000);
   971: 	raizing_oki6295_set_bankbase( 0, 3, ((data >> 4) & 0x0f) * 0x10000);
   972: }
   973: 
   974: static WRITE_HANDLER( raizing_okim6295_bankselect_2 )
   975: {
   976: 	raizing_oki6295_set_bankbase( 1, 0,  (data       & 0x0f) * 0x10000);
   977: 	raizing_oki6295_set_bankbase( 1, 1, ((data >> 4) & 0x0f) * 0x10000);
   978: }
   979: 
   980: static WRITE_HANDLER( raizing_okim6295_bankselect_3 )
   981: {
   982: 	raizing_oki6295_set_bankbase( 1, 2,  (data       & 0x0f) * 0x10000);
   983: 	raizing_oki6295_set_bankbase( 1, 3, ((data >> 4) & 0x0f) * 0x10000);
   984: }
   985: 
   986: static WRITE_HANDLER( batrider_bankswitch_w )
   987: {
   988: 	data8_t *RAM = (data8_t *)memory_region(REGION_CPU2);
   989: 	int bankaddress;
   990: 	int bank;
   991: 
   992: 	bank = data & 0x0f;
   993: 
   994: 	if (bank != current_bank)
   995: 	{
   996: 		current_bank = bank;
   997: 		logerror("Z80 cpu set bank #%d\n", bank);
   998: 		if (bank > 1)
   999: 			bankaddress = 0x10000 + 0x4000 * (current_bank - 2);
  1000: 		else
  1001: 			bankaddress = 0x4000 * current_bank;
  1002: 		cpu_setbank(1, &RAM[bankaddress]);
  1003: 	}
  1004: }
  1005: 
  1006: static READ16_HANDLER( batrider_z80_busack_r )
  1007: {
  1008: 	/* Bit 1 returns the status of BUSAK from the Z80.
  1009: 	   BUSRQ is activated via bit 0x10 on the NVRAM write port.
  1010: 	   These accesses are made when the 68K wants to read the Z80
  1011: 	   ROM code. Failure to return the correct status incurrs a Sound Error.
  1012: 	*/
  1013: 
  1014: 	return raizing_Z80_busreq;			/* Loop BUSRQ to BUSAK */
  1015: }
  1016: static WRITE16_HANDLER( batrider_z80_busreq_w )
  1017: {
  1018: 	if (ACCESSING_LSB)
  1019: 	{
  1020: 		raizing_Z80_busreq = (data & 0xff);
  1021: 	}
  1022: }
  1023: 
  1024: static READ16_HANDLER( raizing_z80rom_r )
  1025: {
  1026: 	data8_t *Z80_ROM_test = (data8_t *)memory_region(REGION_CPU2);
  1027: 
  1028: 	if (offset < 0x8000)
  1029: 		return Z80_ROM_test[offset] & 0xff;
  1030: 
  1031: 	return Z80_ROM_test[offset + 0x8000] & 0xff;
  1032: }
  1033: 
  1034: 
  1035: 
  1036: /*###################### Battle Bakraid ##############################*/
  1037: 
  1038: /* EEPROM contents with battle Bakraid Unlimited version features unlocked */
  1039: static data8_t bbakraid_unlimited_nvram[512] = {
  1040: 	0xc2,0x49,0x00,0x07,0xa1,0x20,0x2a,0x2a,0x2a,0x90,0x90,0x90,0x00,0x00,0x00,0x00,
  1041: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x1a,0x80,0x2a,0x2a,0x2a,0x94,
  1042: 	0x94,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,
  1043: 	0x93,0xe0,0x2a,0x2a,0x2a,0x98,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1044: 	0x00,0x00,0x00,0x02,0x00,0x03,0x0d,0x40,0x2a,0x2a,0x2a,0x9c,0x9c,0x9c,0x00,0x00,
  1045: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x2a,0x2a,
  1046: 	0x2a,0xa0,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
  1047: 	0x00,0x07,0xa1,0x20,0x2b,0x2b,0x2b,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,
  1048: 	0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x1a,0x80,0x2b,0x2b,0x2b,0x94,0x94,0x94,
  1049: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x93,0xe0,
  1050: 	0x2b,0x2b,0x2b,0x98,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1051: 	0x00,0x02,0x00,0x03,0x0d,0x40,0x2b,0x2b,0x2b,0x9c,0x9c,0x9c,0x00,0x00,0x00,0x00,
  1052: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x2b,0x2b,0x2b,0xa0,
  1053: 	0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,
  1054: 	0xa1,0x20,0x23,0x23,0x23,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1055: 	0x00,0x00,0x00,0x02,0x00,0x06,0x1a,0x80,0x23,0x23,0x23,0x94,0x94,0x94,0x00,0x00,
  1056: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x93,0xe0,0x23,0x23,
  1057: 	0x23,0x98,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
  1058: 	0x00,0x03,0x0d,0x40,0x23,0x23,0x23,0x9c,0x9c,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,
  1059: 	0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x23,0x23,0x23,0xa0,0xa0,0xa0,
  1060: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0xa1,0x20,
  1061: 	0x3f,0x3f,0x3f,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1062: 	0x00,0x02,0x00,0x06,0x1a,0x80,0x3f,0x3f,0x3f,0x94,0x94,0x94,0x00,0x00,0x00,0x00,
  1063: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x93,0xe0,0x3f,0x3f,0x3f,0x98,
  1064: 	0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x03,
  1065: 	0x0d,0x40,0x3f,0x3f,0x3f,0x9c,0x9c,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1066: 	0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x3f,0x3f,0x3f,0xa0,0xa0,0xa0,0x00,0x00,
  1067: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0xc2,0x49,0xc2,0x49,
  1068: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1069: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1070: 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0xcf,0x00,0x04,0x00,0x00,0x21,0xd5,
  1071: 	0x00,0x05,0x06,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xc2,0x49
  1072: };
  1073: 
  1074: 
  1075: 
  1076: struct EEPROM_interface eeprom_interface_93C66 =
  1077: {
  1078: 	/* Pin 6 of the 93C66 is connected to Gnd!
  1079: 	   So it's configured for 512 bytes */
  1080: 
  1081: 	9,			// address bits
  1082: 	8,			// data bits
  1083: 	"*110",		// read			110 aaaaaaaaa
  1084: 	"*101",		// write		101 aaaaaaaaa dddddddd
  1085: 	"*111",		// erase		111 aaaaaaaaa
  1086: 	"*10000xxxxxxx",// lock			100x 00xxxx
  1087: 	"*10011xxxxxxx",// unlock		100x 11xxxx
  1088: //	"*10001xxxx",	// write all	1 00 01xxxx dddddddd
  1089: //	"*10010xxxx"	// erase all	1 00 10xxxx
  1090: };
  1091: 
  1092: 
  1093: static NVRAM_HANDLER( bbakraid )
  1094: {
  1095: 	/* Pin 6 of 93C66 is connected to Gnd! */
  1096: 
  1097: 	if (read_or_write)
  1098: 		EEPROM_save(file);
  1099: 	else
  1100: 	{
  1101: 		EEPROM_init(&eeprom_interface_93C66);
  1102: 
  1103: 		if (file) EEPROM_load(file);
  1104: 		else
  1105: 		{
  1106: 			if (bbakraid_unlimited_ver == 1)
  1107: 				EEPROM_set_data(bbakraid_unlimited_nvram, sizeof(bbakraid_unlimited_nvram));
  1108: 		}
  1109: 	}
  1110: }
  1111: 
  1112: static READ16_HANDLER( bbakraid_nvram_r )
  1113: {
  1114: 	/* Bit 1 returns the status of BUSAK from the Z80.
  1115: 	   BUSRQ is activated via bit 0x10 on the NVRAM write port.
  1116: 	   These accesses are made when the 68K wants to read the Z80
  1117: 	   ROM code. Failure to return the correct status incurrs a Sound Error.
  1118: 	*/
  1119: 
  1120: 	int data;
  1121: 	data  = ((EEPROM_read_bit() & 0x01) << 4);
  1122: 	data |= ((raizing_Z80_busreq >> 4) & 0x01);	/* Loop BUSRQ to BUSAK */
  1123: 
  1124: 	return data;
  1125: }
  1126: 
  1127: static WRITE16_HANDLER( bbakraid_nvram_w )
  1128: {
  1129: 	if (data & ~0x001f)
  1130: 		logerror("CPU #0 PC:%06X - Unknown EEPROM data being written %04X\n",activecpu_get_pc(),data);
  1131: 
  1132: 	if ( ACCESSING_LSB )
  1133: 	{
  1134: 		// chip select
  1135: 		EEPROM_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE );
  1136: 
  1137: 		// latch the bit
  1138: 		EEPROM_write_bit( (data & 0x04) >> 2 );
  1139: 
  1140: 		// clock line asserted: write latch or select next bit to read
  1141: 		EEPROM_set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE );
  1142: 	}
  1143: 	raizing_Z80_busreq = data & 0x10;	/* see bbakraid_nvram_r above */
  1144: }
  1145: 
  1146: 
  1147: /****** Battle Bakraid 68K handlers ******/
  1148: static READ16_HANDLER ( raizing_sndcomms_r )
  1149: {
  1150: //	logerror("68K (PC:%06x) reading %04x from $50001%01x\n",activecpu_get_pc(),(raizing_cpu_reply[offset] & 0xff),(offset*2));
  1151: 	return (raizing_cpu_reply[offset] & 0xff);
  1152: }
  1153: static WRITE16_HANDLER ( raizing_sndcomms_w )
  1154: {
  1155: //	logerror("68K (PC:%06x) writing %04x to $50001%01x\n",activecpu_get_pc(),data,((offset*2)+4));
  1156: 	COMBINE_DATA(&raizing_cpu_comm16[offset]);
  1157: 
  1158: 	cpu_set_nmi_line(1, ASSERT_LINE);
  1159: 	cpu_yield();
  1160: }
  1161: 
  1162: /****** Battle Bakraid Z80 handlers ******/
  1163: static READ_HANDLER ( raizing_command_r )
  1164: {
  1165: 	data8_t *raizing_cpu_comm = (data8_t *)raizing_cpu_comm16;
  1166: 
  1167: 	logerror("Z80 (PC:%04x) reading %02x from $48\n",activecpu_get_pc(),raizing_cpu_comm[BYTE_XOR_BE(1)]);
  1168: 	return raizing_cpu_comm[BYTE_XOR_BE(1)];
  1169: }
  1170: static READ_HANDLER ( raizing_request_r )
  1171: {
  1172: 	data8_t *raizing_cpu_comm = (data8_t *)raizing_cpu_comm16;
  1173: 
  1174: 	logerror("Z80 (PC:%04x) reading %02x from $4A\n",activecpu_get_pc(),raizing_cpu_comm[BYTE_XOR_BE(3)]);
  1175: 	return raizing_cpu_comm[BYTE_XOR_BE(3)];
  1176: }
  1177: static WRITE_HANDLER ( raizing_command_ack_w )
  1178: {
  1179: //	logerror("Z80 (PC:%04x) writing %02x to $40\n",activecpu_get_pc(),data);
  1180: 	raizing_cpu_reply[0] = data;
  1181: }
  1182: static WRITE_HANDLER ( raizing_request_ack_w )
  1183: {
  1184: //	logerror("Z80 (PC:%04x) writing %02x to $42\n",activecpu_get_pc(),data);
  1185: 	raizing_cpu_reply[1] = data;
  1186: }
  1187: 
  1188: 
  1189: static WRITE_HANDLER ( raizing_clear_nmi_w )
  1190: {
  1191: //	logerror("Clear NMI on the Z80 (Z80 PC:%06x writing %04x)\n",activecpu_get_pc(),data);
  1192: 	cpu_set_nmi_line(1, CLEAR_LINE);
  1193: 	cpu_yield();
  1194: }
  1195: 
  1196: static WRITE16_HANDLER ( bbakraid_trigger_z80_irq )
  1197: {
  1198: //	logerror("Triggering IRQ on the Z80 (PC:%06x)\n",activecpu_get_pc());
  1199: 	cpu_set_irq_line(1, 0, HOLD_LINE);
  1200: 	cpu_yield();
  1201: }
  1202: 
  1203: static void bbakraid_irqhandler (int state)
  1204: {
  1205: 	/* Not used ???  Connected to a test pin (TP082) */
  1206: 	logerror("YMZ280 is generating an interrupt. State=%08x\n",state);
  1207: }
  1208: 
  1209: static INTERRUPT_GEN( bbakraid_snd_interrupt )
  1210: {
  1211: 	cpu_set_irq_line(1, 0, HOLD_LINE);
  1212: }
  1213: 
  1214: 
  1215: static MEMORY_READ16_START( tekipaki_readmem )
  1216: 	{ 0x000000, 0x01ffff, MRA16_ROM },
  1217: 	{ 0x020000, 0x03ffff, MRA16_ROM },				/* extra for Whoopee */
  1218: 	{ 0x080000, 0x082fff, MRA16_RAM },
  1219: 	{ 0x0c0000, 0x0c0fff, paletteram16_word_r },
  1220: 	{ 0x140004, 0x140007, toaplan2_0_videoram16_r },
  1221: 	{ 0x14000c, 0x14000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1222: 	{ 0x180000, 0x180001, input_port_4_word_r },	/* Dip Switch A */
  1223: 	{ 0x180010, 0x180011, input_port_5_word_r },	/* Dip Switch B */
  1224: 	{ 0x180020, 0x180021, input_port_3_word_r },	/* Coin/System inputs */
  1225: 	{ 0x180030, 0x180031, c2map_port_6_r },			/* CPU 2 busy and Territory Jumper block */
  1226: 	{ 0x180050, 0x180051, input_port_1_word_r },	/* Player 1 controls */
  1227: 	{ 0x180060, 0x180061, input_port_2_word_r },	/* Player 2 controls */
  1228: MEMORY_END
  1229: 
  1230: static MEMORY_WRITE16_START( tekipaki_writemem )
  1231: 	{ 0x000000, 0x01ffff, MWA16_ROM },
  1232: 	{ 0x020000, 0x03ffff, MWA16_ROM },				/* extra for Whoopee */
  1233: 	{ 0x080000, 0x082fff, MWA16_RAM },
  1234: 	{ 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1235: 	{ 0x140000, 0x140001, toaplan2_0_voffs_w },
  1236: 	{ 0x140004, 0x140007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1237: 	{ 0x140008, 0x140009, toaplan2_0_scroll_reg_select_w },
  1238: 	{ 0x14000c, 0x14000d, toaplan2_0_scroll_reg_data_w },
  1239: 	{ 0x180040, 0x180041, toaplan2_coin_word_w },	/* Coin count/lock */
  1240: 	{ 0x180070, 0x180071, toaplan2_hd647180_cpu_w },
  1241: MEMORY_END
  1242: 
  1243: static MEMORY_READ16_START( ghox_readmem )
  1244: 	{ 0x000000, 0x03ffff, MRA16_ROM },
  1245: 	{ 0x040000, 0x040001, ghox_p2_h_analog_r },		/* Paddle 2 */
  1246: 	{ 0x080000, 0x083fff, MRA16_RAM },
  1247: 	{ 0x0c0000, 0x0c0fff, paletteram16_word_r },
  1248: 	{ 0x100000, 0x100001, ghox_p1_h_analog_r },		/* Paddle 1 */
  1249: 	{ 0x140004, 0x140007, toaplan2_0_videoram16_r },
  1250: 	{ 0x14000c, 0x14000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1251: 	{ 0x180000, 0x180001, ghox_mcu_r },				/* really part of shared RAM */
  1252: 	{ 0x180006, 0x180007, input_port_4_word_r },	/* Dip Switch A */
  1253: 	{ 0x180008, 0x180009, input_port_5_word_r },	/* Dip Switch B */
  1254: 	{ 0x180010, 0x180011, input_port_3_word_r },	/* Coin/System inputs */
  1255: //	{ 0x18000c, 0x18000d, input_port_1_word_r },	/* Player 1 controls (real) */
  1256: //	{ 0x18000e, 0x18000f, input_port_2_word_r },	/* Player 2 controls (real) */
  1257: 	{ 0x18000c, 0x18000d, ghox_p1_v_analog_r },		/* Player 1 controls */
  1258: 	{ 0x18000e, 0x18000f, ghox_p2_v_analog_r },		/* Player 2 controls */
  1259: 	{ 0x180500, 0x180fff, ghox_shared_ram_r },
  1260: 	{ 0x18100c, 0x18100d, input_port_6_word_r },	/* Territory Jumper block */
  1261: MEMORY_END
  1262: 
  1263: static MEMORY_WRITE16_START( ghox_writemem )
  1264: 	{ 0x000000, 0x03ffff, MWA16_ROM },
  1265: 	{ 0x080000, 0x083fff, MWA16_RAM },
  1266: 	{ 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1267: 	{ 0x140000, 0x140001, toaplan2_0_voffs_w },
  1268: 	{ 0x140004, 0x140007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1269: 	{ 0x140008, 0x140009, toaplan2_0_scroll_reg_select_w },
  1270: 	{ 0x14000c, 0x14000d, toaplan2_0_scroll_reg_data_w },
  1271: 	{ 0x180000, 0x180001, ghox_mcu_w },				/* really part of shared RAM */
  1272: 	{ 0x180500, 0x180fff, ghox_shared_ram_w, &toaplan2_shared_ram16 },
  1273: 	{ 0x181000, 0x181001, toaplan2_coin_word_w },
  1274: MEMORY_END
  1275: 
  1276: static MEMORY_READ16_START( dogyuun_readmem )
  1277: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1278: 	{ 0x100000, 0x103fff, MRA16_RAM },
  1279: 	{ 0x200010, 0x200011, input_port_1_word_r },	/* Player 1 controls */
  1280: 	{ 0x200014, 0x200015, input_port_2_word_r },	/* Player 2 controls */
  1281: 	{ 0x200018, 0x200019, input_port_3_word_r },	/* Coin/System inputs */
  1282: #if Zx80 
  1283: 	{ 0x21e000, 0x21fbff, shared_ram_r },			/* $21f000 status port */
  1284: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1285: #else 
  1286: 	{ 0x21e000, 0x21efff, shared_ram_r },
  1287: 	{ 0x21f000, 0x21f001, Zx80_status_port_r },		/* Zx80 status port */
  1288: 	{ 0x21f004, 0x21f005, input_port_4_word_r },	/* Dip Switch A */
  1289: 	{ 0x21f006, 0x21f007, input_port_5_word_r },	/* Dip Switch B */
  1290: 	{ 0x21f008, 0x21f009, input_port_6_word_r },	/* Territory Jumper block */
  1291: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1292: #endif 
  1293: 	/***** The following in 0x30000x are for video controller 1 ******/
  1294: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
  1295: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1296: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1297: 	/***** The following in 0x50000x are for video controller 2 ******/
  1298: 	{ 0x500004, 0x500007, toaplan2_1_videoram16_r },/* tile layers 2 */
  1299: 	{ 0x700000, 0x700001, video_count_r },			/* test bit 8 */
  1300: MEMORY_END
  1301: 
  1302: static MEMORY_WRITE16_START( dogyuun_writemem )
  1303: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1304: 	{ 0x100000, 0x103fff, MWA16_RAM },
  1305: 	{ 0x200008, 0x200009, OKIM6295_data_0_lsb_w },	/// Really ?
  1306: 	{ 0x20001c, 0x20001d, toaplan2_coin_word_w },
  1307: #if Zx80 
  1308: 	{ 0x21e000, 0x21fbff, shared_ram_w, &toaplan2_shared_ram16 },	/* $21F000 */
  1309: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1310: #else 
  1311: 	{ 0x21e000, 0x21efff, shared_ram_w, &toaplan2_shared_ram16 },
  1312: 	{ 0x21f000, 0x21f001, Zx80_command_port_w },	/* Zx80 command port */
  1313: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1314: #endif 
  1315: 	/***** The following in 0x30000x are for video controller 1 ******/
  1316: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },		/* VideoRAM selector/offset */
  1317: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1318: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1319: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1320: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1321: 	/***** The following in 0x50000x are for video controller 2 ******/
  1322: 	{ 0x500000, 0x500001, toaplan2_1_voffs_w },		/* VideoRAM selector/offset */
  1323: 	{ 0x500004, 0x500007, toaplan2_1_videoram16_w },/* Tile/Sprite VideoRAM */
  1324: 	{ 0x500008, 0x500009, toaplan2_1_scroll_reg_select_w },
  1325: 	{ 0x50000c, 0x50000d, toaplan2_1_scroll_reg_data_w },
  1326: MEMORY_END
  1327: 
  1328: static MEMORY_READ16_START( kbash_readmem )
  1329: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1330: 	{ 0x100000, 0x103fff, MRA16_RAM },
  1331: 	{ 0x200000, 0x200001, kbash_sub_cpu_r },
  1332: 	{ 0x200004, 0x200005, input_port_4_word_r },	/* Dip Switch A */
  1333: 	{ 0x200006, 0x200007, input_port_5_word_r },	/* Dip Switch B */
  1334: 	{ 0x200008, 0x200009, input_port_6_word_r },	/* Territory Jumper block */
  1335: 	{ 0x208010, 0x208011, input_port_1_word_r },	/* Player 1 controls */
  1336: 	{ 0x208014, 0x208015, input_port_2_word_r },	/* Player 2 controls */
  1337: 	{ 0x208018, 0x208019, input_port_3_word_r },	/* Coin/System inputs */
  1338: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
  1339: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1340: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1341: 	{ 0x700000, 0x700001, video_count_r },			/* test bit 8 */
  1342: MEMORY_END
  1343: 
  1344: static MEMORY_WRITE16_START( kbash_writemem )
  1345: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1346: 	{ 0x100000, 0x103fff, MWA16_RAM },
  1347: 	{ 0x200000, 0x200003, kbash_sub_cpu_w },		/* sound number to play */
  1348: //	{ 0x200002, 0x200003, kbash_sub_cpu_w2 },		/* ??? */
  1349: 	{ 0x20801c, 0x20801d, toaplan2_coin_word_w },
  1350: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },
  1351: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },
  1352: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1353: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1354: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1355: MEMORY_END
  1356: 
  1357: static MEMORY_READ16_START( truxton2_readmem )
  1358: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1359: 	{ 0x100000, 0x10ffff, MRA16_RAM },
  1360: 	{ 0x200004, 0x200007, toaplan2_0_videoram16_r },
  1361: 	{ 0x20000c, 0x20000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1362: 	{ 0x300000, 0x300fff, paletteram16_word_r },
  1363: 	{ 0x400000, 0x401fff, toaplan2_txvideoram16_r },
  1364: 	{ 0x402000, 0x4021ff, toaplan2_txvideoram16_offs_r },
  1365: 	{ 0x402200, 0x402fff, MRA16_RAM },
  1366: 	{ 0x403000, 0x4031ff, toaplan2_txscrollram16_r },
  1367: 	{ 0x403200, 0x403fff, MRA16_RAM },
  1368: 	{ 0x500000, 0x50ffff, toaplan2_tx_gfxram16_r },
  1369: 	{ 0x600000, 0x600001, video_count_r },
  1370: 	{ 0x700000, 0x700001, input_port_4_word_r },	/* Dip Switch A */
  1371: 	{ 0x700002, 0x700003, input_port_5_word_r },	/* Dip Switch B */
  1372: 	{ 0x700004, 0x700005, input_port_6_word_r },	/* Territory Jumper block */
  1373: 	{ 0x700006, 0x700007, input_port_1_word_r },	/* Player 1 controls */
  1374: 	{ 0x700008, 0x700009, input_port_2_word_r },	/* Player 2 controls */
  1375: 	{ 0x70000a, 0x70000b, input_port_3_word_r },	/* Coin/System inputs */
  1376: 	{ 0x700010, 0x700011, OKIM6295_status_0_lsb_r },
  1377: 	{ 0x700014, 0x700015, MRA16_NOP },
  1378: 	{ 0x700016, 0x700017, YM2151_status_port_0_lsb_r },
  1379: MEMORY_END
  1380: 
  1381: static MEMORY_WRITE16_START( truxton2_writemem )
  1382: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1383: 	{ 0x100000, 0x10ffff, MWA16_RAM },
  1384: 	{ 0x200000, 0x200001, toaplan2_0_voffs_w },		/* VideoRAM selector/offset */
  1385: 	{ 0x200004, 0x200007, toaplan2_0_videoram16_w },
  1386: 	{ 0x200008, 0x200009, toaplan2_0_scroll_reg_select_w },
  1387: 	{ 0x20000c, 0x20000d, toaplan2_0_scroll_reg_data_w },
  1388: 	{ 0x300000, 0x300fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1389: 	{ 0x400000, 0x401fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1390: 	{ 0x402000, 0x4021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1391: 	{ 0x402200, 0x402fff, MWA16_RAM },
  1392: 	{ 0x403000, 0x4031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1393: 	{ 0x403200, 0x403fff, MWA16_RAM },
  1394: 	{ 0x500000, 0x50ffff, toaplan2_tx_gfxram16_w, &toaplan2_tx_gfxram16 },
  1395: 	{ 0x700010, 0x700011, OKIM6295_data_0_lsb_w },
  1396: 	{ 0x700014, 0x700015, YM2151_register_port_0_lsb_w },
  1397: 	{ 0x700016, 0x700017, YM2151_data_port_0_lsb_w },
  1398: 	{ 0x70001e, 0x70001f, toaplan2_coin_word_w },	/* Coin count/lock */
  1399: MEMORY_END
  1400: 
  1401: static MEMORY_READ16_START( pipibibs_readmem )
  1402: 	{ 0x000000, 0x03ffff, MRA16_ROM },
  1403: 	{ 0x080000, 0x082fff, MRA16_RAM },
  1404: 	{ 0x0c0000, 0x0c0fff, paletteram16_word_r },
  1405: 	{ 0x140004, 0x140007, toaplan2_0_videoram16_r },
  1406: 	{ 0x14000c, 0x14000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1407: 	{ 0x190000, 0x190fff, toaplan2_shared_r },
  1408: 	{ 0x19c020, 0x19c021, input_port_4_word_r },	/* Dip Switch A */
  1409: 	{ 0x19c024, 0x19c025, input_port_5_word_r },	/* Dip Switch B */
  1410: 	{ 0x19c028, 0x19c029, input_port_6_word_r },	/* Territory Jumper block */
  1411: 	{ 0x19c02c, 0x19c02d, input_port_3_word_r },	/* Coin/System inputs */
  1412: 	{ 0x19c030, 0x19c031, input_port_1_word_r },	/* Player 1 controls */
  1413: 	{ 0x19c034, 0x19c035, input_port_2_word_r },	/* Player 2 controls */
  1414: MEMORY_END
  1415: 
  1416: static MEMORY_WRITE16_START( pipibibs_writemem )
  1417: 	{ 0x000000, 0x03ffff, MWA16_ROM },
  1418: 	{ 0x080000, 0x082fff, MWA16_RAM },
  1419: 	{ 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1420: 	{ 0x140000, 0x140001, toaplan2_0_voffs_w },
  1421: 	{ 0x140004, 0x140007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1422: 	{ 0x140008, 0x140009, toaplan2_0_scroll_reg_select_w },
  1423: 	{ 0x14000c, 0x14000d, toaplan2_0_scroll_reg_data_w },
  1424: 	{ 0x190000, 0x190fff, toaplan2_shared_w },
  1425: 	{ 0x19c01c, 0x19c01d, toaplan2_coin_word_w },	/* Coin count/lock */
  1426: MEMORY_END
  1427: 
  1428: static MEMORY_READ16_START( pipibibi_readmem )
  1429: 	{ 0x000000, 0x03ffff, MRA16_ROM },
  1430: 	{ 0x080000, 0x082fff, MRA16_RAM },
  1431: 	{ 0x083000, 0x0837ff, pipibibi_spriteram16_r },
  1432: 	{ 0x083800, 0x087fff, MRA16_RAM },
  1433: 	{ 0x0c0000, 0x0c0fff, paletteram16_word_r },
  1434: 	{ 0x120000, 0x120fff, MRA16_RAM },
  1435: 	{ 0x180000, 0x182fff, pipibibi_videoram16_r },
  1436: 	{ 0x190002, 0x190003, pipibibi_z80_status_r },	/* Z80 ready ? */
  1437: 	{ 0x19c020, 0x19c021, input_port_4_word_r },	/* Dip Switch A */
  1438: 	{ 0x19c024, 0x19c025, input_port_5_word_r },	/* Dip Switch B */
  1439: 	{ 0x19c028, 0x19c029, input_port_6_word_r },	/* Territory Jumper block */
  1440: 	{ 0x19c02c, 0x19c02d, input_port_3_word_r },	/* Coin/System inputs */
  1441: 	{ 0x19c030, 0x19c031, input_port_1_word_r },	/* Player 1 controls */
  1442: 	{ 0x19c034, 0x19c035, input_port_2_word_r },	/* Player 2 controls */
  1443: MEMORY_END
  1444: 
  1445: static MEMORY_WRITE16_START( pipibibi_writemem )
  1446: 	{ 0x000000, 0x03ffff, MWA16_ROM },
  1447: 	{ 0x080000, 0x082fff, MWA16_RAM },
  1448: 	{ 0x083000, 0x0837ff, pipibibi_spriteram16_w },	/* SpriteRAM */
  1449: 	{ 0x083800, 0x087fff, MWA16_RAM },				/* SpriteRAM (unused) */
  1450: 	{ 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1451: 	{ 0x120000, 0x120fff, MWA16_RAM },				/* Copy of SpriteRAM ? */
  1452: //	{ 0x13f000, 0x13f001, MWA16_NOP },				/* ??? */
  1453: 	{ 0x180000, 0x182fff, pipibibi_videoram16_w },	/* TileRAM */
  1454: 	{ 0x188000, 0x18800f, pipibibi_scroll_w },
  1455: 	{ 0x190010, 0x190011, pipibibi_z80_task_w },	/* Z80 task to perform */
  1456: 	{ 0x19c01c, 0x19c01d, toaplan2_coin_word_w },	/* Coin count/lock */
  1457: MEMORY_END
  1458: 
  1459: static MEMORY_READ16_START( fixeight_readmem )
  1460: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1461: 	{ 0x100000, 0x103fff, MRA16_RAM },
  1462: 	{ 0x200000, 0x200001, input_port_1_word_r },	/* Player 1 controls */
  1463: 	{ 0x200004, 0x200005, input_port_2_word_r },	/* Player 2 controls */
  1464: 	{ 0x200008, 0x200009, input_port_3_word_r },	/* Player 3 controls */
  1465: 	{ 0x200010, 0x200011, input_port_4_word_r },	/* Coin/System inputs */
  1466: 	{ 0x280000, 0x28dfff, MRA16_RAM },				/* part of shared ram ? */
  1467: #if Zx80 
  1468: 	{ 0x28e000, 0x28fbff, shared_ram_r },			/* $28f000 status port */
  1469: 	{ 0x28fc00, 0x28ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1470: #else 
  1471: 	{ 0x28e000, 0x28efff, shared_ram_r },
  1472: 	{ 0x28f000, 0x28f001, Zx80_status_port_r },		/* Zx80 status port */
  1473: //	{ 0x28f002, 0x28f003, MRA16_RAM },				/* part of shared ram */
  1474: //	{ 0x28f004, 0x28f005, input_port_5_word_r },	/* Dip Switch A - Wrong !!! */
  1475: //	{ 0x28f006, 0x28f007, input_port_6_word_r },	/* Dip Switch B - Wrong !!! */
  1476: //	{ 0x28f008, 0x28f009, input_port_7_word_r },	/* Territory Jumper block - Wrong !!! */
  1477: //	{ 0x28f002, 0x28fbff, MRA16_RAM },				/* part of shared ram */
  1478: 	{ 0x28fc00, 0x28ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1479: #endif 
  1480: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },
  1481: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },
  1482: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1483: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_r },
  1484: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
  1485: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
  1486: 	{ 0x600000, 0x60ffff, toaplan2_tx_gfxram16_r },
  1487: 	{ 0x800000, 0x800001, video_count_r },
  1488: MEMORY_END
  1489: 
  1490: static MEMORY_WRITE16_START( fixeight_writemem )
  1491: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1492: 	{ 0x100000, 0x103fff, MWA16_RAM },
  1493: 	{ 0x20001c, 0x20001d, toaplan2_coin_word_w },	/* Coin count/lock */
  1494: 	{ 0x280000, 0x28dfff, MWA16_RAM },				/* part of shared ram ? */
  1495: #if Zx80 
  1496: 	{ 0x28e000, 0x28fbff, shared_ram_w, &toaplan2_shared_ram16 },	/* $28F000 */
  1497: 	{ 0x28fc00, 0x28ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1498: #else 
  1499: 	{ 0x28e000, 0x28efff, shared_ram_w, &toaplan2_shared_ram16 },
  1500: 	{ 0x28f000, 0x28f001, Zx80_command_port_w },	/* Zx80 command port */
  1501: //	{ 0x28f002, 0x28f003, MWA16_RAM },				/* part of shared ram */
  1502: //	{ 0x28f004, 0x28f009, MWA16_NOP },				/* part of shared ram */
  1503: //	{ 0x28f002, 0x28fbff, MWA16_RAM },				/* part of shared ram */
  1504: 	{ 0x28fc00, 0x28ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1505: #endif 
  1506: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },		/* VideoRAM selector/offset */
  1507: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1508: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1509: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1510: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1511: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1512: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1513: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1514: 	{ 0x600000, 0x60ffff, toaplan2_tx_gfxram16_w, &toaplan2_tx_gfxram16 },
  1515: MEMORY_END
  1516: 
  1517: static MEMORY_READ16_START( vfive_readmem )
  1518: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1519: 	{ 0x100000, 0x103fff, MRA16_RAM },
  1520: //	{ 0x200000, 0x20ffff, MRA16_ROM },				/* Sound ROM is here ??? */
  1521: 	{ 0x200010, 0x200011, input_port_1_word_r },	/* Player 1 controls */
  1522: 	{ 0x200014, 0x200015, input_port_2_word_r },	/* Player 2 controls */
  1523: 	{ 0x200018, 0x200019, input_port_3_word_r },	/* Coin/System inputs */
  1524: #if Zx80 
  1525: 	{ 0x21e000, 0x21fbff, shared_ram_r },			/* $21f000 status port */
  1526: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1527: #else 
  1528: 	{ 0x21e000, 0x21efff, shared_ram_r },
  1529: 	{ 0x21f000, 0x21f001, Zx80_status_port_r },		/* Zx80 status port */
  1530: 	{ 0x21f004, 0x21f005, input_port_4_word_r },	/* Dip Switch A */
  1531: 	{ 0x21f006, 0x21f007, input_port_5_word_r },	/* Dip Switch B */
  1532: 	{ 0x21f008, 0x21f009, input_port_6_word_r },	/* Territory Jumper block */
  1533: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1534: #endif 
  1535: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },
  1536: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },
  1537: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1538: 	{ 0x700000, 0x700001, video_count_r },
  1539: MEMORY_END
  1540: 
  1541: static MEMORY_WRITE16_START( vfive_writemem )
  1542: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1543: 	{ 0x100000, 0x103fff, MWA16_RAM },
  1544: //	{ 0x200000, 0x20ffff, MWA16_ROM },				/* Sound ROM is here ??? */
  1545: 	{ 0x20001c, 0x20001d, toaplan2_coin_word_w },	/* Coin count/lock */
  1546: #if Zx80 
  1547: 	{ 0x21e000, 0x21fbff, shared_ram_w, &toaplan2_shared_ram16 },	/* $21F000 */
  1548: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1549: #else 
  1550: 	{ 0x21e000, 0x21efff, shared_ram_w, &toaplan2_shared_ram16 },
  1551: 	{ 0x21f000, 0x21f001, Zx80_command_port_w },	/* Zx80 command port */
  1552: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1553: #endif 
  1554: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },		/* VideoRAM selector/offset */
  1555: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1556: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1557: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1558: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1559: MEMORY_END
  1560: 
  1561: static MEMORY_READ16_START( batsugun_readmem )
  1562: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1563: 	{ 0x100000, 0x10ffff, MRA16_RAM },
  1564: 	{ 0x200010, 0x200011, input_port_1_word_r },	/* Player 1 controls */
  1565: 	{ 0x200014, 0x200015, input_port_2_word_r },	/* Player 2 controls */
  1566: 	{ 0x200018, 0x200019, input_port_3_word_r },	/* Coin/System inputs */
  1567: 	{ 0x210000, 0x21bbff, MRA16_RAM },
  1568: #if Zx80 
  1569: 	{ 0x21e000, 0x21fbff, shared_ram_r },			/* $21f000 status port */
  1570: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1571: #else 
  1572: 	{ 0x21e000, 0x21efff, shared_ram_r },
  1573: 	{ 0x21f000, 0x21f001, Zx80_status_port_r },		/* Zx80 status port */
  1574: 	{ 0x21f004, 0x21f005, input_port_4_word_r },	/* Dip Switch A */
  1575: 	{ 0x21f006, 0x21f007, input_port_5_word_r },	/* Dip Switch B */
  1576: 	{ 0x21f008, 0x21f009, input_port_6_word_r },	/* Territory Jumper block */
  1577: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_r },		/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1578: #endif 
  1579: 	/***** The following in 0x30000x are for video controller 1 ******/
  1580: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
  1581: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1582: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1583: 	/***** The following in 0x50000x are for video controller 2 ******/
  1584: 	{ 0x500004, 0x500007, toaplan2_1_videoram16_r },/* tile layers 2 */
  1585: 	{ 0x700000, 0x700001, video_count_r },
  1586: MEMORY_END
  1587: 
  1588: static MEMORY_WRITE16_START( batsugun_writemem )
  1589: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1590: 	{ 0x100000, 0x10ffff, MWA16_RAM },
  1591: 	{ 0x20001c, 0x20001d, toaplan2_coin_word_w },	/* Coin count/lock */
  1592: 	{ 0x210000, 0x21bbff, MWA16_RAM },
  1593: #if Zx80 
  1594: 	{ 0x21e000, 0x21fbff, shared_ram_w, &toaplan2_shared_ram16 },	/* $21F000 */
  1595: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1596: #else 
  1597: 	{ 0x21e000, 0x21efff, shared_ram_w, &toaplan2_shared_ram16 },
  1598: 	{ 0x21f000, 0x21f001, Zx80_command_port_w },	/* Zx80 command port */
  1599: 	{ 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram },	/* 16-bit on 68000 side, 8-bit on Zx80 side */
  1600: #endif 
  1601: 	/***** The following in 0x30000x are for video controller 1 ******/
  1602: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },		/* VideoRAM selector/offset */
  1603: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1604: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1605: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1606: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1607: 	/***** The following in 0x50000x are for video controller 2 ******/
  1608: 	{ 0x500000, 0x500001, toaplan2_1_voffs_w },		/* VideoRAM selector/offset */
  1609: 	{ 0x500004, 0x500007, toaplan2_1_videoram16_w },/* Tile/Sprite VideoRAM */
  1610: 	{ 0x500008, 0x500009, toaplan2_1_scroll_reg_select_w },
  1611: 	{ 0x50000c, 0x50000d, toaplan2_1_scroll_reg_data_w },
  1612: MEMORY_END
  1613: 
  1614: static MEMORY_READ16_START( snowbro2_readmem )
  1615: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1616: 	{ 0x100000, 0x10ffff, MRA16_RAM },
  1617: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
  1618: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1619: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1620: 	{ 0x500002, 0x500003, YM2151_status_port_0_lsb_r },
  1621: 	{ 0x600000, 0x600001, OKIM6295_status_0_lsb_r },
  1622: 	{ 0x700000, 0x700001, input_port_8_word_r },	/* Territory Jumper block */
  1623: 	{ 0x700004, 0x700005, input_port_6_word_r },	/* Dip Switch A */
  1624: 	{ 0x700008, 0x700009, input_port_7_word_r },	/* Dip Switch B */
  1625: 	{ 0x70000c, 0x70000d, input_port_1_word_r },	/* Player 1 controls */
  1626: 	{ 0x700010, 0x700011, input_port_2_word_r },	/* Player 2 controls */
  1627: 	{ 0x700014, 0x700015, input_port_3_word_r },	/* Player 3 controls */
  1628: 	{ 0x700018, 0x700019, input_port_4_word_r },	/* Player 4 controls */
  1629: 	{ 0x70001c, 0x70001d, input_port_5_word_r },	/* Coin/System inputs */
  1630: MEMORY_END
  1631: 
  1632: static MEMORY_WRITE16_START( snowbro2_writemem )
  1633: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1634: 	{ 0x100000, 0x10ffff, MWA16_RAM },
  1635: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },		/* VideoRAM selector/offset */
  1636: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
  1637: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1638: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1639: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1640: 	{ 0x500000, 0x500001, YM2151_register_port_0_lsb_w },
  1641: 	{ 0x500002, 0x500003, YM2151_data_port_0_lsb_w },
  1642: 	{ 0x600000, 0x600001, OKIM6295_data_0_lsb_w },
  1643: 	{ 0x700030, 0x700031, oki_bankswitch_w },		/* Sample bank switch */
  1644: 	{ 0x700034, 0x700035, toaplan2_coin_word_w },	/* Coin count/lock */
  1645: MEMORY_END
  1646: 
  1647: static MEMORY_READ16_START( mahoudai_readmem )
  1648: 	{ 0x000000, 0x07ffff, MRA16_ROM },
  1649: 	{ 0x100000, 0x10ffff, MRA16_RAM },
  1650: 	{ 0x218000, 0x21bfff, raizing_shared_ram_r },
  1651: 	{ 0x21c020, 0x21c021, input_port_1_word_r },	/* Player 1 controls */
  1652: 	{ 0x21c024, 0x21c025, input_port_2_word_r },	/* Player 2 controls */
  1653: 	{ 0x21c028, 0x21c029, input_port_3_word_r },	/* Coin/System inputs */
  1654: 	{ 0x21c02c, 0x21c02d, input_port_4_word_r },	/* Dip Switch A */
  1655: 	{ 0x21c030, 0x21c031, input_port_5_word_r },	/* Dip Switch B */
  1656: 	{ 0x21c034, 0x21c035, input_port_6_word_r },	/* Territory Jumper block */
  1657: 	{ 0x21c03c, 0x21c03d, video_count_r },
  1658: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
  1659: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1660: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1661: 	{ 0x401000, 0x4017ff, MRA16_RAM },				/* Unused PaletteRAM */
  1662: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_r },
  1663: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
  1664: 	{ 0x502200, 0x502fff, MRA16_RAM },
  1665: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
  1666: 	{ 0x503200, 0x503fff, MRA16_RAM },
  1667: MEMORY_END
  1668: 
  1669: static MEMORY_WRITE16_START( mahoudai_writemem )
  1670: 	{ 0x000000, 0x07ffff, MWA16_ROM },
  1671: 	{ 0x100000, 0x10ffff, MWA16_RAM },
  1672: 	{ 0x218000, 0x21bfff, raizing_shared_ram_w },
  1673: 	{ 0x21c01c, 0x21c01d, toaplan2_coin_word_w },
  1674: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },
  1675: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },
  1676: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1677: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1678: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1679: 	{ 0x401000, 0x4017ff, MWA16_RAM },
  1680: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1681: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1682: 	{ 0x502200, 0x502fff, MWA16_RAM },
  1683: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1684: 	{ 0x503200, 0x503fff, MWA16_RAM },
  1685: MEMORY_END
  1686: 
  1687: static MEMORY_READ16_START( shippumd_readmem )
  1688: 	{ 0x000000, 0x0fffff, MRA16_ROM },
  1689: 	{ 0x100000, 0x10ffff, MRA16_RAM },
  1690: 	{ 0x218000, 0x21bfff, raizing_shared_ram_r },
  1691: 	{ 0x21c020, 0x21c021, input_port_1_word_r },	/* Player 1 controls */
  1692: 	{ 0x21c024, 0x21c025, input_port_2_word_r },	/* Player 2 controls */
  1693: 	{ 0x21c028, 0x21c029, input_port_3_word_r },	/* Coin/System inputs */
  1694: 	{ 0x21c02c, 0x21c02d, input_port_4_word_r },	/* Dip Switch A */
  1695: 	{ 0x21c030, 0x21c031, input_port_5_word_r },	/* Dip Switch B */
  1696: 	{ 0x21c034, 0x21c035, input_port_6_word_r },	/* Territory Jumper block */
  1697: 	{ 0x21c03c, 0x21c03d, video_count_r },
  1698: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
  1699: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1700: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1701: 	{ 0x401000, 0x4017ff, MRA16_RAM },				/* Unused PaletteRAM */
  1702: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_r },
  1703: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
  1704: 	{ 0x502200, 0x502fff, MRA16_RAM },
  1705: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
  1706: 	{ 0x503200, 0x503fff, MRA16_RAM },
  1707: MEMORY_END
  1708: 
  1709: static MEMORY_WRITE16_START( shippumd_writemem )
  1710: 	{ 0x000000, 0x0fffff, MWA16_ROM },
  1711: 	{ 0x100000, 0x10ffff, MWA16_RAM },
  1712: 	{ 0x218000, 0x21bfff, raizing_shared_ram_w },
  1713: //	{ 0x21c008, 0x21c009, MWA16_NOP },				/* ??? */
  1714: 	{ 0x21c01c, 0x21c01d, toaplan2_coin_word_w },
  1715: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },
  1716: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },
  1717: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1718: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1719: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1720: 	{ 0x401000, 0x4017ff, MWA16_RAM },
  1721: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1722: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1723: 	{ 0x502200, 0x502fff, MWA16_RAM },
  1724: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1725: 	{ 0x503200, 0x503fff, MWA16_RAM },
  1726: MEMORY_END
  1727: 
  1728: static MEMORY_READ16_START( battleg_readmem )
  1729: 	{ 0x000000, 0x0fffff, MRA16_ROM },
  1730: 	{ 0x100000, 0x10ffff, MRA16_RAM },
  1731: 	{ 0x218020, 0x218023, battleg_z80check_r },
  1732: 	{ 0x21c020, 0x21c021, input_port_1_word_r },	/* Player 1 controls */
  1733: 	{ 0x21c024, 0x21c025, input_port_2_word_r },	/* Player 2 controls */
  1734: 	{ 0x21c028, 0x21c029, input_port_3_word_r },	/* Coin/System inputs */
  1735: 	{ 0x21c02c, 0x21c02d, input_port_4_word_r },	/* Dip Switch A */
  1736: 	{ 0x21c030, 0x21c031, input_port_5_word_r },	/* Dip Switch B */
  1737: 	{ 0x21c034, 0x21c035, input_port_6_word_r },	/* Territory Jumper block */
  1738: 	{ 0x21c03c, 0x21c03d, video_count_r },
  1739: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
  1740: 	{ 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },	/* VBlank */
  1741: 	{ 0x400000, 0x400fff, paletteram16_word_r },
  1742: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_r },
  1743: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
  1744: 	{ 0x502200, 0x502fff, MRA16_RAM },
  1745: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
  1746: 	{ 0x503200, 0x503fff, MRA16_RAM },
  1747: 	{ 0x600000, 0x600fff, battleg_commram_r },		/* CommRAM check */
  1748: MEMORY_END
  1749: 
  1750: static MEMORY_WRITE16_START( battleg_writemem )
  1751: 	{ 0x000000, 0x0fffff, MWA16_ROM },
  1752: 	{ 0x100000, 0x10ffff, MWA16_RAM },
  1753: 	{ 0x21c01c, 0x21c01d, toaplan2_coin_word_w },
  1754: 	{ 0x300000, 0x300001, toaplan2_0_voffs_w },
  1755: 	{ 0x300004, 0x300007, toaplan2_0_videoram16_w },
  1756: 	{ 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
  1757: 	{ 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
  1758: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1759: 	{ 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1760: 	{ 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1761: 	{ 0x502200, 0x502fff, MWA16_RAM },
  1762: 	{ 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1763: 	{ 0x503200, 0x503fff, MWA16_RAM },
  1764: 	{ 0x600000, 0x600fff, battleg_commram_w, &battleg_commram16 },
  1765: MEMORY_END
  1766: 
  1767: static MEMORY_READ16_START( batrider_readmem )
  1768: 	{ 0x000000, 0x1fffff, MRA16_ROM },
  1769: 	{ 0x200000, 0x201fff, toaplan2_txvideoram16_r },/* Text VideoRAM */
  1770: 	{ 0x202000, 0x202fff, paletteram16_word_r },
  1771: 	{ 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_r },
  1772: 	{ 0x203200, 0x2033ff, toaplan2_txscrollram16_r },
  1773: 	{ 0x203400, 0x207fff, raizing_tx_gfxram16_r },	/* Main RAM actually */
  1774: 	{ 0x208000, 0x20ffff, MRA16_RAM },
  1775: 	{ 0x300000, 0x37ffff, raizing_z80rom_r },
  1776: 	{ 0x400000, 0x400001, toaplan2_inputport_0_word_r },	/* VBlank */
  1777: 	{ 0x400008, 0x40000b, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
  1778: 	{ 0x500000, 0x500001, input_port_1_word_r },
  1779: 	{ 0x500002, 0x500003, input_port_2_word_r },
  1780: 	{ 0x500004, 0x500005, input_port_3_word_r },
  1781: 	{ 0x500006, 0x500007, video_count_r },
  1782: 	{ 0x500008, 0x50000b, raizing_sndcomms_r },
  1783: 	{ 0x50000c, 0x50000d, batrider_z80_busack_r },
  1784: MEMORY_END
  1785: 
  1786: static MEMORY_WRITE16_START( batrider_writemem )
  1787: 	{ 0x000000, 0x1fffff, MWA16_ROM },
  1788: 	{ 0x200000, 0x201fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1789: 	{ 0x202000, 0x202fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 , &paletteram_size },
  1790: 	{ 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1791: 	{ 0x203200, 0x2033ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1792: 	{ 0x203400, 0x207fff, raizing_tx_gfxram16_w },
  1793: 	{ 0x208000, 0x20ffff, MWA16_RAM },
  1794: 	{ 0x400000, 0x400001, toaplan2_0_scroll_reg_data_w },
  1795: 	{ 0x400004, 0x400005, toaplan2_0_scroll_reg_select_w },
  1796: 	{ 0x400008, 0x40000b, toaplan2_0_videoram16_w },
  1797: 	{ 0x40000c, 0x40000d, toaplan2_0_voffs_w },
  1798: 	{ 0x500010, 0x500011, toaplan2_coin_word_w },
  1799: 	{ 0x500020, 0x500023, raizing_sndcomms_w, &raizing_cpu_comm16 },
  1800: 	{ 0x500060, 0x500061, batrider_z80_busreq_w },
  1801: 	{ 0x500080, 0x500081, batrider_textdata_decode },
  1802: 	{ 0x5000c0, 0x5000cf, batrider_objectbank_w },
  1803: MEMORY_END
  1804: 
  1805: static MEMORY_READ16_START( bbakraid_readmem )
  1806: 	{ 0x000000, 0x1fffff, MRA16_ROM },
  1807: 	{ 0x200000, 0x201fff, toaplan2_txvideoram16_r },/* Text VideoRAM */
  1808: 	{ 0x202000, 0x202fff, paletteram16_word_r },
  1809: 	{ 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_r },
  1810: 	{ 0x203200, 0x2033ff, toaplan2_txscrollram16_r },
  1811: 	{ 0x203400, 0x207fff, raizing_tx_gfxram16_r },	/* Main RAM actually */
  1812: 	{ 0x208000, 0x20ffff, MRA16_RAM },
  1813: 	{ 0x300000, 0x33ffff, raizing_z80rom_r },
  1814: 	{ 0x400000, 0x400001, toaplan2_inputport_0_word_r },	/* VBlank */
  1815: 	{ 0x400008, 0x40000b, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
  1816: 	{ 0x500000, 0x500001, input_port_1_word_r },
  1817: 	{ 0x500002, 0x500003, input_port_2_word_r },
  1818: 	{ 0x500004, 0x500005, input_port_3_word_r },
  1819: 	{ 0x500006, 0x500007, video_count_r },
  1820: 	{ 0x500010, 0x500013, raizing_sndcomms_r },
  1821: 	{ 0x500018, 0x500019, bbakraid_nvram_r },
  1822: MEMORY_END
  1823: 
  1824: static MEMORY_WRITE16_START( bbakraid_writemem )
  1825: 	{ 0x000000, 0x1fffff, MWA16_ROM },
  1826: 	{ 0x200000, 0x201fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
  1827: 	{ 0x202000, 0x202fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 , &paletteram_size },
  1828: 	{ 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
  1829: 	{ 0x203200, 0x2033ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
  1830: 	{ 0x203400, 0x207fff, raizing_tx_gfxram16_w },
  1831: 	{ 0x208000, 0x20ffff, MWA16_RAM },
  1832: 	{ 0x400000, 0x400001, toaplan2_0_scroll_reg_data_w },
  1833: 	{ 0x400004, 0x400005, toaplan2_0_scroll_reg_select_w },
  1834: 	{ 0x400008, 0x40000b, toaplan2_0_videoram16_w },
  1835: 	{ 0x40000c, 0x40000d, toaplan2_0_voffs_w },
  1836: 	{ 0x500008, 0x500009, bbakraid_trigger_z80_irq },
  1837: 	{ 0x500010, 0x500011, toaplan2_coin_word_w },
  1838: 	{ 0x500014, 0x500017, raizing_sndcomms_w, &raizing_cpu_comm16 },
  1839: 	{ 0x50001e, 0x50001f, bbakraid_nvram_w },
  1840: 	{ 0x500080, 0x500081, batrider_textdata_decode },
  1841: 	{ 0x5000c0, 0x5000cf, batrider_objectbank_w },
  1842: MEMORY_END
  1843: 
  1844: 
  1845: 
  1846: static MEMORY_READ_START( sound_readmem )
  1847: 	{ 0x0000, 0x7fff, MRA_ROM },
  1848: 	{ 0x8000, 0x87ff, MRA_RAM },
  1849: 	{ 0xe000, 0xe000, YM3812_status_port_0_r },
  1850: MEMORY_END
  1851: 
  1852: static MEMORY_WRITE_START( sound_writemem )
  1853: 	{ 0x0000, 0x7fff, MWA_ROM },
  1854: 	{ 0x8000, 0x87ff, MWA_RAM, &toaplan2_shared_ram },
  1855: 	{ 0xe000, 0xe000, YM3812_control_port_0_w },
  1856: 	{ 0xe001, 0xe001, YM3812_write_port_0_w },
  1857: MEMORY_END
  1858: 
  1859: static MEMORY_READ_START( raizing_sound_readmem )
  1860: 	{ 0x0000, 0xbfff, MRA_ROM },
  1861: 	{ 0xc000, 0xdfff, MRA_RAM },
  1862: 	{ 0xe001, 0xe001, YM2151_status_port_0_r },
  1863: 	{ 0xe004, 0xe004, OKIM6295_status_0_r },
  1864: MEMORY_END
  1865: 
  1866: static MEMORY_WRITE_START( raizing_sound_writemem )
  1867: 	{ 0x0000, 0xbfff, MWA_ROM },
  1868: 	{ 0xc000, 0xdfff, MWA_RAM, &raizing_shared_ram },
  1869: 	{ 0xe000, 0xe000, YM2151_register_port_0_w },
  1870: 	{ 0xe001, 0xe001, YM2151_data_port_0_w },
  1871: 	{ 0xe004, 0xe004, OKIM6295_data_0_w },
  1872: 	{ 0xe00e, 0xe00e, toaplan2_coin_w },
  1873: MEMORY_END
  1874: 
  1875: static MEMORY_READ_START( battleg_sound_readmem )
  1876: 	{ 0x0000, 0x7fff, MRA_ROM },
  1877: 	{ 0x8000, 0xbfff, MRA_BANK1 },
  1878: 	{ 0xc000, 0xdfff, MRA_RAM },
  1879: 	{ 0xe001, 0xe001, YM2151_status_port_0_r },
  1880: 	{ 0xe004, 0xe004, OKIM6295_status_0_r },
  1881: 	{ 0xe01c, 0xe01d, battleg_commram_check_r0 },
  1882: MEMORY_END
  1883: 
  1884: static MEMORY_WRITE_START( battleg_sound_writemem )
  1885: 	{ 0x0000, 0xbfff, MWA_ROM },
  1886: 	{ 0xc000, 0xdfff, MWA_RAM, &raizing_shared_ram },
  1887: 	{ 0xe000, 0xe000, YM2151_register_port_0_w },
  1888: 	{ 0xe001, 0xe001, YM2151_data_port_0_w },
  1889: 	{ 0xe004, 0xe004, OKIM6295_data_0_w },
  1890: 	{ 0xe006, 0xe006, raizing_okim6295_bankselect_0 },
  1891: 	{ 0xe008, 0xe008, raizing_okim6295_bankselect_1 },
  1892: 	{ 0xe00a, 0xe00a, battleg_bankswitch_w },
  1893: 	{ 0xe00c, 0xe00c, battleg_commram_check_w0 },
  1894: MEMORY_END
  1895: 
  1896: static MEMORY_READ_START( batrider_sound_readmem )
  1897: 	{ 0x0000, 0x7fff, MRA_ROM },
  1898: 	{ 0x8000, 0xbfff, MRA_BANK1 },
  1899: 	{ 0xc000, 0xdfff, MRA_RAM },
  1900: MEMORY_END
  1901: 
  1902: static MEMORY_WRITE_START( batrider_sound_writemem )
  1903: 	{ 0x0000, 0xbfff, MWA_ROM },
  1904: 	{ 0xc000, 0xdfff, MWA_RAM },
  1905: MEMORY_END
  1906: 
  1907: static PORT_READ_START( batrider_sound_readport )
  1908: 	{ 0x48, 0x48, raizing_command_r },
  1909: 	{ 0x4a, 0x4a, raizing_request_r },
  1910: 	{ 0x81, 0x81, YM2151_status_port_0_r },
  1911: 	{ 0x82, 0x82, OKIM6295_status_0_r },
  1912: 	{ 0x84, 0x84, OKIM6295_status_1_r },
  1913: PORT_END
  1914: 
  1915: static PORT_WRITE_START( batrider_sound_writeport )
  1916: 	{ 0x40, 0x40, raizing_command_ack_w },		/* Tune control */
  1917: 	{ 0x42, 0x42, raizing_request_ack_w },		/* Tune to play */
  1918: 	{ 0x46, 0x46, raizing_clear_nmi_w },		/* Clear the NMI state */
  1919: 	{ 0x80, 0x80, YM2151_register_port_0_w },
  1920: 	{ 0x81, 0x81, YM2151_data_port_0_w },
  1921: 	{ 0x82, 0x82, OKIM6295_data_0_w },
  1922: 	{ 0x84, 0x84, OKIM6295_data_1_w },
  1923: 	{ 0x88, 0x88, batrider_bankswitch_w },
  1924: 	{ 0xc0, 0xc0, raizing_okim6295_bankselect_0 },
  1925: 	{ 0xc2, 0xc2, raizing_okim6295_bankselect_1 },
  1926: 	{ 0xc4, 0xc4, raizing_okim6295_bankselect_2 },
  1927: 	{ 0xc6, 0xc6, raizing_okim6295_bankselect_3 },
  1928: PORT_END
  1929: 
  1930: static MEMORY_READ_START( bbakraid_sound_readmem )
  1931: 	{ 0x0000, 0x7fff, MRA_ROM },
  1932: 	{ 0x8000, 0xbfff, MRA_BANK1 },
  1933: 	{ 0xc000, 0xffff, MRA_RAM },
  1934: MEMORY_END
  1935: 
  1936: static MEMORY_WRITE_START( bbakraid_sound_writemem )
  1937: 	{ 0x0000, 0xbfff, MWA_ROM },	/* Only 2FFFh valid code */
  1938: 	{ 0xc000, 0xffff, MWA_RAM },
  1939: MEMORY_END
  1940: 
  1941: static PORT_READ_START( bbakraid_sound_readport )
  1942: 	{ 0x48, 0x48, raizing_command_r },
  1943: 	{ 0x4a, 0x4a, raizing_request_r },
  1944: 	{ 0x81, 0x81, YMZ280B_status_0_r },
  1945: PORT_END
  1946: 
  1947: static PORT_WRITE_START( bbakraid_sound_writeport )
  1948: 	{ 0x40, 0x40, raizing_command_ack_w },		/* Tune control */
  1949: 	{ 0x42, 0x42, raizing_request_ack_w },		/* Tune to play */
  1950: 	{ 0x46, 0x46, raizing_clear_nmi_w },		/* Clear the NMI state */
  1951: 	{ 0x80, 0x80, YMZ280B_register_0_w },
  1952: 	{ 0x81, 0x81, YMZ280B_data_0_w },
  1953: PORT_END
  1954: 
  1955: 
  1956: #if HD64x180 
  1957: static MEMORY_READ_START( hd647180_readmem )
  1958: 	{ 0x0000, 0x7fff, MRA_ROM },
  1959: 	{ 0xfe00, 0xffff, MRA_RAM },			/* Internal 512 bytes of RAM */
  1960: MEMORY_END
  1961: 
  1962: static MEMORY_WRITE_START( hd647180_writemem )
  1963: 	{ 0x0000, 0x7fff, MWA_ROM },
  1964: 	{ 0xfe00, 0xffff, MWA_RAM },			/* Internal 512 bytes of RAM */
  1965: MEMORY_END
  1966: #endif 
  1967: 
  1968: 
  1969: #if Zx80 
  1970: static MEMORY_READ_START( Zx80_readmem )
  1971: 	{ 0x00000, 0x03fff, MRA_ROM },
  1972: //	{ 0x00000, 0x007ff, MRA_RAM },			/* External shared RAM (Banked) */
  1973: 	{ 0x04000, 0x04000, YM2151_status_port_0_r },
  1974: 	{ 0x04002, 0x04002, OKIM6295_status_0_r },
  1975: 	{ 0x04008, 0x04008, input_port_1_r },
  1976: 	{ 0x0400a, 0x0400a, input_port_2_r },
  1977: 	{ 0x0400c, 0x0400c, input_port_3_r },
  1978: 	{ 0x0fe00, 0x0ffff, MRA_RAM },			/* Internal 512 bytes of RAM */
  1979: 	{ 0x80000, 0x87fff, MRA_RAM },			/* External shared RAM (ROM for KBASH) */
  1980: MEMORY_END
  1981: 
  1982: static MEMORY_WRITE_START( Zx80_writemem )
  1983: 	{ 0x00000, 0x03fff, MWA_ROM, },
  1984: //	{ 0x00000, 0x007ff, MWA_RAM, },			/* External shared RAM (Banked) */
  1985: 	{ 0x04000, 0x04000, YM2151_register_port_0_w },
  1986: 	{ 0x04001, 0x04001, YM2151_data_port_0_w },
  1987: 	{ 0x04002, 0x04002, OKIM6295_data_0_w },
  1988: 	{ 0x04004, 0x04004, oki_bankswitch_w },
  1989: 	{ 0x0400e, 0x0400e, toaplan2_coin_w },
  1990: 	{ 0x0fe00, 0x0ffff, MWA_RAM },			/* Internal 512 bytes of RAM */
  1991: 	{ 0x80000, 0x87fff, MWA_RAM, &Zx80_sharedram },	/* External shared RAM (ROM for KBASH) */
  1992: MEMORY_END
  1993: 
  1994: static PORT_READ_START( Zx80_readport )
  1995: 	{ 0x0060, 0x0060, input_port_4_r },		/* Directly mapped I/O ports */
  1996: 	{ 0x0061, 0x0061, input_port_5_r },		/* Directly mapped I/O ports */
  1997: 	{ 0x0062, 0x0062, input_port_6_r },		/* Directly mapped I/O ports */
  1998: PORT_END
  1999: #endif 
  2000: 
  2001: 
  2002: 
  2003: /*****************************************************************************
  2004: 	Input Port definitions
  2005: 	Service input of the TOAPLAN2_SYSTEM_INPUTS is used as a Pause type input.
  2006: 	If you press then release the following buttons, the following occurs:
  2007: 	Service & P2 start            : The game will pause.
  2008: 	P1 start                      : The game will continue.
  2009: 	Service & P1 start & P2 start : The game will play in slow motion.
  2010: *****************************************************************************/
  2011: 
  2012: #define  TOAPLAN2_PLAYER_INPUT( player, button3, button4 )						\ 
  2013: 	PORT_START																	\
  2014: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | player )	\
  2015: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | player )	\
  2016: 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | player )	\
  2017: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | player )	\
  2018: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | player )					\
  2019: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | player )					\
  2020: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, button3 | player )						\
  2021: 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, button4 | player )						\
  2022: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2023: 
  2024: #define  SNOWBRO2_PLAYER_INPUT( player, button3, button4 )						\ 
  2025: 	PORT_START																	\
  2026: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | player )	\
  2027: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | player )	\
  2028: 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | player )	\
  2029: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | player )	\
  2030: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | player )					\
  2031: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | player )					\
  2032: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, button3 )									\
  2033: 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, button4 )									\
  2034: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2035: 
  2036: #define  TOAPLAN2_SYSTEM_INPUTS						\ 
  2037: 	PORT_START										\
  2038: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SERVICE1 )\
  2039: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )	\
  2040: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )	\
  2041: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )	\
  2042: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )	\
  2043: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )	\
  2044: 	PORT_BIT( 0xff84, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2045: 
  2046: #define DSWA_8											\ 
  2047: 	PORT_START		/* (4) DSWA */						\
  2048: 	PORT_DIPNAME( 0x01,	0x00, DEF_STR( Unused ) )		\
  2049: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )			\
  2050: 	PORT_DIPSETTING(	0x01, DEF_STR( On ) )			\
  2051: 	PORT_DIPNAME( 0x02,	0x00, DEF_STR( Flip_Screen ) )	\
  2052: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )			\
  2053: 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )			\
  2054: 	PORT_SERVICE( 0x04,	IP_ACTIVE_HIGH )				\
  2055: 	PORT_DIPNAME( 0x08,	0x00, DEF_STR( Demo_Sounds ) )	\
  2056: 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )			\
  2057: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  2058: 
  2059: #define EUROPEAN_COINAGE_8							\ 
  2060: 	PORT_DIPNAME( 0x30,	0x00, DEF_STR( Coin_A ) )	\
  2061: 	PORT_DIPSETTING(	0x30, DEF_STR( 4C_1C ) )	\
  2062: 	PORT_DIPSETTING(	0x20, DEF_STR( 3C_1C ) )	\
  2063: 	PORT_DIPSETTING(	0x10, DEF_STR( 2C_1C ) )	\
  2064: 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )	\
  2065: 	PORT_DIPNAME( 0xc0,	0x00, DEF_STR( Coin_B ) )	\
  2066: 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_2C ) )	\
  2067: 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_3C ) )	\
  2068: 	PORT_DIPSETTING(	0x80, DEF_STR( 1C_4C ) )	\
  2069: 	PORT_DIPSETTING(	0xc0, DEF_STR( 1C_6C ) )
  2070: 
  2071: #define NONEUROPEAN_COINAGE_8						\ 
  2072: 	PORT_DIPNAME( 0x30,	0x00, DEF_STR( Coin_A ) )	\
  2073: 	PORT_DIPSETTING(	0x20, DEF_STR( 2C_1C ) )	\
  2074: 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )	\
  2075: 	PORT_DIPSETTING(	0x30, DEF_STR( 2C_3C ) )	\
  2076: 	PORT_DIPSETTING(	0x10, DEF_STR( 1C_2C ) )	\
  2077: 	PORT_DIPNAME( 0xc0,	0x00, DEF_STR( Coin_B ) )	\
  2078: 	PORT_DIPSETTING(	0x80, DEF_STR( 2C_1C ) )	\
  2079: 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )	\
  2080: 	PORT_DIPSETTING(	0xc0, DEF_STR( 2C_3C ) )	\
  2081: 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_2C ) )
  2082: 
  2083: #define EUROPEAN_COINAGE_16								\ 
  2084: 	PORT_DIPNAME( 0x0030,	0x0000, DEF_STR( Coin_A ) )	\
  2085: 	PORT_DIPSETTING(		0x0030, DEF_STR( 4C_1C ) )	\
  2086: 	PORT_DIPSETTING(		0x0020, DEF_STR( 3C_1C ) )	\
  2087: 	PORT_DIPSETTING(		0x0010, DEF_STR( 2C_1C ) )	\
  2088: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )	\
  2089: 	PORT_DIPNAME( 0x00c0,	0x0000, DEF_STR( Coin_B ) )	\
  2090: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_2C ) )	\
  2091: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_3C ) )	\
  2092: 	PORT_DIPSETTING(		0x0080, DEF_STR( 1C_4C ) )	\
  2093: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 1C_6C ) )
  2094: 
  2095: #define NONEUROPEAN_COINAGE_16							\ 
  2096: 	PORT_DIPNAME( 0x0030,	0x0000, DEF_STR( Coin_A ) )	\
  2097: 	PORT_DIPSETTING(		0x0020, DEF_STR( 2C_1C ) )	\
  2098: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )	\
  2099: 	PORT_DIPSETTING(		0x0030, DEF_STR( 2C_3C ) )	\
  2100: 	PORT_DIPSETTING(		0x0010, DEF_STR( 1C_2C ) )	\
  2101: 	PORT_DIPNAME( 0xc0,		0x0000, DEF_STR( Coin_B ) )	\
  2102: 	PORT_DIPSETTING(		0x0080, DEF_STR( 2C_1C ) )	\
  2103: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )	\
  2104: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 2C_3C ) )	\
  2105: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_2C ) )
  2106: 
  2107: #define DIFFICULTY_8									\ 
  2108: 	PORT_DIPNAME( 0x03,	0x00, DEF_STR( Difficulty ) )	\
  2109: 	PORT_DIPSETTING(	0x01, "Easy" )					\
  2110: 	PORT_DIPSETTING(	0x00, "Medium" )				\
  2111: 	PORT_DIPSETTING(	0x02, "Hard" )					\
  2112: 	PORT_DIPSETTING(	0x03, "Hardest" )
  2113: 
  2114: #define LIVES_8										\ 
  2115: 	PORT_DIPNAME( 0x30,	0x00, DEF_STR( Lives ) )	\
  2116: 	PORT_DIPSETTING(	0x30, "1" )					\
  2117: 	PORT_DIPSETTING(	0x20, "2" )					\
  2118: 	PORT_DIPSETTING(	0x00, "3" )					\
  2119: 	PORT_DIPSETTING(	0x10, "5" )
  2120: 
  2121: #define DIFFICULTY_16										\ 
  2122: 	PORT_DIPNAME( 0x0003,	0x0000, DEF_STR( Difficulty ) )	\
  2123: 	PORT_DIPSETTING(		0x0001, "Easy" )				\
  2124: 	PORT_DIPSETTING(		0x0000, "Medium" )				\
  2125: 	PORT_DIPSETTING(		0x0002, "Hard" )				\
  2126: 	PORT_DIPSETTING(		0x0003, "Hardest" )
  2127: 
  2128: #define LIVES_16										\ 
  2129: 	PORT_DIPNAME( 0x0030,	0x0000, DEF_STR( Lives ) )	\
  2130: 	PORT_DIPSETTING(		0x0030, "1" )				\
  2131: 	PORT_DIPSETTING(		0x0020, "2" )				\
  2132: 	PORT_DIPSETTING(		0x0000, "3" )				\
  2133: 	PORT_DIPSETTING(		0x0010, "5" )
  2134: 
  2135: 
  2136: 
  2137: 
  2138: INPUT_PORTS_START( tekipaki )
  2139: 	PORT_START		/* (0) VBlank */
  2140: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2141: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2142: 
  2143: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2144: 
  2145: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2146: 
  2147: 	TOAPLAN2_SYSTEM_INPUTS
  2148: 
  2149: 	DSWA_8
  2150: 	EUROPEAN_COINAGE_8
  2151: //	NONEUROPEAN_COINAGE_8
  2152: 
  2153: 	PORT_START		/* (5) DSWB */
  2154: 	DIFFICULTY_8
  2155: 	PORT_DIPNAME( 0x04,	0x00, DEF_STR( Unused ) )
  2156: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2157: 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )
  2158: 	PORT_DIPNAME( 0x08,	0x00, DEF_STR( Unused ) )
  2159: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2160: 	PORT_DIPSETTING(	0x08, DEF_STR( On ) )
  2161: 	PORT_DIPNAME( 0x10,	0x00, DEF_STR( Unused ) )
  2162: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2163: 	PORT_DIPSETTING(	0x10, DEF_STR( On ) )
  2164: 	PORT_DIPNAME( 0x20,	0x00, DEF_STR( Unused ) )
  2165: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2166: 	PORT_DIPSETTING(	0x20, DEF_STR( On ) )
  2167: 	PORT_DIPNAME( 0x40,	0x00, "Game Mode" )
  2168: 	PORT_DIPSETTING(	0x00, "Normal" )
  2169: 	PORT_DIPSETTING(	0x40, "Stop" )
  2170: 	PORT_DIPNAME( 0x80,	0x00, DEF_STR( Unused ) )
  2171: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2172: 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
  2173: 
  2174: 	PORT_START		/* (6) Territory Jumper block */
  2175: 	PORT_DIPNAME( 0x0f,	0x02, "Territory" )
  2176: 	PORT_DIPSETTING(	0x02, "Europe" )
  2177: 	PORT_DIPSETTING(	0x01, "USA" )
  2178: 	PORT_DIPSETTING(	0x00, "Japan" )
  2179: 	PORT_DIPSETTING(	0x03, "Hong Kong" )
  2180: 	PORT_DIPSETTING(	0x05, "Taiwan" )
  2181: 	PORT_DIPSETTING(	0x04, "Korea" )
  2182: 	PORT_DIPSETTING(	0x07, "USA (Romstar)" )
  2183: 	PORT_DIPSETTING(	0x08, "Hong Kong (Honest Trading Co.)" )
  2184: 	PORT_DIPSETTING(	0x06, "Taiwan (Spacy Co. Ltd)" )
  2185: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2186: INPUT_PORTS_END
  2187: 
  2188: INPUT_PORTS_START( ghox )
  2189: 	PORT_START		/* (0) VBlank */
  2190: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2191: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2192: 
  2193: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2194: 
  2195: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2196: 
  2197: 	TOAPLAN2_SYSTEM_INPUTS
  2198: 
  2199: 	DSWA_8
  2200: 	EUROPEAN_COINAGE_8
  2201: //	NONEUROPEAN_COINAGE_8
  2202: 
  2203: 	PORT_START		/* (5) DSWB */
  2204: 	DIFFICULTY_8
  2205: 	PORT_DIPNAME( 0x0c,	0x00, DEF_STR( Bonus_Life ) )
  2206: 	PORT_DIPSETTING(	0x00, "100k and every 200k" )
  2207: 	PORT_DIPSETTING(	0x04, "100k and every 300k" )
  2208: 	PORT_DIPSETTING(	0x08, "100k only" )
  2209: 	PORT_DIPSETTING(	0x0c, "None" )
  2210: 	LIVES_8
  2211: 	PORT_BITX(	  0x40,	0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2212: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2213: 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
  2214: 	PORT_DIPNAME( 0x80,	0x00, DEF_STR( Unused ) )
  2215: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2216: 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
  2217: 
  2218: 	PORT_START		/* (6) Territory Jumper block */
  2219: 	PORT_DIPNAME( 0x0f,	0x02, "Territory" )
  2220: 	PORT_DIPSETTING(	0x02, "Europe" )
  2221: 	PORT_DIPSETTING(	0x01, "USA" )
  2222: 	PORT_DIPSETTING(	0x00, "Japan" )
  2223: 	PORT_DIPSETTING(	0x04, "Korea" )
  2224: 	PORT_DIPSETTING(	0x03, "Hong Kong (Honest Trading Co.)" )
  2225: 	PORT_DIPSETTING(	0x05, "Taiwan" )
  2226: 	PORT_DIPSETTING(	0x06, "Spain & Portugal (APM Electronics SA)" )
  2227: 	PORT_DIPSETTING(	0x07, "Italy (Star Electronica SRL)" )
  2228: 	PORT_DIPSETTING(	0x08, "UK (JP Leisure Ltd)" )
  2229: 	PORT_DIPSETTING(	0x0a, "Europe (Nova Apparate GMBH & Co)" )
  2230: 	PORT_DIPSETTING(	0x0d, "Europe (Taito Corporation Japan)" )
  2231: 	PORT_DIPSETTING(	0x09, "USA (Romstar)" )
  2232: 	PORT_DIPSETTING(	0x0b, "USA (Taito America Corporation)" )
  2233: 	PORT_DIPSETTING(	0x0c, "USA (Taito Corporation Japan)" )
  2234: 	PORT_DIPSETTING(	0x0e, "Japan (Taito Corporation)" )
  2235: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2236: 
  2237: 	PORT_START		/* (7)  Paddle 1 (left-right)  read at $100000 */
  2238: 	PORT_ANALOG( 0xff,	0x00, IPT_DIAL | IPF_PLAYER1, 25, 15, 0, 0xff )
  2239: 
  2240: 	PORT_START		/* (8)  Paddle 2 (left-right)  read at $040000 */
  2241: 	PORT_ANALOG( 0xff,	0x00, IPT_DIAL | IPF_PLAYER2, 25, 15, 0, 0xff )
  2242: 
  2243: 	PORT_START		/* (9)  Paddle 1 (fake up-down) */
  2244: 	PORT_ANALOG( 0xff,	0x00, IPT_DIAL_V | IPF_PLAYER1, 15, 0, 0, 0xff )
  2245: 
  2246: 	PORT_START		/* (10) Paddle 2 (fake up-down) */
  2247: 	PORT_ANALOG( 0xff,	0x00, IPT_DIAL_V | IPF_PLAYER2, 15, 0, 0, 0xff )
  2248: INPUT_PORTS_END
  2249: 
  2250: INPUT_PORTS_START( dogyuun )
  2251: 	PORT_START		/* (0) VBlank */
  2252: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2253: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2254: 
  2255: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  2256: 
  2257: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  2258: 
  2259: 	TOAPLAN2_SYSTEM_INPUTS
  2260: 
  2261: 	PORT_START		/* (4) DSWA */
  2262: 	PORT_DIPNAME( 0x0001,	0x0000, DEF_STR( Free_Play) )
  2263: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2264: 	PORT_DIPSETTING(		0x0001, DEF_STR( On ) )
  2265: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2266: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2267: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2268: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2269: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2270: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2271: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2272: 	EUROPEAN_COINAGE_16
  2273: //	NONEUROPEAN_COINAGE_16
  2274: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2275: 
  2276: 	PORT_START		/* (5) DSWB */
  2277: 	DIFFICULTY_16
  2278: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2279: 	PORT_DIPSETTING(		0x0004, "200k, 400k and 600k" )
  2280: 	PORT_DIPSETTING(		0x0000, "200k only" )
  2281: 	PORT_DIPSETTING(		0x0008, "400k only" )
  2282: 	PORT_DIPSETTING(		0x000c, "None" )
  2283: 	LIVES_16
  2284: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2285: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2286: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2287: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2288: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2289: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2290: 
  2291: 	PORT_START		/* (6) Territory Jumper block */
  2292: 	PORT_DIPNAME( 0x0f,	0x03, "Territory" )
  2293: 	PORT_DIPSETTING(	0x03, "Europe" )
  2294: 	PORT_DIPSETTING(	0x01, "USA" )
  2295: 	PORT_DIPSETTING(	0x00, "Japan" )
  2296: 	PORT_DIPSETTING(	0x05, "Korea (Unite Trading license)" )
  2297: 	PORT_DIPSETTING(	0x04, "Hong Kong (Charterfield license)" )
  2298: 	PORT_DIPSETTING(	0x06, "Taiwan" )
  2299: 	PORT_DIPSETTING(	0x08, "South East Asia (Charterfield license)" )
  2300: 	PORT_DIPSETTING(	0x0c, "USA (Atari Games Corp license)" )
  2301: 	PORT_DIPSETTING(	0x0f, "Japan (Taito Corp license)" )
  2302: /*	Duplicate settings
  2303: 	PORT_DIPSETTING(	0x0b, "Europe" )
  2304: 	PORT_DIPSETTING(	0x07, "USA" )
  2305: 	PORT_DIPSETTING(	0x0a, "Korea (Unite Trading license)" )
  2306: 	PORT_DIPSETTING(	0x09, "Hong Kong (Charterfield license)" )
  2307: 	PORT_DIPSETTING(	0x0b, "Taiwan" )
  2308: 	PORT_DIPSETTING(	0x0d, "South East Asia (Charterfield license)" )
  2309: 	PORT_DIPSETTING(	0x0c, "USA (Atari Games Corp license)" )
  2310: */
  2311: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* bit 0x10 sound ready */
  2312: INPUT_PORTS_END
  2313: 
  2314: INPUT_PORTS_START( kbash )
  2315: 	PORT_START		/* (0) VBlank */
  2316: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2317: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2318: 
  2319: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  2320: 
  2321: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  2322: 
  2323: 	TOAPLAN2_SYSTEM_INPUTS
  2324: 
  2325: 	PORT_START		/* (4) DSWA */
  2326: 	PORT_DIPNAME( 0x0001,	0x0000, "Continue Mode" )
  2327: 	PORT_DIPSETTING(		0x0000, "Normal" )
  2328: 	PORT_DIPSETTING(		0x0001, "Discount" )
  2329: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2330: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2331: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2332: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2333: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2334: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2335: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2336: 	EUROPEAN_COINAGE_16
  2337: //	NONEUROPEAN_COINAGE_16
  2338: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2339: 
  2340: 	PORT_START		/* (5) DSWB */
  2341: 	DIFFICULTY_16
  2342: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2343: 	PORT_DIPSETTING(		0x0000, "100k and every 400k" )
  2344: 	PORT_DIPSETTING(		0x0004, "100k only" )
  2345: 	PORT_DIPSETTING(		0x0008, "200k only" )
  2346: 	PORT_DIPSETTING(		0x000c, "None" )
  2347: 	/* Lives are different in this game */
  2348: 	PORT_DIPNAME( 0x0030,	0x0000, DEF_STR( Lives ) )
  2349: 	PORT_DIPSETTING(		0x0030, "1" )
  2350: 	PORT_DIPSETTING(		0x0000, "2" )
  2351: 	PORT_DIPSETTING(		0x0020, "3" )
  2352: 	PORT_DIPSETTING(		0x0010, "4" )
  2353: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2354: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2355: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2356: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2357: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2358: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2359: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2360: 
  2361: 	PORT_START		/* (6) Territory Jumper block */
  2362: 	PORT_DIPNAME( 0x000f,	0x000a, "Territory" )
  2363: 	PORT_DIPSETTING(		0x000a, "Europe" )
  2364: 	PORT_DIPSETTING(		0x0009, "USA" )
  2365: 	PORT_DIPSETTING(		0x0000, "Japan" )
  2366: 	PORT_DIPSETTING(		0x0003, "Korea" )
  2367: 	PORT_DIPSETTING(		0x0004, "Hong Kong" )
  2368: 	PORT_DIPSETTING(		0x0007, "Taiwan" )
  2369: 	PORT_DIPSETTING(		0x0006, "South East Asia" )
  2370: 	PORT_DIPSETTING(		0x0002, "Europe, USA (Atari License)" )
  2371: 	PORT_DIPSETTING(		0x0001, "USA, Europe (Atari License)" )
  2372: 	PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2373: INPUT_PORTS_END
  2374: 
  2375: INPUT_PORTS_START( truxton2 )
  2376: 	PORT_START		/* (0) VBlank */
  2377: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2378: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2379: 
  2380: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_BUTTON4 )
  2381: 
  2382: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_BUTTON4 )
  2383: 
  2384: 	TOAPLAN2_SYSTEM_INPUTS
  2385: 
  2386: 	PORT_START		/* (4) DSWA */
  2387: 	PORT_DIPNAME( 0x0001,	0x0000, "Rapid Fire" )
  2388: 	PORT_DIPSETTING(		0x0001, DEF_STR( Off ) )
  2389: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2390: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2391: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2392: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2393: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2394: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2395: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2396: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2397: 	EUROPEAN_COINAGE_16
  2398: //	NONEUROPEAN_COINAGE_16
  2399: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2400: 
  2401: 	PORT_START		/* (5) DSWB */
  2402: 	DIFFICULTY_16
  2403: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2404: 	PORT_DIPSETTING(		0x0000, "70k and 200k" )
  2405: 	PORT_DIPSETTING(		0x0004, "100k and 250k" )
  2406: 	PORT_DIPSETTING(		0x0008, "100k only" )
  2407: 	PORT_DIPSETTING(		0x000c, "200k only" )
  2408: 	/* Lives are different in this game */
  2409: 	PORT_DIPNAME( 0x0030,	0x0000, DEF_STR( Lives ) )
  2410: 	PORT_DIPSETTING(		0x0030, "2" )
  2411: 	PORT_DIPSETTING(		0x0000, "3" )
  2412: 	PORT_DIPSETTING(		0x0020, "4" )
  2413: 	PORT_DIPSETTING(		0x0010, "5" )
  2414: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2415: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2416: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2417: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2418: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2419: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2420: 
  2421: 	PORT_START		/* (6) Territory Jumper block */
  2422: 	PORT_DIPNAME( 0x07,	0x02, "Territory" )
  2423: 	PORT_DIPSETTING(	0x02, "Europe" )
  2424: 	PORT_DIPSETTING(	0x01, "USA" )
  2425: 	PORT_DIPSETTING(	0x00, "Japan" )
  2426: 	PORT_DIPSETTING(	0x03, "Hong Kong" )
  2427: 	PORT_DIPSETTING(	0x05, "Taiwan" )
  2428: 	PORT_DIPSETTING(	0x06, "Asia" )
  2429: 	PORT_DIPSETTING(	0x04, "Korea" )
  2430: INPUT_PORTS_END
  2431: 
  2432: INPUT_PORTS_START( pipibibs )
  2433: 	PORT_START		/* (0) VBlank */
  2434: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2435: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2436: 
  2437: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2438: 
  2439: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2440: 
  2441: 	TOAPLAN2_SYSTEM_INPUTS
  2442: 
  2443: 	DSWA_8
  2444: 	EUROPEAN_COINAGE_8
  2445: //	NONEUROPEAN_COINAGE_8
  2446: 
  2447: 	PORT_START		/* (5) DSWB */
  2448: 	DIFFICULTY_8
  2449: 	PORT_DIPNAME( 0x0c,	0x00, DEF_STR( Bonus_Life ) )
  2450: 	PORT_DIPSETTING(	0x04, "150k and every 200k" )
  2451: 	PORT_DIPSETTING(	0x00, "200k and every 300k" )
  2452: 	PORT_DIPSETTING(	0x08, "200k only" )
  2453: 	PORT_DIPSETTING(	0x0c, "None" )
  2454: 	LIVES_8
  2455: 	PORT_BITX(	  0x40,	0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2456: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2457: 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
  2458: 	PORT_DIPNAME( 0x80,	0x00, DEF_STR( Unused ) )
  2459: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2460: 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
  2461: 
  2462: 	PORT_START		/* (6) Territory Jumper block */
  2463: 	PORT_DIPNAME( 0x07,	0x06, "Territory" )
  2464: 	PORT_DIPSETTING(	0x06, "Europe" )
  2465: 	PORT_DIPSETTING(	0x04, "USA" )
  2466: 	PORT_DIPSETTING(	0x00, "Japan" )
  2467: 	PORT_DIPSETTING(	0x02, "Hong Kong (Honest Trading Co.)" )
  2468: 	PORT_DIPSETTING(	0x03, "Taiwan" )
  2469: 	PORT_DIPSETTING(	0x01, "Asia" )
  2470: 	PORT_DIPSETTING(	0x07, "Europe (Nova Apparate GMBH & Co)" )
  2471: 	PORT_DIPSETTING(	0x05, "USA (Romstar)" )
  2472: 	PORT_DIPNAME( 0x08,	0x00, "Nudity" )
  2473: 	PORT_DIPSETTING(	0x08, "Low" )
  2474: 	PORT_DIPSETTING(	0x00, "High, but censored" )
  2475: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2476: INPUT_PORTS_END
  2477: 
  2478: INPUT_PORTS_START( whoopee )
  2479: 	PORT_START		/* (0) VBlank */
  2480: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2481: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2482: 
  2483: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2484: 
  2485: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2486: 
  2487: 	TOAPLAN2_SYSTEM_INPUTS
  2488: 
  2489: 	DSWA_8
  2490: //	EUROPEAN_COINAGE_8
  2491: 	NONEUROPEAN_COINAGE_8
  2492: 
  2493: 	PORT_START		/* (5) DSWB */
  2494: 	DIFFICULTY_8
  2495: 	PORT_DIPNAME( 0x0c,	0x00, DEF_STR( Bonus_Life ) )
  2496: 	PORT_DIPSETTING(	0x04, "150k and every 200k" )
  2497: 	PORT_DIPSETTING(	0x00, "200k and every 300k" )
  2498: 	PORT_DIPSETTING(	0x08, "200k only" )
  2499: 	PORT_DIPSETTING(	0x0c, "None" )
  2500: 	LIVES_8
  2501: 	PORT_BITX(	  0x40,	0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2502: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2503: 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
  2504: 	PORT_DIPNAME( 0x80,	0x00, DEF_STR( Unused ) )
  2505: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2506: 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
  2507: 
  2508: 	PORT_START		/* (6) Territory Jumper block */
  2509: 	PORT_DIPNAME( 0x07,	0x00, "Territory" )
  2510: 	PORT_DIPSETTING(	0x06, "Europe" )
  2511: 	PORT_DIPSETTING(	0x04, "USA" )
  2512: 	PORT_DIPSETTING(	0x00, "Japan" )
  2513: 	PORT_DIPSETTING(	0x02, "Hong Kong (Honest Trading Co.)" )
  2514: 	PORT_DIPSETTING(	0x03, "Taiwan" )
  2515: 	PORT_DIPSETTING(	0x01, "Asia" )
  2516: 	PORT_DIPSETTING(	0x07, "Europe (Nova Apparate GMBH & Co)" )
  2517: 	PORT_DIPSETTING(	0x05, "USA (Romstar)" )
  2518: 	PORT_DIPNAME( 0x08,	0x08, "Nudity" )
  2519: 	PORT_DIPSETTING(	0x08, "Low" )
  2520: 	PORT_DIPSETTING(	0x00, "High, but censored" )
  2521: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* bit 0x10 sound ready */
  2522: INPUT_PORTS_END
  2523: 
  2524: INPUT_PORTS_START( pipibibi )
  2525: 	PORT_START		/* (0) VBlank */
  2526: //	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )		/* This video HW */
  2527: //	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )		/* doesnt wait for VBlank */
  2528: 
  2529: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2530: 
  2531: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2532: 
  2533: 	TOAPLAN2_SYSTEM_INPUTS
  2534: 
  2535: 	PORT_START		/* (4) DSWA */
  2536: 	PORT_DIPNAME( 0x01,	0x00, DEF_STR( Unused ) )
  2537: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2538: 	PORT_DIPSETTING(	0x01, DEF_STR( On ) )
  2539: 	/* This video HW doesn't support flip screen */
  2540: //	PORT_DIPNAME( 0x02,	0x00, DEF_STR( Flip_Screen ) )
  2541: //	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2542: //	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
  2543: 	PORT_SERVICE( 0x04,	IP_ACTIVE_HIGH )		/* Service Mode */
  2544: 	PORT_DIPNAME( 0x08,	0x00, DEF_STR( Demo_Sounds ) )
  2545: 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
  2546: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  2547: //	EUROPEAN_COINAGE_8
  2548: 	NONEUROPEAN_COINAGE_8
  2549: 
  2550: 	PORT_START		/* (5) DSWB */
  2551: 	DIFFICULTY_8
  2552: 	PORT_DIPNAME( 0x0c,	0x00, DEF_STR( Bonus_Life ) )
  2553: 	PORT_DIPSETTING(	0x04, "150k and every 200k" )
  2554: 	PORT_DIPSETTING(	0x00, "200k and every 300k" )
  2555: 	PORT_DIPSETTING(	0x08, "200k only" )
  2556: 	PORT_DIPSETTING(	0x0c, "None" )
  2557: 	LIVES_8
  2558: 	PORT_BITX(	  0x40,	0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2559: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2560: 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
  2561: 	PORT_DIPNAME( 0x80,	0x00, DEF_STR( Unused ) )
  2562: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
  2563: 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
  2564: 
  2565: 	PORT_START		/* (6) Territory Jumper block */
  2566: 	PORT_DIPNAME( 0x07,	0x05, "Territory" )
  2567: 	PORT_DIPSETTING(	0x07, "World (Ryouta Kikaku)" )
  2568: 	PORT_DIPSETTING(	0x00, "Japan (Ryouta Kikaku)" )
  2569: 	PORT_DIPSETTING(	0x02, "World" )
  2570: 	PORT_DIPSETTING(	0x05, "Europe" )
  2571: 	PORT_DIPSETTING(	0x04, "USA" )
  2572: 	PORT_DIPSETTING(	0x01, "Hong Kong (Honest Trading Co.)" )
  2573: 	PORT_DIPSETTING(	0x06, "Spain & Portugal (APM Electronics SA)" )
  2574: //	PORT_DIPSETTING(	0x03, "World" )
  2575: 	PORT_DIPNAME( 0x08,	0x00, "Nudity" )
  2576: 	PORT_DIPSETTING(	0x08, "Low" )
  2577: 	PORT_DIPSETTING(	0x00, "High, but censored" )
  2578: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2579: INPUT_PORTS_END
  2580: 
  2581: INPUT_PORTS_START( fixeight )
  2582: 	PORT_START		/* (0) VBlank */
  2583: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2584: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2585: 
  2586: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2587: 
  2588: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2589: 
  2590: 	SNOWBRO2_PLAYER_INPUT( IPF_PLAYER3, IPT_START3, IPT_UNKNOWN )
  2591: 
  2592: 	PORT_START		/* service input is a push-button marked 'Test SW' */
  2593: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN3 )
  2594: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )
  2595: 	PORT_BITX(0x0004, IP_ACTIVE_HIGH, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2596: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
  2597: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )
  2598: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )
  2599: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )
  2600: 	PORT_BIT( 0xff80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2601: 
  2602: #if 0 
  2603: 	PORT_START		/* Fake input, to display message */
  2604: 	PORT_DIPNAME( 0x00,	0x00, "    Press service button" )
  2605: 	PORT_DIPSETTING(	0x00, "" )
  2606: 	PORT_DIPNAME( 0x00,	0x00, "  for game keeping options" )
  2607: 	PORT_DIPSETTING(	0x00, "" )
  2608: 	PORT_DIPNAME( 0x00,	0x00, "" )
  2609: 	PORT_DIPSETTING(	0x00, "" )
  2610: #endif 
  2611: 
  2612: 	PORT_START		/* (4) DSWA */
  2613: 	PORT_DIPNAME( 0x0001,	0x0000, "Maximum Players" )
  2614: 	PORT_DIPSETTING(		0x0000, "2" )
  2615: 	PORT_DIPSETTING(		0x0001, "3" )
  2616: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2617: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2618: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2619: 	PORT_DIPNAME( 0x0004,	0x0004, "Shooting style" )
  2620: 	PORT_DIPSETTING(		0x0004, "Semi-auto" )
  2621: 	PORT_DIPSETTING(		0x0000, "Fully-auto" )
  2622: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2623: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2624: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2625: 	EUROPEAN_COINAGE_16
  2626: //	NONEUROPEAN_COINAGE_16
  2627: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2628: 
  2629: 	PORT_START		/* (5) DSWB */
  2630: 	DIFFICULTY_16
  2631: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2632: 	PORT_DIPSETTING(		0x0004, "300k and every 300k" )
  2633: 	PORT_DIPSETTING(		0x0008, "300k only" )
  2634: 	PORT_DIPSETTING(		0x0000, "500k and every 500k" )
  2635: 	PORT_DIPSETTING(		0x000c, "None" )
  2636: 	LIVES_16
  2637: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2638: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2639: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2640: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2641: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2642: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2643: 
  2644: 	PORT_START		/* (6) Territory Jumper block */
  2645: 	PORT_DIPNAME( 0x0f,	0x09, "Territory" )
  2646: 	PORT_DIPSETTING(	0x09, "Europe" )
  2647: 	PORT_DIPSETTING(	0x08, "Europe (Taito Corp)" )
  2648: 	PORT_DIPSETTING(	0x0b, "USA" )
  2649: 	PORT_DIPSETTING(	0x0a, "USA (Taito America Corp)" )
  2650: 	PORT_DIPSETTING(	0x0e, "Japan" )
  2651: 	PORT_DIPSETTING(	0x0f, "Japan (Taito corp)" )
  2652: 	PORT_DIPSETTING(	0x01, "Korea" )
  2653: 	PORT_DIPSETTING(	0x00, "Korea (Taito Corp)" )
  2654: 	PORT_DIPSETTING(	0x03, "Hong Kong" )
  2655: 	PORT_DIPSETTING(	0x02, "Hong Kong (Taito Corp)" )
  2656: 	PORT_DIPSETTING(	0x05, "Taiwan" )
  2657: 	PORT_DIPSETTING(	0x04, "Taiwan (Taito corp)" )
  2658: 	PORT_DIPSETTING(	0x07, "South East Asia" )
  2659: 	PORT_DIPSETTING(	0x06, "South East Asia (Taito corp)" )
  2660: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2661: INPUT_PORTS_END
  2662: 
  2663: INPUT_PORTS_START( grindstm )
  2664: 	PORT_START		/* (0) VBlank */
  2665: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2666: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2667: 
  2668: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2669: 
  2670: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2671: 
  2672: 	TOAPLAN2_SYSTEM_INPUTS
  2673: 
  2674: 	PORT_START		/* (4) DSWA */
  2675: 	PORT_DIPNAME( 0x0001,	0x0000, DEF_STR( Cabinet ) )
  2676: 	PORT_DIPSETTING(		0x0000, DEF_STR( Upright ) )
  2677: 	PORT_DIPSETTING(		0x0001, DEF_STR( Cocktail ) )
  2678: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2679: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2680: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2681: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2682: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2683: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2684: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2685: 	EUROPEAN_COINAGE_16
  2686: //	NONEUROPEAN_COINAGE_16
  2687: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2688: 
  2689: 	PORT_START		/* (5) DSWB */
  2690: 	DIFFICULTY_16
  2691: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2692: 	PORT_DIPSETTING(		0x0008, "200k only" )
  2693: 	PORT_DIPSETTING(		0x0004, "300k and every 800k" )
  2694: 	PORT_DIPSETTING(		0x0000, "300k and 800k" )
  2695: 	PORT_DIPSETTING(		0x000c, "None" )
  2696: 	LIVES_16
  2697: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2698: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2699: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2700: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2701: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2702: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2703: 
  2704: 	PORT_START		/* (6) Territory Jumper block */
  2705: 	PORT_DIPNAME( 0x0f,	0x08, "Territory" )
  2706: 	PORT_DIPSETTING(	0x08, "Europe" )
  2707: 	PORT_DIPSETTING(	0x0b, "USA" )
  2708: 	PORT_DIPSETTING(	0x01, "Korea" )
  2709: 	PORT_DIPSETTING(	0x03, "Hong Kong" )
  2710: 	PORT_DIPSETTING(	0x05, "Taiwan" )
  2711: 	PORT_DIPSETTING(	0x07, "South East Asia" )
  2712: 	PORT_DIPSETTING(	0x0a, "USA (American Sammy Corporation License)" )
  2713: 	PORT_DIPSETTING(	0x00, "Korea (Unite Trading License)" )
  2714: 	PORT_DIPSETTING(	0x02, "Hong Kong (Charterfield License)" )
  2715: 	PORT_DIPSETTING(	0x04, "Taiwan (Anomoto International Inc License)" )
  2716: 	PORT_DIPSETTING(	0x06, "South East Asia (Charterfield License)" )
  2717: /*	Duplicate settings
  2718: 	PORT_DIPSETTING(	0x09, "Europe" )
  2719: 	PORT_DIPSETTING(	0x0d, "USA" )
  2720: 	PORT_DIPSETTING(	0x0e, "Korea" )
  2721: 	PORT_DIPSETTING(	0x0f, "Korea" )
  2722: 	PORT_DIPSETTING(	0x0c, "USA (American Sammy Corporation License)" )
  2723: */
  2724: 	PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* bit 0x10 sound ready */
  2725: INPUT_PORTS_END
  2726: 
  2727: INPUT_PORTS_START( vfive )
  2728: 	PORT_START		/* (0) VBlank */
  2729: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2730: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2731: 
  2732: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2733: 
  2734: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2735: 
  2736: 	TOAPLAN2_SYSTEM_INPUTS
  2737: 
  2738: 	PORT_START		/* (4) DSWA */
  2739: 	PORT_DIPNAME( 0x0001,	0x0000, DEF_STR( Cabinet ) )
  2740: 	PORT_DIPSETTING(		0x0000, DEF_STR( Upright ) )
  2741: 	PORT_DIPSETTING(		0x0001, DEF_STR( Cocktail ) )
  2742: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2743: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2744: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2745: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2746: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2747: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2748: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2749: 	NONEUROPEAN_COINAGE_16
  2750: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2751: 
  2752: 	PORT_START		/* (5) DSWB */
  2753: 	DIFFICULTY_16
  2754: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2755: 	PORT_DIPSETTING(		0x0008, "200k only" )
  2756: 	PORT_DIPSETTING(		0x0004, "300k and every 800k" )
  2757: 	PORT_DIPSETTING(		0x0000, "300k and 800k" )
  2758: 	PORT_DIPSETTING(		0x000c, "None" )
  2759: 	LIVES_16
  2760: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2761: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2762: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2763: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2764: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2765: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2766: 
  2767: 	PORT_START		/* (6) Territory Jumper block */
  2768: 	/* Territory is forced to Japan in this set. */
  2769: 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* bit 0x10 sound ready */
  2770: INPUT_PORTS_END
  2771: 
  2772: INPUT_PORTS_START( batsugun )
  2773: 	PORT_START		/* (0) VBlank */
  2774: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2775: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2776: 
  2777: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2778: 
  2779: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2780: 
  2781: 	TOAPLAN2_SYSTEM_INPUTS
  2782: 
  2783: 	PORT_START		/* (4) DSWA */
  2784: 	PORT_DIPNAME( 0x0001,	0x0000, "Continue Mode" )
  2785: 	PORT_DIPSETTING(		0x0000, "Normal" )
  2786: 	PORT_DIPSETTING(		0x0001, "Discount" )
  2787: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2788: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2789: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2790: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2791: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2792: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2793: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2794: 	EUROPEAN_COINAGE_16
  2795: //	NONEUROPEAN_COINAGE_16
  2796: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2797: 
  2798: 	PORT_START		/* (5) DSWB */
  2799: 	DIFFICULTY_16
  2800: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2801: 	PORT_DIPSETTING(		0x0004, "500k and every 600k" )
  2802: 	PORT_DIPSETTING(		0x0000, "1000k only" )
  2803: 	PORT_DIPSETTING(		0x0008, "1500k only" )
  2804: 	PORT_DIPSETTING(		0x000c, "None" )
  2805: 	LIVES_16
  2806: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2807: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2808: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2809: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2810: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2811: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2812: 
  2813: 	PORT_START		/* (6) Territory Jumper block */
  2814: 	PORT_DIPNAME( 0x000f,	0x0009, "Territory" )
  2815: 	PORT_DIPSETTING(		0x0009, "Europe" )
  2816: 	PORT_DIPSETTING(		0x000b, "USA" )
  2817: 	PORT_DIPSETTING(		0x000e, "Japan" )
  2818: //	PORT_DIPSETTING(		0x000f, "Japan" )
  2819: 	PORT_DIPSETTING(		0x0001, "Korea" )
  2820: 	PORT_DIPSETTING(		0x0003, "Hong Kong" )
  2821: 	PORT_DIPSETTING(		0x0005, "Taiwan" )
  2822: 	PORT_DIPSETTING(		0x0007, "South East Asia" )
  2823: 	PORT_DIPSETTING(		0x0008, "Europe (Taito Corp License)" )
  2824: 	PORT_DIPSETTING(		0x000a, "USA (Taito Corp License)" )
  2825: 	PORT_DIPSETTING(		0x000c, "Japan (Taito Corp License)" )
  2826: //	PORT_DIPSETTING(		0x000d, "Japan (Taito Corp License)" )
  2827: 	PORT_DIPSETTING(		0x0000, "Korea (Unite Trading License)" )
  2828: 	PORT_DIPSETTING(		0x0002, "Hong Kong (Taito Corp License)" )
  2829: 	PORT_DIPSETTING(		0x0004, "Taiwan (Taito Corp License)" )
  2830: 	PORT_DIPSETTING(		0x0006, "South East Asia (Taito Corp License)" )
  2831: 	PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* bit 0x10 sound ready */
  2832: INPUT_PORTS_END
  2833: 
  2834: INPUT_PORTS_START( snowbro2 )
  2835: 	PORT_START		/* (0) VBlank */
  2836: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2837: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2838: 
  2839: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2840: 
  2841: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2842: 
  2843: 	SNOWBRO2_PLAYER_INPUT( IPF_PLAYER3, IPT_START3, IPT_UNKNOWN )
  2844: 
  2845: 	SNOWBRO2_PLAYER_INPUT( IPF_PLAYER4, IPT_START4, IPT_UNKNOWN )
  2846: 
  2847: 	TOAPLAN2_SYSTEM_INPUTS
  2848: 
  2849: 	PORT_START		/* (6) DSWA */
  2850: 	PORT_DIPNAME( 0x0001,	0x0000, "Continue Mode" )
  2851: 	PORT_DIPSETTING(		0x0000, "Normal" )
  2852: 	PORT_DIPSETTING(		0x0001, "Discount" )
  2853: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2854: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2855: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2856: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2857: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2858: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2859: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2860: 	NONEUROPEAN_COINAGE_16
  2861: 	/*  The following are listed in service mode for European territory,
  2862: 		but are not actually used in game play. */
  2863: //	EUROPEAN_COINAGE_16
  2864: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2865: 
  2866: 	PORT_START		/* (7) DSWB */
  2867: 	DIFFICULTY_16
  2868: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2869: 	PORT_DIPSETTING(		0x0004, "100k and every 500k" )
  2870: 	PORT_DIPSETTING(		0x0000, "100k only" )
  2871: 	PORT_DIPSETTING(		0x0008, "200k only" )
  2872: 	PORT_DIPSETTING(		0x000c, "None" )
  2873: 	/* Lives have one different value */
  2874: 	PORT_DIPNAME( 0x0030,	0x0000, DEF_STR( Lives ) )
  2875: 	PORT_DIPSETTING(		0x0030, "1" )
  2876: 	PORT_DIPSETTING(		0x0020, "2" )
  2877: 	PORT_DIPSETTING(		0x0000, "3" )
  2878: 	PORT_DIPSETTING(		0x0010, "4" )
  2879: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2880: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2881: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2882: 	PORT_DIPNAME( 0x0080,	0x0000, "Maximum Players" )
  2883: 	PORT_DIPSETTING(		0x0080, "2" )
  2884: 	PORT_DIPSETTING(		0x0000, "4" )
  2885: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2886: 
  2887: 	PORT_START		/* (8) Territory Jumper block */
  2888: 	PORT_DIPNAME( 0x1c00,	0x0800, "Territory" )
  2889: 	PORT_DIPSETTING(		0x0800, "Europe" )
  2890: 	PORT_DIPSETTING(		0x0400, "USA" )
  2891: 	PORT_DIPSETTING(		0x0000, "Japan" )
  2892: 	PORT_DIPSETTING(		0x0c00, "Korea" )
  2893: 	PORT_DIPSETTING(		0x1000, "Hong Kong" )
  2894: 	PORT_DIPSETTING(		0x1400, "Taiwan" )
  2895: 	PORT_DIPSETTING(		0x1800, "South East Asia" )
  2896: 	PORT_DIPSETTING(		0x1c00, DEF_STR( Unused ) )
  2897: 	PORT_DIPNAME( 0x2000,	0x0000, "Show All Rights Reserved" )
  2898: 	PORT_DIPSETTING(		0x0000, DEF_STR( No ) )
  2899: 	PORT_DIPSETTING(		0x2000, DEF_STR( Yes ) )
  2900: 	PORT_BIT( 0xc3ff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2901: INPUT_PORTS_END
  2902: 
  2903: INPUT_PORTS_START( mahoudai )
  2904: 	PORT_START		/* (0) VBlank */
  2905: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2906: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2907: 
  2908: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2909: 
  2910: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2911: 
  2912: 	TOAPLAN2_SYSTEM_INPUTS
  2913: 
  2914: 	PORT_START		/* (4) DSWA */
  2915: 	PORT_DIPNAME( 0x0001,	0x0000, DEF_STR( Free_Play ) )
  2916: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2917: 	PORT_DIPSETTING(		0x0001, DEF_STR( On ) )
  2918: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2919: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2920: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2921: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2922: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2923: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2924: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2925: 	NONEUROPEAN_COINAGE_16
  2926: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2927: 
  2928: 	PORT_START		/* (5) DSWB */
  2929: 	DIFFICULTY_16
  2930: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2931: 	PORT_DIPSETTING(		0x0004, "200k and 500k" )
  2932: 	PORT_DIPSETTING(		0x0000, "Every 300k" )
  2933: 	PORT_DIPSETTING(		0x0008, "200k only" )
  2934: 	PORT_DIPSETTING(		0x000c, "None" )
  2935: 	LIVES_16
  2936: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2937: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2938: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2939: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2940: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2941: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2942: 
  2943: 	PORT_START		/* (6) Territory Jumper block */
  2944: 	PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* not used, it seems */
  2945: INPUT_PORTS_END
  2946: 
  2947: INPUT_PORTS_START( shippumd )
  2948: 	PORT_START		/* (0) VBlank */
  2949: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  2950: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2951: 
  2952: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2953: 
  2954: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2955: 
  2956: 	TOAPLAN2_SYSTEM_INPUTS
  2957: 
  2958: 	PORT_START		/* (4) DSWA */
  2959: 	PORT_DIPNAME( 0x0001,	0x0000, DEF_STR( Free_Play ) )
  2960: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2961: 	PORT_DIPSETTING(		0x0001, DEF_STR( On ) )
  2962: 	PORT_DIPNAME( 0x0002,	0x0000, DEF_STR( Flip_Screen ) )
  2963: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2964: 	PORT_DIPSETTING(		0x0002, DEF_STR( On ) )
  2965: 	PORT_SERVICE( 0x0004,	IP_ACTIVE_HIGH )		/* Service Mode */
  2966: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  2967: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  2968: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  2969: 	NONEUROPEAN_COINAGE_16
  2970: 	/*  When Territory is set to Europe, the Coin A and B have
  2971: 		different values */
  2972: //	EUROPEAN_COINAGE_16
  2973: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2974: 
  2975: 	PORT_START		/* (5) DSWB */
  2976: 	DIFFICULTY_16
  2977: 	PORT_DIPNAME( 0x000c,	0x0000, DEF_STR( Bonus_Life ) )
  2978: 	PORT_DIPSETTING(		0x0004, "200k and 500k" )
  2979: 	PORT_DIPSETTING(		0x0000, "Every 300k" )
  2980: 	PORT_DIPSETTING(		0x0008, "200k only" )
  2981: 	PORT_DIPSETTING(		0x000c, "None" )
  2982: 	LIVES_16
  2983: 	PORT_BITX(	  0x0040,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2984: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  2985: 	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  2986: 	PORT_DIPNAME( 0x0080,	0x0000, "Allow Continue" )
  2987: 	PORT_DIPSETTING(		0x0080, DEF_STR( No ) )
  2988: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  2989: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  2990: 
  2991: 	PORT_START		/* (6) Territory Jumper block */
  2992: 	/* Title screen is wrong when set to other countries */
  2993: 	/* It suggests text ROM may be different for other territories */
  2994: 	PORT_DIPNAME( 0x000e,	0x0000, "Territory" )
  2995: 	PORT_DIPSETTING(		0x0004, "Europe" )
  2996: 	PORT_DIPSETTING(		0x0002, "USA" )
  2997: 	PORT_DIPSETTING(		0x0000, "Japan" )
  2998: 	PORT_DIPSETTING(		0x0006, "South East Asia" )
  2999: 	PORT_DIPSETTING(		0x0008, "China" )
  3000: 	PORT_DIPSETTING(		0x000a, "Korea" )
  3001: 	PORT_DIPSETTING(		0x000c, "Hong Kong" )
  3002: 	PORT_DIPSETTING(		0x000e, "Taiwan" )
  3003: 	PORT_BIT( 0xfff1, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3004: INPUT_PORTS_END
  3005: 
  3006: INPUT_PORTS_START( battleg )
  3007: 	PORT_START		/* (0) VBlank */
  3008: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  3009: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3010: 
  3011: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  3012: 
  3013: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  3014: 
  3015: 	TOAPLAN2_SYSTEM_INPUTS
  3016: 
  3017: 	PORT_START		/* (4) DSWA */
  3018: 	PORT_SERVICE( 0x0001,	IP_ACTIVE_HIGH )		/* Service Mode */
  3019: 	PORT_DIPNAME( 0x0002,	0x0000, "Credits to Start" )
  3020: 	PORT_DIPSETTING(		0x0000, "1" )
  3021: 	PORT_DIPSETTING(		0x0002, "2" )
  3022: 	PORT_DIPNAME( 0x001c,	0x0000, DEF_STR( Coin_A ) )
  3023: 	PORT_DIPSETTING(		0x0018, DEF_STR( 4C_1C ) )
  3024: 	PORT_DIPSETTING(		0x0014, DEF_STR( 3C_1C ) )
  3025: 	PORT_DIPSETTING(		0x0010, DEF_STR( 2C_1C ) )
  3026: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3027: 	PORT_DIPSETTING(		0x0004, DEF_STR( 1C_2C ) )
  3028: 	PORT_DIPSETTING(		0x0008, DEF_STR( 1C_3C ) )
  3029: 	PORT_DIPSETTING(		0x000c, DEF_STR( 1C_4C ) )
  3030: 	PORT_DIPSETTING(		0x001c, DEF_STR( Free_Play ) )
  3031: 	PORT_DIPNAME( 0x00e0,	0x0000, DEF_STR( Coin_B ) )
  3032: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 4C_1C ) )
  3033: 	PORT_DIPSETTING(		0x00a0, DEF_STR( 3C_1C ) )
  3034: 	PORT_DIPSETTING(		0x0080, DEF_STR( 2C_1C ) )
  3035: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3036: 	PORT_DIPSETTING(		0x0020, DEF_STR( 1C_2C ) )
  3037: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_3C ) )
  3038: 	PORT_DIPSETTING(		0x0060, DEF_STR( 1C_4C ) )
  3039: //	PORT_DIPSETTING(		0x00e0, DEF_STR( 1C_1C ) )
  3040: 	/*  When Coin_A is set to Free_Play, Coin_A becomes Coin_A and Coin_B,
  3041: 		and Coin_B becomes the following dips */
  3042: //	PORT_DIPNAME( 0x0020,	0x0000, "Joystick Mode" )
  3043: //	PORT_DIPSETTING(		0x0000, "90 degrees ACW" )
  3044: //	PORT_DIPSETTING(		0x0020, "Normal" )
  3045: //	PORT_DIPNAME( 0x0040,	0x0000, "Effect" )
  3046: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3047: //	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  3048: //	PORT_DIPNAME( 0x0080,	0x0000, "Music" )
  3049: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3050: //	PORT_DIPSETTING(		0x0080, DEF_STR( On ) )
  3051: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3052: 
  3053: 	PORT_START		/* (5) DSWB */
  3054: 	DIFFICULTY_16
  3055: 	PORT_DIPNAME( 0x0004,	0x0000, DEF_STR( Flip_Screen ) )
  3056: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3057: 	PORT_DIPSETTING(		0x0004, DEF_STR( On ) )
  3058: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  3059: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  3060: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3061: 	PORT_DIPNAME( 0x0070,	0x0000, DEF_STR( Lives ) )
  3062: 	PORT_DIPSETTING(		0x0030, "1" )
  3063: 	PORT_DIPSETTING(		0x0020, "2" )
  3064: 	PORT_DIPSETTING(		0x0000, "3" )
  3065: 	PORT_DIPSETTING(		0x0010, "4" )
  3066: 	PORT_DIPSETTING(		0x0040, "5" )
  3067: 	PORT_DIPSETTING(		0x0050, "6" )
  3068: 	PORT_BITX( 0,			0x0060, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite", 0, 0 )
  3069: //	PORT_BITX( 0,			0x0070, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Invulnerability", 0, 0 )
  3070: 	PORT_DIPNAME( 0x0080,	0x0000, DEF_STR( Bonus_Life ) )
  3071: 	/* Bonus_Life for Non European territories */
  3072: //	PORT_DIPSETTING(		0x0000, "Every 1000k" )
  3073: //	PORT_DIPSETTING(		0x0080, "1000k and 2000k" )
  3074: 	/* Bonus_Life values for European territories */
  3075: 	PORT_DIPSETTING(		0x0080, "Every 2000k" )
  3076: 	PORT_DIPSETTING(		0x0000, "None" )
  3077: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3078: 
  3079: 	PORT_START		/* (6) DSWC / Territory Jumper block */
  3080: 	PORT_DIPNAME( 0x0004,	0x0000, "Allow Continue" )
  3081: 	PORT_DIPSETTING(		0x0004, DEF_STR( No ) )
  3082: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  3083: 	PORT_DIPNAME( 0x0008,	0x0000, "Stage Edit" )
  3084: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3085: 	PORT_DIPSETTING(		0x0008, DEF_STR( On ) )
  3086: 	PORT_DIPNAME( 0x0003,	0x0001, "Territory" )
  3087: 	PORT_DIPSETTING(		0x0001, "Denmark (German Tuning license)" )
  3088: 	/* These Settings End Up Reporting ROM-0 as BAD */
  3089: //	PORT_DIPSETTING(		0x0002, "USA (Fabtek license)" )
  3090: //	PORT_DIPSETTING(		0x0000, "Japan" )
  3091: 	PORT_DIPSETTING(		0x0003, "China" )
  3092: 	PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3093: INPUT_PORTS_END
  3094: 
  3095: INPUT_PORTS_START( battlega )
  3096: 	PORT_START		/* (0) VBlank */
  3097: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  3098: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3099: 
  3100: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  3101: 
  3102: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  3103: 
  3104: 	TOAPLAN2_SYSTEM_INPUTS
  3105: 
  3106: 	PORT_START		/* (4) DSWA */
  3107: 	PORT_SERVICE( 0x0001,	IP_ACTIVE_HIGH )		/* Service Mode */
  3108: 	PORT_DIPNAME( 0x0002,	0x0000, "Credits to Start" )
  3109: 	PORT_DIPSETTING(		0x0000, "1" )
  3110: 	PORT_DIPSETTING(		0x0002, "2" )
  3111: 	PORT_DIPNAME( 0x001c,	0x0000, DEF_STR( Coin_A ) )
  3112: 	PORT_DIPSETTING(		0x0018, DEF_STR( 4C_1C ) )
  3113: 	PORT_DIPSETTING(		0x0014, DEF_STR( 3C_1C ) )
  3114: 	PORT_DIPSETTING(		0x0010, DEF_STR( 2C_1C ) )
  3115: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3116: 	PORT_DIPSETTING(		0x0004, DEF_STR( 1C_2C ) )
  3117: 	PORT_DIPSETTING(		0x0008, DEF_STR( 1C_3C ) )
  3118: 	PORT_DIPSETTING(		0x000c, DEF_STR( 1C_4C ) )
  3119: 	PORT_DIPSETTING(		0x001c, DEF_STR( Free_Play ) )
  3120: 	PORT_DIPNAME( 0x00e0,	0x0000, DEF_STR( Coin_B ) )
  3121: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 4C_1C ) )
  3122: 	PORT_DIPSETTING(		0x00a0, DEF_STR( 3C_1C ) )
  3123: 	PORT_DIPSETTING(		0x0080, DEF_STR( 2C_1C ) )
  3124: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3125: 	PORT_DIPSETTING(		0x0020, DEF_STR( 1C_2C ) )
  3126: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_3C ) )
  3127: 	PORT_DIPSETTING(		0x0060, DEF_STR( 1C_4C ) )
  3128: //	PORT_DIPSETTING(		0x00e0, DEF_STR( 1C_1C ) )
  3129: 	/*  When Coin_A is set to Free_Play, Coin_A becomes Coin_A and Coin_B,
  3130: 		and Coin_B becomes the following dips */
  3131: //	PORT_DIPNAME( 0x0020,	0x0000, "Joystick Mode" )
  3132: //	PORT_DIPSETTING(		0x0000, "90 degrees ACW" )
  3133: //	PORT_DIPSETTING(		0x0020, "Normal" )
  3134: //	PORT_DIPNAME( 0x0040,	0x0000, "Effect" )
  3135: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3136: //	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  3137: //	PORT_DIPNAME( 0x0080,	0x0000, "Music" )
  3138: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3139: //	PORT_DIPSETTING(		0x0080, DEF_STR( On ) )
  3140: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3141: 
  3142: 	PORT_START		/* (5) DSWB */
  3143: 	DIFFICULTY_16
  3144: 	PORT_DIPNAME( 0x0004,	0x0000, DEF_STR( Flip_Screen ) )
  3145: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3146: 	PORT_DIPSETTING(		0x0004, DEF_STR( On ) )
  3147: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  3148: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  3149: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3150: 	PORT_DIPNAME( 0x0070,	0x0000, DEF_STR( Lives ) )
  3151: 	PORT_DIPSETTING(		0x0030, "1" )
  3152: 	PORT_DIPSETTING(		0x0020, "2" )
  3153: 	PORT_DIPSETTING(		0x0000, "3" )
  3154: 	PORT_DIPSETTING(		0x0010, "4" )
  3155: 	PORT_DIPSETTING(		0x0040, "5" )
  3156: 	PORT_DIPSETTING(		0x0050, "6" )
  3157: 	PORT_BITX( 0,			0x0060, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite", 0, 0 )
  3158: //	PORT_BITX( 0,			0x0070, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Invulnerability", 0, 0 )
  3159: 	PORT_DIPNAME( 0x0080,	0x0000, DEF_STR( Bonus_Life ) )
  3160: 	/* Bonus_Life for Non European territories */
  3161: //	PORT_DIPSETTING(		0x0000, "Every 1000k" )
  3162: //	PORT_DIPSETTING(		0x0080, "1000k and 2000k" )
  3163: 	/* Bonus_Life values for European territories */
  3164: 	PORT_DIPSETTING(		0x0080, "Every 2000k" )
  3165: 	PORT_DIPSETTING(		0x0000, "None" )
  3166: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3167: 
  3168: 	PORT_START		/* (6) DSWC / Territory Jumper block */
  3169: 	PORT_DIPNAME( 0x0004,	0x0000, "Allow Continue" )
  3170: 	PORT_DIPSETTING(		0x0004, DEF_STR( No ) )
  3171: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  3172: 	PORT_DIPNAME( 0x0008,	0x0000, "Stage Edit" )
  3173: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3174: 	PORT_DIPSETTING(		0x0008, DEF_STR( On ) )
  3175: 	PORT_DIPNAME( 0x0003,	0x0001, "Territory" )
  3176: 	PORT_DIPSETTING(		0x0001, "Europe (German Tuning license)" )
  3177: 	PORT_DIPSETTING(		0x0002, "USA (Fabtek license)" )
  3178: 	PORT_DIPSETTING(		0x0000, "Japan" )
  3179: 	PORT_DIPSETTING(		0x0003, "Asia" )
  3180: 	PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3181: INPUT_PORTS_END
  3182: 
  3183: INPUT_PORTS_START( battlegb )
  3184: 	PORT_START		/* (0) VBlank */
  3185: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  3186: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3187: 
  3188: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  3189: 
  3190: 	TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  3191: 
  3192: 	TOAPLAN2_SYSTEM_INPUTS
  3193: 
  3194: 	PORT_START		/* (4) DSWA */
  3195: 	PORT_SERVICE( 0x0001,	IP_ACTIVE_HIGH )		/* Service Mode */
  3196: 	PORT_DIPNAME( 0x0002,	0x0000, "Credits to Start" )
  3197: 	PORT_DIPSETTING(		0x0000, "1" )
  3198: 	PORT_DIPSETTING(		0x0002, "2" )
  3199: 	PORT_DIPNAME( 0x001c,	0x0000, DEF_STR( Coin_A ) )
  3200: 	PORT_DIPSETTING(		0x0018, DEF_STR( 4C_1C ) )
  3201: 	PORT_DIPSETTING(		0x0014, DEF_STR( 3C_1C ) )
  3202: 	PORT_DIPSETTING(		0x0010, DEF_STR( 2C_1C ) )
  3203: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3204: 	PORT_DIPSETTING(		0x0004, DEF_STR( 1C_2C ) )
  3205: 	PORT_DIPSETTING(		0x0008, DEF_STR( 1C_3C ) )
  3206: 	PORT_DIPSETTING(		0x000c, DEF_STR( 1C_4C ) )
  3207: 	PORT_DIPSETTING(		0x001c, DEF_STR( Free_Play ) )
  3208: 	PORT_DIPNAME( 0x00e0,	0x0000, DEF_STR( Coin_B ) )
  3209: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 4C_1C ) )
  3210: 	PORT_DIPSETTING(		0x00a0, DEF_STR( 3C_1C ) )
  3211: 	PORT_DIPSETTING(		0x0080, DEF_STR( 2C_1C ) )
  3212: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3213: 	PORT_DIPSETTING(		0x0020, DEF_STR( 1C_2C ) )
  3214: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_3C ) )
  3215: 	PORT_DIPSETTING(		0x0060, DEF_STR( 1C_4C ) )
  3216: //	PORT_DIPSETTING(		0x00e0, DEF_STR( 1C_1C ) )
  3217: 	/*  When Coin_A is set to Free_Play, Coin_A becomes Coin_A and Coin_B,
  3218: 		and Coin_B becomes the following dips */
  3219: //	PORT_DIPNAME( 0x0020,	0x0000, "Joystick Mode" )
  3220: //	PORT_DIPSETTING(		0x0000, "90 degrees ACW" )
  3221: //	PORT_DIPSETTING(		0x0020, "Normal" )
  3222: //	PORT_DIPNAME( 0x0040,	0x0000, "Effect" )
  3223: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3224: //	PORT_DIPSETTING(		0x0040, DEF_STR( On ) )
  3225: //	PORT_DIPNAME( 0x0080,	0x0000, "Music" )
  3226: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3227: //	PORT_DIPSETTING(		0x0080, DEF_STR( On ) )
  3228: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3229: 
  3230: 	PORT_START		/* (5) DSWB */
  3231: 	DIFFICULTY_16
  3232: 	PORT_DIPNAME( 0x0004,	0x0000, DEF_STR( Flip_Screen ) )
  3233: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3234: 	PORT_DIPSETTING(		0x0004, DEF_STR( On ) )
  3235: 	PORT_DIPNAME( 0x0008,	0x0000, DEF_STR( Demo_Sounds ) )
  3236: 	PORT_DIPSETTING(		0x0008, DEF_STR( Off ) )
  3237: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3238: 	PORT_DIPNAME( 0x0070,	0x0000, DEF_STR( Lives ) )
  3239: 	PORT_DIPSETTING(		0x0030, "1" )
  3240: 	PORT_DIPSETTING(		0x0020, "2" )
  3241: 	PORT_DIPSETTING(		0x0000, "3" )
  3242: 	PORT_DIPSETTING(		0x0010, "4" )
  3243: 	PORT_DIPSETTING(		0x0040, "5" )
  3244: 	PORT_DIPSETTING(		0x0050, "6" )
  3245: 	PORT_BITX( 0,			0x0060, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite", 0, 0 )
  3246: //	PORT_BITX( 0,			0x0070, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Invulnerability", 0, 0 )
  3247: 	PORT_DIPNAME( 0x0080,	0x0000, DEF_STR( Bonus_Life ) )
  3248: 	/* Bonus_Life for Non European territories */
  3249: //	PORT_DIPSETTING(		0x0000, "Every 1000k" )
  3250: //	PORT_DIPSETTING(		0x0080, "1000k and 2000k" )
  3251: 	/* Bonus_Life values for European territories */
  3252: 	PORT_DIPSETTING(		0x0080, "Every 2000k" )
  3253: 	PORT_DIPSETTING(		0x0000, "None" )
  3254: 	PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3255: 
  3256: 	PORT_START		/* (6) DSWC / Territory Jumper block */
  3257: 	PORT_DIPNAME( 0x0004,	0x0000, "Allow Continue" )
  3258: 	PORT_DIPSETTING(		0x0004, DEF_STR( No ) )
  3259: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  3260: 	PORT_DIPNAME( 0x0008,	0x0000, "Stage Edit" )
  3261: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3262: 	PORT_DIPSETTING(		0x0008, DEF_STR( On ) )
  3263: 	PORT_DIPNAME( 0x0003,	0x0001, "Territory" )
  3264: 	PORT_DIPSETTING(		0x0001, "Austria (German Tuning license)" )
  3265: 	/* These Settings End Up Reporting ROM-0 as BAD */
  3266: //	PORT_DIPSETTING(		0x0002, "USA (Fabtek license)" )
  3267: //	PORT_DIPSETTING(		0x0000, "Japan" )
  3268: 	PORT_DIPSETTING(		0x0003, "Hong Kong" )
  3269: 	PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3270: INPUT_PORTS_END
  3271: 
  3272: INPUT_PORTS_START( batrider )
  3273: 	PORT_START		/* (0) VBlank */
  3274: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  3275: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3276: 
  3277: 	PORT_START		/* (1) Player Inputs */
  3278: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  3279: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  3280: 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  3281: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  3282: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
  3283: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
  3284: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
  3285: 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  3286: 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  3287: 	PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  3288: 	PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  3289: 	PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  3290: 	PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
  3291: 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
  3292: 	PORT_BIT( 0x8080, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3293: 
  3294: 	PORT_START		/* (2) Coin/System and DSWC */
  3295: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN3 )
  3296: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )
  3297: 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_SERVICE1 )
  3298: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
  3299: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )
  3300: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )
  3301: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )
  3302: 	PORT_DIPNAME( 0x0100,	0x0000, DEF_STR( Flip_Screen ) )
  3303: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3304: 	PORT_DIPSETTING(		0x0100, DEF_STR( On ) )
  3305: 	PORT_DIPNAME( 0x0200,	0x0000, DEF_STR( Demo_Sounds ) )
  3306: 	PORT_DIPSETTING(		0x0200, DEF_STR( Off ) )
  3307: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3308: 	PORT_DIPNAME( 0x0400,	0x0000, "Stage Edit" )
  3309: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3310: 	PORT_DIPSETTING(		0x0400, DEF_STR( On ) )
  3311: 	PORT_DIPNAME( 0x0800,	0x0000, "Allow Continue" )
  3312: 	PORT_DIPSETTING(		0x0800, DEF_STR( No ) )
  3313: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  3314: 	PORT_BITX(	  0x1000,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  3315: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3316: 	PORT_DIPSETTING(		0x1000, DEF_STR( On ) )
  3317: 	/*  These Dips are showed only when Coin_A is set to Free_Play.
  3318: 		They are the last 3 Unused dips. Seems to be debug options */
  3319: //	PORT_DIPNAME( 0x2000,	0x0000, "Guest Player" )
  3320: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3321: //	PORT_DIPSETTING(		0x2000, DEF_STR( On ) )
  3322: //	PORT_DIPNAME( 0x4000,	0x0000, "Player Select" )
  3323: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3324: //	PORT_DIPSETTING(		0x4000, DEF_STR( On ) )
  3325: //	PORT_DIPNAME( 0x8000,	0x0000, "Special Course" )
  3326: //	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3327: //	PORT_DIPSETTING(		0x8000, DEF_STR( On ) )
  3328: 	PORT_DIPNAME( 0x2000,	0x0000, DEF_STR( Unused ) )
  3329: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3330: 	PORT_DIPSETTING(		0x2000, DEF_STR( On ) )
  3331: 	PORT_DIPNAME( 0x4000,	0x0000, DEF_STR( Unused ) )
  3332: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3333: 	PORT_DIPSETTING(		0x4000, DEF_STR( On ) )
  3334: 	PORT_DIPNAME( 0x8000,	0x0000, DEF_STR( Unused ) )
  3335: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3336: 	PORT_DIPSETTING(		0x8000, DEF_STR( On ) )
  3337: 
  3338: 	PORT_START		/* (3) DSWA and DSWB */
  3339: 	PORT_SERVICE( 0x0001,	IP_ACTIVE_HIGH )		/* Service Mode */
  3340: 	PORT_DIPNAME( 0x0002,	0x0000, "Credits to Start" )
  3341: 	PORT_DIPSETTING(		0x0000, "1" )
  3342: 	PORT_DIPSETTING(		0x0002, "2" )
  3343: 	/* When Coin_A is set to Free_Play, dip 0x0002 becomes: */
  3344: //	PORT_DIPNAME( 0x0002,	0x0000, "Joystick Mode" )
  3345: //	PORT_DIPSETTING(		0x0000, "Normal" )
  3346: //	PORT_DIPSETTING(		0x0002, "90 degrees ACW" )
  3347: 	PORT_DIPNAME( 0x001c,	0x0000, DEF_STR( Coin_A ) )
  3348: 	PORT_DIPSETTING(		0x0018, DEF_STR( 4C_1C ) )
  3349: 	PORT_DIPSETTING(		0x0014, DEF_STR( 3C_1C ) )
  3350: 	PORT_DIPSETTING(		0x0010, DEF_STR( 2C_1C ) )
  3351: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3352: 	PORT_DIPSETTING(		0x0004, DEF_STR( 1C_2C ) )
  3353: 	PORT_DIPSETTING(		0x0008, DEF_STR( 1C_3C ) )
  3354: 	PORT_DIPSETTING(		0x000c, DEF_STR( 1C_4C ) )
  3355: 	PORT_DIPSETTING(		0x001c, DEF_STR( Free_Play ) )
  3356: 	PORT_DIPNAME( 0x00e0,	0x0000, DEF_STR( Coin_B ) )
  3357: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 4C_1C ) )
  3358: 	PORT_DIPSETTING(		0x00a0, DEF_STR( 3C_1C ) )
  3359: 	PORT_DIPSETTING(		0x0080, DEF_STR( 2C_1C ) )
  3360: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3361: 	PORT_DIPSETTING(		0x0020, DEF_STR( 1C_2C ) )
  3362: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_3C ) )
  3363: 	PORT_DIPSETTING(		0x0060, DEF_STR( 1C_4C ) )
  3364: //	PORT_DIPSETTING(		0x00e0, DEF_STR( 1C_1C ) )
  3365: 	/* Coin_B becomes the following dips, when Coin_A is set to Free_Play */
  3366: //	PORT_DIPNAME( 0x0020,	0x0000, "Hit Score" )
  3367: //	PORT_DIPSETTING(		0x0020, DEF_STR( Off ) )
  3368: //	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3369: //	PORT_DIPNAME( 0x0040,	0x0000, "Sound Effect" )
  3370: //	PORT_DIPSETTING(		0x0040, DEF_STR( Off ) )
  3371: //	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3372: //	PORT_DIPNAME( 0x0080,	0x0000, "Music" )
  3373: //	PORT_DIPSETTING(		0x0080, DEF_STR( Off ) )
  3374: //	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3375: 	PORT_DIPNAME( 0x0300,	0x0000, DEF_STR( Difficulty ) )
  3376: 	PORT_DIPSETTING(		0x0100, "Easy" )
  3377: 	PORT_DIPSETTING(		0x0000, "Medium" )
  3378: 	PORT_DIPSETTING(		0x0200, "Hard" )
  3379: 	PORT_DIPSETTING(		0x0300, "Hardest" )
  3380: 	PORT_DIPNAME( 0x0c00,	0x0000, "Timer" )
  3381: 	PORT_DIPSETTING(		0x0400, "Easy" )
  3382: 	PORT_DIPSETTING(		0x0000, "Medium" )
  3383: 	PORT_DIPSETTING(		0x0800, "Hard" )
  3384: 	PORT_DIPSETTING(		0x0c00, "Hardest" )
  3385: 	PORT_DIPNAME( 0x3000,	0x0000, DEF_STR( Lives ) )
  3386: 	PORT_DIPSETTING(		0x3000, "1" )
  3387: 	PORT_DIPSETTING(		0x2000, "2" )
  3388: 	PORT_DIPSETTING(		0x0000, "3" )
  3389: 	PORT_DIPSETTING(		0x1000, "4" )
  3390: 	PORT_DIPNAME( 0xc000,	0x0000, DEF_STR( Bonus_Life ) )
  3391: 	PORT_DIPSETTING(		0x4000, "Every 1000k" )
  3392: 	PORT_DIPSETTING(		0x0000, "Every 1500k" )
  3393: 	PORT_DIPSETTING(		0x8000, "Every 2000k" )
  3394: 	PORT_DIPSETTING(		0xc000, "None" )
  3395: INPUT_PORTS_END
  3396: 
  3397: INPUT_PORTS_START( bbakraid )
  3398: 	PORT_START		/* (0) VBlank */
  3399: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
  3400: 	PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3401: 
  3402: 	PORT_START		/* (1) Player Inputs */
  3403: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  3404: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  3405: 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  3406: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  3407: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
  3408: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
  3409: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
  3410: 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  3411: 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  3412: 	PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  3413: 	PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  3414: 	PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  3415: 	PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
  3416: 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
  3417: 	PORT_BIT( 0x8080, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  3418: 
  3419: 	PORT_START		/* (2) Coin/System and DSW-3 */
  3420: 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN3 )
  3421: 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )
  3422: 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_SERVICE1 )
  3423: 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
  3424: 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )
  3425: 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )
  3426: 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )
  3427: 	PORT_DIPNAME( 0x0100,	0x0000, DEF_STR( Flip_Screen ) )
  3428: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3429: 	PORT_DIPSETTING(		0x0100, DEF_STR( On ) )
  3430: 	PORT_DIPNAME( 0x0200,	0x0000, DEF_STR( Demo_Sounds ) )
  3431: 	PORT_DIPSETTING(		0x0200, DEF_STR( Off ) )
  3432: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3433: 	PORT_DIPNAME( 0x0400,	0x0000, "Stage Edit" )
  3434: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3435: 	PORT_DIPSETTING(		0x0400, DEF_STR( On ) )
  3436: 	PORT_DIPNAME( 0x0800,	0x0000, "Allow Continue" )
  3437: 	PORT_DIPSETTING(		0x0800, DEF_STR( No ) )
  3438: 	PORT_DIPSETTING(		0x0000, DEF_STR( Yes ) )
  3439: 	PORT_BITX(	  0x1000,	0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  3440: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3441: 	PORT_DIPSETTING(		0x1000, DEF_STR( On ) )
  3442: 	PORT_DIPNAME( 0x2000,	0x0000, "Save Scores" )
  3443: 	PORT_DIPSETTING(		0x2000, DEF_STR( Off ) )
  3444: 	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3445: 	PORT_DIPNAME( 0x4000,	0x0000, DEF_STR( Unused ) )
  3446: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3447: 	PORT_DIPSETTING(		0x4000, DEF_STR( On ) )
  3448: 	PORT_DIPNAME( 0x8000,	0x0000, DEF_STR( Unused ) )
  3449: 	PORT_DIPSETTING(		0x0000, DEF_STR( Off ) )
  3450: 	PORT_DIPSETTING(		0x8000, DEF_STR( On ) )
  3451: 
  3452: 	PORT_START		/* (3) DSWA and DSWB */
  3453: 	PORT_SERVICE( 0x0001,	IP_ACTIVE_HIGH )		/* Service Mode */
  3454: 	PORT_DIPNAME( 0x0002,	0x0000, "Credits to Start" )
  3455: 	PORT_DIPSETTING(		0x0000, "1" )
  3456: 	PORT_DIPSETTING(		0x0002, "2" )
  3457: 	/* When Coin_A is set to Free_Play, dip 0x0002 becomes: */
  3458: //	PORT_DIPNAME( 0x0002,	0x0000, "Joystick Mode" )
  3459: //	PORT_DIPSETTING(		0x0000, "Normal" )
  3460: //	PORT_DIPSETTING(		0x0002, "90 degrees ACW" )
  3461: 	PORT_DIPNAME( 0x001c,	0x0000, DEF_STR( Coin_A ) )
  3462: 	PORT_DIPSETTING(		0x0018, DEF_STR( 4C_1C ) )
  3463: 	PORT_DIPSETTING(		0x0014, DEF_STR( 3C_1C ) )
  3464: 	PORT_DIPSETTING(		0x0010, DEF_STR( 2C_1C ) )
  3465: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3466: 	PORT_DIPSETTING(		0x0004, DEF_STR( 1C_2C ) )
  3467: 	PORT_DIPSETTING(		0x0008, DEF_STR( 1C_3C ) )
  3468: 	PORT_DIPSETTING(		0x000c, DEF_STR( 1C_4C ) )
  3469: 	PORT_DIPSETTING(		0x001c, DEF_STR( Free_Play ) )
  3470: 	PORT_DIPNAME( 0x00e0,	0x0000, DEF_STR( Coin_B ) )
  3471: 	PORT_DIPSETTING(		0x00c0, DEF_STR( 4C_1C ) )
  3472: 	PORT_DIPSETTING(		0x00a0, DEF_STR( 3C_1C ) )
  3473: 	PORT_DIPSETTING(		0x0080, DEF_STR( 2C_1C ) )
  3474: 	PORT_DIPSETTING(		0x0000, DEF_STR( 1C_1C ) )
  3475: 	PORT_DIPSETTING(		0x0020, DEF_STR( 1C_2C ) )
  3476: 	PORT_DIPSETTING(		0x0040, DEF_STR( 1C_3C ) )
  3477: 	PORT_DIPSETTING(		0x0060, DEF_STR( 1C_4C ) )
  3478: //	PORT_DIPSETTING(		0x00e0, DEF_STR( 1C_1C ) )
  3479: 	/* Coin_B becomes the following dips, when Coin_A is set to Free_Play */
  3480: 	/* Coin_B slot also behaves in freeplay mode when Coin_A is in freeplay */
  3481: //	PORT_DIPNAME( 0x0020,	0x0000, "Hit Score" )
  3482: //	PORT_DIPSETTING(		0x0020, DEF_STR( Off ) )
  3483: //	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3484: //	PORT_DIPNAME( 0x0040,	0x0000, "Sound Effect" )
  3485: //	PORT_DIPSETTING(		0x0040, DEF_STR( Off ) )
  3486: //	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3487: //	PORT_DIPNAME( 0x0080,	0x0000, "Music" )
  3488: //	PORT_DIPSETTING(		0x0080, DEF_STR( Off ) )
  3489: //	PORT_DIPSETTING(		0x0000, DEF_STR( On ) )
  3490: 	PORT_DIPNAME( 0x0300,	0x0000, DEF_STR( Difficulty ) )
  3491: 	PORT_DIPSETTING(		0x0100, "Easy" )
  3492: 	PORT_DIPSETTING(		0x0000, "Medium" )
  3493: 	PORT_DIPSETTING(		0x0200, "Hard" )
  3494: 	PORT_DIPSETTING(		0x0300, "Hardest" )
  3495: 	PORT_DIPNAME( 0x0c00,	0x0000, "Timer" )
  3496: 	PORT_DIPSETTING(		0x0400, "Low" )
  3497: 	PORT_DIPSETTING(		0x0000, "Medium" )
  3498: 	PORT_DIPSETTING(		0x0800, "High" )
  3499: 	PORT_DIPSETTING(		0x0c00, "Highest" )
  3500: 	PORT_DIPNAME( 0x3000,	0x0000, DEF_STR( Lives ) )
  3501: 	PORT_DIPSETTING(		0x3000, "1" )
  3502: 	PORT_DIPSETTING(		0x2000, "2" )
  3503: 	PORT_DIPSETTING(		0x0000, "3" )
  3504: 	PORT_DIPSETTING(		0x1000, "4" )
  3505: 	PORT_DIPNAME( 0xc000,	0x0000, DEF_STR( Bonus_Life ) )
  3506: 	PORT_DIPSETTING(		0x0000, "Every 200k" )
  3507: 	PORT_DIPSETTING(		0x4000, "Every 300k" )
  3508: 	PORT_DIPSETTING(		0x8000, "Every 400k" )
  3509: 	PORT_DIPSETTING(		0xc000, "None" )
  3510: INPUT_PORTS_END
  3511: 
  3512: 
  3513: 
  3514: static struct GfxLayout tilelayout =
  3515: {
  3516: 	16,16,	/* 16x16 */
  3517: 	RGN_FRAC(1,2),	/* Number of tiles */
  3518: 	4,		/* 4 bits per pixel */
  3519: 	{ RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
  3520: 	{ 0, 1, 2, 3, 4, 5, 6, 7,
  3521: 		8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
  3522: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
  3523: 		16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 },
  3524: 	8*4*16
  3525: };
  3526: 
  3527: static struct GfxLayout spritelayout =
  3528: {
  3529: 	8,8,	/* 8x8 */
  3530: 	RGN_FRAC(1,2),	/* Number of 8x8 sprites */
  3531: 	4,		/* 4 bits per pixel */
  3532: 	{ RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
  3533: 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
  3534: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
  3535: 	8*16
  3536: };
  3537: 
  3538: static struct GfxLayout raizing_textlayout =
  3539: {
  3540: 	8,8,	/* 8x8 characters */
  3541: 	1024,	/* 1024 characters */
  3542: 	4,		/* 4 bits per pixel */
  3543: 	{ 0, 1, 2, 3 },
  3544: 	{ 0, 4, 8, 12, 16, 20, 24, 28 },
  3545: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  3546: 	8*32
  3547: };
  3548: 
  3549: #ifdef LSB_FIRST 
  3550: static struct GfxLayout truxton2_tx_tilelayout =
  3551: {
  3552: 	8,8,	/* 8x8 characters */
  3553: 	1024,	/* 1024 characters */
  3554: 	4,		/* 4 bits per pixel */
  3555: 	{ 0, 1, 2, 3 },
  3556: 	{ 0, 4, 16, 20, 32, 36, 48, 52 },
  3557: 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
  3558: 	8*64
  3559: };
  3560: #else 
  3561: static struct GfxLayout truxton2_tx_tilelayout =
  3562: {
  3563: 	8,8,	/* 8x8 characters */
  3564: 	1024,	/* 1024 characters */
  3565: 	4,		/* 4 bits per pixel */
  3566: 	{ 0, 1, 2, 3 },
  3567: 	{ 0+8, 4+8, 16+8, 20+8, 32+8, 36+8, 48+8, 52+8 },
  3568: 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
  3569: 	8*64
  3570: };
  3571: #endif 
  3572: 
  3573: #ifdef LSB_FIRST 
  3574: static struct GfxLayout batrider_tx_tilelayout =
  3575: {
  3576: 	8,8,	/* 8x8 characters */
  3577: 	1024,	/* 1024 characters */
  3578: 	4,		/* 4 bits per pixel */
  3579: 	{ 0, 1, 2, 3 },
  3580: 	{ 0, 4, 8, 12, 16, 20, 24, 28 },
  3581: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  3582: 	8*32
  3583: };
  3584: #else 
  3585: static struct GfxLayout batrider_tx_tilelayout =
  3586: {
  3587: 	8,8,	/* 8x8 characters */
  3588: 	1024,	/* 1024 characters */
  3589: 	4,		/* 4 bits per pixel */
  3590: 	{ 0, 1, 2, 3 },
  3591: 	{ 8, 12, 0, 4, 24, 28, 16, 20 },
  3592: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  3593: 	8*32
  3594: };
  3595: #endif 
  3596: 
  3597: static struct GfxDecodeInfo gfxdecodeinfo[] =
  3598: {
  3599: 	{ REGION_GFX1, 0, &tilelayout,   0, 128 },
  3600: 	{ REGION_GFX1, 0, &spritelayout, 0,  64 },
  3601: 	{ -1 } /* end of array */
  3602: };
  3603: 
  3604: static struct GfxDecodeInfo gfxdecodeinfo_2[] =
  3605: {
  3606: 	{ REGION_GFX1, 0, &tilelayout,   0, 128 },
  3607: 	{ REGION_GFX1, 0, &spritelayout, 0,  64 },
  3608: 	{ REGION_GFX2, 0, &tilelayout,   0, 128 },
  3609: 	{ REGION_GFX2, 0, &spritelayout, 0,  64 },
  3610: 	{ -1 } /* end of array */
  3611: };
  3612: 
  3613: static struct GfxDecodeInfo truxton2_gfxdecodeinfo[] =
  3614: {
  3615: 	{ REGION_GFX1, 0,       &tilelayout            , 0, 128 },
  3616: 	{ REGION_GFX1, 0,       &spritelayout          , 0,  64 },
  3617: //	{ REGION_CPU1, 0x40000, &truxton2_tx_tilelayout, 0, 128 },	/* Truxton 2 */
  3618: //	{ REGION_CPU1, 0x68000, &truxton2_tx_tilelayout, 0, 128 },	/* Fix Eight */
  3619: 	{ 0, 0, &truxton2_tx_tilelayout,  0, 128 },
  3620: 	{ -1 } /* end of array */
  3621: };
  3622: 
  3623: static struct GfxDecodeInfo raizing_gfxdecodeinfo[] =
  3624: {
  3625: 	{ REGION_GFX1, 0, &tilelayout,         0, 128 },
  3626: 	{ REGION_GFX1, 0, &spritelayout,       0,  64 },
  3627: 	{ REGION_GFX2, 0, &raizing_textlayout, 0, 128 },		/* Extra-text layer */
  3628: 	{ -1 } /* end of array */
  3629: };
  3630: 
  3631: /* This is wrong a bit. Text layer is dynamically changed. */
  3632: static struct GfxDecodeInfo batrider_gfxdecodeinfo[] =
  3633: {
  3634: 	{ REGION_GFX1, 0, &tilelayout,             0, 128 },
  3635: 	{ REGION_GFX1, 0, &spritelayout,           0,  64 },
  3636: 	{ 0,           0, &batrider_tx_tilelayout, 0,  16 },
  3637: 	{ -1 } /* end of array */
  3638: };
  3639: 
  3640: 
  3641: static void irqhandler(int linestate)
  3642: {
  3643: 	cpu_set_irq_line(1,0,linestate);
  3644: }
  3645: 
  3646: static struct YM3812interface ym3812_interface =
  3647: {
  3648: 	1,				/* 1 chip  */
  3649: 	27000000/8,		/* 3.375MHz , 27MHz Oscillator */
  3650: 	{ 100 },		/* volume */
  3651: 	{ irqhandler },
  3652: };
  3653: 
  3654: static struct YM2151interface ym2151_interface =
  3655: {
  3656: 	1,				/* 1 chip */
  3657: 	27000000/8,		/* 3.375MHz , 27MHz Oscillator */
  3658: 	{ YM3012_VOL(25,MIXER_PAN_LEFT,25,MIXER_PAN_RIGHT) },
  3659: 	{ 0 }
  3660: };
  3661: 
  3662: static struct YM2151interface raizing_ym2151_interface =
  3663: {
  3664: 	1,				/* 1 chip */
  3665: 	32000000/8,		/* 4.00MHz , 32MHz Oscillator */
  3666: 	{ YM3012_VOL(25,MIXER_PAN_LEFT,25,MIXER_PAN_RIGHT) },
  3667: 	{ 0 }
  3668: };
  3669: 
  3670: 
  3671: static struct OKIM6295interface okim6295_interface =
  3672: {
  3673: 	1,						/* 1 chip */
  3674: 	{ 27000000/10/132 },	/* frequency (Hz). 2.7MHz to 6295 (using B mode) */
  3675: 	{ REGION_SOUND1 },		/* memory region */
  3676: 	{ 25 }
  3677: };
  3678: 
  3679: static struct OKIM6295interface raizing_okim6295_interface =
  3680: {
  3681: 	1,						/* 1 chip */
  3682: 	{ 32000000/32/132 },	/* frequency (Hz) 1MHz to 6295 (using B mode) */
  3683: 	{ REGION_SOUND1 },		/* memory region */
  3684: 	{ 25 }
  3685: };
  3686: 
  3687: static struct OKIM6295interface battleg_okim6295_interface =
  3688: {
  3689: 	1,						/* 1 chip */
  3690: 	{ 32000000/16/132 },	/* frequency (Hz). 2MHz to 6295 (using B mode) */
  3691: 	{ REGION_SOUND1 },		/* memory region */
  3692: 	{ 25 }
  3693: };
  3694: 
  3695: static struct OKIM6295interface batrider_okim6295_interface =
  3696: {
  3697: 	2,										/* 2 chips */
  3698: 	{ 32000000/10/132, 32000000/10/165 },	/* frequency (Hz). 3.2MHz to two 6295 (using B mode / A mode) */
  3699: 	{ REGION_SOUND1, REGION_SOUND2 },		/* memory region */
  3700: 	{ 25, 25 }
  3701: };
  3702: 
  3703: static struct YMZ280Binterface ymz280b_interface =
  3704: {
  3705: 	1,
  3706: 	{ 16934400 },
  3707: 	{ REGION_SOUND1 },
  3708: 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
  3709: 	{ bbakraid_irqhandler }
  3710: };
  3711: 
  3712: 
  3713: 
  3714: static MACHINE_DRIVER_START( tekipaki )
  3715: 
  3716: 	/* basic machine hardware */
  3717: 	MDRV_CPU_ADD(M68000, 10000000)			/* 10MHz Oscillator */
  3718: 	MDRV_CPU_MEMORY(tekipaki_readmem,tekipaki_writemem)
  3719: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3720: 
  3721: #if HD64x180 
  3722: 	MDRV_CPU_ADD(Z180, 10000000)			/* HD647180 CPU actually */
  3723: 	MDRV_CPU_MEMORY(hd647180_readmem,hd647180_writemem)
  3724: #endif 
  3725: 
  3726: 	MDRV_FRAMES_PER_SECOND(60)
  3727: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3728: 
  3729: 	MDRV_MACHINE_INIT(toaplan2)
  3730: 
  3731: 	/* video hardware */
  3732: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3733: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3734: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3735: 	MDRV_GFXDECODE(gfxdecodeinfo)
  3736: 	MDRV_PALETTE_LENGTH(2048)
  3737: 
  3738: 	MDRV_VIDEO_START(toaplan2_0)
  3739: 	MDRV_VIDEO_EOF(toaplan2_0)
  3740: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  3741: 
  3742: 	/* sound hardware */
  3743: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  3744: MACHINE_DRIVER_END
  3745: 
  3746: 
  3747: static MACHINE_DRIVER_START( ghox )
  3748: 
  3749: 	/* basic machine hardware */
  3750: 	MDRV_CPU_ADD(M68000, 10000000)			/* 10MHz Oscillator */
  3751: 	MDRV_CPU_MEMORY(ghox_readmem,ghox_writemem)
  3752: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3753: 
  3754: #if HD64x180 
  3755: 	MDRV_CPU_ADD(Z180, 10000000)			/* HD647180 CPU actually */
  3756: 	MDRV_CPU_MEMORY(hd647180_readmem,hd647180_writemem)
  3757: #endif 
  3758: 
  3759: 	MDRV_FRAMES_PER_SECOND(60)
  3760: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3761: 
  3762: 	MDRV_MACHINE_INIT(ghox)
  3763: 
  3764: 	/* video hardware */
  3765: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3766: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3767: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3768: 	MDRV_GFXDECODE(gfxdecodeinfo)
  3769: 	MDRV_PALETTE_LENGTH(2048)
  3770: 
  3771: 	MDRV_VIDEO_START(toaplan2_0)
  3772: 	MDRV_VIDEO_EOF(toaplan2_0)
  3773: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  3774: 
  3775: 	/* sound hardware */
  3776: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  3777: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  3778: MACHINE_DRIVER_END
  3779: 
  3780: 
  3781: static MACHINE_DRIVER_START( dogyuun )
  3782: 
  3783: 	/* basic machine hardware */
  3784: 	MDRV_CPU_ADD(M68000, 16000000)			/* 16MHz Oscillator */
  3785: 	MDRV_CPU_MEMORY(dogyuun_readmem,dogyuun_writemem)
  3786: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3787: 
  3788: #if Zx80 
  3789: 	MDRV_CPU_ADD(Z180, 16000000)			/* Z?80 type Toaplan marked CPU ??? */
  3790: 	MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
  3791: 	MDRV_CPU_PORTS(Zx80_readport,0)
  3792: #endif 
  3793: 
  3794: 	MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
  3795: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3796: 
  3797: 	MDRV_MACHINE_INIT(toaplan2)
  3798: 
  3799: 	/* video hardware */
  3800: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3801: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3802: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3803: 	MDRV_GFXDECODE(gfxdecodeinfo_2)
  3804: 	MDRV_PALETTE_LENGTH(2048)
  3805: 
  3806: 	MDRV_VIDEO_START(toaplan2_1)
  3807: 	MDRV_VIDEO_EOF(toaplan2_1)
  3808: 	MDRV_VIDEO_UPDATE(dogyuun_1)
  3809: 
  3810: 	/* sound hardware */
  3811: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  3812: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  3813: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  3814: MACHINE_DRIVER_END
  3815: 
  3816: 
  3817: static MACHINE_DRIVER_START( kbash )
  3818: 
  3819: 	/* basic machine hardware */
  3820: 	MDRV_CPU_ADD(M68000, 16000000)			/* 16MHz Oscillator */
  3821: 	MDRV_CPU_MEMORY(kbash_readmem,kbash_writemem)
  3822: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3823: 
  3824: #if Zx80 
  3825: 	MDRV_CPU_ADD(Z180, 16000000)			/* Z?80 type Toaplan marked CPU ??? */
  3826: 	MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
  3827: 	MDRV_CPU_PORTS(Zx80_readport,0)
  3828: #endif 
  3829: 
  3830: 	MDRV_FRAMES_PER_SECOND(60)
  3831: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3832: 
  3833: 	MDRV_MACHINE_INIT(toaplan2)
  3834: 
  3835: 	/* video hardware */
  3836: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3837: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3838: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3839: 	MDRV_GFXDECODE(gfxdecodeinfo)
  3840: 	MDRV_PALETTE_LENGTH(2048)
  3841: 
  3842: 	MDRV_VIDEO_START(toaplan2_0)
  3843: 	MDRV_VIDEO_EOF(toaplan2_0)
  3844: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  3845: 
  3846: 	/* sound hardware */
  3847: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  3848: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  3849: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  3850: MACHINE_DRIVER_END
  3851: 
  3852: 
  3853: static MACHINE_DRIVER_START( truxton2 )
  3854: 
  3855: 	/* basic machine hardware */
  3856: 	MDRV_CPU_ADD(M68000, 16000000)			/* 16MHz Oscillator */
  3857: 	MDRV_CPU_MEMORY(truxton2_readmem,truxton2_writemem)
  3858: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq2,262)
  3859: 
  3860: 	MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
  3861: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3862: 
  3863: 	MDRV_MACHINE_INIT(toaplan2)
  3864: 
  3865: 	/* video hardware */
  3866: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3867: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3868: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3869: 	MDRV_GFXDECODE(truxton2_gfxdecodeinfo)
  3870: 	MDRV_PALETTE_LENGTH(2048)
  3871: 
  3872: 	MDRV_VIDEO_START(truxton2_0)
  3873: 	MDRV_VIDEO_EOF(toaplan2_0)
  3874: 	MDRV_VIDEO_UPDATE(truxton2_0)
  3875: 
  3876: 	/* sound hardware */
  3877: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  3878: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  3879: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  3880: MACHINE_DRIVER_END
  3881: 
  3882: 
  3883: static MACHINE_DRIVER_START( pipibibs )
  3884: 
  3885: 	/* basic machine hardware */
  3886: 	MDRV_CPU_ADD(M68000, 10000000)			/* 10MHz Oscillator */
  3887: 	MDRV_CPU_MEMORY(pipibibs_readmem,pipibibs_writemem)
  3888: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3889: 
  3890: 	MDRV_CPU_ADD(Z80,27000000/8)			/* ??? 3.37MHz , 27MHz Oscillator */
  3891: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
  3892: 
  3893: 	MDRV_FRAMES_PER_SECOND(60)
  3894: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3895: 	MDRV_INTERLEAVE(10)
  3896: 
  3897: 	MDRV_MACHINE_INIT(toaplan2)
  3898: 
  3899: 	/* video hardware */
  3900: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3901: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3902: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3903: 	MDRV_GFXDECODE(gfxdecodeinfo)
  3904: 	MDRV_PALETTE_LENGTH(2048)
  3905: 
  3906: 	MDRV_VIDEO_START(toaplan2_0)
  3907: 	MDRV_VIDEO_EOF(toaplan2_0)
  3908: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  3909: 
  3910: 	/* sound hardware */
  3911: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  3912: MACHINE_DRIVER_END
  3913: 
  3914: 
  3915: static MACHINE_DRIVER_START( whoopee )
  3916: 
  3917: 	/* basic machine hardware */
  3918: 	MDRV_CPU_ADD(M68000, 10000000)			/* 10MHz Oscillator */
  3919: 	MDRV_CPU_MEMORY(tekipaki_readmem,tekipaki_writemem)
  3920: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3921: 
  3922: 	MDRV_CPU_ADD(Z80, 27000000/8)			/* This should be a HD647180 */
  3923: 											/* Change this to 10MHz when HD647180 gets dumped. 10MHz Oscillator */
  3924: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
  3925: 
  3926: 	MDRV_FRAMES_PER_SECOND(60)
  3927: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3928: 	MDRV_INTERLEAVE(10)
  3929: 
  3930: 	MDRV_MACHINE_INIT(toaplan2)
  3931: 
  3932: 	/* video hardware */
  3933: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3934: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3935: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3936: 	MDRV_GFXDECODE(gfxdecodeinfo)
  3937: 	MDRV_PALETTE_LENGTH(2048)
  3938: 
  3939: 	MDRV_VIDEO_START(toaplan2_0)
  3940: 	MDRV_VIDEO_EOF(toaplan2_0)
  3941: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  3942: 
  3943: 	/* sound hardware */
  3944: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  3945: MACHINE_DRIVER_END
  3946: 
  3947: 
  3948: static MACHINE_DRIVER_START( pipibibi )
  3949: 
  3950: 	/* basic machine hardware */
  3951: 	MDRV_CPU_ADD(M68000, 10000000)			/* 10MHz Oscillator */
  3952: 	MDRV_CPU_MEMORY(pipibibi_readmem,pipibibi_writemem)
  3953: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3954: 
  3955: 	MDRV_CPU_ADD(Z80,27000000/8)			/* ??? 3.37MHz */
  3956: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
  3957: 
  3958: 	MDRV_FRAMES_PER_SECOND(60)
  3959: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3960: 	MDRV_INTERLEAVE(10)
  3961: 
  3962: 	MDRV_MACHINE_INIT(toaplan2)
  3963: 
  3964: 	/* video hardware */
  3965: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  3966: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  3967: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  3968: 	MDRV_GFXDECODE(gfxdecodeinfo)
  3969: 	MDRV_PALETTE_LENGTH(2048)
  3970: 
  3971: 	MDRV_VIDEO_START(toaplan2_0)
  3972: 	MDRV_VIDEO_EOF(toaplan2_0)
  3973: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  3974: 
  3975: 	/* sound hardware */
  3976: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  3977: MACHINE_DRIVER_END
  3978: 
  3979: 
  3980: static MACHINE_DRIVER_START( fixeight )
  3981: 
  3982: 	/* basic machine hardware */
  3983: 	MDRV_CPU_ADD(M68000, 16000000)			/* 16MHz Oscillator */
  3984: 	MDRV_CPU_MEMORY(fixeight_readmem,fixeight_writemem)
  3985: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  3986: 
  3987: #if Zx80 
  3988: 	MDRV_CPU_ADD(Z180, 16000000)			/* Z?80 type Toaplan marked CPU ??? */
  3989: 	MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
  3990: 	MDRV_CPU_PORTS(Zx80_readport,0)
  3991: #endif 
  3992: 
  3993: 	MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
  3994: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  3995: 
  3996: 	MDRV_MACHINE_INIT(toaplan2)
  3997: ///	MDRV_NVRAM_HANDLER(fixeight)		/* See 37B6 code */
  3998: 
  3999: 	/* video hardware */
  4000: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4001: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4002: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4003: 	MDRV_GFXDECODE(truxton2_gfxdecodeinfo)
  4004: 	MDRV_PALETTE_LENGTH(2048)
  4005: 
  4006: 	MDRV_VIDEO_START(truxton2_0)
  4007: 	MDRV_VIDEO_EOF(toaplan2_0)
  4008: 	MDRV_VIDEO_UPDATE(truxton2_0)
  4009: 
  4010: 	/* sound hardware */
  4011: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4012: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  4013: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  4014: MACHINE_DRIVER_END
  4015: 
  4016: 
  4017: static MACHINE_DRIVER_START( vfive )
  4018: 
  4019: 	/* basic machine hardware */
  4020: 	MDRV_CPU_ADD(M68000, 10000000)			/* 10MHz Oscillator */
  4021: 	MDRV_CPU_MEMORY(vfive_readmem,vfive_writemem)
  4022: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  4023: 
  4024: #if Zx80 
  4025: 	MDRV_CPU_ADD(Z180, 10000000)			/* Z?80 type Toaplan marked CPU ??? */
  4026: 	MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
  4027: 	MDRV_CPU_PORTS(Zx80_readport,0)
  4028: #endif 
  4029: 
  4030: 	MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
  4031: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4032: 
  4033: 	MDRV_MACHINE_INIT(toaplan2)
  4034: 
  4035: 	/* video hardware */
  4036: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4037: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4038: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4039: 	MDRV_GFXDECODE(gfxdecodeinfo)
  4040: 	MDRV_PALETTE_LENGTH(2048)
  4041: 
  4042: 	MDRV_VIDEO_START(toaplan2_0)
  4043: 	MDRV_VIDEO_EOF(toaplan2_0)
  4044: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  4045: 
  4046: 	/* sound hardware */
  4047: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4048: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  4049: MACHINE_DRIVER_END
  4050: 
  4051: 
  4052: static MACHINE_DRIVER_START( batsugun )
  4053: 
  4054: 	/* basic machine hardware */
  4055: 	MDRV_CPU_ADD(M68000,32000000/2)			/* 16MHz , 32MHz Oscillator */
  4056: 	MDRV_CPU_MEMORY(batsugun_readmem,batsugun_writemem)
  4057: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  4058: 
  4059: #if Zx80 
  4060: 	MDRV_CPU_ADD(Z180, 32000000/2)			/* Z?80 type Toaplan marked CPU ??? */
  4061: 	MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
  4062: 	MDRV_CPU_PORTS(Zx80_readport,0)
  4063: #endif 
  4064: 
  4065: 	MDRV_FRAMES_PER_SECOND(60)
  4066: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4067: 
  4068: 	MDRV_MACHINE_INIT(toaplan2)
  4069: 
  4070: 	/* video hardware */
  4071: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4072: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4073: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4074: 	MDRV_GFXDECODE(gfxdecodeinfo_2)
  4075: 	MDRV_PALETTE_LENGTH(2048)
  4076: 
  4077: 	MDRV_VIDEO_START(toaplan2_1)
  4078: 	MDRV_VIDEO_EOF(toaplan2_1)
  4079: 	MDRV_VIDEO_UPDATE(batsugun_1)
  4080: 
  4081: 	/* sound hardware */
  4082: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4083: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  4084: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  4085: MACHINE_DRIVER_END
  4086: 
  4087: 
  4088: static MACHINE_DRIVER_START( snowbro2 )
  4089: 
  4090: 	/* basic machine hardware */
  4091: 	MDRV_CPU_ADD(M68000, 16000000)
  4092: 	MDRV_CPU_MEMORY(snowbro2_readmem,snowbro2_writemem)
  4093: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  4094: 
  4095: 	MDRV_FRAMES_PER_SECOND(60)
  4096: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4097: 
  4098: 	MDRV_MACHINE_INIT(toaplan2)
  4099: 
  4100: 	/* video hardware */
  4101: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4102: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4103: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4104: 	MDRV_GFXDECODE(gfxdecodeinfo)
  4105: 	MDRV_PALETTE_LENGTH(2048)
  4106: 
  4107: 	MDRV_VIDEO_START(toaplan2_0)
  4108: 	MDRV_VIDEO_EOF(toaplan2_0)
  4109: 	MDRV_VIDEO_UPDATE(toaplan2_0)
  4110: 
  4111: 	/* sound hardware */
  4112: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4113: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  4114: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  4115: MACHINE_DRIVER_END
  4116: 
  4117: 
  4118: static MACHINE_DRIVER_START( mahoudai )
  4119: 
  4120: 	/* basic machine hardware */
  4121: 	MDRV_CPU_ADD(M68000,32000000/2)			/* 16MHz , 32MHz Oscillator */
  4122: 	MDRV_CPU_MEMORY(mahoudai_readmem,mahoudai_writemem)
  4123: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  4124: 
  4125: 	MDRV_CPU_ADD(Z80,32000000/8)			/* 4MHz , 32MHz Oscillator */
  4126: 	MDRV_CPU_MEMORY(raizing_sound_readmem,raizing_sound_writemem)
  4127: 
  4128: 	MDRV_FRAMES_PER_SECOND(60)
  4129: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4130: 	MDRV_INTERLEAVE(10)
  4131: 
  4132: 	MDRV_MACHINE_INIT(toaplan2)
  4133: 
  4134: 	/* video hardware */
  4135: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4136: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4137: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4138: 	MDRV_GFXDECODE(raizing_gfxdecodeinfo)
  4139: 	MDRV_PALETTE_LENGTH(2048)
  4140: 
  4141: 	MDRV_VIDEO_START(battleg_0)
  4142: 	MDRV_VIDEO_EOF(toaplan2_0)
  4143: 	MDRV_VIDEO_UPDATE(mahoudai_0)
  4144: 
  4145: 	/* sound hardware */
  4146: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4147: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  4148: 	MDRV_SOUND_ADD(OKIM6295, raizing_okim6295_interface)
  4149: MACHINE_DRIVER_END
  4150: 
  4151: 
  4152: static MACHINE_DRIVER_START( shippumd )
  4153: 
  4154: 	/* basic machine hardware */
  4155: 	MDRV_CPU_ADD(M68000,32000000/2)			/* 16MHz , 32MHz Oscillator */
  4156: 	MDRV_CPU_MEMORY(shippumd_readmem,shippumd_writemem)
  4157: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  4158: 
  4159: 	MDRV_CPU_ADD(Z80,32000000/8)			/* 4MHz , 32MHz Oscillator */
  4160: 	MDRV_CPU_MEMORY(raizing_sound_readmem,raizing_sound_writemem)
  4161: 
  4162: 	MDRV_FRAMES_PER_SECOND(60)
  4163: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4164: 	MDRV_INTERLEAVE(10)
  4165: 
  4166: 	MDRV_MACHINE_INIT(toaplan2)
  4167: 
  4168: 	/* video hardware */
  4169: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4170: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4171: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4172: 	MDRV_GFXDECODE(raizing_gfxdecodeinfo)
  4173: 	MDRV_PALETTE_LENGTH(2048)
  4174: 
  4175: 	MDRV_VIDEO_START(battleg_0)
  4176: 	MDRV_VIDEO_EOF(toaplan2_0)
  4177: 	MDRV_VIDEO_UPDATE(truxton2_0)
  4178: 
  4179: 	/* sound hardware */
  4180: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4181: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  4182: 	MDRV_SOUND_ADD(OKIM6295, raizing_okim6295_interface)
  4183: MACHINE_DRIVER_END
  4184: 
  4185: 
  4186: static MACHINE_DRIVER_START( battleg )
  4187: 
  4188: 	/* basic machine hardware */
  4189: 	MDRV_CPU_ADD(M68000,32000000/2)			/* 16MHz , 32MHz Oscillator */
  4190: 	MDRV_CPU_MEMORY(battleg_readmem,battleg_writemem)
  4191: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
  4192: 
  4193: 	MDRV_CPU_ADD(Z80,32000000/8)			/* 4MHz , 32MHz Oscillator */
  4194: 	MDRV_CPU_MEMORY(battleg_sound_readmem,battleg_sound_writemem)
  4195: 
  4196: 	MDRV_FRAMES_PER_SECOND(60)
  4197: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4198: 	MDRV_INTERLEAVE(10)
  4199: 
  4200: 	MDRV_MACHINE_INIT(toaplan2)
  4201: 
  4202: 	/* video hardware */
  4203: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4204: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4205: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4206: 	MDRV_GFXDECODE(raizing_gfxdecodeinfo)
  4207: 	MDRV_PALETTE_LENGTH(2048)
  4208: 
  4209: 	MDRV_VIDEO_START(battleg_0)
  4210: 	MDRV_VIDEO_EOF(toaplan2_0)
  4211: 	MDRV_VIDEO_UPDATE(truxton2_0)
  4212: 
  4213: 	/* sound hardware */
  4214: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4215: 	MDRV_SOUND_ADD(YM2151, raizing_ym2151_interface)
  4216: 	MDRV_SOUND_ADD(OKIM6295, battleg_okim6295_interface)
  4217: MACHINE_DRIVER_END
  4218: 
  4219: 
  4220: static MACHINE_DRIVER_START( batrider )
  4221: 
  4222: 	/* basic machine hardware */
  4223: 	MDRV_CPU_ADD(M68000,32000000/2)			/* 16MHz , 32MHz Oscillator */
  4224: 	MDRV_CPU_MEMORY(batrider_readmem,batrider_writemem)
  4225: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq2,262)
  4226: 
  4227: 	MDRV_CPU_ADD(Z80,32000000/8)			/* 4MHz , 32MHz Oscillator */
  4228: 	MDRV_CPU_MEMORY(batrider_sound_readmem,batrider_sound_writemem)
  4229: 	MDRV_CPU_PORTS(batrider_sound_readport,batrider_sound_writeport)
  4230: 
  4231: 	MDRV_FRAMES_PER_SECOND(60)
  4232: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4233: 	MDRV_INTERLEAVE(10)
  4234: 
  4235: 	MDRV_MACHINE_INIT(batrider)
  4236: 
  4237: 	/* video hardware */
  4238: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4239: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4240: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4241: 	MDRV_GFXDECODE(batrider_gfxdecodeinfo)
  4242: 	MDRV_PALETTE_LENGTH(2048)
  4243: 
  4244: 	MDRV_VIDEO_START(batrider_0)
  4245: 	MDRV_VIDEO_EOF(batrider_0)
  4246: 	MDRV_VIDEO_UPDATE(batrider_0)
  4247: 
  4248: 	/* sound hardware */
  4249: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  4250: 	MDRV_SOUND_ADD(YM2151, raizing_ym2151_interface)
  4251: 	MDRV_SOUND_ADD(OKIM6295, batrider_okim6295_interface)
  4252: MACHINE_DRIVER_END
  4253: 
  4254: static MACHINE_DRIVER_START( bbakraid )
  4255: 
  4256: 	/* basic machine hardware */
  4257: 	MDRV_CPU_ADD(M68000,32000000/2)
  4258: 	MDRV_CPU_MEMORY(bbakraid_readmem,bbakraid_writemem)
  4259: 	MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq3,262)
  4260: 
  4261: 	MDRV_CPU_ADD(Z80,32000000/4)
  4262: 	MDRV_CPU_MEMORY(bbakraid_sound_readmem,bbakraid_sound_writemem)
  4263: 	MDRV_CPU_PORTS(bbakraid_sound_readport,bbakraid_sound_writeport)
  4264: 	MDRV_CPU_PERIODIC_INT(bbakraid_snd_interrupt, 388)
  4265: 	MDRV_FRAMES_PER_SECOND(60)
  4266: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  4267: 	MDRV_INTERLEAVE(262)
  4268: 
  4269: 	MDRV_MACHINE_INIT(toaplan2)
  4270: 	MDRV_NVRAM_HANDLER(bbakraid)
  4271: 
  4272: 	/* video hardware */
  4273: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  4274: 	MDRV_SCREEN_SIZE(32*16, 32*16)
  4275: 	MDRV_VISIBLE_AREA(0, 319, 0, 239)
  4276: 	MDRV_GFXDECODE(batrider_gfxdecodeinfo)
  4277: 	MDRV_PALETTE_LENGTH(2048)
  4278: 
  4279: 	MDRV_VIDEO_START(batrider_0)
  4280: 	MDRV_VIDEO_UPDATE(batrider_0)
  4281: 
  4282: 	/* sound hardware */
  4283: 	MDRV_SOUND_ADD(YMZ280B, ymz280b_interface)
  4284: MACHINE_DRIVER_END
  4285: 
  4286: 
  4287: 
  4288: /***************************************************************************
  4289: 
  4290:   Game driver(s)
  4291: 
  4292: ***************************************************************************/
  4293: 
  4294: /* -------------------------- Toaplan games ------------------------- */
  4295: ROM_START( tekipaki )
  4296: 	ROM_REGION( 0x020000, REGION_CPU1, 0 )			/* Main 68K code */
  4297: 	ROM_LOAD16_BYTE( "tp020-1.bin", 0x000000, 0x010000, CRC(d8420bd5) SHA1(30c1ad9e053cd7e79adb42aa428ebee28e144755) )
  4298: 	ROM_LOAD16_BYTE( "tp020-2.bin", 0x000001, 0x010000, CRC(7222de8e) SHA1(8352ae23efc24a2e20cc24b6d37cb8fc6b1a730c) )
  4299: 
  4300: #if HD64x180 
  4301: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound HD647180 code */
  4302: 	/* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
  4303: 	ROM_LOAD( "hd647180.020", 0x00000, 0x08000, NO_DUMP )
  4304: #endif 
  4305: 
  4306: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  4307: 	ROM_LOAD( "tp020-4.bin", 0x000000, 0x080000, CRC(3ebbe41e) SHA1(cea196c5f83e1a23d5b538a0db9bbbffa7af5118) )
  4308: 	ROM_LOAD( "tp020-3.bin", 0x080000, 0x080000, CRC(2d5e2201) SHA1(5846c844eedd48305c1c67dc645b6e070b3f5b98) )
  4309: ROM_END
  4310: 
  4311: ROM_START( ghox )
  4312: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )			/* Main 68K code */
  4313: 	ROM_LOAD16_BYTE( "tp021-01.u10", 0x000000, 0x020000, CRC(9e56ac67) SHA1(daf241d9e55a6e60fc004ed61f787641595b1e62) )
  4314: 	ROM_LOAD16_BYTE( "tp021-02.u11", 0x000001, 0x020000, CRC(15cac60f) SHA1(6efa3a50a5dfe6ef4072738d6a7d0d95dca8a675) )
  4315: 
  4316: #if HD64x180 
  4317: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound HD647180 code */
  4318: 	/* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
  4319: 	ROM_LOAD( "hd647180.021", 0x00000, 0x08000, NO_DUMP )
  4320: #endif 
  4321: 
  4322: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
  4323: 	ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) )
  4324: 	ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) )
  4325: ROM_END
  4326: 
  4327: ROM_START( dogyuun )
  4328: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4329: 	ROM_LOAD16_WORD( "tp022_01.r16", 0x000000, 0x080000, CRC(72f18907) SHA1(9d1b3800764a63e046644c78a2e0339280e038cb) )
  4330: 
  4331: 	/* Secondary CPU is a Toaplan marked chip, (TS-002-MACH  TOA PLAN) */
  4332: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4333: #if Zx80 
  4334: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Secondary CPU code */
  4335: 	/* Secondary CPU is a Toaplan marked chip ??? */
  4336: //	ROM_LOAD( "tp022.mcu", 0x00000, 0x08000, NO_DUMP )
  4337: #endif 
  4338: 
  4339: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4340: 	ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) )
  4341: 	ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) )
  4342: 
  4343: 	ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )
  4344: 	ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) )
  4345: 	ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) )
  4346: 
  4347: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* ADPCM Samples */
  4348: 	ROM_LOAD( "tp022_2.w30", 0x00000, 0x40000, CRC(043271b3) SHA1(c7eaa929e55dd956579b824ea9d20a1d0129a925) )
  4349: ROM_END
  4350: 
  4351: ROM_START( kbash )
  4352: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4353: 	ROM_LOAD16_WORD_SWAP( "kbash01.bin", 0x000000, 0x080000, CRC(2965f81d) SHA1(46f2df30fa92c80ba5a37f75e756424e15534784) )
  4354: 
  4355: 	/* Secondary CPU is a Toaplan marked chip, (TS-004-Dash  TOA PLAN) */
  4356: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4357: #if Zx80 
  4358: 	ROM_REGION( 0x88000, REGION_CPU2, 0 )			/* Sound Z?80 code */
  4359: 	ROM_LOAD( "kbash02.bin", 0x80000, 0x08000, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) )
  4360: #else 
  4361: 	ROM_REGION( 0x08000, REGION_USER1, 0 )
  4362: 	ROM_LOAD( "kbash02.bin", 0x00200, 0x07e00, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) )
  4363: 	ROM_CONTINUE(			 0x00000, 0x00200 )
  4364: #endif 
  4365: 
  4366: 	ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
  4367: 	ROM_LOAD( "kbash03.bin", 0x000000, 0x200000, CRC(32ad508b) SHA1(e473489beaf649d3e5236770eb043327e309850c) )
  4368: 	ROM_LOAD( "kbash05.bin", 0x200000, 0x200000, CRC(b84c90eb) SHA1(17a1531d884d9a9696d1b25d65f9155f02396e0e) )
  4369: 	ROM_LOAD( "kbash04.bin", 0x400000, 0x200000, CRC(e493c077) SHA1(0edcfb70483ad07206695d9283031b85cd198a36) )
  4370: 	ROM_LOAD( "kbash06.bin", 0x600000, 0x200000, CRC(9084b50a) SHA1(03b58278619524d2f09a4b1c152d5e057e792a56) )
  4371: 
  4372: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* ADPCM Samples */
  4373: 	ROM_LOAD( "kbash07.bin", 0x00000, 0x40000, CRC(3732318f) SHA1(f0768459f5ad2dee53d408a0a5ae3a314864e667) )
  4374: ROM_END
  4375: 
  4376: ROM_START( truxton2 )
  4377: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4378: 	ROM_LOAD16_WORD( "tp024_1.bin", 0x000000, 0x080000, CRC(f5cfe6ee) SHA1(30979888a4cd6500244117748f28386a7e20a169) )
  4379: 
  4380: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4381: 	ROM_LOAD( "tp024_4.bin", 0x000000, 0x100000, CRC(805c449e) SHA1(fdf985344145bd320b88b9b0c25e73066c9b2ada) )
  4382: 	ROM_LOAD( "tp024_3.bin", 0x100000, 0x100000, CRC(47587164) SHA1(bac493e2d5507286b984957b289c929335d27eaa) )
  4383: 
  4384: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4385: 	ROM_LOAD( "tp024_2.bin", 0x00000, 0x80000, CRC(f2f6cae4) SHA1(bb4e8c36531bed97ced4696ca12fd40ede2531aa) )
  4386: ROM_END
  4387: 
  4388: ROM_START( pipibibs )
  4389: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )			/* Main 68K code */
  4390: 	ROM_LOAD16_BYTE( "tp025-1.bin", 0x000000, 0x020000, CRC(b2ea8659) SHA1(400431b656dbfbd5a9bc5961c3ea04c4d38b6f77) )
  4391: 	ROM_LOAD16_BYTE( "tp025-2.bin", 0x000001, 0x020000, CRC(dc53b939) SHA1(e4de371f97ba7c350273ad43b7f58ff31672a269) )
  4392: 
  4393: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4394: 	ROM_LOAD( "tp025-5.bin", 0x0000, 0x8000, CRC(bf8ffde5) SHA1(79c09cc9a0ea979f5af5a7e5ad671ea486f5f43e) )
  4395: 
  4396: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4397: 	ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
  4398: 	ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
  4399: ROM_END
  4400: 
  4401: ROM_START( whoopee )
  4402: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )			/* Main 68K code */
  4403: 	ROM_LOAD16_BYTE( "whoopee.1", 0x000000, 0x020000, CRC(28882e7e) SHA1(8fcd278a7d005eb81cd9e461139c0c0f756a4fa4) )
  4404: 	ROM_LOAD16_BYTE( "whoopee.2", 0x000001, 0x020000, CRC(6796f133) SHA1(d4e657be260ba3fd3f0556ade617882513b52685) )
  4405: 
  4406: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4407: 	/* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
  4408: 	/* use the Z80 version from the bootleg Pipi & Bibis set for now */
  4409: 	ROM_LOAD( "hd647180.025", 0x00000, 0x08000, BAD_DUMP CRC(101c0358) SHA1(162e02d00b7bdcdd3b48a0cd0527b7428435ec50)  )
  4410: 
  4411: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4412: 	ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
  4413: 	ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
  4414: ROM_END
  4415: 
  4416: ROM_START( pipibibi )
  4417: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )			/* Main 68K code */
  4418: 	ROM_LOAD16_BYTE( "ppbb06.bin", 0x000000, 0x020000, CRC(14c92515) SHA1(2d7f7c89272bb2a8115f163ad651bef3bca5107e) )
  4419: 	ROM_LOAD16_BYTE( "ppbb05.bin", 0x000001, 0x020000, CRC(3d51133c) SHA1(d7bd94ad11e9aeb5a5165c5ac6f71950849bcd2f) )
  4420: 
  4421: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4422: 	ROM_LOAD( "ppbb08.bin", 0x0000, 0x8000, CRC(101c0358) SHA1(162e02d00b7bdcdd3b48a0cd0527b7428435ec50) )
  4423: 
  4424: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4425: 	/* GFX data differs slightly from Toaplan boards ??? */
  4426: 	ROM_LOAD16_BYTE( "ppbb01.bin", 0x000000, 0x080000, CRC(0fcae44b) SHA1(ac72bc79e3a5d0a81647c312d310d00ace017272) )
  4427: 	ROM_LOAD16_BYTE( "ppbb02.bin", 0x000001, 0x080000, CRC(8bfcdf87) SHA1(4537a7d646d3014f069c6fd0be457bb32e2f18ac) )
  4428: 	ROM_LOAD16_BYTE( "ppbb03.bin", 0x100000, 0x080000, CRC(abdd2b8b) SHA1(a4246dd63515f01d1227c9a9e16d9f1c739ee39e) )
  4429: 	ROM_LOAD16_BYTE( "ppbb04.bin", 0x100001, 0x080000, CRC(70faa734) SHA1(4448f4dbded56c142e57293d371e0a422c3a667e) )
  4430: 
  4431: 	ROM_REGION( 0x8000, REGION_USER1, 0 )			/* ??? Some sort of table */
  4432: 	ROM_LOAD( "ppbb07.bin", 0x0000, 0x8000, CRC(456dd16e) SHA1(84779ee64d3ea33ba1ba4dee39b504a81c6811a1) )
  4433: ROM_END
  4434: 
  4435: ROM_START( fixeight )
  4436: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4437: 	ROM_LOAD16_WORD_SWAP( "tp-026-1", 0x000000, 0x080000, CRC(f7b1746a) )
  4438: 
  4439: #if Zx80 
  4440: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Secondary CPU code */
  4441: 	/* Secondary CPU is a Toaplan marked chip, (TS-001-Turbo  TOA PLAN) */
  4442: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4443: //	ROM_LOAD( "tp-026.mcu", 0x0000, 0x8000, NO_DUMP )
  4444: #endif 
  4445: 
  4446: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
  4447: 	ROM_LOAD( "tp-026-3", 0x000000, 0x200000, CRC(e5578d98) )
  4448: 	ROM_LOAD( "tp-026-4", 0x200000, 0x200000, CRC(b760cb53) )
  4449: 
  4450: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4451: 	ROM_LOAD( "tp-026-2", 0x00000, 0x40000, CRC(85063f1f) )
  4452: 
  4453: 	ROM_REGION( 0x80, REGION_USER1, 0 )
  4454: 	/* Serial EEPROM (93C45) connected to Secondary CPU */
  4455: 	ROM_LOAD( "93c45.u21", 0x00, 0x80, CRC(40d75df0) )
  4456: ROM_END
  4457: 
  4458: ROM_START( grindstm )
  4459: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4460: 	ROM_LOAD16_WORD_SWAP( "01.bin", 0x000000, 0x080000, CRC(4923f790) SHA1(1c2d66b432d190d0fb6ac7ca0ec0687aea3ccbf4) )
  4461: 
  4462: #if Zx80 
  4463: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound CPU code */
  4464: 	/* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
  4465: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4466: //	ROM_LOAD( "tp027.mcu", 0x8000, 0x8000, NO_DUMP )
  4467: #endif 
  4468: 
  4469: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4470: 	ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
  4471: 	ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
  4472: ROM_END
  4473: 
  4474: ROM_START( grindsta )
  4475: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4476: 	ROM_LOAD16_WORD_SWAP( "tp027-01.rom", 0x000000, 0x080000, CRC(8d8c0392) SHA1(824dde274c8bef8a87c54d8ccdda7f0feb8d11e1) )
  4477: 
  4478: #if Zx80 
  4479: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound CPU code */
  4480: 	/* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
  4481: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4482: //	ROM_LOAD( "tp027.mcu", 0x8000, 0x8000, NO_DUMP )
  4483: #endif 
  4484: 
  4485: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4486: 	ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
  4487: 	ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
  4488: ROM_END
  4489: 
  4490: ROM_START( vfive )
  4491: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4492: 	ROM_LOAD16_WORD_SWAP( "tp027_01.bin", 0x000000, 0x080000, CRC(731d50f4) SHA1(794255d0a809cda9170f5bac473df9d7f0efdac8) )
  4493: 
  4494: #if Zx80 
  4495: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound CPU code */
  4496: 	/* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
  4497: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4498: //	ROM_LOAD( "tp027.mcu", 0x8000, 0x8000, NO_DUMP )
  4499: #endif 
  4500: 
  4501: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4502: 	ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
  4503: 	ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
  4504: ROM_END
  4505: 
  4506: ROM_START( batsugun )
  4507: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4508: 	ROM_LOAD16_WORD_SWAP( "tp030_01.bin", 0x000000, 0x080000, CRC(3873d7dd) SHA1(baf6187d7d554cfcf4a86b63f07fc30df7ef84c9) )
  4509: 
  4510: #if Zx80 
  4511: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound CPU code */
  4512: 	/* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
  4513: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4514: //	ROM_LOAD( "tp030.mcu", 0x8000, 0x8000, NO_DUMP )
  4515: #endif 
  4516: 
  4517: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
  4518: 	ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
  4519: 	ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
  4520: 	ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
  4521: 	ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
  4522: 
  4523: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
  4524: 	ROM_LOAD( "tp030_5.bin",  0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
  4525: 	ROM_LOAD( "tp030_6.bin",  0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
  4526: 
  4527: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4528: 	ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) )
  4529: ROM_END
  4530: 
  4531: ROM_START( batugnsp )
  4532: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4533: 	ROM_LOAD16_WORD_SWAP( "tp030-sp.u69", 0x000000, 0x080000, CRC(8072a0cd) SHA1(3a0a9cdf894926a16800c4882a2b00383d981367) )
  4534: 
  4535: #if Zx80 
  4536: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound CPU code */
  4537: 	/* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
  4538: 	/* Its a Z?80 of some sort - 94 pin chip. */
  4539: //	ROM_LOAD( "tp030.mcu", 0x8000, 0x8000, NO_DUMP )
  4540: #endif 
  4541: 
  4542: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
  4543: 	ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
  4544: 	ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
  4545: 	ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
  4546: 	ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
  4547: 
  4548: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
  4549: 	ROM_LOAD( "tp030_5.bin",  0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
  4550: 	ROM_LOAD( "tp030_6.bin",  0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
  4551: 
  4552: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4553: 	ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) )
  4554: ROM_END
  4555: 
  4556: ROM_START( snowbro2 )
  4557: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4558: 	ROM_LOAD16_WORD_SWAP( "pro-4", 0x000000, 0x080000, CRC(4c7ee341) SHA1(ad46c605a38565d0148daac301be4e4b72302fe7) )
  4559: 
  4560: 	ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE )
  4561: 	ROM_LOAD( "rom2-l", 0x000000, 0x100000, CRC(e9d366a9) SHA1(e87e3966fce3395324b90db6c134b3345104c04b) )
  4562: 	ROM_LOAD( "rom2-h", 0x100000, 0x080000, CRC(9aab7a62) SHA1(611f6a15fdbac5d3063426a365538c1482e996bf) )
  4563: 	ROM_LOAD( "rom3-l", 0x180000, 0x100000, CRC(eb06e332) SHA1(7cd597bfffc153d178530c0f0903bebd751c9dd1) )
  4564: 	ROM_LOAD( "rom3-h", 0x280000, 0x080000, CRC(df4a952a) SHA1(b76af61c8437caca573ff1312832898666a611aa) )
  4565: 
  4566: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4567: 	ROM_LOAD( "rom4", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) )
  4568: ROM_END
  4569: 
  4570: /* -------------------------- Raizing games ------------------------- */
  4571: ROM_START( mahoudai )
  4572: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )			/* Main 68K code */
  4573: 	ROM_LOAD16_WORD_SWAP( "ra_ma_01.01", 0x000000, 0x080000, CRC(970ccc5c) SHA1(c87cab83bde0284e631f02e50068407fee81d941) )
  4574: 
  4575: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4576: 	ROM_LOAD( "ra_ma_01.02", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
  4577: 
  4578: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  4579: 	ROM_LOAD( "ra_ma_01.03",  0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) )
  4580: 	ROM_LOAD( "ra_ma_01.04",  0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) )
  4581: 
  4582: 	ROM_REGION( 0x008000, REGION_GFX2, ROMREGION_DISPOSE )
  4583: 	ROM_LOAD( "ra_ma_01.05",  0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) )
  4584: 
  4585: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4586: 	ROM_LOAD( "ra_ma_01.06", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) )
  4587: ROM_END
  4588: 
  4589: ROM_START( shippumd )
  4590: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )			/* Main 68K code */
  4591: 	ROM_LOAD16_BYTE( "ma02rom1.bin", 0x000000, 0x080000, CRC(a678b149) SHA1(8c1a631e023dbba0a3fa6cd1b7d10dec1663213a) )
  4592: 	ROM_LOAD16_BYTE( "ma02rom0.bin", 0x000001, 0x080000, CRC(f226a212) SHA1(526acf3d05fdc88054a772fbea3de2af532bf3d2) )
  4593: 
  4594: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4595: 	ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
  4596: 
  4597: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
  4598: 	ROM_LOAD( "ma02rom3.bin",  0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
  4599: 	ROM_LOAD( "ma02rom4.bin",  0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
  4600: 
  4601: 	ROM_REGION( 0x008000, REGION_GFX2, ROMREGION_DISPOSE )
  4602: 	ROM_LOAD( "ma02rom5.bin",  0x000000, 0x008000, CRC(116ae559) SHA1(4cc2d2a23cc0aefd457111b7990e47184e79204c) )
  4603: 
  4604: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )			/* ADPCM Samples */
  4605: 	ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) )
  4606: ROM_END
  4607: 
  4608: ROM_START( battleg )
  4609: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )			/* Main 68K code */
  4610: 	ROM_LOAD16_BYTE( "u123", 0x000000, 0x080000, CRC(88a4e66a) SHA1(ca97e564eed0c5e028b937312e55da56400d5c8c) )
  4611: 	ROM_LOAD16_BYTE( "u65",  0x000001, 0x080000, CRC(5dea32a3) SHA1(59df6689e3eb5ea9e49a758604d21a64c65ca14d) )
  4612: 
  4613: 	ROM_REGION( 0x28000, REGION_CPU2, 0 )			/* Sound Z80 code + bank */
  4614: 	ROM_LOAD( "snd.bin", 0x00000, 0x08000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
  4615: 	ROM_CONTINUE(        0x10000, 0x18000 )
  4616: 
  4617: 	ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
  4618: 	ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
  4619: 	ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
  4620: 	ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
  4621: 	ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
  4622: 
  4623: 	ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE )
  4624: 	ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
  4625: 
  4626: 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )		/* ADPCM Samples */
  4627: 	ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
  4628: ROM_END
  4629: 
  4630: ROM_START( battlega )
  4631: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )			/* Main 68K code */
  4632: 	ROM_LOAD16_BYTE( "prg0.bin", 0x000000, 0x080000, CRC(f80c2fc2) SHA1(a9aac5c7f5439b6fe8d1b3db1fb02a27cc28fdf6) )
  4633: 	ROM_LOAD16_BYTE( "prg1.bin", 0x000001, 0x080000, CRC(2ccfdd1e) SHA1(7a9f11f851854f3f8389b9c3c0906ebb8dc28712) )
  4634: 
  4635: 	ROM_REGION( 0x28000, REGION_CPU2, 0 )			/* Sound Z80 code + bank */
  4636: 	ROM_LOAD( "snd.bin", 0x00000, 0x08000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
  4637: 	ROM_CONTINUE(        0x10000, 0x18000 )
  4638: 
  4639: 	ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
  4640: 	ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
  4641: 	ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
  4642: 	ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
  4643: 	ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
  4644: 
  4645: 	ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE )
  4646: 	ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
  4647: 
  4648: 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )		/* ADPCM Samples */
  4649: 	ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
  4650: ROM_END
  4651: 
  4652: ROM_START( battlegb )
  4653: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )			/* Main 68K code */
  4654: 	ROM_LOAD16_BYTE( "prg_0.bin", 0x000000, 0x080000, CRC(951ecc07) SHA1(a82e4b59e4a974566e59f3ab2fbae1aec7d88a2b) )
  4655: 	ROM_LOAD16_BYTE( "prg_1.bin", 0x000001, 0x080000, CRC(729a60c6) SHA1(cb6f5d138bb82c32910f42d8ee16fa573a23cef3) )
  4656: 
  4657: 	ROM_REGION( 0x28000, REGION_CPU2, 0 )			/* Sound Z80 code + bank */
  4658: 	ROM_LOAD( "snd.bin", 0x00000, 0x08000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
  4659: 	ROM_CONTINUE(        0x10000, 0x18000 )
  4660: 
  4661: 	ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
  4662: 	ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
  4663: 	ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
  4664: 	ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
  4665: 	ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
  4666: 
  4667: 	ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE )
  4668: 	ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
  4669: 
  4670: 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )		/* ADPCM Samples */
  4671: 	ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
  4672: ROM_END
  4673: 
  4674: ROM_START( batrider )
  4675: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )			/* Main 68k code */
  4676: 	ROM_LOAD16_BYTE( "prg0b.u22", 0x000000, 0x080000, CRC(4f3fc729) SHA1(b32d51c254741b82171a86c271679522a7aefd34) )
  4677: 	ROM_LOAD16_BYTE( "prg1b.u23", 0x000001, 0x080000, CRC(8e70b492) SHA1(f84f2039826ae815afb058d71c1dbd190f9d524d) )
  4678: 	ROM_LOAD16_BYTE( "prg2.u21" , 0x100000, 0x080000, CRC(bdaa5fbf) SHA1(abd72ac633c0c8e7b4b1d7902c0d6e014ba995fe) )
  4679: 	ROM_LOAD16_BYTE( "prg3.u24" , 0x100001, 0x080000, CRC(7aa9f941) SHA1(99bdbad7a96d461073b06a53c50fc57c2fd6fc6d) )
  4680: 
  4681: 	ROM_REGION( 0x48000, REGION_CPU2, 0 )			/* Sound Z80 code + bank */
  4682: 	ROM_LOAD( "snd.u77", 0x00000, 0x08000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
  4683: 	ROM_CONTINUE(        0x10000, 0x38000 )
  4684: 
  4685: 	ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
  4686: 	ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
  4687: 	ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
  4688: 	ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
  4689: 	ROM_LOAD( "rom-4.bin", 0xc00000, 0x400000, CRC(bee03c94) SHA1(5bc1e6769c42857c03456426b502fcb86a114f19) )
  4690: 
  4691: 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )		/* ADPCM Samples 1 */
  4692: 	ROM_LOAD( "rom-5.bin", 0x040000, 0x100000, CRC(4274daf6) SHA1(85557b4707d529e5914f03c7a856864f5c24950e) )
  4693: 
  4694: 	ROM_REGION( 0x140000, REGION_SOUND2, 0 )		/* ADPCM Samples 2 */
  4695: 	ROM_LOAD( "rom-6.bin", 0x040000, 0x100000, CRC(2a1c2426) SHA1(8abc3688ffc5ebb94b8d5118d4fa0908f07fe791) )
  4696: ROM_END
  4697: 
  4698: ROM_START( batridra )
  4699: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )			/* Main 68k code */
  4700: 	ROM_LOAD16_BYTE( "prg0.bin", 0x000000, 0x080000, CRC(f93ea27c) SHA1(41023c2ee1efd70b5aa9c70e1ddd9e5c3d51d68a) )
  4701: 	ROM_LOAD16_BYTE( "prg1.bin", 0x000001, 0x080000, CRC(8ae7f592) SHA1(8a20ebf85eca621f578d2302c3a3988647b077a7) )
  4702: 	ROM_LOAD16_BYTE( "prg2.u21", 0x100000, 0x080000, CRC(bdaa5fbf) SHA1(abd72ac633c0c8e7b4b1d7902c0d6e014ba995fe) )
  4703: 	ROM_LOAD16_BYTE( "prg3.u24", 0x100001, 0x080000, CRC(7aa9f941) SHA1(99bdbad7a96d461073b06a53c50fc57c2fd6fc6d) )
  4704: 
  4705: 	ROM_REGION( 0x48000, REGION_CPU2, 0 )			/* Sound Z80 code + bank */
  4706: 	ROM_LOAD( "snd.u77", 0x00000, 0x08000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
  4707: 	ROM_CONTINUE(        0x10000, 0x38000 )
  4708: 
  4709: 	ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
  4710: 	ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
  4711: 	ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
  4712: 	ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
  4713: 	ROM_LOAD( "rom-4.bin", 0xc00000, 0x400000, CRC(bee03c94) SHA1(5bc1e6769c42857c03456426b502fcb86a114f19) )
  4714: 
  4715: 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )		/* ADPCM Samples 1 */
  4716: 	ROM_LOAD( "rom-5.bin", 0x040000, 0x100000, CRC(4274daf6) SHA1(85557b4707d529e5914f03c7a856864f5c24950e) )
  4717: 
  4718: 	ROM_REGION( 0x140000, REGION_SOUND2, 0 )		/* ADPCM Samples 2 */
  4719: 	ROM_LOAD( "rom-6.bin", 0x040000, 0x100000, CRC(2a1c2426) SHA1(8abc3688ffc5ebb94b8d5118d4fa0908f07fe791) )
  4720: ROM_END
  4721: 
  4722: ROM_START( batridrk )
  4723: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )			/* Main 68k code */
  4724: 	ROM_LOAD16_BYTE( "prg0.u22", 0x000000, 0x080000, CRC(d9d8c907) SHA1(69c197f2a41f288913f042de9eb8274c0df3ac27) )
  4725: 	ROM_LOAD16_BYTE( "prg1.u23", 0x000001, 0x080000, CRC(8e70b492) SHA1(f84f2039826ae815afb058d71c1dbd190f9d524d) )
  4726: 	ROM_LOAD16_BYTE( "prg2.u21", 0x100000, 0x080000, CRC(bdaa5fbf) SHA1(abd72ac633c0c8e7b4b1d7902c0d6e014ba995fe) )
  4727: 	ROM_LOAD16_BYTE( "prg3.u24", 0x100001, 0x080000, CRC(7aa9f941) SHA1(99bdbad7a96d461073b06a53c50fc57c2fd6fc6d) )
  4728: 
  4729: 	ROM_REGION( 0x48000, REGION_CPU2, 0 )			/* Sound Z80 code + bank */
  4730: 	ROM_LOAD( "snd.u77", 0x00000, 0x08000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
  4731: 	ROM_CONTINUE(        0x10000, 0x38000 )
  4732: 
  4733: 	ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
  4734: 	ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
  4735: 	ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
  4736: 	ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
  4737: 	ROM_LOAD( "rom-4.bin", 0xc00000, 0x400000, CRC(bee03c94) SHA1(5bc1e6769c42857c03456426b502fcb86a114f19) )
  4738: 
  4739: 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )		/* ADPCM Samples 1 */
  4740: 	ROM_LOAD( "rom-5.bin", 0x040000, 0x100000, CRC(4274daf6) SHA1(85557b4707d529e5914f03c7a856864f5c24950e) )
  4741: 
  4742: 	ROM_REGION( 0x140000, REGION_SOUND2, 0 )		/* ADPCM Samples 2 */
  4743: 	ROM_LOAD( "rom-6.bin", 0x040000, 0x100000, CRC(2a1c2426) SHA1(8abc3688ffc5ebb94b8d5118d4fa0908f07fe791) )
  4744: ROM_END
  4745: 
  4746: ROM_START( bbakraid )
  4747: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )			/* Main 68k code */
  4748: 	ROM_LOAD16_BYTE( "prg0u022.new", 0x000000, 0x080000, CRC(fa8d38d3) SHA1(aba91d87a8a62d3fe1139b4437b16e2f844264ad) )
  4749: 	ROM_LOAD16_BYTE( "prg1u023.new", 0x000001, 0x080000, CRC(4ae9aa64) SHA1(45fdf72141c4c9f24a38d4218c65874799b9c868) )
  4750: 	ROM_LOAD16_BYTE( "prg2u021.bin", 0x100000, 0x080000, CRC(ffba8656) SHA1(6526bb65fad3384de3f301a7d1095cbf03757433) )
  4751: 	ROM_LOAD16_BYTE( "prg3u024.bin", 0x100001, 0x080000, CRC(834b8ad6) SHA1(0dd6223bb0749819ad29811eeb04fd08d937abb0) )
  4752: 
  4753: 	ROM_REGION( 0x28000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4754: 	ROM_LOAD( "sndu0720.bin", 0x00000, 0x08000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
  4755: 	ROM_CONTINUE(             0x10000, 0x18000 )
  4756: 
  4757: 	ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
  4758: 	ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
  4759: 	ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
  4760: 	ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
  4761: 	ROM_LOAD( "gfxu0513.bin", 0xc00000, 0x400000, CRC(8bb635a0) SHA1(9064f1a2d8bb88ddbca702fb8556d0dfe6a5cadc) )
  4762: 
  4763: 	ROM_REGION( 0x0c00000, REGION_SOUND1, 0 )	/* YMZ280B Samples */
  4764: 	ROM_LOAD( "rom6.829", 0x000000, 0x400000, CRC(8848b4a0) SHA1(e0dce136c5d5a4c1a92b863e57848cd5927d06f1) )
  4765: 	ROM_LOAD( "rom7.830", 0x400000, 0x400000, CRC(d6224267) SHA1(5c9b7b13effbef9f707811f84bfe50ca85e605e3) )
  4766: 	ROM_LOAD( "rom8.831", 0x800000, 0x400000, CRC(a101dfb0) SHA1(4b729b0d562e09df35438e9e6b457b8de2690a6e) )
  4767: ROM_END
  4768: 
  4769: ROM_START( bbakrada )
  4770: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )			/* Main 68k code */
  4771: 	ROM_LOAD16_BYTE( "prg0u022.bin", 0x000000, 0x080000, CRC(0dd59512) SHA1(c6a4e6aa49c6ac3b04ae62a0a4cc8084ae048381) )
  4772: 	ROM_LOAD16_BYTE( "prg1u023.bin", 0x000001, 0x080000, CRC(fecde223) SHA1(eb5ac0eda49b4b0f3d25d8a8bb356e77a453d3a7) )
  4773: 	ROM_LOAD16_BYTE( "prg2u021.bin", 0x100000, 0x080000, CRC(ffba8656) SHA1(6526bb65fad3384de3f301a7d1095cbf03757433) )
  4774: 	ROM_LOAD16_BYTE( "prg3u024.bin", 0x100001, 0x080000, CRC(834b8ad6) SHA1(0dd6223bb0749819ad29811eeb04fd08d937abb0) )
  4775: 
  4776: 	ROM_REGION( 0x28000, REGION_CPU2, 0 )			/* Sound Z80 code */
  4777: 	ROM_LOAD( "sndu0720.bin", 0x00000, 0x08000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
  4778: 	ROM_CONTINUE(             0x10000, 0x18000 )
  4779: 
  4780: 	ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
  4781: 	ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
  4782: 	ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
  4783: 	ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
  4784: 	ROM_LOAD( "gfxu0513.bin", 0xc00000, 0x400000, CRC(8bb635a0) SHA1(9064f1a2d8bb88ddbca702fb8556d0dfe6a5cadc) )
  4785: 
  4786: 	ROM_REGION( 0x0c00000, REGION_SOUND1, 0 )	/* YMZ280B Samples */
  4787: 	ROM_LOAD( "rom6.829", 0x000000, 0x400000, CRC(8848b4a0) SHA1(e0dce136c5d5a4c1a92b863e57848cd5927d06f1) )
  4788: 	ROM_LOAD( "rom7.830", 0x400000, 0x400000, CRC(d6224267) SHA1(5c9b7b13effbef9f707811f84bfe50ca85e605e3) )
  4789: 	ROM_LOAD( "rom8.831", 0x800000, 0x400000, CRC(a101dfb0) SHA1(4b729b0d562e09df35438e9e6b457b8de2690a6e) )
  4790: ROM_END
  4791: 
  4792: 
  4793: /* The following is in order of Toaplan Board/game numbers */
  4794: /* See list at top of file */
  4795: /* Whoopee machine to be changed to Teki Paki when (if) HD647180 is dumped */
  4796: /* Whoopee  init   to be changed to T2_Z180   when (if) HD647180 is dumped */
  4797: 
  4798: /*   ( YEAR  NAME      PARENT    MACHINE   INPUT     INIT      MONITOR COMPANY    FULLNAME     FLAGS ) */
  4799: GAMEX( 1991, tekipaki, 0,        tekipaki, tekipaki, T2_Z180,  ROT0,   "Toaplan", "Teki Paki", GAME_NO_SOUND )
  4800: GAMEX( 1991, ghox,     0,        ghox,     ghox,     T2_Z180,  ROT270, "Toaplan", "Ghox", GAME_NO_SOUND )
  4801: GAMEX( 1992, dogyuun,  0,        dogyuun,  dogyuun,  T2_Zx80,  ROT270, "Toaplan", "Dogyuun", GAME_NO_SOUND )
  4802: GAMEX( 1993, kbash,    0,        kbash,    kbash,    T2_Zx80,  ROT0,   "Toaplan", "Knuckle Bash", GAME_NO_SOUND )
  4803: GAME ( 1992, truxton2, 0,        truxton2, truxton2, T2_noZ80, ROT270, "Toaplan", "Truxton II / Tatsujin II / Tatsujin Oh (Japan)" )
  4804: GAME ( 1991, pipibibs, 0,        pipibibs, pipibibs, T2_Z80,   ROT0,   "Toaplan", "Pipi & Bibis / Whoopee!!" )
  4805: GAME ( 1991, whoopee,  pipibibs, whoopee,  whoopee,  T2_Z80,   ROT0,   "Toaplan", "Whoopee!! / Pipi & Bibis" )
  4806: GAME ( 1991, pipibibi, pipibibs, pipibibi, pipibibi, pipibibi, ROT0,   "[Toaplan] Ryouta Kikaku", "Pipi & Bibis / Whoopee!! (bootleg ?)" )
  4807: GAMEX( 1992, fixeight, 0,        fixeight, fixeight, fixeight, ROT270, "Toaplan", "FixEight", GAME_NOT_WORKING )
  4808: GAMEX( 1992, grindstm, vfive,    vfive,    grindstm, T2_Zx80,  ROT270, "Toaplan", "Grind Stormer", GAME_NO_SOUND )
  4809: GAMEX( 1992, grindsta, vfive,    vfive,    grindstm, T2_Zx80,  ROT270, "Toaplan", "Grind Stormer (older set)", GAME_NO_SOUND )
  4810: GAMEX( 1993, vfive,    0,        vfive,    vfive,    T2_Zx80,  ROT270, "Toaplan", "V-Five (Japan)", GAME_NO_SOUND )
  4811: GAMEX( 1993, batsugun, 0,        batsugun, batsugun, T2_Zx80,  ROT270, "Toaplan", "Batsugun", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
  4812: GAMEX( 1993, batugnsp, batsugun, batsugun, batsugun, T2_Zx80,  ROT270, "Toaplan", "Batsugun (Special Ver.)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
  4813: GAME ( 1994, snowbro2, 0,        snowbro2, snowbro2, T2_noZ80, ROT0,   "[Toaplan] Hanafram", "Snow Bros. 2 - With New Elves / Otenki Paradise" )
  4814: GAME ( 1993, mahoudai, 0,        mahoudai, mahoudai, T2_Z80,   ROT270, "Raizing (Able license)", "Mahou Daisakusen (Japan)" )
  4815: GAME ( 1994, shippumd, 0,        shippumd, shippumd, T2_Z80,   ROT270, "Raizing / Eighting", "Shippu Mahou Daisakusen (Japan)" )
  4816: GAME ( 1996, battleg,  0,        battleg,  battleg,  battleg,  ROT270, "Raizing / Eighting", "Battle Garegga - Type 2 (Denmark / China) (Tue Apr 2 1996)" )
  4817: GAME ( 1996, battlega, battleg,  battleg,  battlega, battleg,  ROT270, "Raizing / Eighting", "Battle Garegga (Europe / USA / Japan / Asia) (Sat Feb 3 1996)" )
  4818: GAME ( 1996, battlegb, battleg,  battleg,  battlegb, battleg,  ROT270, "Raizing / Eighting", "Battle Garegga (Austria / Hong Kong) (Sat Mar 2 1996)" ) // displays New Version when set to HK
  4819: GAME ( 1998, batrider, 0,        batrider, batrider, battleg,  ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, version B)" )
  4820: GAME ( 1998, batridra, batrider, batrider, batrider, battleg,  ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, version A)" )
  4821: GAME ( 1998, batridrk, batrider, batrider, batrider, battleg,  ROT270, "Raizing / Eighting", "Armed Police Batrider (Korea, version B)" )
  4822: GAME ( 1999, bbakraid, 0,        bbakraid, bbakraid, bbakraid, ROT270, "Eighting", "Battle Bakraid - unlimited version (Japan) (Tue Jun 8 1999)")
  4823: GAME ( 1999, bbakrada, bbakraid, bbakraid, bbakraid, bbakrada, ROT270, "Eighting", "Battle Bakraid (Japan) (Wed Apr 7 1999)")
  4824: 




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