📄 arkanoid.c
字号:
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
512, 512,
arkanoid_vh_convert_color_prom,
VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
0,
generic_vh_start,
generic_vh_stop,
arkanoid_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( arkanoid_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "a75_01-1.rom", 0x0000, 0x8000, 0x5bcda3b0 )
ROM_LOAD( "a75_11.rom", 0x8000, 0x8000, 0xeafd7191 )
ROM_REGION_DISPOSE(0x18000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "a75_03.rom", 0x00000, 0x8000, 0x038b74ba )
ROM_LOAD( "a75_04.rom", 0x08000, 0x8000, 0x71fae199 )
ROM_LOAD( "a75_05.rom", 0x10000, 0x8000, 0xc76374e2 )
ROM_REGION(0x0600) /* color PROMs */
ROM_LOAD( "07.bpr", 0x0000, 0x0200, 0x0af8b289 ) /* red component */
ROM_LOAD( "08.bpr", 0x0200, 0x0200, 0xabb002fb ) /* green component */
ROM_LOAD( "09.bpr", 0x0400, 0x0200, 0xa7c6c277 ) /* blue component */
ROM_REGION(0x0800) /* 8k for the microcontroller */
ROM_LOAD( "arkanoid.uc", 0x0080, 0x0780, 0x8a02f903 )
ROM_END
ROM_START( arknoidu_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "a75-19.bin", 0x0000, 0x8000, 0xd3ad37d7 )
ROM_LOAD( "a75-18.bin", 0x8000, 0x8000, 0xcdc08301 )
ROM_REGION_DISPOSE(0x18000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "a75_03.rom", 0x00000, 0x8000, 0x038b74ba )
ROM_LOAD( "a75_04.rom", 0x08000, 0x8000, 0x71fae199 )
ROM_LOAD( "a75_05.rom", 0x10000, 0x8000, 0xc76374e2 )
ROM_REGION(0x0600) /* color PROMs */
ROM_LOAD( "07.bpr", 0x0000, 0x0200, 0x0af8b289 ) /* red component */
ROM_LOAD( "08.bpr", 0x0200, 0x0200, 0xabb002fb ) /* green component */
ROM_LOAD( "09.bpr", 0x0400, 0x0200, 0xa7c6c277 ) /* blue component */
ROM_REGION(0x0800) /* 8k for the microcontroller */
ROM_LOAD( "arkanoid.uc", 0x0080, 0x0780, 0x8a02f903 )
ROM_END
ROM_START( arkbl2_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "e1.6d", 0x0000, 0x8000, 0xdd4f2b72 )
ROM_LOAD( "e2.6f", 0x8000, 0x8000, 0xbbc33ceb )
ROM_REGION_DISPOSE(0x18000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "a75_03.rom", 0x00000, 0x8000, 0x038b74ba )
ROM_LOAD( "a75_04.rom", 0x08000, 0x8000, 0x71fae199 )
ROM_LOAD( "a75_05.rom", 0x10000, 0x8000, 0xc76374e2 )
ROM_REGION(0x0600) /* color PROMs */
ROM_LOAD( "07.bpr", 0x0000, 0x0200, 0x0af8b289 ) /* red component */
ROM_LOAD( "08.bpr", 0x0200, 0x0200, 0xabb002fb ) /* green component */
ROM_LOAD( "09.bpr", 0x0400, 0x0200, 0xa7c6c277 ) /* blue component */
ROM_REGION(0x0800) /* 8k for the microcontroller */
ROM_LOAD( "68705p3.6i", 0x0080, 0x0780, 0xe3c5024e )
ROM_END
ROM_START( arkbl3_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "arkanunk.1", 0x0000, 0x8000, 0xb0f73900 )
ROM_LOAD( "arkanunk.2", 0x8000, 0x8000, 0x9827f297 )
ROM_REGION_DISPOSE(0x18000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "a75_03.rom", 0x00000, 0x8000, 0x038b74ba )
ROM_LOAD( "a75_04.rom", 0x08000, 0x8000, 0x71fae199 )
ROM_LOAD( "a75_05.rom", 0x10000, 0x8000, 0xc76374e2 )
ROM_REGION(0x0600) /* color PROMs */
ROM_LOAD( "07.bpr", 0x0000, 0x0200, 0x0af8b289 ) /* red component */
ROM_LOAD( "08.bpr", 0x0200, 0x0200, 0xabb002fb ) /* green component */
ROM_LOAD( "09.bpr", 0x0400, 0x0200, 0xa7c6c277 ) /* blue component */
ROM_END
ROM_START( arkatayt_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "arkanoid.1", 0x0000, 0x8000, 0x6e0a2b6f )
ROM_LOAD( "arkanoid.2", 0x8000, 0x8000, 0x5a97dd56 )
ROM_REGION_DISPOSE(0x18000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "a75_03.rom", 0x00000, 0x8000, 0x038b74ba )
ROM_LOAD( "a75_04.rom", 0x08000, 0x8000, 0x71fae199 )
ROM_LOAD( "a75_05.rom", 0x10000, 0x8000, 0xc76374e2 )
ROM_REGION(0x0600) /* color PROMs */
ROM_LOAD( "07.bpr", 0x0000, 0x0200, 0x0af8b289 ) /* red component */
ROM_LOAD( "08.bpr", 0x0200, 0x0200, 0xabb002fb ) /* green component */
ROM_LOAD( "09.bpr", 0x0400, 0x0200, 0xa7c6c277 ) /* blue component */
ROM_END
ROM_START( arkblock_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "block01.bin", 0x0000, 0x8000, 0x5be667e1 )
ROM_LOAD( "block02.bin", 0x8000, 0x8000, 0x4f883ef1 )
ROM_REGION_DISPOSE(0x18000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "a75_03.rom", 0x00000, 0x8000, 0x038b74ba )
ROM_LOAD( "a75_04.rom", 0x08000, 0x8000, 0x71fae199 )
ROM_LOAD( "a75_05.rom", 0x10000, 0x8000, 0xc76374e2 )
ROM_REGION(0x0600) /* color PROMs */
ROM_LOAD( "07.bpr", 0x0000, 0x0200, 0x0af8b289 ) /* red component */
ROM_LOAD( "08.bpr", 0x0200, 0x0200, 0xabb002fb ) /* green component */
ROM_LOAD( "09.bpr", 0x0400, 0x0200, 0xa7c6c277 ) /* blue component */
ROM_END
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[0xef79],"\x00\x50\x00",3) == 0 && /* position 1 */
memcmp(&RAM[0xef95],"\x00\x30\x00",3) == 0 && /* position 5 */
memcmp(&RAM[0xc4df],"\x00\x50\x00",3) == 0) /* separate hi score */
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0xef79],7*5);
RAM[0xc4df] = RAM[0xef79];
RAM[0xc4e0] = RAM[0xef7a];
RAM[0xc4e1] = RAM[0xef7b];
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[0xef79],7*5);
osd_fclose(f);
}
}
struct GameDriver arkanoid_driver =
{
__FILE__,
0,
"arkanoid",
"Arkanoid (World)",
"1986",
"Taito Corp Japan",
"Brad Oliver (MAME driver)\nNicola Salmoria (MAME driver)\nAaron Giles (68705 emulation)",
0,
&machine_driver,
0,
arkanoid_rom,
0, 0,
0,
0, /* sound_prom */
input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver arknoidu_driver =
{
__FILE__,
&arkanoid_driver,
"arknoidu",
"Arkanoid (USA)",
"1986",
"Taito America Corp (Romstar license)",
"Brad Oliver (MAME driver)\nNicola Salmoria (MAME driver)\nAaron Giles (68705 emulation)",
0,
&machine_driver,
0,
arknoidu_rom,
0, 0,
0,
0, /* sound_prom */
input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver arkbl2_driver =
{
__FILE__,
&arkanoid_driver,
"arkbl2",
"Arkanoid (Japanese bootleg Set 2)",
"1986",
"bootleg",
"Brad Oliver (MAME driver)\nNicola Salmoria (MAME driver)\nAaron Giles (68705 emulation)",
GAME_NOT_WORKING,
&machine_driver,
0,
arkbl2_rom,
0, 0,
0,
0, /* sound_prom */
japan_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver arkbl3_driver =
{
__FILE__,
&arkanoid_driver,
"arkbl3",
"Arkanoid (Japanese bootleg Set 3)",
"1986",
"bootleg",
"Brad Oliver (MAME driver)\nNicola Salmoria (MAME driver)\nAaron Giles (68705 emulation)",
GAME_NOT_WORKING,
&bootleg_machine_driver,
0,
arkbl3_rom,
0, 0,
0,
0, /* sound_prom */
japan_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver arkatayt_driver =
{
__FILE__,
&arkanoid_driver,
"arkatayt",
"Arkanoid (Tayto bootleg, Japanese)",
"1986",
"bootleg",
"Brad Oliver (MAME driver)\nNicola Salmoria (MAME driver)",
0,
&bootleg_machine_driver,
0,
arkatayt_rom,
0, 0,
0,
0, /* sound_prom */
japan_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
struct GameDriver arkblock_driver =
{
__FILE__,
&arkanoid_driver,
"arkblock",
"Block (bootleg, Japanese)",
"1986",
"bootleg",
"Brad Oliver (MAME driver)\nNicola Salmoria (MAME driver)",
GAME_NOT_WORKING,
&bootleg_machine_driver,
0,
arkblock_rom,
0, 0,
0,
0, /* sound_prom */
japan_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_ROTATE_90,
hiload, hisave
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -