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

Source Listing


     1: /***************************************************************************
     2: 
     3: 							-= Jaleco Mega System 1 =-
     4: 
     5: 					driver by	Luca Elia (l.elia@tin.it)
     6: 
     7: 
     8: To enter service mode in some games press service1+F3.
     9: 
    10: 
    11: Year + Game							System		Protection
    12: ----------------------------------------------------------------------------
    13: 88	Legend of Makai (World) /		Z
    14: 	Makai Densetsu  (Japan)			Z
    15: 	P-47  (World) /					A
    16: 	P-47  (Japan)					A
    17: 	Kick Off (Japan)				A		*
    18: 	Takeda Shingen (Japan)			A		*	      Encryption (key 1)
    19: 	Iga Ninjyutsuden (Japan)		A		*	Yes + Encryption (key 1)
    20: 89	Astyanax          (World) /		A		*	Yes + Encryption (key 2)
    21: 	The Lord of King  (Japan)		A	 	*	Yes + Encryption (key 2)
    22: 	Hachoo!							A		*	Yes + Encryption (key 2)
    23: 	Jitsuryoku!! Pro Yakyuu (Japan)	A			Yes + Encryption (key 2)
    24: 	Plus Alpha						A			Yes + Encryption (key 2)
    25: 	Saint Dragon					A			Yes + Encryption (key 1)
    26: 90	RodLand  (World) /				A			      Encryption (key 3)
    27: 	RodLand  (Japan)				A			      Encryption (key 2)
    28: 	Phantasm        (Japan)	/		A			      Encryption (key 1)
    29: 91	Avenging Spirit (World) 		B			Inputs
    30: 	Earth Defense Force				B			Inputs
    31: 	64th Street  (World) /			C		*	Inputs
    32: 	64th Street  (Japan)			C		*	Inputs
    33: 92	Soldam (Japan)					A			      Encryption (key 2)
    34: 	Big Striker						C		*	Inputs
    35: 93	Chimera Beast					C		*	Inputs
    36: 	Cybattler						C			Inputs
    37: 	Peek-a-Boo!						D			Inputs
    38: --------------------------------------------^-------------------------------
    39: 											|
    40: 							The Priority Prom is missing for these games !
    41: 
    42: 
    43: 
    44: Hardware	Main CPU	Sound CPU	Sound Chips
    45: -----------------------------------------------------------
    46: MS1 - Z		68000		Z80			YM2203c
    47: MS1 - A		68000		68000		YM2151		2xOKI-M6295
    48: MS1 - B		68000		68000		YM2151		2xOKI-M6295
    49: MS1 - C		68000		68000		YM2151		2xOKI-M6295
    50: MS1 - D		68000		-			-			  OKI-M6295
    51: -----------------------------------------------------------
    52: 
    53: 
    54: 
    55: Main CPU	RW		MS1-A/Z			MS1-B			MS1-C			MS1-D
    56: -----------------------------------------------------------------------------------
    57: ROM			R	000000-03ffff	000000-03ffff	000000-07ffff	000000-03ffff
    58: 								080000-0bffff
    59: Video Regs	 W	084000-0843ff	044000-0443ff	0c0000-0cffff	0c0000-0cffff
    60: Palette		RW	088000-0887ff	048000-0487ff	0f8000-0f87ff	0d8000-0d87ff
    61: Object RAM	RW	08e000-08ffff	04e000-04ffff	0d2000-0d3fff	0ca000-0cbfff
    62: Scroll 0	RW	090000-093fff	050000-053fff	0e0000-0e3fff	0d0000-0d3fff
    63: Scroll 1	RW	094000-097fff	054000-057fff	0e8000-0ebfff	0e8000-0ebfff
    64: Scroll 2	RW	098000-09bfff	058000-05bfff	0f0000-0f3fff	-
    65: Work RAM	RW	0f0000-0fffff*	060000-07ffff*	1f0000-1fffff*	1f0000-1fffff
    66: Input Ports R	080000-080009	0e0000-0e0001**	0d8000-d80001**	100000-100001**
    67: -----------------------------------------------------------------------------------
    68: *  Some games use mirror addresses
    69: ** Through protection.
    70: 
    71: 
    72: 
    73: Sound CPU		RW		MS1-A			MS1-B			MS1-C			MS1-D
    74: -----------------------------------------------------------------------------------
    75: ROM			R		000000-01ffff		000000-01ffff		000000-01ffff	 	No Sound CPU
    76: Latch #1		R		040000-040001		<			060000-060001
    77: Latch #2		 W		060000-060001		<			<
    78: 2151 reg		 W		080000-080001		<			<
    79: 2151 data		 W		080002-080003		<			<
    80: 2151 status		R 		080002-080003		<			<
    81: 6295 #1 data	 	 W 		0a0000-0a0003		<			<
    82: 6295 #1 status		R 		0a0000-0a0001		<			<
    83: 6295 #2 data	 	 W 		0c0000-0c0003		<			<
    84: 6295 #2 status		R 		0c0000-0c0001		<			<
    85: RAM			RW		0f0000-0f3fff		0e0000-0effff?		<
    86: -----------------------------------------------------------------------------------
    87: 
    88: 
    89: 								Issues / To Do
    90: 								--------------
    91: 
    92: - There's a 512 byte PROM in the video section (different for every game)
    93:   that controls the priorities. It's been dumped for only a few games, so
    94:   we have to use fake data for the missing ones.
    95: 
    96: - Making the M6295 status register return 0 fixes the music tempo in
    97:   avspirit, 64street, astyanax etc. but makes most of the effects in
    98:   hachoo disappear! Define SOUND_HACK to 0 to turn this hack off
    99:   This seems to be some Jaleco magic at work (strange protection?). The
   100:   bootleg version of rodlandj has one instruction patched out to do exactly
   101:   the same thing that we are doing (ignoring the 6295 status).
   102: 
   103: - Iganinju doesn't work properly: I have to patch lev3 irq and it severely
   104:   slows down at times. Strangely, it gets *better* by lowering the main CPU
   105:   clock from 12 to 7 MHz.
   106:   This is likely an interrupt timing issue: changing the order in
   107:   interrupt_A() from 3 2 1 to 1 2 3 makes it work reasonably well for a very
   108:   short while.
   109:   ( Fixed by Kale 21 May 2002 )
   110: 
   111: - VERY bad sprite lag in iganinju and plusalph and generally others.
   112:   Is this a sprites buffer issue ?
   113: 
   114: - Understand a handful of unknown bits in video regs
   115: 
   116: 
   117: ***************************************************************************/
   118: 
   119: // This will fix tempo and samples in at least avsprit, 64street, astyanax
   120: // but will break at least one game: hachoo
   121: 
   122: #define SOUND_HACK 1 
   123: 
   124: #include "driver.h" 
   125: #include "megasys1.h" 
   126: #include "vidhrdw/generic.h" 
   127: 
   128: 
   129: /* Variables only used here: */
   130: 
   131: static data16_t ip_select, ip_select_values[5];
   132: 
   133: 
   134: /* Variables defined in vidhrdw: */
   135: 
   136: 
   137: 
   138: /* Functions defined in vidhrdw: */
   139: 
   140: PALETTE_INIT( megasys1 );
   141: VIDEO_START( megasys1 );
   142: VIDEO_UPDATE( megasys1 );
   143: 
   144: READ16_HANDLER( megasys1_vregs_C_r );
   145: 
   146: WRITE16_HANDLER( megasys1_vregs_A_w );
   147: WRITE16_HANDLER( megasys1_vregs_C_w );
   148: WRITE16_HANDLER( megasys1_vregs_D_w );
   149: 
   150: 
   151: 
   152: 
   153: MACHINE_INIT( megasys1 )
   154: {
   155: 	ip_select = 0;	/* reset protection */
   156: }
   157: 
   158: 
   159: 
   160: /*
   161: **
   162: **	Main cpu data
   163: **
   164: **
   165: */
   166: 
   167: 
   168: /***************************************************************************
   169: 						[ Main CPU - System A / Z ]
   170: ***************************************************************************/
   171: 
   172: static READ16_HANDLER( coins_r )	{return readinputport(0);}	// < 00 | Coins >
   173: static READ16_HANDLER( player1_r )	{return readinputport(1);}	// < 00 | Player 1 >
   174: static READ16_HANDLER( player2_r )	{return readinputport(2) * 256 +
   175: 									        readinputport(3);}		// < Reserve | Player 2 >
   176: static READ16_HANDLER( dsw1_r )		{return readinputport(4);}							//   DSW 1
   177: static READ16_HANDLER( dsw2_r )		{return readinputport(5);}							//   DSW 2
   178: static READ16_HANDLER( dsw_r )		{return readinputport(4) * 256 +
   179: 									        readinputport(5);}		// < DSW 1 | DSW 2 >
   180: 
   181: 
   182: #define INTERRUPT_NUM_A		3 
   183: INTERRUPT_GEN( interrupt_A )
   184: {
   185: 	switch ( cpu_getiloops() )
   186: 	{
   187: 		case 0:		cpu_set_irq_line(0, 3, HOLD_LINE);	break;
   188: 		case 1:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
   189: 		case 2:		cpu_set_irq_line(0, 1, HOLD_LINE);	break;
   190: 	}
   191: }
   192: 
   193: INTERRUPT_GEN( interrupt_A_iganinju )
   194: {
   195: 	switch ( cpu_getiloops() )
   196: 	{
   197: 		case 0:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
   198: 		case 1:		cpu_set_irq_line(0, 1, HOLD_LINE);	break;
   199: 	//	case 2:		cpu_set_irq_line(0, 1, HOLD_LINE);	break;
   200: 	}
   201: }
   202: 
   203: 
   204: 
   205: 
   206: static MEMORY_READ16_START( readmem_A )
   207: 	MEMORY_ADDRESS_BITS(20)
   208: 	{ 0x000000, 0x05ffff, MRA16_ROM },
   209: 	{ 0x080000, 0x080001, coins_r },
   210: 	{ 0x080002, 0x080003, player1_r },
   211: 	{ 0x080004, 0x080005, player2_r },
   212: 	{ 0x080006, 0x080007, dsw_r },
   213: 	{ 0x080008, 0x080009, soundlatch2_word_r },	/* from sound cpu */
   214: 	{ 0x084000, 0x084fff, MRA16_RAM },
   215: 	{ 0x088000, 0x0887ff, paletteram16_word_r },
   216: 	{ 0x08e000, 0x08ffff, MRA16_RAM },
   217: 	{ 0x090000, 0x093fff, MRA16_RAM },
   218: 	{ 0x094000, 0x097fff, MRA16_RAM },
   219: 	{ 0x098000, 0x09bfff, MRA16_RAM },
   220: 	{ 0x0f0000, 0x0fffff, MRA16_RAM },
   221: MEMORY_END
   222: 
   223: static MEMORY_WRITE16_START( writemem_A )
   224: 	MEMORY_ADDRESS_BITS(20)
   225:  	{ 0x000000, 0x05ffff, MWA16_ROM },
   226: 	{ 0x084000, 0x0843ff, megasys1_vregs_A_w, &megasys1_vregs },
   227: 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
   228: 	{ 0x08e000, 0x08ffff, MWA16_RAM, &megasys1_objectram },
   229: 	{ 0x090000, 0x093fff, megasys1_scrollram_0_w, &megasys1_scrollram_0 },
   230: 	{ 0x094000, 0x097fff, megasys1_scrollram_1_w, &megasys1_scrollram_1 },
   231: 	{ 0x098000, 0x09bfff, megasys1_scrollram_2_w, &megasys1_scrollram_2 },
   232: 	{ 0x0f0000, 0x0fffff, MWA16_RAM, &megasys1_ram },
   233: MEMORY_END
   234: 
   235: 
   236: 
   237: /***************************************************************************
   238: 							[ Main CPU - System B ]
   239: ***************************************************************************/
   240: 
   241: #define INTERRUPT_NUM_B		3 
   242: INTERRUPT_GEN( interrupt_B )
   243: {
   244: 	switch (cpu_getiloops())
   245: 	{
   246: 		case 0:		cpu_set_irq_line(0, 4, HOLD_LINE); break;
   247: 		case 1:		cpu_set_irq_line(0, 1, HOLD_LINE); break;
   248: 		default:	cpu_set_irq_line(0, 2, HOLD_LINE); break;
   249: 	}
   250: }
   251: 
   252: 
   253: 
   254: /*			 Read the input ports, through a protection device:
   255: 
   256:  ip_select_values must contain the 5 codes sent to the protection device
   257:  in order to obtain the status of the following 5 input ports:
   258: 
   259: 		 Coins	Player1		Player2		DSW1		DSW2
   260: 
   261:  in that order.			*/
   262: 
   263: static READ16_HANDLER( ip_select_r )
   264: {
   265: 	int i;
   266: 
   267: //	Coins	P1		P2		DSW1	DSW2
   268: //	57		53		54		55		56		< 64street
   269: //	37		35		36		33		34		< avspirit
   270: //	58		54		55		56		57		< bigstrik
   271: //	56		52		53		54		55		< cybattlr
   272: // 	20		21		22		23		24		< edf
   273: 
   274: 	/* f(x) = ((x*x)>>4)&0xFF ; f(f($D)) == 6 */
   275: 	if ((ip_select & 0xF0) == 0xF0) return 0x000D;
   276: 
   277: 	for (i = 0; i < 5; i++)	if (ip_select == ip_select_values[i]) break;
   278: 
   279: 	switch (i)
   280: 	{
   281: 			case 0 :	return coins_r(0,0);	break;
   282: 			case 1 :	return player1_r(0,0);	break;
   283: 			case 2 :	return player2_r(0,0);	break;
   284: 			case 3 :	return dsw1_r(0,0);		break;
   285: 			case 4 :	return dsw2_r(0,0);		break;
   286: 			default	 :	return 0x0006;
   287: 	}
   288: }
   289: 
   290: static WRITE16_HANDLER( ip_select_w )
   291: {
   292: 	COMBINE_DATA(&ip_select);
   293: 	cpu_set_irq_line(0,2,HOLD_LINE);
   294: }
   295: 
   296: 
   297: static MEMORY_READ16_START( readmem_B )
   298: 	MEMORY_ADDRESS_BITS(20)
   299: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   300: 	{ 0x044000, 0x044fff, MRA16_RAM },
   301: 	{ 0x048000, 0x0487ff, paletteram16_word_r },
   302: 	{ 0x04e000, 0x04ffff, MRA16_RAM },
   303: 	{ 0x050000, 0x053fff, MRA16_RAM },
   304: 	{ 0x054000, 0x057fff, MRA16_RAM },
   305: 	{ 0x058000, 0x05bfff, MRA16_RAM },
   306: 	{ 0x060000, 0x07ffff, MRA16_RAM },
   307: 	{ 0x080000, 0x0bffff, MRA16_ROM },
   308: 	{ 0x0e0000, 0x0e0001, ip_select_r },
   309: MEMORY_END
   310: 
   311: static MEMORY_WRITE16_START( writemem_B )
   312: 	MEMORY_ADDRESS_BITS(20)
   313:  	{ 0x000000, 0x03ffff, MWA16_ROM },
   314: 	{ 0x044000, 0x0443ff, megasys1_vregs_A_w, &megasys1_vregs },
   315: 	{ 0x048000, 0x0487ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
   316: 	{ 0x04e000, 0x04ffff, MWA16_RAM, &megasys1_objectram },
   317: 	{ 0x050000, 0x053fff, megasys1_scrollram_0_w, &megasys1_scrollram_0 },
   318: 	{ 0x054000, 0x057fff, megasys1_scrollram_1_w, &megasys1_scrollram_1 },
   319: 	{ 0x058000, 0x05bfff, megasys1_scrollram_2_w, &megasys1_scrollram_2 },
   320: 	{ 0x060000, 0x07ffff, MWA16_RAM, &megasys1_ram },
   321: 	{ 0x080000, 0x0bffff, MWA16_ROM },
   322: 	{ 0x0e0000, 0x0e0001, ip_select_w },
   323: MEMORY_END
   324: 
   325: 
   326: 
   327: /***************************************************************************
   328: 							[ Main CPU - System C ]
   329: ***************************************************************************/
   330: 
   331: 
   332: #define INTERRUPT_NUM_C	INTERRUPT_NUM_B 
   333: #define interrupt_C		interrupt_B 
   334: 
   335: static MEMORY_READ16_START( readmem_C )
   336: 	MEMORY_ADDRESS_BITS(21)
   337: 	{ 0x000000, 0x07ffff, MRA16_ROM },
   338: 	{ 0x0c0000, 0x0cffff, megasys1_vregs_C_r },
   339: 	{ 0x0d2000, 0x0d3fff, MRA16_RAM },
   340: 	{ 0x0e0000, 0x0e3fff, MRA16_RAM },
   341: 	{ 0x0e8000, 0x0ebfff, MRA16_RAM },
   342: 	{ 0x0f0000, 0x0f3fff, MRA16_RAM },
   343: 	{ 0x0f8000, 0x0f87ff, paletteram16_word_r },
   344: 	{ 0x0d8000, 0x0d8001, ip_select_r },
   345: 	{ 0x1f0000, 0x1fffff, MRA16_RAM },
   346: MEMORY_END
   347: 
   348: static MEMORY_WRITE16_START( writemem_C )
   349: 	MEMORY_ADDRESS_BITS(21)
   350:  	{ 0x000000, 0x07ffff, MWA16_ROM },
   351: 	{ 0x0c0000, 0x0cffff, megasys1_vregs_C_w, &megasys1_vregs },
   352: 	{ 0x0d2000, 0x0d3fff, MWA16_RAM, &megasys1_objectram },
   353: 	{ 0x0e0000, 0x0e3fff, megasys1_scrollram_0_w, &megasys1_scrollram_0 },
   354: 	{ 0x0e8000, 0x0ebfff, megasys1_scrollram_1_w, &megasys1_scrollram_1 },
   355: 	{ 0x0f0000, 0x0f3fff, megasys1_scrollram_2_w, &megasys1_scrollram_2 },
   356: 	{ 0x0f8000, 0x0f87ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
   357: 	{ 0x0d8000, 0x0d8001, ip_select_w },
   358: 	{ 0x1f0000, 0x1fffff, MWA16_RAM, &megasys1_ram },
   359: MEMORY_END
   360: 
   361: 
   362: 
   363: 
   364: /***************************************************************************
   365: 							[ Main CPU - System D ]
   366: ***************************************************************************/
   367: 
   368: #define INTERRUPT_NUM_D		1 
   369: INTERRUPT_GEN( interrupt_D )
   370: {
   371: 	cpu_set_irq_line(0, 2, HOLD_LINE);
   372: }
   373: 
   374: static MEMORY_READ16_START( readmem_D )
   375: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   376: 	{ 0x0c0000, 0x0c9fff, MRA16_RAM },
   377: 	{ 0x0ca000, 0x0cbfff, MRA16_RAM },
   378: 	{ 0x0d0000, 0x0d3fff, MRA16_RAM },
   379: 	{ 0x0d4000, 0x0d7fff, MRA16_RAM },
   380: 	{ 0x0d8000, 0x0d87ff, paletteram16_word_r },
   381: 	{ 0x0db000, 0x0db7ff, paletteram16_word_r },
   382: 	{ 0x0e0000, 0x0e0001, dsw_r },
   383: 	{ 0x0e8000, 0x0ebfff, MRA16_RAM },
   384: 	{ 0x0f0000, 0x0f0001, coins_r }, /* Coins + P1&P2 Buttons */
   385: 	{ 0x0f8000, 0x0f8001, OKIM6295_status_0_lsb_r },
   386: //	{ 0x100000, 0x100001  protection
   387: 	{ 0x1f0000, 0x1fffff, MRA16_RAM },
   388: MEMORY_END
   389: 
   390: static MEMORY_WRITE16_START( writemem_D )
   391:  	{ 0x000000, 0x03ffff, MWA16_ROM },
   392: 	{ 0x0c0000, 0x0c9fff, megasys1_vregs_D_w, &megasys1_vregs },
   393: 	{ 0x0ca000, 0x0cbfff, MWA16_RAM, &megasys1_objectram },
   394: 	{ 0x0d0000, 0x0d3fff, megasys1_scrollram_1_w, &megasys1_scrollram_1 },
   395: 	{ 0x0d4000, 0x0d7fff, megasys1_scrollram_2_w, &megasys1_scrollram_2 },
   396: 	{ 0x0d8000, 0x0d87ff, paletteram16_RRRRRGGGGGBBBBBx_word_w },
   397: 	{ 0x0db000, 0x0db7ff, paletteram16_RRRRRGGGGGBBBBBx_word_w, &paletteram16 },
   398: 	{ 0x0e8000, 0x0ebfff, megasys1_scrollram_0_w, &megasys1_scrollram_0 },
   399: 	{ 0x0f8000, 0x0f8001, OKIM6295_data_0_lsb_w },
   400: //	{ 0x100000, 0x100001  protection
   401: 	{ 0x1f0000, 0x1fffff, MWA16_RAM, &megasys1_ram },
   402: MEMORY_END
   403: 
   404: 
   405: 
   406: 
   407: /*
   408: **
   409: **	Sound cpu data
   410: **
   411: **
   412: */
   413: 
   414: /*
   415: 							[ Sound CPU interrupts ]
   416: 
   417: 	[MS1-A]
   418: 		astyanax				all rte
   419: 		hachoo					all reset the program, but the status
   420: 								register is set to 2700
   421: 		iganinju				all rte
   422: 		p47 & p47j				all rte
   423: 		phantasm				all rte (4 is different, but rte)
   424: 		plusalph				all rte
   425: 		rodland	& rodlandj		all rte (4 is different, but rte)
   426: 		stdragon				4]read & store sound command and echo to main cpu
   427: 								rest: rte
   428: 	[MS1-B]
   429: 		avspirit				all rte (4 is different, but rte)
   430: 		edf						all rte (4 is different, but rte)
   431: 
   432: 	[MS1-C]
   433: 		64street				all rte (4 is different, but rte)
   434: 		chimerab				all rte
   435: 		cybattlr
   436: 			1;3;5-7]400	busy loop
   437: 			2]40c	read & store sound command and echo to main cpu
   438: 			4]446	rte
   439: 
   440: 
   441:  These games almost always don't use the interrupts to drive the music
   442:  tempo (cybattlr and stdragon do!) but use the YM2151 timers instead
   443:  (they poll the status register). Since those timers are affected by
   444:  the YM2151 clock, it's this latter that ultimately decides the music
   445:  tempo.
   446: 
   447:  Note that some games' music is severely slowed down and out of sync
   448:  (avspirit, 64street) by the fact that the game waits for some samples
   449:  to be played entirely (M6295 status register polled) but they take
   450:  too much time (and raising the M6295 clock rate would, on the other
   451:  hand, screw the pitch of the samples)
   452: 
   453:  A temporary fix is to make the status of this chip return 0...
   454:  unfortunately, this trick makes most of the effects disappear in at
   455:  least one game: hachoo!
   456: 
   457:  IRQ 4 comes from the YM2151.  This is confirmed by jitsupro, which
   458:  runs at a much slower timer rate than the other games and formerly
   459:  required it's own machine driver to get interrupts at around the
   460:  right speed.  Now with the 2151 driving all games have the proper
   461:  tempo with no hacks.
   462: 
   463: */
   464: 
   465: /* YM2151 IRQ */
   466: static void megasys1_sound_irq(int irq)
   467: {
   468: 	if (irq)
   469: 		cpu_set_irq_line(1, 4, HOLD_LINE);
   470: }
   471: 
   472: static READ16_HANDLER( oki_status_0_r )
   473: {
   474: #if SOUND_HACK 
   475: 	return 0;
   476: #else 
   477: 	return OKIM6295_status_0_lsb_r(offset,mem_mask);
   478: #endif 
   479: }
   480: 
   481: static READ16_HANDLER( oki_status_1_r )
   482: {
   483: #if SOUND_HACK 
   484: 	return 0;
   485: #else 
   486: 	return OKIM6295_status_1_lsb_r(offset,mem_mask);
   487: #endif 
   488: }
   489: 
   490: 
   491: /***************************************************************************
   492: 							[ Sound CPU - System A ]
   493: ***************************************************************************/
   494: 
   495: 
   496: static MEMORY_READ16_START( sound_readmem_A )
   497: 	{ 0x000000, 0x01ffff, MRA16_ROM },
   498: 	{ 0x040000, 0x040001, soundlatch_word_r },
   499: 	{ 0x080002, 0x080003, YM2151_status_port_0_lsb_r },
   500: 	{ 0x0a0000, 0x0a0001, oki_status_0_r },
   501: 	{ 0x0c0000, 0x0c0001, oki_status_1_r },
   502: 	{ 0x0e0000, 0x0fffff, MRA16_RAM },
   503: MEMORY_END
   504: 
   505: static MEMORY_WRITE16_START( sound_writemem_A )
   506: 	{ 0x000000, 0x01ffff, MWA16_ROM },
   507: 	{ 0x060000, 0x060001, soundlatch2_word_w },	// to main cpu
   508: 	{ 0x080000, 0x080001, YM2151_register_port_0_lsb_w },
   509: 	{ 0x080002, 0x080003, YM2151_data_port_0_lsb_w },
   510: 	{ 0x0a0000, 0x0a0003, OKIM6295_data_0_lsb_w },
   511: 	{ 0x0c0000, 0x0c0003, OKIM6295_data_1_lsb_w },
   512: 	{ 0x0e0000, 0x0fffff, MWA16_RAM },
   513: MEMORY_END
   514: 
   515: 
   516: 
   517: 
   518: 
   519: 
   520: /***************************************************************************
   521: 						[ Sound CPU - System B / C ]
   522: ***************************************************************************/
   523: 
   524: 
   525: static MEMORY_READ16_START( sound_readmem_B )
   526: 	{ 0x000000, 0x01ffff, MRA16_ROM },
   527: 	{ 0x040000, 0x040001, soundlatch_word_r },	/* from main cpu */
   528: 	{ 0x060000, 0x060001, soundlatch_word_r },	/* from main cpu */
   529: 	{ 0x080002, 0x080003, YM2151_status_port_0_lsb_r },
   530: 	{ 0x0a0000, 0x0a0001, oki_status_0_r },
   531: 	{ 0x0c0000, 0x0c0001, oki_status_1_r },
   532: 	{ 0x0e0000, 0x0effff, MRA16_RAM },
   533: MEMORY_END
   534: 
   535: static MEMORY_WRITE16_START( sound_writemem_B )
   536: 	{ 0x000000, 0x01ffff, MWA16_ROM	 },
   537: 	{ 0x040000, 0x040001, soundlatch2_word_w },	/* to main cpu */
   538: 	{ 0x060000, 0x060001, soundlatch2_word_w },	/* to main cpu */
   539: 	{ 0x080000, 0x080001, YM2151_register_port_0_lsb_w },
   540: 	{ 0x080002, 0x080003, YM2151_data_port_0_lsb_w },
   541: 	{ 0x0a0000, 0x0a0003, OKIM6295_data_0_lsb_w },
   542: 	{ 0x0c0000, 0x0c0003, OKIM6295_data_1_lsb_w },
   543: 	{ 0x0e0000, 0x0effff, MWA16_RAM },
   544: MEMORY_END
   545: 
   546: #define sound_readmem_C		sound_readmem_B 
   547: #define sound_writemem_C	sound_writemem_B 
   548: 
   549: 
   550: 
   551: 
   552: 
   553: 
   554: /***************************************************************************
   555: 						[ Sound CPU - System Z ]
   556: ***************************************************************************/
   557: 
   558: 
   559: 
   560: static MEMORY_READ_START( sound_readmem_z80 )
   561: 	{ 0x0000, 0x3fff, MRA_ROM },
   562: 	{ 0xc000, 0xc7ff, MRA_RAM },
   563: 	{ 0xe000, 0xe000, soundlatch_r },
   564: MEMORY_END
   565: 
   566: static MEMORY_WRITE_START( sound_writemem_z80 )
   567: 	{ 0x0000, 0x3fff, MWA_ROM },
   568: 	{ 0xc000, 0xc7ff, MWA_RAM },
   569: 	{ 0xf000, 0xf000, MWA_NOP }, /* ?? */
   570: MEMORY_END
   571: 
   572: 
   573: static PORT_READ_START( sound_readport )
   574: 	{ 0x00, 0x00, YM2203_status_port_0_r },
   575: PORT_END
   576: 
   577: static PORT_WRITE_START( sound_writeport )
   578: 	{ 0x00, 0x00, YM2203_control_port_0_w },
   579: 	{ 0x01, 0x01, YM2203_write_port_0_w },
   580: PORT_END
   581: 
   582: 
   583: 
   584: 
   585: 
   586: 
   587: 
   588: static struct GfxLayout tilelayout =
   589: {
   590: 	8,8,
   591: 	RGN_FRAC(1,1),
   592: 	4,
   593: 	{ STEP4(0,1)   },
   594: 	{ STEP8(0,4)   },
   595: 	{ STEP8(0,4*8) },
   596: 	8*8*4
   597: };
   598: 
   599: static struct GfxLayout spritelayout =
   600: {
   601: 	16,16,
   602: 	RGN_FRAC(1,1),
   603: 	4,
   604: 	{ STEP4(0,1)   },
   605: 	{ STEP8(8*8*4*0,4), STEP8(8*8*4*2,4) },
   606: 	{ STEP16(0,4*8) },
   607: 	16*16*4
   608: };
   609: 
   610: static struct GfxDecodeInfo gfxdecodeinfo_Z[] =
   611: {
   612: 	{ REGION_GFX1, 0, &tilelayout,   256*0, 16 },	// [0] Scroll 0
   613: 	{ REGION_GFX2, 0, &tilelayout,   256*2, 16 },	// [1] Scroll 1
   614: 	{ REGION_GFX3, 0, &spritelayout, 256*1, 16 },	// [2] Sprites
   615: 	{ -1 }
   616: };
   617: 
   618: static struct GfxDecodeInfo gfxdecodeinfo_ABC[] =
   619: {
   620: 	{ REGION_GFX1, 0, &tilelayout,   256*0, 16 },	// [0] Scroll 0
   621: 	{ REGION_GFX2, 0, &tilelayout,   256*1, 16 },	// [1] Scroll 1
   622: 	{ REGION_GFX3, 0, &tilelayout,   256*2, 16 },	// [2] Scroll 2 (unused in system D)
   623: 	{ REGION_GFX4, 0, &spritelayout, 256*3, 16 },	// [3] Sprites
   624: 	{ -1 }
   625: };
   626: 
   627: 
   628: /***************************************************************************
   629: 
   630: 							Machine Driver Macros
   631: 
   632: ***************************************************************************/
   633: 
   634: /***************************************************************************
   635: 
   636: 						[  Mega System 1 A,B and C ]
   637: 
   638: 						  2x68000 2xM6295 1xYM2151
   639: 
   640: ***************************************************************************/
   641: 
   642: /* Provided by Jim Hernandez: 3.5MHz for FM, 30KHz (!) for ADPCM */
   643: 
   644: static struct YM2151interface ym2151_interface =
   645: {
   646: 	1,
   647: 	7000000/2,
   648: 	{ YM3012_VOL(80,MIXER_PAN_LEFT,80,MIXER_PAN_RIGHT) },
   649: 	{ megasys1_sound_irq }
   650: };
   651: 
   652: static struct OKIM6295interface okim6295_interface =
   653: {
   654: 	2,
   655: 	{ 4000000/132, 4000000/132 },	/* seems appropriate */
   656: 	{ REGION_SOUND1, REGION_SOUND2 },
   657: 	{ MIXER(30,MIXER_PAN_LEFT), MIXER(30,MIXER_PAN_RIGHT) }
   658: };
   659: 
   660: static MACHINE_DRIVER_START( system_A )
   661: 
   662: 	/* basic machine hardware */
   663: 	MDRV_CPU_ADD_TAG("main", M68000, 12000000)
   664: 	MDRV_CPU_MEMORY(readmem_A,writemem_A)
   665: 	MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_A)
   666: 
   667: 	MDRV_CPU_ADD_TAG("sound", M68000, 7000000)
   668: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
   669: 	MDRV_CPU_MEMORY(sound_readmem_A,sound_writemem_A)
   670: 
   671: 	MDRV_FRAMES_PER_SECOND(60)
   672: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   673: 
   674: 	MDRV_MACHINE_INIT(megasys1)
   675: 
   676: 	/* video hardware */
   677: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   678: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   679: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
   680: 	MDRV_GFXDECODE(gfxdecodeinfo_ABC)
   681: 	MDRV_PALETTE_LENGTH(1024)
   682: 
   683: 	MDRV_PALETTE_INIT(megasys1)
   684: 	MDRV_VIDEO_START(megasys1)
   685: 	MDRV_VIDEO_UPDATE(megasys1)
   686: 
   687: 	/* sound hardware */
   688: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
   689: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   690: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
   691: MACHINE_DRIVER_END
   692: 
   693: static MACHINE_DRIVER_START( system_A_iganinju )
   694: 
   695: 	/* basic machine hardware */
   696: 	MDRV_IMPORT_FROM(system_A)
   697: 	MDRV_CPU_MODIFY("main")
   698: 	MDRV_CPU_VBLANK_INT(interrupt_A_iganinju,INTERRUPT_NUM_A)
   699: MACHINE_DRIVER_END
   700: 
   701: static MACHINE_DRIVER_START( system_B )
   702: 
   703: 	/* basic machine hardware */
   704: 	MDRV_IMPORT_FROM(system_A)
   705: 	MDRV_CPU_MODIFY("main")
   706: 	MDRV_CPU_MEMORY(readmem_B,writemem_B)
   707: 	MDRV_CPU_VBLANK_INT(interrupt_B,INTERRUPT_NUM_B)
   708: 
   709: 	MDRV_CPU_MODIFY("sound")
   710: 	MDRV_CPU_MEMORY(sound_readmem_B,sound_writemem_B)
   711: MACHINE_DRIVER_END
   712: 
   713: 
   714: static MACHINE_DRIVER_START( system_C )
   715: 
   716: 	/* basic machine hardware */
   717: 	MDRV_IMPORT_FROM(system_A)
   718: 	MDRV_CPU_MODIFY("main")
   719: 	MDRV_CPU_MEMORY(readmem_C,writemem_C)
   720: 	MDRV_CPU_VBLANK_INT(interrupt_C,INTERRUPT_NUM_C)
   721: 
   722: 	MDRV_CPU_MODIFY("sound")
   723: 	MDRV_CPU_MEMORY(sound_readmem_C,sound_writemem_C)
   724: MACHINE_DRIVER_END
   725: 
   726: 
   727: /***************************************************************************
   728: 
   729: 							[ Mega System 1 D ]
   730: 
   731: 							  1x68000 1xM6295
   732: 
   733: KLOV entry for peekaboo: Jaleco board no. PB-92127A. Main CPU: Motorola 68000P10
   734: 
   735: ***************************************************************************/
   736: 
   737: 
   738: static struct OKIM6295interface okim6295_interface_D =
   739: {
   740: 	1,
   741: 	{ 12000 },
   742: 	{ REGION_SOUND1 },
   743: 	{ 100 }
   744: };
   745: 
   746: static MACHINE_DRIVER_START( system_D )
   747: 
   748: 	/* basic machine hardware */
   749: 	MDRV_CPU_ADD(M68000, 10000000)	/* ? */
   750: 	MDRV_CPU_MEMORY(readmem_D,writemem_D)
   751: 	MDRV_CPU_VBLANK_INT(interrupt_D,INTERRUPT_NUM_D)
   752: 
   753: 	MDRV_FRAMES_PER_SECOND(60)
   754: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   755: 
   756: 	MDRV_MACHINE_INIT(megasys1)
   757: 
   758: 	/* video hardware */
   759: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   760: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   761: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
   762: 	MDRV_GFXDECODE(gfxdecodeinfo_ABC)
   763: 	MDRV_PALETTE_LENGTH(1024)
   764: 
   765: 	MDRV_PALETTE_INIT(megasys1)
   766: 	MDRV_VIDEO_START(megasys1)
   767: 	MDRV_VIDEO_UPDATE(megasys1)
   768: 
   769: 	/* sound hardware */
   770: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_D)
   771: MACHINE_DRIVER_END
   772: 
   773: 
   774: 
   775: 
   776: /***************************************************************************
   777: 
   778: 							[  Mega System 1 Z ]
   779: 
   780: 							 68000+Z80 1xYM2203
   781: 
   782: 							OSC:	5, 12 MHz
   783: 
   784: ***************************************************************************/
   785: 
   786: 
   787: static void irq_handler(int irq)
   788: {
   789: 	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
   790: }
   791: 
   792: 
   793: static struct YM2203interface ym2203_interface =
   794: {
   795: 	1,
   796: 	1500000,	/* ??? */
   797: 	{ YM2203_VOL(50,50) },
   798: 	{ 0 },
   799: 	{ 0 },
   800: 	{ 0	},
   801: 	{ 0 },
   802: 	{ irq_handler }
   803: };
   804: 
   805: static MACHINE_DRIVER_START( system_Z )
   806: 
   807: 	/* basic machine hardware */
   808: 	MDRV_CPU_ADD(M68000, 6000000) /* ??? */
   809: 	MDRV_CPU_MEMORY(readmem_A,writemem_A)
   810: 	MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_A)
   811: 
   812: 	MDRV_CPU_ADD(Z80, 3000000)
   813: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* ??? */
   814: 	MDRV_CPU_MEMORY(sound_readmem_z80,sound_writemem_z80)
   815: 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
   816: 
   817: 	MDRV_FRAMES_PER_SECOND(60)
   818: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   819: 
   820: 	/* video hardware */
   821: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   822: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   823: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
   824: 	MDRV_GFXDECODE(gfxdecodeinfo_Z)
   825: 	MDRV_PALETTE_LENGTH(768)
   826: 
   827: 	MDRV_VIDEO_START(megasys1)
   828: 	MDRV_VIDEO_UPDATE(megasys1)
   829: 
   830: 	/* sound hardware */
   831: 	MDRV_SOUND_ADD(YM2203, ym2203_interface)
   832: MACHINE_DRIVER_END
   833: 
   834: 
   835: 
   836: 
   837: 
   838: /***************************************************************************
   839: 
   840: 								ROMs Loading
   841: 
   842: ***************************************************************************/
   843: 
   844: 
   845: 
   846: /***************************************************************************
   847: 
   848: 							[ 64th Street ]
   849: 
   850: (World version)
   851: interrupts:	1] 10eac:	disabled while b6c4=6 (10fb6 test)
   852: 						if (8b1c)	8b1c<-0
   853: 							color cycle
   854: 							copies 800 bytes 98da->8008
   855: 
   856: 			2] 10f28:	switch b6c4
   857: 						0	RTE
   858: 						2	10f44:	M[b6c2]<-d8000; b6c4<-4
   859: 						4	10f6c:	next b6c2 & d8000.	if (b6c2>A)	b6c2,4<-0
   860: 														else		b6c4  <-2
   861: 						6	10f82: b6c6<-(d8001) b6c7<-FF (test)
   862: 
   863: 			4] 10ed0:	disabled while b6c4=6 (10fb6 test)
   864: 						watchdog 8b1e
   865: 						many routines...
   866: 						b6c2<-0
   867: 
   868: 13ca	print a string: a7->screen disp.l(base=f0004),src.l
   869: 13ea	print a string: a1->(chars)*
   870: 1253c	hw test (table of tests at 125c6)		*TRAP#D*
   871: 125f8	mem test (table of mem tests at 126d4)
   872: 1278e	input test (table of tests at 12808)
   873: 128a8	sound test	12a08	crt test
   874: 12aca	dsw test (b68e.w = dswa.b|dswb.b)
   875: 
   876: ff8b1e.w	incremented by int4, when >= b TRAP#E (software watchdog error)
   877: ff9df8.w	*** level ***
   878: 
   879: ***************************************************************************/
   880: 
   881: ROM_START( 64street )
   882: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* Main CPU Code */
   883: 	ROM_LOAD16_BYTE( "64th_03.rom", 0x000000, 0x040000, CRC(ed6c6942) SHA1(f610b31548ed4889a43d77be286b9bfabf700064) )
   884: 	ROM_LOAD16_BYTE( "64th_02.rom", 0x000001, 0x040000, CRC(0621ed1d) SHA1(97d3e84cced23865157c5a15cbf5b7671c1dbae1) )
   885: 
   886: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
   887: 	ROM_LOAD16_BYTE( "64th_08.rom", 0x000000, 0x010000, CRC(632be0c1) SHA1(626073037249d96ac70b2d11b2dd72b22bac49c7) )
   888: 	ROM_LOAD16_BYTE( "64th_07.rom", 0x000001, 0x010000, CRC(13595d01) SHA1(e730a530ca232aab883217fa12804075cb2aa640) )
   889: 
   890: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
   891: 	ROM_LOAD( "64th_01.rom", 0x000000, 0x080000, CRC(06222f90) SHA1(52b6cb88b9d2209c16d1633c83c0224b6ebf29dc) )
   892: 
   893: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
   894: 	ROM_LOAD( "64th_06.rom", 0x000000, 0x080000, CRC(2bfcdc75) SHA1(f49f92f1ff58dccf72e05ecf80761c7b65a25ba3) )
   895: 
   896: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
   897: 	ROM_LOAD( "64th_09.rom", 0x000000, 0x020000, CRC(a4a97db4) SHA1(1179457a6f33b3b44fac6056f6245f3aaae6afd5) )
   898: 
   899: 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
   900: 	ROM_LOAD( "64th_05.rom", 0x000000, 0x080000, CRC(a89a7020) SHA1(be36e58e9314688ee39249944c5a6c201e0249ee) )
   901: 	ROM_LOAD( "64th_04.rom", 0x080000, 0x080000, CRC(98f83ef6) SHA1(e9b72487695ac7cdc4fbf595389c4b8781ed207e) )
   902: 
   903: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
   904: 	ROM_LOAD( "64th_11.rom", 0x000000, 0x020000, CRC(b0b8a65c) SHA1(b7e42d9083d0bbfe160fc73a7317d696e90d83d6) )
   905: 
   906: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
   907: 	ROM_LOAD( "64th_10.rom", 0x000000, 0x040000, CRC(a3390561) SHA1(f86d5c61e3e80d30408535c2203940ca1e95ac18) )
   908: 
   909: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
   910: 	ROM_LOAD( "prom",        0x0000, 0x0200, NO_DUMP )
   911: ROM_END
   912: 
   913: 
   914: ROM_START( 64streej )
   915: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* Main CPU Code */
   916: 	ROM_LOAD16_BYTE( "91105-3.bin", 0x000000, 0x040000, CRC(a211a83b) SHA1(423d8f273f1520f6a37f1255bb2d343a6bbd790a) )
   917: 	ROM_LOAD16_BYTE( "91105-2.bin", 0x000001, 0x040000, CRC(27c1f436) SHA1(d7936523549cfcd99ba98c6776ebd225b245867b) )
   918: 
   919: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
   920: 	ROM_LOAD16_BYTE( "64th_08.rom", 0x000000, 0x010000, CRC(632be0c1) SHA1(626073037249d96ac70b2d11b2dd72b22bac49c7) )
   921: 	ROM_LOAD16_BYTE( "64th_07.rom", 0x000001, 0x010000, CRC(13595d01) SHA1(e730a530ca232aab883217fa12804075cb2aa640) )
   922: 
   923: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
   924: 	ROM_LOAD( "64th_01.rom", 0x000000, 0x080000, CRC(06222f90) SHA1(52b6cb88b9d2209c16d1633c83c0224b6ebf29dc) )
   925: 
   926: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
   927: 	ROM_LOAD( "64th_06.rom", 0x000000, 0x080000, CRC(2bfcdc75) SHA1(f49f92f1ff58dccf72e05ecf80761c7b65a25ba3) )
   928: 
   929: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
   930: 	ROM_LOAD( "64th_09.rom", 0x000000, 0x020000, CRC(a4a97db4) SHA1(1179457a6f33b3b44fac6056f6245f3aaae6afd5) )
   931: 
   932: 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
   933: 	ROM_LOAD( "64th_05.rom", 0x000000, 0x080000, CRC(a89a7020) SHA1(be36e58e9314688ee39249944c5a6c201e0249ee) )
   934: 	ROM_LOAD( "64th_04.rom", 0x080000, 0x080000, CRC(98f83ef6) SHA1(e9b72487695ac7cdc4fbf595389c4b8781ed207e) )
   935: 
   936: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
   937: 	ROM_LOAD( "64th_11.rom", 0x000000, 0x020000, CRC(b0b8a65c) SHA1(b7e42d9083d0bbfe160fc73a7317d696e90d83d6) )
   938: 
   939: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
   940: 	ROM_LOAD( "64th_10.rom", 0x000000, 0x040000, CRC(a3390561) SHA1(f86d5c61e3e80d30408535c2203940ca1e95ac18) )
   941: 
   942: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
   943: 	ROM_LOAD( "prom",        0x0000, 0x0200, NO_DUMP )
   944: ROM_END
   945: 
   946: 
   947: 
   948: INPUT_PORTS_START( 64street )
   949: 	COINS
   950: //	fire	jump
   951: 	JOY_2BUTTONS(IPF_PLAYER1)
   952: 	RESERVE				// Unused
   953: 	JOY_2BUTTONS(IPF_PLAYER2)
   954: 
   955: 	PORT_START
   956: 	COINAGE_8BITS
   957: 
   958: 	PORT_START
   959: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   960: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   961: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   962: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
   963: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   964: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   965: 	PORT_DIPNAME( 0x04, 0x04, "Allow Continue" )
   966: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   967: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
   968: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
   969: 	PORT_DIPSETTING(    0x10, "Easy" )
   970: 	PORT_DIPSETTING(    0x18, "Normal" )
   971: 	PORT_DIPSETTING(    0x08, "Hard" )
   972: 	PORT_DIPSETTING(    0x00, "Hardest" )
   973: 	PORT_DIPNAME( 0x60, 0x20, DEF_STR( Lives ) )
   974: 	PORT_DIPSETTING(    0x40, "1" )
   975: 	PORT_DIPSETTING(    0x60, "2" )
   976: 	PORT_DIPSETTING(    0x20, "3" )
   977: 	PORT_DIPSETTING(    0x00, "5" )
   978: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
   979: 
   980: INPUT_PORTS_END
   981: 
   982: 
   983: /***************************************************************************
   984: 
   985: 					[ The Astyanax ] / [ The Lord of King ]
   986: 
   987: interrupts:	1] 1aa	2] 1b4
   988: 
   989: ***************************************************************************/
   990: 
   991: 
   992: ROM_START( astyanax )
   993: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
   994: 	ROM_LOAD16_BYTE( "astyan2.bin", 0x00000, 0x20000, CRC(1b598dcc) SHA1(f6b733d9b0e81226eb784aaddda1791e3e95b816) )
   995: 	ROM_LOAD16_BYTE( "astyan1.bin", 0x00001, 0x20000, CRC(1a1ad3cf) SHA1(e094b4528e6f36eb30bfc148f2ad50d876e9280a) )
   996: 	ROM_LOAD16_BYTE( "astyan3.bin", 0x40000, 0x10000, CRC(097b53a6) SHA1(80952b2e685cefa8dd7c31b1ec54c4de924a84eb) )
   997: 	ROM_LOAD16_BYTE( "astyan4.bin", 0x40001, 0x10000, CRC(1e1cbdb2) SHA1(5d076233d5ed6fdd9f0ecf64453325c14d33e879) )
   998: 
   999: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1000: 	ROM_LOAD16_BYTE( "astyan5.bin",  0x000000, 0x010000, CRC(11c74045) SHA1(00310a08a1c9a08050004e39b111b940142f8dea) )
  1001: 	ROM_LOAD16_BYTE( "astyan6.bin",  0x000001, 0x010000, CRC(eecd4b16) SHA1(2078e900b53347aad008a8ce7191f4e5541d4df0) )
  1002: 
  1003: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1004: 	ROM_LOAD( "astyan11.bin", 0x000000, 0x020000, CRC(5593fec9) SHA1(8fa5bfa8921c6f03ddf485276207978e345887d5) )
  1005: 	ROM_LOAD( "astyan12.bin", 0x020000, 0x020000, CRC(e8b313ec) SHA1(ee690e284ab05db858aad4f0a0b24681c14f93c8) )
  1006: 	ROM_LOAD( "astyan13.bin", 0x040000, 0x020000, CRC(5f3496c6) SHA1(56f2beb2a6224cd77ee7fb56ed2685b78271c27a) )
  1007: 	ROM_LOAD( "astyan14.bin", 0x060000, 0x020000, CRC(29a09ec2) SHA1(6eab93fdc3491da54ca4da8a2a04a095b85aee57) )
  1008: 
  1009: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1010: 	ROM_LOAD( "astyan15.bin", 0x000000, 0x020000, CRC(0d316615) SHA1(64e6c2a836ba91e17277c7a9fd65cfb6faa88c04) )
  1011: 	ROM_LOAD( "astyan16.bin", 0x020000, 0x020000, CRC(ba96e8d9) SHA1(da1e8bfc2861df267b11991ddc9329101a6ad0c8) )
  1012: 	ROM_LOAD( "astyan17.bin", 0x040000, 0x020000, CRC(be60ba06) SHA1(205fb6fe3fe27ef40346c2ccd61168477cd83ac1) )
  1013: 	ROM_LOAD( "astyan18.bin", 0x060000, 0x020000, CRC(3668da3d) SHA1(4e8328851b26985b3a2d56d398411fbaeae8012c) )
  1014: 
  1015: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1016: 	ROM_LOAD( "astyan19.bin", 0x000000, 0x020000, CRC(98158623) SHA1(e9088d0d4b8c07bd21398f68966cb8633716a9b7) )
  1017: 
  1018: 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1019: 	ROM_LOAD( "astyan20.bin", 0x000000, 0x020000, CRC(c1ad9aa0) SHA1(b19bc564ccb3fdb06300a64ccd672aace734393f) )
  1020: 	ROM_LOAD( "astyan21.bin", 0x020000, 0x020000, CRC(0bf498ee) SHA1(9d7e25e97cec6056d7b9abd36f5a1e4c162b70a3) )
  1021: 	ROM_LOAD( "astyan22.bin", 0x040000, 0x020000, CRC(5f04d9b1) SHA1(1f58a49a01129f8ef921f3bc284c299393213af3) )
  1022: 	ROM_LOAD( "astyan23.bin", 0x060000, 0x020000, CRC(7bd4d1e7) SHA1(888a2224cca41db19d84da344db657d924dcc019) )
  1023: 
  1024: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
  1025: 	ROM_LOAD( "astyan9.bin",  0x000000, 0x020000, CRC(a10b3f17) SHA1(6b548d99f0c10f15d14f1a14d494f3348ea8e484) )
  1026: 	ROM_LOAD( "astyan10.bin", 0x020000, 0x020000, CRC(4f704e7a) SHA1(10a3cabb087b065fb28d2838c476125e051cbbf8) )
  1027: 
  1028: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
  1029: 	ROM_LOAD( "astyan7.bin",  0x000000, 0x020000, CRC(319418cc) SHA1(4056948e12f2191eecd2f4140a7de4340ab1554f) )
  1030: 	ROM_LOAD( "astyan8.bin",  0x020000, 0x020000, CRC(5e5d2a22) SHA1(fc039d804fdcb8ce089e4436260d64408640b264) )
  1031: 
  1032: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1033: 	ROM_LOAD( "rd.bpr",       0x0000, 0x0200, CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) )
  1034: ROM_END
  1035: 
  1036: ROM_START( lordofk )
  1037: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* Main CPU Code */
  1038: 	ROM_LOAD16_BYTE( "lokj02.bin", 0x00000, 0x20000, CRC(0d7f9b4a) SHA1(551f237cd60e3b9aa339e393a672b08645b043cc) )
  1039: 	ROM_LOAD16_BYTE( "lokj01.bin", 0x00001, 0x20000, CRC(bed3cb93) SHA1(ad4dbdacded60289ebf245111ce4543151b9456a) )
  1040: 	ROM_LOAD16_BYTE( "lokj03.bin", 0x40000, 0x20000, CRC(d8702c91) SHA1(bdf0ed1f116b0c8589a5b6c61e6f441b5afa38cb) )
  1041: 	ROM_LOAD16_BYTE( "lokj04.bin", 0x40001, 0x20000, CRC(eccbf8c9) SHA1(f37fb6a536f6344d6d68c8193de4db5d70b29c0a) )
  1042: 
  1043: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1044: 	ROM_LOAD16_BYTE( "astyan5.bin",  0x000000, 0x010000, CRC(11c74045) SHA1(00310a08a1c9a08050004e39b111b940142f8dea) )
  1045: 	ROM_LOAD16_BYTE( "astyan6.bin",  0x000001, 0x010000, CRC(eecd4b16) SHA1(2078e900b53347aad008a8ce7191f4e5541d4df0) )
  1046: 
  1047: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1048: 	ROM_LOAD( "astyan11.bin", 0x000000, 0x020000, CRC(5593fec9) SHA1(8fa5bfa8921c6f03ddf485276207978e345887d5) )
  1049: 	ROM_LOAD( "astyan12.bin", 0x020000, 0x020000, CRC(e8b313ec) SHA1(ee690e284ab05db858aad4f0a0b24681c14f93c8) )
  1050: 	ROM_LOAD( "astyan13.bin", 0x040000, 0x020000, CRC(5f3496c6) SHA1(56f2beb2a6224cd77ee7fb56ed2685b78271c27a) )
  1051: 	ROM_LOAD( "astyan14.bin", 0x060000, 0x020000, CRC(29a09ec2) SHA1(6eab93fdc3491da54ca4da8a2a04a095b85aee57) )
  1052: 
  1053: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1054: 	ROM_LOAD( "astyan15.bin", 0x000000, 0x020000, CRC(0d316615) SHA1(64e6c2a836ba91e17277c7a9fd65cfb6faa88c04) )
  1055: 	ROM_LOAD( "astyan16.bin", 0x020000, 0x020000, CRC(ba96e8d9) SHA1(da1e8bfc2861df267b11991ddc9329101a6ad0c8) )
  1056: 	ROM_LOAD( "astyan17.bin", 0x040000, 0x020000, CRC(be60ba06) SHA1(205fb6fe3fe27ef40346c2ccd61168477cd83ac1) )
  1057: 	ROM_LOAD( "astyan18.bin", 0x060000, 0x020000, CRC(3668da3d) SHA1(4e8328851b26985b3a2d56d398411fbaeae8012c) )
  1058: 
  1059: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1060: 	ROM_LOAD( "astyan19.bin", 0x000000, 0x020000, CRC(98158623) SHA1(e9088d0d4b8c07bd21398f68966cb8633716a9b7) )
  1061: 
  1062: 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1063: 	ROM_LOAD( "astyan20.bin", 0x000000, 0x020000, CRC(c1ad9aa0) SHA1(b19bc564ccb3fdb06300a64ccd672aace734393f) )
  1064: 	ROM_LOAD( "astyan21.bin", 0x020000, 0x020000, CRC(0bf498ee) SHA1(9d7e25e97cec6056d7b9abd36f5a1e4c162b70a3) )
  1065: 	ROM_LOAD( "astyan22.bin", 0x040000, 0x020000, CRC(5f04d9b1) SHA1(1f58a49a01129f8ef921f3bc284c299393213af3) )
  1066: 	ROM_LOAD( "astyan23.bin", 0x060000, 0x020000, CRC(7bd4d1e7) SHA1(888a2224cca41db19d84da344db657d924dcc019) )
  1067: 
  1068: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
  1069: 	ROM_LOAD( "astyan9.bin",  0x000000, 0x020000, CRC(a10b3f17) SHA1(6b548d99f0c10f15d14f1a14d494f3348ea8e484) )
  1070: 	ROM_LOAD( "astyan10.bin", 0x020000, 0x020000, CRC(4f704e7a) SHA1(10a3cabb087b065fb28d2838c476125e051cbbf8) )
  1071: 
  1072: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
  1073: 	ROM_LOAD( "astyan7.bin",  0x000000, 0x020000, CRC(319418cc) SHA1(4056948e12f2191eecd2f4140a7de4340ab1554f) )
  1074: 	ROM_LOAD( "astyan8.bin",  0x020000, 0x020000, CRC(5e5d2a22) SHA1(fc039d804fdcb8ce089e4436260d64408640b264) )
  1075: 
  1076: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1077: 	ROM_LOAD( "rd.bpr",       0x0000, 0x0200, CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) )
  1078: ROM_END
  1079: 
  1080: 
  1081: INPUT_PORTS_START( astyanax )
  1082: 	COINS						/* IN0 0x80001.b */
  1083: //	fire	jump	magic
  1084: 	JOY_3BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  1085: 	RESERVE						/* IN2 0x80004.b */
  1086: 	JOY_3BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  1087: 
  1088: 	PORT_START			/* IN4 0x80006.b */
  1089: 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
  1090: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
  1091: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_1C ) )
  1092: 	PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
  1093: 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
  1094: //	PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )	// 1_2 shown in test mode
  1095: //	PORT_DIPSETTING(    0x05, DEF_STR( 1C_1C ) )	// 1_3
  1096: //	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )	// 1_4
  1097: //	PORT_DIPSETTING(    0x06, DEF_STR( 1C_1C ) )	// 1_5
  1098: 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
  1099: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
  1100: 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_1C ) )
  1101: 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
  1102: 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
  1103: //	PORT_DIPSETTING(    0x18, DEF_STR( 1C_1C ) )	// 1_2 shown in test mode
  1104: //	PORT_DIPSETTING(    0x28, DEF_STR( 1C_1C ) )	// 1_3
  1105: //	PORT_DIPSETTING(    0x08, DEF_STR( 1C_1C ) )	// 1_4
  1106: //	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) )	// 1_5
  1107: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1108: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1109: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1110: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )	// according to manual
  1111: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1112: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1113: 
  1114: 	PORT_START			/* IN5 0x80007.b */
  1115: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) // according to manual
  1116: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1117: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1118: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) // according to manual
  1119: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1120: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1121: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
  1122: 	PORT_DIPSETTING(    0x04, "30k 70k 110k then every 30k" )
  1123: 	PORT_DIPSETTING(    0x00, "50k 100k then every 40k" )
  1124: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
  1125: 	PORT_DIPSETTING(    0x08, "2" )
  1126: 	PORT_DIPSETTING(    0x18, "3" )
  1127: 	PORT_DIPSETTING(    0x10, "4" )
  1128: 	PORT_DIPSETTING(    0x00, "5" )
  1129: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Difficulty ) )
  1130: 	PORT_DIPSETTING(    0x20, "Normal" )
  1131: 	PORT_DIPSETTING(    0x00, "Hard" )
  1132: 	PORT_DIPNAME( 0x40, 0x40, "Swap 1P/2P Controls" )
  1133: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1134: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1135: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  1136: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1137: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1138: 
  1139: INPUT_PORTS_END
  1140: 
  1141: 
  1142: 
  1143: /***************************************************************************
  1144: 
  1145: 					[ Avenging Spirit ] / [ Phantasm ]
  1146: 
  1147: (Avspirit)
  1148: interrupts:	2,3, 5,6,7]		move.w  $e0000.l, $78e9e.l
  1149: 							andi.w  #$ff, $78e9e.l
  1150: 			4] 78b20 software watchdog (78ea0 enables it)
  1151: 
  1152: 
  1153: fd6		reads e0000 (values FF,06,34,35,36,37)
  1154: ffa		e0000<-6 test
  1155: 
  1156: 79584.w *** level ***
  1157: 
  1158: 1] E9C
  1159: 2] ED4
  1160: 3] F4C		rte
  1161: 4-7] ED2	rte
  1162: 
  1163: ***************************************************************************/
  1164: 
  1165: ROM_START( avspirit )
  1166: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )		/* Main CPU Code: 00000-3ffff & 80000-bffff */
  1167: 	ROM_LOAD16_BYTE( "spirit05.rom",  0x000000, 0x020000, CRC(b26a341a) SHA1(5ff5b7d3aa73cc7cea7b6e8cc2ba55f4cd9b52e5) )
  1168: 	ROM_CONTINUE (                    0x080000, 0x020000 )
  1169: 	ROM_LOAD16_BYTE(  "spirit06.rom", 0x000001, 0x020000, CRC(609f71fe) SHA1(ab1bfe211763fb855477645267223e7fd4d6b6da) )
  1170: 	ROM_CONTINUE (                    0x080001, 0x020000 )
  1171: 
  1172: 	ROM_REGION( 0x40000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1173: 	ROM_LOAD16_BYTE( "spirit01.rom",  0x000000, 0x020000, CRC(d02ec045) SHA1(465b61d89ca06e7e0a42c42efb6919c964ad0f93) )
  1174: 	ROM_LOAD16_BYTE( "spirit02.rom",  0x000001, 0x020000, CRC(30213390) SHA1(9334978d3568b36215ed29789501f7cbaf6651ea) )
  1175: 
  1176: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1177: 	ROM_LOAD( "spirit12.rom",  0x000000, 0x080000, CRC(728335d4) SHA1(bbf13378ac0bff5e732eb30081b421ed89d12fa2) )
  1178: 
  1179: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1180: 	ROM_LOAD( "spirit11.rom",  0x000000, 0x080000, CRC(7896f6b0) SHA1(f09c1592aaa34eb5b7fe096ad4ccdcb155a5cadd) )
  1181: 
  1182: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1183: 	ROM_LOAD( "spirit09.rom",  0x000000, 0x020000, CRC(0c37edf7) SHA1(4074377f756b231b905b9b6a087c6d6ad3d49f52) )
  1184: 
  1185: 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1186: 	ROM_LOAD( "spirit10.rom",  0x000000, 0x080000, CRC(2b1180b3) SHA1(6d62b6bd73b9dd23670a0683f28609be29ac1d98) )
  1187: 
  1188: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
  1189: 	ROM_LOAD( "spirit14.rom",  0x000000, 0x040000, CRC(13be9979) SHA1(828ae745867e25834e51d08308b4ab5d8e80f2c8) )
  1190: 
  1191: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
  1192: 	ROM_LOAD( "spirit13.rom",  0x000000, 0x040000, CRC(05bc04d9) SHA1(b903edf39393cad2b4b6b58b10651304793aaa3e) )
  1193: 
  1194: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1195: 	ROM_LOAD( "ph.bin",        0x0000, 0x0200, CRC(8359650a) SHA1(97d0105f06c64340fb19a541db03481a7e0b5e05) )
  1196: ROM_END
  1197: 
  1198: 
  1199: ROM_START( phantasm )
  1200: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  1201: 	ROM_LOAD16_BYTE( "phntsm02.bin", 0x000000, 0x020000, CRC(d96a3584) SHA1(3ae62c5785b6249f1921d914c1f094bcf850d8d1) )
  1202: 	ROM_LOAD16_BYTE( "phntsm01.bin", 0x000001, 0x020000, CRC(a54b4b87) SHA1(92745c53d8550189c3b0ce55be9027447817a2dc) )
  1203: 	ROM_LOAD16_BYTE( "phntsm03.bin", 0x040000, 0x010000, CRC(1d96ce20) SHA1(2fb79160ea0dd18b5713691e4cf195d27ac4e3c3) )
  1204: 	ROM_LOAD16_BYTE( "phntsm04.bin", 0x040001, 0x010000, CRC(dc0c4994) SHA1(c3c72336b5032ef237490b095d3270de5803738c) )
  1205: 
  1206: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1207: 	ROM_LOAD16_BYTE( "phntsm05.bin", 0x000000, 0x010000, CRC(3b169b4a) SHA1(81c46fc94887c0cea363848b5c831dcf3b5b76de) )
  1208: 	ROM_LOAD16_BYTE( "phntsm06.bin", 0x000001, 0x010000, CRC(df2dfb2e) SHA1(b2542fa478917d44dffcf9e11ff7eaac6019676d) )
  1209: 
  1210: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1211: //	ROM_LOAD( "phntsm14.bin",  0x000000, 0x080000, CRC(728335d4) SHA1(bbf13378ac0bff5e732eb30081b421ed89d12fa2) )
  1212: 	ROM_LOAD( "spirit12.rom",  0x000000, 0x080000, CRC(728335d4) SHA1(bbf13378ac0bff5e732eb30081b421ed89d12fa2) )
  1213: 
  1214: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1215: //	ROM_LOAD( "phntsm18.bin",  0x000000, 0x080000, CRC(7896f6b0) SHA1(f09c1592aaa34eb5b7fe096ad4ccdcb155a5cadd) )
  1216: 	ROM_LOAD( "spirit11.rom",  0x000000, 0x080000, CRC(7896f6b0) SHA1(f09c1592aaa34eb5b7fe096ad4ccdcb155a5cadd) )
  1217: 
  1218: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1219: //	ROM_LOAD( "phntsm19.bin",  0x000000, 0x020000, CRC(0c37edf7) SHA1(4074377f756b231b905b9b6a087c6d6ad3d49f52) )
  1220: 	ROM_LOAD( "spirit09.rom",  0x000000, 0x020000, CRC(0c37edf7) SHA1(4074377f756b231b905b9b6a087c6d6ad3d49f52) )
  1221: 
  1222: 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1223: //	ROM_LOAD( "phntsm23.bin",  0x000000, 0x080000, CRC(2b1180b3) SHA1(6d62b6bd73b9dd23670a0683f28609be29ac1d98) )
  1224: 	ROM_LOAD( "spirit10.rom",  0x000000, 0x080000, CRC(2b1180b3) SHA1(6d62b6bd73b9dd23670a0683f28609be29ac1d98) )
  1225: 
  1226: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
  1227: //	ROM_LOAD( "phntsm10.bin", 0x000000, 0x040000, CRC(13be9979) SHA1(828ae745867e25834e51d08308b4ab5d8e80f2c8) )
  1228: 	ROM_LOAD( "spirit14.rom", 0x000000, 0x040000, CRC(13be9979) SHA1(828ae745867e25834e51d08308b4ab5d8e80f2c8) )
  1229: 
  1230: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
  1231: //	ROM_LOAD( "phntsm08.bin", 0x000000, 0x040000, CRC(05bc04d9) SHA1(b903edf39393cad2b4b6b58b10651304793aaa3e) )
  1232: 	ROM_LOAD( "spirit13.rom", 0x000000, 0x040000, CRC(05bc04d9) SHA1(b903edf39393cad2b4b6b58b10651304793aaa3e) )
  1233: 
  1234: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1235: 	ROM_LOAD( "ph.bin",        0x0000, 0x0200, CRC(8359650a) SHA1(97d0105f06c64340fb19a541db03481a7e0b5e05) )
  1236: ROM_END
  1237: 
  1238: 
  1239: INPUT_PORTS_START( avspirit )
  1240: 	COINS
  1241: 	JOY_2BUTTONS(IPF_PLAYER1)
  1242: 	RESERVE
  1243: 	JOY_2BUTTONS(IPF_PLAYER2)
  1244: 
  1245: 	PORT_START
  1246: 	COINAGE_8BITS
  1247: 
  1248: 	PORT_START
  1249: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1250: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1251: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1252: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
  1253: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1254: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1255: 	PORT_DIPNAME( 0x04, 0x04, "Allow Continue" )
  1256: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1257: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  1258: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
  1259: 	PORT_DIPSETTING(    0x08, "Easy" )
  1260: 	PORT_DIPSETTING(    0x18, "Normal" )
  1261: 	PORT_DIPSETTING(    0x10, "Hard" )
  1262: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1263: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) )
  1264: 	PORT_DIPSETTING(    0x20, DEF_STR( Upright ) )
  1265: 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  1266: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1267: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1268: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1269: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1270: INPUT_PORTS_END
  1271: 
  1272: 
  1273: 
  1274: /***************************************************************************
  1275: 
  1276: 							[ Big Striker ]
  1277: 
  1278: PCB: RB-91105A EB911009-20045
  1279: 
  1280: Note: RAM is ff0000-ffffff while sprites live in 1f8000-1f87ff
  1281: 
  1282: interrupts:	1]
  1283: 			2]
  1284: 			4]
  1285: 
  1286: $885c/e.w	*** time (BCD) ***
  1287: 
  1288: ***************************************************************************/
  1289: 
  1290: ROM_START( bigstrik )
  1291: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  1292: 	ROM_LOAD16_BYTE( "91105v11.3", 0x000000, 0x020000, CRC(5d6e08ec) SHA1(4b80a5073cd0b0142cad094816b935d750ac11fb) )
  1293: 	ROM_LOAD16_BYTE( "91105v11.2", 0x000001, 0x020000, CRC(2120f05b) SHA1(a769cf8c3a4fa6a3f604edf45ce6db35979826cb) )
  1294: 
  1295: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1296: 	ROM_LOAD16_BYTE( "91105v10.8", 0x000000, 0x010000, CRC(7dd69ece) SHA1(e8dc3cbce8cb3f549384cd114f8fc0e6c72462f3) )
  1297: 	ROM_LOAD16_BYTE( "91105v10.7", 0x000001, 0x010000, CRC(bc2c1508) SHA1(110dece929f9b452eb287c736d394d1022a09d75) )
  1298: 
  1299: 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1300: 	ROM_LOAD( "91021.01",   0x000000, 0x080000, CRC(f1945858) SHA1(3ed3881d3a93f34de5a15c287e076db209477259) )
  1301: 
  1302: 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1303: 	ROM_LOAD( "91021.03",   0x000000, 0x080000, CRC(e88821e5) SHA1(60ea179db5e958b721eee71e26398e4ea8b8457e) )
  1304: 
  1305: 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1306: 	ROM_LOAD( "91105v11.9", 0x000000, 0x020000, CRC(7be1c50c) SHA1(1dd81a61deeda3866e3f1ca82384f5f1b2efac08) )
  1307: 
  1308: 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1309: 	ROM_LOAD( "91021.02",   0x000000, 0x080000, CRC(199819ca) SHA1(2f85cb3a8fa12faab379377c9a5ce3add30e6abf) )
  1310: 
  1311: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )		/* Samples */
  1312: 	ROM_LOAD( "91105v10.11", 0x000000, 0x040000, BAD_DUMP CRC(a1f13dd5) SHA1(b9f047a1aaa9d19c5c27390eb3e4bfa845b5a4f2)  )	// 1xxxxxxxxxxxxxxxxx = 0xFF
  1313: 
  1314: 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )		/* Samples */
  1315: 	ROM_LOAD( "91105v10.10", 0x000000, 0x040000, BAD_DUMP CRC(e4f8fc8d) SHA1(9000b958d366c9771ca92ade3610a538d1b59664)  )	// 1xxxxxxxxxxxxxxxxx = 0xFF
  1316: 
  1317: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1318: 	ROM_LOAD( "prom",         0x0000, 0x0200, NO_DUMP )
  1319: ROM_END
  1320: 
  1321: 
  1322: INPUT_PORTS_START( bigstrik )
  1323: 	COINS
  1324: //	pass	shoot	feint
  1325: 	JOY_3BUTTONS(IPF_PLAYER1)
  1326: 	RESERVE
  1327: 	JOY_3BUTTONS(IPF_PLAYER2)
  1328: 
  1329: 	PORT_START			/* IN4 */
  1330: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1331: 	PORT_DIPSETTING(    0x07, DEF_STR( 4C_1C ) )
  1332: 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
  1333: 	PORT_DIPSETTING(    0x09, DEF_STR( 2C_1C ) )
  1334: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1335: 	PORT_DIPSETTING(    0x05, DEF_STR( 2C_3C ) )
  1336: //	PORT_DIPSETTING(    0x04, DEF_STR( 2C_3C ) )
  1337: //	PORT_DIPSETTING(    0x03, DEF_STR( 2C_3C ) )
  1338: //	PORT_DIPSETTING(    0x02, DEF_STR( 2C_3C ) )
  1339: //	PORT_DIPSETTING(    0x01, DEF_STR( 2C_3C ) )
  1340: //	PORT_DIPSETTING(    0x06, DEF_STR( 2C_3C ) )
  1341: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1342: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1343: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1344: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1345: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1346: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1347: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1348: 	PORT_DIPSETTING(    0x70, DEF_STR( 4C_1C ) )
  1349: 	PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
  1350: 	PORT_DIPSETTING(    0x90, DEF_STR( 2C_1C ) )
  1351: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1352: 	PORT_DIPSETTING(    0x50, DEF_STR( 2C_3C ) )
  1353: //	PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
  1354: //	PORT_DIPSETTING(    0x30, DEF_STR( 2C_3C ) )
  1355: //	PORT_DIPSETTING(    0x20, DEF_STR( 2C_3C ) )
  1356: //	PORT_DIPSETTING(    0x10, DEF_STR( 2C_3C ) )
  1357: //	PORT_DIPSETTING(    0x60, DEF_STR( 2C_3C ) )
  1358: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1359: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1360: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1361: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1362: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1363: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1364: 
  1365: 	PORT_START			/* IN5 */
  1366: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1367: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1368: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1369: 	PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) )
  1370: 	PORT_DIPSETTING(    0x02, "Easy"    )
  1371: 	PORT_DIPSETTING(    0x06, "Normal"  )
  1372: 	PORT_DIPSETTING(    0x04, "Hard"    )
  1373: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1374: 	PORT_DIPNAME( 0x18, 0x18, "Time" )
  1375: 	PORT_DIPSETTING(    0x00, "Very Short" )
  1376: 	PORT_DIPSETTING(    0x10, "Short" )
  1377: 	PORT_DIPSETTING(    0x18, "Normal" )
  1378: 	PORT_DIPSETTING(    0x08, "Long" )
  1379: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) )
  1380: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1381: 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
  1382: 	PORT_DIPNAME( 0x40, 0x40, "1 Credit 2 Play" )
  1383: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1384: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1385: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1386: 
  1387: INPUT_PORTS_END
  1388: 
  1389: 
  1390: /***************************************************************************
  1391: 
  1392: 							[ Chimera Beast ]
  1393: 
  1394: interrupts:	1,3]
  1395: 			2, 5,6]
  1396: 			4]
  1397: 
  1398: Note: This game was a prototype
  1399: 
  1400: ***************************************************************************/
  1401: 
  1402: ROM_START( chimerab )
  1403: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* Main CPU Code */
  1404: 	ROM_LOAD16_BYTE( "prg3.bin", 0x000000, 0x040000, CRC(70f1448f) SHA1(60aaee1cf7aa15ffa4962d947747b0ae7cdcfd8a) )
  1405: 	ROM_LOAD16_BYTE( "prg2.bin", 0x000001, 0x040000, CRC(821dbb85) SHA1(df204db38995ff4c898b8a0121834ec1b84b215c) )
  1406: 
  1407: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1408: 	ROM_LOAD16_BYTE( "prg8.bin", 0x000000, 0x010000, CRC(a682b1ca) SHA1(66f5d5a73f5e8cba87eac09c55eee59117d94f7b) )
  1409: 	ROM_LOAD16_BYTE( "prg7.bin", 0x000001, 0x010000, CRC(83b9982d) SHA1(68e7d344ebfffe19822c4cf9f7b13cb51f23537a) )
  1410: 
  1411: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1412: 	ROM_LOAD( "s1.bin",   0x000000, 0x080000, CRC(e4c2ac77) SHA1(db4bff3c02f22cc59a67b103fd176f4d88531f93) )
  1413: 
  1414: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1415: 	ROM_LOAD( "s2.bin",   0x000000, 0x080000, CRC(fafb37a5) SHA1(e36c4d18209add696982e36e84397ec51b9a9e7e) )
  1416: 
  1417: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1418: 	ROM_LOAD( "scr3.bin", 0x000000, 0x020000, CRC(5fe38a83) SHA1(0492be1a92baacb80ed5bdc0167beda3e9163d76) )
  1419: 
  1420: 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1421: 	ROM_LOAD( "b2.bin",   0x000000, 0x080000, CRC(6e7f1778) SHA1(ac93f56c998f28e3f453fcdbf85f3217c9ae97de) )
  1422: 	ROM_LOAD( "b1.bin",   0x080000, 0x080000, CRC(29c0385e) SHA1(4416cb17d3121ec00bceff2614dc424a359f127a) )
  1423: 
  1424: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  1425: 	ROM_LOAD( "voi11.bin", 0x000000, 0x040000, CRC(14b3afe6) SHA1(6d8659d0fc6980ffc1661702fc787737448dce9d) )
  1426: 
  1427: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  1428: 	ROM_LOAD( "voi10.bin", 0x000000, 0x040000, CRC(67498914) SHA1(8d89fa90f38fd102b15f26f71491ea833ec32cb2) )
  1429: 
  1430: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1431: 	ROM_LOAD( "prom",         0x0000, 0x0200, NO_DUMP )
  1432: ROM_END
  1433: 
  1434: INPUT_PORTS_START( chimerab )
  1435: 
  1436: 	COINS
  1437: //	fire	jump	unused?(shown in service mode, but not in instructions)
  1438: 	JOY_2BUTTONS(IPF_PLAYER1)
  1439: 	RESERVE				// Unused
  1440: 	JOY_2BUTTONS(IPF_PLAYER2)
  1441: 
  1442: 	PORT_START			/* DSW A */
  1443: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1444: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1445: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1446: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
  1447: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1448: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1449: 	PORT_DIPNAME( 0x04, 0x04, "Allow Continue" )
  1450: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1451: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  1452: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
  1453: 	PORT_DIPSETTING(    0x10, "Easy" )
  1454: 	PORT_DIPSETTING(    0x18, "Normal" )
  1455: 	PORT_DIPSETTING(    0x08, "Hard" )
  1456: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1457: 	PORT_DIPNAME( 0x60, 0x20, DEF_STR( Lives ) )
  1458: 	PORT_DIPSETTING(    0x40, "1" )
  1459: 	PORT_DIPSETTING(    0x60, "2" )
  1460: 	PORT_DIPSETTING(    0x20, "3" )
  1461: 	PORT_DIPSETTING(    0x00, "4" )
  1462: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1463: 
  1464: 	PORT_START			/* DSW B */
  1465: 	COINAGE_8BITS
  1466: 
  1467: INPUT_PORTS_END
  1468: 
  1469: 
  1470: 
  1471: /***************************************************************************
  1472: 
  1473: 								[ Cybattler ]
  1474: 
  1475: interrupts:	1,3]	408
  1476: 			2, 5,6]	498
  1477: 					1fd2c2.w routine index:
  1478: 					0:	4be>	1fd2c0.w <- d8000
  1479: 					2:	4ca>	1fd2d0+(1fd2c4.w) <- d8000.	next
  1480: 					4:	4ee>	1fd2c4.w += 2.
  1481: 											S	P1	P2	DB	DA
  1482: 								d8000 <-	56	52	53	55	54
  1483: 								1fd000+ 	00	02	04	06	08
  1484: 								depending on 1fd2c4.		previous
  1485: 					6:	4be again
  1486: 
  1487: 			4]		452
  1488: 
  1489: c2208 <- 1fd040	(layers enable)
  1490: c2200 <- 1fd042	(sprite control)
  1491: c2308 <- 1fd046	(screen control)
  1492: c2004 <- 1fd054 (scroll 0 ctrl)	c2000 <- 1fd220 (scroll 0 x)	c2002 <- 1fd222 (scroll 1 y)
  1493: c200c <- 1fd05a (scroll 1 ctrl)	c2008 <- 1fd224 (scroll 1 x)	c200a <- 1fd226 (scroll 2 y)
  1494: c2104 <- 1fd060 (scroll 2 ctrl)	c2100 <- 1fd228 (scroll 2 x)	c2102 <- 1fd22a (scroll 3 y)
  1495: 
  1496: 1f0010.w	*** level (0,1,..) ***
  1497: 1fb044.l	*** score / 10 ***
  1498: 
  1499: ***************************************************************************/
  1500: 
  1501: ROM_START( cybattlr )
  1502: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* Main CPU Code */
  1503: 	ROM_LOAD16_BYTE( "cb_03.rom", 0x000000, 0x040000, CRC(bee20587) SHA1(3c1d546c63a3d6f8a63b7dee1c8e99a7091d774d) )
  1504: 	ROM_LOAD16_BYTE( "cb_02.rom", 0x000001, 0x040000, CRC(2ed14c50) SHA1(4ed01ea5c5e59c3c012d9a4d5257be78220758c1) )
  1505: 
  1506: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1507: 	ROM_LOAD16_BYTE( "cb_08.rom", 0x000000, 0x010000, CRC(bf7b3558) SHA1(6046b965d61560e0227437f00f1ff1f7dbc16232) )
  1508: 	ROM_LOAD16_BYTE( "cb_07.rom", 0x000001, 0x010000, CRC(85d219d7) SHA1(a9628efc5eddefad739363ff0b2f37a2d095df86) )
  1509: 
  1510: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1511: 	ROM_LOAD( "cb_m01.rom", 0x000000, 0x080000, CRC(1109337f) SHA1(ab294d87c9b4eb54401da5ad6ea171e4c0a700b5) )
  1512: 
  1513: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1514: 	ROM_LOAD( "cb_m04.rom", 0x000000, 0x080000, CRC(0c91798e) SHA1(63747adcf24146fdb0f59bd4dfd6ac6300eeafc3) )
  1515: 
  1516: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1517: 	ROM_LOAD( "cb_09.rom",  0x000000, 0x020000, CRC(37b1f195) SHA1(06be0e2ec2649e82183925554a5025c1c7a09137) )
  1518: 
  1519: 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1520: 	ROM_LOAD( "cb_m03.rom", 0x000000, 0x080000, CRC(4cd49f58) SHA1(a455a27edec8b6f92c64636a10624ab5ccefa5e0) )
  1521: 	ROM_LOAD( "cb_m02.rom", 0x080000, 0x080000, CRC(882825db) SHA1(06ab0f9ee60614ce22d32b27ab28fcaa0d8de66f) )
  1522: 
  1523: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  1524: 	ROM_LOAD( "cb_11.rom", 0x000000, 0x040000, CRC(59d62d1f) SHA1(48363df066e7967b28887253108dc8cb124637f4) )
  1525: 
  1526: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  1527: 	ROM_LOAD( "cb_10.rom", 0x000000, 0x040000, CRC(8af95eed) SHA1(42949d67986303370f3b663106f278f828955a4b) )
  1528: 
  1529: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1530: 	ROM_LOAD( "pr-91028.12",  0x0000, 0x0200, CRC(cfe90082) SHA1(b59991ec7b3e83ba645b709547e5b4cbe03c0f11) )
  1531: ROM_END
  1532: 
  1533: INPUT_PORTS_START( cybattlr )
  1534: 
  1535: 	COINS
  1536: //	fire	sword
  1537: 	JOY_2BUTTONS(IPF_PLAYER1)
  1538: 	RESERVE				// Unused
  1539: 	JOY_2BUTTONS(IPF_PLAYER2)
  1540: 
  1541: 	PORT_START			/* IN - DSW 1 - 1fd2d9.b, !1fd009.b */
  1542: 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
  1543: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
  1544: 	PORT_DIPSETTING(    0x01, DEF_STR( 3C_1C ) )
  1545: 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  1546: 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
  1547: 	PORT_DIPSETTING(    0x02, DEF_STR( 2C_3C ) )
  1548: 	PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
  1549: 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
  1550: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
  1551: 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
  1552: 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
  1553: 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
  1554: 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
  1555: 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
  1556: 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_3C ) )
  1557: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
  1558: 	PORT_DIPSETTING(    0x28, DEF_STR( 1C_3C ) )
  1559: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
  1560: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) )
  1561: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1562: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1563: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1564: 
  1565: 	PORT_START			/* IN - DSW 2 - 1fd2d7.b, !1fd007.b */
  1566: 	PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0" )
  1567: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1568: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1569: 	PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1" )
  1570: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1571: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1572: 	PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )	// 1 bit
  1573: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1574: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1575: 	PORT_DIPNAME( 0x08, 0x08, "Allow Continue" )
  1576: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1577: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1578: 	PORT_DIPNAME( 0x10, 0x10, "Unknown 2-4" )
  1579: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1580: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1581: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) )
  1582: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1583: 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
  1584: 	PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" )	// 1 bit
  1585: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1586: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1587: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  1588: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1589: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1590: 
  1591: INPUT_PORTS_END
  1592: 
  1593: 
  1594: 
  1595: 
  1596: /***************************************************************************
  1597: 
  1598: 						 [ Earth Defense Force ]
  1599: 
  1600: interrupts:	2,3]	543C>	move.w  $e0000.l,	$60da6.l
  1601: 							move.w  #$ffff,		$60da8.l
  1602: 			4,5,6]	5928 +	move.w	#$ffff,		$60010.l
  1603: 
  1604: 89e			(a7)+ -> 44000.w & 6000e.w
  1605: 8cc			(a7)+ -> 44204.w ; 4420c.w ; 4400c.w
  1606: fc0			(a7)+ -> 58000 (string)
  1607: 
  1608: 616f4.w		*** lives ***
  1609: 60d8a.w		*** level(1..) ***
  1610: 
  1611: ***************************************************************************/
  1612: 
  1613: ROM_START( edf )
  1614: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )		/* Main CPU Code: 00000-3ffff & 80000-bffff */
  1615: 	ROM_LOAD16_BYTE( "edf_05.rom",  0x000000, 0x020000, CRC(105094d1) SHA1(e962164836756bc20c2b5dc0032042a0219e82d8) )
  1616: 	ROM_CONTINUE (                  0x080000, 0x020000 )
  1617: 	ROM_LOAD16_BYTE( "edf_06.rom",  0x000001, 0x020000, CRC(94da2f0c) SHA1(ae6aef03d61d244a857a9dc824be230c35f4c978) )
  1618: 	ROM_CONTINUE (                  0x080001, 0x020000 )
  1619: 
  1620: 	ROM_REGION( 0x40000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1621: 	ROM_LOAD16_BYTE( "edf_01.rom",  0x000000, 0x020000, CRC(2290ea19) SHA1(64c9394bd4d5569d68833d2e57abaf2f1af5be97) )
  1622: 	ROM_LOAD16_BYTE( "edf_02.rom",  0x000001, 0x020000, CRC(ce93643e) SHA1(686bf0ec104af8c97624a782e0d60afe170fd945) )
  1623: 
  1624: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1625: 	ROM_LOAD( "edf_m04.rom",  0x000000, 0x080000, CRC(6744f406) SHA1(3b8f13ca968456186d9ad61f34611b7eab62ea86) )
  1626: 
  1627: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1628: 	ROM_LOAD( "edf_m05.rom",  0x000000, 0x080000, CRC(6f47e456) SHA1(823baa9dc4cb2425c64e9332c6ed4678e49d0c7b) )
  1629: 
  1630: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1631: 	ROM_LOAD( "edf_09.rom",   0x000000, 0x020000, CRC(96e38983) SHA1(a4fb94f15d9a9f7df1645be66fe3e179d0ebf765) )
  1632: 
  1633: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1634: 	ROM_LOAD( "edf_m03.rom",  0x000000, 0x080000, CRC(ef469449) SHA1(bc591e56c5478383eb4bd29f16133c6ba407c22f) )
  1635: 
  1636: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  1637: 	ROM_LOAD( "edf_m02.rom",  0x000000, 0x040000, CRC(fc4281d2) SHA1(67ea324ff359a5d9e7538c08865b5eeebd16704b) )
  1638: 
  1639: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  1640: 	ROM_LOAD( "edf_m01.rom",  0x000000, 0x040000, CRC(9149286b) SHA1(f6c66c5cd50b72c4d401a263c65a8d4ef8cf9221) )
  1641: 
  1642: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1643: 	ROM_LOAD( "prom.14m",    0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
  1644: ROM_END
  1645: 
  1646: INPUT_PORTS_START( edf )
  1647: 	COINS
  1648: //	fire	unfold_weapons
  1649: 	JOY_2BUTTONS(IPF_PLAYER1)
  1650: 	RESERVE
  1651: 	JOY_2BUTTONS(IPF_PLAYER2)
  1652: 
  1653: 	PORT_START			/* IN4 */
  1654: 	COINAGE_6BITS
  1655: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  1656: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1657: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  1658: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1659: 
  1660: 	PORT_START			/* IN5 0x66007.b */
  1661: 	PORT_DIPNAME( 0x07, 0x07, "DSW-B bits 2-0" )
  1662: 	PORT_DIPSETTING(    0x00, "0" )
  1663: 	PORT_DIPSETTING(    0x01, "1" )
  1664: 	PORT_DIPSETTING(    0x02, "2" )
  1665: 	PORT_DIPSETTING(    0x03, "3" )
  1666: 	PORT_DIPSETTING(    0x04, "4" )
  1667: 	PORT_DIPSETTING(    0x05, "5" )
  1668: 	PORT_DIPSETTING(    0x06, "6" )
  1669: 	PORT_DIPSETTING(    0x07, "7" )
  1670: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
  1671: 	PORT_DIPSETTING(    0x08, "3" )
  1672: 	PORT_DIPSETTING(    0x00, "4" )
  1673: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
  1674: 	PORT_DIPSETTING(    0x00, "0" )
  1675: 	PORT_DIPSETTING(    0x30, "1" )
  1676: 	PORT_DIPSETTING(    0x10, "2" )
  1677: 	PORT_DIPSETTING(    0x20, "3" )
  1678: 	PORT_DIPNAME( 0x40, 0x40, "DSW-B bit 6" )
  1679: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1680: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1681: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  1682: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1683: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1684: 
  1685: INPUT_PORTS_END
  1686: 
  1687: 
  1688: 
  1689: /***************************************************************************
  1690: 
  1691: 								[ Hachoo! ]
  1692: 
  1693: ***************************************************************************/
  1694: 
  1695: 
  1696: ROM_START( hachoo )
  1697: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  1698: 	ROM_LOAD16_BYTE( "hacho02.rom", 0x000000, 0x020000, CRC(49489c27) SHA1(21c31e1b41ca6c7e78803e5a2e7c49f7b885d0e3) )
  1699: 	ROM_LOAD16_BYTE( "hacho01.rom", 0x000001, 0x020000, CRC(97fc9515) SHA1(192660061af6a5bddccf7cfffcbfa368c4030de9) )
  1700: 
  1701: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1702: 	ROM_LOAD16_BYTE( "hacho05.rom", 0x000000, 0x010000, CRC(6271f74f) SHA1(2fe0f8adf3cdafe13a9107c36f24f1a525d06a05) )
  1703: 	ROM_LOAD16_BYTE( "hacho06.rom", 0x000001, 0x010000, CRC(db9e743c) SHA1(77a3691b48eed389bfcdead5f307415dce47247e) )
  1704: 
  1705: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1706: 	ROM_LOAD( "hacho14.rom", 0x000000, 0x080000, CRC(10188483) SHA1(43bf08ac777c42351b04e2c35b1a119f524b4388) )
  1707: 
  1708: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1709: 	ROM_LOAD( "hacho15.rom", 0x000000, 0x020000, CRC(e559347e) SHA1(1d71c83f4946af80083bbd059e55c2d57f2f9647) )
  1710: 	ROM_LOAD( "hacho16.rom", 0x020000, 0x020000, CRC(105fd8b5) SHA1(41aafcf6e29417a39ca0945f47a90646da2cbf3c) )
  1711: 	ROM_LOAD( "hacho17.rom", 0x040000, 0x020000, CRC(77f46174) SHA1(81d923069191c153773aaeb2d0eab6ab0076a386) )
  1712: 	ROM_LOAD( "hacho18.rom", 0x060000, 0x020000, CRC(0be21111) SHA1(45beb7e9f6cfe56893e0c5b052a1922e3d73275b) )
  1713: 
  1714: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1715: 	ROM_LOAD( "hacho19.rom", 0x000000, 0x020000, CRC(33bc9de3) SHA1(8bbfda0fea742177e00dd5fff226f85233537cb3) )
  1716: 
  1717: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1718: 	ROM_LOAD( "hacho20.rom", 0x000000, 0x020000, CRC(2ae2011e) SHA1(f294ebfd87816c7b179fcaba3869e3402b2560a9) )
  1719: 	ROM_LOAD( "hacho21.rom", 0x020000, 0x020000, CRC(6dcfb8d5) SHA1(a478fea81acf1f317fe82ec84d4d21227db7432b) )
  1720: 	ROM_LOAD( "hacho22.rom", 0x040000, 0x020000, CRC(ccabf0e0) SHA1(3b9d95d8dee6155b484d85cc3f12e20a8ae3c9be) )
  1721: 	ROM_LOAD( "hacho23.rom", 0x060000, 0x020000, CRC(ff5f77aa) SHA1(e9fc71ac3499ee5b4636a3bdf1f3fbbe2623b0db) )
  1722: 
  1723: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  1724: 	ROM_LOAD( "hacho09.rom", 0x000000, 0x020000, CRC(e9f35c90) SHA1(1a1dd6a7777bbad1475ad65f8797818c9b4f0937) )
  1725: 	ROM_LOAD( "hacho10.rom", 0x020000, 0x020000, CRC(1aeaa188) SHA1(40827435c948a2fd448137eb3f8c33fc84da3b82) )
  1726: 
  1727: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  1728: 	ROM_LOAD( "hacho07.rom", 0x000000, 0x020000, CRC(06e6ca7f) SHA1(a15a1b754b0d47285a023ecfc4b762ab592f8262) )
  1729: 	ROM_LOAD( "hacho08.rom", 0x020000, 0x020000, CRC(888a6df1) SHA1(71d70633ecf7255287e55e92f8d2f186fe58f4b4) )
  1730: 
  1731: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1732: 	ROM_LOAD( "ht.bin",      0x0000, 0x0200, CRC(85302b15) SHA1(8184c1184a71706cdb981e3c4f90a08521413e72) )
  1733: ROM_END
  1734: 
  1735: 
  1736: INPUT_PORTS_START( hachoo )
  1737: 	COINS						/* IN0 0x80001.b */
  1738: //	fire	jump
  1739: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  1740: 	RESERVE						/* IN2 0x80004.b */
  1741: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  1742: 
  1743: 	PORT_START			/* IN4 0x80006.b */
  1744: 	COINAGE_6BITS
  1745: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  1746: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1747: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  1748: 	PORT_DIPNAME( 0x80, 0x80, "Unknown 1-0" )	// unused?
  1749: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1750: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1751: 
  1752: 	PORT_START			/* IN5 0x80007.b */
  1753: 	PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0" )	// unused?
  1754: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1755: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1756: 	PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1" )	// unused?
  1757: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1758: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1759: 	PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )	// unused?
  1760: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1761: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1762: 	PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" )	// unused?
  1763: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1764: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1765: 	PORT_DIPNAME( 0x30, 0x30, "?Difficulty?" )	// 4 & 5
  1766: 	PORT_DIPSETTING(    0x30, "3" )
  1767: 	PORT_DIPSETTING(    0x20, "2" )
  1768: 	PORT_DIPSETTING(    0x10, "1" )
  1769: 	PORT_DIPSETTING(    0x00, "0" )
  1770: 	PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" )	// unused?
  1771: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1772: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1773: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  1774: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1775: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1776: 
  1777: INPUT_PORTS_END
  1778: 
  1779: 
  1780: 
  1781: /***************************************************************************
  1782: 
  1783: 							[ Iga Ninjyutsuden ]
  1784: 
  1785: interrupts:	1] 420(does nothing)
  1786: 			2] 500
  1787: 			3] 410(it doesn't save registers on the stack!!)
  1788: 
  1789: f0004.l		*** hi score (BCD) ***
  1790: f000c.l		*** score (BCD) ***
  1791: f002a.w		*** lives ***
  1792: f010c.w		credits
  1793: 
  1794: ***************************************************************************/
  1795: 
  1796: 
  1797: ROM_START( iganinju )
  1798: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  1799: 	ROM_LOAD16_BYTE( "iga_02.bin", 0x000000, 0x020000, CRC(bd00c280) SHA1(d4e074bb25fc7295b1a39aa22e966cf471a6789f) )
  1800: 	ROM_LOAD16_BYTE( "iga_01.bin", 0x000001, 0x020000, CRC(fa416a9e) SHA1(c81405037366c93754d8eed1c70128091f9b3e3f) )
  1801: 	ROM_LOAD16_BYTE( "iga_03.bin", 0x040000, 0x010000, CRC(de5937ad) SHA1(d3039e5391feb925ea10f33a1363bf3ffc1ebb3d) )
  1802: 	ROM_LOAD16_BYTE( "iga_04.bin", 0x040001, 0x010000, CRC(afaf0480) SHA1(b8d0ec859a94941650bdd2b01e98d054d49fef67) )
  1803: 
  1804: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1805: 	ROM_LOAD16_BYTE( "iga_05.bin", 0x000000, 0x010000, CRC(13580868) SHA1(bfcd11b294b64af81a0403a3e9370c42a9859b6b) )
  1806: 	ROM_LOAD16_BYTE( "iga_06.bin", 0x000001, 0x010000, CRC(7904d5dd) SHA1(4cd9fdab601a90c997a041a9f7966a9a233e897b) )
  1807: 
  1808: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1809: 	ROM_LOAD( "iga_14.bin", 0x000000, 0x040000, CRC(c707d513) SHA1(b0067a444385809a7dfd11fea27b1add318d5225) )
  1810: 
  1811: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1812: 	ROM_LOAD( "iga_18.bin", 0x000000, 0x080000, CRC(6c727519) SHA1(5a05f82ff6fe2835f72607be52290b6ae32640c8) )
  1813: 
  1814: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1815: 	ROM_LOAD( "iga_19.bin", 0x000000, 0x020000, CRC(98a7e998) SHA1(603ec7696cf50f873265a0956bc01aa2cf6448f7) )
  1816: 
  1817: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1818: 	ROM_LOAD( "iga_23.bin", 0x000000, 0x080000, CRC(fb58c5f4) SHA1(530e32dbe46dfe7d19fc48b77c1544679d40ff59) )
  1819: 
  1820: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  1821: 	ROM_LOAD( "iga_10.bin", 0x000000, 0x040000, CRC(67a89e0d) SHA1(9c15e1b5e15f3f95f302d7223828bed0d0173347) )
  1822: 
  1823: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  1824: 	ROM_LOAD( "iga_08.bin", 0x000000, 0x040000, CRC(857dbf60) SHA1(e700b307aa481a57180a4529e2ce4326574e128e) )
  1825: 
  1826: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1827: 	ROM_LOAD( "prom",         0x0000, 0x0200, NO_DUMP )
  1828: ROM_END
  1829: 
  1830: 
  1831: INPUT_PORTS_START( iganinju )
  1832: 
  1833: 	COINS						/* IN0 0x80001.b */
  1834: //	fire	jump
  1835: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  1836: 	RESERVE						/* IN2 0x80004.b */
  1837: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  1838: 
  1839: 	PORT_START 			/* IN4 0x80006.b */
  1840: 	COINAGE_6BITS
  1841: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1842: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1843: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1844: 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze Screen", IP_KEY_NONE, IP_JOY_NONE )
  1845: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1846: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1847: 
  1848: 	PORT_START			/* IN5 - 0x80007.b */
  1849: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1850: 	PORT_DIPSETTING(    0x03, "2" )
  1851: 	PORT_DIPSETTING(    0x01, "3" )
  1852: 	PORT_DIPSETTING(    0x02, "4" )
  1853: 	PORT_BITX( 0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Inifinite", IP_KEY_NONE, IP_JOY_NONE )
  1854: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
  1855: 	PORT_DIPSETTING(    0x04, "50k" )
  1856: 	PORT_DIPSETTING(    0x00, "200k" )
  1857: 	PORT_DIPNAME( 0x08, 0x08, "Allow Continue" )
  1858: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1859: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1860: 	PORT_DIPNAME( 0x30, 0x30, "?Difficulty?" )
  1861: 	PORT_DIPSETTING(    0x30, "3" )
  1862: 	PORT_DIPSETTING(    0x20, "2" )
  1863: 	PORT_DIPSETTING(    0x10, "1" )
  1864: 	PORT_DIPSETTING(    0x00, "0" )
  1865: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
  1866: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1867: 	PORT_DIPSETTING(    0x40, DEF_STR( Cocktail ) )
  1868: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  1869: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1870: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1871: 
  1872: INPUT_PORTS_END
  1873: 
  1874: 
  1875: 
  1876: /***************************************************************************
  1877: 
  1878: 						[ Jitsuryoku!! Pro Yakyuu ]
  1879: 
  1880: (JPN Ver.)
  1881: (c)1989 Jaleco
  1882: Mega-System
  1883: MB-8842
  1884: A-Type
  1885: CPU  :TMP68000P-8 x2
  1886: Sound:YM2151,YM3012
  1887: OSC  :12.000MHz,7.000MHz
  1888: 
  1889: Sub
  1890: MB-M02A (EB-88003-3001-1)
  1891: Sound:OKI M6295
  1892: OSC  :4.000MHz
  1893: Other:JALECO GS-88000
  1894: 
  1895: BS.BPR       [85b30ac4] (82S131)
  1896: 
  1897: ***************************************************************************/
  1898: 
  1899: ROM_START( jitsupro )
  1900: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  1901: 	ROM_LOAD16_BYTE( "jp_2.bin", 0x000000, 0x020000, CRC(5d842ff2) SHA1(69032601c0e67c5c78fad1cb2bb4f1b59014fe5a) )
  1902: 	ROM_LOAD16_BYTE( "jp_1.bin", 0x000001, 0x020000, CRC(0056edec) SHA1(529a5181f7d791930e238bc115daeae1ab9a63ad) )
  1903: 
  1904: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  1905: 	ROM_LOAD16_BYTE( "jp_5.bin", 0x000000, 0x010000, CRC(84454e9e) SHA1(a506d44349a670e57d9dba3ec6a9de2597ba2cdb) )	// 11xxxxxxxxxxxxxx = 0xFF
  1906: 	ROM_LOAD16_BYTE( "jp_6.bin", 0x000001, 0x010000, CRC(1fa9b75b) SHA1(d0e3640333f737658542ed4a8758d62f6d64ae05) )	// 11xxxxxxxxxxxxxx = 0xFF
  1907: 
  1908: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  1909: 	ROM_LOAD( "jp_14.bin", 0x000000, 0x080000, CRC(db112abf) SHA1(fd8c510934241b7923660acca6122ca3e63bf934) )
  1910: 
  1911: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  1912: 	ROM_LOAD( "jp_18.bin", 0x000000, 0x080000, CRC(3ed855e3) SHA1(c68fffe42aa134480fce37d8d7e0aa336d97f898) )
  1913: 
  1914: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  1915: 	ROM_LOAD( "jp_19.bin", 0x000000, 0x020000, CRC(ff59111f) SHA1(caf78b5657c1b1f99b0de440862618d3d961ea18) )
  1916: 
  1917: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  1918: 	ROM_LOAD( "jp_23.bin", 0x000000, 0x080000, CRC(275f48bd) SHA1(449c19247d4956f5eecdd5352e24e31685bd448d) )
  1919: 
  1920: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  1921: 	ROM_LOAD( "jp_10.bin", 0x000000, 0x040000, CRC(178e43c0) SHA1(9c3d5a10f0f7a9d3f2d5dfaba6495d5cd8e94c4d) )	// FIRST AND SECOND HALF IDENTICAL
  1922: 	ROM_CONTINUE(          0x000000, 0x040000             )
  1923: 
  1924: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  1925: 	ROM_LOAD( "jp_8.bin",  0x000000, 0x040000, CRC(eca67632) SHA1(9f91081a26bd98fd79d5ddc6413b8a32006bb05f) )	// FIRST AND SECOND HALF IDENTICAL
  1926: 	ROM_CONTINUE(          0x000000, 0x040000             )
  1927: 
  1928: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  1929: 	ROM_LOAD( "bs.bpr",    0x0000, 0x0200, CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) )
  1930: ROM_END
  1931: 
  1932: 
  1933: INPUT_PORTS_START( jitsupro )
  1934: 
  1935: 	COINS						/* IN0 0x80001.b */
  1936: 	//	shoot	change view		change bat
  1937: 	JOY_3BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  1938: 	RESERVE						/* IN2 0x80004.b */
  1939: 	JOY_3BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  1940: 
  1941: 	PORT_START			/* IN4 0x80006.b */
  1942: 	COINAGE_6BITS
  1943: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1944: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1945: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1946: 	PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
  1947: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1948: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1949: 
  1950: 	PORT_START			/* IN5 0x80007.b */
  1951: 	PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0*" )
  1952: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1953: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1954: 	PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1*" )
  1955: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )	// $200-140
  1956: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )	// $400-140
  1957: 	PORT_DIPNAME( 0x3c, 0x3c, "Unknown 2-2345*" )
  1958: 	PORT_DIPSETTING(    0x3c, "0"  )
  1959: 	PORT_DIPSETTING(    0x38, "1"  )
  1960: 	PORT_DIPSETTING(    0x34, "2"  )
  1961: 	PORT_DIPSETTING(    0x30, "3"  )
  1962: 	PORT_DIPSETTING(    0x2c, "4"  )
  1963: 	PORT_DIPSETTING(    0x28, "5"  )
  1964: 	PORT_DIPSETTING(    0x24, "6"  )
  1965: 	PORT_DIPSETTING(    0x20, "7"  )
  1966: 	PORT_DIPSETTING(    0x1c, "8"  )
  1967: 	PORT_DIPSETTING(    0x18, "9"  )
  1968: 	PORT_DIPSETTING(    0x14, "10" )
  1969: 	PORT_DIPSETTING(    0x10, "11" )
  1970: 	PORT_DIPSETTING(    0x0c, "12" )
  1971: 	PORT_DIPSETTING(    0x08, "13" )
  1972: 	PORT_DIPSETTING(    0x04, "14" )
  1973: 	PORT_DIPSETTING(    0x00, "15" )
  1974: 	PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6*" )
  1975: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1976: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1977: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  1978: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1979: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1980: 
  1981: INPUT_PORTS_END
  1982: 
  1983: 
  1984: 
  1985: /***************************************************************************
  1986: 
  1987: 							[ Kick Off ]
  1988: 
  1989: WARNING: The sound CPU writes and read in the 9000-ffff area
  1990: 
  1991: interrupts:	1-2]	rte
  1992: 			3]		timer
  1993: 			4-7]	loop forever
  1994: 
  1995: f0128/a.w	*** Time (minutes/seconds BCD) ***
  1996: f012c/e.w	*** Goals (P1/P2) ***
  1997: 
  1998: Notes:
  1999: 	* Coin B and Test are ignored
  2000: 	* The alternate control method (selectable through a DSW)
  2001: 	  isn't implemented: the program tests the low 4 bits of
  2002: 	  the joystick inputs ($80002, $80004) but not the buttons.
  2003: 	  I can't get the players to move
  2004: 	* Pressing P1 or P2 Start while the game boots pops up
  2005: 	  a rudimental sprites or tiles browser
  2006: 
  2007: ***************************************************************************/
  2008: 
  2009: ROM_START( kickoff )
  2010: 	ROM_REGION( 0x20000, REGION_CPU1, 0 )		/* Main CPU Code */
  2011: 	ROM_LOAD16_BYTE( "kioff03.rom", 0x000000, 0x010000, CRC(3b01be65) SHA1(110b4e02053073c0315aba1eca8c19afe5fafb33) )
  2012: 	ROM_LOAD16_BYTE( "kioff01.rom", 0x000001, 0x010000, CRC(ae6e68a1) SHA1(aac54e13dd33420712a869e6f46fb9b94fde9e34) )
  2013: 
  2014: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2015: 	ROM_LOAD16_BYTE( "kioff09.rom", 0x000000, 0x010000, CRC(1770e980) SHA1(0c9dd30765432c64bc6c320c0948c471b52ae084) )
  2016: 	ROM_LOAD16_BYTE( "kioff19.rom", 0x000001, 0x010000, CRC(1b03bbe4) SHA1(ef778712c293af15bda37f0425892023747ec479) )
  2017: 
  2018: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2019: 	ROM_LOAD( "kioff05.rom", 0x000000, 0x020000, CRC(e7232103) SHA1(4bb72fb835ab491cf5b58a34af4e2a767703320c) )
  2020: 	ROM_LOAD( "kioff06.rom", 0x020000, 0x020000, CRC(a0b3cb75) SHA1(4840177d84e825c39e2e8252c75f0c1aab156b19) )
  2021: 	ROM_LOAD( "kioff07.rom", 0x040000, 0x020000, CRC(ed649919) SHA1(e8955c0dc2d1546d875a16fc9d8595ed4a507539) )
  2022: 	ROM_LOAD( "kioff10.rom", 0x060000, 0x020000, CRC(fd739fec) SHA1(1442d5ef7b8fbaa0c9f71c12ce993626364d2e1a) )
  2023: 
  2024: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2025: 	// scroll 1 is unused
  2026: 
  2027: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2028: 	ROM_LOAD( "kioff16.rom", 0x000000, 0x020000, CRC(22c46314) SHA1(e56161d4145042fc2524b12c31c5b99166c1019b) )
  2029: 
  2030: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2031: 	ROM_LOAD( "kioff27.rom", 0x000000, 0x020000, CRC(ca221ae2) SHA1(77ba20536620949f3a172205f4d7275c9771a5a9) )
  2032: 	ROM_LOAD( "kioff18.rom", 0x020000, 0x020000, CRC(d7909ada) SHA1(3bdbf21c2815f0242974e42d04c3b5e356ce583f) )
  2033: 	ROM_LOAD( "kioff17.rom", 0x040000, 0x020000, CRC(f171559e) SHA1(9052f0aff07f0c4a013766bda1f9fffcfa682b29) )
  2034: 	ROM_LOAD( "kioff26.rom", 0x060000, 0x020000, CRC(2a90df1b) SHA1(518d959d9557afa05da8d7bce590ff46bd6fe367) )
  2035: 
  2036: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2037: 	ROM_LOAD( "kioff20.rom", 0x000000, 0x020000, CRC(5c28bd2d) SHA1(95d70a30118dfd2649f8d1f726a89e61233b4ae1) )
  2038: 	ROM_LOAD( "kioff21.rom", 0x020000, 0x020000, CRC(195940cf) SHA1(5b1880a576046dae32cf1fd48cd4e8830649b7f7) )
  2039: 
  2040: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2041: 	// same rom for 2 oki chips ?? Unlikely
  2042: 	ROM_LOAD( "kioff20.rom", 0x000000, 0x020000, CRC(5c28bd2d) SHA1(95d70a30118dfd2649f8d1f726a89e61233b4ae1) )
  2043: 	ROM_LOAD( "kioff21.rom", 0x020000, 0x020000, CRC(195940cf) SHA1(5b1880a576046dae32cf1fd48cd4e8830649b7f7) )
  2044: 
  2045: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2046: 	ROM_LOAD( "kick.bin",    0x0000, 0x0200, CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) )
  2047: ROM_END
  2048: 
  2049: INPUT_PORTS_START( kickoff )
  2050: 	COINS						/* IN0 0x80001.b ->  !f0008/a.w  */
  2051: //	shoot	pass
  2052: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b ->  !f000c/e.w  */
  2053: 	RESERVE						/* IN2 0x80004.b --> !f0010/11.w */
  2054: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b /               */
  2055: 
  2056: 	PORT_START			/* IN4 0x80006.b */
  2057: 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
  2058: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_1C ) )
  2059: 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_1C ) )
  2060: 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  2061: 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
  2062: 	PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
  2063: 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
  2064: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
  2065: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  2066: 	PORT_DIPNAME( 0x08, 0x08, "Unknown 1-3" )	// unused?
  2067: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  2068: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2069: 	PORT_DIPNAME( 0x10, 0x10, "Unknown 1-4" )	// unused?
  2070: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  2071: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2072: 	PORT_BITX(    0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze Screen", IP_KEY_NONE, IP_JOY_NONE )
  2073: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  2074: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2075: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  2076: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  2077: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2078: 	PORT_DIPNAME( 0x80, 0x80, "Text" )
  2079: 	PORT_DIPSETTING(    0x80, "Japanese" )
  2080: 	PORT_DIPSETTING(    0x00, "English" )	// show "Japan Only" warning
  2081: 
  2082: 	PORT_START			/* IN5 0x80007.b */
  2083: 	PORT_DIPNAME( 0x03, 0x03, "Time" )	// -> !f0082.w
  2084: 	PORT_DIPSETTING(    0x03, "3'" )
  2085: 	PORT_DIPSETTING(    0x02, "4'" )
  2086: 	PORT_DIPSETTING(    0x01, "5'" )
  2087: 	PORT_DIPSETTING(    0x00, "6'" )
  2088: 	PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )	// unused?
  2089: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  2090: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2091: 	PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" )	// unused?
  2092: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  2093: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2094: 	PORT_DIPNAME( 0x30, 0x30, "?Difficulty?" )	// -> !f0084.w
  2095: 	PORT_DIPSETTING(    0x30, "0" )
  2096: 	PORT_DIPSETTING(    0x20, "1" )
  2097: 	PORT_DIPSETTING(    0x10, "2" )
  2098: 	PORT_DIPSETTING(    0x00, "3" )
  2099: 	PORT_DIPNAME( 0x40, 0x00, "Controls" )
  2100: 	PORT_DIPSETTING(    0x40, DEF_STR( Unknown ) )
  2101: 	PORT_DIPSETTING(    0x00, "Joystick" )
  2102: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  2103: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2104: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2105: 
  2106: INPUT_PORTS_END
  2107: 
  2108: 
  2109: /***************************************************************************
  2110: 
  2111: 							[ Legend of Makai ]
  2112: 
  2113: ***************************************************************************/
  2114: 
  2115: ROM_START( lomakai )
  2116: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  2117: 	ROM_LOAD16_BYTE( "lom_30.rom", 0x000000, 0x020000, CRC(ba6d65b8) SHA1(4c83e57c977b2be82a99a4a61ab8fd5f7099ae38) )
  2118: 	ROM_LOAD16_BYTE( "lom_20.rom", 0x000001, 0x020000, CRC(56a00dc2) SHA1(5d97f89d384e12d70cbb5aabd6ce309e5cfb5497) )
  2119: 
  2120: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Sound CPU Code (Z80) */
  2121: 	ROM_LOAD( "lom_01.rom",  0x0000, 0x10000, CRC(46e85e90) SHA1(905899346f7cd91e76d0e303258149c3d16604e0) )
  2122: 
  2123: 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2124: 	ROM_LOAD( "lom_05.rom", 0x000000, 0x020000, CRC(d04fc713) SHA1(b04bf71b93aa7fe5680c9ab1bf346416d75b511f) )
  2125: 
  2126: 	ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2127: 	ROM_LOAD( "lom_08.rom", 0x000000, 0x010000, CRC(bdb15e67) SHA1(6f8e06d294cf7cfbbf77c4013a6e02a942300f72) )
  2128: 
  2129: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */
  2130: 	ROM_LOAD( "lom_06.rom", 0x000000, 0x020000, CRC(f33b6eed) SHA1(92da5b278c59bcbe4fdaf408bf1cfd8d6cafde85) )
  2131: 
  2132: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Unknown PROMs */
  2133: 	ROM_LOAD( "makaiden.9",  0x0000, 0x0100, CRC(3567065d) SHA1(e111e40f9400512b3e088842d87462b00b450b8d) )
  2134: 	ROM_LOAD( "makaiden.10", 0x0100, 0x0100, CRC(e6709c51) SHA1(f5cd4f0454c1a71a5b0006b098f9e76c2d8a27d2) )
  2135: ROM_END
  2136: 
  2137: ROM_START( makaiden )
  2138: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  2139: 	ROM_LOAD16_BYTE( "makaiden.3a", 0x000000, 0x020000, CRC(87cf81d1) SHA1(c4410a86a01c683368dbc3daca61e21931885650) )
  2140: 	ROM_LOAD16_BYTE( "makaiden.2a", 0x000001, 0x020000, CRC(d40e0fea) SHA1(0f8a0440f63f52508ab44c3a8eb5b7f03ccca49d) )
  2141: 
  2142: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Sound CPU Code (Z80) */
  2143: 	ROM_LOAD( "lom_01.rom",  0x0000, 0x10000, CRC(46e85e90) SHA1(905899346f7cd91e76d0e303258149c3d16604e0) )
  2144: 
  2145: 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2146: 	ROM_LOAD( "lom_05.rom", 0x000000, 0x020000, CRC(d04fc713) SHA1(b04bf71b93aa7fe5680c9ab1bf346416d75b511f) )
  2147: 
  2148: 	ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2149: 	ROM_LOAD( "makaiden.8", 0x000000, 0x010000, CRC(a7f623f9) SHA1(f893fcaedd9144823f3fa10706dd6cd8ac51cdb3) )
  2150: 
  2151: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */
  2152: 	ROM_LOAD( "lom_06.rom", 0x000000, 0x020000, CRC(f33b6eed) SHA1(92da5b278c59bcbe4fdaf408bf1cfd8d6cafde85) )
  2153: 
  2154: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Unknown PROMs */
  2155: 	ROM_LOAD( "makaiden.9",  0x0000, 0x0100, CRC(3567065d) SHA1(e111e40f9400512b3e088842d87462b00b450b8d) )
  2156: 	ROM_LOAD( "makaiden.10", 0x0100, 0x0100, CRC(e6709c51) SHA1(f5cd4f0454c1a71a5b0006b098f9e76c2d8a27d2) )
  2157: ROM_END
  2158: 
  2159: INPUT_PORTS_START( lomakai )
  2160: 	COINS						/* IN0 0x80001.b */
  2161: //	fire	jump
  2162: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  2163: 	RESERVE						/* IN2 0x80004.b */
  2164: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  2165: 
  2166: 	PORT_START			/* IN4 0x80006.b */
  2167: 	COINAGE_6BITS_2
  2168: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  2169: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  2170: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2171: 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2172: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2173: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2174: 
  2175: 	PORT_START			/* IN5 0x80007.b */
  2176: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  2177: 	PORT_DIPSETTING(    0x00, "2" )
  2178: 	PORT_DIPSETTING(    0x03, "3" )
  2179: 	PORT_DIPSETTING(    0x02, "4" )
  2180: 	PORT_DIPSETTING(    0x01, "5" )
  2181: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  2182: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  2183: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2184: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  2185: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  2186: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2187: 	PORT_DIPNAME( 0x30, 0x30, "?Difficulty?" )
  2188: 	PORT_DIPSETTING(    0x00, "Easy" )
  2189: 	PORT_DIPSETTING(    0x30, "Normal" )
  2190: 	PORT_DIPSETTING(    0x20, "Hard" )
  2191: 	PORT_DIPSETTING(    0x10, "Hardest" )
  2192: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
  2193: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  2194: 	PORT_DIPSETTING(    0x40, DEF_STR( Cocktail ) )
  2195: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  2196: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2197: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2198: 
  2199: INPUT_PORTS_END
  2200: 
  2201: 
  2202: /***************************************************************************
  2203: 
  2204: 							 [ P - 47 ]
  2205: 
  2206: (Japan version)
  2207: interrupts:	1]	53e		2] 540
  2208: 
  2209: 517a		print word string: (a6)+,(a5)+$40. FFFF ends
  2210: 5dbc		print string(s) to (a1)+$40: a6-> len.b,x.b,y.b,(chars.b)*
  2211: 726a		prints screen
  2212: 7300		ram test
  2213: 7558		ip test
  2214: 75e6(7638 loop)	sound test
  2215: 	84300.w		<-f1002.w	?portrait F/F on(0x0100)/off(0x0000)
  2216: 	84308.w		<-f1004.w	sound code
  2217: 
  2218: 7736(7eb4 loop)	scroll 0 test
  2219: 	9809c		color
  2220: 	980a0		hscroll
  2221: 	980a4		vscroll
  2222: 	980a8		charsize
  2223: 
  2224: 	7e1e		prepare screen
  2225: 	7e84		get user input
  2226: 	7faa		vhscroll
  2227: 	80ce		print value.l from a0
  2228: 
  2229: 785c(78b8 loop)	obj check 1		84000.w	<-0x0E	84100.w	<-0x101
  2230: 	9804c	size
  2231: 	98050	number		(0e.w bit 11-0)
  2232: 	98054	color code	(08.w bit 2-0)
  2233: 	98058	H flip		(08.w bit 6)
  2234: 	9805c	V flip		(08.w bit 7)
  2235: 	98060	priority	(08.w bit 3)
  2236: 	98064	mosaic		(08.w bit 11-8)
  2237: 	98068	mosaic sol.	(08.w bit 12)
  2238: 
  2239: 7afe(7cfe loop)	obj check 2		84000.w	<-0x0f	84100.w	<-0x00
  2240: 	9804a	obj num	(a4-8e000)/8
  2241: 	9804e	H-rev	a4+02.w
  2242: 	98052	V-rev	a4+04.w
  2243: 	98056	CG-rev	a4+06.w
  2244: 	9805a	Rem.Eff bit   4 of 84100
  2245: 	98060	Rem.Num bit 3-0 of 84100 (see 7dd4)
  2246: 
  2247: TRAP#2		pause?
  2248: f0104.w		*** initial lives ***
  2249: f002a/116.w	<-!80000
  2250: f0810.w		<-!80002
  2251: f0c00.w		<-!80004
  2252: f0018.w		*** level ***
  2253: 
  2254: 
  2255: ***************************************************************************/
  2256: 
  2257: ROM_START( p47 )
  2258: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  2259: 	ROM_LOAD16_BYTE( "p47us3.bin", 0x000000, 0x020000, CRC(022e58b8) SHA1(87db59e409977358d9a7b689f2d69bef056328d9) )
  2260: 	ROM_LOAD16_BYTE( "p47us1.bin", 0x000001, 0x020000, CRC(ed926bd8) SHA1(5cf3e7b9b23667eaa8ebcff0803a7b881c7b83cf) )
  2261: 
  2262: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2263: 	ROM_LOAD16_BYTE( "p47j_9.bin",  0x000000, 0x010000, CRC(ffcf318e) SHA1(c675968c931a7e8e00ae83e49e8cef3fd193da57) )
  2264: 	ROM_LOAD16_BYTE( "p47j_19.bin", 0x000001, 0x010000, CRC(adb8c12e) SHA1(31590b037133f81a52779dbd4f2b5ac5b59198ae) )
  2265: 
  2266: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2267: 	ROM_LOAD( "p47j_5.bin",  0x000000, 0x020000, CRC(fe65b65c) SHA1(b13902bf3b469c06d0646c49ddf211f16cb5e5c3) )
  2268: 	ROM_LOAD( "p47j_6.bin",  0x020000, 0x020000, CRC(e191d2d2) SHA1(d494c652953f5c8dcd8c8b696a011d085d335fea) )
  2269: 	ROM_LOAD( "p47j_7.bin",  0x040000, 0x020000, CRC(f77723b7) SHA1(2f95ea5e55bc21c4e9a760f102f2dc13b9ca6cf1) )
  2270: 
  2271: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2272: 	ROM_LOAD( "p47j_23.bin", 0x000000, 0x020000, CRC(6e9bc864) SHA1(f56ea2dd638a8f6952796535eb549ddd55573bcf) )
  2273: 	ROM_RELOAD(              0x020000, 0x020000 )	/* why? */
  2274: 	ROM_LOAD( "p47j_12.bin", 0x040000, 0x020000, CRC(5268395f) SHA1(de0cba1e7a7d4acc27467d1b553e8f39bea7282e) )
  2275: 
  2276: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2277: 	ROM_LOAD( "p47us16.bin", 0x000000, 0x010000, CRC(5a682c8f) SHA1(0910025e2ee068e5a1fe7f2daae64c9112ab1de6) )
  2278: 
  2279: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2280: 	ROM_LOAD( "p47j_27.bin", 0x000000, 0x020000, CRC(9e2bde8e) SHA1(8cac74c8177a6953b78c6fbf734dfee5da8fc961) )
  2281: 	ROM_LOAD( "p47j_18.bin", 0x020000, 0x020000, CRC(29d8f676) SHA1(6af5ec9aa96ea67c2c95bcca2164afc128e84a31) )
  2282: 	ROM_LOAD( "p47j_26.bin", 0x040000, 0x020000, CRC(4d07581a) SHA1(768693e1fcb822b8284ba14c9a5c3d6b00f73383) )
  2283: 	ROM_RELOAD(              0x060000, 0x020000 )	/* why? */
  2284: 
  2285: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2286: 	ROM_LOAD( "p47j_20.bin", 0x000000, 0x020000, CRC(2ed53624) SHA1(2b8ed16cffb6179587e7f01fcbcc30ed436d7afa) )
  2287: 	ROM_LOAD( "p47j_21.bin", 0x020000, 0x020000, CRC(6f56b56d) SHA1(30f386870411ff0e65684a8d8e6d4afb9125718a) )
  2288: 
  2289: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2290: 	ROM_LOAD( "p47j_10.bin", 0x000000, 0x020000, CRC(b9d79c1e) SHA1(315dbed9b7cc289b383c95e6c94267682324154c) )
  2291: 	ROM_LOAD( "p47j_11.bin", 0x020000, 0x020000, CRC(fa0d1887) SHA1(d24c17806669f5b12527b36bc9c10fd16222e23c) )
  2292: 
  2293: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2294: 	ROM_LOAD( "prom.14m",    0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
  2295: ROM_END
  2296: 
  2297: 
  2298: ROM_START( p47j )
  2299: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  2300: 	ROM_LOAD16_BYTE( "p47j_3.bin", 0x000000, 0x020000, CRC(11c655e5) SHA1(a2bfd6538ac81a5f20fa77460ba045584313413a) )
  2301: 	ROM_LOAD16_BYTE( "p47j_1.bin", 0x000001, 0x020000, CRC(0a5998de) SHA1(9f474c6c9b125fc7c41a44dbaacf3ba3800df8b5) )
  2302: 
  2303: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2304: 	ROM_LOAD16_BYTE( "p47j_9.bin",  0x000000, 0x010000, CRC(ffcf318e) SHA1(c675968c931a7e8e00ae83e49e8cef3fd193da57) )
  2305: 	ROM_LOAD16_BYTE( "p47j_19.bin", 0x000001, 0x010000, CRC(adb8c12e) SHA1(31590b037133f81a52779dbd4f2b5ac5b59198ae) )
  2306: 
  2307: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2308: 	ROM_LOAD( "p47j_5.bin",  0x000000, 0x020000, CRC(fe65b65c) SHA1(b13902bf3b469c06d0646c49ddf211f16cb5e5c3) )
  2309: 	ROM_LOAD( "p47j_6.bin",  0x020000, 0x020000, CRC(e191d2d2) SHA1(d494c652953f5c8dcd8c8b696a011d085d335fea) )
  2310: 	ROM_LOAD( "p47j_7.bin",  0x040000, 0x020000, CRC(f77723b7) SHA1(2f95ea5e55bc21c4e9a760f102f2dc13b9ca6cf1) )
  2311: 
  2312: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2313: 	ROM_LOAD( "p47j_23.bin", 0x000000, 0x020000, CRC(6e9bc864) SHA1(f56ea2dd638a8f6952796535eb549ddd55573bcf) )
  2314: 	ROM_RELOAD(              0x020000, 0x020000 )	/* why? */
  2315: 	ROM_LOAD( "p47j_12.bin", 0x040000, 0x020000, CRC(5268395f) SHA1(de0cba1e7a7d4acc27467d1b553e8f39bea7282e) )
  2316: 
  2317: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2318: 	ROM_LOAD( "p47j_16.bin", 0x000000, 0x010000, CRC(30e44375) SHA1(62a4bb217b6aad5fd4760a0f4999cb63559549a5) )
  2319: 
  2320: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2321: 	ROM_LOAD( "p47j_27.bin", 0x000000, 0x020000, CRC(9e2bde8e) SHA1(8cac74c8177a6953b78c6fbf734dfee5da8fc961) )
  2322: 	ROM_LOAD( "p47j_18.bin", 0x020000, 0x020000, CRC(29d8f676) SHA1(6af5ec9aa96ea67c2c95bcca2164afc128e84a31) )
  2323: 	ROM_LOAD( "p47j_26.bin", 0x040000, 0x020000, CRC(4d07581a) SHA1(768693e1fcb822b8284ba14c9a5c3d6b00f73383) )
  2324: 	ROM_RELOAD(              0x060000, 0x020000 )	/* why? */
  2325: 
  2326: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2327: 	ROM_LOAD( "p47j_20.bin", 0x000000, 0x020000, CRC(2ed53624) SHA1(2b8ed16cffb6179587e7f01fcbcc30ed436d7afa) )
  2328: 	ROM_LOAD( "p47j_21.bin", 0x020000, 0x020000, CRC(6f56b56d) SHA1(30f386870411ff0e65684a8d8e6d4afb9125718a) )
  2329: 
  2330: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2331: 	ROM_LOAD( "p47j_10.bin", 0x000000, 0x020000, CRC(b9d79c1e) SHA1(315dbed9b7cc289b383c95e6c94267682324154c) )
  2332: 	ROM_LOAD( "p47j_11.bin", 0x020000, 0x020000, CRC(fa0d1887) SHA1(d24c17806669f5b12527b36bc9c10fd16222e23c) )
  2333: 
  2334: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2335: 	ROM_LOAD( "prom.14m",    0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
  2336: ROM_END
  2337: 
  2338: INPUT_PORTS_START( p47 )
  2339: 
  2340: 	COINS						/* IN0 0x80001.b */
  2341: //	fire	bomb
  2342: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  2343: 	RESERVE						/* IN2 0x80004.b */
  2344: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  2345: 
  2346: 	PORT_START			/* IN4 0x80006.b */
  2347: 	COINAGE_6BITS_2
  2348: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  2349: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  2350: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  2351: 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  2352: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2353: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2354: 
  2355: 	PORT_START			/* IN5 0x80007.b */
  2356: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  2357: 	PORT_DIPSETTING(    0x02, "2" )
  2358: 	PORT_DIPSETTING(    0x03, "3" )
  2359: 	PORT_DIPSETTING(    0x01, "4" )
  2360: 	PORT_DIPSETTING(    0x00, "5" )
  2361: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  2362: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  2363: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2364: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  2365: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  2366: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2367: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
  2368: 	PORT_DIPSETTING(    0x00, "Easy" )
  2369: 	PORT_DIPSETTING(    0x30, "Normal" )
  2370: 	PORT_DIPSETTING(    0x20, "Hard" )
  2371: 	PORT_DIPSETTING(    0x10, "Hardest" )
  2372: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  2373: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  2374: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2375: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  2376: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2377: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2378: 
  2379: INPUT_PORTS_END
  2380: 
  2381: 
  2382: 
  2383: 
  2384: /***************************************************************************
  2385: 
  2386: 							[ Peek-a-Boo! ]
  2387: 
  2388: interrupts:
  2389: 	1] 		506>	rte
  2390: 	2] 		50a>	move.w  #$ffff, $1f0006.l
  2391: 					jsr     $46e0.l				rte
  2392: 	3] 		51c>	rte
  2393: 	4] 		520>	move.w  #$ffff, $1f000a.l	rte
  2394: 	5-7]	53c>	rte
  2395: 
  2396: 3832	Show error (d7 = ram segment where error occurred)
  2397: 		1 after d8000 ok. 3 after e0000&d0000 ok. 4 after ram&rom ok
  2398: 
  2399: 003E5E: 0000 3E72	[0]	Color Ram
  2400: 003E62: 0000 3E86	[1]	Video Ram
  2401: 003E66: 0000 3E9A	[2]	Sprite Ram
  2402: 003E6A: 0000 3EB0	[3]	Work Ram
  2403: 003E6E: 0000 3EC4	[4]	ROM
  2404: 
  2405: 000000-03ffff	rom (3f760 chksum)
  2406: 1f0000-1fffff	ram
  2407: 0d0000-0d3fff	text
  2408: 0d8000-0d87ff	palette (+200 = text palette)
  2409: 0e8000-0ebfff	layer
  2410: 0e0000-0e0001	2 dips, 1f003a<-!
  2411: 0f0000-0f0001	2 controls
  2412: 0f8000-0f8001	???
  2413: 
  2414: 010000-010001	protection\watchdog;
  2415: 	fb -> fb
  2416: 	9x ->	0		watchdog reset?
  2417: 			else	samples bank?
  2418: 					$1ff010 = sample
  2419: 					$1ff014 = bank = sample - $22 (33DC: 1 1 2 3 4 5 6 6 6 6)
  2420: 						samples:	bank:
  2421: 						$00-21		0
  2422: 						$22-2b		1-6
  2423: 000000-01ffff
  2424: 020000-03ffff	banked
  2425: 
  2426: 	51 -> paddle p1
  2427: 	52 -> paddle p2
  2428: 	4bba waits for 1f000a to go !0, then clears 1f000a (int 4)
  2429: 	4bca waits (100000) & FF == 3
  2430: 	sequence $81, $71, $67 written
  2431: 
  2432: 
  2433: Scroll x,y,ctrl:
  2434: c2000<-1f0010		c2002<-1f0014		c2004<-1f000c
  2435: 
  2436: Scroll x,y,ctrl:
  2437: c2008<-1f0018		c200a<-1f001c		c200c<-1f000e
  2438: 
  2439: Layers ctrl:
  2440: c2208<-1f0024<<8 + 1f0026		c2308<-1f0022 | 1f002c
  2441: 
  2442: Sprite bank + ??
  2443: c2108<-1f005a + 1f0060 + 1f0062 + 1f0068
  2444: 
  2445: Sprite ctrl:
  2446: c2200<-0
  2447: 
  2448: 1f0000.w	routine index, table at $fae:
  2449: 	0: 4E40
  2450: 	1: 4EC2
  2451: 	2: 4F2C
  2452: 	3: 4F70
  2453: 	4: 4FBC
  2454: 	5: 533A
  2455: 	6: 5382
  2456: 	7: 556E
  2457: 
  2458: 1f003c/40	paddle p1/p2
  2459: 1f0260/4.l	*** p1/p2 score/10 (BCD) ***
  2460: 1f02e6/8.w	*** p1/p2 current lives ***
  2461: 			Bonus lives:	20K  100K  250K  500K 1000K
  2462: 1f02ee		current player (0/1)
  2463: 1f0380		hi score
  2464: 
  2465: 
  2466: ***************************************************************************/
  2467: 
  2468: ROM_START( peekaboo )
  2469: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* 68000 CPU Code */
  2470: 	ROM_LOAD16_BYTE( "j3", 0x000000, 0x020000, CRC(f5f4cf33) SHA1(f135f2b627347255bb0811e9a4a213e3b447c199) )
  2471: 	ROM_LOAD16_BYTE( "j2", 0x000001, 0x020000, CRC(7b3d430d) SHA1(8b48101929da4938a61dfd0eda845368c4184831) )
  2472: 
  2473: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2474: 	ROM_LOAD( "5",       0x000000, 0x080000, CRC(34fa07bb) SHA1(0f688acf302fd56701ee4fcc1d692adb7bf86ce4) )
  2475: 
  2476: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2477: 	ROM_LOAD( "4",       0x000000, 0x020000, CRC(f037794b) SHA1(235c278121921b234a27835284be80c136e6409b) )
  2478: 
  2479: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2480: 	// Unused
  2481: 
  2482: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2483: 	ROM_LOAD( "1",       0x000000, 0x080000, CRC(5a444ecf) SHA1(38a7a6e91d0635a7f82a1c9a04efe1586ed3d856) )
  2484: 
  2485: 	ROM_REGION( 0x120000, REGION_SOUND1, 0 )		/* Samples */
  2486: 	ROM_LOAD( "peeksamp.124", 0x000000, 0x020000, CRC(e1206fa8) SHA1(339d5a4fa2af7fb4ab2e9c6c66f4848fa8774832) )
  2487: 	ROM_CONTINUE(             0x040000, 0x0e0000 )
  2488: 
  2489: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2490: 	ROM_LOAD( "priority.69",    0x000000, 0x200, CRC(b40bff56) SHA1(39c95eed79328ef2df754988db83e07909e848f8) )
  2491: ROM_END
  2492: 
  2493: INPUT_PORTS_START( peekaboo )
  2494: 
  2495: 	PORT_START		/* IN0 - COINS + P1&P2 Buttons - .b */
  2496: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_COIN3 )		// called "service"
  2497: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_COIN4 )		// called "test"
  2498: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_COIN1 )
  2499: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_COIN2 )
  2500: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_START1 )
  2501: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_START2 )
  2502: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2503: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2504: 	PORT_BIT(  0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 )
  2505: 	PORT_BIT(  0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 )
  2506: 	PORT_BIT(  0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  2507: 	PORT_BIT(  0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  2508: 	PORT_BIT(  0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 )		// called "stage clear"
  2509: 	PORT_BIT(  0x2000, IP_ACTIVE_LOW, IPT_BUTTON4 )		// called "option"
  2510: 	PORT_BIT(  0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2511: 	PORT_BIT(  0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2512: 
  2513: #define PEEKABOO_PADDLE(_FLAG_)	\ 
  2514: 	PORT_ANALOG( 0x00ff, 0x0080, IPT_PADDLE | _FLAG_, 50, 10, 0x0018, 0x00e0 )
  2515: 
  2516: 	PORT_START      	/* IN1 - paddle p1 */
  2517: 	PEEKABOO_PADDLE(IPF_PLAYER1)
  2518: 
  2519: 	RESERVE				/* IN2 - fake port */
  2520: 	PORT_START      	/* IN3 - paddle p2 */
  2521: 	PEEKABOO_PADDLE(/*IPF_PLAYER2*/ IPF_COCKTAIL)
  2522: 
  2523: 	PORT_START			/* IN4 - DSW 1 - 1f003a.b<-e0000.b */
  2524: 	COINAGE_6BITS_2
  2525: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )		// 1f0354<-
  2526: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  2527: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  2528: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )		// 1f0022/6e<-!
  2529: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2530: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2531: 
  2532: 	PORT_START			/* IN5 - DSW 2 - 1f003b.b<-e0001.b */
  2533: 	PORT_DIPNAME( 0x03, 0x03, "Unknown 2-0&1" )				// 1f0358<-!
  2534: 	PORT_DIPSETTING(    0x03, "3" )
  2535: 	PORT_DIPSETTING(    0x02, "2" )
  2536: 	PORT_DIPSETTING(    0x01, "1" )
  2537: 	PORT_DIPSETTING(    0x00, "0" )
  2538: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  2539: 	PORT_DIPNAME( 0x08, 0x08, "Movement?" )					// 1f0392<-!
  2540: 	PORT_DIPSETTING(    0x08, "Paddles" )
  2541: 	PORT_DIPSETTING(    0x00, "Buttons" )
  2542: 	PORT_DIPNAME( 0x30, 0x30, "Nudity" )					// 1f0356<-!
  2543: 	PORT_DIPSETTING(    0x30, "Female and Male (Full)" )
  2544: 	PORT_DIPSETTING(    0x20, "Female (Full)" )
  2545: 	PORT_DIPSETTING(    0x10, "Female (Partial)" )
  2546: 	PORT_DIPSETTING(    0x00, "None" )
  2547: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )			// 1f006a<-!
  2548: 	PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
  2549: 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  2550: 	PORT_DIPNAME( 0x80, 0x80, "(controls?)Unknown 2-7" )	// 1f0074<-!
  2551: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )	// num of controls?
  2552: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2553: 
  2554: INPUT_PORTS_END
  2555: 
  2556: 
  2557: 
  2558: data16_t protection_val;
  2559: 
  2560: /* Read the input ports, through a protection device */
  2561: static READ16_HANDLER( protection_peekaboo_r )
  2562: {
  2563: 	switch (protection_val)
  2564: 	{
  2565: 		case 0x02:	return 0x03;
  2566: 		case 0x51:	return player1_r(0,0);
  2567: 		case 0x52:	return player2_r(0,0);
  2568: 		default:	return protection_val;
  2569: 	}
  2570: }
  2571: 
  2572: static WRITE16_HANDLER( protection_peekaboo_w )
  2573: {
  2574: 	static int bank;
  2575: 
  2576: 	COMBINE_DATA(&protection_val);
  2577: 
  2578: 	if ((protection_val & 0x90) == 0x90)
  2579: 	{
  2580: 		unsigned char *RAM = memory_region(okim6295_interface_D.region[0]);
  2581: 		int new_bank = (protection_val & 0x7) % 7;
  2582: 
  2583: 		if (bank != new_bank)
  2584: 		{
  2585: 			memcpy(&RAM[0x20000],&RAM[0x40000 + 0x20000*new_bank],0x20000);
  2586: 			bank = new_bank;
  2587: 		}
  2588: 	}
  2589: 
  2590: 	cpu_set_irq_line(0,4,HOLD_LINE);
  2591: }
  2592: 
  2593: 
  2594: /***************************************************************************
  2595: 
  2596: 							[ Plus Alpha ]
  2597: 						  (aka Flight Alpha)
  2598: 
  2599: f2ef8.w		bombs
  2600: f309e.w		*** lives       ***
  2601: f30a4.l		*** score (BCD) ***
  2602: 
  2603: ***************************************************************************/
  2604: 
  2605: ROM_START( plusalph )
  2606: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  2607: 	ROM_LOAD16_BYTE( "pa-rom2.bin", 0x000000, 0x020000, CRC(33244799) SHA1(686fb7fa8a6c25b5aff78bc509f35c69492d7d1e) )
  2608: 	ROM_LOAD16_BYTE( "pa-rom1.bin", 0x000001, 0x020000, CRC(a32fdcae) SHA1(c2315a7142e5499e9325f5a8361cb25e83747a3e) )
  2609: 	ROM_LOAD16_BYTE( "pa-rom3.bin", 0x040000, 0x010000, CRC(1b739835) SHA1(3aaa9545a7f578a9775311dcd44504870f3b1544) )
  2610: 	ROM_LOAD16_BYTE( "pa-rom4.bin", 0x040001, 0x010000, CRC(ff760e80) SHA1(dd06306a516a2d5e49cf8f2343ddc26405b309a9) )
  2611: 
  2612: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2613: 	ROM_LOAD16_BYTE( "pa-rom5.bin", 0x000000, 0x010000, CRC(ddc2739b) SHA1(dee31660428baea44c73dec238ed7f39a6771fe6) )
  2614: 	ROM_LOAD16_BYTE( "pa-rom6.bin", 0x000001, 0x010000, CRC(f6f8a167) SHA1(60d5c9db18d8f6704b68ccde5d026174679cec36) )
  2615: 
  2616: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2617: 	ROM_LOAD( "pa-rom11.bin", 0x000000, 0x020000, CRC(eb709ae7) SHA1(434c9da3c79a97ddd9be77908ce65e9efe6c8106) )
  2618: 	ROM_LOAD( "pa-rom12.bin", 0x020000, 0x020000, CRC(cacbc350) SHA1(328094a5d067775871f7d69b4c20c40e46b0eaba) )
  2619: 	ROM_LOAD( "pa-rom13.bin", 0x040000, 0x020000, CRC(fad093dd) SHA1(98a42f91d66b990e18f845edc01c23568cbc7a83) )
  2620: 	ROM_LOAD( "pa-rom14.bin", 0x060000, 0x020000, CRC(d3676cd1) SHA1(b805216af1a65c2f19a82aaf3775bbbceb065c7e) )
  2621: 
  2622: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2623: 	ROM_LOAD( "pa-rom15.bin", 0x000000, 0x020000, CRC(8787735b) SHA1(9083061ce6de98a611558fc59d1ec37aefc2a2e0) )
  2624: 	ROM_LOAD( "pa-rom16.bin", 0x020000, 0x020000, CRC(a06b813b) SHA1(de4fb0f92f9178c2b5f2750d17cfc3da126b23a4) )
  2625: 	ROM_LOAD( "pa-rom17.bin", 0x040000, 0x020000, CRC(c6b38a4b) SHA1(2529ee47324edcdf4cd34c159524f37da08e1099) )
  2626: 	/* empty place */
  2627: 
  2628: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2629: 	ROM_LOAD( "pa-rom19.bin", 0x000000, 0x010000, CRC(39ef193c) SHA1(93f417a36732ca76d566f2ff2c9ff62e5679da08) )
  2630: 
  2631: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2632: 	ROM_LOAD( "pa-rom20.bin", 0x000000, 0x020000, CRC(86c557a8) SHA1(a6dfb2aeda07639448a4135d1336019214030fc9) )
  2633: 	ROM_LOAD( "pa-rom21.bin", 0x020000, 0x020000, CRC(81140a88) SHA1(f31ae208623bdb152888e1ebdd2515f9bcc2fb44) )
  2634: 	ROM_LOAD( "pa-rom22.bin", 0x040000, 0x020000, CRC(97e39886) SHA1(89161ae647c835ff24fcb8676f6e1228f9a1fa10) )
  2635: 	ROM_LOAD( "pa-rom23.bin", 0x060000, 0x020000, CRC(0383fb65) SHA1(31fa9c9ba57bf3c9ee8e3f5b1b4e28c1a3591a4b) )
  2636: 
  2637: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2638: 	ROM_LOAD( "pa-rom9.bin",  0x000000, 0x020000, CRC(065364bd) SHA1(bacb268b1c76c286e89eb823d8c3477ec5f2516c) )
  2639: 	ROM_LOAD( "pa-rom10.bin", 0x020000, 0x020000, CRC(395df3b2) SHA1(6f69b573e997ba4bb5aabf745843921f0866d209) )
  2640: 
  2641: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2642: 	ROM_LOAD( "pa-rom7.bin",  0x000000, 0x020000, CRC(9f5d800e) SHA1(c0a7bdedc8a1294b8d29f7f6007542ea006e70cb) )
  2643: 	ROM_LOAD( "pa-rom8.bin",  0x020000, 0x020000, CRC(ae007750) SHA1(b48784fd6bcf205296e3e5b59c258f76da5c2d1b) )
  2644: 
  2645: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2646: 	ROM_LOAD( "prom.14m",     0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
  2647: ROM_END
  2648: 
  2649: INPUT_PORTS_START( plusalph )
  2650: 	COINS						/* IN0 0x80001.b */
  2651: //	fire	bomb
  2652: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  2653: 	RESERVE						/* IN2 0x80004.b */
  2654: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  2655: 
  2656: 	PORT_START			/* IN4 0x80006.b */
  2657: 	COINAGE_6BITS
  2658: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  2659: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  2660: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  2661: 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze Screen", IP_KEY_NONE, IP_JOY_NONE )
  2662: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2663: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2664: 
  2665: 	PORT_START			/* IN5 0x80007.b */
  2666: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  2667: 	PORT_DIPSETTING(    0x03, "3" )
  2668: 	PORT_DIPSETTING(    0x02, "4" )
  2669: 	PORT_DIPSETTING(    0x01, "5" )
  2670: 	PORT_BITX( 0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Inifinite", IP_KEY_NONE, IP_JOY_NONE )
  2671: 	PORT_DIPNAME( 0x04, 0x04, "Bombs" )
  2672: 	PORT_DIPSETTING(    0x00, "2" )
  2673: 	PORT_DIPSETTING(    0x04, "3" )
  2674: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
  2675: 	PORT_DIPSETTING(    0x08, "70k and every 130k")
  2676: 	PORT_DIPSETTING(    0x00, "100k and every 200k")
  2677: 	PORT_DIPNAME( 0x30, 0x30, "?Difficulty?" )
  2678: 	PORT_DIPSETTING(    0x30, "3" )	// 1
  2679: 	PORT_DIPSETTING(    0x20, "2" )	// 3
  2680: 	PORT_DIPSETTING(    0x10, "1" )	// 2
  2681: 	PORT_DIPSETTING(    0x00, "0" )	// 0
  2682: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
  2683: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  2684: 	PORT_DIPSETTING(    0x40, DEF_STR( Cocktail ) )
  2685: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  2686: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2687: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2688: 
  2689: INPUT_PORTS_END
  2690: 
  2691: 
  2692: /***************************************************************************
  2693: 
  2694: 							[ RodLand ]
  2695: 
  2696: (World version)
  2697: interrupts:	1] 418->3864: rts	2] 420: move.w #-1,f0010; jsr 3866	3] rte
  2698: 
  2699: 213da	print test error (20c12 = string address 0-4)
  2700: 
  2701: f0018->84200	f0020->84208	f0028->84008
  2702: f001c->84202	f0024->8420a	f002c->8400a
  2703: f0012->84204	f0014->8420c	f0016->8400c
  2704: 
  2705: 7fe		d0.w -> 84000.w & f000e.w
  2706: 81a		d0/d1/d2 & $D -> 84204 / 8420c /8400c
  2707: 
  2708: ***************************************************************************/
  2709: 
  2710: ROM_START( rodland )
  2711: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  2712: 	ROM_LOAD16_BYTE( "rl_02.rom", 0x000000, 0x020000, CRC(c7e00593) SHA1(055b7bcabf90ed6d5edc2797d0f85a5d49b8693b) )
  2713: 	ROM_LOAD16_BYTE( "rl_01.rom", 0x000001, 0x020000, CRC(2e748ca1) SHA1(285414af11aad36f3bd7020365ff90eb696d2de3) )
  2714: 	ROM_LOAD16_BYTE( "rl_03.rom", 0x040000, 0x010000, CRC(62fdf6d7) SHA1(ffde7e7f5b3b548bc980b9dee767f693046ecab2) )
  2715: 	ROM_LOAD16_BYTE( "rl_04.rom", 0x040001, 0x010000, CRC(44163c86) SHA1(1c56d79531af0312e7cd3dc66cf61b55dd1a6e51) )
  2716: 
  2717: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2718: 	ROM_LOAD16_BYTE( "rl_05.rom", 0x000000, 0x010000, CRC(c1617c28) SHA1(1b3440055c083b74270fe06b5f42e7d1337efeca) )
  2719: 	ROM_LOAD16_BYTE( "rl_06.rom", 0x000001, 0x010000, CRC(663392b2) SHA1(99052639e934d1ca18888c9c7fa061c1d3508fd4) )
  2720: 
  2721: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2722: 	ROM_LOAD( "rl_23.rom", 0x000000, 0x020000, CRC(ac60e771) SHA1(97c2ac1ed89c171a0db98befa6c3c10754d64880) )
  2723: 	ROM_CONTINUE(          0x030000, 0x010000 )
  2724: 	ROM_CONTINUE(          0x050000, 0x010000 )
  2725: 	ROM_CONTINUE(          0x020000, 0x010000 )
  2726: 	ROM_CONTINUE(          0x040000, 0x010000 )
  2727: 	ROM_CONTINUE(          0x060000, 0x020000 )
  2728: 
  2729: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2730: 	ROM_LOAD( "rl_18.rom", 0x000000, 0x080000, CRC(f3b30ca6) SHA1(f2f88c24a009b6695f7548aebd37b25d1fd19892) )
  2731: 
  2732: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2733: 	ROM_LOAD( "rl_19.bin", 0x000000, 0x020000, CRC(124d7e8f) SHA1(d7885a10085cc3389bd0e26e9d54adb8929218c0) )
  2734: 
  2735: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2736: 	ROM_LOAD( "rl_14.rom", 0x000000, 0x080000, CRC(08d01bf4) SHA1(b9333d11572f46992cdd668908fbc1c33d841f8d) )
  2737: 
  2738: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2739: 	ROM_LOAD( "rl_10.rom", 0x000000, 0x040000, CRC(e1d1cd99) SHA1(6604111d37455c1bd59c1469d9ee7841e7dec913) )
  2740: 
  2741: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2742: 	ROM_LOAD( "rl_08.rom", 0x000000, 0x040000, CRC(8a49d3a7) SHA1(68cb8cf2753b39c253d0edaa8ef2c54fd1f6ebe5) )
  2743: 
  2744: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2745: 	ROM_LOAD( "rl.bin",    0x0000, 0x0200, CRC(8914e72d) SHA1(80a664471f14c8ed8544a5e226fdca425ab3c657) )
  2746: ROM_END
  2747: 
  2748: ROM_START( rodlandj )
  2749: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  2750: 	ROM_LOAD16_BYTE( "rl_2.bin", 0x000000, 0x020000, CRC(b1d2047e) SHA1(75d282b7614c5f4b76ab44e34fea9e87ab8b992c) )
  2751: 	ROM_LOAD16_BYTE( "rl_1.bin", 0x000001, 0x020000, CRC(3c47c2a3) SHA1(62e66a2f53aeacf92551ba64ae4ce14c2e982bb0) )
  2752: 	ROM_LOAD16_BYTE( "rl_3.bin", 0x040000, 0x010000, CRC(c5b1075f) SHA1(a8bcc0e9dbb4b731bc0b7e5a8e0efc3d142505b9) )
  2753: 	ROM_LOAD16_BYTE( "rl_4.bin", 0x040001, 0x010000, CRC(9ec61048) SHA1(71b6af054a528af04e23affff635a9358537cd3b) )
  2754: 
  2755: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2756: 	ROM_LOAD16_BYTE( "rl_05.rom", 0x000000, 0x010000, CRC(c1617c28) SHA1(1b3440055c083b74270fe06b5f42e7d1337efeca) )
  2757: 	ROM_LOAD16_BYTE( "rl_06.rom", 0x000001, 0x010000, CRC(663392b2) SHA1(99052639e934d1ca18888c9c7fa061c1d3508fd4) )
  2758: 
  2759: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2760: 	/* address and data lines are mangled, but otherwise identical to rl_23.rom */
  2761: 	ROM_LOAD( "rl_14.bin", 0x000000, 0x080000, CRC(8201e1bb) SHA1(3304100dcab7b67cee021869a50f4295c8635814) )
  2762: 
  2763: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2764: 	ROM_LOAD( "rl_18.rom", 0x000000, 0x080000, CRC(f3b30ca6) SHA1(f2f88c24a009b6695f7548aebd37b25d1fd19892) )
  2765: 
  2766: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2767: 	ROM_LOAD( "rl_19.bin", 0x000000, 0x020000, CRC(124d7e8f) SHA1(d7885a10085cc3389bd0e26e9d54adb8929218c0) )
  2768: 
  2769: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2770: 	/* was a bad dump (first and second half identical), reconstructed from rl_14.rom */
  2771: 	ROM_LOAD( "rl_23.bin", 0x000000, 0x080000, CRC(936db174) SHA1(4dfb2c31bc4bbf659184fe18e320d19f326b3ec5) )
  2772: 
  2773: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2774: 	ROM_LOAD( "rl_10.rom", 0x000000, 0x040000, CRC(e1d1cd99) SHA1(6604111d37455c1bd59c1469d9ee7841e7dec913) )
  2775: 
  2776: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2777: 	ROM_LOAD( "rl_08.rom", 0x000000, 0x040000, CRC(8a49d3a7) SHA1(68cb8cf2753b39c253d0edaa8ef2c54fd1f6ebe5) )
  2778: 
  2779: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2780: 	ROM_LOAD( "rl.bin",    0x0000, 0x0200, CRC(8914e72d) SHA1(80a664471f14c8ed8544a5e226fdca425ab3c657) )
  2781: ROM_END
  2782: 
  2783: /* 100% identical to rodlandj, but not encrypted */
  2784: ROM_START( rodlndjb )
  2785: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  2786: 	ROM_LOAD16_BYTE( "rl19.bin", 0x000000, 0x010000, CRC(028de21f) SHA1(04c88a0138dd119655b4a8a965617781a9a6ff71) )
  2787: 	ROM_LOAD16_BYTE( "rl17.bin", 0x000001, 0x010000, CRC(9c720046) SHA1(8543f0942863b4aa5329572dd1f374ea18c29851) )
  2788: 	ROM_LOAD16_BYTE( "rl20.bin", 0x020000, 0x010000, CRC(3f536d07) SHA1(cfcf47c42677fae204b3a7d70786d157279ba6e5) )
  2789: 	ROM_LOAD16_BYTE( "rl18.bin", 0x020001, 0x010000, CRC(5aa61717) SHA1(3292cdafc10b412c06addc3c6d4e39ee70ff06e8) )
  2790: 	ROM_LOAD16_BYTE( "rl_3.bin", 0x040000, 0x010000, CRC(c5b1075f) SHA1(a8bcc0e9dbb4b731bc0b7e5a8e0efc3d142505b9) )
  2791: 	ROM_LOAD16_BYTE( "rl_4.bin", 0x040001, 0x010000, CRC(9ec61048) SHA1(71b6af054a528af04e23affff635a9358537cd3b) )
  2792: 
  2793: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2794: 	ROM_LOAD16_BYTE( "rl02.bin", 0x000000, 0x010000, CRC(d26eae8f) SHA1(1c6d514e6d006f78fa7b24d18a3eb4c5a4c5cbce) )
  2795: 	ROM_LOAD16_BYTE( "rl01.bin", 0x000001, 0x010000, CRC(04cf24bc) SHA1(e754cce3c83a7088daf90e753fbb0df9ef7fc9be) )
  2796: 
  2797: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2798: 	ROM_LOAD( "rl_23.rom", 0x000000, 0x020000, CRC(ac60e771) SHA1(97c2ac1ed89c171a0db98befa6c3c10754d64880) )
  2799: 	ROM_CONTINUE(          0x030000, 0x010000 )
  2800: 	ROM_CONTINUE(          0x050000, 0x010000 )
  2801: 	ROM_CONTINUE(          0x020000, 0x010000 )
  2802: 	ROM_CONTINUE(          0x040000, 0x010000 )
  2803: 	ROM_CONTINUE(          0x060000, 0x020000 )
  2804: 
  2805: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2806: 	ROM_LOAD( "rl_18.rom", 0x000000, 0x080000, CRC(f3b30ca6) SHA1(f2f88c24a009b6695f7548aebd37b25d1fd19892) )
  2807: 
  2808: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2809: 	ROM_LOAD( "rl_19.bin", 0x000000, 0x020000, CRC(124d7e8f) SHA1(d7885a10085cc3389bd0e26e9d54adb8929218c0) )
  2810: 
  2811: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2812: 	ROM_LOAD( "rl_14.rom", 0x000000, 0x080000, CRC(08d01bf4) SHA1(b9333d11572f46992cdd668908fbc1c33d841f8d) )
  2813: 
  2814: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2815: 	ROM_LOAD( "rl_10.rom", 0x000000, 0x040000, CRC(e1d1cd99) SHA1(6604111d37455c1bd59c1469d9ee7841e7dec913) )
  2816: 
  2817: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2818: 	ROM_LOAD( "rl_08.rom", 0x000000, 0x040000, CRC(8a49d3a7) SHA1(68cb8cf2753b39c253d0edaa8ef2c54fd1f6ebe5) )
  2819: 
  2820: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2821: 	ROM_LOAD( "rl.bin",    0x0000, 0x0200, CRC(8914e72d) SHA1(80a664471f14c8ed8544a5e226fdca425ab3c657) )
  2822: ROM_END
  2823: 
  2824: 
  2825: INPUT_PORTS_START( rodland )
  2826: 
  2827: 	COINS						/* IN0 0x80001.b */
  2828: //	fire	ladder
  2829: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  2830: 	RESERVE						/* IN2 0x80004.b */
  2831: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  2832: 
  2833: 	PORT_START			/* IN4 0x80006.b */
  2834: 	COINAGE_6BITS
  2835: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  2836: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  2837: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2838: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  2839: 
  2840: 	PORT_START			/* IN5 0x80007.b */
  2841: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* according to manual */
  2842: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  2843: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2844: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) /* according to manual */
  2845: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  2846: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2847: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  2848: 	PORT_DIPSETTING(    0x04, "2" )
  2849: 	PORT_DIPSETTING(    0x0c, "3" )
  2850: 	PORT_DIPSETTING(    0x08, "4" )
  2851: 	PORT_BITX( 0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Inifinite", IP_KEY_NONE, IP_JOY_NONE )
  2852: 	PORT_DIPNAME( 0x10, 0x10, "Default episode" )
  2853: 	PORT_DIPSETTING(    0x10, "1" )
  2854: 	PORT_DIPSETTING(    0x00, "2" )
  2855: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
  2856: 	PORT_DIPSETTING(    0x20, "Easy?" )
  2857: 	PORT_DIPSETTING(    0x60, "Normal" )
  2858: 	PORT_DIPSETTING(    0x40, "Hard?" )
  2859: 	PORT_DIPSETTING(    0x00, "Hardest?" )
  2860: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  2861: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2862: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2863: 
  2864: INPUT_PORTS_END
  2865: 
  2866: 
  2867: /***************************************************************************
  2868: 
  2869: 							[ Saint Dragon ]
  2870: 
  2871: 			*** Press coin on startup to enter test mode ***
  2872: 
  2873: interrupts:	1] rte	2] 620	3] 5e6
  2874: 
  2875: ***************************************************************************/
  2876: 
  2877: ROM_START( stdragon )
  2878: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  2879: 	ROM_LOAD16_BYTE( "jsd-02.bin", 0x000000, 0x020000, CRC(cc29ab19) SHA1(e145eeb01fad313e300f0c614c0e7a5c1d75d7d9) )
  2880: 	ROM_LOAD16_BYTE( "jsd-01.bin", 0x000001, 0x020000, CRC(67429a57) SHA1(f3c20fabed97ac5c2fe3e891f9c8c86478453a6c) )
  2881: 
  2882: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2883: 	ROM_LOAD16_BYTE( "jsd-05.bin", 0x000000, 0x010000, CRC(8c04feaa) SHA1(57e86fd88dc72d123a41f0dee80a16be38ac2e81) )
  2884: 	ROM_LOAD16_BYTE( "jsd-06.bin", 0x000001, 0x010000, CRC(0bb62f3a) SHA1(68d9f161ba2568f8e046b1a40127bbb973d7a884) )
  2885: 
  2886: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2887: 	ROM_LOAD( "jsd-11.bin", 0x000000, 0x020000, CRC(2783b7b1) SHA1(4edde596cf26afb33b247cf5b1420d86f8f0c104) )
  2888: 	ROM_LOAD( "jsd-12.bin", 0x020000, 0x020000, CRC(89466ab7) SHA1(8de42f2828e48e4fe3c6d078f6b9d48498933d72) )
  2889: 	ROM_LOAD( "jsd-13.bin", 0x040000, 0x020000, CRC(9896ae82) SHA1(953e79558d66f7bfff893a7b69450ae23f8d16a4) )
  2890: 	ROM_LOAD( "jsd-14.bin", 0x060000, 0x020000, CRC(7e8da371) SHA1(0bed102bdd4dfca23ca636c7de67da1a9107eb5a) )
  2891: 
  2892: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2893: 	ROM_LOAD( "jsd-15.bin", 0x000000, 0x020000, CRC(e296bf59) SHA1(15361b2c2df391656e47b815731f5f03a6a8a7a6) )
  2894: 	ROM_LOAD( "jsd-16.bin", 0x020000, 0x020000, CRC(d8919c06) SHA1(643f04911ea035db7ddb593f5bf1be364f645fe1) )
  2895: 	ROM_LOAD( "jsd-17.bin", 0x040000, 0x020000, CRC(4f7ad563) SHA1(ef06e0c8dc29b75cc7c449a227576be442163a6e) )
  2896: 	ROM_LOAD( "jsd-18.bin", 0x060000, 0x020000, CRC(1f4da822) SHA1(fe81fb93c1aa938425b6bfca2bb829dda2d86b4a) )
  2897: 
  2898: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2899: 	ROM_LOAD( "jsd-19.bin", 0x000000, 0x010000, CRC(25ce807d) SHA1(64accb923e9727093790c8ae8296e9ff2d04af06) )
  2900: 
  2901: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2902: 	ROM_LOAD( "jsd-20.bin", 0x000000, 0x020000, CRC(2c6e93bb) SHA1(6130611a0a4067ced1b646438c49387d8cea0c98) )
  2903: 	ROM_LOAD( "jsd-21.bin", 0x020000, 0x020000, CRC(864bcc61) SHA1(21420a4804311fb381a9b05068d60d518fdc67db) )
  2904: 	ROM_LOAD( "jsd-22.bin", 0x040000, 0x020000, CRC(44fe2547) SHA1(193f487993e10e4a00e50d7febc9e43f3d217038) )
  2905: 	ROM_LOAD( "jsd-23.bin", 0x060000, 0x020000, CRC(6b010e1a) SHA1(7d056330a16725999c7b6662eb6ddeea0a4e446c) )
  2906: 
  2907: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2908: 	ROM_LOAD( "jsd-09.bin", 0x000000, 0x020000, CRC(e366bc5a) SHA1(c97bc1f25357366b4ff1343dfc9d0808a2630b28) )
  2909: 	ROM_LOAD( "jsd-10.bin", 0x020000, 0x020000, CRC(4a8f4fe6) SHA1(4f13f0149aa29b7cbddcd782f043bb71b3d27ede) )
  2910: 
  2911: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  2912: 	ROM_LOAD( "jsd-07.bin", 0x000000, 0x020000, CRC(6a48e979) SHA1(617281d9fe3c3927f94bf2f66d0a08923a92a6ab) )
  2913: 	ROM_LOAD( "jsd-08.bin", 0x020000, 0x020000, CRC(40704962) SHA1(4efd8c4d406600aa486c8b84b6f9882cca5970a4) )
  2914: 
  2915: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  2916: 	ROM_LOAD( "prom.14m",    0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
  2917: ROM_END
  2918: 
  2919: INPUT_PORTS_START( stdragon )
  2920: 	COINS						/* IN0 0x80001.b */
  2921: //	fire	fire
  2922: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  2923: 	RESERVE						/* IN2 0x80004.b */
  2924: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  2925: 
  2926: 	PORT_START			/* IN4 0x80006.b */
  2927: 	COINAGE_6BITS_2
  2928: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  2929: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  2930: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  2931: 	PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )	// used?
  2932: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2933: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2934: 
  2935: 	PORT_START			/* IN5 0x80007.b */
  2936: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  2937: 	PORT_DIPSETTING(    0x02, "2" )
  2938: 	PORT_DIPSETTING(    0x03, "3" )
  2939: 	PORT_DIPSETTING(    0x01, "4" )
  2940: 	PORT_DIPSETTING(    0x00, "5" )
  2941: 	PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )	// unused?
  2942: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  2943: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2944: 	PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" )	// unused?
  2945: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  2946: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2947: 	PORT_DIPNAME( 0x30, 0x30, "?Difficulty?" )
  2948: 	PORT_DIPSETTING(    0x30, "3" )
  2949: 	PORT_DIPSETTING(    0x20, "2" )
  2950: 	PORT_DIPSETTING(    0x10, "1" )
  2951: 	PORT_DIPSETTING(    0x00, "0" )
  2952: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
  2953: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  2954: 	PORT_DIPSETTING(    0x40, DEF_STR( Cocktail ) )
  2955: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  2956: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  2957: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  2958: 
  2959: INPUT_PORTS_END
  2960: 
  2961: 
  2962: /***************************************************************************
  2963: 
  2964: 								[ Soldam ]
  2965: 
  2966: (Japan version)
  2967: f00c2.l	*** score/10 (BCD) ***
  2968: 
  2969: The country code is at ROM address $3a9d, copied to RAM address
  2970: f0025: 0 = japan, 1 = USA. Change f0025 to 1 to have all the
  2971: text in english.
  2972: 
  2973: ***************************************************************************/
  2974: 
  2975: ROM_START( soldamj )
  2976: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )		/* Main CPU Code */
  2977: 	ROM_LOAD16_BYTE( "soldam2.bin", 0x000000, 0x020000, CRC(c73d29e4) SHA1(2a6bffd6835506a0a1449047dec69445d2242fca) )
  2978: 	ROM_LOAD16_BYTE( "soldam1.bin", 0x000001, 0x020000, CRC(e7cb0c20) SHA1(7b1adf439cd4022ec110ec18359fb50ac137f253) )
  2979: 	ROM_LOAD16_BYTE( "soldam3.bin", 0x040000, 0x010000, CRC(c5382a07) SHA1(5342775f2925772e23bb460e88cd2b7e524e57fa) )
  2980: 	ROM_LOAD16_BYTE( "soldam4.bin", 0x040001, 0x010000, CRC(1df7816f) SHA1(7c069470ec0e884eae5a52581f2be17d9e692105) )
  2981: 
  2982: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  2983: 	ROM_LOAD16_BYTE( "soldam5.bin", 0x000000, 0x010000, CRC(d1019a67) SHA1(32d77914a67c009bf1bb397772f195594f7cc03f) )
  2984: 	ROM_LOAD16_BYTE( "soldam6.bin", 0x000001, 0x010000, CRC(3ed219b4) SHA1(afffa5596027181ae94488d54d6266f8a7ead180) )
  2985: 
  2986: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  2987: 	ROM_LOAD( "soldam14.bin", 0x000000, 0x080000, CRC(26cea54a) SHA1(00beb1fe2973daf8bab288a0cb9d5fff26a00415) )
  2988: 
  2989: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  2990: 	ROM_LOAD( "soldam18.bin", 0x000000, 0x080000, CRC(7d8e4712) SHA1(d16455648dcba467336e51daac8b23e463a74230) )
  2991: 
  2992: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  2993: 	ROM_LOAD( "soldam19.bin", 0x000000, 0x020000, CRC(38465da1) SHA1(461fc0d81b711d0646dc366c057da66d4b8c6e23) )
  2994: 
  2995: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  2996: 	ROM_LOAD( "soldam23.bin", 0x000000, 0x080000, CRC(0ca09432) SHA1(c9b12d564032c2a668e18ba95fd71ab540e798ce) )
  2997: 
  2998: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  2999: 	ROM_LOAD( "soldam10.bin", 0x000000, 0x040000, CRC(8d5613bf) SHA1(eee217dd2ab64d86b7f5eda55a3c331d862c079e) )
  3000: 
  3001: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  3002: 	ROM_LOAD( "soldam8.bin",  0x000000, 0x040000, CRC(fcd36019) SHA1(f4edb55bd62b697c5a73c461008e764c2f16956b) )
  3003: 
  3004: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  3005: 	ROM_LOAD( "soldam.m14",   0x0000, 0x0200, CRC(8914e72d) SHA1(80a664471f14c8ed8544a5e226fdca425ab3c657) )
  3006: ROM_END
  3007: 
  3008: INPUT_PORTS_START( soldamj )
  3009: 	COINS						/* IN0 0x80001.b */
  3010: 	//	turn	turn	(3rd button is shown in service mode, but seems unused)
  3011: 	JOY_2BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  3012: 	RESERVE						/* IN2 0x80004.b */
  3013: 	JOY_2BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  3014: 
  3015: 	PORT_START			/* IN4 0x80006.b */
  3016: 	COINAGE_6BITS_2
  3017: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  3018: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  3019: 	PORT_DIPSETTING(    0x40, DEF_STR( On )  )
  3020: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  3021: 
  3022: 	PORT_START			/* IN5 0x80007.b */
  3023: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
  3024: 	PORT_DIPSETTING(    0x00, "Easy"   )
  3025: 	PORT_DIPSETTING(    0x03, "Normal" )
  3026: 	PORT_DIPSETTING(    0x02, "Hard"   )
  3027: 	PORT_DIPSETTING(    0x01, "Hadest" )
  3028: 	PORT_DIPNAME( 0x0c, 0x0c, "Games To Play (Vs)" )
  3029: 	PORT_DIPSETTING(    0x00, "1" )
  3030: 	PORT_DIPSETTING(    0x0c, "2" )
  3031: 	PORT_DIPSETTING(    0x08, "3" )
  3032: 	PORT_DIPSETTING(    0x04, "4" )
  3033: 	PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  3034: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  3035: 	PORT_DIPSETTING(    0x10, DEF_STR( On )  )
  3036: 	PORT_DIPNAME( 0x20, 0x20, "Credits To Start (Vs)" )
  3037: 	PORT_DIPSETTING(    0x20, "1" )
  3038: 	PORT_DIPSETTING(    0x00, "2" )
  3039: 	PORT_DIPNAME( 0x40, 0x40, "Credits To Continue (Vs)" )
  3040: 	PORT_DIPSETTING(    0x40, "1" )
  3041: 	PORT_DIPSETTING(    0x00, "2" )
  3042: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  3043: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  3044: 	PORT_DIPSETTING(    0x00, DEF_STR( On )  )
  3045: 
  3046: INPUT_PORTS_END
  3047: 
  3048: READ16_HANDLER( soldamj_spriteram16_r )
  3049: {
  3050: 	return spriteram16[offset];
  3051: }
  3052: WRITE16_HANDLER( soldamj_spriteram16_w )
  3053: {
  3054: 	if (offset < 0x800/2)	COMBINE_DATA(&spriteram16[offset]);
  3055: }
  3056: 
  3057: 
  3058: 
  3059: /***************************************************************************
  3060: 
  3061: 							[ Takeda Shingen ]
  3062: 
  3063: ***************************************************************************/
  3064: 
  3065: ROM_START( tshingen )
  3066: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  3067: 	ROM_LOAD16_BYTE( "takeda2.bin", 0x000000, 0x020000, CRC(6ddfc9f3) SHA1(0ce1b8eae31453db0b2081717d7dbda9ea7d5a60) )
  3068: 	ROM_LOAD16_BYTE( "takeda1.bin", 0x000001, 0x020000, CRC(1afc6b7d) SHA1(b56da1b8c5b417a88a2952491c2d5472bb783945) )
  3069: 
  3070: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  3071: 	ROM_LOAD16_BYTE( "takeda5.bin", 0x000000, 0x010000, CRC(fbdc51c0) SHA1(bc6036c556275f7eccd7741d23437a98b0aa13bb) )
  3072: 	ROM_LOAD16_BYTE( "takeda6.bin", 0x000001, 0x010000, CRC(8fa65b69) SHA1(23a2d60435f235366f877ac79ac1506a99cfae9c) )
  3073: 
  3074: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  3075: 	ROM_LOAD( "takeda11.bin", 0x000000, 0x020000, CRC(bf0b40a6) SHA1(3634b8700b6cfb71d3796847eab50fd2714d4726) )
  3076: 	ROM_LOAD( "takeda12.bin", 0x020000, 0x020000, CRC(07987d89) SHA1(54f0fcbac6ec9c27b70a04a192db2874d38e91d8) )
  3077: 
  3078: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  3079: 	ROM_LOAD( "takeda15.bin", 0x000000, 0x020000, CRC(4c316b79) SHA1(1e17cb061e3d06427bef3e8c222f2a7cc80743ff) )
  3080: 	ROM_LOAD( "takeda16.bin", 0x020000, 0x020000, CRC(ceda9dd6) SHA1(2339cbb3d10fae6cba32b6455511aad60f4e481a) )
  3081: 	ROM_LOAD( "takeda17.bin", 0x040000, 0x020000, CRC(3d4371dc) SHA1(2a6c34eb9952492f9554e5c810f015496ac205c1) )
  3082: 
  3083: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  3084: 	ROM_LOAD( "takeda19.bin", 0x000000, 0x010000, CRC(2ca2420d) SHA1(0e9f2f3d8ea2be07193e5a5fd37256a3887e7a2f) )
  3085: 
  3086: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  3087: 	ROM_LOAD( "takeda20.bin", 0x000000, 0x020000, CRC(1bfd636f) SHA1(d56eb7538195930ea3cf16788e3128a6262675e3) )
  3088: 	ROM_LOAD( "takeda21.bin", 0x020000, 0x020000, CRC(12fb006b) SHA1(1dae7f3bdbfefb3424d07572c398e4edd274a4ae) )
  3089: 	ROM_LOAD( "takeda22.bin", 0x040000, 0x020000, CRC(b165b6ae) SHA1(b987cdb5a71882d2495ac449a78705ba996943a7) )
  3090: 	ROM_LOAD( "takeda23.bin", 0x060000, 0x020000, CRC(37cb9214) SHA1(b98c361cd8b19b85cd16f040c415550b3750ab9e) )
  3091: 
  3092: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  3093: 	ROM_LOAD( "takeda9.bin",  0x000000, 0x020000, CRC(db7f3f4f) SHA1(2667bab60abe49b3a9ce4ff63948e274578062b7) )
  3094: 	ROM_LOAD( "takeda10.bin", 0x020000, 0x020000, CRC(c9959d71) SHA1(afbb756b3b4730262055f80995bd4ba5f9031d26) )
  3095: 
  3096: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  3097: 	ROM_LOAD( "shing_07.rom",  0x000000, 0x020000, CRC(c37ecbdc) SHA1(fcae2bbc4a10ee0fa18c9a850ae451c0600ea98c) )
  3098: 	ROM_LOAD( "shing_08.rom",  0x020000, 0x020000, CRC(36d56c8c) SHA1(391f8c6b3ee605ce846f1862b0d3b14694dbd556) )
  3099: 
  3100: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  3101: 	ROM_LOAD( "ts.bpr",        0x0000, 0x0200, CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) )
  3102: ROM_END
  3103: 
  3104: ROM_START( tshingna )
  3105: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* Main CPU Code */
  3106: 	ROM_LOAD16_BYTE( "shing_02.rom", 0x000000, 0x020000, CRC(d9ab5b78) SHA1(c7622ec11a636dc7a6bcad02556a98aa0a9fb043) )
  3107: 	ROM_LOAD16_BYTE( "shing_01.rom", 0x000001, 0x020000, CRC(a9d2de20) SHA1(b53205722ae19305a1c373abbbac4fbcbcb0b0f0) )
  3108: 
  3109: 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* Sound CPU Code */
  3110: 	ROM_LOAD16_BYTE( "takeda5.bin", 0x000000, 0x010000, CRC(fbdc51c0) SHA1(bc6036c556275f7eccd7741d23437a98b0aa13bb) )
  3111: 	ROM_LOAD16_BYTE( "takeda6.bin", 0x000001, 0x010000, CRC(8fa65b69) SHA1(23a2d60435f235366f877ac79ac1506a99cfae9c) )
  3112: 
  3113: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* Scroll 0 */
  3114: 	ROM_LOAD( "takeda11.bin", 0x000000, 0x020000, CRC(bf0b40a6) SHA1(3634b8700b6cfb71d3796847eab50fd2714d4726) )
  3115: 	ROM_LOAD( "shing_12.rom", 0x020000, 0x020000, CRC(5e4adedb) SHA1(0b67af2913e1f15d0a9d81e7b22d26a1011fa160) )
  3116: 
  3117: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Scroll 1 */
  3118: 	ROM_LOAD( "shing_15.rom", 0x000000, 0x020000, CRC(9db18233) SHA1(d323035505159e420430d178b4fa3a972aed80cd) )
  3119: 	ROM_LOAD( "takeda16.bin", 0x020000, 0x020000, CRC(ceda9dd6) SHA1(2339cbb3d10fae6cba32b6455511aad60f4e481a) )
  3120: 	ROM_LOAD( "takeda17.bin", 0x040000, 0x020000, CRC(3d4371dc) SHA1(2a6c34eb9952492f9554e5c810f015496ac205c1) )
  3121: 
  3122: 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE ) /* Scroll 2 */
  3123: 	ROM_LOAD( "shing_19.rom", 0x000000, 0x010000, CRC(97282d9d) SHA1(c977fb6cebbb9f4097b3c25f2b7f5cb2440c191b) )
  3124: 
  3125: 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */
  3126: 	ROM_LOAD( "shing_20.rom", 0x000000, 0x020000, CRC(7f6f8384) SHA1(77ccd8ca3cf35040e9cc8c78b2489864f60be699) )
  3127: 	ROM_LOAD( "takeda21.bin", 0x020000, 0x020000, CRC(12fb006b) SHA1(1dae7f3bdbfefb3424d07572c398e4edd274a4ae) )
  3128: 	ROM_LOAD( "takeda22.bin", 0x040000, 0x020000, CRC(b165b6ae) SHA1(b987cdb5a71882d2495ac449a78705ba996943a7) )
  3129: 	ROM_LOAD( "takeda23.bin", 0x060000, 0x020000, CRC(37cb9214) SHA1(b98c361cd8b19b85cd16f040c415550b3750ab9e) )
  3130: 
  3131: 	ROM_REGION( 0x040000, REGION_SOUND1, 0 )		/* Samples */
  3132: 	ROM_LOAD( "takeda9.bin",  0x000000, 0x020000, CRC(db7f3f4f) SHA1(2667bab60abe49b3a9ce4ff63948e274578062b7) )
  3133: 	ROM_LOAD( "takeda10.bin", 0x020000, 0x020000, CRC(c9959d71) SHA1(afbb756b3b4730262055f80995bd4ba5f9031d26) )
  3134: 
  3135: 	ROM_REGION( 0x040000, REGION_SOUND2, 0 )		/* Samples */
  3136: 	ROM_LOAD( "shing_07.rom",  0x000000, 0x020000, CRC(c37ecbdc) SHA1(fcae2bbc4a10ee0fa18c9a850ae451c0600ea98c) )
  3137: 	ROM_LOAD( "shing_08.rom",  0x020000, 0x020000, CRC(36d56c8c) SHA1(391f8c6b3ee605ce846f1862b0d3b14694dbd556) )
  3138: 
  3139: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )		/* Priority PROM */
  3140: 	ROM_LOAD( "ts.bpr",        0x0000, 0x0200, CRC(85b30ac4) SHA1(b03f577ceb0f26b67453ffa52ef61fea76a93184) )
  3141: ROM_END
  3142: 
  3143: INPUT_PORTS_START( tshingen )
  3144: 	COINS						/* IN0 0x80001.b */
  3145: 	// sword_left	sword_right		jump
  3146: 	JOY_3BUTTONS(IPF_PLAYER1)	/* IN1 0x80003.b */
  3147: 	RESERVE						/* IN2 0x80004.b */
  3148: 	JOY_3BUTTONS(IPF_PLAYER2)	/* IN3 0x80005.b */
  3149: 
  3150: 	PORT_START			/* IN4 0x80006.b */
  3151: 	COINAGE_6BITS
  3152: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
  3153: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  3154: 	PORT_DIPSETTING(    0x40, DEF_STR( On )  )
  3155: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  3156: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  3157: 	PORT_DIPSETTING(    0x80, DEF_STR( On )  )
  3158: 
  3159: 	PORT_START			/* IN5 0x80007.b */
  3160: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
  3161: 	PORT_DIPSETTING(    0x03, "2" )
  3162: 	PORT_DIPSETTING(    0x01, "3" )
  3163: 	PORT_DIPSETTING(    0x02, "4" )
  3164: 	PORT_BITX( 0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Inifinite", IP_KEY_NONE, IP_JOY_NONE )
  3165: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
  3166: 	PORT_DIPSETTING(    0x0c, "20k" )
  3167: 	PORT_DIPSETTING(    0x04, "30k" )
  3168: 	PORT_DIPSETTING(    0x08, "40k" )
  3169: 	PORT_DIPSETTING(    0x00, "50k" )
  3170: 	PORT_DIPNAME( 0x30, 0x10, DEF_STR( Difficulty ) ) // damage when hit
  3171: 	PORT_DIPSETTING(    0x30, "Easy"    ) // 0
  3172: 	PORT_DIPSETTING(    0x10, "Normal"  ) // 1
  3173: 	PORT_DIPSETTING(    0x20, "Hard"    ) // 2
  3174: 	PORT_DIPSETTING(    0x00, "Hardest" ) // 3
  3175: 	PORT_DIPNAME( 0x40, 0x40, "Allow Continue" )
  3176: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  3177: 	PORT_DIPSETTING(    0x40, DEF_STR( On )  )
  3178: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
  3179: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  3180: 	PORT_DIPSETTING(    0x00, DEF_STR( On )  )
  3181: 
  3182: INPUT_PORTS_END
  3183: 
  3184: 
  3185: 
  3186: 
  3187: /***************************************************************************
  3188: 
  3189: 							 Code Decryption
  3190: 
  3191: ***************************************************************************/
  3192: 
  3193: void phantasm_rom_decode(int cpu)
  3194: {
  3195: 	data16_t	*RAM	=	(data16_t *) memory_region(REGION_CPU1+cpu);
  3196: 	int i,		size	=	memory_region_length(REGION_CPU1+cpu);
  3197: 	if (size > 0x40000)	size = 0x40000;
  3198: 
  3199: 	for (i = 0 ; i < size/2 ; i++)
  3200: 	{
  3201: 		data16_t x,y;
  3202: 
  3203: 		x = RAM[i];
  3204: 
  3205: // [0] def0 189a bc56 7234
  3206: // [1] fdb9 7531 eca8 6420
  3207: // [2] 0123 4567 ba98 fedc
  3208: #define BITSWAP_0	BITSWAP16(x,0xd,0xe,0xf,0x0,0x1,0x8,0x9,0xa,0xb,0xc,0x5,0x6,0x7,0x2,0x3,0x4) 
  3209: #define BITSWAP_1	BITSWAP16(x,0xf,0xd,0xb,0x9,0x7,0x5,0x3,0x1,0xe,0xc,0xa,0x8,0x6,0x4,0x2,0x0) 
  3210: #define BITSWAP_2	BITSWAP16(x,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0xb,0xa,0x9,0x8,0xf,0xe,0xd,0xc) 
  3211: 
  3212: 		if		(i < 0x08000/2)	{ if ( (i | (0x248/2)) != i ) {y = BITSWAP_0;} else {y = BITSWAP_1;} }
  3213: 		else if	(i < 0x10000/2)	{ y = BITSWAP_2; }
  3214: 		else if	(i < 0x18000/2)	{ if ( (i | (0x248/2)) != i ) {y = BITSWAP_0;} else {y = BITSWAP_1;} }
  3215: 		else if	(i < 0x20000/2)	{ y = BITSWAP_1; }
  3216: 		else 					{ y = BITSWAP_2; }
  3217: 
  3218: #undef	BITSWAP_0 
  3219: #undef	BITSWAP_1 
  3220: #undef	BITSWAP_2 
  3221: 
  3222: 		RAM[i] = y;
  3223: 	}
  3224: 
  3225: }
  3226: 
  3227: void astyanax_rom_decode(int cpu)
  3228: {
  3229: 	data16_t	*RAM	=	(data16_t *) memory_region(REGION_CPU1+cpu);
  3230: 	int i,		size	=	memory_region_length(REGION_CPU1+cpu);
  3231: 	if (size > 0x40000)	size = 0x40000;
  3232: 
  3233: 	for (i = 0 ; i < size/2 ; i++)
  3234: 	{
  3235: 		data16_t x,y;
  3236: 
  3237: 		x = RAM[i];
  3238: 
  3239: // [0] def0 a981 65cb 7234
  3240: // [1] fdb9 7531 8ace 0246
  3241: // [2] 4567 0123 ba98 fedc
  3242: 
  3243: #define BITSWAP_0	BITSWAP16(x,0xd,0xe,0xf,0x0,0xa,0x9,0x8,0x1,0x6,0x5,0xc,0xb,0x7,0x2,0x3,0x4) 
  3244: #define BITSWAP_1	BITSWAP16(x,0xf,0xd,0xb,0x9,0x7,0x5,0x3,0x1,0x8,0xa,0xc,0xe,0x0,0x2,0x4,0x6) 
  3245: #define BITSWAP_2	BITSWAP16(x,0x4,0x5,0x6,0x7,0x0,0x1,0x2,0x3,0xb,0xa,0x9,0x8,0xf,0xe,0xd,0xc) 
  3246: 
  3247: 		if		(i < 0x08000/2)	{ if ( (i | (0x248/2)) != i ) {y = BITSWAP_0;} else {y = BITSWAP_1;} }
  3248: 		else if	(i < 0x10000/2)	{ y = BITSWAP_2; }
  3249: 		else if	(i < 0x18000/2)	{ if ( (i | (0x248/2)) != i ) {y = BITSWAP_0;} else {y = BITSWAP_1;} }
  3250: 		else if	(i < 0x20000/2)	{ y = BITSWAP_1; }
  3251: 		else 					{ y = BITSWAP_2; }
  3252: 
  3253: #undef	BITSWAP_0 
  3254: #undef	BITSWAP_1 
  3255: #undef	BITSWAP_2 
  3256: 
  3257: 		RAM[i] = y;
  3258: 	}
  3259: }
  3260: 
  3261: void rodland_rom_decode(int cpu)
  3262: {
  3263: 	data16_t	*RAM	=	(data16_t *) memory_region(REGION_CPU1+cpu);
  3264: 	int i,		size	=	memory_region_length(REGION_CPU1+cpu);
  3265: 	if (size > 0x40000)	size = 0x40000;
  3266: 
  3267: 	for (i = 0 ; i < size/2 ; i++)
  3268: 	{
  3269: 		data16_t x,y;
  3270: 
  3271: 		x = RAM[i];
  3272: 
  3273: // [0] d0a9 6ebf 5c72 3814	[1] 4567 0123 ba98 fedc
  3274: // [2] fdb9 ce07 5318 a246	[3] 4512 ed3b a967 08fc
  3275: #define BITSWAP_0	BITSWAP16(x,0xd,0x0,0xa,0x9,0x6,0xe,0xb,0xf,0x5,0xc,0x7,0x2,0x3,0x8,0x1,0x4); 
  3276: #define BITSWAP_1	BITSWAP16(x,0x4,0x5,0x6,0x7,0x0,0x1,0x2,0x3,0xb,0xa,0x9,0x8,0xf,0xe,0xd,0xc); 
  3277: #define	BITSWAP_2	BITSWAP16(x,0xf,0xd,0xb,0x9,0xc,0xe,0x0,0x7,0x5,0x3,0x1,0x8,0xa,0x2,0x4,0x6); 
  3278: #define	BITSWAP_3	BITSWAP16(x,0x4,0x5,0x1,0x2,0xe,0xd,0x3,0xb,0xa,0x9,0x6,0x7,0x0,0x8,0xf,0xc); 
  3279: 
  3280: 		if		(i < 0x08000/2)	{	if ( (i | (0x248/2)) != i ) {y = BITSWAP_0;} else {y = BITSWAP_1;} }
  3281: 		else if	(i < 0x10000/2)	{	if ( (i | (0x248/2)) != i ) {y = BITSWAP_2;} else {y = BITSWAP_3;} }
  3282: 		else if	(i < 0x18000/2)	{	if ( (i | (0x248/2)) != i ) {y = BITSWAP_0;} else {y = BITSWAP_1;} }
  3283: 		else if	(i < 0x20000/2)	{ y = BITSWAP_1; }
  3284: 		else 					{ y = BITSWAP_3; }
  3285: 
  3286: #undef	BITSWAP_0 
  3287: #undef	BITSWAP_1 
  3288: #undef	BITSWAP_2 
  3289: #undef	BITSWAP_3 
  3290: 
  3291: 		RAM[i] = y;
  3292: 	}
  3293: }
  3294: 
  3295: 
  3296: static void rodlandj_gfx_unmangle(int region)
  3297: {
  3298: 	data8_t *rom = memory_region(REGION_GFX1+region);
  3299: 	int size = memory_region_length(REGION_GFX1+region);
  3300: 	data8_t *buffer;
  3301: 	int i;
  3302: 
  3303: 	/* data lines swap: 76543210 -> 64537210 */
  3304: 	for (i = 0;i < size;i++)
  3305: 		rom[i] =   (rom[i] & 0x27)
  3306: 				| ((rom[i] & 0x80) >> 4)
  3307: 				| ((rom[i] & 0x48) << 1)
  3308: 				| ((rom[i] & 0x10) << 2);
  3309: 
  3310: 	buffer = malloc(size);
  3311: 	if (!buffer) return;
  3312: 
  3313: 	memcpy(buffer,rom,size);
  3314: 
  3315: 	/* address lines swap: ..dcba9876543210 -> ..acb8937654d210 */
  3316: 	for (i = 0;i < size;i++)
  3317: 	{
  3318: 		int a =    (i &~0x2508)
  3319: 				| ((i & 0x2000) >> 10)
  3320: 				| ((i & 0x0400) << 3)
  3321: 				| ((i & 0x0100) << 2)
  3322: 				| ((i & 0x0008) << 5);
  3323: 		rom[i] = buffer[a];
  3324: 	}
  3325: 
  3326: 	free(buffer);
  3327: }
  3328: 
  3329: static void jitsupro_gfx_unmangle(int region)
  3330: {
  3331: 	data8_t *rom = memory_region(REGION_GFX1+region);
  3332: 	int size = memory_region_length(REGION_GFX1+region);
  3333: 	data8_t *buffer;
  3334: 	int i;
  3335: 
  3336: 	/* data lines swap: 76543210 -> 43576210 */
  3337: 	for (i = 0;i < size;i++)
  3338: 		rom[i] =   BITSWAP8(rom[i],0x4,0x3,0x5,0x7,0x6,0x2,0x1,0x0);
  3339: 
  3340: 	buffer = malloc(size);
  3341: 	if (!buffer) return;
  3342: 
  3343: 	memcpy(buffer,rom,size);
  3344: 
  3345: 	/* address lines swap: fedcba9876543210 -> fe8cb39d7654a210 */
  3346: 	for (i = 0;i < size;i++)
  3347: 	{
  3348: 		int a = (i & ~0xffff) |
  3349: 	BITSWAP16(i,0xf,0xe,0x8,0xc,0xb,0x3,0x9,0xd,0x7,0x6,0x5,0x4,0xa,0x2,0x1,0x0);
  3350: 
  3351: 		rom[i] = buffer[a];
  3352: 	}
  3353: 
  3354: 	free(buffer);
  3355: }
  3356: 
  3357: 
  3358: 
  3359: 
  3360: static DRIVER_INIT( 64street )
  3361: {
  3362: //	data16_t *RAM = (data16_t *) memory_region(REGION_CPU1);
  3363: //	RAM[0x006b8/2] = 0x6004;		// d8001 test
  3364: //	RAM[0x10EDE/2] = 0x6012;		// watchdog
  3365: 
  3366: 	ip_select_values[0] = 0x57;
  3367: 	ip_select_values[1] = 0x53;
  3368: 	ip_select_values[2] = 0x54;
  3369: 	ip_select_values[3] = 0x55;
  3370: 	ip_select_values[4] = 0x56;
  3371: }
  3372: 
  3373: static DRIVER_INIT( astyanax )
  3374: {
  3375: 	data16_t *RAM;
  3376: 
  3377: 	astyanax_rom_decode(0);
  3378: 
  3379: 	RAM = (data16_t *) memory_region(REGION_CPU1);
  3380: 	RAM[0x0004e6/2] = 0x6040;	// protection
  3381: }
  3382: 
  3383: static DRIVER_INIT( avspirit )
  3384: {
  3385: 	ip_select_values[0] = 0x37;
  3386: 	ip_select_values[1] = 0x35;
  3387: 	ip_select_values[2] = 0x36;
  3388: 	ip_select_values[3] = 0x33;
  3389: 	ip_select_values[4] = 0x34;
  3390: 
  3391: 	/* kludge: avspirit has 0x10000 bytes of RAM while edf has 0x20000. The */
  3392: 	/* following is needed to make vh_start() pick the correct address */
  3393: 	/* for spriteram16. */
  3394: 	megasys1_ram += 0x10000/2;
  3395: }
  3396: 
  3397: static DRIVER_INIT( bigstrik )
  3398: {
  3399: 	ip_select_values[0] = 0x58;
  3400: 	ip_select_values[1] = 0x54;
  3401: 	ip_select_values[2] = 0x55;
  3402: 	ip_select_values[3] = 0x56;
  3403: 	ip_select_values[4] = 0x57;
  3404: }
  3405: 
  3406: static DRIVER_INIT( chimerab )
  3407: {
  3408: 	/* same as cybattlr */
  3409: 	ip_select_values[0] = 0x56;
  3410: 	ip_select_values[1] = 0x52;
  3411: 	ip_select_values[2] = 0x53;
  3412: 	ip_select_values[3] = 0x54;
  3413: 	ip_select_values[4] = 0x55;
  3414: }
  3415: 
  3416: static DRIVER_INIT( cybattlr )
  3417: {
  3418: 	ip_select_values[0] = 0x56;
  3419: 	ip_select_values[1] = 0x52;
  3420: 	ip_select_values[2] = 0x53;
  3421: 	ip_select_values[3] = 0x54;
  3422: 	ip_select_values[4] = 0x55;
  3423: }
  3424: 
  3425: static DRIVER_INIT( edf )
  3426: {
  3427: 	ip_select_values[0] = 0x20;
  3428: 	ip_select_values[1] = 0x21;
  3429: 	ip_select_values[2] = 0x22;
  3430: 	ip_select_values[3] = 0x23;
  3431: 	ip_select_values[4] = 0x24;
  3432: }
  3433: 
  3434: static DRIVER_INIT( hachoo )
  3435: {
  3436: 	data16_t *RAM;
  3437: 
  3438: 	astyanax_rom_decode(0);
  3439: 
  3440: 	RAM  = (data16_t *) memory_region(REGION_CPU1);
  3441: 	RAM[0x0006da/2] = 0x6000;	// protection
  3442: }
  3443: 
  3444: static DRIVER_INIT( iganinju )
  3445: {
  3446: 	data16_t *RAM;
  3447: 
  3448: 	phantasm_rom_decode(0);
  3449: 
  3450: 	RAM  = (data16_t *) memory_region(REGION_CPU1);
  3451: 	RAM[0x02f000/2] = 0x835d;	// protection
  3452: 
  3453: 	RAM[0x00006e/2] = 0x0420;	// the only game that does
  3454: 								// not like lev 3 interrupts
  3455: }
  3456: 
  3457: static WRITE16_HANDLER( OKIM6295_data_0_both_w )
  3458: {
  3459: 	if (ACCESSING_LSB)	OKIM6295_data_0_w(0, (data >> 0) & 0xff );
  3460: 	else				OKIM6295_data_0_w(0, (data >> 8) & 0xff );
  3461: }
  3462: static WRITE16_HANDLER( OKIM6295_data_1_both_w )
  3463: {
  3464: 	if (ACCESSING_LSB)	OKIM6295_data_1_w(0, (data >> 0) & 0xff );
  3465: 	else				OKIM6295_data_1_w(0, (data >> 8) & 0xff );
  3466: }
  3467: 
  3468: static DRIVER_INIT( jitsupro )
  3469: {
  3470: 	data16_t *RAM  = (data16_t *) memory_region(REGION_CPU1);
  3471: 
  3472: 	astyanax_rom_decode(0);		// Code
  3473: 
  3474: 	jitsupro_gfx_unmangle(0);	// Gfx
  3475: 	jitsupro_gfx_unmangle(3);
  3476: 
  3477: 	RAM[0x436/2] = 0x4e71;	// protection
  3478: 	RAM[0x438/2] = 0x4e71;	//
  3479: 
  3480: 	/* the sound code writes oki commands to both the lsb and msb */
  3481: 	install_mem_write16_handler(1, 0xa0000, 0xa0003, OKIM6295_data_0_both_w);
  3482: 	install_mem_write16_handler(1, 0xc0000, 0xc0003, OKIM6295_data_1_both_w);
  3483: }
  3484: 
  3485: static DRIVER_INIT( peekaboo )
  3486: {
  3487: 	install_mem_read16_handler (0, 0x100000, 0x100001, protection_peekaboo_r);
  3488: 	install_mem_write16_handler(0, 0x100000, 0x100001, protection_peekaboo_w);
  3489: }
  3490: 
  3491: static DRIVER_INIT( phantasm )
  3492: {
  3493: 	phantasm_rom_decode(0);
  3494: }
  3495: 
  3496: static DRIVER_INIT( plusalph )
  3497: {
  3498: 	data16_t *RAM;
  3499: 
  3500: 	astyanax_rom_decode(0);
  3501: 
  3502: 	RAM  = (data16_t *) memory_region(REGION_CPU1);
  3503: 	RAM[0x0012b6/2] = 0x0000;	// protection
  3504: }
  3505: 
  3506: static DRIVER_INIT( rodland )
  3507: {
  3508: 	rodland_rom_decode(0);
  3509: }
  3510: 
  3511: static DRIVER_INIT( rodlandj )
  3512: {
  3513: 	rodlandj_gfx_unmangle(0);
  3514: 	rodlandj_gfx_unmangle(3);
  3515: 
  3516: 	astyanax_rom_decode(0);
  3517: }
  3518: 
  3519: static DRIVER_INIT( soldam )
  3520: {
  3521: 	astyanax_rom_decode(0);
  3522: 
  3523: 	/* Sprite RAM is mirrored. Why? */
  3524: 	install_mem_read16_handler (0, 0x8c000, 0x8cfff, soldamj_spriteram16_r);
  3525: 	install_mem_write16_handler(0, 0x8c000, 0x8cfff, soldamj_spriteram16_w);
  3526: }
  3527: 
  3528: static DRIVER_INIT( stdragon )
  3529: {
  3530: 	data16_t *RAM;
  3531: 
  3532: 	phantasm_rom_decode(0);
  3533: 
  3534: 	RAM  = (data16_t *) memory_region(REGION_CPU1);
  3535: 	RAM[0x00045e/2] = 0x0098;	// protection
  3536: }
  3537: 
  3538: 
  3539: 
  3540: GAME( 1988, lomakai,  0,        system_Z,          lomakai,  0,        ROT0,   "Jaleco", "Legend of Makai (World)" )
  3541: GAME( 1988, makaiden, lomakai,  system_Z,          lomakai,  0,        ROT0,   "Jaleco", "Makai Densetsu (Japan)" )
  3542: GAME( 1988, p47,      0,        system_A,          p47,      0,        ROT0,   "Jaleco", "P-47 - The Phantom Fighter (World)" )
  3543: GAME( 1988, p47j,     p47,      system_A,          p47,      0,        ROT0,   "Jaleco", "P-47 - The Freedom Fighter (Japan)" )
  3544: GAME( 1988, kickoff,  0,        system_A,          kickoff,  0,        ROT0,   "Jaleco", "Kick Off (Japan)" )
  3545: GAME( 1988, tshingen, 0,        system_A,          tshingen, phantasm, ROT0,   "Jaleco", "Takeda Shingen (Japan, Japanese)" )
  3546: GAME( 1988, tshingna, tshingen, system_A,          tshingen, phantasm, ROT0,   "Jaleco", "Shingen Samurai-Fighter (Japan, English)" )
  3547: GAME( 1988, iganinju, 0,        system_A_iganinju, iganinju, iganinju, ROT0,   "Jaleco", "Iga Ninjyutsuden (Japan)" )
  3548: GAME( 1989, astyanax, 0,        system_A,          astyanax, astyanax, ROT0,   "Jaleco", "The Astyanax" )
  3549: GAME( 1989, lordofk,  astyanax, system_A,          astyanax, astyanax, ROT0,   "Jaleco", "The Lord of King (Japan)" )
  3550: GAMEX(1989, hachoo,   0,        system_A,          hachoo,   hachoo,   ROT0,   "Jaleco", "Hachoo!", GAME_IMPERFECT_SOUND )
  3551: GAME( 1989, jitsupro, 0,        system_A,          jitsupro, jitsupro, ROT0,   "Jaleco", "Jitsuryoku!! Pro Yakyuu (Japan)" )
  3552: GAME( 1989, plusalph, 0,        system_A,          plusalph, plusalph, ROT270, "Jaleco", "Plus Alpha" )
  3553: GAME( 1989, stdragon, 0,        system_A,          stdragon, stdragon, ROT0,   "Jaleco", "Saint Dragon" )
  3554: GAME( 1990, rodland,  0,        system_A,          rodland,  rodland,  ROT0,   "Jaleco", "Rod-Land (World)" )
  3555: GAME( 1990, rodlandj, rodland,  system_A,          rodland,  rodlandj, ROT0,   "Jaleco", "Rod-Land (Japan)" )
  3556: GAME( 1990, rodlndjb, rodland,  system_A,          rodland,  0,        ROT0,   "Jaleco", "Rod-Land (Japan bootleg)" )
  3557: GAME( 1991, avspirit, 0,        system_B,          avspirit, avspirit, ROT0,   "Jaleco", "Avenging Spirit" )
  3558: GAME( 1990, phantasm, avspirit, system_A,          avspirit, phantasm, ROT0,   "Jaleco", "Phantasm (Japan)" )
  3559: GAME( 1991, edf,      0,        system_B,          edf,      edf,      ROT0,   "Jaleco", "E.D.F. : Earth Defense Force" )
  3560: GAME( 1991, 64street, 0,        system_C,          64street, 64street, ROT0,   "Jaleco", "64th. Street - A Detective Story (World)" )
  3561: GAME( 1991, 64streej, 64street, system_C,          64street, 64street, ROT0,   "Jaleco", "64th. Street - A Detective Story (Japan)" )
  3562: GAME( 1992, soldamj,  0,        system_A,          soldamj,  soldam,   ROT0,   "Jaleco", "Soldam (Japan)" )
  3563: GAME( 1992, bigstrik, 0,        system_C,          bigstrik, bigstrik, ROT0,   "Jaleco", "Big Striker" )
  3564: GAME( 1993, chimerab, 0,        system_C,          chimerab, chimerab, ROT0,   "Jaleco", "Chimera Beast (prototype)" )
  3565: GAME( 1993, cybattlr, 0,        system_C,          cybattlr, cybattlr, ROT90,  "Jaleco", "Cybattler" )
  3566: GAME( 1993, peekaboo, 0,        system_D,          peekaboo, peekaboo, ROT0,   "Jaleco", "Peek-a-Boo!" )
  3567: 




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