Please show off what crt shaders can do!

Nice. I’m getting convinced that for vertical direction the only plausible filter is the gaussian. In reality I think vertically you aren’t interpolating things, you’re just spreading two decaying pixels in an area. It’s different of the horizontal direction where you are indeed resampling the signal and can use more than one tap. (vertically there’s only one tap, because the third pixel can’t communicate with the first one.

2 Likes

I was afraid that might be the case. Oh well, at least I am sitting several feet away from the TV screen so it isn’t that noticeable (at least compared to looking close up). I also have two full-range RGB subpixel monitors that I can use to test out masks as well, so there’s that. Even with the mask being out of alignment on my V-BGR TV, it still looks great with mask 0. I also tried out your configuration with the new version of CRT-Hyllian and that looks great on my TV as well.

I think that I would have to test out mask 8 for guest-dr-venom on a 4K monitor to see how it really looks. I tried testing it on my 1440p monitor as well and it still looks a little off. Too bad I don’t have any 4K displays I could use lol.

I took another screenshot with mask 0 on crt-guest-dr-venom for Tomb Raider II. I set the gamma-out to 2.8, set the white point for grade to 6500, and set the colors to PAL standard via grade as well. This is the result.

I would say that looks much more well-lit than the prior image. Which was this.

For some reason, when I use a custom non-integer scale of 1494x1120 as in your screenshots, I can’t take screenshots within Retroarch. Doing so causes Retroarch to lock-up and crash, which doesn’t happen when I revert the integer scale back to normal. Also wanted to add that it might be worth doing this for all Psygnosis games as well with them also based in the UK. Also explains why Wipeout XL seemed particularly dark. The more you know :slight_smile:

2 Likes

Well, I just swapped here and it worked stock! I didn’t change any parameter, though. Glow and curvatura works. I just don’t know if Gamma is correct because there’s three gamma params (one from glow and two from crt-hyllian, maybe one of them is useless and should be put at 1.0 value).

crt-hyllian-ntsc preset

You just need to put that preset inside crt folder.

EDIT: To tell you the truth, I prefer the curvature done in the crt pass, so I made a little change in the crt-hyllian-curvature.slang shader to have its own parameters (you’ll notice two curvature params on Retroarch, just use the one with “CRT-” on it. The other curvature is from resolve.slang and exhibit moire artifacts you can minimize using its noise param. I prefer using just the crt curvature without noise and moire. BTW, CRT gamma in and out should be 1.0, because gamma is already done by other passes. BTW2, for some reason no intended, if you set vscanlines, a really clean and nice screen without scanlines appear.

crt-curvature-ntsc with curvature at the crt pass (no moire artifact)

2 Likes

I’ve come to notice some strange artifacts on my screen. Apparently, it seems that at least within crt-guest-dr-venom2 with a custom non-integer scale of 1494x1120, it looks like there are some strange banding issues caused by uneven scanlines.

Even with using the integer scaling in Retroarch of 4x by 4x this banding still occurs. It only goes away when I set the integer scaling within the shader parameters itself, which is strange. Does anyone have any solutions?

1 Like

Maybe it’s a core option throwing it off? Do you see the same thing with all cores?

Maybe this is a video driver / graphics card bug? You said earlier that RA was crashing when you tried to take screenshots, which is unusual.

I’m thinking it could be a core option. It is perfectly fine using 1494x1120 with the Genesis GX core (tested with Comix Zone and the scanlines are even). Though 1120 is a perfect 5x integer of 224, so I tried it with an N64 game with Mugen64Plus.

EDIT: Using Super Mario 64, I am still getting banding issues with CRT Apeture with integer scaling on, which I know shouldn’t be right. Not sure what is causing this.

1 Like

They look different :wink: Here is some example: NES TMT2 Roof. No border color at all in RGB but In NTSC color blending we have new colors on borders and windows which were not in the RGB at all. And fire sparkle look different. BTW Gamma seems ok because I copy my settings to the new crt-hyllian-ntsc preset

RGB

NTSC

and here is another example:

Here it is best seen how the columns at the bottom of the screen are rounded.

RGB

NTSC

Thank you Hyllian for NTSC version too!

1 Like

Additional test crt-curvature-ntsc with curvature at the crt pass (no moire artifact)

Big performance slow down (60 FPS vs 26 FPS) and strange flickering for me here.

Even when you down to zero parameters:

NOISE AMOUNT =0;

CURVATURE=0;

CRT-CURVATURE=0

image (phosphors) twitches or shaking… Maybe need to record video about flickering for better representation what happen on screen.

60 FPS in crt-hyllian-ntsc preset

26 FPS in crt-curvature-ntsc with curvature at the crt pass (no moire artifact)

The speed is because of the curvature pass, 99.999%.

I think, lol

Save your preset in these two tests and post here so that we can see whats is ON and OFF.

The phosphor shaking is caused by ntsc code. It’s a normal behavior.

Is there any reason to think that using a 2.4 gamma on the display and setting input/output in the shader to 2.4/2.4 will be better/more accurate than 2.2 on the display and 2.4/2.2 in the shader?

I’ve been experimenting with 2.4 gamma on my display and I might be fooling myself but I think the contrast ratio is a bit better.

For me, it should present the same results. The only reason for different results is if your monitor isn’t well calibrated in 2.4.

1 Like

Okay, good to know it should look the same. There’s probably some setting I missed when I re-did everything for 2.4. I should just go back to 2.2 for ease of use.

In theory, it should look the same. The shader output gamma must match your monitor gamma.

1 Like

Here is my preset, but I have 2 PC for test. One with Linux and second with Windows. Linux machine use GLcore for driver and Windows machine Vulkan. On Windows shader work well, problem appear on GLcore in linux.

Yes I know it and like that effect, but on linux machine with glcore in driver, even static image is shaking (without any noise)… something like 20-30 pixels displace left-right in one second.

shaders = "7"
shader0 = "shaders_slang/ntsc/shaders/ntsc-pass1-composite-3phase.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
frame_count_mod0 = "2"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "true"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "4.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/ntsc/shaders/ntsc-pass2-3phase-linear.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "true"
scale_type_x1 = "source"
scale_x1 = "0.500000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/crt-hyllian-curvature.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "CRTPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "viewport"
scale_x2 = "1.000000"
scale_type_y2 = "viewport"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/glow/threshold.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
shader4 = "shaders_slang/crt/shaders/glow/blur_horiz.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "source"
scale_x4 = "0.250000"
scale_type_y4 = "source"
scale_y4 = "0.250000"
shader5 = "shaders_slang/crt/shaders/glow/blur_vert.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "true"
shader6 = "shaders_slang/crt/shaders/glow/resolve.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
parameters = "BEAM_PROFILE;HFILTER_PROFILE;BEAM_MIN_WIDTH;BEAM_MAX_WIDTH;SCANLINES_STRENGTH;COLOR_BOOST;HFILTER_SHARPNESS;PHOSPHOR_LAYOUT;MASK_INTENSITY;CRT_ANTI_RINGING;InputGamma;OutputGamma;VSCANLINES;CRT_CURVATURE;CRT_warpX;CRT_warpY;CRT_cornersize;CRT_cornersmooth;GLOW_WHITEPOINT;GLOW_ROLLOFF;BLOOM_STRENGTH;OUTPUT_GAMMA;CURVATURE;warpX;warpY;cornersize;cornersmooth;noise_amt;shadowMask;maskDark;maskLight"
BEAM_PROFILE = "0.000000"
HFILTER_PROFILE = "0.000000"
BEAM_MIN_WIDTH = "0.680000"
BEAM_MAX_WIDTH = "1.000000"
SCANLINES_STRENGTH = "0.680000"
COLOR_BOOST = "1.250000"
HFILTER_SHARPNESS = "1.000000"
PHOSPHOR_LAYOUT = "1.000000"
MASK_INTENSITY = "0.700000"
CRT_ANTI_RINGING = "1.000000"
InputGamma = "1.000000"
OutputGamma = "1.000000"
VSCANLINES = "0.000000"
CRT_CURVATURE = "0.000000"
CRT_warpX = "0.031000"
CRT_warpY = "0.041000"
CRT_cornersize = "0.010000"
CRT_cornersmooth = "1000.000000"
GLOW_WHITEPOINT = "1.000000"
GLOW_ROLLOFF = "2.999999"
BLOOM_STRENGTH = "0.450000"
OUTPUT_GAMMA = "2.200000"
CURVATURE = "0.000000"
warpX = "0.031000"
warpY = "0.041000"
cornersize = "0.010000"
cornersmooth = "1000.000000"
noise_amt = "0.000000"
shadowMask = "0.000000"
maskDark = "0.500000"
maskLight = "1.500000"

That I can’t replicate as I don’t have linux. Unfortunately I can’t fix that issue.

Hey, Nesguy, have you seen this screenshot before?

What do you think of that mask?

I was thinking, does that crt method described in the link below good?

A CRT filter described four year ago.

2 Likes

it looks good super-zoomed but that stuff always falls apart once you zoom out enough that the monitor’s physical structure starts to interfere. p_malin’s meta_crt is a similar deal. Looks awesome in macro, looks meh at normal distance. :slight_smile:

2 Likes

I see. The illusion of stills again.

2 Likes

Here is crt-hyllian-sinc + kawase_glow + some parameters + camera :grin:

5 Likes