mirror of
https://github.com/holub/mame
synced 2025-06-06 12:53:46 +03:00
improve (nw)
This commit is contained in:
parent
677067ec61
commit
60d3caf6e9
@ -348,10 +348,7 @@ void seta2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|||||||
if (clip.min_y < cliprect.min_y) clip.min_y = cliprect.min_y;
|
if (clip.min_y < cliprect.min_y) clip.min_y = cliprect.min_y;
|
||||||
if (clip.max_y > cliprect.max_y) clip.max_y = cliprect.max_y;
|
if (clip.max_y > cliprect.max_y) clip.max_y = cliprect.max_y;
|
||||||
|
|
||||||
if (!is_16x16)
|
for (int realline = clip.min_y; realline <= clip.max_y; realline++)
|
||||||
continue;
|
|
||||||
|
|
||||||
for (int realline = clip.min_y; realline < clip.max_y; realline++)
|
|
||||||
{
|
{
|
||||||
int sourceline = (realline - scrolly - m_yoffset) & 0x1ff;
|
int sourceline = (realline - scrolly - m_yoffset) & 0x1ff;
|
||||||
|
|
||||||
@ -362,7 +359,7 @@ void seta2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|||||||
int code, attr, flipx, flipy, color;
|
int code, attr, flipx, flipy, color;
|
||||||
get_tile(buffered_spriteram16, is_16x16, x, y ^ 0x1f, page, code, attr, flipx, flipy, color); // yes the tilemap in RAM is flipped?!
|
get_tile(buffered_spriteram16, is_16x16, x, y ^ 0x1f, page, code, attr, flipx, flipy, color); // yes the tilemap in RAM is flipped?!
|
||||||
|
|
||||||
int line = is_16x16 ? (sourceline & 0x1f) : (sourceline & 0x0f);
|
int line = is_16x16 ? (sourceline & 0x0f) : (sourceline & 0x07);
|
||||||
|
|
||||||
int ty = (line >> 3) & 1;
|
int ty = (line >> 3) & 1;
|
||||||
line &= 0x7;
|
line &= 0x7;
|
||||||
@ -384,6 +381,7 @@ void seta2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
// "normal" sprite
|
// "normal" sprite
|
||||||
int sx = s2[0];
|
int sx = s2[0];
|
||||||
int sy = s2[1];
|
int sy = s2[1];
|
||||||
@ -409,10 +407,12 @@ void seta2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|||||||
int basecode = code &= ~((sizex + 1) * (sizey + 1) - 1); // see myangel, myangel2 and grdians
|
int basecode = code &= ~((sizex + 1) * (sizey + 1) - 1); // see myangel, myangel2 and grdians
|
||||||
|
|
||||||
int firstline = sy;
|
int firstline = sy;
|
||||||
int endline = sy + (sizey + 1) * 8;
|
int endline = (sy + (sizey + 1) * 8)-1;
|
||||||
|
|
||||||
//for (int realline = cliprect.min_y; realline < cliprect.max_y; realline++)
|
if (firstline < cliprect.min_y) firstline = cliprect.min_y;
|
||||||
for (int realline = firstline; realline < endline; realline++)
|
if (endline > cliprect.max_y) endline = cliprect.max_y;
|
||||||
|
|
||||||
|
for (int realline = firstline; realline <= endline; realline++)
|
||||||
{
|
{
|
||||||
int line = realline - firstline;
|
int line = realline - firstline;
|
||||||
int y = (line >> 3);
|
int y = (line >> 3);
|
||||||
@ -425,6 +425,7 @@ void seta2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (s1[0] & 0x8000) break; // end of list marker
|
if (s1[0] & 0x8000) break; // end of list marker
|
||||||
} // sprite list
|
} // sprite list
|
||||||
|
Loading…
Reference in New Issue
Block a user