matmania.c
来自「这个是延伸mame的在wince平台下的游戏模拟器的代码」· C语言 代码 · 共 801 行 · 第 1/2 页
C
801 行
{
CPU_M6502 | CPU_AUDIO_CPU,
1200000, /* 1.2 Mhz ???? */
3,
maniach_sound_readmem,maniach_sound_writemem,0,0,
nmi_interrupt,15 /* ???? */
},
},
60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
0,
/* video hardware */
32*8, 32*8, { 1*8, 31*8-1, 0*8, 32*8-1 },
maniach_gfxdecodeinfo,
64+16, 64+16,
matmania_vh_convert_color_prom,
VIDEO_TYPE_RASTER|VIDEO_MODIFIES_PALETTE,
0,
matmania_vh_start,
matmania_vh_stop,
maniach_vh_screenrefresh,
/* sound hardware */
0,0,0,0
};
/***************************************************************************
Mat Mania driver
***************************************************************************/
ROM_START( matmania_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "k0-03", 0x4000, 0x4000, 0x314ab8a4 )
ROM_LOAD( "k1-03", 0x8000, 0x4000, 0x3b3c3f08 )
ROM_LOAD( "k2-03", 0xc000, 0x4000, 0x286c0917 )
ROM_REGION_DISPOSE(0x66000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "ku-02", 0x00000, 0x2000, 0x613c8698 ) /* Character ROMs - 1024 chars, 3 bpp */
ROM_LOAD( "kv-02", 0x02000, 0x2000, 0x274ce14b )
ROM_LOAD( "kw-02", 0x04000, 0x2000, 0x7588a9c4 )
ROM_LOAD( "kt-02", 0x06000, 0x4000, 0x5d817c70 ) /* tile set */
ROM_LOAD( "ks-02", 0x0a000, 0x4000, 0x2e9f3ba0 )
ROM_LOAD( "kr-02", 0x0e000, 0x4000, 0xb057d3e3 )
ROM_LOAD( "k6-00", 0x12000, 0x4000, 0x294d0878 ) /* sprites */
ROM_LOAD( "k7-00", 0x16000, 0x4000, 0x0908c2f5 )
ROM_LOAD( "k8-00", 0x1a000, 0x4000, 0xae8341e1 )
ROM_LOAD( "k9-00", 0x1e000, 0x4000, 0x752ac2c6 )
ROM_LOAD( "ka-00", 0x22000, 0x4000, 0x46a9cb16 )
ROM_LOAD( "kb-00", 0x26000, 0x4000, 0xbf016772 )
ROM_LOAD( "kc-00", 0x2a000, 0x4000, 0x8d08bce7 )
ROM_LOAD( "kd-00", 0x2e000, 0x4000, 0xaf1d6a60 )
ROM_LOAD( "ke-00", 0x32000, 0x4000, 0x614f19b0 )
ROM_LOAD( "kf-00", 0x36000, 0x4000, 0xbdf58c18 )
ROM_LOAD( "kg-00", 0x3a000, 0x4000, 0x2189f5cf )
ROM_LOAD( "kh-00", 0x3e000, 0x4000, 0x6b11ed1f )
ROM_LOAD( "ki-00", 0x42000, 0x4000, 0xd7ac4ec5 )
ROM_LOAD( "kj-00", 0x46000, 0x4000, 0x2caee05d )
ROM_LOAD( "kk-00", 0x4a000, 0x4000, 0xeb54f010 )
ROM_LOAD( "kl-00", 0x4e000, 0x4000, 0xfa4c7e0c )
ROM_LOAD( "km-00", 0x52000, 0x4000, 0x6d2369b6 )
ROM_LOAD( "kn-00", 0x56000, 0x4000, 0xc55733e2 )
ROM_LOAD( "ko-00", 0x5a000, 0x4000, 0xed3c3476 )
ROM_LOAD( "kp-00", 0x5e000, 0x4000, 0x9c84a969 )
ROM_LOAD( "kq-00", 0x62000, 0x4000, 0xfa2f0003 )
ROM_REGION(0x0080) /* color proms */
ROM_LOAD( "matmania.1", 0x0000, 0x0020, 0x1b58f01f ) /* char palette red and green components */
ROM_LOAD( "matmania.5", 0x0020, 0x0020, 0x2029f85f ) /* tile palette red and green components */
ROM_LOAD( "matmania.2", 0x0040, 0x0020, 0xb6ac1fd5 ) /* char palette blue component */
ROM_LOAD( "matmania.16", 0x0060, 0x0020, 0x09325dc2 ) /* tile palette blue component */
ROM_REGION(0x10000) /* 64k for audio code */
ROM_LOAD( "k4-0", 0x8000, 0x4000, 0x86dab489 )
ROM_LOAD( "k5-0", 0xc000, 0x4000, 0x4c41cdba )
ROM_END
ROM_START( excthour_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "e29", 0x04000, 0x4000, 0xc453e855 )
ROM_LOAD( "e28", 0x08000, 0x4000, 0x17b63708 )
ROM_LOAD( "e27", 0x0c000, 0x4000, 0x269ab3bc )
ROM_REGION_DISPOSE(0x66000) /* temporary space for graphics (disposed after conversion) */
ROM_LOAD( "e30", 0x00000, 0x2000, 0xb2875329 ) /* Character ROMs - 1024 chars, 3 bpp */
ROM_LOAD( "e31", 0x02000, 0x2000, 0xc9506de8 )
ROM_LOAD( "e32", 0x04000, 0x2000, 0x00d1635f )
ROM_LOAD( "e5", 0x06000, 0x4000, 0x0604dc55 ) /* tile set */
ROM_LOAD( "ks-02", 0x0a000, 0x4000, 0x2e9f3ba0 )
ROM_LOAD( "e3", 0x0e000, 0x4000, 0xebd273c6 )
ROM_LOAD( "k6-00", 0x12000, 0x4000, 0x294d0878 ) /* sprites */
ROM_LOAD( "k7-00", 0x16000, 0x4000, 0x0908c2f5 )
ROM_LOAD( "k8-00", 0x1a000, 0x4000, 0xae8341e1 )
ROM_LOAD( "k9-00", 0x1e000, 0x4000, 0x752ac2c6 )
ROM_LOAD( "ka-00", 0x22000, 0x4000, 0x46a9cb16 )
ROM_LOAD( "kb-00", 0x26000, 0x4000, 0xbf016772 )
ROM_LOAD( "kc-00", 0x2a000, 0x4000, 0x8d08bce7 )
ROM_LOAD( "kd-00", 0x2e000, 0x4000, 0xaf1d6a60 )
ROM_LOAD( "ke-00", 0x32000, 0x4000, 0x614f19b0 )
ROM_LOAD( "kf-00", 0x36000, 0x4000, 0xbdf58c18 )
ROM_LOAD( "kg-00", 0x3a000, 0x4000, 0x2189f5cf )
ROM_LOAD( "kh-00", 0x3e000, 0x4000, 0x6b11ed1f )
ROM_LOAD( "ki-00", 0x42000, 0x4000, 0xd7ac4ec5 )
ROM_LOAD( "kj-00", 0x46000, 0x4000, 0x2caee05d )
ROM_LOAD( "kk-00", 0x4a000, 0x4000, 0xeb54f010 )
ROM_LOAD( "kl-00", 0x4e000, 0x4000, 0xfa4c7e0c )
ROM_LOAD( "km-00", 0x52000, 0x4000, 0x6d2369b6 )
ROM_LOAD( "kn-00", 0x56000, 0x4000, 0xc55733e2 )
ROM_LOAD( "ko-00", 0x5a000, 0x4000, 0xed3c3476 )
ROM_LOAD( "kp-00", 0x5e000, 0x4000, 0x9c84a969 )
ROM_LOAD( "kq-00", 0x62000, 0x4000, 0xfa2f0003 )
ROM_REGION(0x0080) /* color proms */
ROM_LOAD( "matmania.1", 0x0000, 0x0020, 0x1b58f01f ) /* char palette red and green components */
ROM_LOAD( "matmania.5", 0x0020, 0x0020, 0x2029f85f ) /* tile palette red and green components */
ROM_LOAD( "matmania.2", 0x0040, 0x0020, 0xb6ac1fd5 ) /* char palette blue component */
ROM_LOAD( "matmania.16", 0x0060, 0x0020, 0x09325dc2 ) /* tile palette blue component */
ROM_REGION(0x10000) /* 64k for audio code */
ROM_LOAD( "k4-0", 0x8000, 0x4000, 0x86dab489 )
ROM_LOAD( "k5-0", 0xc000, 0x4000, 0x4c41cdba )
ROM_END
ROM_START( maniach_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "mc-mb2.bin", 0x04000, 0x4000, 0xa6da1ba8 )
ROM_LOAD( "mc-ma2.bin", 0x08000, 0x4000, 0x84583323 )
ROM_LOAD( "mc-m92.bin", 0x0c000, 0x4000, 0xe209a500 )
ROM_REGION_DISPOSE(0x72000) /* temporary space for graphics (disposed after conversion) */
/* Character ROMs - 1024 chars, 3 bpp */
ROM_LOAD( "mc-m60.bin", 0x00000, 0x2000, 0x1cdbb117 )
ROM_LOAD( "mc-m70.bin", 0x02000, 0x2000, 0x553f0780 )
ROM_LOAD( "mc-m80.bin", 0x04000, 0x2000, 0x9392ecb7 )
/* tile set */
ROM_LOAD( "mc-m01.bin", 0x06000, 0x8000, 0xda558e4d )
ROM_LOAD( "mc-m10.bin", 0x0e000, 0x8000, 0x619a02f8 )
ROM_LOAD( "mc-m20.bin", 0x16000, 0x8000, 0xa617c6c1 )
/* sprites */
ROM_LOAD( "mc-mc0.bin", 0x1e000, 0x4000, 0x133d644f )
ROM_LOAD( "mc-md0.bin", 0x22000, 0x4000, 0xe387b036 )
ROM_LOAD( "mc-me0.bin", 0x26000, 0x4000, 0xb36b1283 )
ROM_LOAD( "mc-mf0.bin", 0x2a000, 0x4000, 0x2584d8a9 )
ROM_LOAD( "mc-mg0.bin", 0x2e000, 0x4000, 0xcf31a714 )
ROM_LOAD( "mc-mh0.bin", 0x32000, 0x4000, 0x6292d589 )
ROM_LOAD( "mc-mi0.bin", 0x36000, 0x4000, 0xee2e06e3 )
ROM_LOAD( "mc-mj0.bin", 0x3a000, 0x4000, 0x7e73895b )
ROM_LOAD( "mc-mk0.bin", 0x3e000, 0x4000, 0x66c8bf75 )
ROM_LOAD( "mc-ml0.bin", 0x42000, 0x4000, 0x88138a1d )
ROM_LOAD( "mc-mm0.bin", 0x46000, 0x4000, 0xa1a4260d )
ROM_LOAD( "mc-mn0.bin", 0x4a000, 0x4000, 0x6bc61b58 )
ROM_LOAD( "mc-mo0.bin", 0x4e000, 0x4000, 0xf96ef600 )
ROM_LOAD( "mc-mp0.bin", 0x52000, 0x4000, 0x1259618e )
ROM_LOAD( "mc-mq0.bin", 0x56000, 0x4000, 0x102a1666 )
ROM_LOAD( "mc-mr0.bin", 0x5a000, 0x4000, 0x1e854453 )
ROM_LOAD( "mc-ms0.bin", 0x5e000, 0x4000, 0x7bc9d878 )
ROM_LOAD( "mc-mt0.bin", 0x62000, 0x4000, 0x09cea985 )
ROM_LOAD( "mc-mu0.bin", 0x66000, 0x4000, 0x5421769e )
ROM_LOAD( "mc-mv0.bin", 0x6a000, 0x4000, 0x36fc3e2d )
ROM_LOAD( "mc-mw0.bin", 0x6e000, 0x4000, 0x135dce4c )
ROM_REGION(0x0080) /* color proms */
ROM_LOAD( "prom.2", 0x0000, 0x0020, 0x32db2cf4 ) /* char palette red and green components */
ROM_LOAD( "prom.16", 0x0020, 0x0020, 0x18836d26 ) /* tile palette red and green components */
ROM_LOAD( "prom.3", 0x0040, 0x0020, 0xc7925311 ) /* char palette blue component */
ROM_LOAD( "prom.17", 0x0060, 0x0020, 0x41f51d49 ) /* tile palette blue component */
ROM_REGION(0x10000) /* 64k for audio code */
ROM_LOAD( "mc-m50.bin", 0x4000, 0x4000, 0xba415d68 )
ROM_LOAD( "mc-m40.bin", 0x8000, 0x4000, 0x2a217ed0 )
ROM_LOAD( "mc-m30.bin", 0xc000, 0x4000, 0x95af1723 ) /* definitely 6502 code, for 1st CPU? */
ROM_END
ROM_START( maniach2_rom )
ROM_REGION(0x10000) /* 64k for code */
ROM_LOAD( "ic40-mb1", 0x04000, 0x4000, 0xb337a867 )
ROM_LOAD( "ic41-ma1", 0x08000, 0x4000, 0x85ec8279 )
ROM_LOAD( "ic42-m91", 0x0c000, 0x4000, 0xa14b86dd )
ROM_REGION_DISPOSE(0x72000) /* temporary space for graphics (disposed after conversion) */
/* Character ROMs - 1024 chars, 3 bpp */
ROM_LOAD( "mc-m60.bin", 0x00000, 0x2000, 0x1cdbb117 )
ROM_LOAD( "mc-m70.bin", 0x02000, 0x2000, 0x553f0780 )
ROM_LOAD( "mc-m80.bin", 0x04000, 0x2000, 0x9392ecb7 )
/* tile set */
ROM_LOAD( "mc-m01.bin", 0x06000, 0x8000, 0xda558e4d )
ROM_LOAD( "mc-m10.bin", 0x0e000, 0x8000, 0x619a02f8 )
ROM_LOAD( "mc-m20.bin", 0x16000, 0x8000, 0xa617c6c1 )
/* sprites */
ROM_LOAD( "mc-mc0.bin", 0x1e000, 0x4000, 0x133d644f )
ROM_LOAD( "mc-md0.bin", 0x22000, 0x4000, 0xe387b036 )
ROM_LOAD( "mc-me0.bin", 0x26000, 0x4000, 0xb36b1283 )
ROM_LOAD( "mc-mf0.bin", 0x2a000, 0x4000, 0x2584d8a9 )
ROM_LOAD( "mc-mg0.bin", 0x2e000, 0x4000, 0xcf31a714 )
ROM_LOAD( "mc-mh0.bin", 0x32000, 0x4000, 0x6292d589 )
ROM_LOAD( "mc-mi0.bin", 0x36000, 0x4000, 0xee2e06e3 )
ROM_LOAD( "mc-mj0.bin", 0x3a000, 0x4000, 0x7e73895b )
ROM_LOAD( "mc-mk0.bin", 0x3e000, 0x4000, 0x66c8bf75 )
ROM_LOAD( "mc-ml0.bin", 0x42000, 0x4000, 0x88138a1d )
ROM_LOAD( "mc-mm0.bin", 0x46000, 0x4000, 0xa1a4260d )
ROM_LOAD( "mc-mn0.bin", 0x4a000, 0x4000, 0x6bc61b58 )
ROM_LOAD( "mc-mo0.bin", 0x4e000, 0x4000, 0xf96ef600 )
ROM_LOAD( "mc-mp0.bin", 0x52000, 0x4000, 0x1259618e )
ROM_LOAD( "mc-mq0.bin", 0x56000, 0x4000, 0x102a1666 )
ROM_LOAD( "mc-mr0.bin", 0x5a000, 0x4000, 0x1e854453 )
ROM_LOAD( "mc-ms0.bin", 0x5e000, 0x4000, 0x7bc9d878 )
ROM_LOAD( "mc-mt0.bin", 0x62000, 0x4000, 0x09cea985 )
ROM_LOAD( "mc-mu0.bin", 0x66000, 0x4000, 0x5421769e )
ROM_LOAD( "mc-mv0.bin", 0x6a000, 0x4000, 0x36fc3e2d )
ROM_LOAD( "mc-mw0.bin", 0x6e000, 0x4000, 0x135dce4c )
ROM_REGION(0x0080) /* color proms */
ROM_LOAD( "prom.2", 0x0000, 0x0020, 0x32db2cf4 ) /* char palette red and green components */
ROM_LOAD( "prom.16", 0x0020, 0x0020, 0x18836d26 ) /* tile palette red and green components */
ROM_LOAD( "prom.3", 0x0040, 0x0020, 0xc7925311 ) /* char palette blue component */
ROM_LOAD( "prom.17", 0x0060, 0x0020, 0x41f51d49 ) /* tile palette blue component */
ROM_REGION(0x10000) /* 64k for audio code */
ROM_LOAD( "mc-m50.bin", 0x4000, 0x4000, 0xba415d68 )
ROM_LOAD( "mc-m40.bin", 0x8000, 0x4000, 0x2a217ed0 )
ROM_LOAD( "mc-m30.bin", 0xc000, 0x4000, 0x95af1723 ) /* definitely 6502 code, for 1st CPU? */
ROM_END
static int matmania_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[0x0700],"\x00\x30\x00",3) == 0) &&
(memcmp(&RAM[0x074d],"\xb0\xb0\xb0",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0x0700],16*5);
RAM[0x0028] = RAM[0x0700];
RAM[0x0029] = RAM[0x0701];
RAM[0x002a] = RAM[0x0702];
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static int excthour_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[0x0700],"\x00\x30\x00",3) == 0) &&
(memcmp(&RAM[0x074d],"\xc9\xcd\xb0",3) == 0))
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&RAM[0x0700],16*5);
RAM[0x0028] = RAM[0x0700];
RAM[0x0029] = RAM[0x0701];
RAM[0x002a] = RAM[0x0702];
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void matmania_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[0x0700],16*5);
osd_fclose(f);
}
}
struct GameDriver matmania_driver =
{
__FILE__,
0,
"matmania",
"Mat Mania",
"1985",
"Technos (Taito America license)",
"Brad Oliver (MAME driver)\nTim Lindquist (color info)",
0,
&matmania_machine_driver,
0,
matmania_rom,
0, 0,
0,
0, /* sound_prom */
matmania_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_DEFAULT,
matmania_hiload, matmania_hisave
};
struct GameDriver excthour_driver =
{
__FILE__,
&matmania_driver,
"excthour",
"Exciting Hour",
"1985",
"Technos (Taito license)",
"Brad Oliver (MAME driver)\nTim Lindquist (color info)",
0,
&matmania_machine_driver,
0,
excthour_rom,
0, 0,
0,
0, /* sound_prom */
matmania_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_DEFAULT,
excthour_hiload, matmania_hisave
};
struct GameDriver maniach_driver =
{
__FILE__,
0,
"maniach",
"Mania Challenge (set 1)",
"1986",
"Technos (Taito America license)",
"Brad Oliver (MAME driver)\nTim Lindquist (color info)",
GAME_NOT_WORKING | GAME_WRONG_COLORS,
&maniach_machine_driver,
0,
maniach_rom,
0, 0,
0,
0, /* sound_prom */
matmania_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_DEFAULT,
0, 0
};
struct GameDriver maniach2_driver =
{
__FILE__,
&maniach_driver,
"maniach2",
"Mania Challenge (set 2)",
"1986",
"Technos (Taito America license)",
"Brad Oliver (MAME driver)\nTim Lindquist (color info)",
GAME_NOT_WORKING | GAME_WRONG_COLORS,
&maniach_machine_driver,
0,
maniach2_rom,
0, 0,
0,
0, /* sound_prom */
matmania_input_ports,
PROM_MEMORY_REGION(2), 0, 0,
ORIENTATION_DEFAULT,
0, 0
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?