📄 8080bw.c
字号:
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)
{
/* Save the actual score */
osd_fwrite(f,&RAM[0x20F4],0x02);
/* Save the name */
osd_fwrite(f,&RAM[0x20CF],0xa);
/* Save the high score length */
osd_fwrite(f,&RAM[0x20DB],0x1);
osd_fclose(f);
RAM[0x20CF] = 0;
}
}
struct GameDriver lrescue_driver =
{
__FILE__,
0,
"lrescue",
"Lunar Rescue",
"1979",
"Taito",
"Michael Strutts (Space Invaders emulator)\nNicola Salmoria\nTormod Tjaberg (sound)\nMirko Buffoni\nValerio Verrando\nMarco Cassili",
0,
&lrescue_machine_driver,
0,
lrescue_rom,
0, 0,
invaders_sample_names,
0, /* sound_prom */
lrescue_input_ports,
0, palette, 0,
ORIENTATION_ROTATE_270,
lrescue_hiload, lrescue_hisave /* V.V */
};
struct GameDriver grescue_driver =
{
__FILE__,
&lrescue_driver,
"grescue",
"Galaxy Rescue (bootleg?)",
"1979",
"bootleg?",
"Michael Strutts (Space Invaders emulator)\nNicola Salmoria\nTormod Tjaberg (sound)\nMirko Buffoni\nValerio Verrando\nMarco Cassili",
0,
&lrescue_machine_driver,
0,
grescue_rom,
0, 0,
invaders_sample_names,
0, /* sound_prom */
lrescue_input_ports,
0, palette, 0,
ORIENTATION_ROTATE_270,
lrescue_hiload, lrescue_hisave /* V.V */
};
/*******************************************************/
/* */
/* ?????? "Destination Earth" */
/* */
/*******************************************************/
ROM_START( desterth_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "36_h.bin", 0x0000, 0x0800, 0xf86923e5 )
ROM_LOAD( "35_g.bin", 0x0800, 0x0800, 0x797f440d )
ROM_LOAD( "34_f.bin", 0x1000, 0x0800, 0x993d0846 )
ROM_LOAD( "33_e.bin", 0x1800, 0x0800, 0x8d155fc5 )
ROM_LOAD( "32_d.bin", 0x4000, 0x0800, 0x3f531b6f )
ROM_LOAD( "31_c.bin", 0x4800, 0x0800, 0xab019c30 )
ROM_LOAD( "42_b.bin", 0x5000, 0x0800, 0xed9dbac6 )
ROM_END
INPUT_PORTS_START( desterth_input_ports )
PORT_START /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* DSW0 */
PORT_DIPNAME( 0x03, 0x00, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "4" )
PORT_DIPSETTING( 0x02, "5" )
PORT_DIPSETTING( 0x03, "6" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_DIPNAME( 0x08, 0x00, "Unknown", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "On" )
PORT_DIPSETTING( 0x08, "Off" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_DIPNAME( 0x80, 0x00, "Coinage", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "1 Coin/1 Credit" )
PORT_DIPSETTING( 0x80, "2 Coins/1 Credit" )
INPUT_PORTS_END
static int desterth_hiload(void) /* V.V */ /* Whole function */
{
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[0x20CF],"\x1b\x07",2) == 0)
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
/* Load the actual score */
osd_fread(f,&RAM[0x20F4], 0x2);
/* Load the name */
osd_fread(f,&RAM[0x20CF], 0xa);
/* Load the high score length */
osd_fread(f,&RAM[0x20DB], 0x1);
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
struct GameDriver desterth_driver =
{
__FILE__,
&lrescue_driver,
"desterth",
"Destination Earth",
"1979",
"bootleg",
"Michael Strutts (Space Invaders emulator)\nNicola Salmoria\nTormod Tjaberg (sound)\nMirko Buffoni\nValerio Verrando\nMarco Cassili",
0,
&machine_driver,
0,
desterth_rom,
0, 0,
invaders_sample_names,
0, /* sound_prom */
desterth_input_ports,
0, palette, 0,
ORIENTATION_ROTATE_270,
desterth_hiload, lrescue_hisave
};
/*******************************************************/
/* */
/* Universal "Cosmic Monsters" */
/* */
/*******************************************************/
ROM_START( cosmicmo_rom ) /* L.T */
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "cosmicmo.1", 0x0000, 0x0400, 0xd6e4e5da )
ROM_LOAD( "cosmicmo.2", 0x0400, 0x0400, 0x8f7988e6 )
ROM_LOAD( "cosmicmo.3", 0x0800, 0x0400, 0x2d2e9dc8 )
ROM_LOAD( "cosmicmo.4", 0x0c00, 0x0400, 0x26cae456 )
ROM_LOAD( "cosmicmo.5", 0x4000, 0x0400, 0xb13f228e )
ROM_LOAD( "cosmicmo.6", 0x4400, 0x0400, 0x4ae1b9c4 )
ROM_LOAD( "cosmicmo.7", 0x4800, 0x0400, 0x6a13b15b )
ROM_END
INPUT_PORTS_START( cosmicmo_input_ports )
PORT_START /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* DSW0 */
PORT_DIPNAME( 0x03, 0x00, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x02, "4" )
PORT_DIPSETTING( 0x03, "5" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_DIPNAME( 0x08, 0x00, "Unknown", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "On" )
PORT_DIPSETTING( 0x08, "Off" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_DIPNAME( 0x80, 0x00, "Coinage", IP_KEY_NONE )
PORT_DIPSETTING( 0x00, "1 Coin/1 Credit" )
PORT_DIPSETTING( 0x80, "1 Coin/2 Credits" )
INPUT_PORTS_END
struct GameDriver cosmicmo_driver =
{
__FILE__,
&invaders_driver,
"cosmicmo",
"Cosmic Monsters",
"1979",
"Universal",
"Michael Strutts (Space Invaders emulator)\nNicola Salmoria\nTormod Tjaberg (sound)\nMirko Buffoni\nValerio Verrando\nLee Taylor\nMarco Cassili",
0,
&machine_driver,
0,
cosmicmo_rom,
0, 0,
invaders_sample_names,
0, /* sound_prom */
cosmicmo_input_ports,
0, palette, 0,
ORIENTATION_ROTATE_270,
invaders_hiload, invaders_hisave
};
/*******************************************************/
/* */
/* Zilec "Space Phantoms" */
/* */
/*******************************************************/
ROM_START( spaceph_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "sv01.bin", 0x0000, 0x0400, 0xde84771d )
ROM_LOAD( "sv02.bin", 0x0400, 0x0400, 0x957fc661 )
ROM_LOAD( "sv03.bin", 0x0800, 0x0400, 0xdbda38b9 )
ROM_LOAD( "sv04.bin", 0x0c00, 0x0400, 0xf51544a5 )
ROM_LOAD( "sv05.bin", 0x1000, 0x0400, 0x98d02683 )
ROM_LOAD( "sv06.bin", 0x1400, 0x0400, 0x4ec390fd )
ROM_LOAD( "sv07.bin", 0x1800, 0x0400, 0x170862fd )
ROM_LOAD( "sv08.bin", 0x1c00, 0x0400, 0x511b12cf )
ROM_LOAD( "sv09.bin", 0x4000, 0x0400, 0xaf1cd1af )
ROM_LOAD( "sv10.bin", 0x4400, 0x0400, 0x31b7692e )
ROM_LOAD( "sv11.bin", 0x4800, 0x0400, 0x50257351 )
ROM_LOAD( "sv12.bin", 0x4c00, 0x0400, 0xa2a3366a )
ROM_END
INPUT_PORTS_START( spaceph_input_ports )
PORT_START /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START /* IN1 */
PORT_DIPNAME( 0x03, 0x00, "Fuel", IP_KEY_NONE )
PORT_DIPSETTING( 0x03, "35000" )
PORT_DIPSETTING( 0x02, "25000" )
PORT_DIPSETTING( 0x01, "20000" )
PORT_DIPSETTING( 0x00, "15000" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Tilt */
PORT_DIPNAME( 0x08, 0x00, "Bonus Fuel", IP_KEY_NONE )
PORT_DIPSETTING( 0x08, "10000" )
PORT_DIPSETTING( 0x00, "15000" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Fire */
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Left */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Right */
PORT_DIPNAME( 0x80, 0x00, "Coinage", IP_KEY_NONE )
PORT_DIPSETTING( 0x80, "1 Coin/2 Credits" )
PORT_DIPSETTING( 0x00, "1 Coin/1 Credit" )
INPUT_PORTS_END
static int spaceph_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[0x275d],"\x45\x41",2) == 0)
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
int hi;
osd_fread(f,&RAM[0x2043],2);
osd_fclose(f);
hi = (RAM[0x2043] & 0x0f) +
(RAM[0x2043] >> 4) * 10 +
(RAM[0x2044] & 0x0f) * 100 +
(RAM[0x2044] >> 4) * 1000;
mix_hiscoreprint(12, 2, hi, 4, 8, 1,0x1400, 0x25c, 1);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void spaceph_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[0x2043],2);
osd_fclose(f);
RAM[0x275d] = 0;
}
}
/* LT 3-12-1997 */
struct GameDriver spaceph_driver =
{
__FILE__,
0,
"spaceph",
"Space Phantoms",
"????",
"Zilec Games",
"Michael Strutts (Space Invaders emulator)\nNicola Salmoria\nTormod Tjaberg (sound)\nMirko Buffoni\nValerio Verrando\nLee Taylor\nPaul Swan\nMarco Cassili",
0,
&lrescue_machine_driver,
0,
spaceph_rom,
0, 0,
invaders_sample_names,
0, /* sound_prom */
spaceph_input_ports,
0, palette, 0,
ORIENTATION_ROTATE_270,
spaceph_hiload,spaceph_hisave
};
/*******************************************************/
/* */
/* Nichibutsu "Rolling Crash" */
/* */
/*******************************************************/
ROM_START( rollingc_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "rc01.bin", 0x0000, 0x0400, 0x66fa50bf )
ROM_LOAD( "rc02.bin", 0x0400, 0x0400, 0x61c06ae4 )
ROM_LOAD( "rc03.bin", 0x0800, 0x0400, 0x77e39fa0 )
ROM_LOAD( "rc04.bin", 0x0c00, 0x0400, 0x3fdfd0f3 )
ROM_LOAD( "rc05.bin", 0x1000, 0x0400, 0xc26a8f5b )
ROM_LOAD( "rc06.bin", 0x1400, 0x0400, 0x0b98dbe5 )
ROM_LOAD( "rc07.bin", 0x1800, 0x0400, 0x6242145c )
ROM_LOAD( "rc08.bin", 0x1c00, 0x0400, 0xd23c2ef1 )
ROM_LOAD( "rc09.bin", 0x4000, 0x0800, 0x2e2c5b95 )
ROM_LOAD( "rc10.bin", 0x4800, 0x0800, 0xef94c502 )
ROM_LOAD( "rc11.bin", 0x5000, 0x0800, 0xa3164b18 )
ROM_LOAD( "rc12.bin", 0x5800, 0x0800, 0x2052f6d9 )
ROM_END
static struct MemoryReadAddress rollingc_readmem[] =
{
{ 0x2000, 0x3fff, MRA_RAM },
{ 0x0000, 0x1fff, MRA_ROM },
{ 0x4000, 0x5fff, MRA_ROM },
{ 0xa400, 0xbfff, MRA_RAM },
{ 0xe400, 0xffff, MRA_RAM },
{ -1 } /* end of table */
};
static struct MemoryWriteAddress rollingc_writemem[] =
{
{ 0x2000, 0x23ff, MWA_RAM },
{ 0x2400, 0x3fff, rollingc_videoram_w, &invaders_videoram },
{ 0x0000, 0x1fff, MWA_ROM },
{ 0x4000, 0x5fff, MWA_ROM },
{ 0xa400, 0xbfff, MWA_RAM },
{ 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -