void k051316_device::device_start() { decode_gfx(); gfx(0)->set_colors(palette().entries() / gfx(0)->depth()); m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_ram.resize(0x800); memset(&m_ram[0], 0, 0x800); if (m_layermask) { m_tmap->map_pens_to_layer(0, 0, 0, TILEMAP_PIXEL_LAYER1); m_tmap->map_pens_to_layer(0, m_layermask, m_layermask, TILEMAP_PIXEL_LAYER0); } else m_tmap->set_transparent_pen(0); // bind callbacks m_k051316_cb.bind_relative_to(*owner()); save_item(NAME(m_ram)); save_item(NAME(m_ctrlram)); save_item(NAME(m_wrap)); }
void k05324x_device::device_start() { if (!palette().device().started()) throw device_missing_dependencies(); /* decode the graphics */ decode_gfx(); gfx(0)->set_colors(palette().entries() / gfx(0)->depth()); if (VERBOSE && !(palette().shadows_enabled())) popmessage("driver should use VIDEO_HAS_SHADOWS"); m_ramsize = 0x800; m_z_rejection = -1; m_ram = make_unique_clear<uint16_t[]>(m_ramsize / 2); m_buffer = make_unique_clear<uint16_t[]>(m_ramsize / 2); // bind callbacks m_k05324x_cb.bind_relative_to(*owner()); save_pointer(NAME(m_ram), m_ramsize / 2); save_pointer(NAME(m_buffer), m_ramsize / 2); save_item(NAME(m_rombank)); save_item(NAME(m_z_rejection)); save_item(NAME(m_regs)); }
void k052109_device::device_start() { if (m_screen_tag != nullptr) { // make sure our screen is started screen_device *screen = m_owner->subdevice<screen_device>(m_screen_tag); if (!screen->started()) throw device_missing_dependencies(); // and register a callback for vblank state screen->register_vblank_callback(vblank_state_delegate(FUNC(k052109_device::vblank_callback), this)); } if (region() != nullptr) { m_char_rom = region()->base(); m_char_size = region()->bytes(); } decode_gfx(); gfx(0)->set_colors(palette().entries() / gfx(0)->depth()); m_ram = make_unique_clear<UINT8[]>(0x6000); m_colorram_F = &m_ram[0x0000]; m_colorram_A = &m_ram[0x0800]; m_colorram_B = &m_ram[0x1000]; m_videoram_F = &m_ram[0x2000]; m_videoram_A = &m_ram[0x2800]; m_videoram_B = &m_ram[0x3000]; m_videoram2_F = &m_ram[0x4000]; m_videoram2_A = &m_ram[0x4800]; m_videoram2_B = &m_ram[0x5000]; m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[0]->set_transparent_pen(0); m_tilemap[1]->set_transparent_pen(0); m_tilemap[2]->set_transparent_pen(0); // bind callbacks m_k052109_cb.bind_relative_to(*owner()); // resolve callbacks m_irq_handler.resolve_safe(); m_firq_handler.resolve_safe(); m_nmi_handler.resolve_safe(); save_pointer(NAME(m_ram.get()), 0x6000); save_item(NAME(m_rmrd_line)); save_item(NAME(m_romsubbank)); save_item(NAME(m_scrollctrl)); save_item(NAME(m_irq_enabled)); save_item(NAME(m_charrombank)); save_item(NAME(m_charrombank_2)); save_item(NAME(m_has_extra_video_ram)); machine().save().register_postload(save_prepost_delegate(FUNC(k052109_device::tileflip_reset), this)); }
void k051316_device::device_start() { memory_region *ROM = region(); if (ROM != NULL) { m_zoom_rom = ROM->base(); m_zoom_size = ROM->bytes(); } decode_gfx(m_gfxdecodeinfo); m_gfx[0]->set_colors(m_palette->entries() / m_gfx[0]->m_color_depth); m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_ram.resize_and_clear(0x800); if (m_layermask) { m_tmap->map_pens_to_layer(0, 0, 0, TILEMAP_PIXEL_LAYER1); m_tmap->map_pens_to_layer(0, m_layermask, m_layermask, TILEMAP_PIXEL_LAYER0); } else m_tmap->set_transparent_pen(0); // bind callbacks m_k051316_cb.bind_relative_to(*owner()); save_item(NAME(m_ram)); save_item(NAME(m_ctrlram)); save_item(NAME(m_wrap)); }
void k052109_device::device_start() { if (m_screen.found()) { // make sure our screen is started if (!m_screen->started()) throw device_missing_dependencies(); // and register a callback for vblank state m_screen->register_vblank_callback(vblank_state_delegate(&k052109_device::vblank_callback, this)); } decode_gfx(); gfx(0)->set_colors(palette().entries() / gfx(0)->depth()); m_ram = make_unique_clear<uint8_t[]>(0x6000); m_colorram_F = &m_ram[0x0000]; m_colorram_A = &m_ram[0x0800]; m_colorram_B = &m_ram[0x1000]; m_videoram_F = &m_ram[0x2000]; m_videoram_A = &m_ram[0x2800]; m_videoram_B = &m_ram[0x3000]; m_videoram2_F = &m_ram[0x4000]; m_videoram2_A = &m_ram[0x4800]; m_videoram2_B = &m_ram[0x5000]; m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[0]->set_transparent_pen(0); m_tilemap[1]->set_transparent_pen(0); m_tilemap[2]->set_transparent_pen(0); // bind callbacks m_k052109_cb.bind_relative_to(*owner()); // resolve callbacks m_irq_handler.resolve_safe(); m_firq_handler.resolve_safe(); m_nmi_handler.resolve_safe(); save_pointer(NAME(m_ram), 0x6000); save_item(NAME(m_rmrd_line)); save_item(NAME(m_romsubbank)); save_item(NAME(m_scrollctrl)); save_item(NAME(m_irq_enabled)); save_item(NAME(m_charrombank)); save_item(NAME(m_charrombank_2)); save_item(NAME(m_has_extra_video_ram)); }
void k052109_device::device_start() { memory_region *ROM = region(); if (ROM != NULL) { m_char_rom = ROM->base(); m_char_size = ROM->bytes(); } decode_gfx(m_gfxdecodeinfo); m_gfx[0]->set_colors(m_palette->entries() / m_gfx[0]->m_color_depth); m_ram = auto_alloc_array_clear(machine(), UINT8, 0x6000); m_colorram_F = &m_ram[0x0000]; m_colorram_A = &m_ram[0x0800]; m_colorram_B = &m_ram[0x1000]; m_videoram_F = &m_ram[0x2000]; m_videoram_A = &m_ram[0x2800]; m_videoram_B = &m_ram[0x3000]; m_videoram2_F = &m_ram[0x4000]; m_videoram2_A = &m_ram[0x4800]; m_videoram2_B = &m_ram[0x5000]; m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_tilemap[0]->set_transparent_pen(0); m_tilemap[1]->set_transparent_pen(0); m_tilemap[2]->set_transparent_pen(0); // bind callbacks m_k052109_cb.bind_relative_to(*owner()); save_pointer(NAME(m_ram), 0x6000); save_item(NAME(m_rmrd_line)); save_item(NAME(m_romsubbank)); save_item(NAME(m_scrollctrl)); save_item(NAME(m_irq_enabled)); save_item(NAME(m_charrombank)); save_item(NAME(m_charrombank_2)); save_item(NAME(m_has_extra_video_ram)); machine().save().register_postload(save_prepost_delegate(FUNC(k052109_device::tileflip_reset), this)); }
void device_gfx_interface::interface_post_start() { if (!m_decoded) decode_gfx(m_gfxdecodeinfo); }