📄 commando.c
字号:
sound_readmem,sound_writemem,0,0,
interrupt,4
}
},
60, 500, /* frames per second, vblank duration */
/* vblank duration is crucial to get proper sprite/background alignment */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
0,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
256,16*4+4*16+16*8,
commando_vh_convert_color_prom,
VIDEO_TYPE_RASTER,
0,
commando_vh_start,
commando_vh_stop,
commando_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_YM2203,
&ym2203_interface
}
}
};
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( commando_rom )
ROM_REGION(0x1c000) /* 64k for code */
ROM_LOAD( "m09_cm04.bin", 0x0000, 0x8000, 0x8438b694 )
ROM_LOAD( "m08_cm03.bin", 0x8000, 0x4000, 0x35486542 )
ROM_REGION_DISPOSE(0x34000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "d05_vt01.bin", 0x00000, 0x4000, 0x505726e0 ) /* characters */
ROM_LOAD( "a05_vt11.bin", 0x04000, 0x4000, 0x7b2e1b48 ) /* tiles */
ROM_LOAD( "a06_vt12.bin", 0x08000, 0x4000, 0x81b417d3 )
ROM_LOAD( "a07_vt13.bin", 0x0c000, 0x4000, 0x5612dbd2 )
ROM_LOAD( "a08_vt14.bin", 0x10000, 0x4000, 0x2b2dee36 )
ROM_LOAD( "a09_vt15.bin", 0x14000, 0x4000, 0xde70babf )
ROM_LOAD( "a10_vt16.bin", 0x18000, 0x4000, 0x14178237 )
ROM_LOAD( "e07_vt05.bin", 0x1c000, 0x4000, 0x79f16e3d ) /* sprites */
ROM_LOAD( "e08_vt06.bin", 0x20000, 0x4000, 0x26fee521 )
ROM_LOAD( "e09_vt07.bin", 0x24000, 0x4000, 0xca88bdfd )
ROM_LOAD( "h07_vt08.bin", 0x28000, 0x4000, 0x2019c883 )
ROM_LOAD( "h08_vt09.bin", 0x2c000, 0x4000, 0x98703982 )
ROM_LOAD( "h09_vt10.bin", 0x30000, 0x4000, 0xf069d2f8 )
ROM_REGION(0x0300) /* color PROMs */
ROM_LOAD( "01d_vtb1.bin", 0x0000, 0x0100, 0x3aba15a1 )
ROM_LOAD( "02d_vtb2.bin", 0x0100, 0x0100, 0x88865754 )
ROM_LOAD( "03d_vtb3.bin", 0x0200, 0x0100, 0x4c14c3f6 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "f09_cm02.bin", 0x0000, 0x4000, 0xf9cc4a74 )
ROM_END
ROM_START( commandu_rom )
ROM_REGION(0x1c000) /* 64k for code */
ROM_LOAD( "u4-f", 0x0000, 0x8000, 0xa6118935 )
ROM_LOAD( "u3-f", 0x8000, 0x4000, 0x24f49684 )
ROM_REGION_DISPOSE(0x34000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "d05_vt01.bin", 0x00000, 0x4000, 0x505726e0 ) /* characters */
ROM_LOAD( "a05_vt11.bin", 0x04000, 0x4000, 0x7b2e1b48 ) /* tiles */
ROM_LOAD( "a06_vt12.bin", 0x08000, 0x4000, 0x81b417d3 )
ROM_LOAD( "a07_vt13.bin", 0x0c000, 0x4000, 0x5612dbd2 )
ROM_LOAD( "a08_vt14.bin", 0x10000, 0x4000, 0x2b2dee36 )
ROM_LOAD( "a09_vt15.bin", 0x14000, 0x4000, 0xde70babf )
ROM_LOAD( "a10_vt16.bin", 0x18000, 0x4000, 0x14178237 )
ROM_LOAD( "e07_vt05.bin", 0x1c000, 0x4000, 0x79f16e3d ) /* sprites */
ROM_LOAD( "e08_vt06.bin", 0x20000, 0x4000, 0x26fee521 )
ROM_LOAD( "e09_vt07.bin", 0x24000, 0x4000, 0xca88bdfd )
ROM_LOAD( "h07_vt08.bin", 0x28000, 0x4000, 0x2019c883 )
ROM_LOAD( "h08_vt09.bin", 0x2c000, 0x4000, 0x98703982 )
ROM_LOAD( "h09_vt10.bin", 0x30000, 0x4000, 0xf069d2f8 )
ROM_REGION(0x0300) /* color PROMs */
ROM_LOAD( "01d_vtb1.bin", 0x0000, 0x0100, 0x3aba15a1 )
ROM_LOAD( "02d_vtb2.bin", 0x0100, 0x0100, 0x88865754 )
ROM_LOAD( "03d_vtb3.bin", 0x0200, 0x0100, 0x4c14c3f6 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "f09_cm02.bin", 0x0000, 0x4000, 0xf9cc4a74 )
ROM_END
ROM_START( commandj_rom )
ROM_REGION(0x1c000) /* 64k for code */
ROM_LOAD( "09m_so04.bin", 0x0000, 0x8000, 0xd3f2bfb3 )
ROM_LOAD( "08m_so03.bin", 0x8000, 0x4000, 0xed01f472 )
ROM_REGION_DISPOSE(0x34000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "d05_vt01.bin", 0x00000, 0x4000, 0x505726e0 ) /* characters */
ROM_LOAD( "a05_vt11.bin", 0x04000, 0x4000, 0x7b2e1b48 ) /* tiles */
ROM_LOAD( "a06_vt12.bin", 0x08000, 0x4000, 0x81b417d3 )
ROM_LOAD( "a07_vt13.bin", 0x0c000, 0x4000, 0x5612dbd2 )
ROM_LOAD( "a08_vt14.bin", 0x10000, 0x4000, 0x2b2dee36 )
ROM_LOAD( "a09_vt15.bin", 0x14000, 0x4000, 0xde70babf )
ROM_LOAD( "a10_vt16.bin", 0x18000, 0x4000, 0x14178237 )
ROM_LOAD( "e07_vt05.bin", 0x1c000, 0x4000, 0x79f16e3d ) /* sprites */
ROM_LOAD( "e08_vt06.bin", 0x20000, 0x4000, 0x26fee521 )
ROM_LOAD( "e09_vt07.bin", 0x24000, 0x4000, 0xca88bdfd )
ROM_LOAD( "h07_vt08.bin", 0x28000, 0x4000, 0x2019c883 )
ROM_LOAD( "h08_vt09.bin", 0x2c000, 0x4000, 0x98703982 )
ROM_LOAD( "h09_vt10.bin", 0x30000, 0x4000, 0xf069d2f8 )
ROM_REGION(0x0300) /* color PROMs */
ROM_LOAD( "01d_vtb1.bin", 0x0000, 0x0100, 0x3aba15a1 )
ROM_LOAD( "02d_vtb2.bin", 0x0100, 0x0100, 0x88865754 )
ROM_LOAD( "03d_vtb3.bin", 0x0200, 0x0100, 0x4c14c3f6 )
ROM_REGION(0x10000) /* 64k for the audio CPU */
ROM_LOAD( "09f_so02.bin", 0x0000, 0x4000, 0xca20aca5 )
ROM_END
static void commando_decode(void)
{
int A;
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
/* the first opcode is not encrypted */
ROM[0] = RAM[0];
for (A = 1;A < 0xc000;A++)
{
int src;
src = RAM[A];
ROM[A] = src ^ (src & 0xee) ^ ((src & 0xe0) >> 4) ^ ((src & 0x0e) << 4);
}
}
static int 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[0xee00],"\x00\x50\x00",3) == 0 &&
memcmp(&RAM[0xee4e],"\x00\x08\x00",3) == 0 &&
memcmp(&RAM[0xee97],"\x00\x50\x00",3) == 0) /* high score */
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xee00],13*7);
RAM[0xee97] = RAM[0xee00];
RAM[0xee98] = RAM[0xee01];
RAM[0xee99] = RAM[0xee02];
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void 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[0xee00],13*7);
osd_fclose(f);
RAM[0xee01]=0;
}
}
struct GameDriver commando_driver =
{
__FILE__,
0,
"commando",
"Commando (World)",
"1985",
"Capcom",
"Paul Johnson (hardware info)\nNicola Salmoria (MAME driver)",
0,
&machine_driver,
0,
commando_rom,
0, commando_decode,
0,
0, /* sound_prom */
input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver commandu_driver =
{
__FILE__,
&commando_driver,
"commandu",
"Commando (US)",
"1985",
"Capcom (Data East USA license)",
"Paul Johnson (hardware info)\nNicola Salmoria (MAME driver)",
0,
&machine_driver,
0,
commandu_rom,
0, commando_decode,
0,
0, /* sound_prom */
input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver commandj_driver =
{
__FILE__,
&commando_driver,
"commandj",
"Senjo no Ookami",
"1985",
"Capcom",
"Paul Johnson (hardware info)\nNicola Salmoria (MAME driver)",
0,
&machine_driver,
0,
commandj_rom,
0, commando_decode,
0,
0, /* sound_prom */
input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -