Beispiel #1
0
        return 0xd7;		/* RST 10h */
    else
        return 0xcf;		/* RST 08h */
}

/* Handler called by the YM2203 emulator when the internal timers cause an IRQ */
static void irqhandler(int irq)
{
    cpu_set_irq_line(1, 0, irq ? ASSERT_LINE : CLEAR_LINE);
}

static struct YM2203interface argus_ym2203_interface =
{
    1,				/* 1 chip  */
    6000000 / 4, 	/* 1.5 MHz */
    { YM2203_VOL(50,15) },
    { 0 },
    { 0 },
    { 0 },
    { 0 },
    { irqhandler }
};

static struct YM2203interface valtric_ym2203_interface =
{
    2,				/* 2 chips */
    6000000 / 4, 	/* 1.5 MHz */
    { YM2203_VOL(50,15), YM2203_VOL(50,15) },
    { 0 },
    { 0 },
    { 0 },
Beispiel #2
0
	{ REGION_GFX3, 0, &tiles,     512, 16 },
	{ -1 } /* end of array */
};

/******************************************************************************/

static void sound_irq(int linestate)
{
	cpu_set_irq_line(1,0,linestate); /* IRQ */
}

static struct YM2203interface ym2203_interface =
{
	1,
	1500000, /* Should be accurate */
	{ YM2203_VOL(50,90) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};

static struct YM3812interface ym3812_interface =
{
	1,			/* 1 chip */
	3000000,	/* 3.000000 MHz (Should be accurate) */
	{ 45 },
	{ sound_irq },
};

static struct OKIM6295interface okim6295_interface =
Beispiel #3
0
};

static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &charlayout,     0, 16 },	/* colors 0-255 */
	{ REGION_GFX2, 0, &spritelayout, 256, 16 },	/* colors 256-511 */
	{ -1 } /* end of array */
};



static struct YM2203interface ym2203_interface =
{
	1,			/* 1 chip */
	1500000,	/* 1.5 MHz ?????? */
	{ YM2203_VOL(25,25) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver_gundealr =
{
	/* basic machine hardware */
	{
		{
			CPU_Z80,
			8000000,	/* 8 Mhz ??? */
Beispiel #4
0
		0,
		FMGEN2608_sh_reset
	},
#endif
#endif
#endif	/* forQUASI88 */

};

#if 1	/* forQUASI88 */

static struct YM2203interface ym2203_interface =
{
	1,						/* num				1 chips			*/
	4000000,				/* baseclock		4.0 MHz			*/
	{ YM2203_VOL(10,15) },	/* mixing_level[]	FMVol, SSGVol	*//*OverWrite*/
	{ 0 },					/* portA read handler				*/
	{ 0 },					/* portB read handler				*/
	{ 0 },					/* portA write handler				*/
	{ 0 },					/* portB write handler				*/
	{ 0 }					/* IRQ handler						*/
};
static struct MachineSound pc88_sound_interface =
{
	SOUND_YM2203,
	&ym2203_interface,
	NULL
};
#ifdef	USE_FMGEN
static struct MachineSound pc88_fmgen_interface =
{
Beispiel #5
0
	16*8
};

static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &charlayout,   0, 16 },
	{ -1 } /* end of array */
};



static struct YM2203interface ym2203_interface =
{
	1,			/* 1 chip */
	3000000,	/* 3 MHz ??? */
	{ YM2203_VOL(40,40) },
	{ input_port_3_r },
	{ input_port_4_r },
	{ 0 },
	{ 0 }
};



#define MACHINEDRIVER(NAME) 														\
static struct MachineDriver machine_driver_##NAME = 								\
{																					\
	{																				\
		{																			\
			CPU_Z80,																\
			6000000,		/* 6 MHz??? */											\
Beispiel #6
0
};

static struct GfxDecodeInfo quizdna_gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0x0000, &fglayout,  0x7e0,  16 },
	{ REGION_GFX2, 0x0000, &bglayout,  0x000, 128 },
	{ REGION_GFX3, 0x0000, &objlayout, 0x600,  32 },
	{ -1 } /* end of array */
};


static struct YM2203interface ym2203_interface =
{
	1,
	MCLK/4,  /* 4.000 MHz */
	{ YM2203_VOL(40,10) },
	{ input_port_1_r },
	{ input_port_0_r },
	{ 0 },
	{ 0 }
};

static struct OKIM6295interface okim6295_interface =
{
	1,
	{ MCLK/1024 },	/* 15.625KHz */
	{ REGION_SOUND1 },
	{ 30 }
};

Beispiel #7
0
    { REGION_GFX1, 0x0000, &sprite_layout,  0, 8 },
    { -1 }
};



static void irqhandler(int irq)
{
    cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
}

static struct YM2203interface ym2203_interface =
{
    2,          /* 2 chips */
    4000000,    /* 4 MHz ? (hand tuned) */
    { YM2203_VOL(40,15), YM2203_VOL(40,15) },
    { 0 },
    { 0 },
    { 0 },
    { 0 },
    { irqhandler }
};



static struct MachineDriver machine_driver_lkage =
{
    {
        {
            CPU_Z80 | CPU_16BIT_PORT,
            6000000,	/* ??? */
Beispiel #8
0
	{ REGION_GFX2, 0, &turtship_tilelayout,   0, 32 },	/* colors   0-511 */
	{ REGION_GFX3, 0, &spritelayout,        512, 16 },	/* colors 512-767 */
	{ -1 } /* end of array */
};

/* handler called by the 2203 emulator when the internal timers cause an IRQ */
static void irqhandler(int irq)
{
	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
}

static struct YM2203interface ym2203_interface =
{
	2,                      /* 2 chips */
	4000000,        /* 4 MHz ? (hand tuned) */
	{ YM2203_VOL(15,25), YM2203_VOL(15,25) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 },
	{ irqhandler }
};



static struct MachineDriver machine_driver_sidearms =
{
	/* basic machine hardware */
	{
		{
			CPU_Z80,
Beispiel #9
0

static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &charlayout,   448, 16 }, /* colors 448 - 511 */
	{ REGION_GFX2, 0, &tilelayout,   128,  8 }, /* colors 128 - 255 */
	{ REGION_GFX3, 0, &spritelayout, 256,  8 }, /* colors 256 - 383 */
	{ -1 } /* end of array */
};


static struct YM2203interface ym2203_interface =
{
	2,                      /* 2 chips */
	4000000,        /* 4.0 MHz (? hand tuned to match the real board) */
	{ YM2203_VOL(60,20), YM2203_VOL(60,20) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver_srumbler =
{
	/* basic machine hardware */
	{
		{
			CPU_M6809,
			1500000,        /* 1.5 Mhz (?) */
Beispiel #10
0
	return cmd_latch;
}

static struct OKIM6295interface okim6295_intf_8kHz =
{
	1,
	{ 8000 },           /* ? */
	{ RGN_SAMP1 },
	{ 100 }
};

static struct YM2203interface ym2203_intf_4MHz =
{
	1,
	4000000,	/* ? */
	{ YM2203_VOL(50,15) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 },
	{ YM_IRQHandler }
};

static struct YM2203interface ym2203_maz_intf_4MHz =
{
	1,
	4000000,	/* ? */
	{ YM2203_VOL(50,15) },
	{ 0 },
	{ 0 },
	{ 0 },



static struct YM3526interface ym3526_interface =
{
	1,			/* 1 chip (no more supported) */
	4000000,	/* 4 MHz ? (hand tuned) */
	{ 255 }		/* (not supported) */
};

static struct YM2203interface ym2203_interface =
{
	1,			/* 1 chip */
	3000000,	/* 3 MHz ???? */
	{ YM2203_VOL(40,20), YM2203_VOL(40,20) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};

static struct DACinterface dac_interface =
{
	2,	/* 2 channels */
	{ 50, 50 }
};


static struct MachineDriver machine_driver_ym3526 =
{
Beispiel #12
0
	{ REGION_GFX4, 0, &robokid_spritelayout,    32*16, 16},
	{ REGION_GFX4, 0, &robokid_bigspritelayout, 32*16, 16},
	{ REGION_GFX5, 0, &omegaf_charlayout,       48*16, 16},
	{ -1} /* end of array */
};


/**************************************************************************
  Machine drivers
**************************************************************************/

static struct YM2203interface ym2203_interface =
{
	2,	 /* 2 chips */
	12000000/8,
	{ YM2203_VOL(35, 35), YM2203_VOL(35, 35)},
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};

static struct MachineDriver machine_driver_omegaf =
{
	{
		{
			CPU_Z80,
			12000000/2,		/* 12000000/2 ??? */
			omegaf_readmem, omegaf_writemem, 0, 0,	/* very sensitive to these settings */
			omegaf_interrupt, 1
		},
Beispiel #13
0
/***************************************************************************

								Machine Drivers

***************************************************************************/

static void irqhandler(int irq)
{
	cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
}

static struct YM2203interface thedeep_ym2203_intf =
{
	1,
	3000000,	/* ? */
	{ YM2203_VOL(100,100) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 },
	{ irqhandler }
};

static INTERRUPT_GEN( thedeep_interrupt )
{
	if (cpu_getiloops())
	{
		if (protection_command != 0x59)
		{
			int coins = readinputport(4);
			if		(coins & 1)	protection_data = 1;
Beispiel #14
0
								Machine Drivers


***************************************************************************/

static void soundirq(int state)
{
	cpunum_set_input_line(1, 0, state);
}

static struct YM2203interface fuuki16_ym2203_intf =
{
	1,
	4000000,		/* ? */
	{ YM2203_VOL(15,15) },
	{ 0 },			/* Port A Read  */
	{ 0 },			/* Port B Read  */
	{ 0 },			/* Port A Write */
	{ 0 },			/* Port B Write */
	{ 0 }			/* IRQ handler  */
};

static struct YM3812interface fuuki16_ym3812_intf =
{
	1,
	4000000,		/* ? */
	{ 30 },
	{ soundirq },	/* IRQ Line */
};
Beispiel #15
0
	{ -1 } /* end of array */
};



/* handler called by the 2203 emulator when the internal timers cause an IRQ */
static void irqhandler(int irq)
{
	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
}

static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	3579545,	/* 3.579 MHz ? (hand tuned) */
	{ YM2203_VOL(15,15), YM2203_VOL(15,15) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 },
	{ irqhandler }
};



static struct MachineDriver machine_driver_blktiger =
{
	/* basic machine hardware */
	{
		{
			CPU_Z80,
{
	{ REGION_GFX1, 0, &gfxlayout, 0, 8*16 },
	{ -1 } /* end of array */
};

/***************************************************************************

	Machine Driver

***************************************************************************/

static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	3000000,	/* 24MHz/8? */
	{ YM2203_VOL(80,40), YM2203_VOL(80,40) },
	{ input_port_0_r },
	{ input_port_1_r, input_port_2_r },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver_labyrunr =
{
	/* basic machine hardware */
	{
		{
			CPU_HD6309,
			3000000,		/* 24MHz/8? */
Beispiel #17
0
	{ REGION_GFX2, 0x19000, &tilelayout2,  0x80, 16 },
	{ REGION_GFX3, 0x00000, &spritelayout, 0x40,  8 },	/* use colors 0x40-0x7f */
	{ -1 } /* end of array */
};

/* handler called by the 3812 emulator when the internal timers cause an IRQ */
static void irqhandler(int linestate)
{
	cpu_set_irq_line(1,M6809_IRQ_LINE,linestate);
}

static struct YM2203interface ym2203_interface =
{
	1,
	1500000,	/* Unknown */
	{ YM2203_VOL(50,10) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};

static struct YM3526interface ym3526_interface =
{
	1,			/* 1 chip */
	3000000,	/* 3 MHz? */
	{ 100 },		/* volume */
	{ irqhandler },
};

Beispiel #18
0
	{ -1 } /* end of array */
};



/* handler called by the 2203 emulator when the internal timers cause an IRQ */
static void irqhandler(int irq)
{
	cpu_set_irq_line(2,M6809_FIRQ_LINE,irq ? ASSERT_LINE : CLEAR_LINE);
}

static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	3000000,	/* 3 MHz ??? */
	{ YM2203_VOL(40,50), YM2203_VOL(40,50) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 },
	{ irqhandler }
};



static MACHINE_DRIVER_START( xsleena )

	/* basic machine hardware */
	MDRV_CPU_ADD(M6809, 2000000)	/* 2 MHz ??? */
	MDRV_CPU_MEMORY(readmem,writemem)
	MDRV_CPU_VBLANK_INT(xainA_interrupt,4)	/* wrong, this is just a hack */
Beispiel #19
0
static struct GfxDecodeInfo combascb_gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0x00000, &tile_layout,   0, 8*16 },
	{ REGION_GFX1, 0x40000, &tile_layout,   0, 8*16 },
	{ REGION_GFX2, 0x00000, &sprite_layout, 0, 8*16 },
	{ REGION_GFX2, 0x40000, &sprite_layout, 0, 8*16 },
	{ -1 }
};

static struct YM2203interface ym2203_interface =
{
	1,							/* 1 chip */
	3500000,					/* this is wrong but gives the correct music tempo. */
	/* the correct value is 20MHz/8=2.5MHz, which gives correct pitch but wrong tempo */
	{ YM2203_VOL(20,20) },
	{ 0 },
	{ 0 },
	{ combasc_portA_w },
	{ 0 }
};

static struct UPD7759_interface upd7759_interface =
{
	1,							/* number of chips */
	UPD7759_STANDARD_CLOCK,
	{ 70 },						/* volume */
	{ REGION_SOUND1 },			/* memory region */
	UPD7759_STANDALONE_MODE,	/* chip mode */
	{0}
};
Beispiel #20
0
static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &charlayout,                  0, 32 },
	{ REGION_GFX2, 0, &fgtilelayout,             32*4, 16 },
	{ REGION_GFX3, 0, &bgtilelayout,       32*4+16*16, 16 },
	{ REGION_GFX4, 0, &spritelayout, 32*4+16*16+16*16, 16 },
	{ -1 } /* end of array */
};



static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	1500000,	/* 1.5 MHz */
	{ YM2203_VOL(10,15), YM2203_VOL(10,15) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver_1943 =
{
	/* basic machine hardware */
	{
		{
			CPU_Z80,
			6000000,	/* 6 Mhz */
Beispiel #21
0
static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &spritelayout,     0*16, 16},
	{ REGION_GFX2, 0, &spritelayout,    16*16, 16},
	{ REGION_GFX2, 0, &bigspritelayout, 16*16, 16},
	{ REGION_GFX3, 0, &charlayout,      32*16, 16},
	{ -1} /* end of array */
};


static struct YM2203interface ym2203_interface =
{
	2,	 /* 2 chips */
	12000000/8, // lax 11/03/1999  (1250000 -> 1500000 ???)
	{ YM2203_VOL(25,25), YM2203_VOL(25,25)},
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};


static MACHINE_DRIVER_START( mnight )

	/* basic machine hardware */
	MDRV_CPU_ADD(Z80, 6000000)		/* 12000000/2 ??? */
	MDRV_CPU_MEMORY(readmem,writemem)	/* very sensitive to these settings */
	MDRV_CPU_VBLANK_INT(mnight_interrupt,1)

	MDRV_CPU_ADD(Z80, 4000000)
Beispiel #22
0
};

static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ 1, 0x00000, &charlayout,     0, 16 },	/* colors 0-255 */
	{ 1, 0x10000, &spritelayout, 256, 16 },	/* colors 256-511 */
	{ -1 } /* end of array */
};



static struct YM2203interface ym2203_interface =
{
	1,			/* 1 chip */
	1500000,	/* 1.5 MHz ?????? */
	{ YM2203_VOL(255,255) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_Z80,
			8000000,	/* 8 Mhz ??? */
Beispiel #23
0
int sound_start(void)
{
#if 0	/* forQUASI88 */
	int totalsound = 0;
	int i;

	/* Verify the order of entries in the sndintf[] array */
	for (i = 0;i < SOUND_COUNT;i++)
	{
		if (sndintf[i].sound_num != i)
		{
            int j;
logerror("Sound #%d wrong ID %d: check enum SOUND_... in src/sndintrf.h!\n",i,sndintf[i].sound_num);
			for (j = 0; j < i; j++)
				logerror("ID %2d: %s\n", j, sndintf[j].name);
            return 1;
		}
	}


	/* samples will be read later if needed */
	Machine->samples = 0;

	refresh_period = TIME_IN_HZ(Machine->drv->frames_per_second);
	refresh_period_inv = 1.0 / refresh_period;
	sound_update_timer = timer_alloc(NULL);
#endif	/* forQUASI88 */




#if 1	/* forQUASI88 */


#ifndef	USE_FMGEN
	if( use_fmgen ){
	  if(verbose_proc) printf("(cisc's Fmgen liblary not available)...");
	  use_fmgen = 0;
	}
#endif


	/* set interface parameter ( volume, mono/stereo, and so on ) */

	/* set interface parameter and set xmame interface function */

#ifdef	USE_FMGEN
	if( use_fmgen ){
	  if( sound_board==SOUND_I ){					/* fmgen ym2203 */

	    fm_interface     = pc88_fmgen_interface;
	    beep_interface   = pc88_beep_interface;
	    xmame_func_sound = pc88_fmgen_func;

		Machine__drv__sound_attributes = SOUND_SUPPORTS_STEREO;

	  }else{										/* fmgen ym2608 */

	    fm_interface     = pc88_fmgen2_interface;
	    beep_interface   = pc88_beep_interface;
	    xmame_func_sound = pc88_fmgen2_func;

		Machine__drv__sound_attributes = SOUND_SUPPORTS_STEREO;
	  }
	}else
#endif
	{
	  if( sound_board==SOUND_I ){					/* xmame ym2203 */

	    fm_interface     = pc88_sound_interface;
	    beep_interface   = pc88_beep_interface;
	    xmame_func_sound = pc88_sound_func;

		Machine__drv__sound_attributes = 0;

	  }else{										/* xmame ym2608 */
	    fm_interface     = pc88_sound2_interface;
	    beep_interface   = pc88_beep_interface;
	    xmame_func_sound = pc88_sound2_func;

		Machine__drv__sound_attributes = SOUND_SUPPORTS_STEREO;
	  }
	}


	/* set volume ( fm, psg, beep ) */

	if( sound_board==SOUND_I ){
	  if( Machine__drv__sound_attributes == 0)
		ym2203_interface.mixing_level[0] = YM2203_VOL(fmvol,psgvol);
	  else
		ym2203_interface.mixing_level[0] = 
						YM3012_VOL(fmvol,MIXER_PAN_LEFT,fmvol,MIXER_PAN_RIGHT);
	}else{
	  ym2608_interface.volumeSSG[0] = psgvol;
	  ym2608_interface.volumeFM[0]  = 
						YM3012_VOL(fmvol,MIXER_PAN_LEFT,fmvol,MIXER_PAN_RIGHT);
	}
	beep88_interface.mixing_level[0] = beepvol;



#endif	/* forQUASI88 */

	if (mixer_sh_start() != 0)
		return 1;

	if (streams_sh_start() != 0)
		return 1;

#if 0	/* forQUASI88 */
	while (Machine->drv->sound[totalsound].sound_type != 0 && totalsound < MAX_SOUND)
	{
		if ((*sndintf[Machine->drv->sound[totalsound].sound_type].start)(&Machine->drv->sound[totalsound]) != 0)
			goto getout;

		totalsound++;
	}
#else	/* forQUASI88 */
	{
	  
		if ((*sndintf[ fm_interface.sound_type ].start)(&fm_interface) != 0)
			goto getout;

		if ((*sndintf[ beep_interface.sound_type ].start)(&beep_interface) != 0)
			goto getout;

	}
#endif	/* forQUASI88 */

	return 0;


getout:
	/* TODO: should also free the resources allocated before */
	return 1;
}
Beispiel #24
0
static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &charlayout,	 0x80, 16 },	/* colors 0x80-0xbf */
	{ REGION_GFX2, 0, &tilelayout,	 0x00,	8 },	/* colors 0x00-0x3f */
	{ REGION_GFX3, 0, &spritelayout, 0x40,	4 },	/* colors 0x40-0x7f */
	{ -1 } /* end of array */
};



static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	1500000,	/* 1.5 MHz (?) */
	{ YM2203_VOL(20,40), YM2203_VOL(20,40) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};



static MACHINE_DRIVER_START( gng )

	/* basic machine hardware */
	MDRV_CPU_ADD(M6809, 1500000)			/* 1.5 MHz ? */
	MDRV_CPU_MEMORY(readmem,writemem)
	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
	{ REGION_GFX3, 0, &spritelayout, 256, 16 },	/* Sprites 16x16 */
	{ -1 } /* end of array */
};

/******************************************************************************/

static void irqhandler(int linestate)
{
	cpu_set_irq_line(1,0,linestate);
}

static struct YM2203interface ym2203_interface =
{
	1,
	1500000,	/* 12MHz clock divided by 8 = 1.50 MHz */
	{ YM2203_VOL(40,95) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};

static struct YM3812interface ym3812_interface =
{
	1,			/* 1 chip */
	3000000,	/* 3 MHz (12MHz/4) */
	{ 40 },
	{ irqhandler },
};

static struct OKIM6295interface okim6295_interface =
Beispiel #26
0
};



/* handler called by the 3812 emulator when the internal timers cause an IRQ */
static void irqhandler(int linestate)
{
	cpu_set_irq_line(1,0,linestate);
	//cpu_cause_interrupt(1,0xff);
}

static struct YM2203interface ym2203_interface =
{
    1,      /* 1 chip */
    1500000,        /* 1.5 MHz ??? */
    { YM2203_VOL(30,30) },
    { 0 },
    { 0 },
    { 0 },
    { 0 }
};

static struct YM3526interface ym3526_interface =
{
    1,                      /* 1 chip (no more supported) */
	3600000,	/* 3.600000 MHz ? (partially supported) */
    { 30 },		/* volume */
	{ irqhandler }
};

static int exprraid_interrupt(void)
Beispiel #27
0
static READ_HANDLER( latch_r )
{
	return cmd_latch;
}

static READ_HANDLER( unk_r )
{
//	printf("Unknown 2203 port read (PC=%x)\n", z80c_get_reg(REG_PC));
	return cmd_latch;
}

static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	4000000,	/* 4 MHz ? */
	{ YM2203_VOL(40,40), YM2203_VOL(40,40) },
	{ unk_r, unk_r },
	{ 0 },
	{ 0 },
	{ 0 },
	{ irqhandler, irqhandler }
};

static MEMORY_READ_START( lastday_sound_readmem )
	{ 0x0000, 0x7fff, MRA_ROM },
	{ 0xc000, 0xc7ff, MRA_RAM },
	{ 0xc800, 0xc800, latch_r },
	{ 0xf000, 0xf000, YM2203_status_port_0_r },
	{ 0xf001, 0xf001, YM2203_read_port_0_r },
	{ 0xf002, 0xf002, YM2203_status_port_1_r },
	{ 0xf003, 0xf003, YM2203_read_port_1_r },
Beispiel #28
0
static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ REGION_GFX1, 0, &charlayout,            0, 32 },
	{ REGION_GFX2, 0, &tilelayout,         32*4, 16 }, /* Tiles */
	{ REGION_GFX3, 0, &spritelayout, 32*4+16*16, 16 }, /* Sprites */
	{ -1 } /* end of array */
};



static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	1500000,	/* 1.5 MHz (?) */
	{ YM2203_VOL(14,22), YM2203_VOL(14,22) },
	{ 0 },
	{ 0 },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver_gunsmoke =
{
	/* basic machine hardware */
	{
		{
			CPU_Z80,
			4000000,        /* 4 MHz (?) */
Beispiel #29
0
	AM_RANGE(0x71, 0x71) AM_READ(YM2203_read_port_0_r)
ADDRESS_MAP_END

static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
	AM_RANGE(0x10, 0x10) AM_WRITE(MWA8_NOP) /* ?? */
	AM_RANGE(0x20, 0x20) AM_WRITE(MWA8_NOP) /* ?? */
	AM_RANGE(0x30, 0x33) AM_WRITE(ppi8255_0_w)
	AM_RANGE(0x70, 0x70) AM_WRITE(YM2203_control_port_0_w)
	AM_RANGE(0x71, 0x71) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END

static struct YM2203interface ym2203_interface =
{
	1,		
	6000000/2,    	
	{ YM2203_VOL(50,50), },
	{ input_port_3_r  },
	{ 0 },
	{ 0 },
	{ homerun_banking_w },
	{ 0 }
};


INPUT_PORTS_START( homerun )
	PORT_START
	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1  ) 
	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
	PORT_DIPSETTING(      0x00, DEF_STR( Off ) )
	PORT_DIPSETTING(      0x80, DEF_STR( On ) )
	
Beispiel #30
0
	{ REGION_GFX3, 0x08000, &tilelayout, 256, 16 },
	{ REGION_GFX3, 0x09000, &tilelayout, 256, 16 },
	{ REGION_GFX3, 0x0a000, &tilelayout, 256, 16 },
	{ REGION_GFX3, 0x0b000, &tilelayout, 256, 16 },
	{ -1 } /* end of array */
};



/* actually there is one AY8910 and one YM2203, but the sound core doesn't */
/* support that so we use 2 YM2203 */
static struct YM2203interface ym2203_interface =
{
	2,			/* 2 chips */
	1250000,	/* 1.25 MHz */
	{ YM2203_VOL(20,MIXERG(20,MIXER_GAIN_2x,MIXER_PAN_CENTER)), YM2203_VOL(20,MIXERG(20,MIXER_GAIN_2x,MIXER_PAN_CENTER)) },
	{ soundlatch_r },
	{ soundlatch2_r },
	{ 0 },
	{ 0 }
};



static struct MachineDriver machine_driver_citycon =
{
	/* basic machine hardware */
	{
		{
			CPU_M6809,
			2048000,        /* 2.048 Mhz ??? */