Please show off what crt shaders can do!


#82

Thanks for clarification, I did assume they were done by the same person or someone trying create a similar effect. Regarding my comments in the other thread, maybe the video compression in the YouTube video I linked to is making the mask appear grayscale and softer. Your screen shots look lovely, plus I zoomed into your screenshots like 1000% which isn’t normal, when viewing from the couch they would look just fine.

EDIT: @Great_Dragon - maybe the dot mask 4 is what makes yours more prominent?

EDIT: Anyway, shame this effect hasn’t been re-created in GLSL and made less resource intensive.


#83

shenglong, so you are checking with torridgristle if there is a way to emulate the above shader with a basic png mask?

Would love to have the ASP v3 (I believe v4 is in the works) in glsl, as being an Intel owner, I cannot do much with cg’s.

EDIT: Checking the above image again, I can see that it has a vignette effect as well, darkening the corners. That can be easily achievable with an overlay anyways.


#84

@torridgristle - that was one brilliant idea mate. It runs blazing fast and looks really nice.

And yeah, @Great_Dragon’s mask is lovely indeed. It’s just that I tend to prefer aperture grills, and also that I can’t tell what shadow masks really look like until they are merged with scanlines.


#85

Yeh I’ve asked @torridgristle in his thread if he could kindly have a go, he has posted in this thread and done some work on making lightweight GLSL shaders that utilise LUTs (look up textures). I’m not technical so don’t even know if it’s possible, no harm in asking :grinning: Hopefully what I’ve requested makes sense!

I’ve had ASPv3 since day one, it has some cool presets but I don’t actively use it because the CG format does not work with some cores and you need a beefy machine to use the more advanced stuff.


#86

Yes. That Dot Mask 4 with default settings looks more visible. Though if you change its size you will turn it into somewhat close to real TV shadow mask IMO.

If that is what you are looking for you can use Dost Mask shader alone with mask type 4 and fixed size. Or you can use CRT-Lottes (that is original shader from where they rip off that dot mask filter). But you have to change kernel shape size to 3

alias0 = ""
bloomAmount = "0.150000"
brightBoost = "1.000000"
filter_linear0 = "false"
float_framebuffer0 = "false"
hardBloomPix = "-1.500000"
hardBloomScan = "-2.000000"
hardPix = "-3.000000"
hardScan = "-8.000000"
maskDark = "0.500000"
maskLight = "1.500000"
mipmap_input0 = "false"
parameters = "hardScan;hardPix;warpX;warpY;maskDark;maskLight;scaleInLinearGamma;shadowMask;brightBoost;hardBloomPix;hardBloomScan;bloomAmount;shape"
scale_type_x0 = "absolute"
scale_type_y0 = "source"
scale_x0 = "1280"
scale_y0 = "3"
scaleInLinearGamma = "1.000000"
shader0 = "D:\Games\Emu\RetroArch\shaders\shaders_glsl\crt\shaders\crt-lottes.glsl"
shaders = "1"
shadowMask = "4.000000"
shape = "3.000000"
srgb_framebuffer0 = "true"
warpX = "0.001000"
warpY = "0.001000"
wrap_mode0 = "clamp_to_border"

Both shaders are available in GLSL

As for the viewing distance you are absolutely correct. This type of look is not designed to play on PC monitor with usual viewing distance around 60 cm. It looks well on my 40" TV from 2 meters away.


#87

@Great_Dragon - Brilliant will have a go with dotmask and fixed size later when I get home.


#88

I fixed the messy scanlines in GameCube and DreamCast with the crt-hyllian-3d shader.


#89

I keep experimenting and trying new stuff. This is a working progress of a preset that really has a high contrast crt feel to it. I still need to improve the scanlines, but it shows a lot of promise. It looks so cool in movement, almost like it increases the resolution of games, just like a good crt does!


#90

Looks more like a lcd to me. :wink:


#91

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.


#92

Those are actually quite nice, @daddu3!

Preset is shaping up well, scanlines up and running


#93

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


#94

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


#95

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~


#96

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.


#97

I do think that for console games made around the 80s, like the NES, composite or a composite-like look is most suitable, since sprites where designed with the blended picture quality of composite in mind.

I have never seen any actual evidence to support the assertion that this was common practice. What we know is that the graphics were created on RGB monitors after being hand-drawn on graph paper. Furthermore, I think one can make a sound argument that the image quality for NES era games is objectively superior through RGB, even given the loss of some dithering effects. The loss of one or two dithering effects (I’m looking at you, Sonic waterfall) is more than outweighed by the vastly superior color, sharpness and overall clarity of the image through RGB.


#98

The fact that NES can’t actually output RGB would be pretty good evidence to me. Whether they designed the graphics on RGB monitors or not, they output them to regular TVs via regular consoles for testing, so they definitely saw what composite looked like (it would be foolish not to test composite, since that’s how most people would be consuming the content; that or RF).

See sections 2 and 3 here:


#99

There was a complete lack of standards for developers at this time so I don’t think we can really generalize from the few examples that we still have available to us from old magazine articles and interviews (that’s a great link, btw!). The better NES developers probably did test the output using composite. Regardless, I think one can still make a strong case for RGB over composite on the NES. It’s just better in terms of the objective image quality. There’s a whole niche market around RGB modding the NES so obviously the demand is there. Following the NES, pretty much every single console had S-video or RGB, so I think it’s safe to say that composite output was no longer a major consideration from then on.


#100

Yeah, I have one, and it looks great :). The PlayChoice 10 arcade cabinets were also RGB (RGB mods used to have to cannibalize their RGB PPUs).

Even though those were options, S-video was only available on premium televisions, and RGB was unavailable outside of Europe (and some Japanese displays), so composite was still very much a big deal, basically until HDMI became commonplace in the 360/PS3 era.

Now, I don’t say all that to refute your main idea, which is that RGB looks great and NTSC/PAL/composite signal modeling/blurring/bloom/etc necessarily degrades the images. That’s indisputable.

However, that grungy look was how a majority of individuals experienced the games, and the sharp, pristine pixels of RGB often don’t look “right” to them as a result, so there’s no single “correct” way to view them now. (see also: the whole aspect-ratio / square vs non-square pixel jihad/crusade)


#101

Even though those were options, S-video was only available on premium televisions, and RGB was unavailable outside of Europe (and some Japanese displays), so composite was still very much a big deal, basically until HDMI became commonplace in the 360/PS3 era.

Good points, but I wonder how much developers cared about composite beyond the NES era, and how much it influenced the design of the graphics. It seems difficult to provide any kind of definite answer, here. I guess one could argue that since the majority of consumers used composite, that developers would take this into consideration, but it seems equally plausible that they would design the graphics to look as good as possible using the highest quality signal that was available on the platform, especially since different consoles were always competing against each other over the quality of the graphics. There’s not a lot of evidence either way, so it’s speculation. It’s worth pointing out that S-video is nearly indistinguishable from RGB unless using a high quality CRT.

that grungy look was how a majority of individuals experienced the games, and the sharp, pristine pixels of RGB often don’t look “right” to them as a result, so there’s no single “correct” way to view them now. (see also: the whole aspect-ratio / square vs non-square pixel jihad/crusade)

Yup, this is where nostalgia rears its ugly head. I played on a crappy CRT using RF or composite as a kid but I’d never go back to that now that I’ve experienced RGB. I just don’t really get nostalgia, which I think is what is motivating a lot of what people are doing with shaders.