Reverted changes to decbac06 device flipscreen support, now that this can be done properly.

Also reverted the decmxc06 changes. This breaks again the flipped sprites in some games, but fixes the actfanct regression. (nw)
This commit is contained in:
Ivan Vangelista 2014-03-10 18:04:45 +00:00
parent 8acaf0366b
commit f059fb9013
3 changed files with 14 additions and 43 deletions

View File

@ -269,12 +269,7 @@ void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap,
*/ */
if (machine().driver_data()->flip_screen()) if (machine().driver_data()->flip_screen())
{ src_y = (src_bitmap.height() - 256) - scrolly;
if (cliprect.max_y <= 31*8-1) // workaround till all drivers using this device are updated to raw params
src_y = (src_bitmap.height() - 256) - scrolly; //actfancr.c, madmotor.c, pcktgal.c and stadhero.c
else
src_y = (src_bitmap.height() - 256 - 8) - scrolly; // dec0.c and dec8.c have been updated to raw params
}
else else
src_y = scrolly; src_y = scrolly;
@ -285,12 +280,7 @@ void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap,
src_x=scrollx; src_x=scrollx;
if (machine().driver_data()->flip_screen()) if (machine().driver_data()->flip_screen())
{ src_x=(src_bitmap.width() - 256) - src_x;
if (cliprect.max_x == 32*8-1) // workaround till all drivers using this device are updated to raw params
src_x=(src_bitmap.width() - 256) - src_x; //actfancr.c, madmotor.c, pcktgal.c and stadhero.c
else
src_x=(src_bitmap.width() - 256 - 74) - src_x; // dec0.c and dec8.c have been updated to raw params
}
for (x=0; x<=cliprect.max_x; x++) { for (x=0; x<=cliprect.max_x; x++) {
if (col_scroll_enabled) if (col_scroll_enabled)

View File

@ -83,20 +83,8 @@ void deco_karnovsprites_device::draw_sprites( running_machine &machine, bitmap_i
y = 256 - y; y = 256 - y;
if (machine.driver_data()->flip_screen()) if (machine.driver_data()->flip_screen())
{ {
// workaround till all drivers using this device are updated to raw params y = 240 - y;
x = 240 - x;
if (cliprect.max_x == 32*8-1) //karnov.c
{
y = 240 - y;
x = 240 - x;
}
else //dec8.c has been updated to raw params
{
y = 240 + 8 - y;
x = 240 + 74 - x;
}
if (fx) fx = 0; else fx = 1; if (fx) fx = 0; else fx = 1;
if (fy) fy = 0; else fy = 1; if (fy) fy = 0; else fy = 1;
if (extra) y = y - 16; if (extra) y = y - 16;

View File

@ -97,22 +97,10 @@ void deco_mxc06_device::draw_sprites( running_machine &machine, bitmap_ind16 &bi
sx = 240 - sx; sx = 240 - sx;
sy = 240 - sy; sy = 240 - sy;
if (flipy)
incy = -1;
if (machine.driver_data()->flip_screen()) if (machine.driver_data()->flip_screen())
{ {
// workaround till all drivers using this device are updated to raw params sy = 240 - sy;
if (cliprect.max_x == 32*8-1) //actfancr.c, madmotor.c, stadhero.c and vaportra.c sx = 240 - sx;
{
sy = 240 - sy;
sx = 240 - sx;
}
else // dec0.c and dec8.c have been updated to raw params
{
sy = 240 + 8 - sy;
sx = 240 + 74 - sx;
}
if (flipx) flipx = 0; else flipx = 1; if (flipx) flipx = 0; else flipx = 1;
if (flipy) flipy = 0; else flipy = 1; if (flipy) flipy = 0; else flipy = 1;
mult = 16; mult = 16;
@ -127,8 +115,13 @@ void deco_mxc06_device::draw_sprites( running_machine &machine, bitmap_ind16 &bi
code &= ~(h-1); code &= ~(h-1);
code += h-1; if (flipy)
incy = 1; incy = -1;
else
{
code += h-1;
incy = 1;
}
for (y = 0; y < h; y++) for (y = 0; y < h; y++)
{ {