mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
Fixes:
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:
parent
725d2646fd
commit
716d0a4f2a
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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];
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user