📄 taito.c
字号:
static struct AY8910interface ay8910_interface =
{
4, /* 4 chips */
6000000/4, /* 1.5 MHz */
{ 255, 255, 255, 0x20ff },
{ input_port_6_r, 0, 0, 0 }, /* port Aread */
{ input_port_7_r, 0, 0, 0 }, /* port Bread */
{ 0, DAC_data_w, 0, 0 }, /* port Awrite */
{ 0, 0, 0, taito_sndnmi_msk } /* port Bwrite */
};
static struct DACinterface dac_interface =
{
1,
{ 255 }
};
static struct MachineDriver machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
8000000/2, /* 4 Mhz */
0,
readmem,writemem,0,0,
interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
6000000/2, /* 3 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,0,0,
/* interrupts: */
/* - no interrupts synced with vblank */
/* - NMI triggered by the main CPU */
/* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */
/* that is a period of 27306666.6666 ns */
0,0,
interrupt,27306667
}
},
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 */
taito_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
64, 16*8,
taito_vh_convert_color_prom,
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE,
0,
taito_vh_start,
taito_vh_stop,
taito_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
},
{
SOUND_DAC,
&dac_interface
}
}
};
/* same as above, but with additional 68705 MCU */
static struct MachineDriver mcu_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
8000000/2, /* 4 Mhz */
0,
mcu_readmem,mcu_writemem,0,0,
interrupt,1
},
{
CPU_Z80 | CPU_AUDIO_CPU,
6000000/2, /* 3 Mhz */
3, /* memory region #3 */
sound_readmem,sound_writemem,0,0,
/* interrupts: */
/* - no interrupts synced with vblank */
/* - NMI triggered by the main CPU */
/* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */
/* that is a period of 27306666.6666 ns */
0,0,
interrupt,27306667
},
{
CPU_M68705,
3000000, /* xtal is 3MHz, is it demultiplied internally? */
4,
m68705_readmem,m68705_writemem,0,0,
ignore_interrupt,0 /* IRQs are caused by the main CPU */
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
100, /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
taito_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
64, 16*8,
taito_vh_convert_color_prom,
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE,
0,
taito_vh_start,
taito_vh_stop,
taito_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
},
{
SOUND_DAC,
&dac_interface
}
}
};
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( spaceskr_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "eb01", 0x0000, 0x1000, 0x92345b05 )
ROM_LOAD( "eb02", 0x1000, 0x1000, 0xa3e21420 )
ROM_LOAD( "eb03", 0x2000, 0x1000, 0xa077c52f )
ROM_LOAD( "eb04", 0x3000, 0x1000, 0x440030cf )
ROM_LOAD( "eb05", 0x4000, 0x1000, 0xb0d396ab )
ROM_LOAD( "eb06", 0x5000, 0x1000, 0x371d2f7a )
ROM_LOAD( "eb07", 0x6000, 0x1000, 0x13e667c4 )
ROM_LOAD( "eb08", 0x7000, 0x1000, 0xf2e84015 )
/* 10000-11fff space for banked ROMs (not used) */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x8000) /* graphic ROMs */
ROM_LOAD( "eb09", 0x0000, 0x1000, 0x77af540e )
ROM_LOAD( "eb10", 0x1000, 0x1000, 0xb10073de )
ROM_LOAD( "eb11", 0x2000, 0x1000, 0xc7954bd1 )
ROM_LOAD( "eb12", 0x3000, 0x1000, 0xcd6c087b )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "eb13", 0x0000, 0x1000, 0x192f6536 )
ROM_LOAD( "eb14", 0x1000, 0x1000, 0xd04d0a21 )
ROM_LOAD( "eb15", 0x2000, 0x1000, 0x88194305 )
ROM_END
ROM_START( junglek_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "kn41.bin", 0x00000, 0x1000, 0x7e4cd631 )
ROM_LOAD( "kn42.bin", 0x01000, 0x1000, 0xbade53af )
ROM_LOAD( "kn43.bin", 0x02000, 0x1000, 0xa20e5a48 )
ROM_LOAD( "kn44.bin", 0x03000, 0x1000, 0x44c770d3 )
ROM_LOAD( "kn45.bin", 0x04000, 0x1000, 0xf60a3d06 )
ROM_LOAD( "kn46.bin", 0x05000, 0x1000, 0x27a95fd5 )
ROM_LOAD( "kn47.bin", 0x06000, 0x1000, 0x5c3199e0 )
ROM_LOAD( "kn48.bin", 0x07000, 0x1000, 0xe690b36e )
/* 10000-10fff space for another banked ROM (not used) */
ROM_LOAD( "kn60.bin", 0x11000, 0x1000, 0x1a9c0a26 ) /* banked at 7000 */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x8000) /* graphic ROMs */
ROM_LOAD( "kn49.bin", 0x0000, 0x1000, 0xfe275213 )
ROM_LOAD( "kn50.bin", 0x1000, 0x1000, 0xd9f93c55 )
ROM_LOAD( "kn51.bin", 0x2000, 0x1000, 0x70e8fc12 )
ROM_LOAD( "kn52.bin", 0x3000, 0x1000, 0xbcbac1a3 )
ROM_LOAD( "kn53.bin", 0x4000, 0x1000, 0xb946c87d )
ROM_LOAD( "kn54.bin", 0x5000, 0x1000, 0xf757d8f0 )
ROM_LOAD( "kn55.bin", 0x6000, 0x1000, 0x70aef58f )
ROM_LOAD( "kn56.bin", 0x7000, 0x1000, 0x932eb667 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "kn57-1.bin", 0x0000, 0x1000, 0x62f6763a )
ROM_LOAD( "kn58-1.bin", 0x1000, 0x1000, 0x9ef46c7f )
ROM_LOAD( "kn59-1.bin", 0x2000, 0x1000, 0xcee485fc )
ROM_END
ROM_START( jhunt_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "kn41a", 0x00000, 0x1000, 0x6bf118d8 )
ROM_LOAD( "kn42.bin", 0x01000, 0x1000, 0xbade53af )
ROM_LOAD( "kn43.bin", 0x02000, 0x1000, 0xa20e5a48 )
ROM_LOAD( "kn44.bin", 0x03000, 0x1000, 0x44c770d3 )
ROM_LOAD( "kn45.bin", 0x04000, 0x1000, 0xf60a3d06 )
ROM_LOAD( "kn46a", 0x05000, 0x1000, 0xac89c155 )
ROM_LOAD( "kn47.bin", 0x06000, 0x1000, 0x5c3199e0 )
ROM_LOAD( "kn48a", 0x07000, 0x1000, 0xef80e931 )
/* 10000-10fff space for another banked ROM (not used) */
ROM_LOAD( "kn60.bin", 0x11000, 0x1000, 0x1a9c0a26 ) /* banked at 7000 */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x8000) /* graphic ROMs */
ROM_LOAD( "kn49a", 0x0000, 0x1000, 0xb139e792 )
ROM_LOAD( "kn50a", 0x1000, 0x1000, 0x1046019f )
ROM_LOAD( "kn51a", 0x2000, 0x1000, 0xda50c8a4 )
ROM_LOAD( "kn52a", 0x3000, 0x1000, 0x0444f06c )
ROM_LOAD( "kn53a", 0x4000, 0x1000, 0x6a17803e )
ROM_LOAD( "kn54a", 0x5000, 0x1000, 0xd41428c7 )
ROM_LOAD( "kn55.bin", 0x6000, 0x1000, 0x70aef58f )
ROM_LOAD( "kn56a", 0x7000, 0x1000, 0x679c1101 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "kn57-1.bin", 0x0000, 0x1000, 0x62f6763a )
ROM_LOAD( "kn58-1.bin", 0x1000, 0x1000, 0x9ef46c7f )
ROM_LOAD( "kn59-1.bin", 0x2000, 0x1000, 0xcee485fc )
ROM_END
ROM_START( alpine_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "rh16.069", 0x0000, 0x1000, 0x6b2a69b7 )
ROM_LOAD( "rh17.068", 0x1000, 0x1000, 0xe344b0b7 )
ROM_LOAD( "rh18.067", 0x2000, 0x1000, 0x753bdd87 )
ROM_LOAD( "rh19.066", 0x3000, 0x1000, 0x3efb3fcd )
ROM_LOAD( "rh20.065", 0x4000, 0x1000, 0xc2cd4e79 )
ROM_LOAD( "rh21.064", 0x5000, 0x1000, 0x74109145 )
ROM_LOAD( "rh22.055", 0x6000, 0x1000, 0xefa82a57 )
ROM_LOAD( "rh23.054", 0x7000, 0x1000, 0x77c25acf )
/* 10000-11fff space for banked ROMs (not used) */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x8000) /* graphic ROMs */
ROM_LOAD( "rh24.001", 0x0000, 0x1000, 0x4b1d9455 )
ROM_LOAD( "rh25.002", 0x1000, 0x1000, 0xbf71e278 )
ROM_LOAD( "rh26.003", 0x2000, 0x1000, 0x13da2a9b )
ROM_LOAD( "rh27.004", 0x3000, 0x1000, 0x425b52b0 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "rh13.070", 0x0000, 0x1000, 0xdcad1794 )
ROM_END
ROM_START( alpinea_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "rh01-1.69", 0x0000, 0x1000, 0x7fbcb635 )
ROM_LOAD( "rh02.68", 0x1000, 0x1000, 0xc83f95af )
ROM_LOAD( "rh03.67", 0x2000, 0x1000, 0x211102bc )
ROM_LOAD( "rh04-1.66", 0x3000, 0x1000, 0x494a91b0 )
ROM_LOAD( "rh05.65", 0x4000, 0x1000, 0xd85588be )
ROM_LOAD( "rh06.64", 0x5000, 0x1000, 0x521fddb9 )
ROM_LOAD( "rh07.55", 0x6000, 0x1000, 0x51f369a4 )
ROM_LOAD( "rh08.54", 0x7000, 0x1000, 0xe0af9cb2 )
/* 10000-11fff space for banked ROMs (not used) */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x8000) /* graphic ROMs */
ROM_LOAD( "rh24.001", 0x0000, 0x1000, 0x4b1d9455 )
ROM_LOAD( "rh25.002", 0x1000, 0x1000, 0xbf71e278 )
ROM_LOAD( "rh26.003", 0x2000, 0x1000, 0x13da2a9b )
ROM_LOAD( "rh12.4", 0x3000, 0x1000, 0x0ff0d1fe )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "rh13.070", 0x0000, 0x1000, 0xdcad1794 )
ROM_END
ROM_START( timetunl_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "un01.69", 0x00000, 0x1000, 0x2e56d946 )
ROM_LOAD( "un02.68", 0x01000, 0x1000, 0xf611d852 )
ROM_LOAD( "un03.67", 0x02000, 0x1000, 0x144b5e7f )
ROM_LOAD( "un04.66", 0x03000, 0x1000, 0xb6767eba )
ROM_LOAD( "un05.65", 0x04000, 0x1000, 0x91e3c558 )
ROM_LOAD( "un06.64", 0x05000, 0x1000, 0xaf5a7d2a )
ROM_LOAD( "un07.55", 0x06000, 0x1000, 0x4ee50999 )
ROM_LOAD( "un08.54", 0x07000, 0x1000, 0x97259b57 )
ROM_LOAD( "un09.53", 0x10000, 0x1000, 0x771d0fb0 ) /* banked at 6000 */
ROM_LOAD( "un10.52", 0x11000, 0x1000, 0x8b6afad2 ) /* banked at 7000 */
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x8000) /* graphic ROMs */
ROM_LOAD( "un11.1", 0x0000, 0x1000, 0x3be4fed6 )
ROM_LOAD( "un12.2", 0x1000, 0x1000, 0x2dee1cf3 )
ROM_LOAD( "un13.3", 0x2000, 0x1000, 0x72b491a8 )
ROM_LOAD( "un14.4", 0x3000, 0x1000, 0x5f695369 )
ROM_LOAD( "un15.5", 0x4000, 0x1000, 0x001df94b )
ROM_LOAD( "un16.6", 0x5000, 0x1000, 0xe33b9019 )
ROM_LOAD( "un17.7", 0x6000, 0x1000, 0xd66025b8 )
ROM_LOAD( "un18.8", 0x7000, 0x1000, 0xe67ff377 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "un19.70", 0x0000, 0x1000, 0xdbf726c6 )
ROM_END
ROM_START( wwestern_rom )
ROM_REGION(0x12000) /* 64k for code */
ROM_LOAD( "ww01.bin", 0x0000, 0x1000, 0xbfe10753 )
ROM_LOAD( "ww02d.bin", 0x1000, 0x1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -