Please show off what crt shaders can do!

My god, he’s just now finishing up the wiring (probably be another 30-40 min.)

Looks great and am definitely going to take some cues from it when I go to do my build.

Sorry @sonkun @Nesguy, I didn’t get either of those things done. I’ll do them sometime after I wake up. (I’m going to die after the stream is done, lol.)

Also @sonkun if I’m not feeling like garbage when I wake, I’ll throw together something special for you to play around with. (@Nesguy you wouldn’t be interested most likely or I’d offer, lol.)

EDIT: I was bamboozled! He’s still not done, lol. Sleep will never come.

@Nesguy - looking great, but I feel the resolution is a bit low for that particular mask. Have you tried 6-7x?

Also it doesn’t really make sense to compare daylight brightness and a screen. That would be like saying that you want a 138dB soundsystem at home because concerts sound so good. Hi-nit tvs use that power to represent the brightest areas in a scene, usually in short bursts (explosions are a good example). You are not supposed to use your pc or play non-hdr content at those levels. Doing so by the way will definitely be uncomfortable and tiring. 10000 sustained nits will melt your retinas.

There’s an old rule that I tend to follow, that says that the ratio between a room’s brightness and a monitor should be 2:1. So for if you work and play in a 200 lux environment, 400 nits is good.

1 Like

Thanks.

I don’t think the resolution is low for this mask, it’s 270 TVL going by the phosphor size (4 pixels wide per phosphor triad, 1080 pixels since we use a circle to measure TVL). 270 TVL is like a 20” TV from the early 80s or something. How close do usually you sit from the display? (2-3 times the width of the display is recommended for SD content). This mask at 1440p will result in 360 TVL, which is also fine and decidedly less grungy. Don’t you like grungy displays, though?

As far as brightness goes, okay, bad comparison on my part and I was over-reaching in that reply but even 400 nits in a bright environment isn’t too much, which is about as bright as non-HDR displays can get. I just really feel that “adjusting the backlight is inconvenient” is just about the lamest reason I’ve ever heard. I really can’t fathom it. If you were frequently switching between playing a game and doing something else every 2-3 minutes it might make sense, but why would you be doing that? It takes, what, 30 seconds tops to adjust the backlight, maybe?

Everything else still stands. Turning up the backlight will give you the brightest possible whites, maximizing contrast and the dynamic range in the image, and it gives you maximum headroom for scanlines and mask effects (which inevitably reduce brightness by a significant amount). Reducing the scanline strength is not a good option because, as I’ve demonstrated numerous times, even fully maxed scanlines over dark colors still aren’t as strong as the scanlines over dark colors on a decent consumer-grade CRT.

PC ReShade screens, but wanted to share how CRT shaders make KOF XIII’s blurry filtered sprites look much better!

No ReShade :

Guest-Dr-Venom :

Guest-Dr-Venom :

CRT-Geom :

4 Likes

@DevilSingh Did you ever finish up the update for reshade venom? (I know you were doing some edits for the UI update I did for it and some other things, but haven’t heard anything about it since. Though I haven’t been on the reshade forums and haven’t looked in your thread on here in a while.)

Btw, that kof guest screen with scanlines and mask looks great.

1 Like

That mask at that resolution isn’t discernible at all at the correct viewing distance for SD content. Scanlines are okay but the width over bright colors should be reduced some to increase the dynamic range and depth IMO.

1 Like

@Syh quick question, what numbers do I have to tweak on the Radical Conv settings from your shader mod to make that effect cover the whole image instead of just the outer screen area? It’s more smoother on the edges than the center, that’s the intended effect I assume but I want that extra smoothness across the whole image

Are you are talking about the one with the added Luminance and Blur passes I sent you a while back? I just now recently started testing it (haven’t had much free time for the past month), the KOF XIII shots are a part of these tests.

1 Like

@sonkun Sorry I haven’t felt good today, ummmm I’m not sure maybe try to use the other deconvergence and see if that does more what you want.

@DevilSingh Honestly I’m not sure, mainly I was just seeing if the UI update was posted, lol. And I was just checking if reshade guest was in a more finalized state.

1 Like

I use that mask preset for two specific reasons -

  1. To make the low res textures in older games look good.

  2. I just LOVE the look of it!

I game on a 27 inch monitor which sits about 2-3 feet in front of me, so the mask is clearly visible to my eyes.

An example of the mask on low res textures :

For the scanlines I just copied Kurozumi’s preset to ReShade (it is my go-to for 2D games in RA).

Which settings should I change for dynamic range and depth?

2 Likes

Probably these settings? It’s his most recent one I’ve seen.

2 Likes

Yep, the settings @Syh linked to are the ones I’m reffering to.

You might have a little bit of room to play with scanline dark and scanline bright to expand the dynamic range futher (lowering scanline bright and raising scanline dark), but you’ll get soft clipping with anything more than a couple notches. Honestly, I would just leave these as-is (1.00 for both). Regarding bright boost, I wouldn’t go any lower than 0.50 with dark pixel bright boost and you may want to raise this a notch or two depending on how your display is configured. Bright pixel bright boost is a bit tricky. You can raise this all the way to 3.00 but this results in soft clipping and will most likely result in eye strain, and the high contrast together with the scanlines can play tricks on the eyes resulting in pseudo-aliasing, making the scanlines look like they lack a consistent width and/or spacing. Even 2.00 is probably too much, but again this will depend on how your display is configured and how bright it is to start with. You can also mitigate this somewhat by adding glow (glow strength 0.01 or 0.02, I wouldn’t go higher than this as it can start to look quite harsh). I need to play around with glow and bright pixel bright boost some more because I think the dynamic range can be expanded a bit more with these parameters.

Ideally, all color bars except 0 should be visible without eye strain and clearly distinguishable from each other. Intensity should rise in a linear fashion with roughly equal steps between shades.

On viewing distance:

“As a rule of thumb, the viewing distance should be roughly two to three times the screen size for standard definition (SD) displays.”

https://en.wikipedia.org/wiki/Large-screen_television_technology

We’re emulating an SD display, so you should take the width of the viewable 4:3 area on your display and multiply that by 2-3 to get the correct viewing distance.

Of course, one might counter that arcade monitors were ~27 inches and you were typically 2-3 feet from those when playing, taking the angle of the screen into consideration. One could counter this by saying that arcade games weren’t set up for the proper viewing distance for the content they were displaying and that you’re still better off sitting a bit further back so that the cognitive low-pass filter can do its job.

Personally, I find 240p content to be too harsh at such close distances, and I think this explains why people frequently add such excessive blur with shaders. If you scroll up to the comparisons made with the close up of Link that I posted, you’ll see that the combo of 3.00 for horizontal sharpness and 1.00 for subtractive sharpness is still not quite as sharp as the consumer-grade CRT, demonstrating that they were actually capable of being quite sharp, contrary to popular opinion. The 3.00/1.00 combo comes closer than anything else I’ve seen to a CRT’s sharpness/blur. I’m not saying it’s perfect, but it’s the standard to beat IMO.

2 Likes

Refined things a bit more, upped bright pixel bright boost a bit, glow is at 0. This expands the DR a bit compared to my previous settings. I think this is an improvement, what do you guys think? My eyes seem to be playing fewer tricks on me with these settings as well. The ideal settings for bright pixel bright boost and glow strength will probably vary from person to person given the differences in human visual acuity, viewing distance and how the display is configured.

I really should remove the stock passes, but on the other hand: if ain’t broke, don’t fix it.

shaders = "10"
shader0 = "shaders_slang/stock.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/stock.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/misc/grade.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "WhitePointPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "AfterglowPass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/blur_horiz.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/blur_vert.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/linearize_scanlines.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/crt-guest-dr-venom.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
parameters = "g_gamma_in;g_signal_type;g_gamma_type;g_crtgamut;g_space_out;g_hue_degrees;g_I_SHIFT;g_Q_SHIFT;g_I_MUL;g_Q_MUL;g_lum_fix;g_vignette;g_vstr;g_vpower;g_lum;g_cntrst;g_mid;wp_temperature;g_sat;g_satr;g_satg;g_satb;g_vibr;g_lift;blr;blg;blb;wlr;wlg;wlb;rg;rb;gr;gb;br;bg;LUT_Size1;LUT1_toggle;LUT_Size2;LUT2_toggle;SW;AR;PR;AG;PG;AB;PB;sat;lsmooth;GAMMA_INPUT;TAPSH;GLOW_FALLOFF_H;TAPSV;GLOW_FALLOFF_V;TATE;IOS;OS;BLOOM;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;h_sharp;s_sharp;csize;bsize;warpX;warpY;glow;shadowMask;masksize;vertmask;slotmask;slotwidth;double_slot;slotms;mcut;maskDark;maskLight;CGWG;gamma_out;spike;inter;interm;bloom;scans"
g_gamma_in = "2.400000"
g_signal_type = "1.000000"
g_gamma_type = "1.000000"
g_crtgamut = "2.000000"
g_space_out = "0.000000"
g_hue_degrees = "0.000000"
g_I_SHIFT = "0.000000"
g_Q_SHIFT = "0.000000"
g_I_MUL = "1.000000"
g_Q_MUL = "1.000000"
g_lum_fix = "0.000000"
g_vignette = "0.000000"
g_vstr = "40.000000"
g_vpower = "0.200000"
g_lum = "0.000000"
g_cntrst = "0.000000"
g_mid = "0.500000"
wp_temperature = "9305.000000"
g_sat = "0.000000"
g_satr = "0.000000"
g_satg = "0.000000"
g_satb = "0.000000"
g_vibr = "0.000000"
g_lift = "0.000000"
blr = "0.000000"
blg = "0.000000"
blb = "0.000000"
wlr = "1.000000"
wlg = "1.000000"
wlb = "1.000000"
rg = "0.000000"
rb = "0.000000"
gr = "0.000000"
gb = "0.000000"
br = "0.000000"
bg = "-0.005000"
LUT_Size1 = "16.000000"
LUT1_toggle = "0.000000"
LUT_Size2 = "64.000000"
LUT2_toggle = "0.000000"
SW = "1.000000"
AR = "0.070000"
PR = "0.050000"
AG = "0.070000"
PG = "0.050000"
AB = "0.070000"
PB = "0.050000"
sat = "0.100000"
lsmooth = "0.900000"
GAMMA_INPUT = "2.400000"
TAPSH = "4.000000"
GLOW_FALLOFF_H = "0.300000"
TAPSV = "4.000000"
GLOW_FALLOFF_V = "0.300000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "0.500000"
brightboost1 = "1.500001"
gsl = "2.000000"
scanline1 = "15.000000"
scanline2 = "5.000000"
beam_min = "1.000000"
beam_max = "1.000000"
beam_size = "0.000000"
h_sharp = "3.000000"
s_sharp = "1.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.020000"
shadowMask = "3.000000"
masksize = "1.000000"
vertmask = "0.000000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mcut = "0.250000"
maskDark = "0.500000"
maskLight = "1.500000"
CGWG = "0.300000"
gamma_out = "2.400000"
spike = "1.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.000000"
scans = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
3 Likes

I don’t feel like garbage today, so I’ll fix the stock passes for you at around 10 tonight (I think we’re in the same timezone).

Also I don’t think you’re using bloom in that preset you just posted. bloom and glow are at 0.0, unless I’m misreading your text post.

2 Likes

edit: posted the wrong preset, fixed it.

2 Likes

Hey where are you getting these shaders from? I tried to use some I found in a repo but they needed a lot of work. These look great. Link?

2 Likes

He has a thread for them in the off-topic part of the forum, I think that’s the part of the forum it’s in. (Edit: I was right.) He ported them, though guest he got some help from guest.r for.

Guest isn’t completely up-to-date in the thread, as he’s still working on it. (it’s completely usable though.)

Here’s the thread!

3 Likes

Tried playing around with those convergence settings and got the results I wanted but then ended with one side of the screen having a green hue and the other side having a red one lol. Not sure how to keep it the same way you have it set up but still smooth everything out, I’ll try again later

Got my arcade parts ordered, waiting on them to ship now. (Barely made the order before they ran out of PCB’s, lol. Within 1hr of my purchase they were sold out.)

EDIT: Says it’s been shipped, planning on ordering some extra odds and ends for it tonight. (I’m spending wayyyyy too much on this lol. And I’m still wanting to buy some stuff to make a custom wiring harness, which should run me another 20-40 ish. Going to hold off on ordering the harness stuff until I get everything else, hopefully shipping doesn’t take forever.)

Will post some pics when I finish the initial build and some more when I get the other parts I’m ordering tonight.

EDIT 2: Everything had been order besides wiring harness stuff. Smashed the wallet hard, back to being poor, lol.

2 Likes

I think you should start a new thread for this so that any useful information doesn’t get buried under an avalanche of screenshots :smile:

1 Like