UINT32 toaplan2_state::screen_update_batrider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { screen_update_toaplan2(screen, bitmap, cliprect); int line; rectangle clip; const rectangle &visarea = screen.visible_area(); clip = visarea; /* used for 'for use in' and '8ing' screen on bbakraid, raizing on batrider */ for (line = 0; line < 256;line++) { if (m_tx_flip) { clip.min_y = clip.max_y = 256 - line; m_tx_tilemap->set_scrolly(0, 256 - line + m_txvideoram16_offs[256 - line]); } else { clip.min_y = clip.max_y = line; m_tx_tilemap->set_scrolly(0, - line + m_txvideoram16_offs[ line]); } m_tx_tilemap->draw(screen, bitmap, clip, 0, 0); } return 0; }
uint32_t toaplan2_state::screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { screen_update_toaplan2(screen, bitmap, cliprect); rectangle clip = cliprect; /* it seems likely that flipx can be set per line! */ /* however, none of the games does it, and emulating it in the */ /* MAME tilemap system without being ultra slow would be tricky */ m_tx_tilemap->set_flip(m_tx_lineselect[0] & 0x8000 ? 0 : TILEMAP_FLIPX); /* line select is used for 'for use in' and '8ing' screen on bbakraid, 'Raizing' logo on batrider */ for (int y = cliprect.min_y; y <= cliprect.max_y; y++) { clip.min_y = clip.max_y = y; m_tx_tilemap->set_scrolly(0, m_tx_lineselect[y] - y); m_tx_tilemap->draw(screen, bitmap, clip, 0); } return 0; }
/* fixeightbl and bgareggabl do not use the lineselect or linescroll tables */ uint32_t toaplan2_state::screen_update_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { screen_update_toaplan2(screen, bitmap, cliprect); m_tx_tilemap->draw(screen, bitmap, cliprect, 0); return 0; }
UINT32 toaplan2_state::screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { screen_update_toaplan2(screen, bitmap, cliprect); m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; }