Please show off what crt shaders can do!

Yeah I’m using slang. Also this is the preset I’m using right here if you wanna whip something up with 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 = "-4.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 = "6505.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.000000"
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 = "7.000000"
brightboost = "1.400000"
brightboost1 = "1.150000"
gsl = "0.000000"
scanline1 = "6.000000"
scanline2 = "8.000000"
beam_min = "1.350000"
beam_max = "1.050000"
beam_size = "0.700000"
h_sharp = "2.000000"
s_sharp = "0.400000"
csize = "0.010000"
bsize = "600.000000"
warpX = "0.030000"
warpY = "0.040000"
glow = "0.020000"
shadowMask = "5.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 = "0.500000"
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"

By the way does the glsl version of grade load up for you? Whenever I try to apply it I get a failed message. I need the glsl grade shader version for the Saturn and N64 cores since those are the only drivers I get good results with when using the mupen and yaba sanshiro cores for those two systems, maybe it’s just because I’m using a Android don’t know. Never tried the glass shader but maybe sometime in the future.

1 Like

I haven’t messed with the glsl version of grade in a bit did you make sure to have this in your glsl preset?

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"
1 Like

Yeah I got that at the bottom of my guest shader but the problem is I can’t even get grade glsl shader to load up even on it’s own with no chain involved at all, I just get a failed message.

1 Like

I’d need a log to figure out the issue, if I even can.

I couldn’t post it directly here because it had too many characters but here’s a link to the log assuming I did the log right:

https://pastebin.com/cNqsNGPT

I’m not really trying to recreate any particular CRT since I think that’s mostly a fool’s errand and kind of pointless, I just want the best possible picture quality using CRT effects, which means using the effects in a way that enhances the dynamic range. It’s very easy to test this by looking at color bars in an image editor and measuring the luminance values of the darkest and brightest shades. I think I’ve maximized the dynamic range with guest-dr-venom and now I’m moving on to other shaders to see if I can top it. I’m currently working on easymode-halation. I plan on doing Royale next but it’s a pretty finicky shader.

CRTs had very superior contrast ratios and that’s what’s lacking the most when you play these games on an LCD.

1 Like

I’ll mess with that when I get a few in a bit.

Here’s a zip with the deconvergence shader and guest preset. You’ll have to re-do you’re settings. Just unzip it and copy and paste at the base of the shaders_slang folder, let it merge with the crt shader folder.

http://www.mediafire.com/file/vlhy63dog0o7oi4/crt.7z/file

You need to use this whole folder, Nothing major is changed via code. Just some stuff to make things work properly. (It’s just internal pointing stuff changed in the passes, if I changed anything.)

Ok and for some reason I can’t even paste your folder, getting some error that has to be something on my end. In the meantime I’d rather see a pic of of your shader preset first anyway, no point in me mixing and merging things if I may not even like how it looks in the end.

1 Like

The preset is just base guest without the stock passes, grade and a deconvergence pass added. (Grade is set to default, and deconvergence isn’t doing anything unless you edit the settings.)

So it just looks like guest-dr-venom with grade, lol.

Are you doing this on PC or Android?

Android, I know it’s a problem on my end, welcome to Android lol. I’ll get to the bottom of it eventually

1 Like

Might be the file manager you’re using, or the version of Android as certain 4.# versions of Android are picky about stuff being moved and stuff.

Try 7zipper or MiXplorer. (Those work pretty well for me, I primarily use MiXplorer, I think you have to download from XDA though.)

1 Like

@sonkun

Here’s a couple of screens. (Its using purple/green radial deconvergence, Its not set very high, for the x its set to 1.50 for red/blue, and green is at -1.50, The y is set to 0.50 for the red/blue and green is -0.50. Everything is set to default besides setting the deconvergence in these shots.)

EDIT: I could probably lower the x settings to be between 1.00-1.25. The deconvergence shader is in the MediaFire link that I posted, it’s mame-hlsl’s deconvergence pass that I decoupled from mame.

4 Likes

What sharpness settings are you using with guest? I think subtractive sharpness 1.00 and horizontal sharpness 3.00 most closely approximates CRT behavior.

Deconvergence is interesting though. I might try that in lieu of glow to reduce the pseudo-aliasing that my aging gamer eyes are adding to the image.

Grade and guest are at default values. (I didn’t want to do my own values for demonstrating the deconvergence.)

Honestly I’d keep the glow but lower it some and use both the deconvergence and glow, I think you’ll get a better image doing it this way, imho.

1 Like

I should read things more carefully :laughing:

1 Like

I retroactively do edits to things so much that it’s hard to tell which copy you’ve read sometimes, lol.

Like I made an edit to my last post after you made yours.

1 Like

Oh, no worries. I’m the edit king around here, I think.

1 Like

@Nesguy

But yeah if was I you, I’d check out that MediaFire chain I posted.

Again as I already said, I wouldn’t remove the glow completely if I was you maybe lower it some or leave it where you’ve been setting it. And I’d recommend purple/green deconvergence.

You can use radial or (linear?). I personally use radial. For your X I’d do somewhere between 0.75-1.25 (you may end up going lower than that, 🤷) for the red/blue and the same for green but put it in the negative (if that makes sense.) The y axis is completely up to you, but I think it looks better with some (granted at a way lower value then your X deconvergence.)

EDIT: All the shaders in the MediaFire link should be up-to-date. (I know for certain grade and the deconvergence pass are, and fairly sure the guest passes are as well.)

1.0 for X and 0.25-0.35 for Y should probably look pretty nice.

1 Like

Yeah it might be that I need another file app, I’ll try again some other time with that though. I went back and tweaked my grade-guest shader preset again. Here’s some comparison pics. The first one is the same exact settings as my last shot:

This one I cranked up the glow, bloom and tweaked some other things to give the image a softer look:

This one is the same as the second shot but I added in image adjustment to the chain and put some film grain on it for a older school feel:

https://imgur.com/upload

Had to upload that one there cause the file was too big. By the way did you find out what’s going on with the grade glsl log I posted?

2 Likes

I didn’t see any errors when I looked over it, but I skimmed it. I’ll look over it again in a few.

I’ve had file managers be the issue when moving stuff before lol.

1 Like