📄 system16.c
字号:
PORT_DIPSETTING( 0x02, "Off" )
PORT_DIPSETTING( 0x00, "On" )
PORT_DIPNAME( 0x0c, 0x0c, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0x08, "2" )
PORT_DIPSETTING( 0x0c, "3" )
PORT_DIPSETTING( 0x04, "4" )
PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Free (127?)", IP_KEY_NONE, IP_JOY_NONE, 0 )
PORT_DIPNAME( 0x30, 0x30, "Timer", IP_KEY_NONE )
PORT_DIPSETTING( 0x30, "150" )
PORT_DIPSETTING( 0x20, "140" )
PORT_DIPSETTING( 0x10, "130" )
PORT_DIPSETTING( 0x00, "120" )
PORT_DIPNAME( 0xc0, 0xc0, "Difficulty", IP_KEY_NONE )
PORT_DIPSETTING( 0x80, "Easy" )
PORT_DIPSETTING( 0xc0, "Normal" )
PORT_DIPSETTING( 0x40, "Hard" )
PORT_DIPSETTING( 0x00, "Hardest" )
INPUT_PORTS_END
/***************************************************************************/
MACHINE_DRIVER( aliensyn_machine_driver, \
aliensyn_readmem,aliensyn_writemem,aliensyn_init_machine, gfx1 )
struct GameDriver aliensyn_driver =
{
__FILE__,
0,
"aliensyn",
"Alien Syndrome",
"1987",
"Sega",
SYS16_CREDITS,
0,
&aliensyn_machine_driver,
0,
aliensyn_rom,
aliensyn_sprite_decode, 0,
0,
0,
aliensyn_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
0, 0
};
/***************************************************************************/
ROM_START( altbeast_rom )
ROM_REGION( 0x040000 ) /* 68000 code */
ROM_LOAD_ODD ( "ab11739.bin", 0x000000, 0x20000, 0xe466eb65 )
ROM_LOAD_EVEN( "ab11740.bin", 0x000000, 0x20000, 0xce227542 )
ROM_REGION( 0x60000 ) /* tiles */
ROM_LOAD( "ab11674.bin", 0x00000, 0x20000, 0xa57a66d5 )
ROM_LOAD( "ab11675.bin", 0x20000, 0x20000, 0x2ef2f144 )
ROM_LOAD( "ab11676.bin", 0x40000, 0x20000, 0x0c04acac )
ROM_REGION( 0xe0000*2 ) /* sprites */
ROM_LOAD( "ab11677.bin", 0x00000, 0x10000, 0xf8b3684e )
ROM_LOAD( "ab11681.bin", 0x10000, 0x10000, 0xae3c2793 )
ROM_LOAD( "ab11726.bin", 0x20000, 0x10000, 0x3cce5419 )
ROM_LOAD( "ab11730.bin", 0x30000, 0x10000, 0x3af62b55 )
ROM_LOAD( "ab11678.bin", 0x40000, 0x10000, 0xb0390078 )
ROM_LOAD( "ab11682.bin", 0x50000, 0x10000, 0x2a87744a )
ROM_LOAD( "ab11728.bin", 0x60000, 0x10000, 0xf3a43fd8 )
ROM_LOAD( "ab11732.bin", 0x70000, 0x10000, 0x2fb3e355 )
ROM_LOAD( "ab11679.bin", 0x80000, 0x10000, 0x676be0cb )
ROM_LOAD( "ab11683.bin", 0x90000, 0x10000, 0x802cac94 )
ROM_LOAD( "ab11718.bin", 0xa0000, 0x10000, 0x882864c2 )
ROM_LOAD( "ab11734.bin", 0xb0000, 0x10000, 0x76c704d2 )
ROM_LOAD( "ab11680.bin", 0xc0000, 0x10000, 0x339987f7 )
ROM_LOAD( "ab11684.bin", 0xd0000, 0x10000, 0x4fe406aa )
ROM_REGION( 0x10000 ) /* sound CPU */
ROM_LOAD( "ab11671.bin", 0x0000, 0x8000, 0x2b71343b )
ROM_END
/***************************************************************************/
static int altbeast_skip(int offset)
{
if (cpu_getpc()==0x3994) {cpu_spinuntil_int(); return 1<<8;}
return READ_WORD(&sys16_workingram[0xf01c]);
}
static struct MemoryReadAddress altbeast_readmem[] =
{
{ 0xc41002, 0xc41003, io_player1_r },
{ 0xc41006, 0xc41007, io_player2_r },
{ 0xc41000, 0xc41001, io_service_r },
{ 0xc42002, 0xc42003, io_dip1_r },
{ 0xc42000, 0xc42001, io_dip2_r },
{ 0x410000, 0x410fff, MRA_TEXTRAM },
{ 0x400000, 0x40ffff, MRA_TILERAM },
{ 0x440000, 0x440fff, MRA_SPRITERAM },
{ 0x840000, 0x840fff, MRA_PALETTERAM },
{ 0xc40000, 0xc40fff, MRA_EXTRAM },
{ 0xfff01c, 0xfff01d, altbeast_skip },
{ 0xff0000, 0xffffff, MRA_WORKINGRAM },
{ 0x000000, 0x03ffff, MRA_ROM },
{-1}
};
static struct MemoryWriteAddress altbeast_writemem[] =
{
{ 0x000000, 0x03ffff, MWA_ROM },
{ 0xfe0006, 0xfe0007, sound_command_w },
{ 0x410000, 0x410fff, MWA_TEXTRAM },
{ 0x400000, 0x40ffff, MWA_TILERAM },
{ 0x440000, 0x44ffff, MWA_SPRITERAM },
{ 0x840000, 0x84ffff, MWA_PALETTERAM },
{ 0xc40000, 0xc40fff, MWA_EXTRAM },
{ 0xff0000, 0xffffff, MWA_WORKINGRAM },
{-1}
};
/***************************************************************************/
void altbeast_update_proc( void ){
sys16_fg_scrollx = READ_WORD( &sys16_textram[0x0e98] );
sys16_bg_scrollx = READ_WORD( &sys16_textram[0x0e9a] );
sys16_fg_scrolly = READ_WORD( &sys16_textram[0x0e90] );
sys16_bg_scrolly = READ_WORD( &sys16_textram[0x0e92] );
set_fg_page( READ_WORD( &sys16_textram[0x0e80] ) );
set_bg_page( READ_WORD( &sys16_textram[0x0e82] ) );
set_tile_bank( READ_WORD( &sys16_workingram[0xf094] ) );
set_refresh( READ_WORD( &sys16_extraram[0] ) );
}
void altbeast_init_machine( void ){
static int bank[16] = {0x00,0x00,0x02,0x00,0x04,0x00,0x06,0x00,0x08,0x00,0x0A,0x00,0x0C,0x00,0x00,0x00};
sys16_obj_bank = bank;
sys16_update_proc = altbeast_update_proc;
}
void altbeast_sprite_decode( void ){
sys16_sprite_decode( 7,0x20000 );
}
/***************************************************************************/
INPUT_PORTS_START( altbeast_input_ports )
SYS16_JOY1
SYS16_JOY2
SYS16_SERVICE
SYS16_COINAGE
PORT_START /* DSW1 */
PORT_DIPNAME( 0x01, 0x01, "Credits needed", IP_KEY_NONE )
PORT_DIPSETTING( 0x01, "1 to start, 1 to continue")
PORT_DIPSETTING( 0x00, "2 to start, 1 to continue")
PORT_DIPNAME( 0x02, 0x02, "Demo Sounds", IP_KEY_NONE )
PORT_DIPSETTING( 0x02, "Off" )
PORT_DIPSETTING( 0x00, "On" )
PORT_DIPNAME( 0x0c, 0x0c, "Lives", IP_KEY_NONE )
PORT_DIPSETTING( 0x08, "2" )
PORT_DIPSETTING( 0x0c, "3" )
PORT_DIPSETTING( 0x04, "4" )
PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "240", IP_KEY_NONE, IP_JOY_NONE, 0 )
PORT_DIPNAME( 0x30, 0x30, "Energy Meter", IP_KEY_NONE )
PORT_DIPSETTING( 0x20, "2" )
PORT_DIPSETTING( 0x30, "3" )
PORT_DIPSETTING( 0x10, "4" )
PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0xc0, 0xc0, "Difficulty", IP_KEY_NONE )
PORT_DIPSETTING( 0x80, "Easy" )
PORT_DIPSETTING( 0xc0, "Normal" )
PORT_DIPSETTING( 0x40, "Hard" )
PORT_DIPSETTING( 0x00, "Hardest" )
INPUT_PORTS_END
/***************************************************************************/
MACHINE_DRIVER( altbeast_machine_driver, \
altbeast_readmem,altbeast_writemem,altbeast_init_machine, gfx2 )
struct GameDriver altbeast_driver =
{
__FILE__,
0,
"altbeast",
"Altered Beast",
"1988",
"Sega",
SYS16_CREDITS,
0,
&altbeast_machine_driver,
0,
altbeast_rom,
altbeast_sprite_decode, 0,
0,
0,
altbeast_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
0, 0
};
/***************************************************************************/
ROM_START( astormbl_rom )
ROM_REGION( 0x080000 ) /* 68000 code */
ROM_LOAD_ODD ( "astorm.a5", 0x000000, 0x40000, 0xefe9711e )
ROM_LOAD_EVEN( "astorm.a6", 0x000000, 0x40000, 0x7682ed3e )
ROM_REGION( 0xc0000 ) /* tiles */
ROM_LOAD( "astorm.b1", 0x00000, 0x40000, 0xdf5d0a61 )
ROM_LOAD( "astorm.b2", 0x40000, 0x40000, 0x787afab8 )
ROM_LOAD( "astorm.b3", 0x80000, 0x40000, 0x4e01b477 )
ROM_REGION( 0x200000*2 ) /* sprites */
ROM_LOAD( "astorm.b11", 0x000000, 0x40000, 0xa782b704 )
ROM_LOAD( "astorm.a11", 0x040000, 0x40000, 0x7829c4f3 )
ROM_LOAD( "astorm.b10", 0x080000, 0x40000, 0xeb510228 )
ROM_LOAD( "astorm.a10", 0x0c0000, 0x40000, 0x3b6b4c55 )
ROM_LOAD( "astorm.b9", 0x100000, 0x40000, 0xe668eefb )
ROM_LOAD( "astorm.a9", 0x140000, 0x40000, 0x2293427d )
ROM_LOAD( "astorm.b8", 0x180000, 0x40000, 0xde9221ed )
ROM_LOAD( "astorm.a8", 0x1c0000, 0x40000, 0x8c9a71c4 )
ROM_REGION( 0x10000 ) /* sound CPU */
ROM_END
/***************************************************************************/
static struct MemoryReadAddress astormbl_readmem[] =
{
{ 0x000000, 0x07ffff, MRA_ROM },
{ 0x100000, 0x10ffff, MRA_TILERAM },
{ 0x110000, 0x11ffff, MRA_TEXTRAM },
{ 0x140000, 0x140fff, MRA_PALETTERAM },
{ 0x200000, 0x200fff, MRA_SPRITERAM },
{ 0xa00000, 0xa00001, io_dip1_r },
{ 0xa00002, 0xa00003, io_dip2_r },
{ 0xa01002, 0xa01003, io_player1_r },
{ 0xa01004, 0xa01005, io_player2_r },
{ 0xa01006, 0xa01007, io_player3_r },
{ 0xa01000, 0xa01001, io_service_r },
{ 0xa00000, 0xa00fff, MRA_EXTRAM2 },
{ 0xc00000, 0xc0ffff, MRA_EXTRAM },
{ 0xc40000, 0xc40fff, MRA_EXTRAM3 },
{ 0xff0000, 0xffffff, MRA_WORKINGRAM },
{-1}
};
static struct MemoryWriteAddress astormbl_writemem[] =
{
{ 0x000000, 0x07ffff, MWA_ROM },
{ 0x100000, 0x10ffff, MWA_TILERAM },
{ 0x110000, 0x111fff, MWA_TEXTRAM },
{ 0x140000, 0x14ffff, MWA_PALETTERAM },
{ 0x200000, 0x20ffff, MWA_SPRITERAM },
{ 0xa00000, 0xa00fff, MWA_EXTRAM2 },
{ 0xc00000, 0xc0ffff, MWA_EXTRAM },
{ 0xc40000, 0xc40fff, MWA_EXTRAM3 },
{ 0xfe0006, 0xfe0007, sound_command_w },
{ 0xff0000, 0xffffff, MWA_WORKINGRAM },
{-1}
};
/***************************************************************************/
void astormbl_update_proc( void ){
sys16_fg_scrollx = READ_WORD( &sys16_textram[0x0e98] );
sys16_bg_scrollx = READ_WORD( &sys16_textram[0x0e9a] );
sys16_fg_scrolly = READ_WORD( &sys16_textram[0x0e90] );
sys16_bg_scrolly = READ_WORD( &sys16_textram[0x0e92] );
set_fg_page( READ_WORD( &sys16_textram[0x0e80] ) );
set_bg_page( READ_WORD( &sys16_textram[0x0e82] ) );
set_tile_bank( READ_WORD( &sys16_extraram2[0] ) );
set_refresh( READ_WORD( &sys16_extraram3[0] ) );
}
void astormbl_init_machine( void ){
static int bank[16] = {0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x10,0x12,0x14,0x16,0x18,0x1A,0x1C,0x1E};
sys16_obj_bank = bank;
patch_code( 0x2D6E, 0x32 );
patch_code( 0x2D6F, 0x3c );
patch_code( 0x2D70, 0x80 );
patch_code( 0x2D71, 0x00 );
patch_code( 0x2D72, 0x33 );
patch_code( 0x2D73, 0xc1 );
patch_code( 0x2ea2, 0x30 );
patch_code( 0x2ea3, 0x38 );
patch_code( 0x2ea4, 0xec );
patch_code( 0x2ea5, 0xf6 );
patch_code( 0x2ea6, 0x30 );
patch_code( 0x2ea7, 0x80 );
patch_code( 0x2e5c, 0x30 );
patch_code( 0x2e5d, 0x38 );
patch_code( 0x2e5e, 0xec );
patch_code( 0x2e5f, 0xe2 );
patch_code( 0x2e60, 0xc0 );
patch_code( 0x2e61, 0x7c );
patch_code( 0x4cd8, 0x02 );
patch_code( 0x4cec, 0x03 );
patch_code( 0x2dc6c, 0xe9 );
patch_code( 0x2dc64, 0x10 );
patch_code( 0x2dc65, 0x10 );
patch_code( 0x3a100, 0x10 );
patch_code( 0x3a101, 0x13 );
patch_code( 0x3a102, 0x90 );
patch_code( 0x3a103, 0x2b );
patch_code( 0x3a104, 0x00 );
patch_code( 0x3a105, 0x01 );
patch_code( 0x3a106, 0x0c );
patch_code( 0x3a107, 0x00 );
patch_code( 0x3a108, 0x00 );
patch_code( 0x3a109, 0x01 );
patch_code( 0x3a10a, 0x66 );
patch_code( 0x3a10b, 0x06 );
patch_code( 0x3a10c, 0x42 );
patch_code( 0x3a10d, 0x40 );
patch_code( 0x3a10e, 0x54 );
patch_code( 0x3a10f, 0x8b );
patch_code( 0x3a110, 0x60 );
patch_code( 0x3a111, 0x02 );
patch_code( 0x3a112, 0x30 );
patch_code( 0x3a113, 0x1b );
patch_code( 0x3a114, 0x34 );
patch_code( 0x3a115, 0xc0 );
patch_code( 0x3a116, 0x34 );
patch_code( 0x3a117, 0xdb );
patch_code( 0x3a118, 0x24 );
patch_code( 0x3a119, 0xdb );
patch_code( 0x3a11a, 0x24 );
patch_code( 0x3a11b, 0xdb );
patch_code( 0x3a11c, 0x4e );
patch_code( 0x3a11d, 0x75 );
patch_code( 0xaf8e, 0x66 );
sys16_update_proc = astormbl_update_proc;
}
void astormbl_sprite_decode( void ){
sys16_sprite_decode( 4,0x080000 );
}
/***************************************************************************/
INPUT_PORTS_START( astormbl_input_ports )
SYS16_JOY1
SYS16_JOY2
SYS16_SERVICE
SYS16_COINAGE
SYS16_OPTIONS
SYS16_JOY3
INPUT_PORTS_END
/***************************************************************************/
MACHINE_DRIVER( astormbl_machine_driver, \
astormbl_readmem,astormbl_writemem,astormbl_init_machine, gfx4 )
struct GameDriver astormbl_driver =
{
__FILE__,
0,
"astormbl",
"Alien Storm (bootleg)",
"????",
"bootleg",
SYS16_CREDITS,
GAME_NOT_WORKING,
&astormbl_machine_driver,
0,
astormbl_rom,
astormbl_sprite_decode, 0,
0,
0,
astormbl_input_ports,
0, 0, 0,
ORIENTATION_DEFAULT,
0, 0
};
/***************************************************************************
Aurail
***************************************************************************/
ROM_START( aurail_rom )
ROM_REGION( 0x100000 ) /* 68000 code */
ROM_LOAD_ODD ( "13576", 0x000000, 0x20000, 0x1e428d94 )
ROM_LOAD_EVEN( "13577", 0x000000, 0x20000, 0x6701b686 )
ROM_LOAD_ODD ( "13445", 0x040000, 0x20000, 0x28dfc3dd )
ROM_LOAD_EVEN( "13447", 0x040000, 0x20000, 0x70a52167 )
ROM_REGION( 0xc0000 ) /* tiles */
ROM_LOAD( "aurail.a14", 0x00000, 0x20000, 0x0fc4a7a8 ) /* plane 1 */
ROM_LOAD( "aurail.b14", 0x20000, 0x20000, 0xe08135e0 )
ROM_LOAD( "aurail.a15", 0x40000, 0x20000, 0x1c49852f ) /* plane 2 */
ROM_LOAD( "aurail.b15", 0x60000, 0x20000, 0xe14c6684 )
ROM_LOAD( "aurail.a16", 0x80000, 0x20000, 0x047bde5e ) /* plane 3 */
ROM_LOAD( "aurail.b16", 0xa0000, 0x20000, 0x6309fec4 )
ROM_REGION( 0x200000*2 ) /* sprites */
ROM_LOAD( "aurail.b1", 0x000000, 0x020000, 0x5fa0a9f8 )
ROM_LOAD( "aurail.b5", 0x020000, 0x020000, 0x0d1b54da )
ROM_LOAD( "aurail.b2", 0x040000, 0x020000, 0x5f6b33b1 )
ROM_LOAD( "aurail.b6", 0x060000, 0x020000, 0xbad340c3 )
ROM_LOAD( "aurail.b3", 0x080000, 0x020000, 0x4e80520b )
ROM_LOAD( "aurail.b7", 0x0a0000, 0x020000, 0x7e9165ac )
ROM_LOAD( "aurail.b4", 0x0c0000, 0x020000, 0x5733c428 )
ROM_LOAD( "aurail.b8", 0x0e0000, 0x020000, 0x66b8f9b3 )
ROM_LOAD( "aurail.a1", 0x100000, 0x020000, 0x4f370b2b )
ROM_LOAD( "aurail.b10", 0x120000, 0x020000, 0xf76014bf )
ROM_LOAD( "aurail.a2", 0x140000, 0x020000, 0x37cf9cb4 )
ROM_LOAD( "aurail.b11", 0x160000, 0x020000, 0x1061e7da )
ROM_LOAD( "aurail.a3", 0x180000, 0x020000, 0x049698ef )
ROM_LOAD( "aurail.b12", 0x1a0000, 0x020000, 0x7dbcfbf1 )
ROM_LOAD( "aurail.a4", 0x1c0000, 0x020000, 0x77a8989e )
ROM_LOAD( "aurail.b13", 0x1e0000, 0x020000, 0x551df422 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -