Please show off what crt shaders can do!

nes-raw-decoder + lanczos3-fast + ntsc 3 phase 256px composite + zfast-crt. Looks great!, still provides subtle rainbow, subtle blending, text looks more clean. Again this is nice for non-integer scaling and very lightweight…

shader parameters: LANCZOS3_ANTI_RINGING = "0.000000" BLURSCALEX = "0.400000" BRIGHTBOOST = "1.500000" MASK_DARK = "0.350000"

Edit: Just a quick edit for clarity on the order of the shaders… I just noticed the screenshots had the “saved message” re-doing it…

3 Likes

That shader thing has become a hobby for me :joy: Push more, more, more :rofl:

4 Likes

Here is the preset if you like it so much. Later i will port it to slang when i am in the mood :stuck_out_tongue:

shaders = "3"
feedback_pass = "0"
shader0 = "shaders_glsl/misc/shaders/simple_color_controls.glsl"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_glsl/misc/shaders/chromaticity.glsl"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
shader2 = "shaders_glsl/crt/shaders/zfast_crt_composite.glsl"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
TEMP = "7799.000000"
SAT = "1.150000"
postbr = "1.400000"
gamma_in = "2.200000"
gamma_out_red = "2.400000"
gamma_out_green = "2.400000"
gamma_out_blue = "2.400000"
COLOR_MODE = "5.000000"
blury = "-0.100000"
HIGHSCANAMOUNT1 = "0.300000"
HIGHSCANAMOUNT2 = "0.150000"
TYPE = "1.000000"
sat = "1.000000"
FLICK = "8.000000"

5 Likes

3 Likes

6 Likes

By switching the “flick and noise” pass from 2x to 1x and doubling the sharp settings in the glow section, Flycast core runs on koko-aio butter smooth without an hitch on my poor but beloved Haswell IGP, yay!

Unfortunately this is not controllable directly by shader parameters, so you’ve to manually switch it to 1x in RA config, shader section.

Ikaruga, 1080p, internal res. 640x480, no scanlines at all (I really don’t remember I’ve ever seen a line gap on my TV):

Fun thing is that some Dreamcast games were so damn well crafted (do you hear me PS2!?) , that I doubt I could ever play a modern so good looking game on this hardware.

9 Likes

If 480i is scrolling vertically at 60 fps you see scanlines as in 240p :stuck_out_tongue: Have seen that many times on Wii emulating some Amiga games at 480i on my CRT.

Think about it it draws half lines, then the other half. If you run a 60fps game at 30hz and scrolling vertically you get half lines visible every time haha

2 Likes

Yeah, you’re right! Is a good thing that I’ve configured Ikaruga to scroll horizontally then :slight_smile:

3 Likes

4 Likes

Looks more like a clean LCD screen low res, is that what is intended? Asking because LCDs don’t have curvature.

@DariusG Not really. I think it looks more like this: https://www.reddit.com/r/crtgaming/comments/14re39w/where_are_my_scanlines/?utm_source=share&utm_medium=ios_app&utm_name=ioscss&utm_content=1&utm_term=1

We always played on small tvs.

1 Like

What is he playing on, on that screenshot? Scanlines are there even on small TVs. I guess it’s some Dreamcast or Wii emulating on 480i.

I will show you a screenshot of my Trinitron 14" on 240p later.

Maybe. I know, some of you try to make the best CRT emulation shaders, and results look really good! Some look a little bit dark i must say. LCD backlights do not seem to be bright enough compared to phosphor.

I just try to remove this Handheld LCD pixelated dithered look from old games with some CRT technics, blending and evenly placed pixels. It does not look like a real crt, but compared to the default output of a emulator i‘m pleased with the result.

1 Like

4 Likes

It’s better to project pixel graphics with crt filter for a number of reasons.

a) low res are projected on higher res with scanlines, splitting huge pixel blocks and appear sharper and less blocky (that’s the exact thing a crt does, projecting 240 pixels on 480p pixels canvas)

b) pixel blending with a crt filter is better, rounding pixels instead of squares

c) crt has better colors, vibrant instead of office colors of lcd

etc.

Keep in mind LCDs were made for Microsoft Office, that means sharp, not vibrant colors that hurt the eyes (OS and all apps and icons and everything is calibrated for that matter with pastel colors). Low luminance because an Office employee will stay near the screen. Not caring about response times too, Office doesn’t scroll (a TV that is made for watching movies far from it has way way more luminance).

1 Like

Not all CRT’s have strong scanlines, mine hasn’t, and some games tend to have more pronunciated scanlines than others. I have posted a few examples before, also Pal 50hz tend to have more scanlines resolution than NTSC, and scanlines gaps looks thinner and they had to stretch the image to fit on a pal CRT properly, on NTSC CRT, the normal thing is to have 240p line resolution, but Pal has about 288p, or something like that. Maybe I’m wrong in terms of scanlines resolution, but what I really know is that Pal CRT’s had more overall scanlines than NTSC.

2 Likes

The gaps probably tend to be a bit larger even on these small Trinitrons compared to the reguar slot mask tvs, you shot illustrates nicely how visible they can be in dark color space where I also see them on my non-aperture set. If you set contrast too high, they disappear, I would guess few people bother with calibrating, even in the crtgaming forum. I think that upvoted comment about coarser dot pitch isn’t correct either. Smaller sets have lower TVL, yes. But if you keep the same pitch and increase the size of the tube, you increase resolution addressability by that alone, I think? Maybe I’m misunderstanding “coarse” here.

2 Likes

Another one for NES (pretty light weight, looks great at non-integer scaling):
nes-color-decoder + lanczos3-fast + ntsc-composite (256px 3 phase) + crt-lottes-fast shader params: LANCZOS3_ANTI_RINGING = “0.000000” MASK = “3.000000” SCAN_BLUR = “3.000000” CURVATURE = “0.000000” CORNER = “0.000000”

4 Likes

Looks good for a start. When sharing presets or any type of code it’s a good practice to enclose them between the less than and equal signs that you see next to the quotation marks. It’s called preformatted text. So the above preset will look like this instead:

nes-color-decoder + lanczos3-fast + ntsc-composite (256px 3 phase) + crt-lottes-fast

shader params :

LANCZOS3_ANTI_RINGING = “0.000000” 
MASK = “3.000000” 
SCAN_BLUR = “3.000000” 
CURVATURE = “0.000000” 
CORNER = “0.000000”

This makes it much easier for someone else to copy and paste.

1 Like

Thank you, will do. :slight_smile:

1 Like