📄 tecmo.c
字号:
ROM_REGION_DISPOSE(0x68000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "cpu_8k.bin", 0x00000, 0x08000, 0x4d482fb6 ) /* characters */
ROM_LOAD( "vid_6k.bin", 0x08000, 0x08000, 0xaba6db9e ) /* sprites */
ROM_LOAD( "vid_6j.bin", 0x10000, 0x08000, 0xae1f2ed6 ) /* sprites */
ROM_LOAD( "vid_6h.bin", 0x18000, 0x08000, 0x46d9e7df ) /* sprites */
ROM_LOAD( "vid_6g.bin", 0x20000, 0x08000, 0x45839c9a ) /* sprites */
ROM_LOAD( "vid_6p.bin", 0x28000, 0x08000, 0x9eae5f8e )
ROM_LOAD( "vid_6o.bin", 0x30000, 0x08000, 0x5a10a396 )
ROM_LOAD( "vid_6n.bin", 0x38000, 0x08000, 0x7b12cf3f )
ROM_LOAD( "vid_6l.bin", 0x40000, 0x08000, 0x3cea7eaa )
ROM_LOAD( "vid_6f.bin", 0x48000, 0x08000, 0x9840edd8 )
ROM_LOAD( "vid_6e.bin", 0x50000, 0x08000, 0xff65e074 )
ROM_LOAD( "vid_6c.bin", 0x58000, 0x08000, 0x89868c85 )
ROM_LOAD( "vid_6b.bin", 0x60000, 0x08000, 0x35389a7b )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, 0xe4a2fa87 )
ROM_REGION(0x4000) /* ADPCM samples */
ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, 0x3cc98c5a )
ROM_END
ROM_START( rygarj_rom )
ROM_REGION(0x18000) /* 64k for code */
ROM_LOAD( "cpuj_5p.bin", 0x00000, 0x08000, 0xb39698ba ) /* code */
ROM_LOAD( "cpuj_5m.bin", 0x08000, 0x04000, 0x3f180979 ) /* code */
ROM_LOAD( "cpuj_5j.bin", 0x10000, 0x08000, 0x69e44e8f ) /* banked at f000-f7ff */
ROM_REGION_DISPOSE(0x68000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "cpuj_8k.bin", 0x00000, 0x08000, 0x45047707 ) /* characters */
ROM_LOAD( "vid_6k.bin", 0x08000, 0x08000, 0xaba6db9e ) /* sprites */
ROM_LOAD( "vid_6j.bin", 0x10000, 0x08000, 0xae1f2ed6 ) /* sprites */
ROM_LOAD( "vid_6h.bin", 0x18000, 0x08000, 0x46d9e7df ) /* sprites */
ROM_LOAD( "vid_6g.bin", 0x20000, 0x08000, 0x45839c9a ) /* sprites */
ROM_LOAD( "vid_6p.bin", 0x28000, 0x08000, 0x9eae5f8e )
ROM_LOAD( "vid_6o.bin", 0x30000, 0x08000, 0x5a10a396 )
ROM_LOAD( "vid_6n.bin", 0x38000, 0x08000, 0x7b12cf3f )
ROM_LOAD( "vid_6l.bin", 0x40000, 0x08000, 0x3cea7eaa )
ROM_LOAD( "vid_6f.bin", 0x48000, 0x08000, 0x9840edd8 )
ROM_LOAD( "vid_6e.bin", 0x50000, 0x08000, 0xff65e074 )
ROM_LOAD( "vid_6c.bin", 0x58000, 0x08000, 0x89868c85 )
ROM_LOAD( "vid_6b.bin", 0x60000, 0x08000, 0x35389a7b )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, 0xe4a2fa87 )
ROM_REGION(0x4000) /* ADPCM samples */
ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, 0x3cc98c5a )
ROM_END
ROM_START( silkworm_rom )
ROM_REGION(0x20000) /* 64k for code */
ROM_LOAD( "silkworm.4", 0x00000, 0x10000, 0xa5277cce ) /* c000-ffff is not used */
ROM_LOAD( "silkworm.5", 0x10000, 0x10000, 0xa6c7bb51 ) /* banked at f000-f7ff */
ROM_REGION_DISPOSE(0xc8000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "silkworm.2", 0x00000, 0x08000, 0xe80a1cd9 ) /* characters */
ROM_LOAD( "silkworm.6", 0x08000, 0x10000, 0x1138d159 ) /* sprites */
ROM_LOAD( "silkworm.7", 0x18000, 0x10000, 0xd96214f7 ) /* sprites */
ROM_LOAD( "silkworm.8", 0x28000, 0x10000, 0x0494b38e ) /* sprites */
ROM_LOAD( "silkworm.9", 0x38000, 0x10000, 0x8ce3cdf5 ) /* sprites */
ROM_LOAD( "silkworm.10", 0x48000, 0x10000, 0x8c7138bb ) /* tiles #1 */
ROM_LOAD( "silkworm.11", 0x58000, 0x10000, 0x6c03c476 ) /* tiles #1 */
ROM_LOAD( "silkworm.12", 0x68000, 0x10000, 0xbb0f568f ) /* tiles #1 */
ROM_LOAD( "silkworm.13", 0x78000, 0x10000, 0x773ad0a4 ) /* tiles #1 */
ROM_LOAD( "silkworm.14", 0x88000, 0x10000, 0x409df64b ) /* tiles #2 */
ROM_LOAD( "silkworm.15", 0x98000, 0x10000, 0x6e4052c9 ) /* tiles #2 */
ROM_LOAD( "silkworm.16", 0xa8000, 0x10000, 0x9292ed63 ) /* tiles #2 */
ROM_LOAD( "silkworm.17", 0xb8000, 0x10000, 0x3fa4563d ) /* tiles #2 */
ROM_REGION(0x20000) /* 64k for the audio CPU */
ROM_LOAD( "silkworm.3", 0x0000, 0x8000, 0xb589f587 )
ROM_REGION(0x8000) /* ADPCM samples */
ROM_LOAD( "silkworm.1", 0x0000, 0x8000, 0x5b553644 )
ROM_END
ROM_START( silkwrm2_rom )
ROM_REGION(0x20000) /* 64k for code */
ROM_LOAD( "r4", 0x00000, 0x10000, 0x6df3df22 ) /* c000-ffff is not used */
ROM_LOAD( "silkworm.5", 0x10000, 0x10000, 0xa6c7bb51 ) /* banked at f000-f7ff */
ROM_REGION_DISPOSE(0xc8000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "silkworm.2", 0x00000, 0x08000, 0xe80a1cd9 ) /* characters */
ROM_LOAD( "silkworm.6", 0x08000, 0x10000, 0x1138d159 ) /* sprites */
ROM_LOAD( "silkworm.7", 0x18000, 0x10000, 0xd96214f7 ) /* sprites */
ROM_LOAD( "silkworm.8", 0x28000, 0x10000, 0x0494b38e ) /* sprites */
ROM_LOAD( "silkworm.9", 0x38000, 0x10000, 0x8ce3cdf5 ) /* sprites */
ROM_LOAD( "silkworm.10", 0x48000, 0x10000, 0x8c7138bb ) /* tiles #1 */
ROM_LOAD( "silkworm.11", 0x58000, 0x10000, 0x6c03c476 ) /* tiles #1 */
ROM_LOAD( "silkworm.12", 0x68000, 0x10000, 0xbb0f568f ) /* tiles #1 */
ROM_LOAD( "silkworm.13", 0x78000, 0x10000, 0x773ad0a4 ) /* tiles #1 */
ROM_LOAD( "silkworm.14", 0x88000, 0x10000, 0x409df64b ) /* tiles #2 */
ROM_LOAD( "silkworm.15", 0x98000, 0x10000, 0x6e4052c9 ) /* tiles #2 */
ROM_LOAD( "silkworm.16", 0xa8000, 0x10000, 0x9292ed63 ) /* tiles #2 */
ROM_LOAD( "silkworm.17", 0xb8000, 0x10000, 0x3fa4563d ) /* tiles #2 */
ROM_REGION(0x20000) /* 64k for the audio CPU */
ROM_LOAD( "r3", 0x0000, 0x8000, 0xb79848d0 )
ROM_REGION(0x8000) /* ADPCM samples */
ROM_LOAD( "silkworm.1", 0x0000, 0x8000, 0x5b553644 )
ROM_END
ROM_START( gemini_rom )
ROM_REGION(0x20000) /* 64k for code */
ROM_LOAD( "gw04-5s.rom", 0x00000, 0x10000, 0xff9de855 ) /* c000-ffff is not used */
ROM_LOAD( "gw05-6s.rom", 0x10000, 0x10000, 0x5a6947a9 ) /* banked at f000-f7ff */
ROM_REGION_DISPOSE(0xc8000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, 0x7acc8d35 ) /* characters */
ROM_LOAD( "gw06-1c.rom", 0x08000, 0x10000, 0x4ea51631 ) /* sprites */
ROM_LOAD( "gw07-1d.rom", 0x18000, 0x10000, 0xda42637e ) /* sprites */
ROM_LOAD( "gw08-1f.rom", 0x28000, 0x10000, 0x0b4e8d70 ) /* sprites */
ROM_LOAD( "gw09-1h.rom", 0x38000, 0x10000, 0xb65c5e4c ) /* sprites */
ROM_LOAD( "gw10-1n.rom", 0x48000, 0x10000, 0x5e84cd4f ) /* tiles #1 */
ROM_LOAD( "gw11-2na.rom", 0x58000, 0x10000, 0x08b458e1 ) /* tiles #1 */
ROM_LOAD( "gw12-2nb.rom", 0x68000, 0x10000, 0x229c9714 ) /* tiles #1 */
ROM_LOAD( "gw13-3n.rom", 0x78000, 0x10000, 0xc5dfaf47 ) /* tiles #1 */
ROM_LOAD( "gw14-1r.rom", 0x88000, 0x10000, 0x9c10e5b5 ) /* tiles #2 */
ROM_LOAD( "gw15-2ra.rom", 0x98000, 0x10000, 0x4cd18cfa ) /* tiles #2 */
ROM_LOAD( "gw16-2rb.rom", 0xa8000, 0x10000, 0xf911c7be ) /* tiles #2 */
ROM_LOAD( "gw17-3r.rom", 0xb8000, 0x10000, 0x79a9ce25 ) /* tiles #2 */
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, 0x9bc79596 )
ROM_REGION(0x8000) /* ADPCM samples */
ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, 0xd78afa05 )
ROM_END
static int rygar_hiload(void)
{
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
/* check if the hi score table has already been initialized */
if (memcmp(&RAM[0xc984],"\x00\x03\x00\x00",4) == 0 &&
memcmp(&RAM[0xcb46],"\x00\x03\x00\x00",4) == 0 &&
memcmp(&RAM[0xc023],"\x00\x00\x03\x00",4) == 0) /* high score */
{
void *f;
int p;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xc983],9*50);
RAM[0xc023]=RAM[0xc987];
RAM[0xc024]=RAM[0xc986];
RAM[0xc025]=RAM[0xc985];
RAM[0xc026]=RAM[0xc984];
osd_fclose(f);
/* update the screen hi score (now or never) */
for (p=0;p<4;p++)
{
RAM[0xd06c+(p*2)]=0x60+(RAM[0xc984+p]/16);
RAM[0xd06d+(p*2)]=0x60+(RAM[0xc984+p]%16);
}
for (p=0;p<6;p++ )
{
if (RAM[0xd06c+p]==0x60)
RAM[0xd06c+p]=0x01;
else break;
}
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void rygar_hisave(void)
{
void *f;
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
{
osd_fwrite(f,&RAM[0xc983],9*50);
osd_fclose(f);
}
}
static int silkworm_hiload(void)
{
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
/* check if the hi score table has already been initialized */
if (memcmp(&RAM[0xd262],"\x00\x00\x03",3) == 0)
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xd262],10*10);
osd_fread(f,&RAM[0xd54e],4);
osd_fread(f,&RAM[0xd572],4);
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void silkworm_hisave(void)
{
void *f;
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
{
osd_fwrite(f,&RAM[0xd262],10*10);
osd_fwrite(f,&RAM[0xd54e],4);
osd_fwrite(f,&RAM[0xd572],4);
osd_fclose(f);
}
}
static int gemini_hiload(void)
{
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
/* check if the hi score table has already been initialized */
if (memcmp(&RAM[0xc026],"\x00\x50\x00",3) == 0)
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xc026],3);
osd_fread(f,&RAM[0xcf41],3*10+4*10);
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void gemini_hisave(void)
{
void *f;
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
{
osd_fwrite(f,&RAM[0xc026],3);
osd_fwrite(f,&RAM[0xcf41],3*10+4*10);
osd_fclose(f);
}
}
struct GameDriver rygar_driver =
{
__FILE__,
0,
"rygar",
"Rygar (US set 1)",
"1986",
"Tecmo",
"Nicola Salmoria\nErnesto Corvi (ADPCM sound)",
0,
&rygar_machine_driver,
0,
rygar_rom,
0, 0,
0,
0,
rygar_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
rygar_hiload, rygar_hisave
};
struct GameDriver rygar2_driver =
{
__FILE__,
&rygar_driver,
"rygar2",
"Rygar (US set 2)",
"1986",
"Tecmo",
"Nicola Salmoria\nErnesto Corvi (ADPCM sound)",
0,
&rygar_machine_driver,
0,
rygar2_rom,
0, 0,
0,
0,
rygar_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
rygar_hiload, rygar_hisave
};
struct GameDriver rygarj_driver =
{
__FILE__,
&rygar_driver,
"rygarj",
"Rygar (Japan)",
"1986",
"Tecmo",
"Nicola Salmoria\nErnesto Corvi (ADPCM sound)",
0,
&rygar_machine_driver,
0,
rygarj_rom,
0, 0,
0,
0,
rygar_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
rygar_hiload, rygar_hisave
};
struct GameDriver gemini_driver =
{
__FILE__,
0,
"gemini",
"Gemini Wing",
"1987",
"Tecmo",
"Nicola Salmoria (MAME driver)\nMirko Buffoni (additional code)\nMartin Binder (dip switches)",
0,
&gemini_machine_driver,
0,
gemini_rom,
0, 0,
0,
0,
gemini_input_ports,
0, 0, 0,
ORIENTATION_ROTATE_90,
gemini_hiload, gemini_hisave
};
struct GameDriver silkworm_driver =
{
__FILE__,
0,
"silkworm",
"Silkworm (set 1)",
"1988",
"Tecmo",
"Nicola Salmoria",
0,
&silkworm_machine_driver,
0,
silkworm_rom,
0, 0,
0,
0,
silkworm_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
silkworm_hiload, silkworm_hisave
};
struct GameDriver silkwrm2_driver =
{
__FILE__,
&silkworm_driver,
"silkwrm2",
"Silkworm (set 2)",
"1988",
"Tecmo",
"Nicola Salmoria",
0,
&silkworm_machine_driver,
0,
silkwrm2_rom,
0, 0,
0,
0,
silkworm_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
silkworm_hiload, silkworm_hisave
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -