mirror of
https://github.com/holub/mame
synced 2025-07-05 01:48:29 +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,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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user