diff options
author | R. Belmont <rb6502@users.noreply.github.com> | 2018-10-18 21:03:41 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-18 21:03:41 -0400 |
commit | c9191dd99588f5db178233a84a91de7782885f50 (patch) | |
tree | 90d3cd2220bbf729cc5f48a92942fe74c63552ae | |
parent | f1b3e649fb0a50a6a01da667278b8a62fef99d92 (diff) | |
parent | 8ad28902f5465c44b1ec240ae2a6e1953091ae5d (diff) |
Merge pull request #4158 from cam900/patch-62
namcofl.cpp : Implement screen clipping
-rw-r--r-- | src/mame/video/namcofl.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
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; |