📄 scobra.c
字号:
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
readmem,writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
32+64,8*4+2*2, /* 32 for the characters, 64 for the stars */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
scramble_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
/* same as the above, the only difference is in gfxdecodeinfo to have long bullets */
static struct MachineDriver armorcar_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
readmem,writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
armorcar_gfxdecodeinfo,
32+64,8*4+2*2, /* 32 for the characters, 64 for the stars */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
scramble_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
/* Rescue and Minefield have extra colours, and custom video initialise */
/* routines to set up the graduated colour backgound they use * MJC */
static struct MachineDriver rescue_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
readmem,writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
32+64+128,8*4+2*2, /* 32 for the characters, 64 for the stars, 128 for background */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
rescue_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
static struct MachineDriver minefield_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
readmem,writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
32+64+128,8*4+2*2, /* 32 for the characters, 64 for the stars, 128 for background */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
minefield_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
static struct MachineDriver stratgyx_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
stratgyx_readmem,stratgyx_writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
32+64,8*4+2*2, /* 32 for the characters, 64 for the stars */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
scramble_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
static struct MachineDriver hustler_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
hustler_readmem,hustler_writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
hustler_sound_readmem,hustler_sound_writemem,hustler_sound_readport,hustler_sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
32+64,8*4+2*2, /* 32 for the characters, 64 for the stars */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
scramble_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&hustler_ay8910_interface
}
}
};
static struct MachineDriver calipso_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
readmem,writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
calipso_gfxdecodeinfo,
32+64,8*4+2*2, /* 32 for the characters, 64 for the stars */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
calipso_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
/* same as machine_driver, but with moonwar2_readmem for the spinner */
static struct MachineDriver moonwar2_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 Mhz */
0,
moonwar2_readmem,writemem,0,0,
scramble_vh_interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
14318000/8, /* 1.78975 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,sound_readport,sound_writeport,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, 2500, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
scobra_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
32+64,8*4+2*2, /* 32 for the characters, 64 for the stars */
galaxian_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
scramble_vh_start,
generic_vh_stop,
galaxian_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -