megasys1 mosaic iq-style

This commit is contained in:
dinkc64 2015-08-26 02:20:02 +00:00
parent 6a86d841c0
commit a70eaf8b50
1 changed files with 5 additions and 4 deletions

View File

@ -2899,7 +2899,8 @@ static inline void draw_16x16_priority_sprite(INT32 code, INT32 color, INT32 sx,
UINT8 *gfx = DrvGfxROM[3] + (code * 0x100);
INT32 flip = (flipy ? 0xf0 : 0) | (flipx ? 0x0f : 0);
flipy = (flipy) ? 0x0f : 0;
flipx = (flipx) ? 0x0f : 0;
color = (color * 16) + layer_color_config[3];
@ -2912,9 +2913,8 @@ static inline void draw_16x16_priority_sprite(INT32 code, INT32 color, INT32 sx,
{
if (sx < 0 || sy < 0 || sx >= nScreenWidth || sy >= nScreenHeight) continue;
INT32 pxl = gfx[((y*16)+x)^flip];
if (mosaic) // ignore the warnings :) -dink
pxl = gfx[((y*16+y^mosaic*16)+(mosaic&x)+(x^mosaic&mosaic))^flip];
INT32 pxl = gfx[(((y ^ flipy) & ~mosaic)*16) + ((x ^ flipx) & ~mosaic)];
if (pxl != 0x0f) {
if ((priority & (1 << (prio[x] & 0x1f))) == 0 && prio[x] < 0x80) {
dest[x] = pxl + color;
@ -2957,6 +2957,7 @@ static void System1A_draw_sprites()
INT32 flipy = attr & 0x80;
INT32 pri = (attr & 0x08) ? 0x0c : 0x0a;
INT32 mosaic = (attr & 0x0f00)>>8;
//INT32 mossol = (attr & 0x1000)>>8; //not yet
code = (code & 0xfff) + ((sprite_bank & 1) << 12);
if (DrvTransTab[3][code]) continue;