Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LCD Color Filter option is broken (crushed gradients and color shift) #112

Open
Azurfel opened this issue Nov 29, 2022 · 2 comments
Open

Comments

@Azurfel
Copy link

Azurfel commented Nov 29, 2022

Please fill out this form:

Expected behavior

The LCD Color Filter option should make the 240p Test Suite Grey ramp test pattern looks like this (screengrab of the standalone nightly 2.1.4-a42e166e from 2022-11-28 using the equivalent option "LCD Filter" taken using Win+PrntScn):

2 1 4-a42e166e win10 prtscn lcd filter on

Actual behavior

On the VBA-M core (2.1.3-7e30b03), the LCD Color Filter option always looks like this:

Retroarch LCD Filter On

The Screen capture menu option in the standalone with LCD Filter enabled client produces a more or less identically broken image:

2 1 4-a42e166e screen capture lcd filter on

Squall-Leonhart said that this is because "Captures go through a quantisation process for 256 color palettes, with the lcd filter enabled there is not enough bits left to cover all the grey shades, causing some to appear to be bluish green, others reddish."

No idea if that info is potentially useful here, or if the issue being so similar is pure coincidence.

Steps to reproduce the behavior

  1. Generate a Grey ramp test pattern using the 240p test suite
  2. Enable LCD Filter option

Crash bugs

N/A

ROM details

Effects all games.

Option details

Video driver (simple, opengl): effects all

Build details

Operating System (Windows, Mac, Linux (state distribution), etc.): Win10 21H1

Version of code (pre-built binary version, or commit ref, or just "master"): 2.1.3-7e30b03, along with a few other older versions.

Hardware details:

CPU: Intel 9700K
GPU: Nvidia RTX 2080
RAM: 32.0 GB

@negativeExponent
Copy link
Contributor

negativeExponent commented Nov 29, 2022

libretro cores, by default uses 16bit colors for video framebuffer, which losses color information during post-processing (like how LCD filter, frame blending is done). here is a core compiled in 32bit colors with LCD filter enabled
1669765547_2022_11_30_07:45:47

not sure if its whats its suppose to look like. if its not, it might be better to post this on upstream since the filters used are the ones that upstream provided.

here is 32bit color without LCD filter
1669765884_2022_11_30_07:51:24

@Azurfel
Copy link
Author

Azurfel commented Nov 30, 2022

Your first picture with the LCD Color Filter on using the core compiled in 32bit colors looks perfect (it exactly matches the output of standalone nightly 2.1.4-a42e166e with the LCD Filter enabled, as well as the Gameboy Colors option from a rather old 2010 VisualBoyAdvance-M version i still have).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants