mirror of
https://github.com/holub/mame
synced 2025-05-19 12:18:56 +03:00
Improved sprite zooming
This commit is contained in:
parent
4230eb97cd
commit
6cc32bbc68
@ -256,7 +256,7 @@ static VIDEO_UPDATE( cybertnk )
|
|||||||
{
|
{
|
||||||
const UINT8 *blit_ram = memory_region(screen->machine,"spr_gfx");
|
const UINT8 *blit_ram = memory_region(screen->machine,"spr_gfx");
|
||||||
int offs,x,y,z,xsize,ysize,yi,xi,col_bank,fx,zoom;
|
int offs,x,y,z,xsize,ysize,yi,xi,col_bank,fx,zoom;
|
||||||
UINT32 spr_offs;
|
UINT32 spr_offs,spr_offs_helper;
|
||||||
int xf,yf,xz,yz;
|
int xf,yf,xz,yz;
|
||||||
|
|
||||||
for(offs=0;offs<0x1000/2;offs+=8)
|
for(offs=0;offs<0x1000/2;offs+=8)
|
||||||
@ -281,12 +281,10 @@ static VIDEO_UPDATE( cybertnk )
|
|||||||
xz = 0;
|
xz = 0;
|
||||||
yz = 0;
|
yz = 0;
|
||||||
|
|
||||||
if(zoom > 0x80)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for(yi = 0;yi < ysize;yi++)
|
for(yi = 0;yi < ysize;yi++)
|
||||||
{
|
{
|
||||||
xf = xz = 0;
|
xf = xz = 0;
|
||||||
|
spr_offs_helper = spr_offs;
|
||||||
for(xi=0;xi < xsize;xi+=8)
|
for(xi=0;xi < xsize;xi+=8)
|
||||||
{
|
{
|
||||||
UINT32 color;
|
UINT32 color;
|
||||||
@ -318,11 +316,19 @@ static VIDEO_UPDATE( cybertnk )
|
|||||||
*BITMAP_ADDR16(bitmap, y+yz, x+xz) = screen->machine->pens[dot];
|
*BITMAP_ADDR16(bitmap, y+yz, x+xz) = screen->machine->pens[dot];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
xf+=zoom;
|
||||||
|
if(xf >= 0x100)
|
||||||
|
{
|
||||||
|
xz++;
|
||||||
|
xf-=0x100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
shift_pen -= 8;
|
shift_pen -= 8;
|
||||||
x_dec++;
|
x_dec++;
|
||||||
xf+=zoom;
|
|
||||||
if(xf >= 0x80) { xz++; xf-=0x80; }
|
if(xf >= 0x80) { xz++; xf-=0x80; }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
shift_pen = 24;
|
shift_pen = 24;
|
||||||
x_dec = 4;
|
x_dec = 4;
|
||||||
@ -344,15 +350,30 @@ static VIDEO_UPDATE( cybertnk )
|
|||||||
*BITMAP_ADDR16(bitmap, y+yz, x+xz) = screen->machine->pens[dot];
|
*BITMAP_ADDR16(bitmap, y+yz, x+xz) = screen->machine->pens[dot];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
xf+=zoom;
|
||||||
|
if(xf >= 0x100)
|
||||||
|
{
|
||||||
|
xz++;
|
||||||
|
xf-=0x100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
shift_pen -= 8;
|
shift_pen -= 8;
|
||||||
x_dec++;
|
x_dec++;
|
||||||
xf+=zoom;
|
|
||||||
if(xf >= 0x80) { xz++; xf-=0x80; }
|
if(xf >= 0x80) { xz++; xf-=0x80; }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
spr_offs+=4;
|
spr_offs+=4;
|
||||||
}
|
}
|
||||||
yf+=zoom;
|
yf+=zoom;
|
||||||
|
if(yf >= 0x100)
|
||||||
|
{
|
||||||
|
yi--;
|
||||||
|
yz++;
|
||||||
|
spr_offs = spr_offs_helper;
|
||||||
|
yf-=0x100;
|
||||||
|
}
|
||||||
if(yf >= 0x80) { yz++; yf-=0x80; }
|
if(yf >= 0x80) { yz++; yf-=0x80; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user