⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meadows.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	{ 0x0e00, 0x0eff, MRA_RAM },
	{ -1 }	/* end of table */
};

INPUT_PORTS_START( meadows_input_ports )
	PORT_START		/* IN0 buttons */
	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1  )
	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
	PORT_START		/* IN1 control 1 */
	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X, 100, 0, 0x10, 0xf0 )
	PORT_START		/* IN2 dip switch */
	PORT_BITX( 0x07, 0x00, IPT_DIPSWITCH_NAME, "Misses", IP_KEY_NONE, IP_JOY_NONE, 0)
	PORT_DIPSETTING( 0x00, "2")
	PORT_DIPSETTING( 0x01, "3")
	PORT_DIPSETTING( 0x02, "4")
	PORT_DIPSETTING( 0x03, "5")
	PORT_DIPSETTING( 0x04, "6")
	PORT_DIPSETTING( 0x05, "7")
	PORT_DIPSETTING( 0x06, "8")
	PORT_DIPSETTING( 0x07, "9")
	PORT_BITX( 0x18, 0x00, IPT_DIPSWITCH_NAME, "Coins / play", IP_KEY_NONE, IP_JOY_NONE, 0)
	PORT_DIPSETTING( 0x00, "1c / 1p")
	PORT_DIPSETTING( 0x08, "2c / 1p")
	PORT_DIPSETTING( 0x10, "1c / 2p")
	PORT_DIPSETTING( 0x18, "free play")
	PORT_BITX( 0x20, 0x20, IPT_DIPSWITCH_NAME, "Attract music", IP_KEY_NONE, IP_JOY_NONE, 0)
	PORT_DIPSETTING( 0x00, "Off")
	PORT_DIPSETTING( 0x20, "On")
	PORT_BITX( 0xc0, 0x40, IPT_DIPSWITCH_NAME, "Extended play", IP_KEY_NONE, IP_JOY_NONE, 0)
	PORT_DIPSETTING( 0x00, "none")
	PORT_DIPSETTING( 0x40, "5000 pts")
	PORT_DIPSETTING( 0x80, "15000 pts")
	PORT_DIPSETTING( 0xc0, "35000 pts")
	PORT_START		/* FAKE coinage */
	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
	PORT_BIT( 0x8e, IP_ACTIVE_LOW,	IPT_UNUSED )
INPUT_PORTS_END

static struct GfxLayout charlayout =
{
	8,8,							/* 8*8 characters */
	128,							/* 128 characters ? */
	1,								/* 1 bit per pixel */
	{ 0 },							/* no bitplanes */
	{ 0, 1, 2, 3, 4, 5, 6, 7 }, 	/* pretty straight layout */
	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
	8*8 							/* every char takes 8 bytes */
};

static struct GfxLayout spritelayout =
{
	16,16,							/* 16*16 sprites ?	*/
	32, 							/* 32 sprites  */
	1,								/* 1 bits per pixel */
	{ 0 },							/* 1 bitplane */
	{ 0, 1, 2, 3, 4, 5, 6, 7,
	8, 9,10,11,12,13,14,15 },	  /* pretty straight layout */
	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
	8*16, 9*16,10*16,11*16,12*16,13*16,14*16,15*16 },
	16*2*8							/* every sprite takes 32 bytes */
};

static struct GfxDecodeInfo gfxdecodeinfo[] =
{
	{ 1, 0x0000, &charlayout,	0, 4},		/* character generator */
	{ 1, 0x0400, &spritelayout, 0, 4},		/* sprite prom 1 */
	{ 1, 0x0800, &spritelayout, 0, 4},		/* sprite prom 2 */
	{ 1, 0x0c00, &spritelayout, 0, 4},		/* sprite prom 3 (unused) */
	{ 1, 0x1000, &spritelayout, 0, 4},		/* sprite prom 4 (unused) */
	{ -1 } /* end of array */
};

static unsigned char deadeye_palette[16*3] = {
	  0,  0,  0,
	192,  0,  0,
	  0,192,  0,
	192,192,  0,
	  0,  0,192,
	192,  0,192,
	  0,192,192,
	192,192,192,
	  5,  5,  5,	/* very dark */
	192,192,192,	/* white */
	  1, 10,  3,	/* very dark green */
	 32,192, 64,	/* green */
	  3,  3, 10,	/* very dark pale blue */
	 64, 64,192,	/* pale blue */
	 10,  8,  1,	/* very dark yellow orange */
	192,160, 32,	/* yellow orange */
};

static unsigned short deadeye_colortable[4*2] = {
	8, 9,		/* white on black */
	10,11,		/* green on very dark */
	12,13,		/* pale blue on very dark */
	14,15,		/* yellow orange on very dark */
};

static struct DACinterface dac_interface =
{
	1,
	{ 100 }
};

static struct MachineDriver deadeye_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_S2650,
			625000, 	/* 5MHz / 8 = 625 kHz */
			0,
			meadows_readmem,meadows_writemem,
			0,0,
			meadows_interrupt,1 	/* one interrupt per frame!? */
		},
		{
			CPU_S2650 | CPU_AUDIO_CPU,
			625000, 	/* 5MHz / 8 = 625 kHz */
			2,
			meadows_sound_readmem,meadows_sound_writemem,
			0,0,
			0,0,
			meadows_sound_interrupt,38	/* 5000000/131072 interrupts per frame */
        }
    },
	60, DEFAULT_60HZ_VBLANK_DURATION,		/* frames per second, vblank duration */
	240,									/* dual CPU; interleave them */
	0,

	/* video hardware */
	32*8, 30*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
	gfxdecodeinfo,
	16, 4*2,
	0,

	VIDEO_TYPE_RASTER|VIDEO_SUPPORTS_DIRTY,
    0,
	meadows_vh_start,
	meadows_vh_stop,
	deadeye_vh_screenrefresh,

	/* sound hardware */
	0,
    &meadows_sh_start,
	&meadows_sh_stop,
	0,
	{
		{
			SOUND_DAC,
			&dac_interface
		}
    }
};

static struct MachineDriver gypsyjug_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_S2650,
			625000, 	/* 5MHz / 8 = 625 kHz */
			0,
			meadows_readmem,meadows_writemem,
			0,0,
			meadows_interrupt,1 	/* one interrupt per frame!? */
		},
		{
			CPU_S2650 | CPU_AUDIO_CPU,
			625000, 	/* 5MHz / 8 = 625 kHz */
			2,
			meadows_sound_readmem,meadows_sound_writemem,
			0,0,
			0,0,
			meadows_sound_interrupt,38	/* 5000000/131072 interrupts per frame */
		}
	},
	60, DEFAULT_60HZ_VBLANK_DURATION,		/* frames per second, vblank duration */
	240,									/* dual CPU; interleave them */
	0,

	/* video hardware */
	32*8, 30*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
	gfxdecodeinfo,
	16, 4*2,
	0,

	VIDEO_TYPE_RASTER|VIDEO_SUPPORTS_DIRTY,
	0,
	meadows_vh_start,
	meadows_vh_stop,
	gypsyjug_vh_screenrefresh,

	/* sound hardware */
	0,
	&meadows_sh_start,
	&meadows_sh_stop,
	0,
	{
		{
			SOUND_DAC,
			&dac_interface
		}
	}
};

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

  Game driver(s)

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

ROM_START( deadeye_rom )
	ROM_REGION(0x08000) 	/* 32K for code */
	ROM_LOAD( "de1.8h",       0x0000, 0x0400, 0xbd09e4dc )
	ROM_LOAD( "de2.9h",       0x0400, 0x0400, 0xb89edec3 )
	ROM_LOAD( "de3.10h",      0x0800, 0x0400, 0xacf24438 )
	ROM_LOAD( "de4.11h",      0x1000, 0x0400, 0x8b68f792 )
	ROM_LOAD( "de5.12h",      0x1400, 0x0400, 0x7bdb535c )
	ROM_LOAD( "de6.13h",      0x1800, 0x0400, 0x847f9467 )

	ROM_REGION_DISPOSE(0x1400)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "de_char.15e",  0x0000, 0x0400, 0xb032bd8d )
	ROM_LOAD( "de_mov1.5a",   0x0400, 0x0400, 0xc046b4c6 )
	ROM_LOAD( "de_mov2.13a",  0x0800, 0x0400, 0xb89c5df9 )

	ROM_REGION(0x08000) 	/* 32K for code for the sound cpu */
	ROM_LOAD( "de_snd",       0x0000, 0x0400, 0xc10a1b1a )
ROM_END

ROM_START( gypsyjug_rom )
	ROM_REGION(0x08000) 	/* 32K for code */
	ROM_LOAD( "gj.1b",        0x0000, 0x0400, 0xf6a71d9f )
	ROM_LOAD( "gj.2b",        0x0400, 0x0400, 0x94c14455 )
	ROM_LOAD( "gj.3b",        0x0800, 0x0400, 0x87ee0490 )
	ROM_LOAD( "gj.4b",        0x1000, 0x0400, 0xdca519c8 )
	ROM_LOAD( "gj.5b",        0x1400, 0x0400, 0x7d83f9d0 )

	ROM_REGION_DISPOSE(0x1400)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "gj.e15",       0x0000, 0x0400, 0xadb25e13 )
	ROM_LOAD( "gj.a",         0x0400, 0x0400, 0xd3725193 )
	ROM_RELOAD(               0x0800, 0x0400 )

	ROM_REGION(0x08000) 	/* 32K for code for the sound cpu */
	ROM_LOAD( "gj.a4s",       0x0000, 0x0400, 0x17a116bc )
	ROM_LOAD( "gj.a5s",       0x0400, 0x0400, 0xfc23ae09 )
	ROM_LOAD( "gj.a6s",       0x0800, 0x0400, 0x9e7bd71e )
ROM_END

/* A fake for the missing ball sprites #3 and #4 */
static void gypsyjug_rom_decode(void)
{
int i;
static byte ball[16*2] = {
	0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00,
	0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00,
	0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00,
	0x01,0x80, 0x03,0xc0, 0x03,0xc0, 0x01,0x80};

	for (i = 0; i < 0x800; i += 16*2)
		memcpy(&Machine->memory_region[1][0x0c00+i], ball, sizeof(ball));
}

struct GameDriver deadeye_driver =
{
	__FILE__,
	0,
	"deadeye",
	"Dead Eye",
	"1978",
	"Meadows",
	"Juergen Buchmueller\n",
	0,
	&deadeye_machine_driver,
	0,

	deadeye_rom,
	0,
	0,
	0,
	0,		/* sound_prom */

	meadows_input_ports,

	0,		/* color_prom */
	deadeye_palette,
	deadeye_colortable,
	ORIENTATION_DEFAULT,

	0,0
};

struct GameDriver gypsyjug_driver =
{
	__FILE__,
	0,
	"gypsyjug",
	"Gypsy Juggler",
	"1978",
	"Meadows",
	"Juergen Buchmueller\n",
	0,
	&gypsyjug_machine_driver,
	0,

	gypsyjug_rom,
	gypsyjug_rom_decode,
	0,
	0,
	0,		/* sound_prom */

	meadows_input_ports,

	0,		/* color_prom */
	deadeye_palette,
	deadeye_colortable,
	ORIENTATION_DEFAULT,

    0,0
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -