diff --git a/src/mame/video/atarig42.c b/src/mame/video/atarig42.c index 1ac0302bdd4..b893632f91a 100644 --- a/src/mame/video/atarig42.c +++ b/src/mame/video/atarig42.c @@ -180,13 +180,15 @@ void atarig42_scanline_update(const device_config *screen, int scanline) int newbank = word & 0x1f; if (newscroll != playfield_xscroll) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll); playfield_xscroll = newscroll; } if (newbank != playfield_color_bank) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); playfield_color_bank = newbank; } @@ -199,13 +201,15 @@ void atarig42_scanline_update(const device_config *screen, int scanline) int newbank = word & 7; if (newscroll != playfield_yscroll) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll); playfield_yscroll = newscroll; } if (newbank != playfield_tile_bank) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); playfield_tile_bank = newbank; } diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c index 778cca1d508..82bd02074a7 100644 --- a/src/mame/video/atarigt.c +++ b/src/mame/video/atarigt.c @@ -244,13 +244,15 @@ void atarigt_scanline_update(const device_config *screen, int scanline) int newbank = (word >> 16) & 0x1f; if (newscroll != playfield_xscroll) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll); playfield_xscroll = newscroll; } if (newbank != playfield_color_bank) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_palette_offset(atarigen_playfield_tilemap, (newbank & 0x1f) << 8); playfield_color_bank = newbank; } @@ -262,13 +264,15 @@ void atarigt_scanline_update(const device_config *screen, int scanline) int newbank = word & 15; if (newscroll != playfield_yscroll) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll); playfield_yscroll = newscroll; } if (newbank != playfield_tile_bank) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); playfield_tile_bank = newbank; } diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c index 3ac74fc6397..c241899cafd 100644 --- a/src/mame/video/atarigx2.c +++ b/src/mame/video/atarigx2.c @@ -179,13 +179,15 @@ void atarigx2_scanline_update(const device_config *screen, int scanline) int newbank = (word >> 16) & 0x1f; if (newscroll != playfield_xscroll) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll); playfield_xscroll = newscroll; } if (newbank != playfield_color_bank) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); playfield_color_bank = newbank; } @@ -197,13 +199,15 @@ void atarigx2_scanline_update(const device_config *screen, int scanline) int newbank = word & 15; if (newscroll != playfield_yscroll) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll); playfield_yscroll = newscroll; } if (newbank != playfield_tile_bank) { - video_screen_update_partial(screen, scanline + i - 1); + if (scanline + i > 0) + video_screen_update_partial(screen, scanline + i - 1); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); playfield_tile_bank = newbank; } diff --git a/src/mame/video/batman.c b/src/mame/video/batman.c index 821084c00af..86e0fd9344a 100644 --- a/src/mame/video/batman.c +++ b/src/mame/video/batman.c @@ -143,13 +143,15 @@ void batman_scanline_update(const device_config *screen, int scanline) switch (data & 15) { case 9: - video_screen_update_partial(screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(screen, scanline - 1); atarivc_state.mo_xscroll = (data >> 7) & 0x1ff; atarimo_set_xscroll(0, atarivc_state.mo_xscroll); break; case 10: - video_screen_update_partial(screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(screen, scanline - 1); atarivc_state.pf1_xscroll_raw = (data >> 7) & 0x1ff; atarivc_update_pf_xscrolls(); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, atarivc_state.pf0_xscroll); @@ -157,26 +159,30 @@ void batman_scanline_update(const device_config *screen, int scanline) break; case 11: - video_screen_update_partial(screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(screen, scanline - 1); atarivc_state.pf0_xscroll_raw = (data >> 7) & 0x1ff; atarivc_update_pf_xscrolls(); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, atarivc_state.pf0_xscroll); break; case 13: - video_screen_update_partial(screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(screen, scanline - 1); atarivc_state.mo_yscroll = (data >> 7) & 0x1ff; atarimo_set_yscroll(0, atarivc_state.mo_yscroll); break; case 14: - video_screen_update_partial(screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(screen, scanline - 1); atarivc_state.pf1_yscroll = (data >> 7) & 0x1ff; tilemap_set_scrolly(atarigen_playfield2_tilemap, 0, atarivc_state.pf1_yscroll); break; case 15: - video_screen_update_partial(screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(screen, scanline - 1); atarivc_state.pf0_yscroll = (data >> 7) & 0x1ff; tilemap_set_scrolly(atarigen_playfield_tilemap, 0, atarivc_state.pf0_yscroll); break; diff --git a/src/mame/video/cyberbal.c b/src/mame/video/cyberbal.c index 1f33939ff49..b4e340085c5 100644 --- a/src/mame/video/cyberbal.c +++ b/src/mame/video/cyberbal.c @@ -296,7 +296,8 @@ void cyberbal_scanline_update(const device_config *screen, int scanline) { if (((base[3] >> 1) & 7) != playfield_palette_bank[i]) { - video_screen_update_partial(update_screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(update_screen, scanline - 1); playfield_palette_bank[i] = (base[3] >> 1) & 7; tilemap_set_palette_offset(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, playfield_palette_bank[i] << 8); } @@ -306,7 +307,8 @@ void cyberbal_scanline_update(const device_config *screen, int scanline) int newscroll = 2 * (((base[4] >> 7) + 4) & 0x1ff); if (newscroll != playfield_xscroll[i]) { - video_screen_update_partial(update_screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(update_screen, scanline - 1); tilemap_set_scrollx(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, 0, newscroll); playfield_xscroll[i] = newscroll; } @@ -317,7 +319,8 @@ void cyberbal_scanline_update(const device_config *screen, int scanline) int newscroll = ((base[5] >> 7) - (scanline)) & 0x1ff; if (newscroll != playfield_yscroll[i]) { - video_screen_update_partial(update_screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(update_screen, scanline - 1); tilemap_set_scrolly(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, 0, newscroll); playfield_yscroll[i] = newscroll; } @@ -326,7 +329,8 @@ void cyberbal_scanline_update(const device_config *screen, int scanline) { if (current_slip[i] != base[7]) { - video_screen_update_partial(update_screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(update_screen, scanline - 1); current_slip[i] = base[7]; } }