01517: all atarigt.c drivers: Assertion 
01516: all atarigx2.c drivers: Assertion 
01515: all atarig42.c drivers: Assertion 
01514: all cyberbal.c drivers: Assertion
This commit is contained in:
Aaron Giles 2008-03-14 13:41:44 +00:00
parent 725d2646fd
commit 716d0a4f2a
5 changed files with 44 additions and 22 deletions

View File

@ -180,12 +180,14 @@ void atarig42_scanline_update(const device_config *screen, int scanline)
int newbank = word & 0x1f; int newbank = word & 0x1f;
if (newscroll != playfield_xscroll) if (newscroll != playfield_xscroll)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll);
playfield_xscroll = newscroll; playfield_xscroll = newscroll;
} }
if (newbank != playfield_color_bank) if (newbank != playfield_color_bank)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap);
playfield_color_bank = newbank; playfield_color_bank = newbank;
@ -199,12 +201,14 @@ void atarig42_scanline_update(const device_config *screen, int scanline)
int newbank = word & 7; int newbank = word & 7;
if (newscroll != playfield_yscroll) if (newscroll != playfield_yscroll)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll);
playfield_yscroll = newscroll; playfield_yscroll = newscroll;
} }
if (newbank != playfield_tile_bank) if (newbank != playfield_tile_bank)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap);
playfield_tile_bank = newbank; playfield_tile_bank = newbank;

View File

@ -244,12 +244,14 @@ void atarigt_scanline_update(const device_config *screen, int scanline)
int newbank = (word >> 16) & 0x1f; int newbank = (word >> 16) & 0x1f;
if (newscroll != playfield_xscroll) if (newscroll != playfield_xscroll)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll);
playfield_xscroll = newscroll; playfield_xscroll = newscroll;
} }
if (newbank != playfield_color_bank) if (newbank != playfield_color_bank)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_palette_offset(atarigen_playfield_tilemap, (newbank & 0x1f) << 8); tilemap_set_palette_offset(atarigen_playfield_tilemap, (newbank & 0x1f) << 8);
playfield_color_bank = newbank; playfield_color_bank = newbank;
@ -262,12 +264,14 @@ void atarigt_scanline_update(const device_config *screen, int scanline)
int newbank = word & 15; int newbank = word & 15;
if (newscroll != playfield_yscroll) if (newscroll != playfield_yscroll)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll);
playfield_yscroll = newscroll; playfield_yscroll = newscroll;
} }
if (newbank != playfield_tile_bank) if (newbank != playfield_tile_bank)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap);
playfield_tile_bank = newbank; playfield_tile_bank = newbank;

View File

@ -179,12 +179,14 @@ void atarigx2_scanline_update(const device_config *screen, int scanline)
int newbank = (word >> 16) & 0x1f; int newbank = (word >> 16) & 0x1f;
if (newscroll != playfield_xscroll) if (newscroll != playfield_xscroll)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrollx(atarigen_playfield_tilemap, 0, newscroll);
playfield_xscroll = newscroll; playfield_xscroll = newscroll;
} }
if (newbank != playfield_color_bank) if (newbank != playfield_color_bank)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap);
playfield_color_bank = newbank; playfield_color_bank = newbank;
@ -197,12 +199,14 @@ void atarigx2_scanline_update(const device_config *screen, int scanline)
int newbank = word & 15; int newbank = word & 15;
if (newscroll != playfield_yscroll) if (newscroll != playfield_yscroll)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, newscroll);
playfield_yscroll = newscroll; playfield_yscroll = newscroll;
} }
if (newbank != playfield_tile_bank) if (newbank != playfield_tile_bank)
{ {
if (scanline + i > 0)
video_screen_update_partial(screen, scanline + i - 1); video_screen_update_partial(screen, scanline + i - 1);
tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap); tilemap_mark_all_tiles_dirty(atarigen_playfield_tilemap);
playfield_tile_bank = newbank; playfield_tile_bank = newbank;

View File

@ -143,12 +143,14 @@ void batman_scanline_update(const device_config *screen, int scanline)
switch (data & 15) switch (data & 15)
{ {
case 9: case 9:
if (scanline > 0)
video_screen_update_partial(screen, scanline - 1); video_screen_update_partial(screen, scanline - 1);
atarivc_state.mo_xscroll = (data >> 7) & 0x1ff; atarivc_state.mo_xscroll = (data >> 7) & 0x1ff;
atarimo_set_xscroll(0, atarivc_state.mo_xscroll); atarimo_set_xscroll(0, atarivc_state.mo_xscroll);
break; break;
case 10: case 10:
if (scanline > 0)
video_screen_update_partial(screen, scanline - 1); video_screen_update_partial(screen, scanline - 1);
atarivc_state.pf1_xscroll_raw = (data >> 7) & 0x1ff; atarivc_state.pf1_xscroll_raw = (data >> 7) & 0x1ff;
atarivc_update_pf_xscrolls(); atarivc_update_pf_xscrolls();
@ -157,6 +159,7 @@ void batman_scanline_update(const device_config *screen, int scanline)
break; break;
case 11: case 11:
if (scanline > 0)
video_screen_update_partial(screen, scanline - 1); video_screen_update_partial(screen, scanline - 1);
atarivc_state.pf0_xscroll_raw = (data >> 7) & 0x1ff; atarivc_state.pf0_xscroll_raw = (data >> 7) & 0x1ff;
atarivc_update_pf_xscrolls(); atarivc_update_pf_xscrolls();
@ -164,18 +167,21 @@ void batman_scanline_update(const device_config *screen, int scanline)
break; break;
case 13: case 13:
if (scanline > 0)
video_screen_update_partial(screen, scanline - 1); video_screen_update_partial(screen, scanline - 1);
atarivc_state.mo_yscroll = (data >> 7) & 0x1ff; atarivc_state.mo_yscroll = (data >> 7) & 0x1ff;
atarimo_set_yscroll(0, atarivc_state.mo_yscroll); atarimo_set_yscroll(0, atarivc_state.mo_yscroll);
break; break;
case 14: case 14:
if (scanline > 0)
video_screen_update_partial(screen, scanline - 1); video_screen_update_partial(screen, scanline - 1);
atarivc_state.pf1_yscroll = (data >> 7) & 0x1ff; atarivc_state.pf1_yscroll = (data >> 7) & 0x1ff;
tilemap_set_scrolly(atarigen_playfield2_tilemap, 0, atarivc_state.pf1_yscroll); tilemap_set_scrolly(atarigen_playfield2_tilemap, 0, atarivc_state.pf1_yscroll);
break; break;
case 15: case 15:
if (scanline > 0)
video_screen_update_partial(screen, scanline - 1); video_screen_update_partial(screen, scanline - 1);
atarivc_state.pf0_yscroll = (data >> 7) & 0x1ff; atarivc_state.pf0_yscroll = (data >> 7) & 0x1ff;
tilemap_set_scrolly(atarigen_playfield_tilemap, 0, atarivc_state.pf0_yscroll); tilemap_set_scrolly(atarigen_playfield_tilemap, 0, atarivc_state.pf0_yscroll);

View File

@ -296,6 +296,7 @@ void cyberbal_scanline_update(const device_config *screen, int scanline)
{ {
if (((base[3] >> 1) & 7) != playfield_palette_bank[i]) if (((base[3] >> 1) & 7) != playfield_palette_bank[i])
{ {
if (scanline > 0)
video_screen_update_partial(update_screen, scanline - 1); video_screen_update_partial(update_screen, scanline - 1);
playfield_palette_bank[i] = (base[3] >> 1) & 7; playfield_palette_bank[i] = (base[3] >> 1) & 7;
tilemap_set_palette_offset(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, playfield_palette_bank[i] << 8); tilemap_set_palette_offset(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, playfield_palette_bank[i] << 8);
@ -306,6 +307,7 @@ void cyberbal_scanline_update(const device_config *screen, int scanline)
int newscroll = 2 * (((base[4] >> 7) + 4) & 0x1ff); int newscroll = 2 * (((base[4] >> 7) + 4) & 0x1ff);
if (newscroll != playfield_xscroll[i]) if (newscroll != playfield_xscroll[i])
{ {
if (scanline > 0)
video_screen_update_partial(update_screen, scanline - 1); video_screen_update_partial(update_screen, scanline - 1);
tilemap_set_scrollx(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrollx(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, 0, newscroll);
playfield_xscroll[i] = newscroll; playfield_xscroll[i] = newscroll;
@ -317,6 +319,7 @@ void cyberbal_scanline_update(const device_config *screen, int scanline)
int newscroll = ((base[5] >> 7) - (scanline)) & 0x1ff; int newscroll = ((base[5] >> 7) - (scanline)) & 0x1ff;
if (newscroll != playfield_yscroll[i]) if (newscroll != playfield_yscroll[i])
{ {
if (scanline > 0)
video_screen_update_partial(update_screen, scanline - 1); video_screen_update_partial(update_screen, scanline - 1);
tilemap_set_scrolly(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, 0, newscroll); tilemap_set_scrolly(i ? atarigen_playfield2_tilemap : atarigen_playfield_tilemap, 0, newscroll);
playfield_yscroll[i] = newscroll; playfield_yscroll[i] = newscroll;
@ -326,6 +329,7 @@ void cyberbal_scanline_update(const device_config *screen, int scanline)
{ {
if (current_slip[i] != base[7]) if (current_slip[i] != base[7])
{ {
if (scanline > 0)
video_screen_update_partial(update_screen, scanline - 1); video_screen_update_partial(update_screen, scanline - 1);
current_slip[i] = base[7]; current_slip[i] = base[7];
} }