Rainbow banding with composite video - Presets for Sega Genesis Games

unfortunately, i don’t have a sample from Composite with rainbow for Streets of rage 2 in bar. If you ever knew, I could attempt to do more adjustments.

I used to have a sega genesis till some years ago with composite connection but not with streets of rage 2. At least I can tell you that Sonic 2 had this type of rainbow within it’s pipes… Let’s see if can find a little picture that took back then:

Tbc, the rainbow is definitely a thing that happens.

When I feel less dead, I’ll do s little digging into what sonic 2 has going on graphically there. (It might be a checkerboard pattern as well, or maybe it’s a color combination in tandem with the psuedo-transpariency effect that’s causing said rainbows.)

This is a very recent sample. Big thanks to the guy who made it possible.

So there it seems to match pretty well what is done with the rainbow sega v6.26 preset. This is how it looks to me with that version in streets of rage 2:

I will look if can give a bit more accurate rainbow with your 8-16bits preset, however I may really appreciate if this effect can be combined with OTHER composite-blurry looking shader/presets. I’d like if there was some way to mix the rainbow with other color tweaking shaders since Composite in sega genesis seem to affect some colors like yellow and blue (a bit lighter yellow/blue as far as I’m concerned. Also, take a look in Blargg: composite shader from GPGX settings to see more of this).

2 Likes

rainbow sega v6.3 preset:

Took as reference those 2 pictures I have from a sega genesis I sold since a couple of years ago

Reminder that this version is intended for Genesis Plus GX with Borders set to Full (or left/right) in core options.

Well, I think @hunterk already mentioned how it could be done at least twice in this thread.

Perhaps @HyperspaceMadness, @guest.r or @DariusG can further break it down in layman’s terms and maybe walk us through the process using existing shaders that we might be more familiar with for example, HSM MegaBezel, CRT-Guest-Advance or GDV-Mini?

1 Like

rainbow sega v6.4. Thanks to Hunterk for his ntsc adaptive suggestion:

Don’t know Genesis model here but source is:

Real hardware Sega Genesis Sonic 1 connected with RF vs Genesis Plus GX rainbow sega v6.4

GPGX with borders set to full (and it should fit as well with BlastEm core).

3 Likes

How did you integrate it? Can you give a summary of the steps?

Why are you using RF mode for comparison? Would you also get the effect with less blur using Composite instead?

its just the ntsc-adaptive preset combined with the suggestion from hunterk:

Rainbow with composite - MOD preset for Sega Genesis Games - RetroArch Additions / Shaders - Libretro Forums

1 Like

I tried messing around with this again and yeah pretty much changing the NTSC Preset parameter to 2 (RF) in my shader preset is the closest I believe I can get to getting the rainbow affect. If I’m not mistaken pretty much all Model 1 Sega Genesis and the other 8/16 bit systems came boxed in with a RF cable in the late 80s/early 90s, at least in the US

2 Likes

i know how it feels. At least I have only experience with NES console (which still do have) that has RF cable.

The result from streets of rage 2 is very similar to this: NTSC Shaders for SEGA Mega Drive / Genesis - RetroArch Additions / Shaders - Libretro Forums

2 Likes

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