New to Using Shaders - Discoloration?

Hi everyone,

I’m trying to figure out which Shaders work best on my system, and I noticed most Shaders I tried introduce Discoloration of some kind. Example. Is that something specific for my LCD TV and need to be tweaked with the Shader settings? or there’s something I need to change in the Global settings to make things look decent?

Thank you!

Just updating - while It happens on couple of Shaders, I was able to fix it crt-fakelottes by sitting ShadowMap to zero. I don’t know what it means, but it’s a hacky solution for now.

not sure what you mean by “discoloration”

If you’re using a non-integer scale, masks and scanlines will both wind up looking weird. Try enabling integer scale and then setting a custom aspect ratio (both under video settings).

The Lottes masks never look quite right because they don’t take into account the LCD subpixel structure; that might also be responsible for the “discoloration” you’re referring to.

Hello there Nesguy. Thank you for the answer.

I think ‘Integer Scale’ was enabled. However, I’m not sure what Custom Aspect Ratio does? and on which settings to set it?

Any reason why this ‘discoloration’ in the original picture is happening just on the right section of the screen? if there was a problem with Lottes and how it handle LCD subpixel, wouldn’t it be applicable to all screen and not just portion of it?


What I see are scaling artifacts. There is something wrong about how your monitor/tv or settings are scaling the picture. Try a different shader like easymode and see if you like it + don’t see this issue anymore.

But wouldn’t a wrong settings or monitor settings will effect all the picture and not just a section of it (right side of the screen)? I will try easymode and see, but as for now I was able to avoid it by setting “ShadowMap” to zero. Maybe that’s a hint on what’s going on.

I didn’t play with Aspect Ratio yet, maybe this will change something.

Honestly from my experience it’s an issue between to retroarch video settings and the shader that is causing that.

Which video settings are directly connected to shaders? integer scaling and aspect raio?

1 Like

Both, some shaders couldn’t care less about integer scaling though, but if you’re using integer scaling you need to set the aspect ratio to custom, and down from it should be the x and y resolution settings, they should have a number (the resolution) followed by (#x) which is the integer scaling level.

What would be a sane settings for 1080p LCD? or it depends on the content?

1 Like

Most (cores) have different resolutions so really you just need to set the custom x/y resolution (integer scaling, in my experience the first time you set integer scaling for a core if it’s already on you have to shut it off and then back on for it to properly let you set scale… You only have to do this once per system though.) per system (core).

I personally let the y resolution (whichever’s vertical, lol), to the highest I can without the image hitting the edge of my screen then I raise it one more time so I’m loosing some image at the bottom and top, then just match whatever (#x) that’s giving me to the x resolution.

Some people up the custom y resolution as high as they can without touching the top/bottom then match the x resolution(#x). Which leaves you with black borders all around your game. They tend to fill that blackness with an overlay, lol.

Also some people for systems like the nes, and snes do either of the above then make x resolution (#x) one higher than the y resolution. So the image seems less skinny.

Others run no integer scaling, but that’s another issue all together, mainly because alot of the CRT shaders are picky and want an integer scale or things won’t look right.

Thanks for the rundown! I will be playing with the settings once I’m home and update you :slight_smile:

Nope, scaling artifacts can be weird like that.

If you want scanlines and masks to look right, you have to enable integer scaling and set a custom aspect ratio in the video settings. This is the most likely culprit.

Lottes masks don’t really take into account the LCD subpixel structure and aren’t as good as the magenta-green masks for this reason. The magenta-green masks allow for finer mask detail than is otherwise possible. This may not be directly related to the issue you’re describing but it’s worth checking out nonetheless.

I had some time to play around with Integer Scale and Custom aspect Ratio.

So you guys were right. I set up Integer Scale, and set the Aspect Ratio to Custom. The default was 4X - and it was the correct size - which means the display reached the top and the bottom of the screen correctly. However, I could still see the artifact on the same spot on the right side of the screen.

When set the scale to 3X (768x672) the screen is getting smaller, and stops just before where the artifacts were showing on the right side. Changing to anything past this size will display the artifacts again.

So the screen now use much less real estate on the LCD. It doesn’t use the ‘full-potential’ of the LCD size-wise, but at least it’s look good. Another thing that happened as a side-effect of a smaller screen size, is that no Overlay fit correctly anymore (there’s an extra space between the display and where the overlay ends).

I noticed the screen size is set in settings to 720P on Retroarch. I’m guessing that RetroArch resolution and not the resolution of the Core? so the smaller size I’m describing is the expected behavior?

Hmm, you shouldn’t be seeing any scaling artifacts with integer scale enabled, regardless of what you set the custom aspect ratio to. You may have to toggle integer scale off-on to get the correct custom aspect ratio.

Just to make sure, here are the settings you want to change. “Custom aspect ratio width/height”

This is a problem you run into with 1080p screens. You have the option of overscanning the image by setting a vertical scale of 5x and then setting the horizontal to whatever gets you closest to a 4:3 aspect ratio. This will crop the image a bit, but CRTs did the same thing and 8 bit and 16 bit games were designed with this behavior in mind, so you won’t lose any important information (life bars, timers, etc).

Hello again Nesguy, thanks for the quick answer :slight_smile:

I disabled integer scaling and indeed I had more control of Custom Aspect Ratio Height/Widget. However, it doesn’t matter if I change the Ratio with integer one and off, at some specific line - I get the artfiacts no matter what. It’s a specific spot that the artifacts starts from. And when it start - it will be look like until the end of the screen. So It’s like 1/3 of the screen has those artifacts no matter how much I tweak with Aspect Ratio/Integer scale.