From a2f30f050fc5cd61d1b927e3c0eea102ec8603ae Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Thu, 20 Apr 2023 16:45:38 +0200 Subject: Fix a bug with the 2bpp rendering --- src/ppu.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/ppu.c') diff --git a/src/ppu.c b/src/ppu.c index bc6f503..adf837c 100644 --- a/src/ppu.c +++ b/src/ppu.c @@ -673,12 +673,12 @@ ppu_2bpp(u32 *layer, u16 x, u16 y, u8 *sprite, u8 clr, u8 flip_x, u8 flip_y) { col1mask &= ~col3mask; col2mask &= ~col3mask; col3mask = (color & col3mask) & 0x11111111; - u32 mask = ~(col1mask | col2mask | col3mask) & 0x11111111; + u32 mask = (col1mask | col2mask | col3mask) * 0xF; color = (clr1 * col1mask) | (clr2 * col2mask) | (clr3 * col3mask); - dst[0] = (dst[0] & (mask << shift_left)) | (color << shift_left); - dst[8] = (dst[8] & (mask >> shift_right)) | (color >> shift_right); + dst[0] = (dst[0] & ~(mask << shift_left)) | (color << shift_left); + dst[8] = (dst[8] & ~(mask >> shift_right)) | (color >> shift_right); if ((start_row + v) == 7) dst += (32 - 1) * 8; } } else { @@ -693,12 +693,12 @@ ppu_2bpp(u32 *layer, u16 x, u16 y, u8 *sprite, u8 clr, u8 flip_x, u8 flip_y) { col1mask &= ~col3mask; col2mask &= ~col3mask; col3mask = (color & col3mask) & 0x11111111; - u32 mask = ~(col1mask | col2mask | col3mask) & 0x11111111; + u32 mask = (col1mask | col2mask | col3mask) * 0xF; color = (clr1 * col1mask) | (clr2 * col2mask) | (clr3 * col3mask); - dst[0] = (dst[0] & (mask << shift_left)) | (color << shift_left); - dst[8] = (dst[8] & (mask >> shift_right)) | (color >> shift_right); + dst[0] = (dst[0] & ~(mask << shift_left)) | (color << shift_left); + dst[8] = (dst[8] & ~(mask >> shift_right)) | (color >> shift_right); if ((start_row + v) == 7) dst += (32 - 1) * 8; } } -- cgit v1.2.1