New CRT shader from Guest + CRT Guest Advanced updates

After switching to Mask 12 did you also change the Mask Size to 1? Also did you change the width to 7 from 8?

The screenshots look good! You have a good eye to be able to so closely match your reference CRT!

No, I use size 1 for 4k, I use width of 7 height 3… Thanks a lot. I help myself making closeup photos from my mobile phone with the macro camera… :sweat_smile:

2 Likes

I don’t think there’s anything particularly unique about HD CRT masks. The model Linus shows off in that video has a Hi-Scan tube, which should resolve around 847 vertical lines and thus would put it at a TVL count of about 476 if I’m not mistaken, which is good but nothing mind-blowing. A later Super Fine Pitch model, by contrast, would resolve about 1400 lines all the way across, thus putting it at about 787 TVL, putting it squarely in higher-end PVM territory in this regard.

Really, the thing that differentiates HD CRTs is that they only really work in 480p and 1080i, and even 480p is actually 540p with extra overscan to crop off 30 lines off both the top and bottom. All resolutions they accept, then, are made to fit onto one of these two molds. 240p was usually line-doubled, and then either displayed as 480p or scaled to 960i depending on the TV setting. Same with 480i: either deinterlaced into 480p or upscaled into 960i. 720p was upconverted into 1080i. Only 480p and 1080i were displayed natively or close to it.

If you really wanted to replicate how an HD CRT would look, closest thing would be to choose either a 450 or 800 TVL mask depending on whether you’re emulating a Hi-Scan or SFP tube. 480p content should look quite nicely on a 4K screen just with that alone (and in fact, it does: I’ve tested games on the Dolphin core, and it looks VERY close to my old Sony 30XS955). For 240p content, you’d have to scale it by 2x first to more or less get it to look like it would on an HD CRT.

4 Likes

I really meant to type 1 instead of 2 so I corrected it.

I asked about this because I saw slotwidth = "8.000000" in the preset you shared that used Mask 10.

Yes, mask 10 is width of 8, but today after making a closeup to my CRT I realized, that the black gaps were too big, so mask 12 is the correct one. I’m really happy… :grinning:

2 Likes

Nice preset. Care to share?

2 Likes

Sorry for the silly question… But can’t find the short preset to copy the new preset I posted last night… Where is supposed to be? what’s the file called?..

1 Like

Simple Presets are usually saved in the RetroArch/Shaders folder by default.

It’s called <whatever you named it>.slangp.

1 Like

Well the list is huge. simple preset is on. But is saves like this…

> shaders = "42"
> shader0 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-add-params-glass.slang"
> wrap_mode0 = "clamp_to_border"
> mipmap_input0 = "false"
> alias0 = "CorePass"
> float_framebuffer0 = "false"
> srgb_framebuffer0 = "false"
> shader1 = "shaders_slang/stock.slang"
> filter_linear1 = "false"
> wrap_mode1 = "clamp_to_border"
> mipmap_input1 = "false"
> alias1 = "DerezedPass"
> float_framebuffer1 = "false"
> srgb_framebuffer1 = "true"
> scale_type_x1 = "source"
> scale_x1 = "1.000000"
> scale_type_y1 = "source"
> scale_y1 = "1.000000"
> shader2 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-add-negative-crop-area.slang"
> filter_linear2 = "false"
> wrap_mode2 = "clamp_to_border"
> mipmap_input2 = "false"
> alias2 = "NegativeCropAddedPass"
> float_framebuffer2 = "false"
> srgb_framebuffer2 = "true"
> scale_type_x2 = "source"
> scale_x2 = "1.000000"
> scale_type_y2 = "source"
> scale_y2 = "1.000000"
> shader3 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-cache-info-screen-scale-params.slang"
> filter_linear3 = "false"
> wrap_mode3 = "clamp_to_border"
> mipmap_input3 = "false"
> alias3 = "InfoCachePass"
> 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/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-text-adv-glass.slang"
> filter_linear4 = "false"
> wrap_mode4 = "clamp_to_border"
> mipmap_input4 = "false"
> alias4 = "TextPass"
> 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/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-intro.slang"
> filter_linear5 = "false"
> wrap_mode5 = "clamp_to_border"
> mipmap_input5 = "false"
> alias5 = "IntroPass"
> 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/stock.slang"
> wrap_mode6 = "clamp_to_border"
> mipmap_input6 = "false"
> alias6 = "PreDeDitheringPass"
> float_framebuffer6 = "false"
> srgb_framebuffer6 = "false"
> shader7 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass0.slang"
> wrap_mode7 = "clamp_to_border"
> mipmap_input7 = "false"
> alias7 = ""
> float_framebuffer7 = "false"
> srgb_framebuffer7 = "false"
> shader8 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass1.slang"
> wrap_mode8 = "clamp_to_border"
> mipmap_input8 = "false"
> alias8 = ""
> float_framebuffer8 = "false"
> srgb_framebuffer8 = "false"
> shader9 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass2.slang"
> wrap_mode9 = "clamp_to_border"
> mipmap_input9 = "false"
> alias9 = ""
> float_framebuffer9 = "false"
> srgb_framebuffer9 = "false"
> shader10 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass3.slang"
> wrap_mode10 = "clamp_to_border"
> mipmap_input10 = "false"
> alias10 = ""
> float_framebuffer10 = "false"
> srgb_framebuffer10 = "false"
> shader11 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass4.slang"
> wrap_mode11 = "clamp_to_border"
> mipmap_input11 = "false"
> alias11 = ""
> float_framebuffer11 = "false"
> srgb_framebuffer11 = "false"
> shader12 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-ps1dither/hsm-PS1-Undither-BoxBlur.slang"
> wrap_mode12 = "clamp_to_border"
> mipmap_input12 = "false"
> alias12 = ""
> float_framebuffer12 = "true"
> srgb_framebuffer12 = "false"
> shader13 = "shaders_slang/stock.slang"
> wrap_mode13 = "clamp_to_border"
> mipmap_input13 = "false"
> alias13 = "refpass"
> float_framebuffer13 = "false"
> srgb_framebuffer13 = "false"
> shader14 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass0.slang"
> filter_linear14 = "false"
> wrap_mode14 = "clamp_to_border"
> mipmap_input14 = "false"
> alias14 = "scalefx_pass0"
> float_framebuffer14 = "true"
> srgb_framebuffer14 = "false"
> scale_type_x14 = "source"
> scale_x14 = "1.000000"
> scale_type_y14 = "source"
> scale_y14 = "1.000000"
> shader15 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass1.slang"
> filter_linear15 = "false"
> wrap_mode15 = "clamp_to_border"
> mipmap_input15 = "false"
> alias15 = ""
> float_framebuffer15 = "false"
> srgb_framebuffer15 = "false"
> scale_type_x15 = "source"
> scale_x15 = "1.000000"
> scale_type_y15 = "source"
> scale_y15 = "1.000000"
> shader16 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass2.slang"
> filter_linear16 = "false"
> wrap_mode16 = "clamp_to_border"
> mipmap_input16 = "false"
> alias16 = ""
> float_framebuffer16 = "false"
> srgb_framebuffer16 = "false"
> scale_type_x16 = "source"
> scale_x16 = "1.000000"
> scale_type_y16 = "source"
> scale_y16 = "1.000000"
> shader17 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass3.slang"
> filter_linear17 = "false"
> wrap_mode17 = "clamp_to_border"
> mipmap_input17 = "false"
> alias17 = ""
> float_framebuffer17 = "false"
> srgb_framebuffer17 = "false"
> scale_type_x17 = "source"
> scale_x17 = "1.000000"
> scale_type_y17 = "source"
> scale_y17 = "1.000000"
> shader18 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass4.slang"
> filter_linear18 = "false"
> wrap_mode18 = "clamp_to_border"
> mipmap_input18 = "false"
> alias18 = ""
> float_framebuffer18 = "false"
> srgb_framebuffer18 = "false"
> scale_type_x18 = "source"
> scale_x18 = "3.000000"
> scale_type_y18 = "source"
> scale_y18 = "3.000000"
> shader19 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-gtu/hsm-gtu-pass1.slang"
> wrap_mode19 = "clamp_to_border"
> mipmap_input19 = "false"
> alias19 = ""
> float_framebuffer19 = "true"
> srgb_framebuffer19 = "false"
> scale_type_x19 = "source"
> scale_x19 = "1.000000"
> scale_type_y19 = "source"
> scale_y19 = "1.000000"
> shader20 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-gtu/hsm-gtu-pass2.slang"
> filter_linear20 = "false"
> wrap_mode20 = "clamp_to_border"
> mipmap_input20 = "false"
> alias20 = ""
> float_framebuffer20 = "true"
> srgb_framebuffer20 = "false"
> scale_type_x20 = "source"
> scale_x20 = "1.000000"
> scale_type_y20 = "source"
> scale_y20 = "1.000000"
> shader21 = "shaders_slang/stock.slang"
> wrap_mode21 = "clamp_to_border"
> mipmap_input21 = "false"
> alias21 = "PreCRTPass"
> float_framebuffer21 = "false"
> srgb_framebuffer21 = "false"
> shader22 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-afterglow0.slang"
> filter_linear22 = "true"
> wrap_mode22 = "clamp_to_border"
> mipmap_input22 = "false"
> alias22 = "AfterglowPass"
> float_framebuffer22 = "false"
> srgb_framebuffer22 = "false"
> scale_type_x22 = "source"
> scale_x22 = "1.000000"
> scale_type_y22 = "source"
> scale_y22 = "1.000000"
> shader23 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-pre-shaders-afterglow.slang"
> filter_linear23 = "true"
> wrap_mode23 = "clamp_to_border"
> mipmap_input23 = "true"
> alias23 = ""
> float_framebuffer23 = "false"
> srgb_framebuffer23 = "false"
> scale_type_x23 = "source"
> scale_x23 = "1.000000"
> scale_type_y23 = "source"
> scale_y23 = "1.000000"
> shader24 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-dogway/hsm-grade.slang"
> filter_linear24 = "true"
> wrap_mode24 = "clamp_to_border"
> mipmap_input24 = "false"
> alias24 = ""
> float_framebuffer24 = "false"
> srgb_framebuffer24 = "false"
> scale_type_x24 = "source"
> scale_x24 = "1.000000"
> scale_type_y24 = "source"
> scale_y24 = "1.000000"
> shader25 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-custom-fast-sharpen.slang"
> filter_linear25 = "true"
> wrap_mode25 = "clamp_to_border"
> mipmap_input25 = "false"
> alias25 = ""
> float_framebuffer25 = "false"
> srgb_framebuffer25 = "false"
> scale_type_x25 = "source"
> scale_x25 = "1.000000"
> scale_type_y25 = "source"
> scale_y25 = "1.000000"
> shader26 = "shaders_slang/stock.slang"
> filter_linear26 = "true"
> wrap_mode26 = "clamp_to_border"
> mipmap_input26 = "true"
> alias26 = "PrePass"
> float_framebuffer26 = "false"
> srgb_framebuffer26 = "false"
> scale_type_x26 = "source"
> scale_x26 = "1.000000"
> scale_type_y26 = "source"
> scale_y26 = "1.000000"
> shader27 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-avg-lum.slang"
> filter_linear27 = "true"
> wrap_mode27 = "clamp_to_border"
> mipmap_input27 = "true"
> alias27 = "AvgLumPass"
> float_framebuffer27 = "false"
> srgb_framebuffer27 = "false"
> scale_type_x27 = "source"
> scale_x27 = "1.000000"
> scale_type_y27 = "source"
> scale_y27 = "1.000000"
> shader28 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-interlace-and-linearize.slang"
> filter_linear28 = "true"
> wrap_mode28 = "clamp_to_border"
> mipmap_input28 = "false"
> alias28 = "LinearizePass"
> float_framebuffer28 = "true"
> srgb_framebuffer28 = "false"
> scale_type_x28 = "source"
> scale_x28 = "1.000000"
> scale_type_y28 = "source"
> scale_y28 = "1.000000"
> shader29 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-gaussian_horizontal.slang"
> filter_linear29 = "true"
> wrap_mode29 = "clamp_to_border"
> mipmap_input29 = "false"
> alias29 = ""
> float_framebuffer29 = "true"
> srgb_framebuffer29 = "false"
> scale_type_x29 = "absolute"
> scale_x29 = "800"
> scale_type_y29 = "source"
> scale_y29 = "1.000000"
> shader30 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-gaussian_vertical.slang"
> filter_linear30 = "true"
> wrap_mode30 = "clamp_to_border"
> mipmap_input30 = "false"
> alias30 = "GlowPass"
> float_framebuffer30 = "true"
> srgb_framebuffer30 = "false"
> scale_type_x30 = "absolute"
> scale_x30 = "800"
> scale_type_y30 = "absolute"
> scale_y30 = "600"
> shader31 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-bloom_horizontal.slang"
> filter_linear31 = "true"
> wrap_mode31 = "clamp_to_border"
> mipmap_input31 = "false"
> alias31 = ""
> float_framebuffer31 = "true"
> srgb_framebuffer31 = "false"
> scale_type_x31 = "absolute"
> scale_x31 = "800"
> scale_type_y31 = "absolute"
> scale_y31 = "600"
> shader32 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-bloom_vertical.slang"
> filter_linear32 = "true"
> wrap_mode32 = "clamp_to_border"
> mipmap_input32 = "false"
> alias32 = "BloomPass"
> float_framebuffer32 = "true"
> srgb_framebuffer32 = "false"
> scale_type_x32 = "source"
> scale_x32 = "1.000000"
> scale_type_y32 = "source"
> scale_y32 = "1.000000"
> shader33 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-crt-guest-advanced.slang"
> filter_linear33 = "true"
> wrap_mode33 = "clamp_to_border"
> mipmap_input33 = "false"
> alias33 = ""
> float_framebuffer33 = "true"
> srgb_framebuffer33 = "false"
> scale_type_x33 = "viewport"
> scale_x33 = "1.000000"
> scale_type_y33 = "viewport"
> scale_y33 = "1.000000"
> shader34 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-deconvergence.slang"
> filter_linear34 = "true"
> wrap_mode34 = "clamp_to_border"
> mipmap_input34 = "false"
> alias34 = ""
> float_framebuffer34 = "false"
> srgb_framebuffer34 = "false"
> scale_type_x34 = "viewport"
> scale_x34 = "1.000000"
> scale_type_y34 = "viewport"
> scale_y34 = "1.000000"
> shader35 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-post-crt-prep-glass.slang"
> wrap_mode35 = "clamp_to_border"
> mipmap_input35 = "false"
> alias35 = "MBZ_PostCRTPass"
> float_framebuffer35 = "false"
> srgb_framebuffer35 = "false"
> shader36 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-linearize-crt.slang"
> filter_linear36 = "true"
> wrap_mode36 = "clamp_to_border"
> mipmap_input36 = "true"
> alias36 = "BR_MirrorLowResPass"
> float_framebuffer36 = "false"
> srgb_framebuffer36 = "false"
> scale_type_x36 = "absolute"
> scale_x36 = "800"
> scale_type_y36 = "absolute"
> scale_y36 = "600"
> shader37 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-blur-outside-screen-horiz.slang"
> filter_linear37 = "true"
> wrap_mode37 = "clamp_to_border"
> mipmap_input37 = "true"
> alias37 = ""
> float_framebuffer37 = "false"
> srgb_framebuffer37 = "false"
> shader38 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-blur-outside-screen-vert.slang"
> filter_linear38 = "true"
> wrap_mode38 = "clamp_to_border"
> mipmap_input38 = "false"
> alias38 = "BR_MirrorBlurredPass"
> float_framebuffer38 = "false"
> srgb_framebuffer38 = "false"
> shader39 = "shaders_slang/blurs/blur9x9.slang"
> filter_linear39 = "true"
> wrap_mode39 = "clamp_to_border"
> mipmap_input39 = "true"
> alias39 = "BR_MirrorReflectionDiffusedPass"
> float_framebuffer39 = "false"
> srgb_framebuffer39 = "false"
> scale_type_x39 = "absolute"
> scale_x39 = "128"
> scale_type_y39 = "absolute"
> scale_y39 = "128"
> shader40 = "shaders_slang/blurs/blur9x9.slang"
> filter_linear40 = "true"
> wrap_mode40 = "clamp_to_border"
> mipmap_input40 = "true"
> alias40 = "BR_MirrorFullscreenGlowPass"
> float_framebuffer40 = "false"
> srgb_framebuffer40 = "false"
> scale_type_x40 = "absolute"
> scale_x40 = "12"
> scale_type_y40 = "absolute"
> scale_y40 = "12"
> shader41 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-reflection-glass.slang"
> wrap_mode41 = "clamp_to_border"
> mipmap_input41 = "false"
> alias41 = "BR_CRTAndReflectionPass"
> float_framebuffer41 = "false"
> srgb_framebuffer41 = "false"
> scale_type_x41 = "viewport"
> scale_x41 = "1.000000"
> scale_type_y41 = "viewport"
> scale_y41 = "1.000000"
> GAMMA_INPUT = "2.200000"
> post_br = "2.499999"
> HSM_ASPECT_RATIO_MODE = "6.000000"
> HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = "500.000000"
> HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = "30.000000"
> HSM_FAKE_SCANLINE_CURVATURE = "100.000000"
> HSM_SCREEN_VIGNETTE_STRENGTH = "20.000000"
> HSM_SCREEN_VIGNETTE_POWER = "4.000000"
> HSM_SCREEN_VIGNETTE_IN_REFLECTION = "0.000000"
> HSM_TUBE_BLACK_EDGE_SHARPNESS = "90.000000"
> HSM_TUBE_BLACK_EDGE_THICKNESS = "-7.000000"
> HSM_BZL_WIDTH = "3000.000000"
> HSM_BZL_HEIGHT = "3000.000000"
> HSM_BZL_INNER_CORNER_RADIUS_SCALE = "100.000000"
> HSM_BZL_INNER_EDGE_THICKNESS = "350.000000"
> HSM_BZL_INNER_EDGE_SHARPNESS = "30.000000"
> HSM_BZL_INNER_EDGE_SHADOW = "0.000000"
> HSM_REFLECT_CORNER_FADE = "0.000000"
> HSM_REFLECT_GLOBAL_AMOUNT = "35.000000"
> HSM_REFLECT_GLOBAL_GAMMA_ADJUST = "0.900000"
> HSM_REFLECT_FULLSCREEN_GLOW = "30.000000"
> HSM_REFLECT_FULLSCREEN_GLOW_GAMMA = "1.500000"
> HSM_REFLECT_BEZEL_INNER_EDGE_AMOUNT = "60.000000"
> HSM_REFLECT_FADE_AMOUNT = "20.000000"
> HSM_REFLECT_RADIAL_FADE_WIDTH = "500.000000"
> HSM_REFLECT_RADIAL_FADE_HEIGHT = "300.000000"
> HSM_REFLECT_LATERAL_OUTER_FADE_POSITION = "500.000000"
> HSM_REFLECT_BLUR_MIN = "30.000000"
> HSM_REFLECT_BLUR_MAX = "60.000000"
> HSM_REFLECT_NOISE_AMOUNT = "100.000000"
> HSM_REFLECT_NOISE_SAMPLES = "4.000000"
> HSM_REFLECT_NOISE_SAMPLE_DISTANCE = "15.000000"
> HSM_GLASS_BORDER_ON = "1.000000"
> HSM_BG_OPACITY = "1.000000"
> MDAPT_MODE = "1.000000"
> HSM_SCALEFX_ON = "1.000000"
> CP = "5.000000"
> TNTC = "4.000000"
> g_signal_type = "0.000000"
> g_crtgamut = "1.000000"
> g_sat = "0.400000"
> SIZEH = "1.000000"
> SIGMA_H = "0.400000"
> SIZEV = "1.000000"
> SIGMA_V = "0.400000"
> bloom = "0.900000"
> bloom_dist = "1.999999"
> halation = "0.100000"
> SIGMA_HB = "0.400000"
> SIGMA_VB = "0.400000"
> brightboost1 = "1.400000"
> scanline1 = "5.000000"
> scanline2 = "7.000000"
> beam_min = "1.400000"
> beam_max = "1.100000"
> beam_size = "0.750000"
> scans = "0.650000"
> scangamma = "0.750000"
> s_sharp = "1.000000"
> shadowMask = "12.000000"
> maskstr = "1.000000"
> mcut = "2.000000"
> slotmask = "1.000000"
> slotmask1 = "1.000000"
> slotwidth = "7.000000"
> double_slot = "3.000000"
> mclip = "1.000000"
> GDV_DECONVERGENCE_ON = "1.000000"
> deconrr = "-1.250000"
> deconrb = "1.250000"
> deconrry = "-1.250000"
> deconrby = "1.250000"
> noiseresd = "1.000000"
> noisetype = "1.000000"
> textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage"
> SamplerLUT1 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/trinitron-lut.png"
> SamplerLUT1_linear = "true"
> SamplerLUT1_wrap_mode = "clamp_to_border"
> SamplerLUT1_mipmap = "false"
> SamplerLUT2 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/inv-trinitron-lut.png"
> SamplerLUT2_linear = "true"
> SamplerLUT2_wrap_mode = "clamp_to_border"
> SamplerLUT2_mipmap = "false"
> SamplerLUT3 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/nec-lut.png"
> SamplerLUT3_linear = "true"
> SamplerLUT3_wrap_mode = "clamp_to_border"
> SamplerLUT3_mipmap = "false"
> SamplerLUT4 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/ntsc-lut.png"
> SamplerLUT4_linear = "true"
> SamplerLUT4_wrap_mode = "clamp_to_border"
> SamplerLUT4_mipmap = "false"
> IntroImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/IntroImage_MegaBezelLogo.png"
> IntroImage_linear = "true"
> IntroImage_wrap_mode = "clamp_to_border"
> IntroImage_mipmap = "true"
> ScreenPlacementImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> ScreenPlacementImage_linear = "false"
> ScreenPlacementImage_wrap_mode = "clamp_to_border"
> ScreenPlacementImage_mipmap = "false"
> TubeDiffuseImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Tube_Diffuse_2390x1792.png"
> TubeDiffuseImage_linear = "true"
> TubeDiffuseImage_wrap_mode = "clamp_to_border"
> TubeDiffuseImage_mipmap = "true"
> TubeColoredGelImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Colored_Gel_Rainbow.png"
> TubeColoredGelImage_linear = "true"
> TubeColoredGelImage_wrap_mode = "clamp_to_border"
> TubeColoredGelImage_mipmap = "true"
> TubeShadowImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Tube_Shadow_1600x1200.png"
> TubeShadowImage_linear = "true"
> TubeShadowImage_wrap_mode = "clamp_to_border"
> TubeShadowImage_mipmap = "true"
> TubeStaticReflectionImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/TubeGlassOverlayImage_3840x2160.png"
> TubeStaticReflectionImage_linear = "true"
> TubeStaticReflectionImage_wrap_mode = "clamp_to_border"
> TubeStaticReflectionImage_mipmap = "true"
> BackgroundImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/TopLayerImageGradient_3840x2160.png"
> BackgroundImage_linear = "true"
> BackgroundImage_wrap_mode = "clamp_to_border"
> BackgroundImage_mipmap = "true"
> BackgroundVertImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/TopLayerImageGradient_3840x2160.png"
> BackgroundVertImage_linear = "true"
> BackgroundVertImage_wrap_mode = "clamp_to_border"
> BackgroundVertImage_mipmap = "true"
> ReflectionMaskImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_White_16x16.png"
> ReflectionMaskImage_linear = "true"
> ReflectionMaskImage_wrap_mode = "clamp_to_border"
> ReflectionMaskImage_mipmap = "true"
> FrameTextureImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/FrameTexture_2800x2120.png"
> FrameTextureImage_linear = "true"
> FrameTextureImage_wrap_mode = "clamp_to_border"
> FrameTextureImage_mipmap = "true"
> CabinetGlassImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> CabinetGlassImage_linear = "true"
> CabinetGlassImage_wrap_mode = "clamp_to_border"
> CabinetGlassImage_mipmap = "true"
> DeviceImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> DeviceImage_linear = "true"
> DeviceImage_wrap_mode = "clamp_to_border"
> DeviceImage_mipmap = "true"
> DeviceVertImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> DeviceVertImage_linear = "true"
> DeviceVertImage_wrap_mode = "clamp_to_border"
> DeviceVertImage_mipmap = "true"
> DecalImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> DecalImage_linear = "true"
> DecalImage_wrap_mode = "clamp_to_border"
> DecalImage_mipmap = "true"
> NightLightingImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> NightLightingImage_linear = "true"
> NightLightingImage_wrap_mode = "clamp_to_border"
> NightLightingImage_mipmap = "true"
> NightLighting2Image = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> NightLighting2Image_linear = "true"
> NightLighting2Image_wrap_mode = "clamp_to_border"
> NightLighting2Image_mipmap = "true"
> LEDImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> LEDImage_linear = "true"
> LEDImage_wrap_mode = "clamp_to_border"
> LEDImage_mipmap = "true"
> TopLayerImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> TopLayerImage_linear = "true"
> TopLayerImage_wrap_mode = "clamp_to_border"
> TopLayerImage_mipmap = "true"
1 Like

That’s not a Simple Preset. If you break certain rules, Simple Presets automatically fallback to Full Presets.

Also, you still seem to be making a slight error when sharing presets as there isn’t supposed to be a > before each line.

You need to add a reference at the top.

After adding one this preset saves like this.

#reference "shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV__GDV.slangp"
GAMMA_INPUT = "2.200000"
gamma_out = "2.500000"
post_br = "2.000000"
HSM_ASPECT_RATIO_MODE = "6.000000"
HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = "500.000000"
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = "30.000000"
MDAPT_MODE = "1.000000"
CP = "5.000000"
TNTC = "4.000000"
wp_saturation = "1.350000"
g_signal_type = "0.000000"
g_crtgamut = "1.000000"
glow = "0.000000"

Does that list look right?

1 Like

Sorry I’m no t use to it yet. And I don’t know how to not “break the rules” to make the preset save like that… :confused:

1 Like

Loading an existing preset and tweaking normal parameters should not ‘break the rules’. Changing passes or pass parameters could/should.

1 Like

Well, to make it look like my CRT, I had to change normal parameters, I can’t make it with default settings… But I don’t change passes. I only used HSM mega bezel… Am I doing something wrong? Sorry for my ignorance… I’m new in all this…:confused:

1 Like

It’s okay, we were all new at some point. This used to happen to me sometimes when I saved new presets with the same name as an existing one or one that I had currently loaded. So if the preset is referencing “A.slangp” and you save the name of the preset as “A.slangp”, that might mess things up and trigger a fallback to full preset mode.

I always save as a different name when working on and making changes to existing presets.

When I’m finished, I manually consolidate all of the changes into one preset file.

1 Like

Ok, so an update regarding my yesterday’s post

I did some more testing and I realized that with d3d11 not just your shader freaks out when fbneo Video rotation is set to OFF but a bunch of other crt shaders have similar problems (maybe something related to a common shader that those preset are using), so is not specific problem with you guest advanced.

Then I found a solution by using GLcore as video driver and set video_hard_sync_frames from 0 to 1.

now my fbneo’s cfg looks like this:

video_driver = "glcore"
video_hard_sync_frames = "1"
vrr_runloop_enable = "true"

At the moment everything looks and feels right, Im not sure if setting video_hard_sync_frames = “1” will degrade input lag or not but at the moment feels good, your shader works and I can use run-ahead without any issue…

1 Like

I checked online and someone said the lines are visible on Kirby on S-Video. I have found no pictures though.

That’s because of the audio synchronization settings, I believe. Try and tinker with the settings in Settings -> Audio -> Synchronization.
You can make it so that synchronization does not kick in at 57 fps or lower.

Mind you that it’s not possible to have both perfect audio and video at 57fps unless you have VRR or your display supports 57fps. You’ll either have screen tearing, stutters, or audio crackling.

I have no idea why your R-Type is losing framerate though.

I prefer mask 12 for 4K as well. Looks good on my TV too! :slightly_smiling_face:

video_hard_sync_frames = “1” actually lowers input lag by one whole frame, but it’s heavier on resources. It’s recommended to keep it on on GL drivers as long as your PC can handle it.

EDIT: My bad. I was talking about the video_hard_sync setting and not video_hard_sync_frames.

2 Likes

Citazione video_hard_sync_frames = “1” actually lowers input lag by one whole frame, but it’s heavier on resources. It’s recommended to keep it on on GL drivers as long as your PC can handle it.

I think what you are referring to is video_hard_sync, that I know helps with input lag and I always keep it on “true”.

What I actually changed is video_hard_sync_frames, by default was 0 and now setting it to 1 solves my occasional frame drops…

I don’t know about supporting 57 fps (or 55 in case of r-type) but now music and frame pacing seems spot on and I have no frame drops… That was true also with d3d11 with vrr_runloop_enable on, but in that case most shaders go crazy with vertical games in fba…

Sorry for the OT people!

2 Likes

Hard sync is the option, hard sync frames tells it how “hard” to sync :slight_smile:

1 frame is less strict than 0 frames, but also less demanding. It’s still a big improvement over hard sync OFF.

3 Likes

That makes sense! and it explains that small performance boost that now is giving me a stable and in-sync framerate/pace.

1 Like