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 + -
显示快捷键?