📄 williams.c
字号:
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
robotron_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
williams_vh_start, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
}
}
};
/*
* Joust driver
*/
static struct MachineDriver joust_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6809,
1000000, /* ? Mhz */
0, /* memory region */
joust_readmem, /* MemoryReadAddress */
williams_writemem, /* MemoryWriteAddress */
0, /* IOReadPort */
0, /* IOWritePort */
williams_interrupt, /* interrupt routine */
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
joust_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
williams_vh_start, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
}
}
};
/*
* Stargate driver
*/
static struct MachineDriver stargate_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6809,
1000000, /* ? Mhz */
0, /* memory region */
stargate_readmem, /* MemoryReadAddress */
williams_writemem, /* MemoryWriteAddress */
0, /* IOReadPort */
0, /* IOWritePort */
williams_interrupt, /* interrupt routine */
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
stargate_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
williams_vh_start, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
}
}
};
/*
* Bubbles driver
*/
static struct MachineDriver bubbles_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6809,
1000000, /* ? Mhz */
0, /* memory region */
bubbles_readmem, /* MemoryReadAddress */
williams_writemem, /* MemoryWriteAddress */
0, /* IOReadPort */
0, /* IOWritePort */
williams_interrupt, /* interrupt routine */
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
bubbles_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
williams_vh_start, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
}
}
};
/*
* Sinistar driver
*/
static struct Samplesinterface sinistar_samples_interface =
{
1 /* 1 channel */
};
static struct MachineDriver sinistar_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6809,
1000000, /* ? Mhz */ /*Sinistar do not like 1 mhz*/
0, /* memory region */
sinistar_readmem, /* MemoryReadAddress */
sinistar_writemem, /* MemoryWriteAddress */
0, /* IOReadPort */
0, /* IOWritePort */
williams_interrupt, /* interrupt routine */
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
sinistar_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
sinistar_vh_start, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
},
{
SOUND_SAMPLES,
&sinistar_samples_interface
}
}
};
/*
* Defender driver
*/
static struct MachineDriver defender_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6809,
1200000, /* ? Mhz */ /*Defender do not like 1 mhz. Collect at least 9 humans, when you depose them, the game stuck */
0, /* memory region */
defender_readmem, /* MemoryReadAddress */
defender_writemem, /* MemoryWriteAddress */
0, /* IOReadPort */
0, /* IOWritePort */
williams_interrupt, /* interrupt routine */
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
defender_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
williams_vh_start, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
}
}
};
/*
* Splat driver
*/
static struct MachineDriver splat_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M6809,
1000000, /* ? Mhz */
0, /* memory region */
splat_readmem, /* MemoryReadAddress */
splat_writemem, /* MemoryWriteAddress */
0, /* IOReadPort */
0, /* IOWritePort */
williams_interrupt, /* interrupt routine */
64 /* interrupts per frame (64 times/frame for video counter) */
},
{
CPU_M6808 | CPU_AUDIO_CPU,
894750, /* 0.89475 Mhz (3.579 / 4) */
2, /* memory region #2 */
sound_readmem,sound_writemem,0,0,
ignore_interrupt,1 /* interrupts are triggered by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
splat_init_machine, /* init machine routine */
/* video hardware */
304, 256, /* screen_width, screen_height */
{ 6, 298-1, 7, 247-1 }, /* struct rectangle visible_area */
0, /* GfxDecodeInfo * */
16, /* total colors */
0, /* color table length */
williams_vh_convert_color_prom, /* convert color prom routine */
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE|VIDEO_SUPPORTS_DIRTY,
0, /* vh_init routine */
williams_vh_start_sc2, /* vh_start routine */
williams_vh_stop, /* vh_stop routine */
williams_vh_screenrefresh, /* vh_update routine */
/* sound hardware */
0,0,0,0,
{
{
SOUND_DAC,
&dac_interface
}
}
};
/*
* Blaster driver
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -