📄 nemesis.c
字号:
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
static struct MachineDriver salamand_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M68000,
8000000, /* 8 Mhz?? */
0,
salamand_readmem,salamand_writemem,0,0,
salamand_interrupt,1
},
},
60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
nemesis_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
2048, 2048,
0,
VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
0,
nemesis_vh_start,
nemesis_vh_stop,
nemesis_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
static struct MachineDriver gx400_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M68000,
14318180/2, /* ??? guess */
0,
gx400_readmem,gx400_writemem,0,0,
gx400_interrupt,3
},
{
CPU_Z80 | CPU_AUDIO_CPU,
3579545, /* 3.579545 MHz */
2,
gx400_sound_readmem,gx400_sound_writemem,0,0,
nmi_interrupt,1 /* interrupts are triggered by the main CPU */
},
},
60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
nemesis_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
2048, 2048,
0,
VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
0,
nemesis_vh_start,
nemesis_vh_stop,
nemesis_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
static struct MachineDriver rf2_gx400_machine_driver =
{
/* basic machine hardware */
{
{
CPU_M68000,
14318180/2, /* ??? guess */
0,
rf2_gx400_readmem,rf2_gx400_writemem,0,0,
gx400_interrupt,3
},
{
CPU_Z80 | CPU_AUDIO_CPU,
3579545, /* 3.579545 MHz */
2,
gx400_sound_readmem,gx400_sound_writemem,0,0,
nmi_interrupt,1 /* interrupts are triggered by the main CPU */
},
},
60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
nemesis_init_machine,
/* video hardware */
32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
gfxdecodeinfo,
2048, 2048,
0,
VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
0,
nemesis_vh_start,
nemesis_vh_stop,
nemesis_vh_screenrefresh,
/* sound hardware */
0,0,0,0,
{
{
SOUND_AY8910,
&ay8910_interface
}
}
};
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( nemesis_rom )
ROM_REGION(0x40000) /* 4 * 64k for code and rom */
ROM_LOAD_EVEN ( "12a_01.bin", 0x00000, 0x8000, 0x35ff1aaa )
ROM_LOAD_ODD ( "12c_05.bin", 0x00000, 0x8000, 0x23155faa )
ROM_LOAD_EVEN ( "13a_02.bin", 0x10000, 0x8000, 0xac0cf163 )
ROM_LOAD_ODD ( "13c_06.bin", 0x10000, 0x8000, 0x023f22a9 )
ROM_LOAD_EVEN ( "14a_03.bin", 0x20000, 0x8000, 0x8cefb25f )
ROM_LOAD_ODD ( "14c_07.bin", 0x20000, 0x8000, 0xd50b82cb )
ROM_LOAD_EVEN ( "15a_04.bin", 0x30000, 0x8000, 0x9ca75592 )
ROM_LOAD_ODD ( "15c_08.bin", 0x30000, 0x8000, 0x03c0b7f5 )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "09c_snd.bin", 0x0000, 0x4000, 0x26bf9636 )
ROM_END
ROM_START( nemesuk_rom )
ROM_REGION(0x40000) /* 4 * 64k for code and rom */
ROM_LOAD_EVEN ( "12a_01.uk", 0x00000, 0x8000, 0xe1993f91 )
ROM_LOAD_ODD ( "12c_05.uk", 0x00000, 0x8000, 0xc9761c78 )
ROM_LOAD_EVEN ( "13a_02.uk", 0x10000, 0x8000, 0xf6169c4b )
ROM_LOAD_ODD ( "13c_06.uk", 0x10000, 0x8000, 0xaf58c548 )
ROM_LOAD_EVEN ( "14a_03.bin", 0x20000, 0x8000, 0x8cefb25f )
ROM_LOAD_ODD ( "14c_07.bin", 0x20000, 0x8000, 0xd50b82cb )
ROM_LOAD_EVEN ( "15a_04.uk", 0x30000, 0x8000, 0x322423d0 )
ROM_LOAD_ODD ( "15c_08.uk", 0x30000, 0x8000, 0xeb656266 )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "09c_snd.bin", 0x0000, 0x4000, 0x26bf9636 )
ROM_END
ROM_START( konamigt_rom )
ROM_REGION(0x40000) /* 4 * 64k for code and rom */
ROM_LOAD_EVEN ( "c01.rom", 0x00000, 0x8000, 0x56245bfd )
ROM_LOAD_ODD ( "c05.rom", 0x00000, 0x8000, 0x8d651f44 )
ROM_LOAD_EVEN ( "c02.rom", 0x10000, 0x8000, 0x3407b7cb )
ROM_LOAD_ODD ( "c06.rom", 0x10000, 0x8000, 0x209942d4 )
ROM_LOAD_EVEN ( "b03.rom", 0x20000, 0x8000, 0xaef7df48 )
ROM_LOAD_ODD ( "b07.rom", 0x20000, 0x8000, 0xe9bd6250 )
ROM_LOAD_EVEN ( "b04.rom", 0x30000, 0x8000, 0x94bd4bd7 )
ROM_LOAD_ODD ( "b08.rom", 0x30000, 0x8000, 0xb7236567 )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "b09.rom", 0x00000, 0x4000, 0x539d0c49 )
ROM_END
ROM_START( salamand_rom )
ROM_REGION(0x200000) /* 64k for code */
ROM_LOAD_EVEN ( "18b.bin", 0x00000, 0x10000, 0xa42297f9 )
ROM_LOAD_ODD ( "18c.bin", 0x00000, 0x10000, 0xf9130b0a )
ROM_LOAD_EVEN ( "17b.bin", 0x40000, 0x20000, 0xe5caf6e6 )
ROM_LOAD_ODD ( "17c.bin", 0x40000, 0x20000, 0xc2f567ea )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_END
ROM_START( rf2_rom )
ROM_REGION(0xc0000) /* 5 * 64k for code and rom */
ROM_LOAD_EVEN ( "400-a06.15l", 0x00000, 0x08000, 0xb99d8cff )
ROM_LOAD_ODD ( "400-a04.10l", 0x00000, 0x08000, 0xd02c9552 )
ROM_LOAD_EVEN ( "561-a07.17l", 0x80000, 0x20000, 0xed6e7098 )
ROM_LOAD_ODD ( "561-a05.12l", 0x80000, 0x20000, 0xdfe04425 )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "400-e03.5l", 0x00000, 0x2000, 0xa5a8e57d )
ROM_END
ROM_START( twinbee_rom )
ROM_REGION(0xc0000) /* 5 * 64k for code and rom */
ROM_LOAD_EVEN ( "400-a06.15l", 0x00000, 0x08000, 0xb99d8cff )
ROM_LOAD_ODD ( "400-a04.10l", 0x00000, 0x08000, 0xd02c9552 )
ROM_LOAD_EVEN ( "412-a07.17l", 0x80000, 0x20000, 0xd93c5499 )
ROM_LOAD_ODD ( "412-a05.12l", 0x80000, 0x20000, 0x2b357069 )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "400-e03.5l", 0x00000, 0x2000, 0xa5a8e57d )
ROM_END
ROM_START( gradius_rom )
ROM_REGION(0xc0000) /* 5 * 64k for code and rom */
ROM_LOAD_EVEN ( "400-a06.15l", 0x00000, 0x08000, 0xb99d8cff )
ROM_LOAD_ODD ( "400-a04.10l", 0x00000, 0x08000, 0xd02c9552 )
ROM_LOAD_EVEN ( "456-a07.17l", 0x80000, 0x20000, 0x92df792c )
ROM_LOAD_ODD ( "456-a05.12l", 0x80000, 0x20000, 0x5cafb263 )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "400-e03.5l", 0x00000, 0x2000, 0xa5a8e57d )
ROM_END
ROM_START( gwarrior_rom )
ROM_REGION(0xc0000) /* 5 * 64k for code and rom */
ROM_LOAD_EVEN ( "400-a06.15l", 0x00000, 0x08000, 0xb99d8cff )
ROM_LOAD_ODD ( "400-a04.10l", 0x00000, 0x08000, 0xd02c9552 )
ROM_LOAD_EVEN ( "578-a07.17l", 0x80000, 0x20000, 0x0aedacb5 )
ROM_LOAD_ODD ( "578-a05.12l", 0x80000, 0x20000, 0x76240e2e )
ROM_REGION_DISPOSE(0x1000) /* temporary space for graphics (disposed after conversion) */
/* empty memory region - not used by the game, but needed because the main */
/* core currently always frees region #1 after initialization. */
ROM_REGION(0x10000) /* 64k for sound */
ROM_LOAD ( "400-e03.5l", 0x00000, 0x2000, 0xa5a8e57d )
ROM_END
static int nemesis_hiload(void)
{
void *f;
/* check if the hi score table has already been initialized */
if (memcmp(&ram[0x0098],"\x05\x00\x00\x73",4) == 0)
{
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
{
osd_fread(f,&ram[0x5010],8*18);
ram[0x0098] = ram[0x501a];
ram[0x0099] = ram[0x501b];
ram[0x009a] = ram[0x501c];
ram[0x009b] = ram[0x501d];
osd_fclose(f);
}
return 1;
}
else return 0; /* we can't load the hi scores yet */
}
static void nemesis_hisave(void)
{
void *f;
if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
{
osd_fwrite(f,&ram[0x5010],8*18);
osd_fclose(f);
}
}
struct GameDriver nemesis_driver =
{
__FILE__,
0,
"nemesis",
"Nemesis (hacked?)",
"1985",
"Konami",
"Allard van der Bas",
0,
&nemesis_machine_driver,
0,
nemesis_rom,
0, 0,
0,
0, /* sound_prom */
nemesis_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
nemesis_hiload,nemesis_hisave
};
struct GameDriver nemesuk_driver =
{
__FILE__,
&nemesis_driver,
"nemesuk",
"Nemesis (UK)",
"1985",
"Konami",
"Allard van der Bas",
0,
&nemesis_machine_driver,
0,
nemesuk_rom,
0, 0,
0,
0, /* sound_prom */
nemesuk_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
nemesis_hiload,nemesis_hisave
};
struct GameDriver konamigt_driver =
{
__FILE__,
0,
"konamigt",
"Konami GT",
"1985",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -