namcofl.cpp : Implement screen clipping

This commit is contained in:
cam900 2018-10-19 09:38:03 +09:00 committed by GitHub
parent f1b3e649fb
commit 8ad28902f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;