Video: Fixed red line at bottom of screen with NTSC filter

This commit is contained in:
Sour 2018-01-06 08:07:16 -05:00
parent 16c97ba347
commit 1e0b55f95b
2 changed files with 2 additions and 4 deletions

View file

@ -92,7 +92,7 @@ void NtscFilter::DoubleOutputHeight(uint32_t *ntscBuffer)
uint32_t prev = in[overscanLeft];
uint32_t next = y < 239 ? in[overscanLeft + rowWidth] : 0;
*out = prev;
*out = 0xFF000000 | prev;
/* mix 24-bit rgb without losing low bits */
uint32_t mixed = (prev + next + ((prev ^ next) & 0x030303)) >> 1;

View file

@ -184,9 +184,7 @@ enum { nes_ntsc_full_overscan_right = nes_ntsc_full_in_width - 256 - nes_ntsc_fu
#define NES_NTSC_RGB_OUT_( rgb_out, bits, x ) {\
if ( bits == 16 )\
rgb_out = (raw_>>(13-x)& 0xF800)|(raw_>>(8-x)&0x07E0)|(raw_>>(4-x)&0x001F);\
if ( bits == 32 )\
rgb_out = 0xFF000000 | (raw_ >> (5 - x) & 0xFF0000) | (raw_ >> (3 - x) & 0xFF00) | (raw_ >> (1 - x) & 0xFF); \
if ( bits == 24 )\
if ( bits == 32 || bits == 24 )\
rgb_out = (raw_>>(5-x)&0xFF0000)|(raw_>>(3-x)&0xFF00)|(raw_>>(1-x)&0xFF);\
if ( bits == 15 )\
rgb_out = (raw_>>(14-x)& 0x7C00)|(raw_>>(9-x)&0x03E0)|(raw_>>(4-x)&0x001F);\