static void wgp_core_vh_start(running_machine *machine, int x_offs,int y_offs,int piv_xoffs,int piv_yoffs) { wgp_piv_tilemap[0] = tilemap_create(get_piv0_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN,16,16,64,64); wgp_piv_tilemap[1] = tilemap_create(get_piv1_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN,16,16,64,64); wgp_piv_tilemap[2] = tilemap_create(get_piv2_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN,16,16,64,64); TC0100SCN_vh_start(machine,1,TC0100SCN_GFX_NUM,x_offs,y_offs,0,0,0,0,0); if (has_TC0110PCR()) TC0110PCR_vh_start(); wgp_piv_xoffs = piv_xoffs; wgp_piv_yoffs = piv_yoffs; tilemap_set_transparent_pen( wgp_piv_tilemap[0],0 ); tilemap_set_transparent_pen( wgp_piv_tilemap[1],0 ); tilemap_set_transparent_pen( wgp_piv_tilemap[2],0 ); /* flipscreen n/a */ tilemap_set_scrolldx( wgp_piv_tilemap[0],-piv_xoffs,0 ); tilemap_set_scrolldx( wgp_piv_tilemap[1],-piv_xoffs,0 ); tilemap_set_scrolldx( wgp_piv_tilemap[2],-piv_xoffs,0 ); tilemap_set_scrolldy( wgp_piv_tilemap[0],-piv_yoffs,0 ); tilemap_set_scrolldy( wgp_piv_tilemap[1],-piv_yoffs,0 ); tilemap_set_scrolldy( wgp_piv_tilemap[2],-piv_yoffs,0 ); /* We don't need tilemap_set_scroll_rows, as the custom draw routine applies rowscroll manually */ TC0100SCN_set_colbanks(0x80,0xc0,0x40); /* colors from saved states are often screwy (and this doesn't help...) */ state_save_register_func_postload(dirty_piv_tilemaps); }
static VIDEO_START( ninjaw_core ) { int chips; spritelist = auto_malloc(0x1000 * sizeof(*spritelist)); chips = number_of_TC0100SCN(); if (chips <= 0) /* we have an erroneous TC0100SCN configuration */ return 1; if (TC0100SCN_vh_start(chips,TC0100SCN_GFX_NUM,taito_hide_pixels,0,0,0,0,0,0)) return 1; if (has_TC0110PCR()) if (TC0110PCR_vh_start()) return 1; if (has_second_TC0110PCR()) if (TC0110PCR_1_vh_start()) return 1; if (has_third_TC0110PCR()) if (TC0110PCR_2_vh_start()) return 1; /* Ensure palette from correct TC0110PCR used for each screen */ TC0100SCN_set_chip_colbanks(0x0,0x100,0x200); return 0; }
static int warriorb_core_vh_start (int x_offs,int multiscrn_xoffs) { int chips; chips = number_of_TC0100SCN(); if (chips <= 0) /* we have an erroneous TC0100SCN configuration */ return 1; if (TC0100SCN_vh_start(chips,TC0100SCN_GFX_NUM,x_offs,0,0,0,0,0,multiscrn_xoffs)) return 1; if (has_TC0110PCR()) if (TC0110PCR_vh_start()) return 1; if (has_second_TC0110PCR()) if (TC0110PCR_1_vh_start()) return 1; /* Ensure palette from correct TC0110PCR used for each screen */ TC0100SCN_set_chip_colbanks(0,0x100,0x0); return 0; }
static VIDEO_START( othunder_core ) { /* Up to $800/8 big sprites, requires 0x100 * sizeof(*spritelist) Multiply this by 32 to give room for the number of small sprites, which are what actually get put in the structure. */ spritelist = auto_malloc(0x2000 * sizeof(*spritelist)); TC0100SCN_vh_start(machine,1,TC0100SCN_GFX_NUM,taito_hide_pixels,0,0,0,0,0,0); if (has_TC0110PCR()) TC0110PCR_vh_start(); }
static void warriorb_core_vh_start(running_machine *machine, int x_offs,int multiscrn_xoffs) { int chips; chips = number_of_TC0100SCN(); assert_always(chips > 0, "erroneous TC0100SCN configuration"); TC0100SCN_vh_start(machine,chips,TC0100SCN_GFX_NUM,x_offs,0,0,0,0,0,multiscrn_xoffs); if (has_TC0110PCR()) TC0110PCR_vh_start(); if (has_second_TC0110PCR()) TC0110PCR_1_vh_start(); /* Ensure palette from correct TC0110PCR used for each screen */ TC0100SCN_set_chip_colbanks(0,0x100,0x0); }
static int taitoz_core_vh_start (int x_offs) { if (has_TC0480SCP()) /* it's Dblaxle, a tc0480scp game */ { if (TC0480SCP_vh_start(TC0480SCP_GFX_NUM,x_offs,0x21,0x08,4,0,0,0,0)) return 1; } else /* it's a tc0100scn game */ { if (TC0100SCN_vh_start(1,TC0100SCN_GFX_NUM,x_offs,0,0,0,0,0,0)) return 1; } if (has_TC0150ROD()) if (TC0150ROD_vh_start()) return 1; if (has_TC0110PCR()) if (TC0110PCR_vh_start()) return 1; return 0; }