Please show off what crt shaders can do!

Dunno entirely how to start here… anyway, owning a Samsung 40" 4K UHD Smart TV from MU6100-series, and been trying to explore that for playing retro-games through plugging from my laptop to that TV. Sounds horrible, I know…

Anyway, I played around with CRT-Royale for some games now and then, and have kind of liked this look:

I think I’m hitting to 720p-resolution for games here - meanwhile my laptop’s 1080p currently (bought it 3 years ago, lol)

TBQH, IDK what to go off entirely to emulate the looks of PVMs (minus some heavy scanlining) on my 4K LCD TV, so some help could be nice.

4 Likes

Those are actually quite nice, @daddu3!

Preset is shaping up well, scanlines up and running

4 Likes

You think? Thanks fam! I guess I’m in a good track for now… :smiley:

1 Like

CRT-Royale is life, CRT-Royale is love ! Nice Zelda ALTTP mod by the way !

2 Likes

I’ll guess I’ll stick with Royale for now! :face_with_hand_over_mouth:

On that end, the credit for that ALLTP-mod goes to here: https://www.romhacking.net/hacks/2796/. Though I guess I DID do something of my own modding to it, combining it with this QoL-hack: https://www.romhacking.net/hacks/2234/

I have to blame Smash Ultimate’s incarnation of Zelda for trying this mod, she’s too adorable~

1 Like

EDIT (8/4/2019): I’ve changed my mind about a lot of things here, but leaving the original post intact. In particular, I now find that a certain amount of blur, combined with scanlines and the right mask effect, looks ideal. My most recent posts in this thread go into more detail and have my current shader settings.

I have a very different perspective when it comes to CRT emulation. I think what this thread really demonstrates is just how exaggerated most CRT shaders are. Most of these images have far too much bloom/bleed/blur etc, and I don’t understand why people want that in their games. A CRT image is “soft” for reasons that have very little to do with blur. It’s the scanlines, lower TVL, phosphor structure and glow that gives a CRT image it’s characteristic “softness,” which people mistakenly conflate with blur.

It seems that most shaders are created by either looking at photos of CRTs or by looking at a CRT in person and trying to “eyeball” it. While the latter approach is superior to the former, it’s still inferior to an approach that starts with a sound conceptual understanding of what a CRT screen is actually doing to the image, objectively, along with an understanding of what it is about CRT screens that enhance the objective image quality for 240p content.

Yes, I understand that maybe your crappy low quality TV from the early 90s may have, in some ways, resembled these shaders. The question is, why are you trying to replicate a crappy TV from the 90s instead of a high quality CRT from that era? Back in the 90s, if someone had offered to replace my low quality consumer TV with a high quality RGB CRT, it would have been crazy to refuse. People bought RGB CRTs when they had the money and if they were available, because the image quality is objectively superior. Why people want to add blur, pincushion distortion, signal distortion, bleed, etc is beyond me, but nostalgia isn’t really a factor for me, nor do I care about some poorly defined and dubious notion of “authenticity.”

For those who don’t care for the hyper-exaggerated, over-bloomed, and distorted look you get with most shaders, you might be interested in a more minimalist approach that is focused on getting an LCD screen to actually function in a similar way as a high quality CRT screen that is free of the undesirable distortions that people sought to eliminate on their CRTs, and which are found in many shaders.

The following images should be viewed with your display backlight adjusted to 100%, or else they will probably look like crap.

Example shot

What’s going on in this image? The above is a perfect rendition of a 360 TVL RGB CRT. The only things being added here are scanlines, the RGB phosphors, and some slight vertical blending between the scanlines. The scanlines are a bit less than 1:1 with the vertical blending added.

I’ve adjusted my display backlight to 100% and I’ve made some adjustments to the mask strength to find the ideal compromise between brightness and mask strength. With this configuration, my screen has contrast and peak brightness levels comparable to that of a high quality CRT, and the mask is as accurate/strong as possible while maintaining brightness. At normal viewing distances, the emulated phosphors act very much like those on a real CRT, exhibiting similar glow and halation effects and blending together in a similar way, Viewed in person, this looks better than any shader I’ve tried, and I’ve tried all of them. Get up close and it’s as ugly and incoherent as what an actual CRT looked like up close. Gradually move away from the screen and all the different elements blend together as a result of the way the human eye works, just like with a real CRT!

With my display backlight at 100%, I’m getting a peak brightness of around 200 cd/m2, which is slightly brighter than what was common for CRTs. With HDR capable displays, it should be possible to max out the mask strength while maintaining peak brightness levels that match or even exceed that of a CRT. In other words, with an HDR-capable display, it will be possible to get the emulated “phosphors” to glow as brightly as the real thing on a CRT. At that point it will be really pointless to add glow or halation effects via shaders.

Here’s another emulated image without any vertical blending added- just 1:1 scanlines and the vertical RGB phosphors.

Here’s a close-up image of an actual high-quality CRT (a Sony FW900, I believe), to show the range of what’s possible regarding image quality on a CRT. You’ll notice that this image is far sharper and less “bloomy” than what the vast majority of shaders do to the image. Actually, the CRT image is much sharper and exhibits less bloom than the first emulated image that I posted above, and looks more similar to the second emulated image with “perfect” scanlines. The scanlines in the CRT image are even more pronounced, being as close to 1:1 as possible.

The shader being used in the emulated images is the “zfast + dotmask” shader that HunterK put together, although I’m unsure if it has been added to the shader repository. I’ve stacked this with the “image adjustment” shader for gamma correction. Here are the changes I’ve made to the parameters:

BLURSCALEX = “0.000000”

BRIGHTBOOST = “1.000000”

DOTMASK_STRENGTH = “0.300000”

HILUMSCAN = “8.000000”

ia_monitor_gamma = “2.200000”

ia_target_gamma = “2.400000”

LOWLUMSCAN = “9.000000”

MASK_DARK = “0.000000”

MASK_FADE = “0.600000”

maskDark = “0.200000”

maskLight = “2.000000”

shadowMask = “2.000000”

bilinear filter turned OFF in the video options, shader filter set to “nearest.” Integer scale turned ON in the video options, custom aspect ratio enabled (6x5 integer scale).

NOTE: These settings are partially display-dependent. The goal is to maximize scanline and mask strength while maintaining CRT-like peak brightness, getting the scanlines as close to 1:1 as possible and the mask strength as close to 100% as possible without compromising on brightness. As such, settings will differ depending on the display being used. For reference, I’m using an ASUSVG248QE, which has an advertised peak brightness of 350 cd/m2. If one wants to add some vertical blending, adjusting the “mask fade” parameter will accomplish this. This will also brighten up the screen somewhat and allow the mask strength to be increased, at the expense of making the scanlines less prominent than the “perfect” 1:1 scanlines one sees in the second emulated image and the CRT image.

Also, bear in mind that using this approach limits you to using integer scale, and the horizontal integer scale must be a multiple of 3 in order to avoid ugly artifacts that resemble color bleed. This isn’t that big of a deal when you consider that 6x5 is already very close to a 4:3 ratio, and that the geometry of CRTs varied widely depending on how they were calibrated and was never perfect.

EDIT: I guess I should also mention that it’s entirely possible to add blur with this shader- just set the shader filter to “linear.” Adjust BLURSCALEX if more blur is desired.

4 Likes

21 posts were split to a new topic: CRT shader debate

Personally I’m in love with CRT-Royale Kurozumi edition, and I think it looks a lot like Nesguy’s Super Mario World screenshot.

So what do you guys think, is the best out-of-the-box shader for a realistic " high-end consumer crt look"? :thinking:

“Beauty is in the eye of the beholder” (the person who is observing gets to decide what is beautiful).

Technically, going by the general concession it might be crt-royale and its many variations if you are going for a high-end consumer CRT look, it has many parameters available giving you complete control over the look, however you do need a beefy machine.

The wonderful thing about RetroArch is it gives you the options via shaders to choose what visuals you want, be it a high-end CRT display or a blurry, distorted RF mess.

Do what you think looks right/best for you, if you’ve experienced CRT displays you will know what feels right for you based on your previous experiences.

ULTIMATELY ENJOY GAMING! :video_game:

3 Likes

I’m noticing that A LOT of the screenshots in this thread have bad/inaccurate colors, distorted contrast, black level has been messed with, gamma is off, too much bloom (scanlines disappear), pincushion distortion, and other problems. In an effort to help people correct this, here’s a link to Fudoh’s 240p test suite:

http://junkerhq.net/xrgb/index.php?title=240p_test_suite#Versions

You can also get the 240p test suite directly through RetroArch’s Content Downloader :wink:

2 Likes

Using crt-royale-ntsc-320px-svideo

5 Likes

Recently, I alternate between these two. Not looking proper unless viewed in real size.

7 Likes

Love the first look. Would you like to share your shader preset and settings?

1 Like

It’s 199X-BLOOM from Brim’s set of shaders at default settings https://1drv.ms/u/s!AovNCJqCEyJOhLp_hJlJKP4cSByg2A

Thanks. I was hoping it’s something more flexible like GLSL or SLANG. Can’t use Brim’s shaders with Beetle PSX running on Vulkan (

Would you mind uploading your shader preset? Looks like that combo is not the repository and i can’t replicate it myself.

@Arviel, below is the preset used by @Nesguy, you will also need to download the shader file combined by @hunterk, save both files in the same directory.

Shader file by @hunterk: zfast+dotmask.glsl

Preset file by @Nesguy: zfast+dotmask-preset.glslp

Follow other guidelines provided by @Nesguy in his post above.

3 Likes

A post was merged into an existing topic: CRT shader debate