📄 segar.c
字号:
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_COCKTAIL)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_COCKTAIL)
PORT_START /* FAKE */
/* This fake input port is used to get the status of the F2 key, */
/* and activate the test mode, which is triggered by a NMI */
PORT_BITX(0x01, IP_ACTIVE_HIGH, IPT_SERVICE, "Service Mode", OSD_KEY_F2, IP_JOY_NONE, 0 )
PORT_START /* FAKE */
/* This fake input port is used for DIP Switch 1 */
PORT_DIPNAME( 0x01, 0x01, "Game Mode", IP_KEY_NONE )
PORT_DIPSETTING( 0x01, "Normal" )
PORT_DIPSETTING( 0x00, "Endless" )
PORT_DIPNAME( 0x18, 0x08, "Extra Ship @", IP_KEY_NONE )
PORT_DIPSETTING( 0x18, "80,000 Points" )
PORT_DIPSETTING( 0x10, "60,000 Points" )
PORT_DIPSETTING( 0x08, "40,000 Points" )
PORT_DIPSETTING( 0x00, "20,000 Points" )
PORT_DIPNAME( 0x20, 0x20, "Orientation", IP_KEY_NONE )
PORT_DIPSETTING( 0x20, "Upright" )
PORT_DIPSETTING( 0x00, "Cocktail" )
PORT_DIPNAME( 0xC0, 0x40, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0xC0, "6 Ships" )
PORT_DIPSETTING( 0x80, "5 Ships" )
PORT_DIPSETTING( 0x40, "4 Ships" )
PORT_DIPSETTING( 0x00, "3 Ships" )
PORT_START /* FAKE */
/* This fake input port is used for DIP Switch 2 */
PORT_DIPNAME( 0x0F, 0x0C, "Coins/Credits (R)", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "4 / 1" )
PORT_DIPSETTING( 0x08, "3 / 1" )
PORT_DIPSETTING( 0x04, "2 / 1" )
PORT_DIPSETTING( 0x0C, "1 / 1" )
PORT_DIPSETTING( 0x02, "1 / 2" )
PORT_DIPSETTING( 0x0A, "1 / 3" )
PORT_DIPSETTING( 0x06, "1 / 4" )
PORT_DIPSETTING( 0x0E, "1 / 5" )
PORT_DIPSETTING( 0x01, "1 / 6" )
PORT_DIPSETTING( 0x09, "2/4/5 / 1/2/3" )
PORT_DIPSETTING( 0x05, "2/4 / 1/3" )
PORT_DIPSETTING( 0x0D, "1/2/3/4/5 / 1/2/3/4/6" )
PORT_DIPSETTING( 0x03, "1/2/3/4 / 1/2/3/5" )
PORT_DIPSETTING( 0x0B, "1/2 / 1/3" )
PORT_DIPSETTING( 0x07, "1/2/3/4/5 / 2/4/6/8/11" )
PORT_DIPSETTING( 0x0F, "1/2/3/4 / 2/4/6/9" )
PORT_DIPNAME( 0xF0, 0xC0, "Coins/Credits (L)", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "4 / 1" )
PORT_DIPSETTING( 0x80, "3 / 1" )
PORT_DIPSETTING( 0x40, "2 / 1" )
PORT_DIPSETTING( 0xC0, "1 / 1" )
PORT_DIPSETTING( 0x20, "1 / 2" )
PORT_DIPSETTING( 0xA0, "1 / 3" )
PORT_DIPSETTING( 0x60, "1 / 4" )
PORT_DIPSETTING( 0xE0, "1 / 5" )
PORT_DIPSETTING( 0x10, "1 / 6" )
PORT_DIPSETTING( 0x90, "2/4/5 / 1/2/3" )
PORT_DIPSETTING( 0x50, "2/4 / 1/3" )
PORT_DIPSETTING( 0xD0, "1/2/3/4/5 / 1/2/3/4/6" )
PORT_DIPSETTING( 0x30, "1/2/3/4 / 1/2/3/5" )
PORT_DIPSETTING( 0xB0, "1/2 / 1/3" )
PORT_DIPSETTING( 0x70, "1/2/3/4/5 / 2/4/6/8/11" )
PORT_DIPSETTING( 0xF0, "1/2/3/4 / 2/4/6/9" )
INPUT_PORTS_END
INPUT_PORTS_START( pignewt_input_ports )
PORT_START /* IN0 */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BITX(0x40, IP_ACTIVE_LOW, IPT_COIN2 | IPF_IMPULSE,
IP_NAME_DEFAULT, IP_KEY_DEFAULT, IP_JOY_DEFAULT, 3 )
PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_IMPULSE,
IP_NAME_DEFAULT, IP_KEY_DEFAULT, IP_JOY_DEFAULT, 3 )
PORT_START /* IN1 */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* IN2 */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* IN3 */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* IN4 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_COCKTAIL )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_COCKTAIL)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_COCKTAIL)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_COCKTAIL)
PORT_START /* FAKE */
/* This fake input port is used to get the status of the F2 key, */
/* and activate the test mode, which is triggered by a NMI */
PORT_BITX(0x01, IP_ACTIVE_HIGH, IPT_SERVICE, "Service Mode", OSD_KEY_F2, IP_JOY_NONE, 0 )
PORT_START /* FAKE */
/* This fake input port is used for DIP Switch 1 */
PORT_DIPNAME( 0x01, 0x01, "Unknown 1", IP_KEY_NONE )
PORT_DIPSETTING( 0x01, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x02, 0x02, "Unknown 2", IP_KEY_NONE )
PORT_DIPSETTING( 0x02, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x04, 0x04, "Unknown 3", IP_KEY_NONE )
PORT_DIPSETTING( 0x04, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x08, 0x08, "Unknown 4", IP_KEY_NONE )
PORT_DIPSETTING( 0x08, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x30, 0x20, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0x30, "6 Pigs" )
PORT_DIPSETTING( 0x20, "5 Pigs" )
PORT_DIPSETTING( 0x10, "4 Pigs" )
PORT_DIPSETTING( 0x00, "3 Pigs" )
PORT_DIPNAME( 0x40, 0x40, "Unknown 5", IP_KEY_NONE )
PORT_DIPSETTING( 0x40, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x80, 0x80, "Unknown 6", IP_KEY_NONE )
PORT_DIPSETTING( 0x80, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_START /* FAKE */
/* This fake input port is used for DIP Switch 2 */
PORT_DIPNAME( 0x0F, 0x0C, "Coins/Credits (R)", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "4 / 1" )
PORT_DIPSETTING( 0x08, "3 / 1" )
PORT_DIPSETTING( 0x04, "2 / 1" )
PORT_DIPSETTING( 0x0C, "1 / 1" )
PORT_DIPSETTING( 0x02, "1 / 2" )
PORT_DIPSETTING( 0x0A, "1 / 3" )
PORT_DIPSETTING( 0x06, "1 / 4" )
PORT_DIPSETTING( 0x0E, "1 / 5" )
PORT_DIPSETTING( 0x01, "1 / 6" )
PORT_DIPSETTING( 0x09, "2/4/5 / 1/2/3" )
PORT_DIPSETTING( 0x05, "2/4 / 1/3" )
PORT_DIPSETTING( 0x0D, "1/2/3/4/5 / 1/2/3/4/6" )
PORT_DIPSETTING( 0x03, "1/2/3/4 / 1/2/3/5" )
PORT_DIPSETTING( 0x0B, "1/2 / 1/3" )
PORT_DIPSETTING( 0x07, "1/2/3/4/5 / 2/4/6/8/11" )
PORT_DIPSETTING( 0x0F, "1/2/3/4 / 2/4/6/9" )
PORT_DIPNAME( 0xF0, 0xC0, "Coins/Credits (L)", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "4 / 1" )
PORT_DIPSETTING( 0x80, "3 / 1" )
PORT_DIPSETTING( 0x40, "2 / 1" )
PORT_DIPSETTING( 0xC0, "1 / 1" )
PORT_DIPSETTING( 0x20, "1 / 2" )
PORT_DIPSETTING( 0xA0, "1 / 3" )
PORT_DIPSETTING( 0x60, "1 / 4" )
PORT_DIPSETTING( 0xE0, "1 / 5" )
PORT_DIPSETTING( 0x10, "1 / 6" )
PORT_DIPSETTING( 0x90, "2/4/5 / 1/2/3" )
PORT_DIPSETTING( 0x50, "2/4 / 1/3" )
PORT_DIPSETTING( 0xD0, "1/2/3/4/5 / 1/2/3/4/6" )
PORT_DIPSETTING( 0x30, "1/2/3/4 / 1/2/3/5" )
PORT_DIPSETTING( 0xB0, "1/2 / 1/3" )
PORT_DIPSETTING( 0x70, "1/2/3/4/5 / 2/4/6/8/11" )
PORT_DIPSETTING( 0xF0, "1/2/3/4 / 2/4/6/9" )
INPUT_PORTS_END
INPUT_PORTS_START( pignewta_input_ports )
PORT_START /* IN0 */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BITX(0x40, IP_ACTIVE_LOW, IPT_COIN2 | IPF_IMPULSE,
IP_NAME_DEFAULT, IP_KEY_DEFAULT, IP_JOY_DEFAULT, 3 )
PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_IMPULSE,
IP_NAME_DEFAULT, IP_KEY_DEFAULT, IP_JOY_DEFAULT, 3 )
PORT_START /* IN1 */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* IN2 */
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 /* IN3 */
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 /* IN4 */
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_START /* FAKE */
/* This fake input port is used to get the status of the F2 key, */
/* and activate the test mode, which is triggered by a NMI */
PORT_BITX(0x01, IP_ACTIVE_HIGH, IPT_SERVICE, "Service Mode", OSD_KEY_F2, IP_JOY_NONE, 0 )
PORT_START /* FAKE */
/* This fake input port is used for DIP Switch 1 */
PORT_DIPNAME( 0x01, 0x01, "Unknown 1", IP_KEY_NONE )
PORT_DIPSETTING( 0x01, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x02, 0x02, "Unknown 2", IP_KEY_NONE )
PORT_DIPSETTING( 0x02, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x04, 0x04, "Unknown 3", IP_KEY_NONE )
PORT_DIPSETTING( 0x04, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x08, 0x08, "Unknown 4", IP_KEY_NONE )
PORT_DIPSETTING( 0x08, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x30, 0x20, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0x30, "6 Pigs" )
PORT_DIPSETTING( 0x20, "5 Pigs" )
PORT_DIPSETTING( 0x10, "4 Pigs" )
PORT_DIPSETTING( 0x00, "3 Pigs" )
PORT_DIPNAME( 0x40, 0x40, "Unknown 5", IP_KEY_NONE )
PORT_DIPSETTING( 0x40, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_DIPNAME( 0x80, 0x80, "Unknown 6", IP_KEY_NONE )
PORT_DIPSETTING( 0x80, "On" )
PORT_DIPSETTING( 0x00, "Off" )
PORT_START /* FAKE */
/* This fake input port is used for DIP Switch 2 */
PORT_DIPNAME( 0x0F, 0x0C, "Coins/Credits (R)", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "4 / 1" )
PORT_DIPSETTING( 0x08, "3 / 1" )
PORT_DIPSETTING( 0x04, "2 / 1" )
PORT_DIPSETTING( 0x0C, "1 / 1" )
PORT_DIPSETTING( 0x02, "1 / 2" )
PORT_DIPSETTING( 0x0A, "1 / 3" )
PORT_DIPSETTING( 0x06, "1 / 4" )
PORT_DIPSETTING( 0x0E, "1 / 5" )
PORT_DIPSETTING( 0x01, "1 / 6" )
PORT_DIPSETTING( 0x09, "2/4/5 / 1/2/3" )
PORT_DIPSETTING( 0x05, "2/4 / 1/3" )
PORT_DIPSETTING( 0x0D, "1/2/3/4/5 / 1/2/3/4/6" )
PORT_DIPSETTING( 0x03, "1/2/3/4 / 1/2/3/5" )
PORT_DIPSETTING( 0x0B, "1/2 / 1/3" )
PORT_DIPSETTING( 0x07, "1/2/3/4/5 / 2/4/6/8/11" )
PORT_DIPSETTING( 0x0F, "1/2/3/4 / 2/4/6/9" )
PORT_DIPNAME( 0xF0, 0xC0, "Coins/Credits (L)", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "4 / 1" )
PORT_DIPSETTING( 0x80, "3 / 1" )
PORT_DIPSETTING( 0x40, "2 / 1" )
PORT_DIPSETTING( 0xC0, "1 / 1" )
PORT_DIPSETTING( 0x20, "1 / 2" )
PORT_DIPSETTING( 0xA0, "1 / 3" )
PORT_DIPSETTING( 0x60, "1 / 4" )
PORT_DIPSETTING( 0xE0, "1 / 5" )
PORT_DIPSETTING( 0x10, "1 / 6" )
PORT_DIPSETTING( 0x90, "2/4/5 / 1/2/3" )
PORT_DIPSETTING( 0x50, "2/4 / 1/3" )
PORT_DIPSETTING( 0xD0, "1/2/3/4/5 / 1/2/3/4/6" )
PORT_DIPSETTING( 0x30, "1/2/3/4 / 1/2/3/5" )
PORT_DIPSETTING( 0xB0, "1/2 / 1/3" )
PORT_DIPSETTING( 0x70, "1/2/3/4/5 / 2/4/6/8/11" )
PORT_DIPSETTING( 0xF0, "1/2/3/4 / 2/4/6/9" )
INPUT_PORTS_END
static struct GfxLayout charlayout =
{
8,8, /* 8*8 characters */
256, /* 256 characters? */
2, /* 2 bits per pixel */
{ 0, 0x1000*8 }, /* separated by 0x1000 bytes */
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
{ 7, 6, 5, 4, 3, 2, 1, 0 }, /* pretty straightforward layout */
8*8 /* every char takes 8 consecutive bytes */
};
static struct GfxLayout backlayout =
{
8,8, /* 8*8 characters */
256*4, /* 256 characters per scene, 4 scenes */
2, /* 2 bits per pixel */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -