📄 phoenix.c
字号:
"phoenix2.sam",
0 /* end of array */
};
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( phoenix_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "ic45", 0x0000, 0x0800, 0x9f68086b )
ROM_LOAD( "ic46", 0x0800, 0x0800, 0x273a4a82 )
ROM_LOAD( "ic47", 0x1000, 0x0800, 0x3d4284b9 )
ROM_LOAD( "ic48", 0x1800, 0x0800, 0xcb5d9915 )
ROM_LOAD( "ic49", 0x2000, 0x0800, 0xa105e4e7 )
ROM_LOAD( "ic50", 0x2800, 0x0800, 0xac5e9ec1 )
ROM_LOAD( "ic51", 0x3000, 0x0800, 0x2eab35b4 )
ROM_LOAD( "ic52", 0x3800, 0x0800, 0xaff8e9c5 )
ROM_REGION_DISPOSE(0x2000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "ic23", 0x0000, 0x0800, 0x3c7e623f )
ROM_LOAD( "ic24", 0x0800, 0x0800, 0x59916d3b )
ROM_LOAD( "ic39", 0x1000, 0x0800, 0x53413e8f )
ROM_LOAD( "ic40", 0x1800, 0x0800, 0x0be2ba91 )
ROM_REGION(0x0200) /* color PROMs */
ROM_LOAD( "ic40_b.bin", 0x0000, 0x0100, 0x79350b25 ) /* palette low bits */
ROM_LOAD( "ic41_a.bin", 0x0100, 0x0100, 0xe176b768 ) /* palette high bits */
ROM_END
ROM_START( phoenixt_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "phoenix.45", 0x0000, 0x0800, 0x5b8c55a8 )
ROM_LOAD( "phoenix.46", 0x0800, 0x0800, 0xdbc942fa )
ROM_LOAD( "phoenix.47", 0x1000, 0x0800, 0xcbbb8839 )
ROM_LOAD( "phoenix.48", 0x1800, 0x0800, 0xcb65eff8 )
ROM_LOAD( "phoenix.49", 0x2000, 0x0800, 0xc8a5d6d6 )
ROM_LOAD( "ic50", 0x2800, 0x0800, 0xac5e9ec1 )
ROM_LOAD( "ic51", 0x3000, 0x0800, 0x2eab35b4 )
ROM_LOAD( "phoenix.52", 0x3800, 0x0800, 0xb9915263 )
ROM_REGION_DISPOSE(0x2000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "ic23", 0x0000, 0x0800, 0x3c7e623f )
ROM_LOAD( "ic24", 0x0800, 0x0800, 0x59916d3b )
ROM_LOAD( "ic39", 0x1000, 0x0800, 0x53413e8f )
ROM_LOAD( "ic40", 0x1800, 0x0800, 0x0be2ba91 )
ROM_REGION(0x0200) /* color PROMs */
ROM_LOAD( "ic40_b.bin", 0x0000, 0x0100, 0x79350b25 ) /* palette low bits */
ROM_LOAD( "ic41_a.bin", 0x0100, 0x0100, 0xe176b768 ) /* palette high bits */
ROM_END
ROM_START( phoenix3_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "phoenix3.45", 0x0000, 0x0800, 0xa362cda0 )
ROM_LOAD( "phoenix3.46", 0x0800, 0x0800, 0x5748f486 )
ROM_LOAD( "phoenix3.47", 0x1000, 0x0800, 0xcbbb8839 )
ROM_LOAD( "phoenix3.48", 0x1800, 0x0800, 0xb5d97a4d )
ROM_LOAD( "phoenix3.49", 0x2000, 0x0800, 0xa105e4e7 )
ROM_LOAD( "ic50", 0x2800, 0x0800, 0xac5e9ec1 )
ROM_LOAD( "ic51", 0x3000, 0x0800, 0x2eab35b4 )
ROM_LOAD( "phoenix3.52", 0x3800, 0x0800, 0xd2c5c984 )
ROM_REGION_DISPOSE(0x2000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "ic23", 0x0000, 0x0800, 0x3c7e623f )
ROM_LOAD( "ic24", 0x0800, 0x0800, 0x59916d3b )
ROM_LOAD( "ic39", 0x1000, 0x0800, 0x53413e8f )
ROM_LOAD( "ic40", 0x1800, 0x0800, 0x0be2ba91 )
ROM_REGION(0x0200) /* color PROMs */
ROM_LOAD( "ic40_b.bin", 0x0000, 0x0100, 0x79350b25 ) /* palette low bits */
ROM_LOAD( "ic41_a.bin", 0x0100, 0x0100, 0xe176b768 ) /* palette high bits */
ROM_END
ROM_START( phoenixc_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "phoenix.45", 0x0000, 0x0800, 0x5b8c55a8 )
ROM_LOAD( "phoenix.46", 0x0800, 0x0800, 0xdbc942fa )
ROM_LOAD( "phoenix.47", 0x1000, 0x0800, 0xcbbb8839 )
ROM_LOAD( "phoenixc.48", 0x1800, 0x0800, 0x5ae0b215 )
ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, 0x1a1ce0d0 )
ROM_LOAD( "ic50", 0x2800, 0x0800, 0xac5e9ec1 )
ROM_LOAD( "ic51", 0x3000, 0x0800, 0x2eab35b4 )
ROM_LOAD( "phoenixc.52", 0x3800, 0x0800, 0x8424d7c4 )
ROM_REGION_DISPOSE(0x2000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "ic23", 0x0000, 0x0800, 0x3c7e623f )
ROM_LOAD( "ic24", 0x0800, 0x0800, 0x59916d3b )
ROM_LOAD( "phoenixc.39", 0x1000, 0x0800, 0xbb0525ed )
ROM_LOAD( "phoenixc.40", 0x1800, 0x0800, 0x4178aa4f )
ROM_REGION(0x0200) /* color PROMs */
ROM_LOAD( "ic40_b.bin", 0x0000, 0x0100, 0x79350b25 ) /* palette low bits */
ROM_LOAD( "ic41_a.bin", 0x0100, 0x0100, 0xe176b768 ) /* palette high bits */
ROM_END
ROM_START( pleiads_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "ic45.bin", 0x0000, 0x0800, 0x93fc2958 )
ROM_LOAD( "ic46.bin", 0x0800, 0x0800, 0xe2b5b8cd )
ROM_LOAD( "ic47.bin", 0x1000, 0x0800, 0x87e700bb )
ROM_LOAD( "ic48.bin", 0x1800, 0x0800, 0x2d5198d0 )
ROM_LOAD( "ic49.bin", 0x2000, 0x0800, 0x9dc73e63 )
ROM_LOAD( "ic50.bin", 0x2800, 0x0800, 0xf1a8a00d )
ROM_LOAD( "ic51.bin", 0x3000, 0x0800, 0x6f56f317 )
ROM_LOAD( "ic52.bin", 0x3800, 0x0800, 0xb1b5a8a6 )
ROM_REGION_DISPOSE(0x2000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "ic23.bin", 0x0000, 0x0800, 0x4e30f9e7 )
ROM_LOAD( "ic24.bin", 0x0800, 0x0800, 0x5188fc29 )
ROM_LOAD( "ic39.bin", 0x1000, 0x0800, 0x85866607 )
ROM_LOAD( "ic40.bin", 0x1800, 0x0800, 0xa841d511 )
ROM_REGION(0x0200) /* color PROMs */
ROM_LOAD( "7611-5.26", 0x0000, 0x0100, 0x7a1bcb1e ) /* palette low bits */
ROM_LOAD( "7611-5.33", 0x0100, 0x0100, 0xe38eeb83 ) /* palette high bits */
ROM_END
ROM_START( pleiadce_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "pleiades.47", 0x0000, 0x0800, 0x711e2ba0 )
ROM_LOAD( "pleiades.48", 0x0800, 0x0800, 0x93a36943 )
ROM_LOAD( "ic47.bin", 0x1000, 0x0800, 0x87e700bb )
ROM_LOAD( "pleiades.50", 0x1800, 0x0800, 0x5a9beba0 )
ROM_LOAD( "pleiades.51", 0x2000, 0x0800, 0x1d828719 )
ROM_LOAD( "ic50.bin", 0x2800, 0x0800, 0xf1a8a00d )
ROM_LOAD( "pleiades.53", 0x3000, 0x0800, 0x037b319c )
ROM_LOAD( "pleiades.54", 0x3800, 0x0800, 0xca264c7c )
ROM_REGION_DISPOSE(0x2000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "pleiades.45", 0x0000, 0x0800, 0x8dbd3785 )
ROM_LOAD( "pleiades.44", 0x0800, 0x0800, 0x0db3e436 )
ROM_LOAD( "ic39.bin", 0x1000, 0x0800, 0x85866607 )
ROM_LOAD( "ic40.bin", 0x1800, 0x0800, 0xa841d511 )
ROM_REGION(0x0200) /* color PROMs */
ROM_LOAD( "7611-5.26", 0x0000, 0x0100, 0x7a1bcb1e ) /* palette low bits */
ROM_LOAD( "7611-5.33", 0x0100, 0x0100, 0xe38eeb83 ) /* palette high bits */
ROM_END
static int hiload(void)
{
void *f;
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[0x438a],"\x00\x00\x0f",3) == 0)
{
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0x4388],4);
/* copy the high score to the screen */
/* // I suppose noone can do such an HISCORE!!! ;)
phoenix_videoram2_w(0x0221, (RAM[0x4388] >> 4)+0x20);
phoenix_videoram2_w(0x0201, (RAM[0x4388] & 0xf)+0x20);
*/
RAM[0x49e1] = (RAM[0x4389] >> 4) + 0x20;
RAM[0x49c1] = (RAM[0x4389] & 0xf) + 0x20;
RAM[0x49a1] = (RAM[0x438a] >> 4) + 0x20;
RAM[0x4981] = (RAM[0x438a] & 0xf) + 0x20;
RAM[0x4961] = (RAM[0x438b] >> 4) + 0x20;
RAM[0x4941] = (RAM[0x438b] & 0xf) + 0x20;
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static unsigned long get_score(unsigned char *score)
{
return (score[3])+(256*score[2])+((unsigned long)(65536)*score[1])+((unsigned long)(65536)*256*score[0]);
}
static void hisave(void)
{
unsigned long score1,score2,hiscore;
void *f;
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
score1 = get_score(&RAM[0x4380]);
score2 = get_score(&RAM[0x4384]);
hiscore = get_score(&RAM[0x4388]);
if (score1 > hiscore) RAM += 0x4380; /* check consistency */
else if (score2 > hiscore) RAM += 0x4384;
else RAM += 0x4388;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
{
osd_fwrite(f,&RAM[0],4);
osd_fclose(f);
}
}
struct GameDriver phoenix_driver =
{
__FILE__,
0,
"phoenix",
"Phoenix (Amstar)",
"1980",
"Amstar",
"Richard Davies\nBrad Oliver\nMirko Buffoni\nNicola Salmoria\nShaun Stephenson\nAndrew Scott\nTim Lindquist (color info)\nMarco Cassili",
0,
&machine_driver,
0,
phoenix_rom,
0, 0,
phoenix_sample_names,
0, /* sound_prom */
phoenix_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver phoenixt_driver =
{
__FILE__,
&phoenix_driver,
"phoenixt",
"Phoenix (Taito)",
"1980",
"Taito",
"Richard Davies\nBrad Oliver\nMirko Buffoni\nNicola Salmoria\nShaun Stephenson\nAndrew Scott\nTim Lindquist (color info)\nMarco Cassili",
0,
&machine_driver,
0,
phoenixt_rom,
0, 0,
phoenix_sample_names,
0, /* sound_prom */
phoenixt_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver phoenix3_driver =
{
__FILE__,
&phoenix_driver,
"phoenix3",
"Phoenix (T.P.N.)",
"1980",
"bootleg",
"Richard Davies\nBrad Oliver\nMirko Buffoni\nNicola Salmoria\nShaun Stephenson\nAndrew Scott\nTim Lindquist (color info)\nMarco Cassili",
0,
&machine_driver,
0,
phoenix3_rom,
0, 0,
phoenix_sample_names,
0, /* sound_prom */
phoenix3_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver phoenixc_driver =
{
__FILE__,
&phoenix_driver,
"phoenixc",
"Phoenix (IRECSA, G.G.I Corp)",
"1981",
"bootleg?",
"Richard Davies\nBrad Oliver\nMirko Buffoni\nNicola Salmoria\nShaun Stephenson\nAndrew Scott\nTim Lindquist (color info)\nMarco Cassili",
0,
&machine_driver,
0,
phoenixc_rom,
0, 0,
phoenix_sample_names,
0, /* sound_prom */
phoenixt_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver pleiads_driver =
{
__FILE__,
0,
"pleiads",
"Pleiads (Tehkan)",
"1981",
"Tehkan",
"Richard Davies\nBrad Oliver\nMirko Buffoni\nNicola Salmoria\nShaun Stephenson\nAndrew Scott\nMarco Cassili",
0,
&pleiads_machine_driver,
0,
pleiads_rom,
0, 0,
phoenix_sample_names,
0, /* sound_prom */
pleiads_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver pleiadce_driver =
{
__FILE__,
&pleiads_driver,
"pleiadce",
"Pleiads (Centuri)",
"1981",
"Tehkan (Centuri license)",
"Richard Davies\nBrad Oliver\nMirko Buffoni\nNicola Salmoria\nShaun Stephenson\nAndrew Scott\nMarco Cassili",
0,
&pleiads_machine_driver,
0,
pleiadce_rom,
0, 0,
phoenix_sample_names,
0, /* sound_prom */
pleiads_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -