(My GitHub Shader repo for some context)
I’m using OpenEmu on Mac instead of RetroArch, so not everything seems to work / work as intended. But, on the whole what I’m trying to do is have a series of clean scanline (or lcd grid for handheld) filters like you might find on official mini consoles/Analogue HD consoles/UltraHDMI adapters. (so, outside of this topic - I am open to ideas and suggestions.)
For scanlines, I’ve been using Yeetron from Sonic Mania. Whenever I’ve tried to stack Pixellate before it to ensure pixels are first correctly shaped, the pixellate effect would be absent. Eventually, I got it to half show-up like so:
shaders = 5
shader0 = ../Sources/Slang/stock.slang
filter_linear0 = false
scale_type0 = source
scale0 = 1.0
shader1 = ../Sources/Slang/misc/ntsc-colors.slang
filter_linear1 = false
scale_type1 = source
scale1 = 1.0
shader2 = ../Sources/Slang/crt/shaders/snes-hires-blend.slang
filter_linear2 = false
scale_type2 = source
scale2 = 1.0
shader3 = ../Sources/Slang/interpolation/shaders/pixellate.slang
filter_linear3 = false
scale_type_3 = source
scale3 = 1.0
scale_type_x3 = viewport
scale_x3 = 1.0
scale_type_y3 = source
scale_y3 = 1.0
shader4 = ../Sources/Slang/crt/shaders/yeetron.slang
filter_linear4 = false
scale_type_4 = source
scale4 = 1.0
parameters="INTERPOLATE_IN_LINEAR_GAMMA; NTSC Intensity"
INTERPOLATE_IN_LINEAR_GAMMA = 0.0
"NTSC Intensity" = 0.0
That’s getting the effect to appear on the sides of a pixel, but not on the top and bottom (need to zoom in to see). How can I get the entire effect? I’m using Super Mario World’s title screen as a test. Mostly looking at the black pixels in the red S.