diff options
Diffstat (limited to 'src/mame/includes/system16.h')
-rw-r--r-- | src/mame/includes/system16.h | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h new file mode 100644 index 00000000000..27bceee56d4 --- /dev/null +++ b/src/mame/includes/system16.h @@ -0,0 +1,279 @@ +/******************** NEW STUFF *******************/ + +#include "video/segaic16.h" + +/*----------- defined in video/segahang.c -----------*/ + +VIDEO_START( hangon ); +VIDEO_START( sharrier ); +VIDEO_UPDATE( hangon ); + +/*----------- defined in video/segas16a.c -----------*/ + +VIDEO_START( system16a ); +VIDEO_UPDATE( system16a ); + +/*----------- defined in video/segas16b.c -----------*/ + +VIDEO_START( system16b ); +VIDEO_START( timscanr ); +VIDEO_UPDATE( system16b ); + +/*----------- defined in video/segas18.c -----------*/ + +VIDEO_START( system18 ); +VIDEO_UPDATE( system18 ); + +void system18_set_grayscale(int enable); +void system18_set_vdp_enable(int eanble); +void system18_set_vdp_mixing(int mixing); + +/*----------- defined in video/segaorun.c -----------*/ + +VIDEO_START( outrun ); +VIDEO_START( shangon ); +VIDEO_UPDATE( outrun ); +VIDEO_UPDATE( shangon ); + +/*----------- defined in video/segaxbd.c -----------*/ + +VIDEO_START( xboard ); +VIDEO_UPDATE( xboard ); +void xboard_set_road_priority(int priority); + +/*----------- defined in video/segaybd.c -----------*/ + +VIDEO_START( yboard ); +VIDEO_UPDATE( yboard ); + + + +/******************** OLD STUFF *******************/ + +#define SYS16_SPR_FLIPX 0x01 +#define SYS16_SPR_VISIBLE 0x04 +#define SYS16_SPR_DRAW_TO_LEFT 0x08 +#define SYS16_SPR_SPECIAL 0x10 +#define SYS16_SPR_SHADOW 0x20 /* all pixels */ +#define SYS16_SPR_PARTIAL_SHADOW 0x40 /* pen #10 */ +#define SYS16_SPR_DRAW_TO_TOP 0x80 + +struct sys16_sprite_attributes { + int priority, flags; + int gfx, color; + UINT8 pitch; + int zoomx, zoomy; + int x,y, screen_height; /* in screen coordinates */ + int shadow_pen; +}; + +extern int (*sys16_spritesystem)( + struct sys16_sprite_attributes *sprite, + const UINT16 *source, + int bJustGetColor ); + +/*----------- defined in video/sys16spr.c -----------*/ + +extern int sys16_sprite_shinobi( struct sys16_sprite_attributes *sprite, const UINT16 *source, int bJustGetColor ); +extern int sys16_sprite_passshot( struct sys16_sprite_attributes *sprite, const UINT16 *source, int bJustGetColor ); +extern int sys16_sprite_quartet2( struct sys16_sprite_attributes *sprite, const UINT16 *source, int bJustGetColor ); + +#define NumOfShadowColors 32 +#define ShadowColorsMultiplier 2 + +/*----------- defined in machine/system16.c -----------*/ + +extern UINT16 *sys16_workingram; +extern UINT16 *sys16_workingram2; +extern UINT16 *sys16_extraram; +extern UINT16 *sys16_extraram2; +extern UINT16 *sys16_extraram3; + +/* sound */ +extern struct upd7759_interface sys16_upd7759_interface; + +extern int sys18_sound_info[4*2]; + +extern void sys16_patch_code( int offset, int data ); + +#define SYS16_MWA16_PALETTERAM sys16_paletteram_w +#define SYS16_MRA16_PALETTERAM paletteram16_word_r + +#define SYS16_MRA16_WORKINGRAM MRA16_RAM +#define SYS16_MWA16_WORKINGRAM MWA16_RAM + +#define SYS16_MRA16_WORKINGRAM2 MRA16_RAM +#define SYS16_MWA16_WORKINGRAM2 MWA16_RAM + +extern MACHINE_RESET( sys16_onetime ); + +#define SYS16_MRA16_SPRITERAM MRA16_RAM +#define SYS16_MWA16_SPRITERAM MWA16_RAM + +#define SYS16_MRA16_TILERAM sys16_tileram_r +#define SYS16_MWA16_TILERAM sys16_tileram_w + +#define SYS16_MRA16_TEXTRAM sys16_textram_r +#define SYS16_MWA16_TEXTRAM sys16_textram_w + +#define SYS16_MRA16_EXTRAM MRA16_RAM +#define SYS16_MWA16_EXTRAM MWA16_RAM + +#define SYS16_MRA16_EXTRAM2 MRA16_RAM +#define SYS16_MWA16_EXTRAM2 MWA16_RAM + +#define SYS16_MRA16_EXTRAM3 MRA16_RAM +#define SYS16_MWA16_EXTRAM3 MWA16_RAM + +#define SYS16_MRA16_EXTRAM4 MRA16_RAM +#define SYS16_MWA16_EXTRAM4 MWA16_RAM + +#define SYS16_MRA16_ROADRAM MRA16_RAM +#define SYS16_MWA16_ROADRAM MWA16_RAM + +GFXDECODE_EXTERN( sys16 ); + + +#define SYS16_JOY1 PORT_START_TAG("IN0")\ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY + +#define SYS16_JOY2 PORT_START_TAG("IN1") \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL + +#define SYS16_SERVICE PORT_START_TAG("IN2") \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ + PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define SYS16_COINAGE PORT_START_TAG("DSW0") \ + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) \ + PORT_DIPSETTING( 0x04, "2 Coins/1 Credit 4/3" ) \ + PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x01, "1 Coin/1 Credit 2/3" ) \ + PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 4/5" ) \ + PORT_DIPSETTING( 0x03, "1 Coin/1 Credit 5/6" ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ + PORT_DIPSETTING( 0x00, "Free Play (if Coin B too) or 1/1" ) \ + PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ + PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) \ + PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) \ + PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) \ + PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) \ + PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) \ + PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ + PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ + PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) + + +/*----------- defined in video/system16.c -----------*/ + +/* video hardware */ +extern READ16_HANDLER( sys16_tileram_r ); +extern WRITE16_HANDLER( sys16_tileram_w ); +extern READ16_HANDLER( sys16_textram_r ); +extern WRITE16_HANDLER( sys16_textram_w ); +extern WRITE16_HANDLER( sys16_paletteram_w ); + +/* "normal" video hardware */ +extern VIDEO_START( system16 ); +extern VIDEO_UPDATE( system16 ); + +/* system18 video hardware */ +extern VIDEO_START( system18old ); +extern VIDEO_UPDATE( system18old ); + +/* callback to poll video registers */ +extern void (* sys16_update_proc)( void ); + +extern UINT16 *sys16_tileram; +extern UINT16 *sys16_textram; +extern UINT16 *sys16_spriteram; + +extern int sys16_sh_shadowpal; +extern int sys16_MaxShadowColors; + +/* video driver constants (vary with game) */ +extern int sys16_gr_bitmap_width; +extern int sys16_sprxoffset; +extern int sys16_bgxoffset; +extern int sys16_fgxoffset; +extern int *sys16_obj_bank; +extern int sys16_textlayer_lo_min; +extern int sys16_textlayer_lo_max; +extern int sys16_textlayer_hi_min; +extern int sys16_textlayer_hi_max; +extern int sys16_bg1_trans; +extern int sys16_bg_priority_mode; +extern int sys16_fg_priority_mode; +extern int sys16_bg_priority_value; +extern int sys16_fg_priority_value; +extern int sys16_tilebank_switch; +extern int sys16_rowscroll_scroll; +extern int shinobl_kludge; + +/* video driver registers */ +extern int sys16_refreshenable; +extern int sys16_tile_bank0; +extern int sys16_tile_bank1; +extern int sys16_bg_scrollx, sys16_bg_scrolly; +extern int sys16_bg_page[4]; +extern int sys16_fg_scrollx, sys16_fg_scrolly; +extern int sys16_fg_page[4]; + +extern int sys16_bg2_scrollx, sys16_bg2_scrolly; +extern int sys16_bg2_page[4]; +extern int sys16_fg2_scrollx, sys16_fg2_scrolly; +extern int sys16_fg2_page[4]; + +extern int sys18_bg2_active; +extern int sys18_fg2_active; +extern UINT16 *sys18_splittab_bg_x; +extern UINT16 *sys18_splittab_bg_y; +extern UINT16 *sys18_splittab_fg_x; +extern UINT16 *sys18_splittab_fg_y; + +extern UINT16 *sys16_gr_ver; +extern UINT16 *sys16_gr_hor; +extern UINT16 *sys16_gr_pal; +extern UINT16 *sys16_gr_flip; +extern int sys16_gr_palette; +extern int sys16_gr_palette_default; +extern UINT8 sys16_gr_colorflip[2][4]; +extern UINT16 *sys16_gr_second_road; + |