Please show off what crt shaders can do!

Some cores are automatically rotating the image but not swapping the viewport height/width, or vice versa, and it’s all just a bit of a mess because there is no standardized way of dealing with this. At least, that was the case the last time I messed with this. I was involved in a lengthy debate with some devs on github over the “proper” way to display vertical games. IMO, anything done to the image should be within the user’s control and not done automatically. Vertical games should be displayed sideways by default and there should be exactly one user option for rotating the image. Unfortunately I didn’t get anywhere with this argument, because “most people don’t want to rotate their displays,” or something. I gave up.

2 Likes

Hey @Nesguy, good you see you here again!

I had some conversations about this as well with similar info.

A future solution which could be somewhat better that I got partway through but have yet to pick back up and finish, is for Retroarch to communicate the rotation status to the shader, (what the core wants and how retroarch has responded), then the shader can react accordingly, by rotating the image in the shader, or do other things when x&y are swapped.

Once we have this then we could turn off allow core rotation and the shader could still know that the image is supposed to be rotated.

It would definitely help with the Mega Bezel though, as I could get it to automatically rotate when a vertical game on FBNeo is loaded.

3 Likes

Looks like it can’t find this shader: “NTSC analog overshoot.slang”

I’m using the latest guest on repo.

@hunterk

has this shader been added to the repo?

NTSC analog overshoot.slang

1 Like

I don’t think it ever was added, no. If it’s useful, though, it certainly could be.

1 Like

3 posts were split to a new topic: Sonkun’s crt-guest-advanced-ntsc Slot Mask presets

is there some other source to get NTSC analog overshoot.slang shader please ?

1 Like

I just added it to the repo, so it’ll make it to the online updater sometime soon. It’s just a bare shader pass in the ntsc/shaders directory currently.

5 Likes

Has the rest of Astherix’s shader been converted? I’m curious to see how it compares.

1 Like

I’ve been working on it but not had a lot of success. It kinda works but not as good as the shadertoy version, and it doesn’t pass the NTSC test ROM.

4 Likes

5 Likes

These look amazing! Can you please share the settings of the preset?

1 Like

This is a zip file with everything needed,keep in mind that it’s gonna replace files from your default folder. (Lazy to rename passes and folders :grin:). I absolutely don’t know how it looks on 1080p,I reverted some modifications to default for compatibility,I hope it works.

Link-----> https://filebin.net/5ccq5t7u3z3j2m1j

1 Like

So I tested them out but it didn’t work yet. Could you please release the blur-gauss-v.slang and the blur-gauss-h.slang files? Thanks!

Also did you make any changes to the files in the shaders_slang fodler or are they just the latest version?

The presets needs to be in “shaders” folder,just before “shaders_glsl” and “shaders_slang” folders. You can copy paste everything in your “shaders” folder too,this will replace all necessary files. “Blur-gauss-v and h” are already in “blurs” folder. This is the latest version with only needed files (customized). Edit: To be clear my zip file cannot work in standalone :yum:.

Ah ok thanks. By closer inspection I saw that these two files are inside the “shaders” folder inside “blurs”, while on your presets they are directly in the “blurs” folder. I tested the aperture out and it looks great! Thanks for the presets!

1 Like

Oh I understand now,I just saw a commit change occured on sep 26,2022 https://github.com/libretro/slang-shaders/tree/master/blurs and my folders tree is not the same. Have fun!

shaders = "14"
shader0 = "shaders_slang/ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "true"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "4.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = source
scale_x1 = 1.0
scale_type_y1 = "source"
scale_y1 = 1.0
shader2 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_edge"
mipmap_input2 = "false"
alias2 = "ORIG_LINEARIZED"
float_framebuffer2 = "true"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_edge"
mipmap_input3 = "false"
alias3 = "VERTICAL_SCANLINES"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "viewport"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_edge"
mipmap_input4 = "false"
alias4 = "BLOOM_APPROX"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "0.5"
scale_type_y4 = "source"
scale_y4 = "0.4"
shader5 = "shaders_slang/blurs/blur-gauss-v.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_edge"
mipmap_input5 = "false"
alias5 = ""
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/blurs/blur-gauss-h.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_edge"
mipmap_input6 = "false"
alias6 = "HALATION_BLUR"
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/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_edge"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "0.062500"
shader8 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_edge"
mipmap_input8 = "false"
alias8 = "MASK_RESIZE"
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "0.062500"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_edge"
mipmap_input9 = "false"
alias9 = "MASKED_SCANLINES"
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-brightpass.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_edge"
mipmap_input10 = "false"
alias10 = "BRIGHTPASS"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_edge"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_edge"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_edge"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "viewport"
scale_x13 = "1.000000"
scale_type_y13 = "viewport"
scale_y13 = "1.000000"
quality = "-1.000000"
ntsc_fields = "1.000000"
ntsc_phase = "2.000000"
ntsc_scale = "1.000000"
cust_artifacting = "0.000000"
crt_gamma = "2.670000"
diffusion_weight = "0.000000"
bloom_underestimate_levels = "1.000000"
bloom_excess = "0.000000"
beam_min_sigma = "0.005000"
beam_max_sigma = "0.320000"
beam_spot_power = "0.100000"
beam_max_shape = "2.000000"
beam_shape_power = "16.000000"
beam_horiz_filter = "1.000000"
beam_horiz_sigma = "0.670000"
mask_type = "0.000000"
mask_sample_mode_desired = "2.000000"
mask_triad_size_desired = "1.625000"
aa_subpixel_r_offset_x_runtime = "0.000000"
aa_cubic_c = "0.000000"
aa_gauss_sigma = "1.000000"
border_size = "0.000000"
border_darkness = "0.000000"
border_compress = "1.000000"
interlace_detect_toggle = "0.000000"
textures = "mask_grille_texture_small;mask_grille_texture_large;mask_slot_texture_small;mask_slot_texture_large;mask_shadow_texture_small;mask_shadow_texture_large"
mask_grille_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5SpacingResizeTo64.png"
mask_grille_texture_small_linear = "true"
mask_grille_texture_small_wrap_mode = "repeat"
mask_grille_texture_small_mipmap = "false"
mask_grille_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5Spacing.png"
mask_grille_texture_large_linear = "true"
mask_grille_texture_large_wrap_mode = "repeat"
mask_grille_texture_large_mipmap = "false"
mask_slot_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64.png"
mask_slot_texture_small_linear = "true"
mask_slot_texture_small_wrap_mode = "repeat"
mask_slot_texture_small_mipmap = "false"
mask_slot_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png"
mask_slot_texture_large_linear = "true"
mask_slot_texture_large_wrap_mode = "repeat"
mask_slot_texture_large_mipmap = "false"
mask_shadow_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearShadowMaskEDPResizeTo64.png"
mask_shadow_texture_small_linear = "true"
mask_shadow_texture_small_wrap_mode = "repeat"
mask_shadow_texture_small_mipmap = "false"
mask_shadow_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearShadowMaskEDP.png"
mask_shadow_texture_large_linear = "true"
mask_shadow_texture_large_wrap_mode = "repeat"
mask_shadow_texture_large_mipmap = "false"

Still the same directory for blurs from my zip file.

9 Likes

The preset for these images can be found over on the CRT Guest Advanced thread. Now if you will excuse me, I allready have a few ideas on how to one-up myself.

4 Likes