📄 smashtv.c
字号:
}
}
};
/* 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 + -