diff options
Diffstat (limited to 'src/mame/video/sshangha.c')
-rw-r--r-- | src/mame/video/sshangha.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/mame/video/sshangha.c b/src/mame/video/sshangha.c index 0782b2e933a..cac4abb913a 100644 --- a/src/mame/video/sshangha.c +++ b/src/mame/video/sshangha.c @@ -28,35 +28,34 @@ void sshangha_state::video_start() /******************************************************************************/ -SCREEN_UPDATE_RGB32( sshangha ) +UINT32 sshangha_state::screen_update_sshangha(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - sshangha_state *state = screen.machine().driver_data<sshangha_state>(); - screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800, true); + screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800, true); // I'm pretty sure only the original has the 2nd spriteram, used for the Japanese text on the 2nd scene (non-scrolling text) in the intro of the quest (3rd in JPN) mode - if (state->m_spriteram2 != NULL) - screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2, 0x800, true); + if (m_spriteram2 != NULL) + screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2, 0x800, true); - screen.machine().tilemap().set_flip_all(state->flip_screen_x() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); + screen.machine().tilemap().set_flip_all(flip_screen_x() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); bitmap.fill(get_black_pen(screen.machine()), cliprect); - deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); + deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll); /* the tilemap 4bpp + 4bpp = 8bpp mixing actually seems external to the tilemap, note video_control is not part of the tilemap chip */ - if ((state->m_video_control&4)==0) { - deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0, 1); + if ((m_video_control&4)==0) { + deco16ic_tilemap_12_combine_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0, 1); screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff); } else { - deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0); + deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0); screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff); - deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0); + deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0); } - if (state->m_spriteram2 != NULL) + if (m_spriteram2 != NULL) screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0, 0x1ff); screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0200, 0, 0x1ff); |