⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smashtv.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 5 页
字号:
		}
	}
};

/* T-Unit */
static struct MachineDriver mk2_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_TMS34010,
			50000000,	/* 50 Mhz */
			0,
			mk2_readmem,mk2_writemem,0,0,
			ignore_interrupt,1
		},
	},
	60, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
	1,
	mk2_init_machine,

	/* video hardware */
	512, 512, { 0, 511, 0, 255 },

	0,
	65536,0,
	0,

	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_SUPPORTS_16BIT,
	0,
	wms_t_vh_start,
	wms_vh_stop,
	wms_vh_screenrefresh,

	/* sound hardware */
	0,0,0,0,
};
/* T-Unit */
static struct MachineDriver nbajam_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_TMS34010,
			50000000,	/* 50 Mhz */
			0,
			mk2_readmem,mk2_writemem,0,0,
			ignore_interrupt,1
		},
		{
			CPU_M6809 | CPU_AUDIO_CPU,
			2000000,	/* 2 Mhz */
			3,
			mk_sound_readmem,mk_sound_writemem,0,0,
			ignore_interrupt,1
		},
	},
	60, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
	1,
	nbajam_init_machine,

	/* video hardware */
	512, 512, { 0, 511, 0, 255 },

	0,
	65536,0,
	0,

	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_SUPPORTS_16BIT,
	0,
	wms_t_vh_start,
	wms_vh_stop,
	wms_vh_screenrefresh,

	/* sound hardware */
	SOUND_SUPPORTS_STEREO,0,0,0,
	{
		{
			SOUND_DAC,
			&dac_interface
		},
		{
			SOUND_YM2151,
			&narc_ym2151_interface
		},
		{
			SOUND_OKIM6295,
			&okim6295_interface
		}
	}
};


/***************************************************************************

  High score save/load

***************************************************************************/

static int hiload (void)
{
	void *f;

	f = osd_fopen (Machine->gamedrv->name, 0, OSD_FILETYPE_HIGHSCORE, 0);
	if (f)
	{
		osd_fread (f,wms_cmos_ram,0x8000);
		osd_fclose (f);
	}

	return 1;
}

static void hisave (void)
{
	void *f;

	f = osd_fopen (Machine->gamedrv->name, 0, OSD_FILETYPE_HIGHSCORE, 1);
	if (f)
	{
		osd_fwrite(f,wms_cmos_ram,0x8000);
		osd_fclose (f);
	}
}

void wms_stateload(void)
{
	int i;
	void *f;
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
	if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_STATE,0)) != 0)
	{
		TMS34010_State_Load(0,f);
		osd_fread(f,wms_videoram,wms_videoram_size);
		osd_fread(f,cpu_bankbase[2],wms_bank2_size);
		osd_fread(f,wms_cmos_ram,0x8000);
		osd_fread(f,cpu_bankbase[8],wms_gfx_rom_size);
		osd_fread(f,paletteram,wms_paletteram_size);
		for (i=0;i<wms_paletteram_size;i+=2)
		{
			paletteram_xRRRRRGGGGGBBBBB_word_w(i,READ_WORD(&paletteram[i]));
		}
		osd_fclose(f);
	}
}

void wms_statesave(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_STATE,1))!= 0)
	{
		TMS34010_State_Save(0,f);
		osd_fwrite(f,wms_videoram,wms_videoram_size);
		osd_fwrite(f,cpu_bankbase[2],wms_bank2_size);
		osd_fwrite(f,wms_cmos_ram,0x8000);
		osd_fwrite(f,cpu_bankbase[8],wms_gfx_rom_size);
		osd_fwrite(f,paletteram,wms_paletteram_size);
		osd_fclose(f);
	}
}

/***************************************************************************

  Game driver(s)

***************************************************************************/

ROM_START( narc_rom )
	ROM_REGION(0x100000)     /*34010 code */
	ROM_LOAD_ODD ( "u42",  0x80000, 0x20000, 0xd1111b76 )  /* even */
	ROM_LOAD_EVEN( "u24",  0x80000, 0x20000, 0xaa0d3082 )  /* odd  */
	ROM_LOAD_ODD ( "u41",  0xc0000, 0x20000, 0x3903191f )  /* even */
	ROM_LOAD_EVEN( "u23",  0xc0000, 0x20000, 0x7a316582 )  /* odd  */

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */

	ROM_REGION(0x800000)      /* graphics (mapped as code) */
	ROM_LOAD ( "u94",  0x000000, 0x10000, 0xca3194e4 )  /* even */
	ROM_LOAD ( "u76",  0x200000, 0x10000, 0x1cd897f4 )  /* odd  */
	ROM_LOAD ( "u93",  0x010000, 0x10000, 0x0ed7f7f5 )  /* even */
	ROM_LOAD ( "u75",  0x210000, 0x10000, 0x78abfa01 )  /* odd  */
	ROM_LOAD ( "u92",  0x020000, 0x10000, 0x40d2fc66 )  /* even */
	ROM_LOAD ( "u74",  0x220000, 0x10000, 0x66d2a234 )  /* odd  */
	ROM_LOAD ( "u91",  0x030000, 0x10000, 0xf39325e0 )  /* even */
	ROM_LOAD ( "u73",  0x230000, 0x10000, 0xefa5cd4e )  /* odd  */
	ROM_LOAD ( "u90",  0x040000, 0x10000, 0x0132aefa )  /* even */
	ROM_LOAD ( "u72",  0x240000, 0x10000, 0x70638eb5 )  /* odd  */
	ROM_LOAD ( "u89",  0x050000, 0x10000, 0xf7260c9e )  /* even */
	ROM_LOAD ( "u71",  0x250000, 0x10000, 0x61226883 )  /* odd  */
	ROM_LOAD ( "u88",  0x060000, 0x10000, 0xedc19f42 )  /* even */
	ROM_LOAD ( "u70",  0x260000, 0x10000, 0xc808849f )  /* odd  */
	ROM_LOAD ( "u87",  0x070000, 0x10000, 0xd9b42ff9 )  /* even */
	ROM_LOAD ( "u69",  0x270000, 0x10000, 0xe7f9c34f )  /* odd  */
	ROM_LOAD ( "u86",  0x080000, 0x10000, 0xaf7daad3 )  /* even */
	ROM_LOAD ( "u68",  0x280000, 0x10000, 0x88a634d5 )  /* odd  */
	ROM_LOAD ( "u85",  0x090000, 0x10000, 0x095fae6b )  /* even */
	ROM_LOAD ( "u67",  0x290000, 0x10000, 0x4ab8b69e )  /* odd  */
	ROM_LOAD ( "u84",  0x0a0000, 0x10000, 0x3fdf2057 )  /* even */
	ROM_LOAD ( "u66",  0x2a0000, 0x10000, 0xe1da4b25 )  /* odd  */
	ROM_LOAD ( "u83",  0x0b0000, 0x10000, 0xf2d27c9f )  /* even */
	ROM_LOAD ( "u65",  0x2b0000, 0x10000, 0x6df0d125 )  /* odd  */
	ROM_LOAD ( "u82",  0x0c0000, 0x10000, 0x962ce47c )  /* even */
	ROM_LOAD ( "u64",  0x2c0000, 0x10000, 0xabab1b16 )  /* odd  */
	ROM_LOAD ( "u81",  0x0d0000, 0x10000, 0x00fe59ec )  /* even */
	ROM_LOAD ( "u63",  0x2d0000, 0x10000, 0x80602f31 )  /* odd  */
	ROM_LOAD ( "u80",  0x0e0000, 0x10000, 0x147ba8e9 )  /* even */
	ROM_LOAD ( "u62",  0x2e0000, 0x10000, 0xc2a476d1 )  /* odd  */

	ROM_LOAD ( "u58",  0x400000, 0x10000, 0x8a7501e3 )  /* even */
	ROM_LOAD ( "u40",  0x600000, 0x10000, 0x7fcaebc7 )  /* odd  */
	ROM_LOAD ( "u57",  0x410000, 0x10000, 0xa504735f )  /* even */
	ROM_LOAD ( "u39",  0x610000, 0x10000, 0x7db5cf52 )  /* odd  */
	ROM_LOAD ( "u56",  0x420000, 0x10000, 0x55f8cca7 )  /* even */
	ROM_LOAD ( "u38",  0x620000, 0x10000, 0x3f9f3ef7 )  /* odd  */
	ROM_LOAD ( "u55",  0x430000, 0x10000, 0xd3c932c1 )  /* even */
	ROM_LOAD ( "u37",  0x630000, 0x10000, 0xed81826c )  /* odd  */
	ROM_LOAD ( "u54",  0x440000, 0x10000, 0xc7f4134b )  /* even */
	ROM_LOAD ( "u36",  0x640000, 0x10000, 0xe5d855c0 )  /* odd  */
	ROM_LOAD ( "u53",  0x450000, 0x10000, 0x6be4da56 )  /* even */
	ROM_LOAD ( "u35",  0x650000, 0x10000, 0x3a7b1329 )  /* odd  */
	ROM_LOAD ( "u52",  0x460000, 0x10000, 0x1ea36a4a )  /* even */
	ROM_LOAD ( "u34",  0x660000, 0x10000, 0xfe982b0e )  /* odd  */
	ROM_LOAD ( "u51",  0x470000, 0x10000, 0x9d4b0324 )  /* even */
	ROM_LOAD ( "u33",  0x670000, 0x10000, 0x6bc7eb0f )  /* odd  */
	ROM_LOAD ( "u50",  0x480000, 0x10000, 0x6f9f0c26 )  /* even */
	ROM_LOAD ( "u32",  0x680000, 0x10000, 0x5875a6d3 )  /* odd  */
	ROM_LOAD ( "u49",  0x490000, 0x10000, 0x80386fce )  /* even */
	ROM_LOAD ( "u31",  0x690000, 0x10000, 0x2fa4b8e5 )  /* odd  */
	ROM_LOAD ( "u48",  0x4a0000, 0x10000, 0x05c16185 )  /* even */
	ROM_LOAD ( "u30",  0x6a0000, 0x10000, 0x7e4bb8ee )  /* odd  */
	ROM_LOAD ( "u47",  0x4b0000, 0x10000, 0x4c0151f1 )  /* even */
	ROM_LOAD ( "u29",  0x6b0000, 0x10000, 0x45136fd9 )  /* odd  */
	ROM_LOAD ( "u46",  0x4c0000, 0x10000, 0x5670bfcb )  /* even */
	ROM_LOAD ( "u28",  0x6c0000, 0x10000, 0xd6cdac24 )  /* odd  */
	ROM_LOAD ( "u45",  0x4d0000, 0x10000, 0x27f10d98 )  /* even */
	ROM_LOAD ( "u27",  0x6d0000, 0x10000, 0x4d33bbec )  /* odd  */
	ROM_LOAD ( "u44",  0x4e0000, 0x10000, 0x93b8eaa4 )  /* even */
	ROM_LOAD ( "u26",  0x6e0000, 0x10000, 0xcb19f784 )  /* odd  */

	ROM_REGION(0x30000)     /* sound CPU */
	ROM_LOAD ( "u5-snd", 0x00000, 0x10000, 0xe551e5e3 )
	ROM_LOAD ( "u5-snd", 0x10000, 0x10000, 0xe551e5e3 )
	ROM_LOAD ( "u4-snd", 0x20000, 0x10000, 0x450a591a )

	ROM_REGION(0x50000)     /* slave sound CPU */
	ROM_LOAD ( "u38-snd", 0x00000, 0x10000, 0x09b03b80 )
	ROM_LOAD ( "u38-snd", 0x10000, 0x10000, 0x09b03b80 )
	ROM_LOAD ( "u37-snd", 0x20000, 0x10000, 0x29dbeffd )
	ROM_LOAD ( "u36-snd", 0x30000, 0x10000, 0x16cdbb13 )
	ROM_LOAD ( "u35-snd", 0x40000, 0x10000, 0x81295892 )

ROM_END

ROM_START( trog_rom )	/* released version */
	ROM_REGION(0x100000)     /* 34010 code */
	ROM_LOAD_ODD ( "trogu105.bin",  0xc0000, 0x20000, 0xe6095189 ) /* even */
	ROM_LOAD_EVEN( "trogu89.bin",   0xc0000, 0x20000, 0xfdd7cc65 ) /* odd */

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */

	ROM_REGION(0x800000)      /* graphics */
	ROM_LOAD ( "trogu111.bin",  0x000000, 0x20000, 0x9ded08c1 )  /* even */
	ROM_LOAD ( "trogu112.bin",  0x020000, 0x20000, 0x42293843 )  /* even */
	ROM_LOAD ( "trogu113.bin",  0x040000, 0x20000, 0x77f50cbb )  /* even */

	ROM_LOAD (  "trogu95.bin",  0x200000, 0x20000, 0xf3ba2838 )  /* odd  */
	ROM_LOAD (  "trogu96.bin",  0x220000, 0x20000, 0xcfed2e77 )  /* odd  */
	ROM_LOAD (  "trogu97.bin",  0x240000, 0x20000, 0x3262d1f8 )  /* odd  */

	ROM_LOAD ( "trogu106.bin",  0x080000, 0x20000, 0xaf2eb0d8 )  /* even */
 	ROM_LOAD ( "trogu107.bin",  0x0a0000, 0x20000, 0x88a7b3f6 )  /* even */

	ROM_LOAD (  "trogu90.bin",  0x280000, 0x20000, 0x16e06753 )  /* odd  */
	ROM_LOAD (  "trogu91.bin",  0x2a0000, 0x20000, 0x880a02c7 )  /* odd  */

	ROM_REGION(0x70000) /* sound CPU */
	ROM_LOAD (   "trogu4.bin", 0x10000, 0x10000, 0x759d0bf4 )
	ROM_LOAD (  "trogu19.bin", 0x30000, 0x10000, 0x960c333d )
	ROM_LOAD (  "trogu20.bin", 0x50000, 0x10000, 0x67f1658a )

ROM_END

ROM_START( trog3_rom )	/* released version */
	ROM_REGION(0x100000)     /* 34010 code */
	ROM_LOAD_ODD ( "u105-la3",  0xc0000, 0x20000, 0xd09cea97 ) /* even */
	ROM_LOAD_EVEN( "u89-la3",   0xc0000, 0x20000, 0xa61e3572 ) /* odd */

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */

	ROM_REGION(0x800000)      /* graphics */
	ROM_LOAD ( "trogu111.bin",  0x000000, 0x20000, 0x9ded08c1 )  /* even */
	ROM_LOAD ( "trogu112.bin",  0x020000, 0x20000, 0x42293843 )  /* even */
	ROM_LOAD ( "trogu113.bin",  0x040000, 0x20000, 0x77f50cbb )  /* even */

	ROM_LOAD (  "trogu95.bin",  0x200000, 0x20000, 0xf3ba2838 )  /* odd  */
	ROM_LOAD (  "trogu96.bin",  0x220000, 0x20000, 0xcfed2e77 )  /* odd  */
	ROM_LOAD (  "trogu97.bin",  0x240000, 0x20000, 0x3262d1f8 )  /* odd  */

	ROM_LOAD ( "trogu106.bin",  0x080000, 0x20000, 0xaf2eb0d8 )  /* even */
 	ROM_LOAD ( "trogu107.bin",  0x0a0000, 0x20000, 0x88a7b3f6 )  /* even */

	ROM_LOAD (  "trogu90.bin",  0x280000, 0x20000, 0x16e06753 )  /* odd  */
	ROM_LOAD (  "trogu91.bin",  0x2a0000, 0x20000, 0x880a02c7 )  /* odd  */

	ROM_REGION(0x70000) /* sound CPU */
	ROM_LOAD (   "trogu4.bin", 0x10000, 0x10000, 0x759d0bf4 )
	ROM_LOAD (  "trogu19.bin", 0x30000, 0x10000, 0x960c333d )
	ROM_LOAD (  "trogu20.bin", 0x50000, 0x10000, 0x67f1658a )

ROM_END

ROM_START( trogp_rom )   /* prototype version */
	ROM_REGION(0x100000)     /* 34010 code */

	ROM_LOAD_ODD ( "trog105.dat",  0xc0000, 0x20000, 0x526a3f5b ) /* even */
	ROM_LOAD_EVEN( "trog89.dat",   0xc0000, 0x20000, 0x38d68685 ) /* odd */

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */

	ROM_REGION(0x800000)      /* graphics */
	ROM_LOAD ( "trogu111.bin",  0x000000, 0x20000, 0x9ded08c1 )  /* even */
	ROM_LOAD ( "trogu112.bin",  0x020000, 0x20000, 0x42293843 )  /* even */
	ROM_LOAD ( "trogu113.bin",  0x040000, 0x20000, 0x77f50cbb )  /* even */

	ROM_LOAD (  "trogu95.bin",  0x200000, 0x20000, 0xf3ba2838 )  /* odd  */
	ROM_LOAD (  "trogu96.bin",  0x220000, 0x20000, 0xcfed2e77 )  /* odd  */
	ROM_LOAD (  "trogu97.bin",  0x240000, 0x20000, 0x3262d1f8 )  /* odd  */

	ROM_LOAD ( "trogu106.bin",  0x080000, 0x20000, 0xaf2eb0d8 )  /* even */
 	ROM_LOAD ( "trogu107.bin",  0x0a0000, 0x20000, 0x88a7b3f6 )  /* even */

	ROM_LOAD (  "trogu90.bin",  0x280000, 0x20000, 0x16e06753 )  /* odd  */
	ROM_LOAD (  "trogu91.bin",  0x2a0000, 0x20000, 0x880a02c7 )  /* odd  */

	ROM_REGION(0x70000) /* sound CPU */
	ROM_LOAD (   "trogu4.bin", 0x10000, 0x10000, 0x759d0bf4 )
	ROM_LOAD (  "trogu19.bin", 0x30000, 0x10000, 0x960c333d )
	ROM_LOAD (  "trogu20.bin", 0x50000, 0x10000, 0x67f1658a )

ROM_END

ROM_START( smashtv_rom )
	ROM_REGION(0x100000)     /* 34010 code */
	ROM_LOAD_ODD ( "u105.l8",  0xc0000, 0x20000, 0x48cd793f ) /* even */
	ROM_LOAD_EVEN( "u89.l8",   0xc0000, 0x20000, 0x8e7fe463 ) /* odd */

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */

	ROM_REGION(0x800000)      /* graphics */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -