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

Source Listing


     1: /***************************************************************************
     2: 
     3: 	Nemesis (Hacked?)		GX400
     4: 	Nemesis (World?)		GX400
     5: 	Twin Bee				GX412
     6: 	Gradius					GX456
     7: 	Galactic Warriors		GX578
     8: 	Konami GT				GX561
     9: 	RF2						GX561
    10: 	Salamander (Version D)	GX587
    11: 	Salamander (Version J)	GX587
    12: 	Lifeforce (US)			GX587
    13: 	Lifeforce (Japan)		GX587
    14: 	Black Panther			GX604
    15: 	City Bomber (World)		GX787
    16: 	City Bomber (Japan)		GX787
    17: 	Kitten Kaboodle			GX712
    18: 	Nyan Nyan Panic (Japan)	GX712
    19: 
    20: driver by Bryan McPhail
    21: modified by Eisuke Watanabe
    22:  spthx to Unagi,rassy,hina,nori,Tobikage,Tommy,Crimson,yasuken,cupmen,zoo
    23: 
    24: Notes:
    25: - blkpnthr:
    26: There are sprite priority problems in upper part of the screen ,
    27: they can only be noticed in 2nd and 4th level .
    28: Enemy sprites are behind blue walls 2 level) or metal construction (4 )
    29: but when they get close to top of the screen they go in front of them.
    30: --
    31: To display score, priority of upper part is always lower.
    32: So this is the correct behavior of real hardware, not an emulation bug.
    33: 
    34: ***************************************************************************/
    35: 
    36: #include "driver.h" 
    37: #include "vidhrdw/generic.h" 
    38: #include "cpu/z80/z80.h" 
    39: 
    40: static data16_t *ram;
    41: static data16_t *ram2;
    42: 
    43: extern data16_t *nemesis_videoram1b;
    44: extern data16_t *nemesis_videoram1f;
    45: extern data16_t *nemesis_videoram2b;
    46: extern data16_t *nemesis_videoram2f;
    47: extern data16_t *nemesis_characterram;
    48: extern data16_t *nemesis_xscroll1,*nemesis_xscroll2, *nemesis_yscroll;
    49: extern size_t nemesis_characterram_size;
    50: 
    51: READ16_HANDLER( nemesis_videoram1b_word_r );
    52: READ16_HANDLER( nemesis_videoram1f_word_r );
    53: WRITE16_HANDLER( nemesis_videoram1b_word_w );
    54: WRITE16_HANDLER( nemesis_videoram1f_word_w );
    55: READ16_HANDLER( nemesis_videoram2b_word_r );
    56: READ16_HANDLER( nemesis_videoram2f_word_r );
    57: WRITE16_HANDLER( nemesis_videoram2b_word_w );
    58: WRITE16_HANDLER( nemesis_videoram2f_word_w );
    59: READ16_HANDLER( nemesis_characterram_word_r );
    60: WRITE16_HANDLER( nemesis_characterram_word_w );
    61: VIDEO_UPDATE( nemesis );
    62: VIDEO_START( nemesis );
    63: VIDEO_UPDATE( salamand );
    64: MACHINE_INIT( nemesis );
    65: 
    66: WRITE16_HANDLER( nemesis_gfx_flipx_w );
    67: WRITE16_HANDLER( nemesis_gfx_flipy_w );
    68: WRITE16_HANDLER( salamander_palette_word_w );
    69: 
    70: WRITE16_HANDLER( gx400_xscroll1_word_w );
    71: WRITE16_HANDLER( gx400_xscroll2_word_w );
    72: WRITE16_HANDLER( gx400_yscroll_word_w );
    73: WRITE16_HANDLER( gx400_yscroll1_word_w );
    74: WRITE16_HANDLER( gx400_yscroll2_word_w );
    75: READ16_HANDLER( gx400_xscroll1_word_r );
    76: READ16_HANDLER( gx400_xscroll2_word_r );
    77: READ16_HANDLER( gx400_yscroll_word_r );
    78: READ16_HANDLER( gx400_yscroll1_word_r );
    79: READ16_HANDLER( gx400_yscroll2_word_r );
    80: 
    81: extern data16_t *nemesis_yscroll1, *nemesis_yscroll2;
    82: 
    83: WRITE16_HANDLER( nemesis_palette_word_w );
    84: 
    85: int irq_on = 0;
    86: int irq1_on = 0;
    87: int irq2_on = 0;
    88: int irq4_on = 0;
    89: 
    90: 
    91: MACHINE_INIT( nemesis )
    92: {
    93: 	irq_on = 0;
    94: 	irq1_on = 0;
    95: 	irq2_on = 0;
    96: 	irq4_on = 0;
    97: }
    98: 
    99: 
   100: 
   101: INTERRUPT_GEN( nemesis_interrupt )
   102: {
   103: 	if (irq_on)
   104: 		cpu_set_irq_line(0, 1, HOLD_LINE);
   105: }
   106: 
   107: WRITE16_HANDLER( salamand_soundlatch_word_w )
   108: {
   109: 	if(ACCESSING_LSB) {
   110: 		soundlatch_w(offset,data & 0xff);
   111: 		cpu_set_irq_line(1,0,HOLD_LINE);
   112: 	}
   113: 
   114: //logerror("z80 data write\n");
   115: 
   116: //cpu_set_irq_line(1,IRQ_LINE_NMI,PULSE_LINE);
   117: }
   118: 
   119: static int gx400_irq1_cnt;
   120: 
   121: INTERRUPT_GEN( konamigt_interrupt )
   122: {
   123: 	if (cpu_getiloops() == 0)
   124: 	{
   125: 		if ( (irq_on) && (gx400_irq1_cnt++ & 1) ) cpu_set_irq_line(0, 1, HOLD_LINE);
   126: 	}
   127: 	else
   128: 	{
   129: 		if (irq2_on) cpu_set_irq_line(0, 2, HOLD_LINE);
   130: 	}
   131: }
   132: 
   133: INTERRUPT_GEN( gx400_interrupt )
   134: {
   135: 	switch (cpu_getiloops())
   136: 	{
   137: 		case 0:
   138: 			if (irq2_on) cpu_set_irq_line(0, 2, HOLD_LINE);
   139: 			break;
   140: 
   141: 		case 1:
   142: 			if ( (irq1_on) && (gx400_irq1_cnt++ & 1) ) cpu_set_irq_line(0, 1, HOLD_LINE);
   143: 			break;
   144: 
   145: 		case 2:
   146: 			if (irq4_on) cpu_set_irq_line(0, 4, HOLD_LINE);
   147: 			break;
   148: 	}
   149: }
   150: 
   151: WRITE16_HANDLER( gx400_irq1_enable_word_w )
   152: {
   153: 	if (ACCESSING_LSB)
   154: 		irq1_on = data & 0x0001;
   155: /*	else
   156: logerror("irq1en = %08x\n",data);*/
   157: }
   158: 
   159: WRITE16_HANDLER( gx400_irq2_enable_word_w )
   160: {
   161: 	if (ACCESSING_LSB)
   162: 		irq2_on = data & 0x0001;
   163: /*	else
   164: logerror("irq2en = %08x\n",data);*/
   165: }
   166: 
   167: WRITE16_HANDLER( gx400_irq4_enable_word_w )
   168: {
   169: 	if (ACCESSING_MSB)
   170: 		irq4_on = data & 0x0100;
   171: /*	else
   172: logerror("irq4en = %08x\n",data);*/
   173: }
   174: 
   175: static unsigned char *gx400_shared_ram;
   176: 
   177: READ16_HANDLER( gx400_sharedram_word_r )
   178: {
   179: 	return gx400_shared_ram[offset];
   180: }
   181: 
   182: WRITE16_HANDLER( gx400_sharedram_word_w )
   183: {
   184: 	if(ACCESSING_LSB)
   185: 		gx400_shared_ram[offset] = data;
   186: }
   187: 
   188: 
   189: 
   190: INTERRUPT_GEN( salamand_interrupt )
   191: {
   192: 	if (irq_on)
   193: 		cpu_set_irq_line(0, 1, HOLD_LINE);
   194: }
   195: 
   196: INTERRUPT_GEN( blkpnthr_interrupt )
   197: {
   198: 	if (irq_on)
   199: 		cpu_set_irq_line(0, 2, HOLD_LINE);
   200: }
   201: 
   202: WRITE16_HANDLER( nemesis_irq_enable_word_w )
   203: {
   204: 	if(ACCESSING_LSB)
   205: 		irq_on = data & 0xff;
   206: }
   207: 
   208: WRITE16_HANDLER( konamigt_irq_enable_word_w )
   209: {
   210: 	if(ACCESSING_LSB)
   211: 		irq_on = data & 0xff;
   212: }
   213: 
   214: WRITE16_HANDLER( konamigt_irq2_enable_word_w )
   215: {
   216: 	if(ACCESSING_LSB)
   217: 		irq2_on = data & 0xff;
   218: }
   219: 
   220: READ16_HANDLER( konamigt_input_word_r )
   221: {
   222: /*
   223: 	bit 0-7:   steering
   224: 	bit 8-9:   brake
   225: 	bit 10-11: unknown
   226: 	bit 12-15: accel
   227: */
   228: 
   229: 	int data=readinputport(7);
   230: 	int data2=readinputport(6);
   231: 
   232: 	int ret=0x0000;
   233: 
   234: //	if(data&0x10) ret|=0x0800;			// turbo/gear?
   235: //	if(data&0x80) ret|=0x0400;			// turbo?
   236: 	if(data&0x20) ret|=0x0300;			// brake		(0-3)
   237: 
   238: 	if(data&0x40) ret|=0xf000;			// accel		(0-f)
   239: 
   240: 	ret|=data2&0x7f;					// steering wheel, not exactly sure if DIAL works ok.
   241: 
   242: 	return ret;
   243: }
   244: 
   245: WRITE16_HANDLER( nemesis_soundlatch_word_w )
   246: {
   247: 	if(ACCESSING_LSB) {
   248: 		soundlatch_w(offset,data & 0xff);
   249: 
   250: 		/* the IRQ should probably be generated by 5e004, but we'll handle it here for now */
   251: 		cpu_set_irq_line_and_vector(1,0,HOLD_LINE,0xff);
   252: 	}
   253: }
   254: 
   255: static MEMORY_READ16_START( readmem )
   256: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   257: 	{ 0x040000, 0x04ffff, nemesis_characterram_word_r },
   258: 	{ 0x050000, 0x0503ff, MRA16_RAM },
   259: 	{ 0x050400, 0x0507ff, MRA16_RAM },
   260: 	{ 0x050800, 0x050bff, MRA16_RAM },
   261: 	{ 0x050c00, 0x050fff, MRA16_RAM },
   262: 
   263: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_r },
   264: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_r },
   265: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_r },
   266: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_r },
   267: 	{ 0x056000, 0x056fff, MRA16_RAM },
   268: 	{ 0x05a000, 0x05afff, MRA16_RAM },
   269: 
   270: 	{ 0x05c400, 0x05c401, input_port_4_word_r },	/* DSW0 */
   271: 	{ 0x05c402, 0x05c403, input_port_5_word_r },	/* DSW1 */
   272: 
   273: 	{ 0x05cc00, 0x05cc01, input_port_0_word_r },	/* IN0 */
   274: 	{ 0x05cc02, 0x05cc03, input_port_1_word_r },	/* IN1 */
   275: 	{ 0x05cc04, 0x05cc05, input_port_2_word_r },	/* IN2 */
   276: 	{ 0x05cc06, 0x05cc07, input_port_3_word_r },	/* TEST */
   277: 
   278: 	{ 0x060000, 0x067fff, MRA16_RAM },
   279: MEMORY_END
   280: 
   281: static MEMORY_WRITE16_START( writemem )
   282: 	{ 0x000000, 0x03ffff, MWA16_ROM },	/* ROM */
   283: 
   284: 	{ 0x040000, 0x04ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   285: 
   286: 	{ 0x050000, 0x0503ff, MWA16_RAM, &nemesis_xscroll1 },
   287: 	{ 0x050400, 0x0507ff, MWA16_RAM, &nemesis_xscroll2 },
   288: 	{ 0x050800, 0x050bff, MWA16_RAM },
   289: 	{ 0x050c00, 0x050fff, MWA16_RAM, &nemesis_yscroll },
   290: 	{ 0x051000, 0x051fff, MWA16_NOP },		/* used, but written to with 0's */
   291: 
   292: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   293: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   294: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   295: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   296: 	{ 0x056000, 0x056fff, MWA16_RAM, &spriteram16, &spriteram_size },
   297: 	{ 0x05a000, 0x05afff, nemesis_palette_word_w, &paletteram16 },
   298: 
   299: 	{ 0x05c000, 0x05c001, nemesis_soundlatch_word_w },
   300: 	{ 0x05c800, 0x05c801, watchdog_reset16_w },	/* probably */
   301: 
   302: 	{ 0x05e000, 0x05e001, &nemesis_irq_enable_word_w },	/* Nemesis */
   303: 	{ 0x05e002, 0x05e003, &nemesis_irq_enable_word_w },	/* Konami GT */
   304: 	{ 0x05e004, 0x05e005, nemesis_gfx_flipx_w },
   305: 	{ 0x05e006, 0x05e007, nemesis_gfx_flipy_w },
   306: 	{ 0x060000, 0x067fff, MWA16_RAM, &ram },	/* WORK RAM */
   307: MEMORY_END
   308: 
   309: WRITE_HANDLER( salamand_speech_start_w )
   310: {
   311:         VLM5030_ST ( 1 );
   312:         VLM5030_ST ( 0 );
   313: }
   314: 
   315: WRITE_HANDLER( gx400_speech_start_w )
   316: {
   317:         /* the voice data is not in a rom but in sound RAM at $8000 */
   318:         VLM5030_set_rom ((memory_region(REGION_CPU2))+ 0x8000);
   319:         VLM5030_ST (1);
   320:         VLM5030_ST (0);
   321: }
   322: 
   323: static READ_HANDLER( nemesis_portA_r )
   324: {
   325: /*
   326:    bit 0-3:   timer
   327:    bit 4 6:   unused (always high)
   328:    bit 5:     vlm5030 busy
   329:    bit 7:     unused by this software version. Bubble Memory version uses this bit.
   330: */
   331: 
   332: 	int res = (activecpu_gettotalcycles() / 1024) & 0x2f; // this should be 0x0f, but it doesn't work
   333: 
   334: 	res |= 0xd0;
   335: 
   336: 	if (VLM5030_BSY())
   337: 		res |= 0x20;
   338: 
   339: 	return res;
   340: }
   341: 
   342: static MEMORY_READ_START( sound_readmem )
   343: 	{ 0x0000, 0x3fff, MRA_ROM },
   344: 	{ 0x4000, 0x47ff, MRA_RAM },
   345: 	{ 0xe001, 0xe001, soundlatch_r },
   346: 	{ 0xe086, 0xe086, AY8910_read_port_0_r },
   347: 	{ 0xe205, 0xe205, AY8910_read_port_1_r },
   348: MEMORY_END
   349: 
   350: static MEMORY_WRITE_START( sound_writemem )
   351: 	{ 0x0000, 0x3fff, MWA_ROM },
   352: 	{ 0x4000, 0x47ff, MWA_RAM },
   353: 	{ 0xa000, 0xafff, k005289_pitch_A_w },
   354: 	{ 0xc000, 0xcfff, k005289_pitch_B_w },
   355: 	{ 0xe003, 0xe003, k005289_keylatch_A_w },
   356: 	{ 0xe004, 0xe004, k005289_keylatch_B_w },
   357: 	{ 0xe005, 0xe005, AY8910_control_port_1_w },
   358: 	{ 0xe006, 0xe006, AY8910_control_port_0_w },
   359: 	{ 0xe106, 0xe106, AY8910_write_port_0_w },
   360: 	{ 0xe405, 0xe405, AY8910_write_port_1_w },
   361: MEMORY_END
   362: 
   363: static MEMORY_READ16_START( konamigt_readmem )
   364: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   365: 	{ 0x040000, 0x04ffff, nemesis_characterram_word_r },
   366: 	{ 0x050000, 0x0503ff, MRA16_RAM },
   367: 	{ 0x050400, 0x0507ff, MRA16_RAM },
   368: 	{ 0x050800, 0x050bff, MRA16_RAM },
   369: 	{ 0x050c00, 0x050fff, MRA16_RAM },
   370: 
   371: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_r },
   372: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_r },
   373: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_r },
   374: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_r },
   375: 	{ 0x056000, 0x056fff, MRA16_RAM },
   376: 	{ 0x05a000, 0x05afff, MRA16_RAM },
   377: 
   378: 	{ 0x05c400, 0x05c401, input_port_4_word_r },	/* DSW0 */
   379: 	{ 0x05c402, 0x05c403, input_port_5_word_r },	/* DSW1 */
   380: 
   381: 	{ 0x05cc00, 0x05cc01, input_port_0_word_r },	/* IN0 */
   382: 	{ 0x05cc02, 0x05cc03, input_port_1_word_r },	/* IN1 */
   383: 	{ 0x05cc04, 0x05cc05, input_port_2_word_r },	/* IN2 */
   384: 	{ 0x05cc06, 0x05cc07, input_port_3_word_r },	/* TEST */
   385: 
   386: 	{ 0x060000, 0x067fff, MRA16_RAM },
   387: 	{ 0x070000, 0x070001, konamigt_input_word_r },
   388: MEMORY_END
   389: 
   390: static MEMORY_WRITE16_START( konamigt_writemem )
   391: 	{ 0x000000, 0x03ffff, MWA16_ROM },	/* ROM */
   392: 
   393: 	{ 0x040000, 0x04ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   394: 
   395: 	{ 0x050000, 0x0503ff, MWA16_RAM, &nemesis_xscroll1 },
   396: 	{ 0x050400, 0x0507ff, MWA16_RAM, &nemesis_xscroll2 },
   397: 	{ 0x050800, 0x050bff, MWA16_RAM },
   398: 	{ 0x050c00, 0x050fff, MWA16_RAM, &nemesis_yscroll },
   399: 	{ 0x051000, 0x051fff, MWA16_NOP },		/* used, but written to with 0's */
   400: 
   401: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   402: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   403: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   404: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   405: 	{ 0x056000, 0x056fff, MWA16_RAM, &spriteram16, &spriteram_size },
   406: 	{ 0x05a000, 0x05afff, nemesis_palette_word_w, &paletteram16 },
   407: 
   408: 	{ 0x05c000, 0x05c001, nemesis_soundlatch_word_w },
   409: 	{ 0x05c800, 0x05c801, watchdog_reset16_w },	/* probably */
   410: 
   411: 	{ 0x05e000, 0x05e001, &konamigt_irq2_enable_word_w },
   412: 	{ 0x05e002, 0x05e003, &konamigt_irq_enable_word_w },
   413: 	{ 0x05e004, 0x05e005, nemesis_gfx_flipx_w },
   414: 	{ 0x05e006, 0x05e007, nemesis_gfx_flipy_w },
   415: 	{ 0x060000, 0x067fff, MWA16_RAM, &ram },	/* WORK RAM */
   416: MEMORY_END
   417: 
   418: 
   419: static MEMORY_READ16_START( gx400_readmem )
   420: 	{ 0x000000, 0x00ffff, MRA16_ROM },
   421: 	{ 0x010000, 0x01ffff, MRA16_RAM },
   422: 	{ 0x020000, 0x0287ff, gx400_sharedram_word_r },
   423: 	{ 0x030000, 0x03ffff, nemesis_characterram_word_r },
   424: 	{ 0x050000, 0x0503ff, MRA16_RAM },
   425: 	{ 0x050400, 0x0507ff, MRA16_RAM },
   426: 	{ 0x050800, 0x050bff, MRA16_RAM },
   427: 	{ 0x050c00, 0x050fff, MRA16_RAM },
   428: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_r },
   429: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_r },
   430: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_r },
   431: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_r },
   432: 	{ 0x056000, 0x056fff, MRA16_RAM },
   433: 	{ 0x057000, 0x057fff, MRA16_RAM },
   434: 	{ 0x05a000, 0x05afff, MRA16_RAM },
   435: 	{ 0x05c402, 0x05c403, input_port_4_word_r },	/* DSW0 */
   436: 	{ 0x05c404, 0x05c405, input_port_5_word_r },	/* DSW1 */
   437: 	{ 0x05c406, 0x05c407, input_port_3_word_r },	/* TEST */
   438: 	{ 0x05cc00, 0x05cc01, input_port_0_word_r },	/* IN0 */
   439: 	{ 0x05cc02, 0x05cc03, input_port_1_word_r },	/* IN1 */
   440: 	{ 0x05cc04, 0x05cc05, input_port_2_word_r },	/* IN2 */
   441: 	{ 0x060000, 0x07ffff, MRA16_RAM },
   442: 	{ 0x080000, 0x0cffff, MRA16_ROM },
   443: MEMORY_END
   444: 
   445: static MEMORY_WRITE16_START( gx400_writemem )
   446: 	{ 0x000000, 0x00ffff, MWA16_ROM },
   447: 	{ 0x010000, 0x01ffff, MWA16_RAM , &ram },
   448: 	{ 0x020000, 0x0287ff, gx400_sharedram_word_w },
   449: 	{ 0x030000, 0x03ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   450: 	{ 0x050000, 0x0503ff, MWA16_RAM, &nemesis_xscroll1 },
   451: 	{ 0x050400, 0x0507ff, MWA16_RAM, &nemesis_xscroll2 },
   452: 	{ 0x050800, 0x050bff, MWA16_RAM },
   453: 	{ 0x050c00, 0x050fff, MWA16_RAM, &nemesis_yscroll },
   454: 	{ 0x051000, 0x051fff, MWA16_NOP },		/* used, but written to with 0's */
   455: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   456: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   457: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   458: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   459: 	{ 0x056000, 0x056fff, MWA16_RAM, &spriteram16, &spriteram_size },
   460: 	{ 0x057000, 0x057fff, MWA16_RAM},										/* needed for twinbee */
   461: 	{ 0x05a000, 0x05afff, nemesis_palette_word_w, &paletteram16 },
   462: 	{ 0x05c000, 0x05c001, nemesis_soundlatch_word_w },
   463: 	{ 0x05c800, 0x05c801, watchdog_reset16_w },	/* probably */
   464: 	{ 0x05e000, 0x05e001, &gx400_irq2_enable_word_w },	/* ?? */
   465: 	{ 0x05e002, 0x05e003, &gx400_irq1_enable_word_w },	/* ?? */
   466: 	{ 0x05e004, 0x05e005, nemesis_gfx_flipx_w },
   467: 	{ 0x05e006, 0x05e007, nemesis_gfx_flipy_w },
   468: 	{ 0x05e008, 0x05e009, MWA16_NOP },	/* IRQ acknowledge??? */
   469: 	{ 0x05e00e, 0x05e00f, &gx400_irq4_enable_word_w },	/* ?? */
   470: 	{ 0x060000, 0x07ffff, MWA16_RAM , &ram2},
   471: 	{ 0x080000, 0x0cffff, MWA16_ROM },
   472: MEMORY_END
   473: 
   474: static MEMORY_READ16_START( rf2_gx400_readmem )
   475: 	{ 0x000000, 0x00ffff, MRA16_ROM },
   476: 	{ 0x010000, 0x01ffff, MRA16_RAM },
   477: 	{ 0x020000, 0x0287ff, gx400_sharedram_word_r },
   478: 	{ 0x030000, 0x03ffff, nemesis_characterram_word_r },
   479: 	{ 0x050000, 0x0503ff, MRA16_RAM },
   480: 	{ 0x050400, 0x0507ff, MRA16_RAM },
   481: 	{ 0x050800, 0x050bff, MRA16_RAM },
   482: 	{ 0x050c00, 0x050fff, MRA16_RAM },
   483: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_r },
   484: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_r },
   485: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_r },
   486: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_r },
   487: 	{ 0x056000, 0x056fff, MRA16_RAM },
   488: 	{ 0x05a000, 0x05afff, MRA16_RAM },
   489: 	{ 0x05c402, 0x05c403, input_port_4_word_r },	/* DSW0 */
   490: 	{ 0x05c404, 0x05c405, input_port_5_word_r },	/* DSW1 */
   491: 	{ 0x05c406, 0x05c407, input_port_3_word_r },	/* TEST */
   492: 	{ 0x05cc00, 0x05cc01, input_port_0_word_r },	/* IN0 */
   493: 	{ 0x05cc02, 0x05cc03, input_port_1_word_r },	/* IN1 */
   494: 	{ 0x05cc04, 0x05cc05, input_port_2_word_r },	/* IN2 */
   495: 	{ 0x060000, 0x067fff, MRA16_RAM },
   496: 	{ 0x070000, 0x070001, konamigt_input_word_r },
   497: 	{ 0x080000, 0x0cffff, MRA16_ROM },
   498: MEMORY_END
   499: 
   500: static MEMORY_WRITE16_START( rf2_gx400_writemem )
   501: 	{ 0x000000, 0x00ffff, MWA16_ROM },
   502: 	{ 0x010000, 0x01ffff, MWA16_RAM , &ram2},
   503: 	{ 0x020000, 0x0287ff, gx400_sharedram_word_w },
   504: 	{ 0x030000, 0x03ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   505: 	{ 0x050000, 0x0503ff, MWA16_RAM, &nemesis_xscroll1 },
   506: 	{ 0x050400, 0x0507ff, MWA16_RAM, &nemesis_xscroll2 },
   507: 	{ 0x050800, 0x050bff, MWA16_RAM },
   508: 	{ 0x050c00, 0x050fff, MWA16_RAM, &nemesis_yscroll },
   509: 	{ 0x051000, 0x051fff, MWA16_NOP },		/* used, but written to with 0's */
   510: 	{ 0x052000, 0x052fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   511: 	{ 0x053000, 0x053fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   512: 	{ 0x054000, 0x054fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   513: 	{ 0x055000, 0x055fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   514: 	{ 0x056000, 0x056fff, MWA16_RAM, &spriteram16, &spriteram_size },
   515: 	{ 0x05a000, 0x05afff, nemesis_palette_word_w, &paletteram16 },
   516: 	{ 0x05c000, 0x05c001, nemesis_soundlatch_word_w },
   517: 	{ 0x05c800, 0x05c801, watchdog_reset16_w },	/* probably */
   518: 	{ 0x05e000, 0x05e001, &gx400_irq2_enable_word_w },	/* ?? */
   519: 	{ 0x05e002, 0x05e003, &gx400_irq1_enable_word_w },	/* ?? */
   520: 	{ 0x05e004, 0x05e005, nemesis_gfx_flipx_w },
   521: 	{ 0x05e006, 0x05e007, nemesis_gfx_flipy_w },
   522: 	{ 0x05e008, 0x05e009, MWA16_NOP },	/* IRQ acknowledge??? */
   523: 	{ 0x05e00e, 0x05e00f, &gx400_irq4_enable_word_w },	/* ?? */
   524: 	{ 0x060000, 0x067fff, MWA16_RAM, &ram },	/* WORK RAM */
   525: 	{ 0x080000, 0x0cffff, MWA16_ROM },
   526: MEMORY_END
   527: 
   528: static MEMORY_READ_START( gx400_sound_readmem )
   529: 	{ 0x0000, 0x1fff, MRA_ROM },
   530: 	{ 0x4000, 0x87ff, MRA_RAM },
   531: 	{ 0xe001, 0xe001, soundlatch_r },
   532: 	{ 0xe086, 0xe086, AY8910_read_port_0_r },
   533: 	{ 0xe205, 0xe205, AY8910_read_port_1_r },
   534: MEMORY_END
   535: 
   536: static MEMORY_WRITE_START( gx400_sound_writemem )
   537: 	{ 0x0000, 0x1fff, MWA_ROM },
   538: 	{ 0x4000, 0x87ff, MWA_RAM, &gx400_shared_ram },
   539: 	{ 0xa000, 0xafff, k005289_pitch_A_w },
   540: 	{ 0xc000, 0xcfff, k005289_pitch_B_w },
   541: 	{ 0xe000, 0xe000, VLM5030_data_w },
   542: 	{ 0xe003, 0xe003, k005289_keylatch_A_w },
   543: 	{ 0xe004, 0xe004, k005289_keylatch_B_w },
   544: 	{ 0xe005, 0xe005, AY8910_control_port_1_w },
   545: 	{ 0xe006, 0xe006, AY8910_control_port_0_w },
   546: 	{ 0xe030, 0xe030, gx400_speech_start_w },
   547: 	{ 0xe106, 0xe106, AY8910_write_port_0_w },
   548: 	{ 0xe405, 0xe405, AY8910_write_port_1_w },
   549: MEMORY_END
   550: 
   551: /******************************************************************************/
   552: 
   553: static MEMORY_READ16_START( salamand_readmem )
   554: 	{ 0x000000, 0x07ffff, MRA16_ROM },  /* ROM BIOS */
   555: 	{ 0x080000, 0x087fff, MRA16_RAM },
   556: 	{ 0x090000, 0x091fff, MRA16_RAM },
   557: 	{ 0x0c0002, 0x0c0003, input_port_3_word_r },	/* DSW0 */
   558: 	{ 0x0c2000, 0x0c2001, input_port_0_word_r },	/* Coins, start buttons, test mode */
   559: 	{ 0x0c2002, 0x0c2003, input_port_1_word_r },	/* IN1 */
   560: 	{ 0x0c2004, 0x0c2005, input_port_2_word_r },	/* IN2 */
   561: 	{ 0x0c2006, 0x0c2007, input_port_4_word_r },	/* DSW1 */
   562: 	{ 0x100000, 0x100fff, nemesis_videoram1b_word_r },
   563: 	{ 0x101000, 0x101fff, nemesis_videoram1f_word_r },
   564: 	{ 0x102000, 0x102fff, nemesis_videoram2b_word_r },
   565: 	{ 0x103000, 0x103fff, nemesis_videoram2f_word_r },
   566: 	{ 0x120000, 0x12ffff, nemesis_characterram_word_r },
   567: 	{ 0x180000, 0x180fff, MRA16_RAM },
   568: 	{ 0x190000, 0x1903ff, gx400_xscroll1_word_r },
   569: 	{ 0x190400, 0x1907ff, gx400_xscroll2_word_r },
   570: 	{ 0x190800, 0x190eff, MRA16_RAM },
   571: 	{ 0x190f00, 0x190f7f, gx400_yscroll1_word_r },
   572: 	{ 0x190f80, 0x190fff, gx400_yscroll2_word_r },
   573: 	{ 0x191000, 0x191fff, MRA16_RAM },
   574: MEMORY_END
   575: 
   576: static MEMORY_WRITE16_START( salamand_writemem )
   577: 	{ 0x000000, 0x07ffff, MWA16_ROM },
   578: 	{ 0x080000, 0x087fff, MWA16_RAM, &ram },
   579: 	{ 0x090000, 0x091fff, salamander_palette_word_w, &paletteram16 },
   580: 	{ 0x0A0000, 0x0A0001, nemesis_irq_enable_word_w },          /* irq enable */
   581: 	{ 0x0C0000, 0x0C0001, salamand_soundlatch_word_w },
   582: 	{ 0x0C0004, 0x0C0005, MWA16_NOP },        /* Watchdog at $c0005 */
   583: 	{ 0x100000, 0x100fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   584: 	{ 0x101000, 0x101fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   585: 	{ 0x102000, 0x102fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   586: 	{ 0x103000, 0x103fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   587: 	{ 0x120000, 0x12ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   588: 	{ 0x180000, 0x180fff, MWA16_RAM, &spriteram16, &spriteram_size },		/* more sprite ram ??? */
   589: 	{ 0x190000, 0x1903ff, gx400_xscroll1_word_w, &nemesis_xscroll1 },
   590: 	{ 0x190400, 0x1907ff, gx400_xscroll2_word_w, &nemesis_xscroll2 },
   591: 	{ 0x190800, 0x190eff, MWA16_RAM },			/* not used */
   592: 	{ 0x190f00, 0x190f7f, gx400_yscroll1_word_w, &nemesis_yscroll1 },
   593: 	{ 0x190f80, 0x190fff, gx400_yscroll2_word_w, &nemesis_yscroll2 },
   594: 	{ 0x191000, 0x191fff, MWA16_RAM },			/* not used */
   595: MEMORY_END
   596: 
   597: static MEMORY_READ16_START( blkpnthr_readmem )
   598: 	{ 0x000000, 0x07ffff, MRA16_ROM },  /* ROM BIOS */
   599: 	{ 0x080000, 0x081fff, MRA16_RAM },
   600: 	{ 0x090000, 0x097fff, MRA16_RAM },
   601: 	{ 0x0c0002, 0x0c0003, input_port_3_word_r },	/* DSW0 */
   602: 	{ 0x0c2000, 0x0c2001, input_port_0_word_r },	/* Coins, start buttons, test mode */
   603: 	{ 0x0c2002, 0x0c2003, input_port_1_word_r },	/* IN1 */
   604: 	{ 0x0c2004, 0x0c2005, input_port_2_word_r },	/* IN2 */
   605: 	{ 0x0c2006, 0x0c2007, input_port_4_word_r },	/* DSW1 */
   606: 	{ 0x100000, 0x100fff, nemesis_videoram2f_word_r },
   607: 	{ 0x101000, 0x101fff, nemesis_videoram2b_word_r },
   608: 	{ 0x102000, 0x102fff, nemesis_videoram1f_word_r },
   609: 	{ 0x103000, 0x103fff, nemesis_videoram1b_word_r },
   610: 	{ 0x120000, 0x12ffff, nemesis_characterram_word_r },
   611: 	{ 0x180000, 0x1803ff, gx400_xscroll2_word_r },
   612: 	{ 0x180400, 0x1807ff, gx400_xscroll1_word_r },
   613: 	{ 0x180800, 0x180eff, MRA16_RAM },
   614: 	{ 0x180f00, 0x180f7f, gx400_yscroll2_word_r },
   615: 	{ 0x180f80, 0x180fff, gx400_yscroll1_word_r },
   616: 	{ 0x181000, 0x181fff, MRA16_RAM },
   617: 	{ 0x190000, 0x190fff, MRA16_RAM },
   618: MEMORY_END
   619: 
   620: static MEMORY_WRITE16_START( blkpnthr_writemem )
   621: 	{ 0x000000, 0x07ffff, MWA16_ROM },
   622: 	{ 0x080000, 0x081fff, salamander_palette_word_w, &paletteram16 },
   623: 	{ 0x090000, 0x097fff, MWA16_RAM, &ram },
   624: 	{ 0x0A0000, 0x0A0001, nemesis_irq_enable_word_w },          /* irq enable */
   625: 	{ 0x0C0000, 0x0C0001, salamand_soundlatch_word_w },
   626: 	{ 0x0C0004, 0x0C0005, MWA16_NOP },        /* Watchdog at $c0005 */
   627: 	{ 0x100000, 0x100fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   628: 	{ 0x101000, 0x101fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   629: 	{ 0x102000, 0x102fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   630: 	{ 0x103000, 0x103fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   631: 	{ 0x120000, 0x12ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   632: 	{ 0x180000, 0x1803ff, gx400_xscroll2_word_w, &nemesis_xscroll2 },
   633: 	{ 0x180400, 0x1807ff, gx400_xscroll1_word_w, &nemesis_xscroll1 },
   634: 	{ 0x180800, 0x180eff, MWA16_RAM },			/* not used */
   635: 	{ 0x180f00, 0x180f7f, gx400_yscroll2_word_w, &nemesis_yscroll2 },
   636: 	{ 0x180f80, 0x180fff, gx400_yscroll1_word_w, &nemesis_yscroll1 },
   637: 	{ 0x181000, 0x181fff, MWA16_RAM },			/* not used */
   638: 	{ 0x190000, 0x190fff, MWA16_RAM, &spriteram16, &spriteram_size },		/* more sprite ram ??? */
   639: MEMORY_END
   640: 
   641: static MEMORY_READ16_START( citybomb_readmem )
   642: 	{ 0x000000, 0x01ffff, MRA16_ROM },  /* ROM BIOS */
   643: 	{ 0x080000, 0x087fff, MRA16_RAM },
   644: 	{ 0x0e0000, 0x0e1fff, MRA16_RAM },
   645: 	{ 0x0f0000, 0x0f0001, input_port_4_word_r },	/* DSW1 */
   646: 	{ 0x0f0002, 0x0f0003, input_port_2_word_r },	/* IN2 */
   647: 	{ 0x0f0004, 0x0f0005, input_port_1_word_r },	/* IN1 */
   648: 	{ 0x0f0006, 0x0f0007, input_port_0_word_r },	/* Coins, start buttons, test mode */
   649: 	{ 0x0f0008, 0x0f0009, input_port_3_word_r },	/* DSW0 */
   650: 	{ 0x0f0020, 0x0f0021, MRA16_NOP },				/* Analog device */
   651: 	{ 0x100000, 0x1bffff, MRA16_ROM },  /* ROM BIOS */
   652: 	{ 0x200000, 0x20ffff, nemesis_characterram_word_r },
   653: 	{ 0x210000, 0x210fff, nemesis_videoram1f_word_r },
   654: 	{ 0x211000, 0x211fff, nemesis_videoram1b_word_r },
   655: 	{ 0x212000, 0x212fff, nemesis_videoram2f_word_r },
   656: 	{ 0x213000, 0x213fff, nemesis_videoram2b_word_r },
   657: 	{ 0x300000, 0x3003ff, gx400_xscroll2_word_r },
   658: 	{ 0x300400, 0x3007ff, gx400_xscroll1_word_r },
   659: 	{ 0x300800, 0x300eff, MRA16_RAM },
   660: 	{ 0x300f00, 0x300f7f, gx400_yscroll2_word_r },
   661: 	{ 0x300f80, 0x300fff, gx400_yscroll1_word_r },
   662: 	{ 0x301000, 0x301fff, MRA16_RAM },
   663: 	{ 0x310000, 0x310fff, MRA16_RAM },
   664: MEMORY_END
   665: 
   666: static MEMORY_WRITE16_START( citybomb_writemem )
   667: 	{ 0x000000, 0x01ffff, MWA16_ROM },
   668: 	{ 0x080000, 0x087fff, MWA16_RAM, &ram },
   669: 	{ 0x0e0000, 0x0e1fff, salamander_palette_word_w, &paletteram16 },
   670: 	{ 0x0f0010, 0x0f0011, salamand_soundlatch_word_w },
   671: 	{ 0x0f0018, 0x0f0019, MWA16_NOP },			/* Watchdog */
   672: 	{ 0x0f0020, 0x0f0021, MWA16_NOP },			/* Analog device */
   673: 	{ 0x0f8000, 0x0f8001, nemesis_irq_enable_word_w },          /* irq enable */
   674: 	{ 0x100000, 0x1bffff, MWA16_ROM },
   675: 	{ 0x200000, 0x20ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   676: 	{ 0x210000, 0x210fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   677: 	{ 0x211000, 0x211fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   678: 	{ 0x212000, 0x212fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   679: 	{ 0x213000, 0x213fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   680: 	{ 0x300000, 0x3003ff, gx400_xscroll2_word_w, &nemesis_xscroll2 },
   681: 	{ 0x300400, 0x3007ff, gx400_xscroll1_word_w, &nemesis_xscroll1 },
   682: 	{ 0x300800, 0x300eff, MWA16_RAM },			/* not used */
   683: 	{ 0x300f00, 0x300f7f, gx400_yscroll2_word_w, &nemesis_yscroll2 },
   684: 	{ 0x300f80, 0x300fff, gx400_yscroll1_word_w, &nemesis_yscroll1 },
   685: 	{ 0x301000, 0x301fff, MWA16_RAM },			/* not used */
   686: 	{ 0x310000, 0x310fff, MWA16_RAM, &spriteram16, &spriteram_size },		/* more sprite ram ??? */
   687: MEMORY_END
   688: 
   689: static MEMORY_READ16_START( nyanpani_readmem )
   690: 	{ 0x000000, 0x01ffff, MRA16_ROM },  /* ROM BIOS */
   691: 	{ 0x040000, 0x047fff, MRA16_RAM },
   692: 	{ 0x060000, 0x061fff, MRA16_RAM },
   693: 	{ 0x100000, 0x13ffff, MRA16_ROM },  /* ROM BIOS */
   694: 	{ 0x070000, 0x070001, input_port_4_word_r },	/* DSW1 */
   695: 	{ 0x070002, 0x070003, input_port_2_word_r },	/* IN2 */
   696: 	{ 0x070004, 0x070005, input_port_1_word_r },	/* IN1 */
   697: 	{ 0x070006, 0x070007, input_port_0_word_r },	/* Coins, start buttons, test mode */
   698: 	{ 0x070008, 0x070009, input_port_3_word_r },	/* DSW0 */
   699: 	{ 0x200000, 0x200fff, nemesis_videoram1f_word_r },
   700: 	{ 0x201000, 0x201fff, nemesis_videoram1b_word_r },
   701: 	{ 0x202000, 0x202fff, nemesis_videoram2f_word_r },
   702: 	{ 0x203000, 0x203fff, nemesis_videoram2b_word_r },
   703: 	{ 0x210000, 0x21ffff, nemesis_characterram_word_r },
   704: 	{ 0x300000, 0x300fff, MRA16_RAM },
   705: 	{ 0x310000, 0x3103ff, gx400_xscroll2_word_r },
   706: 	{ 0x310400, 0x3107ff, gx400_xscroll1_word_r },
   707: 	{ 0x310800, 0x310eff, MRA16_RAM },
   708: 	{ 0x310f00, 0x310f7f, gx400_yscroll2_word_r },
   709: 	{ 0x310f80, 0x310fff, gx400_yscroll1_word_r },
   710: 	{ 0x311000, 0x311fff, MRA16_RAM },
   711: MEMORY_END
   712: 
   713: static MEMORY_WRITE16_START( nyanpani_writemem )
   714: 	{ 0x000000, 0x01ffff, MWA16_ROM },
   715: 	{ 0x040000, 0x047fff, MWA16_RAM, &ram },
   716: 	{ 0x060000, 0x061fff, salamander_palette_word_w, &paletteram16 },
   717: 	{ 0x100000, 0x13ffff, MWA16_ROM },
   718: 	{ 0x070010, 0x070011, salamand_soundlatch_word_w },
   719: 	{ 0x070018, 0x070019, MWA16_NOP },        /* Watchdog */
   720: 	{ 0x078000, 0x078001, nemesis_irq_enable_word_w },          /* irq enable */
   721: 	{ 0x200000, 0x200fff, nemesis_videoram1f_word_w, &nemesis_videoram1f },	/* VRAM 1 */
   722: 	{ 0x201000, 0x201fff, nemesis_videoram1b_word_w, &nemesis_videoram1b },	/* VRAM 1 */
   723: 	{ 0x202000, 0x202fff, nemesis_videoram2f_word_w, &nemesis_videoram2f },	/* VRAM 2 */
   724: 	{ 0x203000, 0x203fff, nemesis_videoram2b_word_w, &nemesis_videoram2b },	/* VRAM 2 */
   725: 	{ 0x210000, 0x21ffff, nemesis_characterram_word_w, &nemesis_characterram, &nemesis_characterram_size },
   726: 	{ 0x300000, 0x300fff, MWA16_RAM, &spriteram16, &spriteram_size },		/* more sprite ram ??? */
   727: 	{ 0x310000, 0x3103ff, gx400_xscroll2_word_w, &nemesis_xscroll2 },
   728: 	{ 0x310400, 0x3107ff, gx400_xscroll1_word_w, &nemesis_xscroll1 },
   729: 	{ 0x310800, 0x310eff, MWA16_RAM },			/* not used */
   730: 	{ 0x310f00, 0x310f7f, gx400_yscroll2_word_w, &nemesis_yscroll2 },
   731: 	{ 0x310f80, 0x310fff, gx400_yscroll1_word_w, &nemesis_yscroll1 },
   732: 	{ 0x311000, 0x311fff, MWA16_RAM },			/* not used */
   733: MEMORY_END
   734: 
   735: static READ_HANDLER( wd_r )
   736: {
   737: 	static int a=1;
   738: 	a^= 1;
   739: 	return a;
   740: }
   741: 
   742: static WRITE_HANDLER( city_sound_bank_w )
   743: {
   744: 	int bank_A=(data&0x3);
   745: 	int bank_B=((data>>2)&0x3);
   746: 	K007232_set_bank( 0, bank_A, bank_B );
   747: }
   748: 
   749: static MEMORY_READ_START( sal_sound_readmem )
   750: 	{ 0x0000, 0x7fff, MRA_ROM },
   751: 	{ 0x8000, 0x87ff, MRA_RAM },
   752: 	{ 0xa000, 0xa000, soundlatch_r },
   753: 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
   754: 	{ 0xc001, 0xc001, YM2151_status_port_0_r },
   755: 	{ 0xe000, 0xe000, wd_r }, /* watchdog?? */
   756: MEMORY_END
   757: 
   758: static MEMORY_WRITE_START( sal_sound_writemem )
   759: 	{ 0x0000, 0x7fff, MWA_ROM },
   760: 	{ 0x8000, 0x87ff, MWA_RAM },
   761: 	{ 0xb000, 0xb00d, K007232_write_port_0_w },
   762: 	{ 0xc000, 0xc000, YM2151_register_port_0_w },
   763: 	{ 0xc001, 0xc001, YM2151_data_port_0_w },
   764: 	{ 0xd000, 0xd000, VLM5030_data_w },
   765: 	{ 0xf000, 0xf000, salamand_speech_start_w },
   766: MEMORY_END
   767: 
   768: static MEMORY_READ_START( city_sound_readmem )
   769: 	{ 0x0000, 0x7fff, MRA_ROM },
   770: 	{ 0x8000, 0x87ff, MRA_RAM },
   771: 	{ 0xa000, 0xa000, YM3812_status_port_0_r },
   772: 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
   773: 	{ 0xd000, 0xd000, soundlatch_r },
   774: MEMORY_END
   775: 
   776: static MEMORY_WRITE_START( city_sound_writemem )
   777: 	{ 0x0000, 0x7fff, MWA_ROM },
   778: 	{ 0x8000, 0x87ff, MWA_RAM },
   779: 	{ 0x9800, 0x987f, K051649_waveform_w },
   780: 	{ 0x9880, 0x9889, K051649_frequency_w },
   781: 	{ 0x988a, 0x988e, K051649_volume_w },
   782: 	{ 0x988f, 0x988f, K051649_keyonoff_w },
   783: 	{ 0xa000, 0xa000, YM3812_control_port_0_w },
   784: 	{ 0xa001, 0xa001, YM3812_write_port_0_w },
   785: 	{ 0xb000, 0xb00d, K007232_write_port_0_w },
   786: 	{ 0xc000, 0xc000, city_sound_bank_w }, /* 7232 bankswitch */
   787: MEMORY_END
   788: 
   789: /******************************************************************************/
   790: 
   791: #define GX400_COINAGE_DIP \ 
   792: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \
   793: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) ) \
   794: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) ) \
   795: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) ) \
   796: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) ) \
   797: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) ) \
   798: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) ) \
   799: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) ) \
   800: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) ) \
   801: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) ) \
   802: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) ) \
   803: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) ) \
   804: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) ) \
   805: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) ) \
   806: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) ) \
   807: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) ) \
   808: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) \
   809: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \
   810: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) ) \
   811: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) ) \
   812: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) ) \
   813: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) ) \
   814: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) ) \
   815: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
   816: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) ) \
   817: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) ) \
   818: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) ) \
   819: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) ) \
   820: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) ) \
   821: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) ) \
   822: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) ) \
   823: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) ) \
   824: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) ) \
   825: 	PORT_DIPSETTING(    0x00, "Disabled" )
   826: 
   827: 
   828: INPUT_PORTS_START( nemesis )
   829: 	PORT_START	/* IN0 */
   830: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   831: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   832: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
   833: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
   834: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
   835: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   836: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   837: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   838: 
   839: 	PORT_START	/* IN1 */
   840: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
   841: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
   842: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
   843: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
   844: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
   845: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
   846: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
   847: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   848: 
   849: 	PORT_START	/* IN2 */
   850: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
   851: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
   852: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
   853: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
   854: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
   855: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
   856: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
   857: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   858: 
   859: 	PORT_START	/* TEST */
   860: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   861: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   862: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   863: 	PORT_DIPNAME( 0x02, 0x02, "Version" )
   864: 	PORT_DIPSETTING(    0x02, "Normal" )
   865: 	PORT_DIPSETTING(    0x00, "Vs" )
   866: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   867: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   868: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   869: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   870: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   871: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   872: 
   873: 	PORT_START	/* DSW0 */
   874: 	GX400_COINAGE_DIP
   875: 
   876: 	PORT_START	/* DSW1 */
   877: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
   878: 	PORT_DIPSETTING(    0x03, "3" )
   879: 	PORT_DIPSETTING(    0x02, "4" )
   880: 	PORT_DIPSETTING(    0x01, "5" )
   881: 	PORT_DIPSETTING(    0x00, "7" )
   882: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
   883: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   884: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
   885: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
   886: 	PORT_DIPSETTING(    0x18, "50k and every 100k" )
   887: 	PORT_DIPSETTING(    0x10, "30k" )
   888: 	PORT_DIPSETTING(    0x08, "50k" )
   889: 	PORT_DIPSETTING(    0x00, "100k" )
   890: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
   891: 	PORT_DIPSETTING(    0x60, "Easy" )
   892: 	PORT_DIPSETTING(    0x40, "Medium" )
   893: 	PORT_DIPSETTING(    0x20, "Hard" )
   894: 	PORT_DIPSETTING(    0x00, "Hardest" )
   895: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   896: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   897: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   898: INPUT_PORTS_END
   899: 
   900: 
   901: INPUT_PORTS_START( nemesuk )
   902: 	PORT_START	/* IN0 */
   903: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   904: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   905: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
   906: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
   907: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
   908: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   909: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   910: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   911: 
   912: 	PORT_START	/* IN1 */
   913: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
   914: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
   915: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
   916: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
   917: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
   918: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
   919: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
   920: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   921: 
   922: 	PORT_START	/* IN2 */
   923: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
   924: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
   925: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
   926: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
   927: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
   928: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
   929: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
   930: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   931: 
   932: 	PORT_START	/* TEST */
   933: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   934: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   935: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   936: 	PORT_DIPNAME( 0x02, 0x02, "Version" )
   937: 	PORT_DIPSETTING(    0x02, "Normal" )
   938: 	PORT_DIPSETTING(    0x00, "Vs" )
   939: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   940: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   941: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   942: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   943: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   944: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   945: 
   946: 	PORT_START	/* DSW0 */
   947: 	GX400_COINAGE_DIP
   948: 
   949: 	PORT_START	/* DSW1 */
   950: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
   951: 	PORT_DIPSETTING(    0x03, "2" )
   952: 	PORT_DIPSETTING(    0x02, "3" )
   953: 	PORT_DIPSETTING(    0x01, "5" )
   954: 	PORT_DIPSETTING(    0x00, "7" )
   955: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
   956: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   957: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
   958: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
   959: 	PORT_DIPSETTING(    0x18, "20k and every 70k" )
   960: 	PORT_DIPSETTING(    0x10, "30k and every 80k" )
   961: 	PORT_DIPSETTING(    0x08, "20k" )
   962: 	PORT_DIPSETTING(    0x00, "30k" )
   963: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
   964: 	PORT_DIPSETTING(    0x60, "Easy" )
   965: 	PORT_DIPSETTING(    0x40, "Medium" )
   966: 	PORT_DIPSETTING(    0x20, "Hard" )
   967: 	PORT_DIPSETTING(    0x00, "Hardest" )
   968: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   969: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   970: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   971: INPUT_PORTS_END
   972: 
   973: 
   974: /* This needs to be sorted */
   975: INPUT_PORTS_START( konamigt )
   976: 	PORT_START	/* IN0 */
   977: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   978: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   979: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
   980: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   981: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   982: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   983: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   984: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   985: 
   986: 	PORT_START	/* IN1 */
   987: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) /* gear */
   988: 	PORT_BIT( 0xef, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   989: 
   990: 	PORT_START	/* IN2 */
   991: 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   992: 
   993: 	PORT_START	/* TEST */
   994: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   995: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   996: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   997: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   998: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   999: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1000: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1001: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1002: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1003: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1004: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1005: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1006: 
  1007: 	PORT_START	/* DSW0 */
  1008: 	GX400_COINAGE_DIP
  1009: 
  1010: 	PORT_START	/* DSW1 */
  1011: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1012: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1013: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1014: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1015: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1016: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1017: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1018: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1019: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1020: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1021: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1022: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1023: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
  1024: 	PORT_DIPSETTING(    0x30, "Easy" )
  1025: 	PORT_DIPSETTING(    0x20, "Medium" )
  1026: 	PORT_DIPSETTING(    0x10, "Hard" )
  1027: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1028: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1029: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1030: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1031: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1032: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1033: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1034: 
  1035: 	PORT_START	/* IN6 */
  1036: 	PORT_ANALOG( 0xff, 0x40, IPT_DIAL, 25, 10, 0x00, 0x7f )
  1037: 
  1038: 	PORT_START	/* IN7 */
  1039: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
  1040: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  1041: //	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
  1042: INPUT_PORTS_END
  1043: 
  1044: 
  1045: /* This needs to be sorted */
  1046: INPUT_PORTS_START( rf2 )
  1047: 	PORT_START	/* IN0 */
  1048: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1049: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1050: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1051: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1052: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1053: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* don't change */
  1054: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1055: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1056: 
  1057: 	PORT_START	/* IN1 */
  1058: 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* gear (0-7) */
  1059: 	PORT_BIT( 0x8f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1060: 
  1061: 	PORT_START	/* IN2 */
  1062: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1063: 
  1064: 	PORT_START	/* TEST */
  1065: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1066: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1067: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1068: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1069: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1070: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1071: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1072: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1073: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1074: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1075: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1076: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1077: 
  1078: 	PORT_START	/* DSW0 */
  1079: 	GX400_COINAGE_DIP
  1080: 
  1081: 	PORT_START	/* DSW1 */
  1082: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1083: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1084: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1085: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1086: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1087: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1088: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1089: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1090: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1091: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1092: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1093: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1094: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
  1095: 	PORT_DIPSETTING(    0x30, "Easy" )
  1096: 	PORT_DIPSETTING(    0x20, "Medium" )
  1097: 	PORT_DIPSETTING(    0x10, "Hard" )
  1098: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1099: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1100: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1101: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1102: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1103: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1104: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1105: 
  1106: 	PORT_START	/* IN6 */
  1107: 	PORT_ANALOG( 0xff, 0x40, IPT_DIAL, 25, 10, 0x00, 0x7f )
  1108: 
  1109: 	PORT_START	/* IN7 */
  1110: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
  1111: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  1112: //	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
  1113: 
  1114: INPUT_PORTS_END
  1115: 
  1116: 
  1117: INPUT_PORTS_START( gwarrior )
  1118: 	PORT_START	/* IN0 */
  1119: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1120: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1121: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1122: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1123: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1124: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1125: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1126: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1127: 
  1128: 	PORT_START	/* IN1 */
  1129: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1130: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1131: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1132: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1133: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
  1134: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1135: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1136: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1137: 
  1138: 	PORT_START	/* IN2 */
  1139: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1140: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1141: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1142: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1143: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  1144: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1145: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1146: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1147: 
  1148: 	PORT_START	/* TEST */
  1149: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1150: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1151: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1152: 	PORT_DIPNAME( 0x02, 0x02, "Version" )
  1153: 	PORT_DIPSETTING(    0x02, "Normal" )
  1154: 	PORT_DIPSETTING(    0x00, "Vs" )
  1155: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1156: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1157: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1158: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1159: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1160: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1161: 
  1162: 	PORT_START	/* DSW0 */
  1163: 	GX400_COINAGE_DIP
  1164: 
  1165: 	PORT_START	/* DSW1 */
  1166: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
  1167: 	PORT_DIPSETTING(    0x03, "1" )
  1168: 	PORT_DIPSETTING(    0x02, "2" )
  1169: 	PORT_DIPSETTING(    0x01, "3" )
  1170: 	PORT_DIPSETTING(    0x00, "7" )
  1171: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  1172: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1173: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1174: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  1175: 	PORT_DIPSETTING(    0x18, "30k 100k 200k 400k" )
  1176: 	PORT_DIPSETTING(    0x10, "40k 120k 240k 480k" )
  1177: 	PORT_DIPSETTING(    0x08, "50k 150k 300k 600k" )
  1178: 	PORT_DIPSETTING(    0x00, "100k 200k 400k 800k" )
  1179: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
  1180: 	PORT_DIPSETTING(    0x60, "Easy" )
  1181: 	PORT_DIPSETTING(    0x40, "Medium" )
  1182: 	PORT_DIPSETTING(    0x20, "Hard" )
  1183: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1184: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1185: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1186: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1187: INPUT_PORTS_END
  1188: 
  1189: 
  1190: INPUT_PORTS_START( twinbee )
  1191: 	PORT_START	/* IN0 */
  1192: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1193: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1194: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1195: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1196: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1197: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1198: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1199: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1200: 
  1201: 	PORT_START	/* IN1 */
  1202: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1203: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1204: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1205: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1206: 
  1207: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1208: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1209: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1210: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1211: 
  1212: 	PORT_START	/* IN2 */
  1213: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1214: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1215: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1216: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1217: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1218: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1219: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1220: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1221: 
  1222: 	PORT_START	/* TEST */
  1223: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1224: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1225: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1226: 	PORT_DIPNAME( 0x02, 0x02, "Version" )
  1227: 	PORT_DIPSETTING(    0x02, "Normal" )
  1228: 	PORT_DIPSETTING(    0x00, "Vs" )
  1229: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1230: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1231: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1232: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1233: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1234: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1235: 
  1236: 	PORT_START	/* DSW0 */
  1237: 	GX400_COINAGE_DIP
  1238: 
  1239: 	PORT_START	/* DSW1 */
  1240: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
  1241: 	PORT_DIPSETTING(    0x03, "2" )
  1242: 	PORT_DIPSETTING(    0x02, "3" )
  1243: 	PORT_DIPSETTING(    0x01, "4" )
  1244: 	PORT_DIPSETTING(    0x00, "7" )
  1245: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  1246: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1247: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1248: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  1249: 	PORT_DIPSETTING(    0x18, "20k 100k" )
  1250: 	PORT_DIPSETTING(    0x10, "30k 120k" )
  1251: 	PORT_DIPSETTING(    0x08, "40k 140k" )
  1252: 	PORT_DIPSETTING(    0x00, "50k 160k" )
  1253: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
  1254: 	PORT_DIPSETTING(    0x60, "Easy" )
  1255: 	PORT_DIPSETTING(    0x40, "Medium" )
  1256: 	PORT_DIPSETTING(    0x20, "Hard" )
  1257: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1258: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1259: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1260: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1261: INPUT_PORTS_END
  1262: 
  1263: 
  1264: INPUT_PORTS_START( gradius )
  1265: 	PORT_START	/* IN0 */
  1266: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1267: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1268: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1269: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1270: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1271: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1272: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1273: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1274: 
  1275: 	PORT_START	/* IN1 */
  1276: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1277: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1278: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1279: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1280: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
  1281: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1282: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1283: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1284: 
  1285: 	PORT_START	/* IN2 */
  1286: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1287: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1288: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1289: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1290: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  1291: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1292: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1293: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1294: 
  1295: 	PORT_START	/* TEST */
  1296: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1297: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1298: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1299: 	PORT_DIPNAME( 0x02, 0x02, "Version" )
  1300: 	PORT_DIPSETTING(    0x02, "Normal" )
  1301: 	PORT_DIPSETTING(    0x00, "Vs" )
  1302: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1303: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1304: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1305: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1306: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1307: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1308: 
  1309: 	PORT_START	/* DSW0 */
  1310: 	GX400_COINAGE_DIP
  1311: 
  1312: 	PORT_START	/* DSW1 */
  1313: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1314: 	PORT_DIPSETTING(    0x03, "3" )
  1315: 	PORT_DIPSETTING(    0x02, "4" )
  1316: 	PORT_DIPSETTING(    0x01, "5" )
  1317: 	PORT_DIPSETTING(    0x00, "7" )
  1318: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
  1319: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1320: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
  1321: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  1322: 	PORT_DIPSETTING(    0x18, "20k and every 70k" )
  1323: 	PORT_DIPSETTING(    0x10, "30k and every 80k" )
  1324: 	PORT_DIPSETTING(    0x08, "20k only" )
  1325: 	PORT_DIPSETTING(    0x00, "30k only" )
  1326: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
  1327: 	PORT_DIPSETTING(    0x60, "Easy" )
  1328: 	PORT_DIPSETTING(    0x40, "Medium" )
  1329: 	PORT_DIPSETTING(    0x20, "Hard" )
  1330: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1331: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1332: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1333: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1334: INPUT_PORTS_END
  1335: 
  1336: 
  1337: INPUT_PORTS_START( salamand )
  1338: 	PORT_START	/* IN0 */
  1339: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
  1340: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
  1341: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
  1342: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
  1343: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
  1344: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
  1345: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1346: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1347: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
  1348: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1349: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1350: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1351: 
  1352: 	PORT_START	/* IN1 */
  1353: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1354: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1355: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1356: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1357: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
  1358: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
  1359: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1360: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
  1361: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1362: 	PORT_DIPSETTING(    0x80, DEF_STR( Cocktail ) )
  1363: 
  1364: 	PORT_START	/* IN2 */
  1365: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1366: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1367: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1368: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1369: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  1370: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
  1371: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1372: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1373: 
  1374: 
  1375: 	PORT_START	/* DSW0 */
  1376: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
  1377: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1378: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1379: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1380: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1381: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1382: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1383: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1384: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1385: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1386: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1387: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1388: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1389: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1390: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1391: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1392: 	PORT_DIPSETTING(    0x00, "Disabled" )
  1393: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
  1394: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1395: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1396: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
  1397: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1398: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1399: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
  1400: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1401: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1402: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
  1403: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1404: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1405: 
  1406: 	PORT_START	/* DSW1 */
  1407: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
  1408: 	PORT_DIPSETTING(    0x03, "2" )
  1409: 	PORT_DIPSETTING(    0x02, "3" )
  1410: 	PORT_DIPSETTING(    0x01, "5" )
  1411: 	PORT_DIPSETTING(    0x00, "7" )
  1412: 	PORT_DIPNAME( 0x04, 0x00, "Coin Slot(s)" )
  1413: 	PORT_DIPSETTING(    0x04, "1" )
  1414: 	PORT_DIPSETTING(    0x00, "2" )
  1415: 	PORT_DIPNAME( 0x18, 0x00, "Max Credit(s)" )
  1416: 	PORT_DIPSETTING(    0x18, "1" )
  1417: 	PORT_DIPSETTING(    0x10, "3" )
  1418: 	PORT_DIPSETTING(    0x08, "5" )
  1419: 	PORT_DIPSETTING(    0x00, "9" )
  1420: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1421: 	PORT_DIPSETTING(    0x60, "Easy" )
  1422: 	PORT_DIPSETTING(    0x40, "Medium" )
  1423: 	PORT_DIPSETTING(    0x20, "Hard" )
  1424: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1425: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1426: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1427: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1428: INPUT_PORTS_END
  1429: 
  1430: 
  1431: INPUT_PORTS_START( lifefrcj )
  1432: 	PORT_START	/* IN0 */
  1433: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
  1434: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
  1435: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
  1436: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
  1437: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
  1438: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
  1439: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1440: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1441: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
  1442: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1443: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1444: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1445: 
  1446: 	PORT_START	/* IN1 */
  1447: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1448: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1449: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1450: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1451: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
  1452: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
  1453: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
  1454: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
  1455: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1456: 	PORT_DIPSETTING(    0x80, DEF_STR( Cocktail ) )
  1457: 
  1458: 	PORT_START	/* IN2 */
  1459: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1460: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1461: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1462: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1463: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
  1464: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  1465: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
  1466: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1467: 
  1468: 
  1469: 	PORT_START	/* DSW0 */
  1470: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1471: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1472: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1473: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1474: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1475: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1476: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1477: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1478: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1479: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1480: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1481: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1482: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1483: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1484: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1485: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1486: 	PORT_DIPSETTING(    0x00, "Disabled" )
  1487: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1488: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1489: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1490: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1491: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1492: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1493: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1494: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1495: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1496: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1497: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1498: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1499: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1500: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1501: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1502: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1503: 	PORT_DIPSETTING(    0x00, "Disabled" )
  1504: 
  1505: 	PORT_START	/* DSW1 */
  1506: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1507: 	PORT_DIPSETTING(    0x03, "3" )
  1508: 	PORT_DIPSETTING(    0x02, "4" )
  1509: 	PORT_DIPSETTING(    0x01, "5" )
  1510: 	PORT_DIPSETTING(    0x00, "6" )
  1511: 	PORT_DIPNAME( 0x04, 0x00, "Coin Slot(s)" )
  1512: 	PORT_DIPSETTING(    0x04, "1" )
  1513: 	PORT_DIPSETTING(    0x00, "2" )
  1514: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  1515: 	PORT_DIPSETTING(    0x18, "70k and every 200k" )
  1516: 	PORT_DIPSETTING(    0x10, "100k and every 300k" )
  1517: 	PORT_DIPSETTING(    0x08, "70k only" )
  1518: 	PORT_DIPSETTING(    0x00, "100k only" )
  1519: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1520: 	PORT_DIPSETTING(    0x60, "Easy" )
  1521: 	PORT_DIPSETTING(    0x40, "Medium" )
  1522: 	PORT_DIPSETTING(    0x20, "Hard" )
  1523: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1524: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1525: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1526: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1527: INPUT_PORTS_END
  1528: 
  1529: INPUT_PORTS_START( blkpnthr )
  1530: 	PORT_START	/* IN0 */
  1531: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
  1532: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
  1533: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
  1534: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
  1535: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
  1536: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
  1537: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1538: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1539: 	PORT_DIPNAME( 0xc0, 0x80, "Continue" )
  1540: 	PORT_DIPSETTING(    0xc0, DEF_STR( Off ) )
  1541: 	PORT_DIPSETTING(    0x80, "2 Areas" )
  1542: 	PORT_DIPSETTING(    0x40, "3 Areas" )
  1543: 	PORT_DIPSETTING(    0x00, "4 Areas" )
  1544: 
  1545: 	PORT_START	/* IN1 */
  1546: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1547: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1548: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1549: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1550: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
  1551: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
  1552: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1553: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1554: 
  1555: 	PORT_START	/* IN2 */
  1556: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1557: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1558: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1559: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1560: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  1561: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
  1562: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1563: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1564: 
  1565: 
  1566: 	PORT_START	/* DSW0 */
  1567: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1568: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1569: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1570: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1571: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1572: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1573: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1574: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1575: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1576: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1577: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1578: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1579: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1580: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1581: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1582: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1583: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1584: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1585: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1586: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1587: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1588: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1589: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1590: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1591: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1592: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1593: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1594: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1595: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1596: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1597: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1598: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1599: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1600: 	PORT_DIPSETTING(    0x00, "Disabled" )
  1601: 
  1602: 	PORT_START	/* DSW1 */
  1603: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1604: 	PORT_DIPSETTING(    0x03, "3" )
  1605: 	PORT_DIPSETTING(    0x02, "4" )
  1606: 	PORT_DIPSETTING(    0x01, "5" )
  1607: 	PORT_DIPSETTING(    0x00, "7" )
  1608: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
  1609: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1610: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
  1611: 	PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) )
  1612: 	PORT_DIPSETTING(    0x18, "50k 100k" )
  1613: 	PORT_DIPSETTING(    0x10, "20k 50k" )
  1614: 	PORT_DIPSETTING(    0x08, "30k 70k" )
  1615: 	PORT_DIPSETTING(    0x00, "80k 150k" )
  1616: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1617: 	PORT_DIPSETTING(    0x60, "Easy" )
  1618: 	PORT_DIPSETTING(    0x40, "Normal" )
  1619: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1620: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1621: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1622: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1623: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1624: INPUT_PORTS_END
  1625: 
  1626: INPUT_PORTS_START( citybomb )
  1627: 	PORT_START	/* IN0 */
  1628: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1629: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1630: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1631: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1632: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1633: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) )
  1634: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1635: 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
  1636: 	PORT_DIPNAME( 0x40, 0x40, "Upright Control" )
  1637: 	PORT_DIPSETTING(    0x40, "Single" )
  1638: 	PORT_DIPSETTING(    0x00, "Dual" )
  1639: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1640: 
  1641: 	PORT_START	/* IN1 */
  1642: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1643: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1644: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1645: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1646: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1647: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1648: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
  1649: 	PORT_DIPNAME( 0x80, 0x80, "Device Type" )
  1650: 	PORT_DIPSETTING(    0x00, "Handle" )
  1651: 	PORT_DIPSETTING(    0x80, "Joystick" )
  1652: 
  1653: 	PORT_START	/* IN2 */
  1654: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1655: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1656: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1657: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1658: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1659: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1660: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  1661: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1662: 
  1663: 	PORT_START	/* DSW0 */
  1664: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1665: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1666: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1667: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1668: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1669: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1670: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1671: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1672: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1673: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1674: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1675: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1676: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1677: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1678: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1679: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1680: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1681: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1682: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1683: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1684: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1685: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1686: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1687: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1688: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1689: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1690: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1691: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1692: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1693: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1694: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1695: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1696: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1697: 	PORT_DIPSETTING(    0x00, "Disabled" )
  1698: 
  1699: 	PORT_START	/* DSW1 */
  1700: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
  1701: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1702: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
  1703: 	PORT_DIPNAME( 0x18, 0x10, "Qualify" )
  1704: 	PORT_DIPSETTING(    0x18, "Long" )
  1705: 	PORT_DIPSETTING(    0x10, "Normal" )
  1706: 	PORT_DIPSETTING(    0x08, "Short" )
  1707: 	PORT_DIPSETTING(    0x00, "Very Short" )
  1708: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1709: 	PORT_DIPSETTING(    0x60, "Easy" )
  1710: 	PORT_DIPSETTING(    0x40, "Normal" )
  1711: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1712: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1713: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1714: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1715: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1716: INPUT_PORTS_END
  1717: 
  1718: INPUT_PORTS_START( nyanpani )
  1719: 	PORT_START	/* IN0 */
  1720: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1721: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1722: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1723: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1724: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1725: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
  1726: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1727: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1728: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1729: 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1730: 
  1731: 	PORT_START	/* IN1 */
  1732: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  1733: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  1734: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  1735: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  1736: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1737: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1738: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1739: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1740: 
  1741: 	PORT_START	/* IN2 */
  1742: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  1743: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  1744: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  1745: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  1746: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1747: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1748: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1749: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1750: 
  1751: 	PORT_START	/* DSW0 */
  1752: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1753: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1754: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1755: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1756: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1757: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1758: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1759: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1760: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1761: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1762: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1763: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1764: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1765: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1766: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1767: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1768: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1769: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1770: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1771: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1772: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1773: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1774: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1775: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1776: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1777: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1778: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1779: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1780: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1781: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1782: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1783: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1784: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1785: 	PORT_DIPSETTING(    0x00, "Disabled" )
  1786: 
  1787: 	PORT_START	/* DSW1 */
  1788: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
  1789: 	PORT_DIPSETTING(    0x03, "2" )
  1790: 	PORT_DIPSETTING(    0x02, "3" )
  1791: 	PORT_DIPSETTING(    0x01, "5" )
  1792: 	PORT_DIPSETTING(    0x00, "7" )
  1793: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1794: 	PORT_DIPSETTING(    0x60, "Easy" )
  1795: 	PORT_DIPSETTING(    0x40, "Normal" )
  1796: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1797: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1798: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1799: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1800: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1801: INPUT_PORTS_END
  1802: 
  1803: /******************************************************************************/
  1804: 
  1805: static struct GfxLayout charlayout =
  1806: {
  1807: 	8,8,	/* 8*8 characters */
  1808: 	2048+1,	/* 2048 characters (+ blank one) */
  1809: 	4,	/* 4 bits per pixel */
  1810: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1811: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
  1812: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  1813: 	32*8     /* every char takes 32 consecutive bytes */
  1814: };
  1815: 
  1816: static struct GfxLayout spritelayout =
  1817: {
  1818: 	16,16,	/* 16*16 sprites */
  1819: 	512,	/* 512 sprites */
  1820: 	4,	/* 4 bits per pixel */
  1821: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1822: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
  1823: 			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 },
  1824: 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
  1825: 			8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
  1826: 	128*8     /* every sprite takes 128 consecutive bytes */
  1827: };
  1828: 
  1829: static struct GfxLayout spritelayout3216 =
  1830: {
  1831: 	32,16,	/* 32*16 sprites */
  1832: 	256,	/* 256 sprites */
  1833: 	4,	/* 4 bits per pixel */
  1834: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1835: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
  1836: 			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4,
  1837: 		   16*4,17*4, 18*4, 19*4, 20*4, 21*4, 22*4, 23*4,
  1838: 		   24*4,25*4, 26*4, 27*4, 28*4, 29*4, 30*4, 31*4},
  1839: 	{ 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128,
  1840: 			8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 },
  1841: 	256*8     /* every sprite takes 128 consecutive bytes */
  1842: };
  1843: 
  1844: static struct GfxLayout spritelayout1632 =
  1845: {
  1846: 	16,32,	/* 16*32 sprites */
  1847: 	256,	/* 256 sprites */
  1848: 	4,	/* 4 bits per pixel */
  1849: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1850: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
  1851: 			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4},
  1852: 	{ 0*64,  1*64,  2*64,  3*64,  4*64,  5*64,  6*64,  7*64,
  1853: 	  8*64,  9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64,
  1854: 	 16*64, 17*64, 18*64, 19*64, 20*64, 21*64, 22*64, 23*64,
  1855: 	 24*64, 25*64, 26*64, 27*64, 28*64, 29*64, 30*64, 31*64},
  1856: 	256*8     /* every sprite takes 128 consecutive bytes */
  1857: };
  1858: 
  1859: static struct GfxLayout spritelayout3232 =
  1860: {
  1861: 	32,32,	/* 32*32 sprites */
  1862: 	128,	/* 128 sprites */
  1863: 	4,	/* 4 bits per pixel */
  1864: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1865: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
  1866: 			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4,
  1867: 		   16*4,17*4, 18*4, 19*4, 20*4, 21*4, 22*4, 23*4,
  1868: 		   24*4,25*4, 26*4, 27*4, 28*4, 29*4, 30*4, 31*4},
  1869: 	{ 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128,
  1870: 			8*128,  9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128,
  1871: 		   16*128, 17*128, 18*128, 19*128, 20*128, 21*128, 22*128, 23*128,
  1872: 		   24*128, 25*128, 26*128, 27*128, 28*128, 29*128, 30*128, 31*128},
  1873: 	512*8     /* every sprite takes 128 consecutive bytes */
  1874: };
  1875: 
  1876: static struct GfxLayout spritelayout816 =
  1877: {
  1878: 	8,16,	/* 16*16 sprites */
  1879: 	1024,	/* 1024 sprites */
  1880: 	4,	/* 4 bits per pixel */
  1881: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1882: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4},
  1883: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
  1884: 			8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
  1885: 	64*8     /* every sprite takes 128 consecutive bytes */
  1886: };
  1887: 
  1888: static struct GfxLayout spritelayout168 =
  1889: {
  1890: 	16,8,	/* 16*8 sprites */
  1891: 	1024,	/* 1024 sprites */
  1892: 	4,	/* 4 bits per pixel */
  1893: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1894: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
  1895: 			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4},
  1896: 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64},
  1897: 	64*8     /* every sprite takes 128 consecutive bytes */
  1898: 
  1899: };
  1900: 
  1901: static struct GfxLayout spritelayout6464 =
  1902: {
  1903: 	64,64,	/* 32*32 sprites */
  1904: 	32,	/* 128 sprites */
  1905: 	4,	/* 4 bits per pixel */
  1906: 	{ 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */
  1907: 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
  1908: 			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4,
  1909: 		   16*4,17*4, 18*4, 19*4, 20*4, 21*4, 22*4, 23*4,
  1910: 		   24*4,25*4, 26*4, 27*4, 28*4, 29*4, 30*4, 31*4,
  1911: 		   32*4,33*4, 34*4, 35*4, 36*4, 37*4, 38*4, 39*4,
  1912: 		   40*4,41*4, 42*4, 43*4, 44*4, 45*4, 46*4, 47*4,
  1913: 		   48*4,49*4, 50*4, 51*4, 52*4, 53*4, 54*4, 55*4,
  1914: 		   56*4,57*4, 58*4, 59*4, 60*4, 61*4, 62*4, 63*4},
  1915: 
  1916: 	{ 0*256, 1*256, 2*256, 3*256, 4*256, 5*256, 6*256, 7*256,
  1917: 			8*256,  9*256, 10*256, 11*256, 12*256, 13*256, 14*256, 15*256,
  1918: 		   16*256, 17*256, 18*256, 19*256, 20*256, 21*256, 22*256, 23*256,
  1919: 		   24*256, 25*256, 26*256, 27*256, 28*256, 29*256, 30*256, 31*256,
  1920: 		   32*256, 33*256, 34*256, 35*256, 36*256, 37*256, 38*256, 39*256,
  1921: 		   40*256, 41*256, 42*256, 43*256, 44*256, 45*256, 46*256, 47*256,
  1922: 		   48*256, 49*256, 50*256, 51*256, 52*256, 53*256, 54*256, 55*256,
  1923: 		   56*256, 57*256, 58*256, 59*256, 60*256, 61*256, 62*256, 63*256},
  1924: 	2048*8     /* every sprite takes 128 consecutive bytes */
  1925: };
  1926: 
  1927: static struct GfxDecodeInfo gfxdecodeinfo[] =
  1928: {
  1929:     { 0, 0x0, &charlayout,   0, 0x80 },	/* the game dynamically modifies this */
  1930:     { 0, 0x0, &spritelayout, 0, 0x80 },	/* the game dynamically modifies this */
  1931:     { 0, 0x0, &spritelayout3216, 0, 0x80 },	/* the game dynamically modifies this */
  1932:     { 0, 0x0, &spritelayout816, 0, 0x80 },	/* the game dynamically modifies this */
  1933:     { 0, 0x0, &spritelayout3232, 0, 0x80 },	/* the game dynamically modifies this */
  1934:     { 0, 0x0, &spritelayout1632, 0, 0x80 },	/* the game dynamically modifies this */
  1935:     { 0, 0x0, &spritelayout168, 0, 0x80 },	/* the game dynamically modifies this */
  1936:     { 0, 0x0, &spritelayout6464, 0, 0x80 },	/* the game dynamically modifies this */
  1937: 	{ -1 }
  1938: };
  1939: 
  1940: /******************************************************************************/
  1941: 
  1942: static struct AY8910interface ay8910_interface =
  1943: {
  1944: 	2,      		/* 2 chips */
  1945: 	14318180/8,     /* 1.78975 MHz */
  1946: 	{ 35, 30 },
  1947: 	{ nemesis_portA_r, 0 },
  1948: 	{ 0, 0 },
  1949: 	{ 0, k005289_control_A_w },
  1950: 	{ 0, k005289_control_B_w }
  1951: };
  1952: 
  1953: static struct k005289_interface k005289_interface =
  1954: {
  1955: 	3579545/2,		/* clock speed */
  1956: 	20,				/* playback volume */
  1957: 	REGION_SOUND1	/* prom memory region */
  1958: };
  1959: 
  1960: static void sound_irq(int state)
  1961: {
  1962: /* Interrupts _are_ generated, I wonder where they go.. */
  1963: /*cpu_set_irq_line(1,0,HOLD_LINE);*/
  1964: }
  1965: 
  1966: static struct YM2151interface ym2151_interface =
  1967: {
  1968: 	1,
  1969: 	3579545,
  1970: 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
  1971: 	{ sound_irq }
  1972: };
  1973: 
  1974: static struct YM3812interface ym3812_interface =
  1975: {
  1976: 	1,
  1977: 	3579545,
  1978: 	{ 35 },
  1979: 	{ sound_irq },
  1980: };
  1981: 
  1982: static struct k051649_interface k051649_interface =
  1983: {
  1984: 	3579545/2,	/* Clock */
  1985: 	45,			/* Volume */
  1986: };
  1987: 
  1988: static struct VLM5030interface vlm5030_interface =
  1989: {
  1990:     3579545,       /* master clock  */
  1991:     60,            /* volume        */
  1992:     REGION_SOUND1, /* memory region  */
  1993:     0              /* memory length */
  1994: };
  1995: 
  1996: static struct VLM5030interface gx400_vlm5030_interface =
  1997: {
  1998:     3579545,       /* master clock  */
  1999:     40,            /* volume        */
  2000:     0,             /* memory region (RAM based) */
  2001:     0x0800         /* memory length (not sure if correct) */
  2002: };
  2003: 
  2004: static void volume_callback(int v)
  2005: {
  2006: 	K007232_set_volume(0,0,(v >> 4) * 0x11,0);
  2007: 	K007232_set_volume(0,1,0,(v & 0x0f) * 0x11);
  2008: }
  2009: 
  2010: static struct K007232_interface k007232_interface =
  2011: {
  2012: 	1,		/* number of chips */
  2013: 	3579545,	/* clock */
  2014: 	{ REGION_SOUND2 },	/* memory regions */
  2015: 	{ K007232_VOL(10,MIXER_PAN_CENTER,10,MIXER_PAN_CENTER) },	/* volume */
  2016: 	{ volume_callback }	/* external port callback */
  2017: };
  2018: 
  2019: /******************************************************************************/
  2020: 
  2021: static MACHINE_DRIVER_START( nemesis )
  2022: 
  2023: 	/* basic machine hardware */
  2024: 	MDRV_CPU_ADD(M68000,18432000/2)         /* 9.216 MHz? */
  2025: //			14318180/2,	/* From schematics, should be accurate */
  2026: 	MDRV_CPU_MEMORY(readmem,writemem)
  2027: 	MDRV_CPU_VBLANK_INT(nemesis_interrupt,1)
  2028: 
  2029: 	MDRV_CPU_ADD(Z80,14318180/4)
  2030: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* From schematics, should be accurate */
  2031: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
  2032: 
  2033: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* ??? */
  2034: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2035: 
  2036: 	MDRV_MACHINE_INIT(nemesis)
  2037: 
  2038: 	/* video hardware */
  2039: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2040: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2041: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2042: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2043: 	MDRV_PALETTE_LENGTH(2048)
  2044: 
  2045: 	MDRV_VIDEO_START(nemesis)
  2046: 	MDRV_VIDEO_UPDATE(nemesis)
  2047: 
  2048: 	/* sound hardware */
  2049: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
  2050: 	MDRV_SOUND_ADD(K005289, k005289_interface)
  2051: 	MDRV_SOUND_ADD(VLM5030, gx400_vlm5030_interface)
  2052: MACHINE_DRIVER_END
  2053: 
  2054: 
  2055: static MACHINE_DRIVER_START( konamigt )
  2056: 
  2057: 	/* basic machine hardware */
  2058: 	MDRV_CPU_ADD(M68000,18432000/2)         /* 9.216 MHz? */
  2059: 	MDRV_CPU_MEMORY(konamigt_readmem,konamigt_writemem)
  2060: 	MDRV_CPU_VBLANK_INT(konamigt_interrupt,2)
  2061: 
  2062: 	MDRV_CPU_ADD(Z80,14318180/4)
  2063: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3.579545 MHz */
  2064: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
  2065: 
  2066: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2067: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2068: 
  2069: 	MDRV_MACHINE_INIT(nemesis)
  2070: 
  2071: 	/* video hardware */
  2072: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2073: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2074: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2075: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2076: 	MDRV_PALETTE_LENGTH(2048)
  2077: 
  2078: 	MDRV_VIDEO_START(nemesis)
  2079: 	MDRV_VIDEO_UPDATE(nemesis)
  2080: 
  2081: 	/* sound hardware */
  2082: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
  2083: 	MDRV_SOUND_ADD(K005289, k005289_interface)
  2084: MACHINE_DRIVER_END
  2085: 
  2086: 
  2087: static MACHINE_DRIVER_START( salamand )
  2088: 
  2089: 	/* basic machine hardware */
  2090: 	MDRV_CPU_ADD(M68000,18432000/2)       /* 9.216MHz */
  2091: 	MDRV_CPU_MEMORY(salamand_readmem,salamand_writemem)
  2092: 	MDRV_CPU_VBLANK_INT(salamand_interrupt,1)
  2093: 
  2094: 	MDRV_CPU_ADD(Z80, 3579545)
  2095: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3.579545 MHz */
  2096: 	MDRV_CPU_MEMORY(sal_sound_readmem,sal_sound_writemem)
  2097: 
  2098: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2099: 	MDRV_VBLANK_DURATION((264-256)*62.5)
  2100: 
  2101: 	MDRV_MACHINE_INIT(nemesis)
  2102: 
  2103: 	/* video hardware */
  2104: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK)
  2105: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2106: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2107: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2108: 	MDRV_PALETTE_LENGTH(2048)
  2109: 
  2110: 	MDRV_VIDEO_START(nemesis)
  2111: 	MDRV_VIDEO_UPDATE(salamand)
  2112: 
  2113: 	/* sound hardware */
  2114: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2115: 	MDRV_SOUND_ADD(VLM5030, vlm5030_interface)
  2116: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  2117: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2118: MACHINE_DRIVER_END
  2119: 
  2120: 
  2121: static MACHINE_DRIVER_START( blkpnthr )
  2122: 
  2123: 	/* basic machine hardware */
  2124: 	MDRV_CPU_ADD(M68000,18432000/2)         /* 9.216 MHz? */
  2125: 	MDRV_CPU_MEMORY(blkpnthr_readmem,blkpnthr_writemem)
  2126: 	MDRV_CPU_VBLANK_INT(blkpnthr_interrupt,1)
  2127: 
  2128: 	MDRV_CPU_ADD(Z80, 3579545)
  2129: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3.579545 MHz */
  2130: 	MDRV_CPU_MEMORY(sal_sound_readmem,sal_sound_writemem)
  2131: 
  2132: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2133: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2134: 
  2135: 	MDRV_MACHINE_INIT(nemesis)
  2136: 
  2137: 	/* video hardware */
  2138: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  2139: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2140: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2141: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2142: 	MDRV_PALETTE_LENGTH(2048)
  2143: 
  2144: 	MDRV_VIDEO_START(nemesis)
  2145: 	MDRV_VIDEO_UPDATE(salamand)
  2146: 
  2147: 	/* sound hardware */
  2148: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2149: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  2150: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2151: MACHINE_DRIVER_END
  2152: 
  2153: 
  2154: static MACHINE_DRIVER_START( citybomb )
  2155: 
  2156: 	/* basic machine hardware */
  2157: 	MDRV_CPU_ADD(M68000,18432000/2)         /* 9.216 MHz? */
  2158: 	MDRV_CPU_MEMORY(citybomb_readmem,citybomb_writemem)
  2159: 	MDRV_CPU_VBLANK_INT(salamand_interrupt,1)
  2160: 
  2161: 	MDRV_CPU_ADD(Z80, 3579545)
  2162: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3.579545 MHz */
  2163: 	MDRV_CPU_MEMORY(city_sound_readmem,city_sound_writemem)
  2164: 
  2165: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2166: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2167: 
  2168: 	MDRV_MACHINE_INIT(nemesis)
  2169: 
  2170: 	/* video hardware */
  2171: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  2172: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2173: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2174: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2175: 	MDRV_PALETTE_LENGTH(2048)
  2176: 
  2177: 	MDRV_VIDEO_START(nemesis)
  2178: 	MDRV_VIDEO_UPDATE(salamand)
  2179: 
  2180: 	/* sound hardware */
  2181: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2182: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  2183: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  2184: 	MDRV_SOUND_ADD(K051649, k051649_interface)
  2185: MACHINE_DRIVER_END
  2186: 
  2187: 
  2188: static MACHINE_DRIVER_START( nyanpani )
  2189: 
  2190: 	/* basic machine hardware */
  2191: 	MDRV_CPU_ADD(M68000,18432000/2)         /* 9.216 MHz? */
  2192: 	MDRV_CPU_MEMORY(nyanpani_readmem,nyanpani_writemem)
  2193: 	MDRV_CPU_VBLANK_INT(salamand_interrupt,1)
  2194: 
  2195: 	MDRV_CPU_ADD(Z80, 3579545)
  2196: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3.579545 MHz */
  2197: 	MDRV_CPU_MEMORY(city_sound_readmem,city_sound_writemem)
  2198: 
  2199: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2200: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2201: 
  2202: 	MDRV_MACHINE_INIT(nemesis)
  2203: 
  2204: 	/* video hardware */
  2205: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
  2206: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2207: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2208: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2209: 	MDRV_PALETTE_LENGTH(2048)
  2210: 
  2211: 	MDRV_VIDEO_START(nemesis)
  2212: 	MDRV_VIDEO_UPDATE(salamand)
  2213: 
  2214: 	/* sound hardware */
  2215: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2216: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  2217: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  2218: 	MDRV_SOUND_ADD(K051649, k051649_interface)
  2219: MACHINE_DRIVER_END
  2220: 
  2221: 
  2222: static MACHINE_DRIVER_START( gx400 )
  2223: 
  2224: 	/* basic machine hardware */
  2225: 	MDRV_CPU_ADD(M68000,18432000/2)     /* 9.216MHz */
  2226: 	MDRV_CPU_MEMORY(gx400_readmem,gx400_writemem)
  2227: 	MDRV_CPU_VBLANK_INT(gx400_interrupt,3)
  2228: 
  2229: 	MDRV_CPU_ADD(Z80,14318180/4)        /* 3.579545 MHz */
  2230: 	MDRV_CPU_MEMORY(gx400_sound_readmem,gx400_sound_writemem)
  2231: 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)	/* interrupts are triggered by the main CPU */
  2232: 
  2233: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2234: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2235: 
  2236: 	MDRV_MACHINE_INIT(nemesis)
  2237: 
  2238: 	/* video hardware */
  2239: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2240: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2241: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2242: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2243: 	MDRV_PALETTE_LENGTH(2048)
  2244: 
  2245: 	MDRV_VIDEO_START(nemesis)
  2246: 	MDRV_VIDEO_UPDATE(nemesis)
  2247: 
  2248: 	/* sound hardware */
  2249: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
  2250: 	MDRV_SOUND_ADD(K005289, k005289_interface)
  2251: 	MDRV_SOUND_ADD(VLM5030, gx400_vlm5030_interface)
  2252: MACHINE_DRIVER_END
  2253: 
  2254: 
  2255: static MACHINE_DRIVER_START( rf2_gx400 )
  2256: 
  2257: 	/* basic machine hardware */
  2258: 	MDRV_CPU_ADD(M68000,18432000/2)     /* 9.216MHz */
  2259: 	MDRV_CPU_MEMORY(rf2_gx400_readmem,rf2_gx400_writemem)
  2260: 	MDRV_CPU_VBLANK_INT(gx400_interrupt,3)
  2261: 
  2262: 	MDRV_CPU_ADD(Z80,14318180/4)
  2263: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3.579545 MHz */
  2264: 	MDRV_CPU_MEMORY(gx400_sound_readmem,gx400_sound_writemem)
  2265: 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)	/* interrupts are triggered by the main CPU */
  2266: 
  2267: 	MDRV_FRAMES_PER_SECOND((18432000.0/4)/(288*264))		/* 60.606060 Hz */
  2268: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2269: 
  2270: 	MDRV_MACHINE_INIT(nemesis)
  2271: 
  2272: 	/* video hardware */
  2273: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  2274: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  2275: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
  2276: 	MDRV_GFXDECODE(gfxdecodeinfo)
  2277: 	MDRV_PALETTE_LENGTH(2048)
  2278: 
  2279: 	MDRV_VIDEO_START(nemesis)
  2280: 	MDRV_VIDEO_UPDATE(nemesis)
  2281: 
  2282: 	/* sound hardware */
  2283: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
  2284: 	MDRV_SOUND_ADD(K005289, k005289_interface)
  2285: 	MDRV_SOUND_ADD(VLM5030, gx400_vlm5030_interface)
  2286: MACHINE_DRIVER_END
  2287: 
  2288: /***************************************************************************
  2289: 
  2290:   Game driver(s)
  2291: 
  2292: ***************************************************************************/
  2293: 
  2294: /* ROM names should be 456D01~456D08 */
  2295: ROM_START( nemesis )
  2296: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )    /* 4 * 64k for code and rom */
  2297: 	ROM_LOAD16_BYTE( "12a_01.bin",   0x00000, 0x8000, CRC(35ff1aaa) SHA1(2879a5d2ff7dca217fe5cd40be871878294c491f) )
  2298: 	ROM_LOAD16_BYTE( "12c_05.bin",   0x00001, 0x8000, CRC(23155faa) SHA1(08c73c669b3a5275353cbfcbe58ced92d93244a7) )
  2299: 	ROM_LOAD16_BYTE( "13a_02.bin",   0x10000, 0x8000, CRC(ac0cf163) SHA1(8b1a46c3ad102fe78cf099425e108d09dafd0955) )
  2300: 	ROM_LOAD16_BYTE( "13c_06.bin",   0x10001, 0x8000, CRC(023f22a9) SHA1(0b9096b9cfcc3ed273de04c93227ab24c63513e8) )
  2301: 	ROM_LOAD16_BYTE( "14a_03.bin",   0x20000, 0x8000, CRC(8cefb25f) SHA1(876b1974ca76ca89f8b8ea45b4ba9ec82d7c7228) )
  2302: 	ROM_LOAD16_BYTE( "14c_07.bin",   0x20001, 0x8000, CRC(d50b82cb) SHA1(71e9fbe51272788e2ef6f150c7bff59ac8c28f1d) )
  2303: 	ROM_LOAD16_BYTE( "15a_04.bin",   0x30000, 0x8000, CRC(9ca75592) SHA1(04388f2874faa54dd2cabfec4d6ce3e8d164cbcc) )
  2304: 	ROM_LOAD16_BYTE( "15c_08.bin",   0x30001, 0x8000, CRC(03c0b7f5) SHA1(4eb31bcbd2ee66afe4158308351a57589c5a1e4e) )
  2305: 
  2306: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2307: 	ROM_LOAD(      "09c_snd.bin",  0x00000, 0x4000, CRC(26bf9636) SHA1(009dcbf18ea6230fc75a72232bd4fc29ad28dbf0) )
  2308: 
  2309: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2310: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2311: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2312: ROM_END
  2313: 
  2314: /* ROM names should be 456E01~456E08 */
  2315: ROM_START( nemesuk )
  2316: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )    /* 4 * 64k for code and rom */
  2317: 	ROM_LOAD16_BYTE( "12a_01.uk",    0x00000, 0x8000, CRC(e1993f91) SHA1(6759bb9ba0ce28ad4d7f61b824a7d0fe43215bdc) )
  2318: 	ROM_LOAD16_BYTE( "12c_05.uk",    0x00001, 0x8000, CRC(c9761c78) SHA1(bfd63517efa820a05a0d9a908dd0917cd0d01b77) )
  2319: 	ROM_LOAD16_BYTE( "13a_02.uk",    0x10000, 0x8000, CRC(f6169c4b) SHA1(047a204fbcf8c24eca2db7197d4297e5a28c2b42) )
  2320: 	ROM_LOAD16_BYTE( "13c_06.uk",    0x10001, 0x8000, CRC(af58c548) SHA1(a15725c14b6e7840c84ab2bd4cf3668bbaf35abf) )
  2321: 	ROM_LOAD16_BYTE( "14a_03.bin",   0x20000, 0x8000, CRC(8cefb25f) SHA1(876b1974ca76ca89f8b8ea45b4ba9ec82d7c7228) )
  2322: 	ROM_LOAD16_BYTE( "14c_07.bin",   0x20001, 0x8000, CRC(d50b82cb) SHA1(71e9fbe51272788e2ef6f150c7bff59ac8c28f1d) )
  2323: 	ROM_LOAD16_BYTE( "15a_04.uk",    0x30000, 0x8000, CRC(322423d0) SHA1(6106b607132a09193353f339d06032a13b1e3de8) )
  2324: 	ROM_LOAD16_BYTE( "15c_08.uk",    0x30001, 0x8000, CRC(eb656266) SHA1(2f4abea282d30775f7a25747eb41bfd8d5299967) )
  2325: 
  2326: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2327: 	ROM_LOAD(      "09c_snd.bin",  0x00000, 0x4000, CRC(26bf9636) SHA1(009dcbf18ea6230fc75a72232bd4fc29ad28dbf0) )
  2328: 
  2329: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2330: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2331: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2332: ROM_END
  2333: 
  2334: ROM_START( konamigt )
  2335: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )    /* 4 * 64k for code and rom */
  2336: 	ROM_LOAD16_BYTE( "c01.rom",      0x00000, 0x8000, CRC(56245bfd) SHA1(12579ae0031c172d42b766f5a801ef479148105e) )
  2337: 	ROM_LOAD16_BYTE( "c05.rom",      0x00001, 0x8000, CRC(8d651f44) SHA1(0d057ce063dd19c0a708cffa413511b367206682) )
  2338: 	ROM_LOAD16_BYTE( "c02.rom",      0x10000, 0x8000, CRC(3407b7cb) SHA1(1df834a47e3b4cabc79ece4cd90e05e5df68df9a) )
  2339: 	ROM_LOAD16_BYTE( "c06.rom",      0x10001, 0x8000, CRC(209942d4) SHA1(953321eeed88086dee3a9f8cd596191f19260b3a) )
  2340: 	ROM_LOAD16_BYTE( "b03.rom",      0x20000, 0x8000, CRC(aef7df48) SHA1(04d3e79e8fa0e332d92738094933069bcdbdfeab) )
  2341: 	ROM_LOAD16_BYTE( "b07.rom",      0x20001, 0x8000, CRC(e9bd6250) SHA1(507b72c7e5f8fb7b6feb357ec522e814e25f2cc1) )
  2342: 	ROM_LOAD16_BYTE( "b04.rom",      0x30000, 0x8000, CRC(94bd4bd7) SHA1(314b537ba97dec1a91dcfc5deeb1dd9f7bb4a930) )
  2343: 	ROM_LOAD16_BYTE( "b08.rom",      0x30001, 0x8000, CRC(b7236567) SHA1(7626d70262a0acff36357877a5e7c9ed3f45415e) )
  2344: 
  2345: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2346: 	ROM_LOAD(       "b09.rom",      0x00000, 0x4000, CRC(539d0c49) SHA1(4c16b07fbd876b6445fc0ec49c3ad5ab1a92cbf6) )
  2347: 
  2348: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2349: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2350: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2351: ROM_END
  2352: 
  2353: ROM_START( rf2 )
  2354: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )    /* 5 * 64k for code and rom */
  2355: 	ROM_LOAD16_BYTE( "400-a06.15l",  0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) )
  2356: 	ROM_LOAD16_BYTE( "400-a04.10l",  0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) )
  2357: 	ROM_LOAD16_BYTE( "561-a07.17l",  0x80000, 0x20000, CRC(ed6e7098) SHA1(a28f2846b091b5bc333088054451d7b6d7f6458e) )
  2358: 	ROM_LOAD16_BYTE( "561-a05.12l",  0x80001, 0x20000, CRC(dfe04425) SHA1(0817992aeeba140feba1417c265b794f096936d9) )
  2359: 
  2360: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2361: 	ROM_LOAD(      "400-e03.5l",   0x00000, 0x02000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) )
  2362: 
  2363: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2364: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2365: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2366: ROM_END
  2367: 
  2368: ROM_START( twinbee )
  2369: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )    /* 5 * 64k for code and rom */
  2370: 	ROM_LOAD16_BYTE( "400-a06.15l",  0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) )
  2371: 	ROM_LOAD16_BYTE( "400-a04.10l",  0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) )
  2372: 	ROM_LOAD16_BYTE( "412-a07.17l",  0x80000, 0x20000, CRC(d93c5499) SHA1(4555b9232ce86192360ea5b5092643ff51446aa0) )
  2373: 	ROM_LOAD16_BYTE( "412-a05.12l",  0x80001, 0x20000, CRC(2b357069) SHA1(409cf3aa174f5d7dc5efc8b8b1c925fcb677fc98) )
  2374: 
  2375: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2376: 	ROM_LOAD(      "400-e03.5l",   0x00000, 0x02000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) )
  2377: 
  2378: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2379: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2380: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2381: ROM_END
  2382: 
  2383: ROM_START( gradius )
  2384: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )    /* 5 * 64k for code and rom */
  2385: 	ROM_LOAD16_BYTE( "400-a06.15l",  0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) )
  2386: 	ROM_LOAD16_BYTE( "400-a04.10l",  0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) )
  2387: 	ROM_LOAD16_BYTE( "456-a07.17l",  0x80000, 0x20000, CRC(92df792c) SHA1(aec916f70af92a2d6476d7a36ba9be265890f9aa) )
  2388: 	ROM_LOAD16_BYTE( "456-a05.12l",  0x80001, 0x20000, CRC(5cafb263) SHA1(7cd12c695ec6ef4d5785ce218911961fc3528e95) )
  2389: 
  2390: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2391: 	ROM_LOAD(      "400-e03.5l",   0x00000, 0x2000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) )
  2392: 
  2393: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2394: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2395: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2396: ROM_END
  2397: 
  2398: ROM_START( gwarrior )
  2399: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )    /* 5 * 64k for code and rom */
  2400: 	ROM_LOAD16_BYTE( "400-a06.15l",  0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) )
  2401: 	ROM_LOAD16_BYTE( "400-a04.10l",  0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) )
  2402: 	ROM_LOAD16_BYTE( "578-a07.17l",  0x80000, 0x20000, CRC(0aedacb5) SHA1(bf8e4b443df37e021a86e1fe76683113977a1a76) )
  2403: 	ROM_LOAD16_BYTE( "578-a05.12l",  0x80001, 0x20000, CRC(76240e2e) SHA1(3f4086972fa655704ec6480fa3012c3e8999d8ab) )
  2404: 
  2405: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2406: 	ROM_LOAD(      "400-e03.5l",   0x00000, 0x02000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) )
  2407: 
  2408: 	ROM_REGION( 0x0200,  REGION_SOUND1, 0 )      /* 2x 256 byte for 0005289 wavetable data */
  2409: 	ROM_LOAD(      "400-a01.fse",  0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
  2410: 	ROM_LOAD(      "400-a02.fse",  0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
  2411: ROM_END
  2412: 
  2413: ROM_START( salamand )
  2414: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )    /* 64k for code */
  2415: 	ROM_LOAD16_BYTE( "18b.bin",      0x00000, 0x10000, CRC(a42297f9) SHA1(7c974779e438eae649b39b36f6f6d24847099a6e) )
  2416: 	ROM_LOAD16_BYTE( "18c.bin",      0x00001, 0x10000, CRC(f9130b0a) SHA1(925ea65c13fc87fc59f893cc0ead2c82fd0bed6f) )
  2417: 	ROM_LOAD16_BYTE( "17b.bin",      0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
  2418: 	ROM_LOAD16_BYTE( "17c.bin",      0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
  2419: 
  2420: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2421: 	ROM_LOAD(      "11j.bin",      0x00000, 0x08000, CRC(5020972c) SHA1(04c752c3b7fd850a8a51ecd230b39e6edde9dd7e) )
  2422: 
  2423: 	ROM_REGION( 0x04000, REGION_SOUND1, 0 )    /* VLM5030 data? */
  2424: 	ROM_LOAD(      "8g.bin",       0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) )
  2425: 
  2426: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )    /* 007232 data */
  2427: 	ROM_LOAD(      "10a.bin",      0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
  2428: ROM_END
  2429: 
  2430: ROM_START( salamanj )
  2431: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )    /* 64k for code */
  2432: 	ROM_LOAD16_BYTE( "587j02.18b",   0x00000, 0x10000, CRC(f68ee99a) SHA1(aec1f4720abe2529120ae711daa9e7e7d966b351) )
  2433: 	ROM_LOAD16_BYTE( "587j05.18c",   0x00001, 0x10000, CRC(72c16128) SHA1(6921445caa0b1121e483c9c62c17aad8aa42cc18) )
  2434: 	ROM_LOAD16_BYTE( "17b.bin",      0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
  2435: 	ROM_LOAD16_BYTE( "17c.bin",      0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
  2436: 
  2437: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2438: 	ROM_LOAD(      "11j.bin",      0x00000, 0x08000, CRC(5020972c) SHA1(04c752c3b7fd850a8a51ecd230b39e6edde9dd7e) )
  2439: 
  2440: 	ROM_REGION( 0x04000, REGION_SOUND1, 0 )    /* VLM5030 data? */
  2441: 	ROM_LOAD(      "8g.bin",       0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) )
  2442: 
  2443: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )    /* 007232 data */
  2444: 	ROM_LOAD(      "10a.bin",      0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
  2445: ROM_END
  2446: 
  2447: ROM_START( lifefrce )
  2448: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )    /* 64k for code */
  2449: 	ROM_LOAD16_BYTE( "587-k02.bin",  0x00000, 0x10000, CRC(4a44da18) SHA1(8e76bc2b9c48bfc65664fb6ee4d1d33622ee1eb8) )
  2450: 	ROM_LOAD16_BYTE( "587-k05.bin",  0x00001, 0x10000, CRC(2f8c1cbd) SHA1(aa309d509be69f315e50047abff42d9b30334e1d) )
  2451: 	ROM_LOAD16_BYTE( "17b.bin",      0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
  2452: 	ROM_LOAD16_BYTE( "17c.bin",      0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
  2453: 
  2454: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2455: 	ROM_LOAD(      "587-k09.bin",  0x00000, 0x08000, CRC(2255fe8c) SHA1(6ee35575a15f593642b29020857ec466094ef495) )
  2456: 
  2457: 	ROM_REGION( 0x04000, REGION_SOUND1, 0 )    /* VLM5030 data? */
  2458: 	ROM_LOAD(      "587-k08.bin",  0x00000, 0x04000, CRC(7f0e9b41) SHA1(c9fc2723fac55691dfbb4cf9b3c472a42efa97c9) )
  2459: 
  2460: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )    /* 007232 data */
  2461: 	ROM_LOAD(      "10a.bin",      0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
  2462: ROM_END
  2463: 
  2464: ROM_START( lifefrcj )
  2465: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )    /* 64k for code */
  2466: 	ROM_LOAD16_BYTE( "587-n02.bin",  0x00000, 0x10000, CRC(235dba71) SHA1(f3a0092a7d002436253054953e36d0865ce95b80) )
  2467: 	ROM_LOAD16_BYTE( "587-n05.bin",  0x00001, 0x10000, CRC(054e569f) SHA1(e810f7e3e762875e2e71e4356997257e1bbe0da1) )
  2468: 	ROM_LOAD16_BYTE( "587-n03.bin",  0x40000, 0x20000, CRC(9041f850) SHA1(d62b8c3132916a4053cb282448b2404ac0143e01) )
  2469: 	ROM_LOAD16_BYTE( "587-n06.bin",  0x40001, 0x20000, CRC(fba8b6aa) SHA1(5ef861b89b7a89c9d70355e09621b106baa5c1e7) )
  2470: 
  2471: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2472: 	ROM_LOAD(      "587-n09.bin",  0x00000, 0x08000, CRC(e8496150) SHA1(c7d40b6dc56849dfd8d080f1aaebad36c88d93df) )
  2473: 
  2474: 	ROM_REGION( 0x04000, REGION_SOUND1, 0 )    /* VLM5030 data? */
  2475: 	ROM_LOAD(      "587-k08.bin",  0x00000, 0x04000, CRC(7f0e9b41) SHA1(c9fc2723fac55691dfbb4cf9b3c472a42efa97c9) )
  2476: 
  2477: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )    /* 007232 data */
  2478: 	ROM_LOAD(      "10a.bin",      0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
  2479: ROM_END
  2480: 
  2481: ROM_START( blkpnthr )
  2482: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )    /* 64k for code */
  2483: 	ROM_LOAD16_BYTE( "604f02.18b",   0x00000, 0x10000, CRC(487bf8da) SHA1(43b01599a1e3f82972d597a7a92bdd4ce1343847) )
  2484: 	ROM_LOAD16_BYTE( "604f05.18c",   0x00001, 0x10000, CRC(b08f8ca2) SHA1(ca3b17709a86abdcfa0034ccb4ff8d0afc84558f) )
  2485: 	ROM_LOAD16_BYTE( "604c03.17b",   0x40000, 0x20000, CRC(815bc3b0) SHA1(ee643b9af5906d12b1d621996503c2e28d93a207) )
  2486: 	ROM_LOAD16_BYTE( "604c06.17c",   0x40001, 0x20000, CRC(4af6bf7f) SHA1(bf6d128670dda1f30cbf72cb82b61bf6ddfcde60) )
  2487: 
  2488: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2489: 	ROM_LOAD(      "604a08.11j",   0x00000, 0x08000, CRC(aff88a2b) SHA1(7080add63deab5755606759a218dea9105df4819) )
  2490: 
  2491: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )    /* 007232 data */
  2492: 	ROM_LOAD(      "604a01.10a",   0x00000, 0x20000, CRC(eceb64a6) SHA1(028157d336770fe4ca17c24476d62a790255898a) )
  2493: ROM_END
  2494: 
  2495: ROM_START( citybomb )
  2496: 	ROM_REGION( 0x1c0000, REGION_CPU1, 0 )    /* 64k for code */
  2497: 	ROM_LOAD16_BYTE( "g10.rom",      0x000000, 0x10000, CRC(26207530) SHA1(ccb5e4ca472aad11cf308973d6a020d3af22a134) )
  2498: 	ROM_LOAD16_BYTE( "g09.rom",      0x000001, 0x10000, CRC(ce7de262) SHA1(73ab58c057113ffffb633c314fa383e65236d423) )
  2499: 	ROM_LOAD16_BYTE( "787g08.15f",   0x100000, 0x20000, CRC(6242ef35) SHA1(16fd4478d54117bbf09792e22c786622ca5049bb) )
  2500: 	ROM_LOAD16_BYTE( "787g07.15d",   0x100001, 0x20000, CRC(21be5e9e) SHA1(37fdf6d6fe3e84e897f2d908afdfc47e8d4a9265) )
  2501: 	ROM_LOAD16_BYTE( "787e06.14f",   0x140000, 0x20000, CRC(c251154a) SHA1(7c6a1f862ddf64a604164b85e4a04bb01e2966a7) )
  2502: 	ROM_LOAD16_BYTE( "787e05.14d",   0x140001, 0x20000, CRC(0781e22d) SHA1(03a998ee47194960af4dde2bf553359fe8a3aee7) )
  2503: 	ROM_LOAD16_BYTE( "787g04.13f",   0x180000, 0x20000, CRC(137cf39f) SHA1(39cfd25c45d824cabc3641fd39eb77c98d32ec9b) )
  2504: 	ROM_LOAD16_BYTE( "787g03.13d",   0x180001, 0x20000, CRC(0cc704dc) SHA1(b0c3991393cdb6a75461597d51452bfa08955081) )
  2505: 
  2506: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2507: 	ROM_LOAD(      "787e02.4h",   0x00000, 0x08000, CRC(f4591e46) SHA1(c17c1a24bf1866fbba388521a4b7ea0975bda587) )
  2508: 
  2509: 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )    /* 007232 data */
  2510: 	ROM_LOAD(      "787e01.1k",   0x00000, 0x80000, CRC(edc34d01) SHA1(b1465d1a7364a7cebc14b96cd01dc78e57975972) )
  2511: ROM_END
  2512: 
  2513: ROM_START( citybmrj )
  2514: 	ROM_REGION( 0x1c0000, REGION_CPU1, 0 )    /* 64k for code */
  2515: 	ROM_LOAD16_BYTE( "787h10.15k",   0x000000, 0x10000, CRC(66fecf69) SHA1(5881ec019ef6228a693af5c9f6c26e05bdee3846) )
  2516: 	ROM_LOAD16_BYTE( "787h09.15h",   0x000001, 0x10000, CRC(a0e29468) SHA1(78971da14a748ade6ea94770080a393c7617b97d) )
  2517: 	ROM_LOAD16_BYTE( "787g08.15f",   0x100000, 0x20000, CRC(6242ef35) SHA1(16fd4478d54117bbf09792e22c786622ca5049bb) )
  2518: 	ROM_LOAD16_BYTE( "787g07.15d",   0x100001, 0x20000, CRC(21be5e9e) SHA1(37fdf6d6fe3e84e897f2d908afdfc47e8d4a9265) )
  2519: 	ROM_LOAD16_BYTE( "787e06.14f",   0x140000, 0x20000, CRC(c251154a) SHA1(7c6a1f862ddf64a604164b85e4a04bb01e2966a7) )
  2520: 	ROM_LOAD16_BYTE( "787e05.14d",   0x140001, 0x20000, CRC(0781e22d) SHA1(03a998ee47194960af4dde2bf553359fe8a3aee7) )
  2521: 	ROM_LOAD16_BYTE( "787g04.13f",   0x180000, 0x20000, CRC(137cf39f) SHA1(39cfd25c45d824cabc3641fd39eb77c98d32ec9b) )
  2522: 	ROM_LOAD16_BYTE( "787g03.13d",   0x180001, 0x20000, CRC(0cc704dc) SHA1(b0c3991393cdb6a75461597d51452bfa08955081) )
  2523: 
  2524: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2525: 	ROM_LOAD(      "787e02.4h",   0x00000, 0x08000, CRC(f4591e46) SHA1(c17c1a24bf1866fbba388521a4b7ea0975bda587) )
  2526: 
  2527: 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )    /* 007232 data */
  2528: 	ROM_LOAD(      "787e01.1k",   0x00000, 0x80000, CRC(edc34d01) SHA1(b1465d1a7364a7cebc14b96cd01dc78e57975972) )
  2529: ROM_END
  2530: 
  2531: ROM_START( kittenk )
  2532: 	ROM_REGION( 0x140000, REGION_CPU1, 0 )    /* 64k for code */
  2533: 	ROM_LOAD16_BYTE( "kitten.15k",   0x000000, 0x10000, CRC(8267cb2b) SHA1(63c4ebef834850eff379141b8eb0fafbdcf26d0e) )
  2534: 	ROM_LOAD16_BYTE( "kitten.15h",   0x000001, 0x10000, CRC(eb41cfa5) SHA1(d481e63faea098625a42613c13f82fec310a7c62) )
  2535: 	ROM_LOAD16_BYTE( "712b08.15f",   0x100000, 0x20000, CRC(e6d71611) SHA1(89fced4074c491c211fea908f08be94595c57f31) )
  2536: 	ROM_LOAD16_BYTE( "712b07.15d",   0x100001, 0x20000, CRC(30f75c9f) SHA1(0cbc247ff37800dd3275d2ff23a63ed19ec4cef2) )
  2537: 
  2538: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2539: 	ROM_LOAD(      "712e02.4h",   0x00000, 0x08000, CRC(ba76f310) SHA1(cc2164a9617493d1b3b8ac67430f9eb26fd987d2) )
  2540: 
  2541: 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )    /* 007232 data */
  2542: 	ROM_LOAD(      "712b01.1k",   0x00000, 0x80000, CRC(f65b5d95) SHA1(12701be68629844720cd16af857ce38ef06af61c) )
  2543: ROM_END
  2544: 
  2545: ROM_START( nyanpani )
  2546: 	ROM_REGION( 0x140000, REGION_CPU1, 0 )    /* 64k for code */
  2547: 	ROM_LOAD16_BYTE( "712j10.15k",   0x000000, 0x10000, CRC(924b27ec) SHA1(019279349b1be45ba46e57ef8f21d79a1b115d7b) )
  2548: 	ROM_LOAD16_BYTE( "712j09.15h",   0x000001, 0x10000, CRC(a9862ea1) SHA1(84e481eb6159889d54d0dfe4c31399ab06e13bb7) )
  2549: 	ROM_LOAD16_BYTE( "712b08.15f",   0x100000, 0x20000, CRC(e6d71611) SHA1(89fced4074c491c211fea908f08be94595c57f31) )
  2550: 	ROM_LOAD16_BYTE( "712b07.15d",   0x100001, 0x20000, CRC(30f75c9f) SHA1(0cbc247ff37800dd3275d2ff23a63ed19ec4cef2) )
  2551: 
  2552: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )    /* 64k for sound */
  2553: 	ROM_LOAD(      "712e02.4h",   0x00000, 0x08000, CRC(ba76f310) SHA1(cc2164a9617493d1b3b8ac67430f9eb26fd987d2) )
  2554: 
  2555: 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )    /* 007232 data */
  2556: 	ROM_LOAD(      "712b01.1k",   0x00000, 0x80000, CRC(f65b5d95) SHA1(12701be68629844720cd16af857ce38ef06af61c) )
  2557: ROM_END
  2558: 
  2559: 
  2560: 
  2561: GAME( 1985, nemesis,  0,        nemesis,       nemesis,  0, ROT0,   "Konami", "Nemesis" )
  2562: GAME( 1985, nemesuk,  nemesis,  nemesis,       nemesuk,  0, ROT0,   "Konami", "Nemesis (World?)" )
  2563: GAME( 1985, konamigt, 0,        konamigt,      konamigt, 0, ROT0,   "Konami", "Konami GT" )
  2564: GAME( 1985, rf2,      konamigt, rf2_gx400,     rf2,      0, ROT0,   "Konami", "Konami RF2 - Red Fighter" )
  2565: GAME( 1985, twinbee,  0,        gx400,         twinbee,  0, ROT90,  "Konami", "TwinBee" )
  2566: GAME( 1985, gradius,  nemesis,  gx400,         gradius,  0, ROT0,   "Konami", "Gradius" )
  2567: GAME( 1985, gwarrior, 0,        gx400,         gwarrior, 0, ROT0,   "Konami", "Galactic Warriors" )
  2568: GAMEX(1986, salamand, 0,        salamand,      salamand, 0, ROT0,   "Konami", "Salamander (version D)", GAME_NO_COCKTAIL )
  2569: GAMEX(1986, salamanj, salamand, salamand,      salamand, 0, ROT0,   "Konami", "Salamander (version J)", GAME_NO_COCKTAIL )
  2570: GAMEX(1986, lifefrce, salamand, salamand,      salamand, 0, ROT0,   "Konami", "Lifeforce (US)", GAME_NO_COCKTAIL )
  2571: GAMEX(1986, lifefrcj, salamand, salamand,      lifefrcj, 0, ROT0,   "Konami", "Lifeforce (Japan)", GAME_NO_COCKTAIL )
  2572: GAMEX(1987, blkpnthr, 0,        blkpnthr,      blkpnthr, 0, ROT0,   "Konami", "Black Panther", GAME_NO_COCKTAIL )
  2573: GAMEX(1987, citybomb, 0,        citybomb,      citybomb, 0, ROT270, "Konami", "City Bomber (World)", GAME_NO_COCKTAIL )
  2574: GAMEX(1987, citybmrj, citybomb, citybomb,      citybomb, 0, ROT270, "Konami", "City Bomber (Japan)", GAME_NO_COCKTAIL )
  2575: GAMEX(1988, kittenk,  0,        nyanpani,      nyanpani, 0, ROT0,   "Konami", "Kitten Kaboodle", GAME_NO_COCKTAIL )
  2576: GAMEX(1988, nyanpani, kittenk,  nyanpani,      nyanpani, 0, ROT0,   "Konami", "Nyan Nyan Panic (Japan)", GAME_NO_COCKTAIL )
  2577: 




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