?? sega.c
字號(hào):
ROM_LOAD( "1857", 0x5000, 0x0800, 0x28699d45 )
ROM_LOAD( "1858", 0x5800, 0x0800, 0x3a7593cb )
ROM_LOAD( "1859", 0x6000, 0x0800, 0x5b11886b )
ROM_LOAD( "1860", 0x6800, 0x0800, 0x62eb96e6 )
ROM_LOAD( "1861", 0x7000, 0x0800, 0x99852d1d )
ROM_LOAD( "1862", 0x7800, 0x0800, 0x76ce27b2 )
ROM_LOAD( "1863", 0x8000, 0x0800, 0xdd92d187 )
ROM_LOAD( "1864", 0x8800, 0x0800, 0xe37d3a1e )
ROM_LOAD( "1865", 0x9000, 0x0800, 0xb2ec8125 )
ROM_LOAD( "1866", 0x9800, 0x0800, 0x6f188354 )
ROM_LOAD( "1867", 0xa000, 0x0800, 0xb0a3eae8 )
ROM_LOAD( "1868", 0xa800, 0x0800, 0x8b4e2e07 )
ROM_LOAD( "1869", 0xb000, 0x0800, 0xe5663070 )
ROM_LOAD( "1870", 0xb800, 0x0800, 0x4340616d )
ROM_END
/***************************************************************************
Hi Score Routines
***************************************************************************/
static int spacfury_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[0xC924],"\x90\x02",2) == 0) &&
(memcmp(&RAM[0xC95C],"\x10\x00",2) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xC924],2*30); /* 2 bytes * 30 scores */
osd_fread(f,&RAM[0xCFD2],3*10); /* 3 letters * 10 scores */
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void spacfury_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[0xC924],2*30); /* 2 bytes * 30 scores */
osd_fwrite(f,&RAM[0xCFD2],3*10); /* 3 letters * 10 scores */
osd_fclose(f);
}
}
static int zektor_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[0xC924],"\x90\x02",2) == 0) &&
(memcmp(&RAM[0xC95C],"\x10\x00",2) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xC924],2*30); /* 2 bytes * 30 scores? */
osd_fread(f,&RAM[0xCFD2],3*5); /* 3 letters * 5 scores */
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void zektor_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[0xC924],2*30); /* 2 bytes * 30 scores? */
osd_fwrite(f,&RAM[0xCFD2],3*5); /* 3 letters * 5 scores */
osd_fclose(f);
}
}
static int tacscan_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[0xCB44],"MCL",3) == 0) &&
(memcmp(&RAM[0xCB95],"\x02\x03\x00",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xCB44],3*5); /* initials */
osd_fread(f,&RAM[0xCB95],3*5); /* scores */
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void tacscan_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[0xCB44],3*5); /* initials */
osd_fwrite(f,&RAM[0xCB95],3*5); /* scores */
osd_fclose(f);
}
}
static int elim2_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[0xC99F],"\x0C\x0B\x07",3) == 0) &&
(memcmp(&RAM[0xC9BA],"\x0A\x08\x03",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xC924],2*30); /* 2 bytes * 30 scores */
osd_fread(f,&RAM[0xC99F],3*10); /* 3 letters * 10 scores */
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void elim2_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[0xC924],2*30); /* 2 bytes * 30 scores */
osd_fwrite(f,&RAM[0xC99F],3*10); /* 3 letters * 10 scores */
osd_fclose(f);
}
}
static int elim4_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[0xCC4D],"\x0C\x0B\x07",3) == 0) &&
(memcmp(&RAM[0xCC68],"\x0A\x08\x03",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xC928],2*30); /* 2 bytes * 30 scores */
osd_fread(f,&RAM[0xCC4D],3*10); /* 3 letters * 10 scores */
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void elim4_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[0xC928],2*30); /* 2 bytes * 30 scores */
osd_fwrite(f,&RAM[0xCC4D],3*10); /* 3 letters * 10 scores */
osd_fclose(f);
}
}
static int startrek_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[0xC98B],"SLP",3) == 0) &&
(memcmp(&RAM[0xC910],"\x25\x06\x09",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xC98B],0x1B);
osd_fread(f,&RAM[0xC910],0x24);
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void startrek_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[0xC98B],0x1B);
osd_fwrite(f,&RAM[0xC910],0x24);
osd_fclose(f);
}
}
/***************************************************************************
Game driver(s)
***************************************************************************/
static const char *spacfury_sample_names[] =
{
"*spacfury",
/* Speech samples */
"sf01.sam",
"sf02.sam",
"sf03.sam",
"sf04.sam",
"sf05.sam",
"sf06.sam",
"sf07.sam",
"sf08.sam",
"sf09.sam",
"sf0a.sam",
"sf0b.sam",
"sf0c.sam",
"sf0d.sam",
"sf0e.sam",
"sf0f.sam",
"sf10.sam",
"sf11.sam",
"sf12.sam",
"sf13.sam",
"sf14.sam",
"sf15.sam",
/* Sound samples */
"sfury1.sam",
"sfury2.sam",
"sfury3.sam",
"sfury4.sam",
"sfury5.sam",
"sfury6.sam",
"sfury7.sam",
"sfury8.sam",
"sfury9.sam",
"sfury10.sam",
0 /* end of array */
};
static struct Samplesinterface spacfury_samples_interface =
{
9 /* 9 channels */
};
static struct MachineDriver spacfury_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
3867120, /* 3.86712 Mhz */
0,
readmem, writemem, spacfury_readport, spacfury_writeport,
0, 0, /* no vblank interrupt */
sega_interrupt, 40 /* 40 Hz */
}
},
40, 0, /* frames per second, vblank duration (vector game, so no vblank) */
1, /* single CPU, no need for interleaving */
0,
/* video hardware */
320, 240, { 512, 1536, 552, 1464 },
0,
256,256,
sega_init_colors,
VIDEO_TYPE_VECTOR,
0,
sega_vh_start,
sega_vh_stop,
sega_vh_screenrefresh,
/* sound hardware */
0,
sega_sh_start,
0,
sega_sh_update,
{
{
SOUND_SAMPLES,
&spacfury_samples_interface
}
}
};
struct GameDriver spacfury_driver =
{
__FILE__,
0,
"spacfury",
"Space Fury (revision C)",
"1981",
"Sega",
"Al Kossow (G80 Emu)\nBrad Oliver (MAME driver)\n"VECTOR_TEAM,
0,
&spacfury_machine_driver,
0,
spacfury_rom,
spacfury_decode, 0,
spacfury_sample_names,
0,
spacfury_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
spacfury_hiload, spacfury_hisave
};
struct GameDriver spacfura_driver =
{
__FILE__,
&spacfury_driver,
"spacfura",
"Space Fury (revision A)",
"1981",
"Sega",
"Al Kossow (G80 Emu)\nBrad Oliver (MAME driver)\n"VECTOR_TEAM,
0,
&spacfury_machine_driver,
0,
spacfura_rom,
spacfury_decode, 0,
spacfury_sample_names,
0,
spacfury_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
spacfury_hiload, spacfury_hisave
};
/***************************************************************************
Game driver(s)
***************************************************************************/
static const char *zektor_sample_names[] =
{
"*zektor",
"zk01.sam",
"zk02.sam",
"zk03.sam",
"zk04.sam",
"zk05.sam",
"zk06.sam",
"zk07.sam",
"zk08.sam",
"zk09.sam",
"zk0a.sam",
"zk0b.sam",
"zk0c.sam",
"zk0d.sam",
"zk0e.sam",
"zk0f.sam",
"zk10.sam",
"zk11.sam",
"zk12.sam",
"zk13.sam",
0 /* end of array */
};
static struct Samplesinterface zektor_samples_interface =
{
1 /* only speech for now */
};
static struct MachineDriver zektor_machine_driver =
{
/* basic machine hardware */
{
{
CPU_Z80,
3867120, /* 3.86712 Mhz */
0,
readmem,writemem,zektor_readport,zektor_writeport,
0, 0, /* no vblank interrupt */
sega_interrupt, 40 /* 40 Hz */
}
},
40, 0, /* frames per second, vblank duration (vector game, so no vblank) */
1, /* single CPU, no need for interleaving */
0,
/* video hardware */
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -