Please show off what crt shaders can do!

Just let me know, lol.

1 Like

Personally, I like the first one more. Glow should be used sparingly IMO. Colors seem a tad over saturated as well, and I’m a guy that likes my colors well-saturated.

I recommend adjusting the LCD backlight to 100%, that way you don’t have to add so much glow and saturation to have an adequately bright image. This raises the black level but maintains the contrast ratio because it raises contrast at the same time.

I also recommend a coarser mask since the cgwg aperture grille is 540 TVL @ 1080p. Arcade monitors were more like 300-400 TVL. Furthermore, that mask won’t be visible at correct viewing distances unless you have superhuman vision. The built-in slotmask with guest-dr-venom or Lottes stretched dotmask are the best ones to use at 1080p. There are a few in Easymode-halation that can also probably work but I can’t make any recommendations yet as I still need to do some tests.

@sonkun

Also with Android I’ve had issues with copying files before but could move them just fine.

I’ve concluded my tests with Easymode-halation and it results in some really weird-ass artifacts, so I can’t recommend it. Guest-dr-venom > Easymode-halation. Next up in my shader shoot-out: CRT Royale!

Easymode-halation weirdness. Only masks 1, 3, and 6 are suitable for 1080p (because reasons), and you get weird stuff regardless of mask type.

1 Like

Let me know what you think when you get a chance to check out that chain.

Just a heads-up the afterglow is on by default. And the afterglow and deconvergence settings names will look out of place with the rest of the chain, because I pulled these passes from my custom chain.

Sometime this weekend I’ll try and clean up some stuff in my main chain (the one I posted about awhile back), then I need to message guest.r about some questions/advice for something in the chain involving the mask. After I get that sorted out I’ll post it as well. (I would’ve done this sooner but I was kinda burnt out working on it, and the last couple of weeks I’ve been busy researching stuff for a fight stick build I should be doing in the next couple weeks. Waiting on a card in the mail, then I’ll be ordering parts.)

EDIT: Just got an email saying the card has been mailed, woot woot! (Ordered the card on Monday, lol.) Hopefully it’ll be here this upcoming Monday - Tuesday. So should have my parts before the end of the month.

Incase anyone is worrying I’m not getting a credit card, I’m getting one of those debit/credit cards that you load money onto. (So no going into debt, lol.)

EDIT2: Waiting on this card is giving me an ulcer, lol. They’re almost sold out on some of the parts I need. (4 sticks, and 14 PCB’s of the parts I need are in stock, I don’t need that many that’s just the current stock for the parts I need) This is giving me anxiety, lol.

1 Like

I gave the deconvergence a try and, IDK… it didn’t really help any with the pseudo-aliasing like I thought it would. Also noticing some weird stuff when a gradient is displayed. Check out the bottom left of the top row and the top right of the bottom row (circled). What is up with that?

Meanwhile, check out the convergence on this consumer CRT. It’s nearly perfect, just a bit of blue here and there near the edges.

And here’s a PVM. Perfect.

1 Like

🤷, lol.

I didn’t write the code (just decoupled it from mame-hlsl) and I’m not sure how actual deconvergence is supposed to look and/or function, and I’m not sure how accurate this shader is to proper deconvergence.

1 Like

I’m back to using the Lottes stretched dot mask because my eyes don’t add any pseudo-aliasing when using this mask, unlike the guest-dr-venom slotmask. This allows me to disable the glow, which I never really liked that much. All displays already have glow, especially if you crank up the LCD backlight, making the artificial glow look, well… artificial.

EDIT: I think a glow setting of 0.01 with the other glow settings at the default values might be acceptable but now we’re getting into subjective preferences. I definitely wouldn’t go any higher than the default of 0.02 as it can start to cause some pretty severe eye strain at higher values (in my experience). This is something that the individual should tweak to personal preference.

I still need to test CRT-Lottes and CRT-Royale, but the following settings are better than literally every other shader in terms of objective picture quality (dynamic range, sharpness, etc). You might be able to raise scanline dark or lower scanline bright by a notch or two but you’ll get some “soft” clipping if you do this (rolling the higher values and making the high end somewhat flat); any more than a couple notches will likely result in hard clipping.

For best results, adjust backlight to 100%. 5x vertical scale is recommended.

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.500000"
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 = "-1.000000"
masksize = "1.000000"
vertmask = "0.000000"
slotmask = "0.500000"
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"
4 Likes

@Nesguy Later tonight I’m going to make you a guest chain with grade in it so I can stop looking at those damn stock passes, lol.

2 Likes

Finally got around to using your guest-grade-deconvergence mod preset and I gotta say I like how it smooths over the whole image, I was actually aiming for that effect and was gonna simply lower the subtractive sharpness down to either .10 or 0 within guest to get a similar look but your mod pretty much does what I was trying to do. Here’s some comparison shots:

This is my default preset of just guest and grade, the only tweaks made are Phoshor at -4.00, Vignette toggle off, raster bloom % at 7.00, horizontal sharpness at 2.00, curvature enabled, crt mask at 5.00, Interlace mode at 2.00. Everything else is left default:

This one is the same settings as above but with the deconvergence mod you posted, I made all of the x Radical Conv X Blue/Red to 1.25 and the Green to -1.25:

Here’s a couple more before and after shots:

The next two shots are settings I seen @nesguy recommend. This one is with the crt mask 3.00 lottes:

This shot is with the crt mask disabled but with the slot mask turned up to.50, any number higher than that and the colors start looking too washed out:

Also @nesguy, in the end I ended up ditching that second shot with the added glow/bloom, all I really used it for was to smooth the overal image which @Syh helped me with with his modded preset, I also raised up the Scanline Dark setting to 2.00 in that preset which added some extra saturation that I didn’t really want. As for your suggestions they’re ok but I’m not looking to constantly have to turn my backlight tv settings up and down when I’m finished gaming, just looking to make a shder where I set it and forget it. Doesn’t have to be crt accurate just good enough for my eyes. Lottes and Slotmask are nice options though.

4 Likes

Finally got it working on Android? If so what fixed it lol.

Shots look nice and I’m happy you got looking like you wanted!

I copied and pasted the files individually into each location instead of just trying to merge the whole folder, that’s how I always did it in the past lol. But yes it definitely brings a nice vibe to the overall image, I can probably forget about trying to get that mod preset in glsl form though. I just noticed I’m missing a shot up there let me fix that lol

1 Like

Ehh, when I get some free time, lol. I’ll try and get you a glsl version of the chain. I just got to do a glsl version of mame-deconverge for it.

It’s ok, I know converting shaders is a pain in the ass espesially glsl, I just need it for Saturn and N64. I’ll just try to mimic the guest stock-image adjustment glsl shader chain I been using as close as possible lol

1 Like

Mame-deconverge already exists in glsl, I just have to do about 5-10 minutes of work for it to be usable for this.

It’s not a big deal, lol. I’m just watching a live stream of a fightstick build right now, so it’ll be sometime after that’s over before I get to working on it lol.

1 Like

No worries at all lol. I’ll be around whenever you decide to post it up

1 Like

Knowing me… It’ll probably be 8-12 hrs from now lol. (I’m horrible about doing stuff in a timely manner, :joy:)

1 Like

lol, I don’t get why people think this is such a big deal, it’s literally just: pick up remote, push a button, put down remote.

At least give it a try and you’ll see that it boosts the contrast by a significant amount and makes a huge difference in the dynamic range of the image, something that CRTs excelled at compared to LCDs.

Furthermore, there’s no reason at all why you can’t just leave the backlight at 100% all the time. It will not cause any significant additional eye strain, if that’s your concern.

To put this in perspective, when you go outside on a moderately sunny day it’s like 8,000 nits. :stuck_out_tongue:

1 Like

Personally it a medium deal to me, as I don’t want to dick with getting into me TV settings everytime I emulate. (My TV is stupid it takes about 30-45 seconds to get where I need to and crank the backlight up.)

It’s just inconvenient tbh, that being said my TV has individual settings for each input, so I just have it cranked for my PC input, lol.

I can’t go outside without sunglasses lol, shit blinds me. (I’m squinting do hard it looks like I’m trying to read fine print, :joy:)

2 Likes

Ah yeah there’s also different settings for different inputs, which makes this even more of a non-issue.

An overcast day is still like 5,000 nits.

https://www.winmate.com/sunlight_readable.asp

Bottom line is that your display with the backlight maxed out isn’t coming anywhere close to what’s required to cause eye strain.

1 Like