📄 snk.c
字号:
readmem_snd,writemem_snd,0,0,
interrupt,1
}
},
60, DEFAULT_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
30,
snk_init_machine,
36*8, 28*8,
{ 0*8, 36*8-1, 1*8, 28*8-1 },
gfxdecodeinfo,
512,17*16+32*8,
snk_vh_convert_color_prom,
VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
0,
snk_vh_start,
snk_vh_stop,
snk_vh_screenrefresh,
0,0,0,0,
{
{
SOUND_YM3526,
&ym3526_interface
}
}
};
ROM_START( ikarius_rom )
ROM_REGION(0x10000) /* 64k for cpuA code */
ROM_LOAD( "1.rom", 0x00000, 0x10000, 0x52a8b2dd )
ROM_REGION_DISPOSE(0x6c000)
ROM_LOAD( "7.rom", 0x00000, 0x4000, 0xa7eb4917 ) /* characters */
ROM_LOAD( "17.rom", 0x04000, 0x8000, 0xe0dba976 ) /* tiles */
ROM_LOAD( "18.rom", 0x0c000, 0x8000, 0x24947d5f )
ROM_LOAD( "19.rom", 0x14000, 0x8000, 0x9ee59e91 )
ROM_LOAD( "20.rom", 0x1c000, 0x8000, 0x5da7ec1a )
ROM_LOAD( "8.rom", 0x24000, 0x8000, 0x9827c14a ) /* sprites 16x16 */
ROM_LOAD( "9.rom", 0x2c000, 0x8000, 0x545c790c )
ROM_LOAD( "10.rom", 0x34000, 0x8000, 0xec9ba07e )
ROM_LOAD( "11.rom", 0x3c000, 0x8000, 0x5c75ea8f ) /* sprites 32x32 */
ROM_LOAD( "14.rom", 0x44000, 0x8000, 0x3293fde4 )
ROM_LOAD( "12.rom", 0x4c000, 0x8000, 0x95138498 )
ROM_LOAD( "15.rom", 0x54000, 0x8000, 0x65a61c99 )
ROM_LOAD( "13.rom", 0x5c000, 0x8000, 0x315383d7 )
ROM_LOAD( "16.rom", 0x64000, 0x8000, 0xe9b03e07 )
ROM_REGION(0x10000) /* 64k for cpuB code */
ROM_LOAD( "2.rom", 0x0000, 0x10000, 0x45364d55 )
ROM_REGION(0x10000) /* 64k for sound code */
ROM_LOAD( "3.rom", 0x0000, 0x10000, 0x56a26699 )
ROM_REGION(0xc00) /* color proms */
ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )
ROM_END
ROM_START( ikarijp_rom )
ROM_REGION(0x10000) /* 64k for cpuA code */
ROM_LOAD( "up03_l4.rom", 0x00000, 0x4000, 0xcde006be )
ROM_LOAD( "up03_k4.rom", 0x04000, 0x8000, 0x26948850 )
ROM_REGION_DISPOSE( 0x6c000 )
ROM_LOAD( "7.rom", 0x00000, 0x4000, 0xa7eb4917 ) /* characters */
ROM_LOAD( "17.rom", 0x04000, 0x8000, 0xe0dba976 ) /* tiles */
ROM_LOAD( "18.rom", 0x0c000, 0x8000, 0x24947d5f )
ROM_LOAD( "ik19", 0x14000, 0x8000, 0x566242ec )
ROM_LOAD( "20.rom", 0x1c000, 0x8000, 0x5da7ec1a )
ROM_LOAD( "ik8", 0x24000, 0x8000, 0x75d796d0 ) /* sprites 16x16 */
ROM_LOAD( "ik9", 0x2c000, 0x8000, 0x2c34903b )
ROM_LOAD( "ik10", 0x34000, 0x8000, 0xda9ccc94 )
ROM_LOAD( "11.rom", 0x3c000, 0x8000, 0x5c75ea8f ) /* sprites 32x32 */
ROM_LOAD( "14.rom", 0x44000, 0x8000, 0x3293fde4 )
ROM_LOAD( "12.rom", 0x4c000, 0x8000, 0x95138498 )
ROM_LOAD( "15.rom", 0x54000, 0x8000, 0x65a61c99 )
ROM_LOAD( "13.rom", 0x5c000, 0x8000, 0x315383d7 )
ROM_LOAD( "16.rom", 0x64000, 0x8000, 0xe9b03e07 )
ROM_REGION(0x10000) /* 64k for cpuB code */
ROM_LOAD( "ik3", 0x00000, 0x4000, 0x9bb385f8 )
ROM_LOAD( "ik4", 0x04000, 0x8000, 0x3a144bca )
ROM_REGION(0x10000) /* 64k for sound code */
ROM_LOAD( "ik5", 0x00000, 0x4000, 0x863448fa )
ROM_LOAD( "ik6", 0x04000, 0x8000, 0x9b16aa57 )
ROM_REGION(0xc00) /* color proms */
ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )
ROM_END
ROM_START( ikarijpb_rom )
ROM_REGION(0x10000) /* 64k for cpuA code */
ROM_LOAD( "ik1", 0x00000, 0x4000, 0x2ef87dce )
ROM_LOAD( "up03_k4.rom", 0x04000, 0x8000, 0x26948850 )
ROM_REGION_DISPOSE(0x6c000)
ROM_LOAD( "ik7", 0x00000, 0x4000, 0x9e88f536 ) /* characters */
ROM_LOAD( "17.rom", 0x04000, 0x8000, 0xe0dba976 ) /* tiles */
ROM_LOAD( "18.rom", 0x0c000, 0x8000, 0x24947d5f )
ROM_LOAD( "ik19", 0x14000, 0x8000, 0x566242ec )
ROM_LOAD( "20.rom", 0x1c000, 0x8000, 0x5da7ec1a )
ROM_LOAD( "ik8", 0x24000, 0x8000, 0x75d796d0 ) /* sprites 16x16 */
ROM_LOAD( "ik9", 0x2c000, 0x8000, 0x2c34903b )
ROM_LOAD( "ik10", 0x34000, 0x8000, 0xda9ccc94 )
ROM_LOAD( "11.rom", 0x3c000, 0x8000, 0x5c75ea8f ) /* sprites 32x32 */
ROM_LOAD( "14.rom", 0x44000, 0x8000, 0x3293fde4 )
ROM_LOAD( "12.rom", 0x4c000, 0x8000, 0x95138498 )
ROM_LOAD( "15.rom", 0x54000, 0x8000, 0x65a61c99 )
ROM_LOAD( "13.rom", 0x5c000, 0x8000, 0x315383d7 )
ROM_LOAD( "16.rom", 0x64000, 0x8000, 0xe9b03e07 )
ROM_REGION(0x10000) /* 64k for cpuB code */
ROM_LOAD( "ik3", 0x0000, 0x4000, 0x9bb385f8 )
ROM_LOAD( "ik4", 0x4000, 0x8000, 0x3a144bca )
ROM_REGION(0x10000) /* 64k for sound code */
ROM_LOAD( "ik5", 0x0000, 0x4000, 0x863448fa )
ROM_LOAD( "ik6", 0x4000, 0x8000, 0x9b16aa57 )
ROM_REGION(0xc00) /* color proms */
ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )
ROM_END
ROM_START( victroad_rom )
ROM_REGION(0x10000) /* 64k for cpuA code */
ROM_LOAD( "p1", 0x00000, 0x10000, 0xe334acef )
ROM_REGION_DISPOSE(0x6c000) /* characters */
ROM_LOAD( "p7", 0x00000, 0x4000, 0x2b6ed95b )
ROM_LOAD( "p17", 0x04000, 0x8000, 0x19d4518c ) /* tiles */
ROM_LOAD( "p18", 0x0c000, 0x8000, 0xd818be43 )
ROM_LOAD( "p19", 0x14000, 0x8000, 0xd64e0f89 )
ROM_LOAD( "p20", 0x1c000, 0x8000, 0xedba0f31 )
ROM_LOAD( "p8", 0x24000, 0x8000, 0xdf7f252a ) /* sprites 16x16 */
ROM_LOAD( "p9", 0x2c000, 0x8000, 0x9897bc05 )
ROM_LOAD( "p10", 0x34000, 0x8000, 0xecd3c0ea )
ROM_LOAD( "p11", 0x3c000, 0x8000, 0x668b25a4 ) /* sprites 32x32 */
ROM_LOAD( "p14", 0x44000, 0x8000, 0xa7031d4a )
ROM_LOAD( "p12", 0x4c000, 0x8000, 0xf44e95fa )
ROM_LOAD( "p15", 0x54000, 0x8000, 0x120d2450 )
ROM_LOAD( "p13", 0x5c000, 0x8000, 0x980ca3d8 )
ROM_LOAD( "p16", 0x64000, 0x8000, 0x9f820e8a )
ROM_REGION(0x10000) /* 64k for cpuB code */
ROM_LOAD( "p2", 0x0000, 0x10000, 0x907fac83 )
ROM_REGION(0x10000) /* 64k for sound code */
ROM_LOAD( "p3", 0x0000, 0x10000, 0xbac745f6 )
ROM_REGION(0xc00) /* color proms */
ROM_LOAD( "mb7122e.1k", 0x000, 0x400, 0x491ab831 )
ROM_LOAD( "mb7122e.2l", 0x400, 0x400, 0x8feca424 )
ROM_LOAD( "mb7122e.1l", 0x800, 0x400, 0x220076ca )
ROM_REGION(0x20000) /* ADPCM Samples */
ROM_LOAD( "p4", 0x00000, 0x10000, 0xe10fb8cc )
ROM_LOAD( "p5", 0x10000, 0x10000, 0x93e5f110 )
ROM_END
ROM_START( dogosoke_rom )
ROM_REGION(0x10000) /* 64k for cpuA code */
ROM_LOAD( "up03_p4.rom", 0x00000,0x10000, 0x37867ad2 )
ROM_REGION_DISPOSE( 0x6c000 ) /* characters */
ROM_LOAD( "up02_b3.rom", 0x00000, 0x4000, 0x51a4ec83 )
ROM_LOAD( "p17", 0x04000, 0x8000, 0x19d4518c ) /* tiles */
ROM_LOAD( "p18", 0x0c000, 0x8000, 0xd818be43 )
ROM_LOAD( "p19", 0x14000, 0x8000, 0xd64e0f89 )
ROM_LOAD( "p20", 0x1c000, 0x8000, 0xedba0f31 )
ROM_LOAD( "up02_d3.rom", 0x24000, 0x8000, 0xd43044f8 ) /* sprites 16x16 */
ROM_LOAD( "up02_e3.rom", 0x2c000, 0x8000, 0x365ed2d8 )
ROM_LOAD( "up02_g3.rom", 0x34000, 0x8000, 0x92579bf3 )
ROM_LOAD( "p11", 0x3c000, 0x8000, 0x668b25a4 ) /* sprites 32x32 */
ROM_LOAD( "p14", 0x44000, 0x8000, 0xa7031d4a )
ROM_LOAD( "p12", 0x4c000, 0x8000, 0xf44e95fa )
ROM_LOAD( "p15", 0x54000, 0x8000, 0x120d2450 )
ROM_LOAD( "p13", 0x5c000, 0x8000, 0x980ca3d8 )
ROM_LOAD( "p16", 0x64000, 0x8000, 0x9f820e8a )
ROM_REGION(0x10000) /* 64k for cpuB code */
ROM_LOAD( "p2", 0x00000, 0x10000, 0x907fac83 )
ROM_REGION(0x10000) /* 64k for sound code */
ROM_LOAD( "up03_k7.rom", 0x00000, 0x10000, 0x173fa571 )
ROM_REGION(0xC00) /* color PROM */
ROM_LOAD( "up03_k1.rom", 0x000, 0x400, 0x10a2ce2b )
ROM_LOAD( "up03_l2.rom", 0x400, 0x400, 0x99dc9792 )
ROM_LOAD( "up03_l1.rom", 0x800, 0x400, 0xe7213160 )
ROM_REGION(0x20000) /* ADPCM Samples */
ROM_LOAD( "up03_f5.rom", 0x00000, 0x10000, 0x5b43fe9f )
ROM_LOAD( "up03_g5.rom", 0x10000, 0x10000, 0xaae30cd6 )
ROM_END
static int ikari_hiload(void)
{
/* get RAM pointer (this game is multiCPU, we can't assume the global */
/* RAM pointer is pointing to the right place) */
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
if (memcmp(&RAM[0xfc5f],"\x00\x30\x00",3) == 0)
{
void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0);
if (f)
{
osd_fread(f,&RAM[0xff0b], 0x50);
osd_fclose(f);
/* Copy the high score to the work ram as well */
RAM[0xfc5f] = RAM[0xff0b];
RAM[0xfc60] = RAM[0xff0c];
RAM[0xfc61] = RAM[0xff0d];
}
return 1;
}
return 0; /* we can't load the hi scores yet */
}
static int victroad_hiload(void)
{
/* get RAM pointer (this game is multiCPU, we can't assume the global */
/* RAM pointer is pointing to the right place) */
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
if (memcmp(&RAM[0xfc5f],"\x00\x30\x00",3) == 0)
{
void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0);
if (f)
{
osd_fread(f,&RAM[0xff2c], 0x50);
osd_fclose(f);
/* Copy the high score to the work ram as well */
RAM[0xfc5f] = RAM[0xff2c];
RAM[0xfc60] = RAM[0xff2d];
RAM[0xfc61] = RAM[0xff2e];
}
return 1;
}
return 0; /* we can't load the hi scores yet */
}
static void ikari_hisave(void)
{
/* get RAM pointer (this game is multiCPU, we can't assume the global */
/* RAM pointer is pointing to the right place) */
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1);
/* The game clears hi score table after reset, */
/* so we must be sure that hi score table was already loaded */
if (memcmp(&RAM[0xfc2a],"\x48\x49",2) == 0)
{
if (f)
{
osd_fwrite(f,&RAM[0xff0b],0x50);
osd_fclose(f);
}
}
}
static void victroad_hisave(void)
{
/* get RAM pointer (this game is multiCPU, we can't assume the global */
/* RAM pointer is pointing to the right place) */
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1);
/* The game clears hi score table after reset, */
/* so we must be sure that hi score table was already loaded */
if (memcmp(&RAM[0xfc2a],"\x48\x49",2) == 0)
{
if (f)
{
osd_fwrite(f,&RAM[0xff2c],0x50);
osd_fclose(f);
}
}
}
struct GameDriver ikari_driver =
{
__FILE__,
0,
"ikari",
"Ikari Warriors (US)",
"1986",
"SNK",
"Jarek Parchanski (MAME driver)\n",
0,
&machine_driver,
0,
ikarius_rom,
ikarius_init_data,0,
0,
0, /* sound prom */
ikarius_input_ports,
PROM_MEMORY_REGION(4), 0, 0,
ORIENTATION_ROTATE_270,
ikari_hiload,ikari_hisave
};
struct GameDriver ikarijp_driver =
{
__FILE__,
&ikari_driver,
"ikarijp",
"Ikari Warriors (Japan)",
"1986",
"SNK",
"Jarek Parchanski (MAME driver)\n",
0,
&machine_driver,
0,
ikarijp_rom,
ikarijp_init_data,0,
0,
0, /* sound prom */
ikarijp_input_ports,
PROM_MEMORY_REGION(4), 0, 0,
ORIENTATION_ROTATE_270,
ikari_hiload,ikari_hisave
};
struct GameDriver ikarijpb_driver =
{
__FILE__,
&ikari_driver,
"ikarijpb",
"Ikari Warriors (Japan bootleg)",
"1986",
"SNK",
"Jarek Parchanski (MAME driver)\n",
0,
&machine_driver,
0,
ikarijpb_rom,
ikarijpb_init_data,0,
0,
0, /* sound prom */
ikarijp_input_ports,
PROM_MEMORY_REGION(4), 0, 0,
ORIENTATION_ROTATE_270,
ikari_hiload,ikari_hisave
};
struct GameDriver victroad_driver =
{
__FILE__,
0,
"victroad",
"Victory Road",
"1986",
"SNK",
"Jarek Parchanski (MAME driver)\n",
0,
&machine_driver,
0,
victroad_rom,
ikarius_init_data,0,
0,
0, /* sound prom */
victroad_input_ports,
PROM_MEMORY_REGION(4), 0, 0,
ORIENTATION_ROTATE_270,
victroad_hiload,victroad_hisave
};
struct GameDriver dogosoke_driver =
{
__FILE__,
&victroad_driver,
"dogosoke",
"Dogo Soken",
"1986",
"SNK",
"Jarek Parchanski (MAME driver)\n",
0,
&machine_driver,
0,
dogosoke_rom,
ikarius_init_data,0,
0,
0, /* sound prom */
victroad_input_ports,
PROM_MEMORY_REGION(4), 0, 0,
ORIENTATION_ROTATE_270,
victroad_hiload,victroad_hisave
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -