diff --git a/src/mame/video/namcofl.cpp b/src/mame/video/namcofl.cpp index 9a4f2be52e7..a0a1cacd2c6 100644 --- a/src/mame/video/namcofl.cpp +++ b/src/mame/video/namcofl.cpp @@ -60,19 +60,29 @@ void namcofl_state::RozCB(uint16_t code, int *tile, int *mask, int which) uint32_t namcofl_state::screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { + /* compute window for custom screen blanking */ + rectangle clip; + //004c 016b 0021 0101 004a 0060 (finalapr*) + //004b 016b 0021 0101 0144 0047 (speedrcr) + clip.min_x = m_c116->get_reg(0) - 0x4b; + clip.max_x = m_c116->get_reg(1) - 0x4b - 1; + clip.min_y = m_c116->get_reg(2) - 0x21; + clip.max_y = m_c116->get_reg(3) - 0x21 - 1; + /* intersect with master clip rectangle */ + clip &= cliprect; int pri; bitmap.fill(m_c116->black_pen(), cliprect ); for( pri=0; pri<16; pri++ ) { - m_c169roz->draw(screen, bitmap, cliprect, pri); + m_c169roz->draw(screen, bitmap, clip, pri); if ((pri & 1) == 0) { - m_c123tmap->draw(screen, bitmap, cliprect, pri >> 1); + m_c123tmap->draw(screen, bitmap, clip, pri >> 1); } - m_c355spr->draw(screen, bitmap, cliprect, pri ); + m_c355spr->draw(screen, bitmap, clip, pri ); } return 0;