From 1fe54347975ea7ff4f6f1f9418833eebebd7deeb Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Wed, 26 Feb 2020 06:36:09 +0200 Subject: [PATCH] Adjust SNES luminosity curve to start from zero The existing luminosity curve does not start from zero, which causes graphical issues with some games (screens that should be black not being black). --- src/library/framebuffer-pixfmt-lrgb.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/library/framebuffer-pixfmt-lrgb.cpp b/src/library/framebuffer-pixfmt-lrgb.cpp index 25633ab8..3e6f537a 100644 --- a/src/library/framebuffer-pixfmt-lrgb.cpp +++ b/src/library/framebuffer-pixfmt-lrgb.cpp @@ -13,13 +13,13 @@ void _pixfmt_lrgb::decode(uint32_t* target, const uint8_t* src, size_t width) const uint32_t* _src = reinterpret_cast(src); for(size_t i = 0; i < width; i++) { uint32_t word = _src[i]; - uint32_t l = 1 + ((word >> 15) & 0xF); + uint32_t l = ((word >> 15) & 0xF); uint32_t r = l * ((word >> 0) & 0x1F); uint32_t g = l * ((word >> 5) & 0x1F); uint32_t b = l * ((word >> 10) & 0x1F); - uint32_t x = (((r << 8) - r + 248) / 496) << 16; - x |= (((g << 8) - g + 248) / 496) << 8; - x |= ((b << 8) - b + 248) / 496; + uint32_t x = (((r << 8) - r + 232) / 465) << 16; + x |= (((g << 8) - g + 232) / 465) << 8; + x |= ((b << 8) - b + 232) / 465; target[i] = x; } } -- 2.11.4.GIT