📄 btime.c
字号:
static int eggs_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[0x0400],"\x17\x25\x19",3)==0) &&
(memcmp(&RAM[0x041B],"\x00\x47\x00",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0x0400],0x1E);
/* Fix hi score at top */
memcpy(&RAM[0x0015],&RAM[0x0403],3);
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void eggs_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[0x0400],0x1E);
osd_fclose(f);
}
}
static int lnc_hiload(void)
{
unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
static int firsttime=0;
/* check if the hi score table has already been initialized */
/* the high score table is intialized to all 0, so first of all */
/* we dirty it, then we wait for it to be cleared again */
if (firsttime == 0)
{
memset(&RAM[0x0008],0xff,3);
memset(&RAM[0x0294],0xff,16);
memset(&RAM[0x02a6],0xff,16);
firsttime = 1;
}
/* Check if the hi score table has already been initialized.
*/
if ((memcmp(&RAM[0x0008],"\x00\x00\x00",3)==0) &&
(memcmp(&RAM[0x02a6],"\x00\x00\x00",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
int banksave, i;
osd_fread(f,&RAM[0x0008],0x03);
osd_fread(f,&RAM[0x0294],0x0f);
osd_fread(f,&RAM[0x02a6],0x0f);
/* Put high score on screen as we missed when it was done */
/* by the program */
banksave = *lnc_charbank;
*lnc_charbank = 0;
lnc_videoram_w(0x004c, 0x0b);
lnc_videoram_w(0x0052, (RAM[0x0008] & 0x0f) + 1);
lnc_videoram_w(0x0051, (RAM[0x0008] >> 4) + 1);
lnc_videoram_w(0x0050, (RAM[0x0009] & 0x0f) + 1);
lnc_videoram_w(0x004f, (RAM[0x0009] >> 4) + 1);
lnc_videoram_w(0x004e, (RAM[0x000a] & 0x0f) + 1);
lnc_videoram_w(0x004d, (RAM[0x000a] >> 4) + 1);
/* Remove leading zeros */
for (i = 0; i < 5; i++)
{
if (videoram_r(0x004d + i) != 0x01) break;
lnc_videoram_w(0x004c + i, 0x00);
lnc_videoram_w(0x004d + i, 0x0b);
}
*lnc_charbank = banksave;
osd_fclose(f);
}
firsttime = 0;
return 1;
}
/*
* The hi scores can't be loaded yet.
*/
return 0;
}
static void lnc_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[0x0008],0x03);
osd_fwrite(f,&RAM[0x0294],0x0f);
osd_fwrite(f,&RAM[0x02a6],0x0f);
osd_fclose(f);
}
}
static int bnj_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[0x0500],"\x01\x00\x12",3)==0) &&
(memcmp(&RAM[0x050c],"\x00\x19\x82",3) == 0))
/*if (RAM[0x0640] == 0x4d)*/
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0x0500],15);
osd_fread(f,&RAM[0x0640],15);
osd_fclose(f);
/* copy top score to top of screen */
RAM[0x000c] = RAM[0x0500];
RAM[0x000b] = RAM[0x0501];
RAM[0x000a] = RAM[0x0502];
}
return 1;
}
/*
* The hi scores can't be loaded yet.
*/
return 0;
}
static void bnj_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[0x0500],15);
osd_fwrite(f,&RAM[0x0640],15);
osd_fclose(f);
}
}
static int zoar_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[0x034b],"\x20",1) == 0)
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0x02dd],3);
osd_fread(f,&RAM[0x02e5],5*3);
osd_fread(f,&RAM[0x034b],3);
osd_fread(f,&RAM[0x0356],3);
osd_fread(f,&RAM[0x0361],3);
osd_fread(f,&RAM[0x036c],3);
osd_fread(f,&RAM[0x0377],3);
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void zoar_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[0x02dd],3);
osd_fwrite(f,&RAM[0x02e5],5*3);
osd_fwrite(f,&RAM[0x034b],3);
osd_fwrite(f,&RAM[0x0356],3);
osd_fwrite(f,&RAM[0x0361],3);
osd_fwrite(f,&RAM[0x036c],3);
osd_fwrite(f,&RAM[0x0377],3);
osd_fclose(f);
}
}
struct GameDriver btime_driver =
{
__FILE__,
0,
"btime",
"Burger Time (Midway)",
"1982",
"Data East (Bally Midway license)",
"Kevin Brisley (Replay emulator)\nMirko Buffoni (MAME driver)\nNicola Salmoria (MAME driver)\nZsolt Vasvari (ROM decryption)",
0,
&btime_machine_driver,
0,
btime_rom,
0, btime_decode,
0,
0, /* sound_prom */
btime_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
btime_hiload, btime_hisave
};
struct GameDriver btimea_driver =
{
__FILE__,
&btime_driver,
"btimea",
"Burger Time (Data East)",
"1982",
"Data East Corporation",
"Kevin Brisley (Replay emulator)\nMirko Buffoni (MAME driver)\nNicola Salmoria (MAME driver)\nZsolt Vasvari (ROM decryption)",
0,
&btime_machine_driver,
0,
btimea_rom,
0, btime_decode,
0,
0, /* sound_prom */
btime_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
btime_hiload, btime_hisave
};
struct GameDriver cookrace_driver =
{
__FILE__,
&btime_driver,
"cookrace",
"Cook Race",
"1982",
"bootleg",
"Kevin Brisley (Replay emulator)\nMirko Buffoni (MAME driver)\nNicola Salmoria (MAME driver)",
0,
&cookrace_machine_driver,
0,
cookrace_rom,
0, cookrace_decode,
0,
0, /* sound_prom */
cookrace_input_ports,
PROM_MEMORY_REGION(3), 0, 0,
ORIENTATION_DEFAULT,
0, 0
};
struct GameDriver eggs_driver =
{
__FILE__,
0,
"eggs",
"Eggs",
"1983",
"Universal USA",
"Nicola Salmoria",
0,
&eggs_machine_driver,
0,
eggs_rom,
0, 0,
0,
0, /* sound_prom */
eggs_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_DEFAULT,
eggs_hiload, eggs_hisave
};
struct GameDriver scregg_driver =
{
__FILE__,
&eggs_driver,
"scregg",
"Scrambled Egg",
"1983",
"Technos",
"Nicola Salmoria",
0,
&eggs_machine_driver,
0,
scregg_rom,
0, 0,
0,
0, /* sound_prom */
eggs_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_DEFAULT,
eggs_hiload, eggs_hisave
};
struct GameDriver lnc_driver =
{
__FILE__,
0,
"lnc",
"Lock'n'Chase",
"1981",
"Data East Corporation",
"Zsolt Vasvari\nKevin Brisley (Bump 'n' Jump driver)\nMirko Buffoni (Audio/Add. code)",
0,
&lnc_machine_driver,
0,
lnc_rom,
0, lnc_decode,
0,
0, /* sound_prom */
lnc_input_ports,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -