Please show off what crt shaders can do!

What model TV is it? Not all TVs support RGB 4:4:4 at all resolutions and refresh rates. What colour format is your graphics card outputting to your TV? Do you have HDMI Deep Colour or Wide Colour Gamut enables in your TV’s settings?

You might also have to try larger mask sizes.

nice! could you share the preset?

1 Like
#reference "shaders_slang/crt/crt-lottes-multipass-glow.slangp"
hardScan = "-6.000000"
hardPix = "-5.000000"
warpX = "0.000000"
warpY = "0.000000"
maskLight = "1.500000"
brightBoost = "1.100000"
hardBloomPix = "-2.000000"
hardBloomScan = "-2.000000"
bloomAmount = "0.300000"
shape = "2.000000"
DIFFUSION = "0.030000"
2 Likes

It’s a Panasonic TX-43JXW604. I made sure to set the Nvidia control panel was set to RGB and the HDMI setting matched the TV. It occured to me afterwards that I could probably just launch the 240p suite to pin any color shifts better down :roll_eyes: Gonna be a while till I get to test it again though.

1 Like

My presets to mitigate non-integer resolutions.

For consoles and arcades:

#reference "shaders_slang/crt/crt-hyllian-sinc-glow.slangp"
INPUT_GAMMA = "2.400000"
SCANLINES_STRENGTH = "0.690000"
COLOR_BOOST = "1.200000"
PHOSPHOR_LAYOUT = "12.000000"
MASK_INTENSITY = "0.700000"

For handheld (I suggest to use core option to fix colors):

#reference "shaders_slang/crt/crt-hyllian-sinc-glow.slangp"
INPUT_GAMMA = "2.200000"
SCANLINES_STRENGTH = "0.690000"
COLOR_BOOST = "1.200000"
PHOSPHOR_LAYOUT = "12.000000"
MASK_INTENSITY = "0.700000"

That mask12 is very good on non-integer scaling and doesn’t tint the colors.

8 Likes

This shader probably exists for quite some time now, but I only found it by chance today when trying the ffmpeg core, I like it a lot as it works much like the ambient light a few TVs have, basically using the strongest color on the scene as a matrix for the glow and it’s not distracting such as the blurs which mirror the video. This way it also prevents parts of the wide screen from displaying a static image/color. Is is possible to mix this with shaders from the CRT folder, such as crt-guest-dr-venom2 and so on, how can I do that?

6 Likes

In which folder is this preset located?

It’s in border/ambient-glow.

3 Likes

It would be awesome to have an option to activate this in every crt shaders!

3 Likes

As a PoC, I injected my little fast crt (it was born to work in non-integer resolutions) inside ambient-glow shader and it worked. Unfortunately It isn’t a switch to crt, though it can easy the path for you to inject other crt shaders. I had to turn my shader into a function.

I had to cut some code, though. There’s no sharp interpolation anymore in this version, only crt or raw pixels. That’s because my little fast crt doesn’t work with linear sampling.

border-ambient-glow-crt.zip

7 Likes

Yes, reducing shaders to a function makes it a lot easier to integrate with other effects. I did that quite a bit with the Cg shaders with the intention of making them all compiler agnostic via ifdefs (that is, once you have it reduced to a function, your actual shader is only 1 line long, connecting the shader backend’s uniforms to the shader function’s inputs). It’d be nice to have one unified shader file that worked on all of the drivers, but the code would be difficult to read–a maze of ifdefs–and it would be a nightmare to deal with POT/NPOT on the coords.

4 Likes

Thanks Hyllian, here’s one of my favorites and really colorful Saturn game, I set “glow brightness” to 2.0 to show the color transitions between areas more dramatically, blues, greens, browns, reds. It’s really a nice shader and somehow it makes the unused screen area to come alive in these games, it’s almost like it becomes integrated with what’s going on in games and videos, not too far off what the screen does to the room walls and furniture. For instance, you can call element spirits, the fire spirit makes the screen glow towards reds and orange in real time, as well as parts with electric effects towards blues and whites, etc. I also recorded a short video to show it better.

6 Likes

Nice video! Relaxing lights.

4 Likes

Is it easy to implement a way for vertical arcade games to be used with this shader?

If it still has all of the original border shader’s stuff intact, you can set the aspect ratio to any arbitrary ratio from 1/256 to 256/1 via the parameters.

1 Like

I’m not sure if I’m missing something as I’m used to the auto rotation from the Mega Bezel shaders, but the only way for the game to be displayed correctly with the Ambient Glow is to use ‘Core Provided’ for the aspect ratio, so the expanded area won’t display the shader effects, even the stock one, as the aspect ratio options inside the shader settings will only increase/decrease the vertical axis. If I turn Vertical Mode OFF in Core Settings, I can’t force the game to TATE mode, the rotation settings under Video Options isn’t available and I tried a clean Retroarch build to make sure it wasn’t some setting getting in the way. Using all stock settings for the Ambient Glow shader and aspect ratio to Full and Vertical Mode ON in Core Options will stretch the game over the screen area, for some reason. This is true for the stock Ambient Glow and the crt variant.

1 Like

I think this might only be visible when you turn on “Show Advanced Settings” then when you do find it you turn on Allow Core Rotation, then FBNeo can rotate the full viewport

3 Likes

Good point, I didn’t know it was hidden! I just tried it, turned Vertical Mode OFF and used the screen orientation under Video/Scaling but vertical games will still stretch like the last screenshot above. Turning Vertical Mode ON will just rotate to the side like the second to last screenshot above.

the ambient glow shader handles aspect ratio on its own, just like the mega bezel shaders, so once the image is turned the correct direction, you should be able to set those numerator and denominator parameters.

1 Like

I thought so, the aspect ratio numerator and denominator works as intended on normal games, but not for vertical games, unless the core is messing with it somehow, if someone could try a vertical arcade game to confirm this, that would be really helpful.

1 Like