// license:BSD-3-Clause // copyright-holders:David Haywood /* Space Bugger - Video Hardware */ #include "emu.h" #include "includes/sbugger.h" TILE_GET_INFO_MEMBER(sbugger_state::get_tile_info) { int tileno, color; tileno = m_videoram[tile_index]; color = m_videoram_attr[tile_index]; SET_TILE_INFO_MEMBER(0,tileno,color,0); } WRITE8_MEMBER(sbugger_state::videoram_w) { m_videoram[offset] = data; m_tilemap->mark_tile_dirty(offset); } WRITE8_MEMBER(sbugger_state::videoram_attr_w) { m_videoram_attr[offset] = data; m_tilemap->mark_tile_dirty(offset); } void sbugger_state::video_start() { m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbugger_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16); } uint32_t sbugger_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } /* not right but so we can see things ok */ PALETTE_INIT_MEMBER(sbugger_state, sbugger) { /* just some random colours for now */ int i; for (i = 0;i < 256;i++) { int r = machine().rand()|0x80; int g = machine().rand()|0x80; int b = machine().rand()|0x80; if (i == 0) r = g = b = 0; palette.set_pen_color(i*2+1,rgb_t(r,g,b)); palette.set_pen_color(i*2,rgb_t(0,0,0)); } }