📄 meadows.c
字号:
{ 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 + -