diff options
Diffstat (limited to 'src/mame/video/tceptor.cpp')
-rw-r--r-- | src/mame/video/tceptor.cpp | 52 |
1 files changed, 24 insertions, 28 deletions
diff --git a/src/mame/video/tceptor.cpp b/src/mame/video/tceptor.cpp index f24f50a2c2c..1b4f67d31d6 100644 --- a/src/mame/video/tceptor.cpp +++ b/src/mame/video/tceptor.cpp @@ -182,11 +182,7 @@ WRITE8_MEMBER(tceptor_state::tceptor_bg_ram_w) { m_bg_ram[offset] = data; - offset /= 2; - if (offset < 0x800) - m_bg1_tilemap->mark_tile_dirty(offset); - else - m_bg2_tilemap->mark_tile_dirty(offset - 0x800); + m_bg_tilemap[offset >> 12]->mark_tile_dirty((offset & 0xfff) >> 1); } WRITE8_MEMBER(tceptor_state::tceptor_bg_scroll_w) @@ -194,27 +190,27 @@ WRITE8_MEMBER(tceptor_state::tceptor_bg_scroll_w) switch (offset) { case 0: - m_bg1_scroll_x &= 0xff; - m_bg1_scroll_x |= data << 8; + m_bg_scroll_x[0] &= 0xff; + m_bg_scroll_x[0] |= data << 8; break; case 1: - m_bg1_scroll_x &= 0xff00; - m_bg1_scroll_x |= data; + m_bg_scroll_x[0] &= 0xff00; + m_bg_scroll_x[0] |= data; break; case 2: - m_bg1_scroll_y = data; + m_bg_scroll_y[0] = data; break; case 4: - m_bg2_scroll_x &= 0xff; - m_bg2_scroll_x |= data << 8; + m_bg_scroll_x[1] &= 0xff; + m_bg_scroll_x[1] |= data << 8; break; case 5: - m_bg2_scroll_x &= 0xff00; - m_bg2_scroll_x |= data; + m_bg_scroll_x[1] &= 0xff00; + m_bg_scroll_x[1] |= data; break; case 6: - m_bg2_scroll_y = data; + m_bg_scroll_y[1] = data; break; } } @@ -385,14 +381,14 @@ void tceptor_state::video_start() m_tx_tilemap->set_scrolly(0, 0); m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 7); - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); save_pointer(NAME(m_sprite_ram_buffered), 0x200 / 2); - save_item(NAME(m_bg1_scroll_x)); - save_item(NAME(m_bg1_scroll_y)); - save_item(NAME(m_bg2_scroll_x)); - save_item(NAME(m_bg2_scroll_y)); + save_item(NAME(m_bg_scroll_x[0])); + save_item(NAME(m_bg_scroll_y[0])); + save_item(NAME(m_bg_scroll_x[1])); + save_item(NAME(m_bg_scroll_y[1])); } @@ -502,21 +498,21 @@ uint32_t tceptor_state::screen_update_tceptor(screen_device &screen, bitmap_ind1 { rectangle rect; int pri; - int bg_center = 144 - ((((m_bg1_scroll_x + m_bg2_scroll_x ) & 0x1ff) - 288) / 2); + int bg_center = 144 - ((((m_bg_scroll_x[0] + m_bg_scroll_x[1] ) & 0x1ff) - 288) / 2); // left background rect = cliprect; rect.max_x = bg_center; - m_bg1_tilemap->set_scrollx(0, m_bg1_scroll_x + 12); - m_bg1_tilemap->set_scrolly(0, m_bg1_scroll_y + 20); //32? - m_bg1_tilemap->draw(screen, bitmap, rect, 0, 0); + m_bg_tilemap[0]->set_scrollx(0, m_bg_scroll_x[0] + 12); + m_bg_tilemap[0]->set_scrolly(0, m_bg_scroll_y[0] + 20); //32? + m_bg_tilemap[0]->draw(screen, bitmap, rect, 0, 0); // right background rect.min_x = bg_center; rect.max_x = cliprect.max_x; - m_bg2_tilemap->set_scrollx(0, m_bg2_scroll_x + 20); - m_bg2_tilemap->set_scrolly(0, m_bg2_scroll_y + 20); // 32? - m_bg2_tilemap->draw(screen, bitmap, rect, 0, 0); + m_bg_tilemap[1]->set_scrollx(0, m_bg_scroll_x[1] + 20); + m_bg_tilemap[1]->set_scrolly(0, m_bg_scroll_y[1] + 20); // 32? + m_bg_tilemap[1]->draw(screen, bitmap, rect, 0, 0); for (pri = 0; pri < 8; pri++) { |