centiped.c
来自「这个是延伸mame的在wince平台下的游戏模拟器的代码」· C语言 代码 · 共 473 行 · 第 1/2 页
C
473 行
PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
PORT_START /* IN4 */
PORT_DIPNAME (0x03, 0x00, "Language", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "English" )
PORT_DIPSETTING ( 0x01, "German" )
PORT_DIPSETTING ( 0x02, "French" )
PORT_DIPSETTING ( 0x03, "Spanish" )
PORT_DIPNAME (0x0c, 0x04, "Lives", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "2" )
PORT_DIPSETTING ( 0x04, "3" )
PORT_DIPSETTING ( 0x08, "4" )
PORT_DIPSETTING ( 0x0c, "5" )
PORT_DIPNAME (0x30, 0x10, "Bonus Life", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "10000" )
PORT_DIPSETTING ( 0x10, "12000" )
PORT_DIPSETTING ( 0x20, "15000" )
PORT_DIPSETTING ( 0x30, "20000" )
PORT_DIPNAME (0x40, 0x40, "Difficulty", IP_KEY_NONE )
PORT_DIPSETTING ( 0x40, "Easy" )
PORT_DIPSETTING ( 0x00, "Hard" )
PORT_DIPNAME (0x80, 0x00, "Credit Minimum", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "1" )
PORT_DIPSETTING ( 0x80, "2" )
PORT_START /* IN5 */
PORT_DIPNAME (0x03, 0x02, "Coinage", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "Free Play" )
PORT_DIPSETTING ( 0x01, "1 Coin/2 Credits" )
PORT_DIPSETTING ( 0x02, "1 Coin/1 Credit" )
PORT_DIPSETTING ( 0x03, "2 Coins/1 Credit" )
PORT_DIPNAME (0x0c, 0x00, "Right Coin", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "*1" )
PORT_DIPSETTING ( 0x04, "*4" )
PORT_DIPSETTING ( 0x08, "*5" )
PORT_DIPSETTING ( 0x0c, "*6" )
PORT_DIPNAME (0x10, 0x00, "Left Coin", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "*1" )
PORT_DIPSETTING ( 0x10, "*2" )
PORT_DIPNAME (0xe0, 0x00, "Bonus Coins", IP_KEY_NONE )
PORT_DIPSETTING ( 0x00, "None" )
PORT_DIPSETTING ( 0x20, "3 credits/2 coins" )
PORT_DIPSETTING ( 0x40, "5 credits/4 coins" )
PORT_DIPSETTING ( 0x60, "6 credits/4 coins" )
PORT_DIPSETTING ( 0x80, "6 credits/5 coins" )
PORT_DIPSETTING ( 0xa0, "4 credits/3 coins" )
PORT_START /* IN6, fake trackball input port. */
PORT_ANALOGX ( 0xff, 0x00, IPT_TRACKBALL_X | IPF_REVERSE | IPF_CENTER, 10, 0, 0, 0, IP_KEY_NONE, IP_KEY_NONE, IP_JOY_NONE, IP_JOY_NONE, 4 )
INPUT_PORTS_END
static struct GfxLayout charlayout =
{
8,8, /* 8*8 characters */
256, /* 256 characters */
2, /* 2 bits per pixel */
{ 256*8*8, 0 }, /* the two bitplanes are separated */
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
8*8 /* every char takes 8 consecutive bytes */
};
static struct GfxLayout spritelayout =
{
8,16, /* 16*8 sprites */
128, /* 64 sprites */
2, /* 2 bits per pixel */
{ 128*16*8, 0 }, /* the two bitplanes are separated */
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
16*8 /* every sprite takes 16 consecutive bytes */
};
static struct GfxDecodeInfo gfxdecodeinfo[] =
{
{ 1, 0x0000, &charlayout, 4, 4 }, /* 4 color codes to support midframe */
/* palette changes in test mode */
{ 1, 0x0000, &spritelayout, 0, 1 },
{ -1 } /* end of array */
};
static struct POKEYinterface pokey_interface =
{
1, /* 1 chip */
12096000/8, /* 1.512 MHz */
100,
POKEY_DEFAULT_GAIN,
NO_CLIP,
/* The 8 pot handlers */
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* The allpot handler */
{ 0 },
};
static struct MachineDriver machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6502,
12096000/8, /* 1.512 Mhz (slows down to 0.75MHz while accessing playfield RAM) */
0,
readmem,writemem,0,0,
centiped_interrupt,4
}
},
60, 1460, /* frames per second, vblank duration */
1, /* single CPU, no need for interleaving */
centiped_init_machine,
/* video hardware */
32*8, 30*8, { 0*8, 32*8-1, 0*8, 30*8-1 },
gfxdecodeinfo,
4+4*4, 4+4*4,
0,
VIDEO_TYPE_RASTER|VIDEO_SUPPORTS_DIRTY|VIDEO_MODIFIES_PALETTE,
0,
generic_vh_start,
generic_vh_stop,
centiped_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_POKEY,
&pokey_interface
}
}
};
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( centiped_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "centiped.307", 0x2000, 0x0800, 0x5ab0d9de )
ROM_LOAD( "centiped.308", 0x2800, 0x0800, 0x4c07fd3e )
ROM_LOAD( "centiped.309", 0x3000, 0x0800, 0xff69b424 )
ROM_LOAD( "centiped.310", 0x3800, 0x0800, 0x44e40fa4 )
ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset and interrupt vectors */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "centiped.211", 0x0000, 0x0800, 0x880acfb9 )
ROM_LOAD( "centiped.212", 0x0800, 0x0800, 0xb1397029 )
ROM_END
ROM_START( centipd2_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "centiped.207", 0x2000, 0x0800, 0xb2909e2f )
ROM_LOAD( "centiped.208", 0x2800, 0x0800, 0x110e04ff )
ROM_LOAD( "centiped.209", 0x3000, 0x0800, 0xcc2edb26 )
ROM_LOAD( "centiped.210", 0x3800, 0x0800, 0x93999153 )
ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset and interrupt vectors */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "centiped.211", 0x0000, 0x0800, 0x880acfb9 )
ROM_LOAD( "centiped.212", 0x0800, 0x0800, 0xb1397029 )
ROM_END
struct GameDriver centiped_driver =
{
__FILE__,
0,
"centiped",
"Centipede (revision 3)",
"1980",
"Atari",
"Ivan Mackintosh (hardware info)\nEdward Massey (MageX emulator)\nPete Rittwage (hardware info)\nNicola Salmoria (MAME driver)\nMirko Buffoni (MAME driver)\nBrad Oliver (additional code)",
0,
&machine_driver,
0,
centiped_rom,
0, 0,
0,
0, /* sound_prom */
input_ports,
0, 0, 0,
ORIENTATION_ROTATE_270,
atari_vg_earom_load, atari_vg_earom_save
};
struct GameDriver centipd2_driver =
{
__FILE__,
¢iped_driver,
"centipd2",
"Centipede (revision 2)",
"1980",
"Atari",
"Ivan Mackintosh (hardware info)\nEdward Massey (MageX emulator)\nPete Rittwage (hardware info)\nNicola Salmoria (MAME driver)\nMirko Buffoni (MAME driver)\nBrad Oliver (additional code)",
GAME_NOT_WORKING,
&machine_driver,
0,
centipd2_rom,
0, 0,
0,
0, /* sound_prom */
input_ports,
0, 0, 0,
ORIENTATION_ROTATE_270,
atari_vg_earom_load, atari_vg_earom_save
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?