Rainbow banding with composite video - Presets for Sega Genesis Games

Yeah I see what you mean, you’re talking about his “themaister’s NTSC 2-phase composite shader” pic. The difference between mines and his that he’s using the composite signal and I’m using the RF signal. My 8/16 bit shader preset came defaulted on the auto setting which always ends up choosing the composite signal, I may change it to RF on my next shader update.

I been using that RF signal since I came to this thread and I’ve come to like it more than composite. Some may say it looks inferior cause of lower image quality but I like how the screen becomes more “alive” with the different artifacts shaking and moving about, plus RF is the cable those systems came boxed in with so it gives you a more pure original experience.

3 Likes

IMHO, CRT stuff looks weird without movement/artifacts, it comes off as too sterile.

3 Likes

I’ve been getting this “Failed to apply shader preset: rainbow sega v6.4.slangp” message every time I load it. Removing “…/…/” from the shader paths fixed it for me, so now it loads. But is your shader (specifically v6.4) even supposed to look like this? Are there settings that need to be changed? Sorry if I missed something here but I’m having trouble finding out why this is happening? I doesn’t look much like yours and the clip.

1 Like

yeah, i appreciate you just mentioned it. I just set my presets within a sub folder. If anybody else have that problem or I have just forgot to tweak it from the public preset, then please remove the " …/…/ " characters from each pre-selected shader.

The screenshots / videos are equivalent to each preset being posted here. I didn’t mess anything with it. The screenshots you shared should be what is expected from the shader. I hope you like it !

And if you think the preset is not 100% accurate to the original clip / hardware, well my presets aren’t intended to do a 100% replication of them but with what I know and have available from those presets. Still, I hope they can be useful or good enough to have fun around with.

3 Likes

This is all new and interesting to me as someone who’s never experienced the genesis with the rainbow effect. I think it is the sharp vertical lines that threw me off a bit but that’s probably because I had not used bilinear filtering at the time. Just turned that on and boom…

Vertical lines are now soft so that greatly improved the image for me, and borders now have dark outline like in your proof rainbow sega v6.4.jpeg image. Good work! :+1:

1 Like

oh yeah, I thought people would just see it as default setting since as far as I’m aware, Retroarch comes with billinear filtering set ON by default.

Still, I encourage that if possible to address this effect with other composite-blurry looking for Sega Genesis games. I’m not that smart to give more presets at the moment. Thank God I could find this effect since then I feel like the composite-looking for Genesis games can be complete with the colorful lines.

I hope you can have a ton of fun around ! And thank you for giving any of these presets a try.

2 Likes

Why is it that in the “Framemeister Comparison: Sega Genesis RF VS SCART cables” video the whole screen shakes, while in your shader only certain graphics shake (tips of grass/trees, edges of Sonic) in RF mode then pixels shake even more in a “fuzzy” way while moving? How come RF behaves differently in that clip? :thinking: Sorry, as I said I’m quite new to this lol

2 Likes

That’s a interesting question. I don’t know the answer but maybe @guest.r can shed some light on that. I see what you mean with the screen shakiness though, I tried messing around with the different ntsc parameters in my preset and couldn’t produce that RF signal effect from the video

1 Like

Greetings fellows. I just did this little new experimental rainbow sega preset v6.5

This time combined with GTU-v050. In order to see Rainbow banding properly, it has to be played with Genesis Plus GX>options>borders=full or left/right OR BlastEm core which has borders set by default. Also, in order to get a more accurate audio experience coming from RF-Switch, in main menu > audio options set Output rate to 22000 and GPGX audio options from Stereo to Mono.

This time intended to bring more notorious Noise- video signal interference which is, at least for me very present with RF-Switch connection for NES and somehow I remember this notorious interference on Sega Genesis as well. Video signal with RF is even worse than Composite, so some other CRT artifacts being present here should fit along with the Composite blurry looking and the Rainbow banding. Have fun if anybody like it.

shaders = "14"
shader0 = "shaders_slang/crt/shaders/gtu-v050/pass1.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "true"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/gtu-v050/pass2.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "NTSCPass"
float_framebuffer1 = "true"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/gtu-v050/pass3.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "ColorPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "viewport"
scale_x2 = "1.000000"
scale_type_y2 = "viewport"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_ntsc_encode.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrescalePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "viewport"
scale_x3 = "1.000000"
scale_type_y3 = "viewport"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_ntsc_decode.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "DeconvergePass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "viewport"
scale_x4 = "1.000000"
scale_type_y4 = "viewport"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_color.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "ScanlinePass"
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "viewport"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_prescale.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "FocusPass"
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "1.000000"
scale_type_y6 = "viewport"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_deconverge.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "PostPass"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_scanline.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "PhosphorPass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_defocus.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "ChromaPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_post.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "DistortionPass"
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_phosphor.slang"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
shader12 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_chroma.slang"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "false"
srgb_framebuffer12 = "false"
shader13 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_distortion.slang"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
compositeConnection = "1.000000"
signalResolution = "240.000000"
signalResolutionI = "55.000000"
signalResolutionQ = "21.000000"
tvVerticalResolution = "230.000000"
ntscsignal = "1.000000"
distortiontoggle = "1.000000"
humbaralpha = "0.070000"
humbar_hertz_rate = "0.252000"
avalue = "0.000000"
bvalue = "0.000000"
scantime = "51.800011"
col_saturation = "1.500000"
scanlinealpha = "0.400000"
defocus_x = "0.900000"
defocus_y = "1.100000"
distortion_amount = "0.060000"
cubic_distortion_amount = "0.060000"
distort_corner_amount = "0.340000"
round_corner_amount = "0.270000"
smooth_border_amount = "0.150000"
vignette_amount = "0.110000"
reflection_amount = "0.420000"
noise_amt = "3.500000"
prescale = "3.000000"
textures = "MaskTexture"
MaskTexture = "shaders_slang/crt/shaders/mame_hlsl/resources/aperture-grille.png"
MaskTexture_wrap_mode = "clamp_to_border"
MaskTexture_mipmap = "false"
1 Like

How’s it going?

Any progress for Version 7?

1 Like

I have made those two new just playing around with CRT artifacts and visuals but not likely a new version that would think can bring up something new along with the Rainbow effect. Those two are my own and new presets:

rainbow sega danny v6.6:

shaders = "11"
shader0 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_ntsc_encode.slang"
filter_linear0 = "true"
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/crt/shaders/mame_hlsl/shaders/mame_ntsc_decode.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "NTSCPass"
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/crt/shaders/mame_hlsl/shaders/mame_color.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "ColorPass"
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/mame_hlsl/shaders/mame_prescale.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrescalePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "viewport"
scale_x3 = "1.000000"
scale_type_y3 = "viewport"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_deconverge.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "DeconvergePass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "viewport"
scale_x4 = "1.000000"
scale_type_y4 = "viewport"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_scanline.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "ScanlinePass"
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "viewport"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_defocus.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "FocusPass"
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "1.000000"
scale_type_y6 = "viewport"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_post.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "PostPass"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_phosphor.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "PhosphorPass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_chroma.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "ChromaPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_distortion.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "DistortionPass"
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
ntscsignal = "1.000000"
distortiontoggle = "1.000000"
humbaralpha = "0.250000"
humbar_hertz_rate = "0.500000"
avalue = "0.000000"
bvalue = "0.000000"
scantime = "51.800011"
qfreqresponse = "0.350000"
col_saturation = "1.400000"
defocus_x = "1.000000"
defocus_y = "1.400000"
cubic_distortion_amount = "0.030000"
round_corner_amount = "0.390000"
vignette_amount = "0.160000"
noise_amt = "3.500000"
textures = "MaskTexture"
MaskTexture = "shaders_slang/crt/shaders/mame_hlsl/resources/aperture-grille.png"
MaskTexture_wrap_mode = "clamp_to_border"
MaskTexture_mipmap = "false"

preset v6.7:

shaders = "14"
shader0 = "shaders_slang/crt/shaders/gtu-v050/pass1.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "true"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/gtu-v050/pass2.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "NTSCPass"
float_framebuffer1 = "true"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/gtu-v050/pass3.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "ColorPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "viewport"
scale_x2 = "1.000000"
scale_type_y2 = "viewport"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_ntsc_encode.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrescalePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "viewport"
scale_x3 = "1.000000"
scale_type_y3 = "viewport"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_ntsc_decode.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "DeconvergePass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "viewport"
scale_x4 = "1.000000"
scale_type_y4 = "viewport"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_color.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "ScanlinePass"
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "viewport"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_prescale.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "FocusPass"
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "1.000000"
scale_type_y6 = "viewport"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_deconverge.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "PostPass"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_scanline.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "PhosphorPass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_defocus.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "ChromaPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_post.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "DistortionPass"
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_phosphor.slang"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
shader12 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_chroma.slang"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "false"
srgb_framebuffer12 = "false"
shader13 = "shaders_slang/crt/shaders/mame_hlsl/shaders/mame_distortion.slang"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
compositeConnection = "1.000000"
signalResolution = "272.000000"
signalResolutionQ = "21.000000"
ntscsignal = "1.000000"
distortiontoggle = "1.000000"
humbaralpha = "0.250000"
humbar_hertz_rate = "0.500000"
avalue = "0.000000"
bvalue = "0.000000"
scantime = "51.800011"
qfreqresponse = "0.350000"
col_saturation = "1.400000"
defocus_x = "1.000000"
defocus_y = "1.400000"
cubic_distortion_amount = "0.030000"
round_corner_amount = "0.390000"
vignette_amount = "0.160000"
noise_amt = "3.500000"
textures = "MaskTexture"
MaskTexture = "shaders_slang/crt/shaders/mame_hlsl/resources/aperture-grille.png"
MaskTexture_wrap_mode = "clamp_to_border"
MaskTexture_mipmap = "false"

Little reminder than those two presets work with the proper Rainbow banding if you have Borders set to FULL in GenesisPlusGX core or BlastEm as default

Aside from that, there’s a new preset that @sonkun has managed to make and mix up alongside with CRT.guest.r NTSC preset. But seems like he removed his public rainbow preset.

2 Likes

It’s still there. If anything make sure you download guest’s latest shader update. I modified my shader pack to go with his new release

1 Like

oh yeah, my bad.

This is definetely a great addition from him and really appreciate it. The fact to think it could be mixed up with mega bezel or soqueroeu just gives me way more hype. Definetely sonkun did a great job there.

If anything, that preset for the rainbow could be the next version.

2 Likes

Thank you man I appreciate it, I love how these sets came out. The only thing I wish I can alter a bit is the jittering and turn it down just slightly, it’s kind of essesive but I guess that’s just the nature of the shader. Still all good

1 Like

@sonkun, what parameters need to be changed to have rainbow effect with RF and composite using only crt-guest-advanced-ntsc?

The jitter is excessive, so I use these parameters:

NTSC Prest: -1.00
NTSC Merge Fields: 1.00
NTSC Fringing: 2.00 (RF) / 1.00
NTSC Artifacting: 2.00 (RF) / 1.00
2 Likes

Those settings won’t do a thing because the jittering is coming from the mame_hlsl shader pass and not the NTSC pass from guest’s shader. I forgot all the names of the settings to tweak the mame_hlsl NTSC parameters but I think the first one starts with “Alpha A” or something like that and goes down to something that ends with “Offset” I believe. You won’t get the rainbow effect without that mame_hlsl shader in the pass unfortunately. That mame pass is the only shader I’ve come across that does the rainbow banding right.

Matter of fact you can start by turning that “Offset” parameter off, that stops the jittering completely but then the pixels become a garbled mess. From there you can try tweaking to get a decent look, I think that’s your best bet to start with

2 Likes

I think I figured it out, there’s a parameter called “CC Value”, the more you raise it up the sharper the image becomes and the jitter starts going away a bit, at least better than it was initially. Best way to tweak it is to first put the “Signal Offset” to 0 then to tweak that setting I mentioned. I might have to update my sets if I can hit a sweet spot with this. I notice things start looking better when you reach around 4.37 or so.

On further testing I also realize although it starts clearing up, you also lose those rainbow banding effects as well so it’s like a catch 22 tweaking that setting. I gotta play around with it a bit more. So far it seems the best way to play around with it is the further you raise the cc value you then also have to decrease the “scan time” parameter to get the rainbow banding back and then turn the signal offset back on to see how the final image looks. Its a process to this it seems but I’m still experimenting

2 Likes

I think I nailed it, I reduced that crazy jittering, sharpened the picture up even more and we still got our delicious rainbow banding. Both you and @ynnad4 check these new settings out


shaders = "17"
shader0 = "shaders_slang/crt/shaders/guest/advanced/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/crt/shaders/mame_hlsl/shaders/old/shaders/mame_hlsl/shaders/mame_ntsc.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
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/crt/shaders/guest/advanced/afterglow0.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
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/advanced/grade/pre-shaders-afterglow-grade.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrePass0"
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/advanced/ntsc/ntsc-pass1.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
frame_count_mod4 = "2"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "4.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "NtscPass"
float_framebuffer6 = "false"
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/advanced/convert-ntsc.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "0.500000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/dithering/shaders/jinc2-dedither.slang"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
alias8 = "PrePass"
float_framebuffer8 = "false"
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/advanced/avg-lum-ntsc.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "AvgLumPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/advanced/linearize-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "LinearizePass"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "absolute"
scale_x11 = "640"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "GlowPass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "640"
scale_type_y12 = "absolute"
scale_y12 = "480"
shader13 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "640"
scale_type_y13 = "absolute"
scale_y13 = "480"
shader14 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "BloomPass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "640"
scale_type_y14 = "absolute"
scale_y14 = "480"
shader15 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "1.000000"
scale_type_y15 = "viewport"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
ntscsignal = "1.000000"
avalue = "0.000000"
bvalue = "0.000000"
ccvalue = "5.008423"
scantime = "34.100281"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
g_cntrst = "0.400000"
ntsc_scale = "1.999999"
blendMode = "0.000000"
JINC_SHARP = "3.000000"
SIGMA_VB = "0.750000"
bloom = "-0.700000"
halation = "0.100000"
gamma_c = "1.360000"
brightboost = "1.300000"
brightboost1 = "1.250000"
gsl = "-1.000000"
h_sharp = "1.100001"
s_sharp = "1.500000"
ring = "0.100000"
warpX = "0.050000"
warpY = "0.070000"
csize = "0.080000"
bsize1 = "0.300000"
shadowMask = "10.000000"
maskstr = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "4.000000"
double_slot = "2.000000"
mclip = "0.350000"
gamma_out = "2.000000"
deconrry = "1.250000"
deconrby = "-1.250000"
decons = "1.400000"
addnoised = "-0.200000"
noiseresd = "1.000000"
noisetype = "1.000000"
post_br = "1.100000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"

I even got the rainbow in the Sonic waterfall to look 1 for 1 with the scan time setting of 47.70 that you mentioned. Took a lot of back and forth eyeballing though lol

1 Like

yeah, you did good job bud. It matches properly in 34.10. Just re-checked now. For FULL borders, it should be scantime = 37.00 with this preset. I see the rainbow looks sharper now without that much dithering involved.

2 Likes

And there we have it. With these new settings I think the mission is finally complete. The essesive jittering looked crazy simply scrolling across in Super Mario Bros for NES, now it looks playable

2 Likes