Please show off what crt shaders can do!

I’ve been testing some set ups on the Nintendo switch, obviously I can’t go beyond 720p but I can’t get any good result for the SNES, is there anyone that have test some good options for the Nintendo switch in handheld mode? As for now, I’m using crt_caligari with 2x scale for the SNES, I’m aware that some options will not be available, but; can anyone come with a suggestion?? I will be happy to learn some new stuff

Finally fixed (half fixed) glass.slang so I could test it on my Sega Genesis preset, it goes along “grade” and also added venom’s afterglow to the stack. After I fix the remaining issues of glass I’d be pretty much done (let’s forget about ntsc-signal for a moment lol). The preset is in my repo.

6 Likes

5 Likes

Looks nice, crt-royale? Trying some new settings?

1 Like

Thanks,yes crt-royale and I changed some minimum values,like beam shape (min,max) from 2.000000 to 1.000000 beam spot power etc

3 Likes

I did a port of Guest-Dr-Venom for ReShade.

Here for those who want to check it out!

6 Likes

Did some experiments with correct viewing distances and masks at 1080p and, long story short, cgwg masks are out, Lottes stretched dot mask and guest-dr-venom slot mask are back in. Wooo!

Also showing off the latest update to Dogway’s grade shader. SMPTE-C gamma mode is looking pretty sweet!

Lottes: The Return

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_space_out;g_gamma_in;g_gamma_type;g_crtgamut;g_hue_degrees;g_I_SHIFT;g_Q_SHIFT;g_I_MUL;g_Q_MUL;g_vignette;g_vstr;g_vpower;wp_temperature;g_sat;g_vibr;g_lum;g_cntrst;g_mid;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_space_out = "0.000000"
g_gamma_in = "2.399999"
g_gamma_type = "2.000000"
g_crtgamut = "2.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_vignette = "0.000000"
g_vstr = "40.000000"
g_vpower = "0.200000"
wp_temperature = "9305.000000"
g_sat = "0.000000"
g_vibr = "0.000000"
g_lum = "0.000000"
g_cntrst = "0.000000"
g_mid = "0.500000"
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.200000"
TAPSH = "4.000000"
GLOW_FALLOFF_H = "0.000000"
TAPSV = "4.000000"
GLOW_FALLOFF_V = "0.000000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "2.000000"
scanline1 = "6.000000"
scanline2 = "9.000000"
beam_min = "1.000000"
beam_max = "1.000000"
beam_size = "0.000000"
h_sharp = "4.000000"
s_sharp = "0.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.000000"
shadowMask = "3.000000"
masksize = "1.000000"
vertmask = "0.000000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mcut = "0.000000"
maskDark = "0.500000"
maskLight = "1.500000"
CGWG = "0.000000"
gamma_out = "2.200000"
spike = "1.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.100000"
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"

I tested all the masks in guest-dr-venom at 1080p and made a list of which masks are good to use at each resolution. These are the masks you want to use if you want visible mask detail at correct viewing distances. I’ve omitted those that cause chromatic aberration and/or do weird things to gamma.

4 Likes

Been working on setting up my preset for other systems and vertical games as well, and I’m very happy with the results!

5 Likes

That bloom looks great in the second shot!

And I’m assuming the first is a DS shot, how’d you get it to look like that? (The full screen side by side.)

2 Likes

Looks great!

What shader is the vertical one, I noticed it has vertical scanlines.

2 Likes

I tried not to do too many screenshots this time.

Here’s some changes to my normal preset, after some tinkering around after seeing @Nesguy’s newest preset. Trying something sharper what I normally do, and little less dark. Playing around with deconvergence more, kinda liking what I have going on with it. Using grade to do some color management. Usually the moire in the image is nonexistent even when sitting still, I’m also usually using very light static/film grain that is fairly tiny in scale.

View at full screen and zoom or download to see what I mean about the moire, at 100% backlight I can only see it if I’m looking for the pattern, personally.

4 Likes

I don’t notice curvature-related moire in a still image. Once the screen starts scrolling it’s moire city, though.

I don’t really care for curvature anyway; I remember spending hours in the service menus trying to get all the lines straight on my CRTs to no avail and curvature just reminds me of that hell.

I also don’t recall any CRTs having such extreme curvature as that, but whatever floats your boat.

Is this Royale? I think I’ve more or less optimized guest-dr-venom; might be Royale’s turn next. De-convergence sounds like fun.

1 Like

This is Champloo-DX right? Can you post your preset!

1 Like

Nah, this is my nonsense guest-dr-venom venom chain, lol. I’m using x/y radial deconvergence on this.

I have to update in my repo, and update the champloo-dx-gr preset as well, so it’ll be a few day before I post the repo. Things to fix and update, lol.

3 Likes

Haven’t heard of it; how do I get it?

1 Like

I’ll post a link to my repo probably around this weekend as I need to do some more work and update my repo.

2 Likes

So my idea for vertical games was to simply rotate the virtual display and use my current 240p chain. It turned out to not be as simple as I thought. Also, I’m having a bit of a hard time getting perfectly lined up vertical scanlines and good ARs. 4:3 (3:4 actually, since the image is rotated) seems to be a good enough compromise.

So what I ended up doing:

FBA core options (.opt): fba-vertical-mode = “enabled”

Overrides (.cfg): screen_orientation = “1”

Image Adjustments shader: ia_FLIP_HORZ = “1.000000” ia_FLIP_VERT = “1.000000”

That should get you vertical scanlines with any crt shader on a non-rotated monitor :slight_smile:

What I now need in order for it to look exactly like a rotated version of my horizontal 240p settings is make the image 960x1280. I will try that next and come back with results. That should fix my distorted scanlines/mask.

@Syh - desmume_screens_layout = “right/left” (or left/right, depending on game)

Also, regarding your settings, I agree with Nesguy in that the curvature is a bit exaggerated. Also, that big-ish mask combined with the scanlines produces a grid that is made up of little squares and looks more like a portable system LCD than a CRT. I use a bit of grain too, makes the image more organic indeed!

@Nesguy - great images, basically flawless in fact. Don’t you feel you get a lot of pop/depth with the mask?

4 Likes

I’ll mess with the mask some and see what I can do. I could make the curvature a little less pronounced.

4 Likes

Yup, I think that coarse mask is way better!

1 Like