VIDEO_START_MEMBER(galaxold_state,mooncrst) { VIDEO_START_CALL_MEMBER(galaxold); m_modify_charcode = &galaxold_state::mooncrst_modify_charcode; m_modify_spritecode = &galaxold_state::mooncrst_modify_spritecode; }
VIDEO_START_MEMBER(galaxold_state,batman2) { VIDEO_START_CALL_MEMBER(galaxold); m_modify_charcode = &galaxold_state::batman2_modify_charcode; m_modify_spritecode = &galaxold_state::batman2_modify_spritecode; }
VIDEO_START_MEMBER(galaxold_state,dambustr) { VIDEO_START_CALL_MEMBER(galaxold); m_dambustr_bg_split_line = 0; m_dambustr_bg_color_1 = 0; m_dambustr_bg_color_2 = 0; m_dambustr_bg_priority = 0; m_dambustr_char_bank = 0; m_draw_background = &galaxold_state::dambustr_draw_background; m_modify_charcode = &galaxold_state::dambustr_modify_charcode; m_modify_spritecode = &galaxold_state::dambustr_modify_spritecode; m_draw_bullets = &galaxold_state::dambustr_draw_bullets; /* allocate the temporary bitmap for the background priority */ m_dambustr_tmpbitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); /* make a copy of the tilemap to emulate background priority */ m_dambustr_videoram2 = auto_alloc_array(machine(), UINT8, 0x0400); m_dambustr_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::dambustr_get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,32,32); m_dambustr_tilemap2->set_transparent_pen(0); }
VIDEO_START_MEMBER(galaxold_state,pisces) { VIDEO_START_CALL_MEMBER(galaxold); m_modify_charcode = &galaxold_state::pisces_modify_charcode; m_modify_spritecode = &galaxold_state::pisces_modify_spritecode; }
VIDEO_START_MEMBER(galaxold_state,darkplnt) { VIDEO_START_CALL_MEMBER(galaxold_plain); m_bg_tilemap->set_scrolldx(0, 0); m_draw_bullets = &galaxold_state::darkplnt_draw_bullets; }
VIDEO_START_MEMBER(toaplan2_state,bgareggabl) { VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ create_tx_tilemap(4, 4); }
VIDEO_START_MEMBER(galaxold_state,mimonkey) { VIDEO_START_CALL_MEMBER(scrambold); m_modify_charcode = &galaxold_state::mimonkey_modify_charcode; m_modify_spritecode = &galaxold_state::mimonkey_modify_spritecode; }
VIDEO_START_MEMBER(galaxold_state,bongo) { VIDEO_START_CALL_MEMBER(galaxold_plain); m_bg_tilemap->set_scrolldx(0, 384-256); m_modify_spritecode = &galaxold_state::batman2_modify_spritecode; }
VIDEO_START_MEMBER(galaxold_state,minefld) { VIDEO_START_CALL_MEMBER(scrambold); m_draw_stars = &galaxold_state::rescue_draw_stars; m_draw_background = &galaxold_state::minefld_draw_background; }
VIDEO_START_MEMBER(galaxold_state,galaxold) { VIDEO_START_CALL_MEMBER(galaxold_plain); m_draw_stars = &galaxold_state::galaxold_draw_stars; m_draw_bullets = &galaxold_state::galaxold_draw_bullets; }
VIDEO_START_MEMBER(galaxold_state,rescue) { VIDEO_START_CALL_MEMBER(scrambold); m_draw_stars = rescue_draw_stars; m_draw_background = rescue_draw_background; }
VIDEO_START_MEMBER(toaplan2_state,bgareggabl) { VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ truxton2_create_tx_tilemap(); m_tx_tilemap->set_scrolldx(0x04, 0x2a); }
VIDEO_START_MEMBER(leland_state,ataxx) { /* first do the standard stuff */ VIDEO_START_CALL_MEMBER(leland); /* allocate memory */ m_ataxx_qram = auto_alloc_array_clear(machine(), UINT8, QRAM_SIZE); }
VIDEO_START_MEMBER(galaxold_state,dkongjrm) { VIDEO_START_CALL_MEMBER(galaxold_plain); m_modify_charcode = &galaxold_state::pisces_modify_charcode; m_modify_spritecode = &galaxold_state::dkongjrm_modify_spritecode; m_spriteram2_present= 1; }
VIDEO_START_MEMBER(toaplan2_state,truxton2) { VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(m_tx_gfxram.target())); create_tx_tilemap(0x1d5, 0x16a); }
VIDEO_START_MEMBER(alg_state,alg) { /* standard video start */ VIDEO_START_CALL_MEMBER(amiga); /* configure pen 4096 as transparent in the renderer and use it for the genlock color */ m_palette->set_pen_color(4096, rgb_t(0,0,0,0)); amiga_set_genlock_color(machine(), 4096); }
VIDEO_START_MEMBER(toaplan2_state,truxton2) { VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ m_gfxdecode->m_gfx[0]->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target())); machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this)); create_tx_tilemap(0x1d5, 0x16a); }
VIDEO_START_MEMBER(galaxold_state,mariner) { VIDEO_START_CALL_MEMBER(galaxold_plain); m_draw_stars = &galaxold_state::mariner_draw_stars; m_draw_bullets = &galaxold_state::scrambold_draw_bullets; m_draw_background = &galaxold_state::mariner_draw_background; m_modify_charcode = &galaxold_state::mariner_modify_charcode; }
VIDEO_START_MEMBER(aim65_state,aim65) { m_print_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(aim65_state::aim65_printer_timer),this)); m_printerRAM = auto_alloc_array(machine(), UINT16, (600 * 10 * 2) / 2); memset(m_printerRAM, 0, videoram_size); VIDEO_START_CALL_MEMBER(generic); m_printer_x = 0; m_printer_y = 0; m_printer_dir = 0; m_flag_a = 0; m_flag_b = 0; m_printer_level = 0; }
VIDEO_START_MEMBER(galaxold_state,rockclim) { VIDEO_START_CALL_MEMBER(galaxold); m_rockclim_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::rockclim_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); m_draw_background = rockclim_draw_background; m_modify_charcode = mooncrst_modify_charcode; m_modify_spritecode = rockclim_modify_spritecode; m_rockclim_v = m_rockclim_h = 0; state_save_register_global(machine(), m_rockclim_v); state_save_register_global(machine(), m_rockclim_h); }
VIDEO_START_MEMBER(galaxold_state,rockclim) { VIDEO_START_CALL_MEMBER(galaxold); m_rockclim_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::rockclim_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); m_draw_background = &galaxold_state::rockclim_draw_background; m_modify_charcode = &galaxold_state::mooncrst_modify_charcode; m_modify_spritecode = &galaxold_state::rockclim_modify_spritecode; m_rockclim_v = m_rockclim_h = 0; save_item(NAME(m_rockclim_v)); save_item(NAME(m_rockclim_h)); }
VIDEO_START_MEMBER(aim65_state,aim65) { m_print_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(aim65_state::aim65_printer_timer),this)); m_printerRAM = std::make_unique<uint16_t[]>((600 * 10 * 2) / 2); memset(m_printerRAM, 0, videoram_size); VIDEO_START_CALL_MEMBER(generic); m_printer_x = 0; m_printer_y = 0; m_printer_dir = 0; m_flag_a = 0; m_flag_b = 0; m_printer_level = 0; }
VIDEO_START_MEMBER(toaplan2_state,batrider) { VIDEO_START_CALL_MEMBER( toaplan2 ); m_vdp[0]->disable_sprite_buffer(); // disable buffering on this game /* Create the Text tilemap for this game */ m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(m_tx_gfxram.target())); create_tx_tilemap(0x1d4, 0x16b); /* Has special banking */ m_vdp[0]->set_gfxrom_banked(); }
VIDEO_START_MEMBER(toaplan2_state,fixeightbl) { VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ create_tx_tilemap(); /* This bootleg has additional layer offsets on the VDP */ m_vdp[0]->set_tm_extra_offsets(0, -0x1d6 - 26, -0x1ef - 15, 0, 0 ); m_vdp[0]->set_tm_extra_offsets(1, -0x1d8 - 22, -0x1ef - 15, 0, 0 ); m_vdp[0]->set_tm_extra_offsets(2, -0x1da - 18, -0x1ef - 15, 0, 0 ); m_vdp[0]->set_sp_extra_offsets(8/*-0x1cc - 64*/, 8/*-0x1ef - 128*/, 0, 0); m_vdp[0]->init_scroll_regs(); }
VIDEO_START_MEMBER(galaxold_state,scrambold) { VIDEO_START_CALL_MEMBER(galaxold_plain); /* FIXME: This most probably needs to be adjusted * again when RAW video params are added to scramble */ m_bg_tilemap->set_scrolldx(0, 0); m_draw_stars = &galaxold_state::scrambold_draw_stars; m_draw_bullets = &galaxold_state::scrambold_draw_bullets; m_draw_background = &galaxold_state::scrambold_draw_background; }
VIDEO_START_MEMBER(toaplan2_state,batrider) { VIDEO_START_CALL_MEMBER( toaplan2 ); m_vdp0->sp.use_sprite_buffer = 0; // disable buffering on this game /* Create the Text tilemap for this game */ m_tx_gfxram16.allocate(RAIZING_TX_GFXRAM_SIZE/2); m_gfxdecode->m_gfx[0]->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target())); machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this)); create_tx_tilemap(0x1d4, 0x16b); /* Has special banking */ m_vdp0->gp9001_gfxrom_is_banked = 1; }
VIDEO_START_MEMBER(kaneko16_berlwall_state,berlwall) { int sx, x,y; UINT8 *RAM = memregion("gfx3")->base(); /* Render the hi-color static backgrounds held in the ROMs */ m_bg15_bitmap.allocate(256 * 32, 256 * 1); /* 8aba is used as background color 8aba/2 = 455d = 10001 01010 11101 = $11 $0a $1d */ for (sx = 0 ; sx < 32 ; sx++) // horizontal screens for (x = 0 ; x < 256 ; x++) // horizontal pixels for (y = 0 ; y < 256 ; y++) // vertical pixels { int addr = sx * (256 * 256) + x + y * 256; int data = RAM[addr * 2 + 0] * 256 + RAM[addr * 2 + 1]; int r,g,b; r = (data & 0x07c0) >> 6; g = (data & 0xf800) >> 11; b = (data & 0x003e) >> 1; /* apply a simple decryption */ r ^= 0x09; if (~g & 0x08) g ^= 0x10; g = (g - 1) & 0x1f; /* decrease with wraparound */ b ^= 0x03; if (~b & 0x08) b ^= 0x10; b = (b + 2) & 0x1f; /* increase with wraparound */ /* kludge to fix the rollercoaster picture */ if ((r & 0x10) && (b & 0x10)) g = (g - 1) & 0x1f; /* decrease with wraparound */ m_bg15_bitmap.pix16(y, sx * 256 + x) = 2048 + ((g << 10) | (r << 5) | b); } VIDEO_START_CALL_MEMBER(kaneko16); }
VIDEO_START_MEMBER(toaplan2_state,fixeightbl) { VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ create_tx_tilemap(); /* This bootleg has additional layer offsets on the VDP */ m_vdp0->bg.extra_xoffset.normal = -0x1d6 -26; m_vdp0->bg.extra_yoffset.normal = -0x1ef -15; m_vdp0->fg.extra_xoffset.normal = -0x1d8 -22; m_vdp0->fg.extra_yoffset.normal = -0x1ef -15; m_vdp0->top.extra_xoffset.normal = -0x1da -18; m_vdp0->top.extra_yoffset.normal = -0x1ef -15; m_vdp0->sp.extra_xoffset.normal = 8;//-0x1cc -64; m_vdp0->sp.extra_yoffset.normal = 8;//-0x1ef -128; m_vdp0->init_scroll_regs(); }
VIDEO_START_MEMBER(rohga_state,schmeisr) { VIDEO_START_CALL_MEMBER( rohga ); // wire mods on pcb.. m_sprgen1->set_col_callback(schmeisr_col_callback); }
VIDEO_START_MEMBER(nmk16_state,raphero) { VIDEO_START_CALL_MEMBER( macross2 ); m_simple_scroll = 0; }