[REQUEST HELP] newpixie-crt shader add GDAP option in it (Dithering)

As we know that true way to play Sega games is composite way because dithering!

(More info here - Dithering on the Sega Genesis with Composite Video)

Now newpixie-crt look like this on such transparency place

I try to add GDAP pass to the shader in preset and get correct waterfall effect like in CRT from video, but picture text and non transparent elements now too blur… any chance to fix it?

Here is preset that I use now, but if I try add two GDAP pass:

gdapt-pass0.slang and gdapt-pass1.slang

before accumulate.slang and other things shader don’t work…

shaders = "5"
shader0 = "shaders_slang/dithering/shaders/gdapt/gdapt-pass1.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "accum1"
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/crt/shaders/newpixie/accumulate.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "accum1"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader2 = "shaders_slang/crt/shaders/newpixie/blur_horiz.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "blur1"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader3 = "shaders_slang/crt/shaders/newpixie/blur_vert.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "blur2"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader4 = "shaders_slang/crt/shaders/newpixie/newpixie-crt.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
parameters = "acc_modulate;blur_x;blur_y;use_frame;curvature;wiggle_toggle"
acc_modulate = "0.350000"
blur_x = "1.000000"
blur_y = "1.000000"
use_frame = "0.000000"
curvature = "0.000100"
wiggle_toggle = "0.000000"
textures = "frametexture"
frametexture = "shaders_slang/crt/shaders/newpixie/crtframe.png"
frametexture_linear = "true"
frametexture_wrap_mode = "clamp_to_border"
frametexture_mipmap = "false"

I wish this meme would die already.

Just because dithering was blended with composite video doesn’t mean that you’re supposed to use composite or that dithering is supposed to be blended. You see plenty of examples of dithering on razor sharp PC monitors of that era where the dithering remained unblended. It’s just a technique that’s employed when you have a limited color palette. The composite output of the Genesis is notoriously atrocious and it supports RGB out of the box via SCART.

That said, the only way to blend dithering is with a craptastic amount of blur or to use one of the “smart” blurs like gdapt, but they all result in artifacts in certain situations. If you really want to blend dithering I think it’s better to just blur the hell out of the image because that’s what it would take to blend dithering on a CRT (no such thing as smart blur on a CRT). I’ve seen TVs from the early 80s where the dithering was still unblended via composite video. You need a really bad/old TV if you want dithering to blend.

You can also try one of the shaders for composite video emulation if you want to blend dithering in a way that’s “realistic.”

1 Like