Rainbow banding with composite video - Presets for Sega Genesis Games

That’s nice, it has such a retro vibe to it with the borders set to full. Good stuff

2 Likes

There have been sometime but this new version may have an even a bit more accurate Rainbow banding. Both presets are thanks to @sonkun that kindly shared his last presets update in late July, 2022: Please show off what crt shaders can do! - RetroArch Additions / Shaders - Libretro Forums

Also worth to mention, I attempted to do some closer emulation to composite video from this video sample on Sonic 2: Sonic the Hedgehog Debug Mode, Level Select Sega Genesis VHS Footage - YouTube

Sonic 2 VHS footage video vs recent new version:

Including my own filthering and CRT effects, thanks to @guest.r and his very awesome big shaders project.

07 - ModDanny v2.201 (FullBorders) - This one is intended for Genesis Plus GX with Borders set to FULL in options OR BlastEm core.

shaders = "19"
shader0 = "shaders_slang/crt/shaders/tvout-tweaks.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/crt/shaders/guest/advanced/stock.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.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/mame_hlsl/shaders/old/shaders/mame_hlsl/shaders/mame_ntsc.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "StockPass"
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/afterglow0.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "AfterglowPass"
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/grade/pre-shaders-afterglow-grade.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "PrePass0"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass1.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "NPass1"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "4.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "0.500000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.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 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "NtscPass"
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/stock.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "PrePass"
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/avg-lum-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "true"
alias10 = "AvgLumPass"
float_framebuffer10 = "false"
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/linearize-ntsc.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "LinearizePass"
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/guest/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "Pass1"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_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 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "GlowPass"
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/bloom_horizontal.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "640"
scale_type_y15 = "absolute"
scale_y15 = "480"
shader16 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = "BloomPass"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "absolute"
scale_x16 = "640"
scale_type_y16 = "absolute"
scale_y16 = "480"
shader17 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "true"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
shader18 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear18 = "true"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
alias18 = ""
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "viewport"
scale_x18 = "1.000000"
scale_type_y18 = "viewport"
scale_y18 = "1.000000"
TVOUT_RESOLUTION = "320.000000"
ntscsignal = "1.000000"
avalue = "0.000000"
bvalue = "0.000000"
ccvalue = "5.036432"
scantime = "36.800240"
notchhalfwidth = "1.100000"
ifreqresponse = "2.399999"
qfreqresponse = "1.200000"
signaloffset = "0.000000"
g_gamma_in = "1.800000"
g_gamma_out = "2.200000"
g_crtgamut = "1.000000"
g_hue_degrees = "-7.000000"
g_I_MUL = "1.080000"
g_Q_MUL = "0.800000"
g_lum_fix = "1.000000"
g_vignette = "0.000000"
g_lum = "-0.050000"
g_cntrst = "-0.400000"
g_sat = "-0.050000"
g_satr = "0.150000"
g_satg = "-0.050000"
g_satb = "0.050000"
g_lift = "0.030000"
quality = "-1.000000"
ntsc_scale = "1.200000"
ntsc_sat = "0.800000"
ntsc_bright = "0.850000"
ntsc_sharp = "7.000000"
ntsc_shape = "1.000000"
CSHARPEN = "2.000000"
CCONTR = "0.250000"
GAMMA_INPUT = "2.100000"
downsample_levelx = "1.000000"
downsample_levely = "0.350000"
HSHARPNESS = "8.000000"
SIGMA_HOR = "1.050000"
S_SHARP = "1.500000"
SIGMA_VB = "0.750000"
glow = "0.230000"
bloom = "0.400000"
mask_bloom = "0.500000"
bloom_dist = "0.200000"
halation = "0.100000"
gamma_c = "1.440000"
gsl = "-1.000000"
warpX = "0.050000"
warpY = "0.070000"
csize = "0.080000"
bsize1 = "0.300000"
shadowMask = "6.000000"
maskstr = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"
mclip = "0.350000"
gamma_out = "2.000000"
deconrr = "2.000000"
deconrb = "8.500000"
deconrry = "0.750000"
deconrby = "-0.750000"
decons = "1.500000"
addnoised = "-0.220000"
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"

07 - ModDanny v2.301 (NoBorders) - Genesis Plus GX with borders set to OFF in options.

shaders = "19"
shader0 = "shaders_slang/crt/shaders/tvout-tweaks.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/crt/shaders/guest/advanced/stock.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.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/mame_hlsl/shaders/old/shaders/mame_hlsl/shaders/mame_ntsc.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "StockPass"
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/afterglow0.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "AfterglowPass"
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/grade/pre-shaders-afterglow-grade.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "PrePass0"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass1.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "NPass1"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "4.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "0.500000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.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 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "NtscPass"
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/stock.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "PrePass"
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/avg-lum-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "true"
alias10 = "AvgLumPass"
float_framebuffer10 = "false"
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/linearize-ntsc.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "LinearizePass"
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/guest/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "Pass1"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_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 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "GlowPass"
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/bloom_horizontal.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "640"
scale_type_y15 = "absolute"
scale_y15 = "480"
shader16 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = "BloomPass"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "absolute"
scale_x16 = "640"
scale_type_y16 = "absolute"
scale_y16 = "480"
shader17 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "true"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
shader18 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear18 = "true"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
alias18 = ""
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "viewport"
scale_x18 = "1.000000"
scale_type_y18 = "viewport"
scale_y18 = "1.000000"
TVOUT_RESOLUTION = "320.000000"
ntscsignal = "1.000000"
avalue = "0.000000"
bvalue = "0.000000"
ccvalue = "5.035932"
scantime = "34.000282"
notchhalfwidth = "1.100000"
ifreqresponse = "2.399999"
qfreqresponse = "1.200000"
signaloffset = "0.000000"
g_gamma_in = "1.800000"
g_gamma_out = "2.200000"
g_crtgamut = "1.000000"
g_hue_degrees = "-7.000000"
g_I_MUL = "1.080000"
g_Q_MUL = "0.800000"
g_lum_fix = "1.000000"
g_vignette = "0.000000"
g_lum = "-0.050000"
g_cntrst = "-0.400000"
g_sat = "-0.050000"
g_satr = "0.150000"
g_satg = "-0.050000"
g_satb = "0.050000"
g_lift = "0.030000"
quality = "-1.000000"
ntsc_scale = "1.200000"
ntsc_sat = "0.800000"
ntsc_bright = "0.850000"
ntsc_sharp = "7.000000"
ntsc_shape = "1.000000"
CSHARPEN = "2.000000"
CCONTR = "0.250000"
GAMMA_INPUT = "2.100000"
downsample_levelx = "1.000000"
downsample_levely = "0.350000"
HSHARPNESS = "8.000000"
SIGMA_HOR = "1.050000"
S_SHARP = "1.500000"
SIGMA_VB = "0.750000"
glow = "0.230000"
bloom = "0.400000"
mask_bloom = "0.500000"
bloom_dist = "0.200000"
halation = "0.100000"
gamma_c = "1.440000"
gsl = "-1.000000"
warpX = "0.050000"
warpY = "0.070000"
csize = "0.080000"
bsize1 = "0.300000"
shadowMask = "6.000000"
maskstr = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"
mclip = "0.350000"
gamma_out = "2.000000"
deconrr = "2.000000"
deconrb = "8.500000"
deconrry = "0.750000"
deconrby = "-0.750000"
decons = "1.500000"
addnoised = "-0.220000"
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"

The shaders_slang/crt folder is where you’re supposed to have the LASTEST CRT.GUEST.R updated files, or whichever you have his files from his preset thread.

Thanks again to sonkun for his nice awesome preset contributions.

Have fun

6 Likes

I appreciate the love and glad that you and everyone else that downloaded my presets are enjoying them, those are my little babies and I love them dearly, I’m at a point where I can’t even emulate without them now lol.

I just loaded up your preset the one with the full borders and I gotta say it looks retro as hell. Whichever crt you were trying to emulate it seems like you nailed the look you were going for, makes me reminisce on the early 90’s for some reason, cool preset.

2 Likes

i’m nothing special bud. But i’m really glad I could contribute to you or this awesome community.

My last preset is based on your 07 preset from your last updated presets. USA warm fits to me good enough for 16 bits. I think you’re the one who did that awesome scanline looking with the “bloom” features.

I overall add the “deconvergence” red/green colors that I have seen around some Sonic 2/3 recordings on CRT TVs.

This other Sonic 3 record may help out as well:

The Rainbow banding is not the only artifact present into the TV I tend to see but also the deconvergence as well. I think I used to have a 22" TV that had such effect… I don’t certainly have currently available some functional CRT TV, even though some of them may work on the house but still.

I think the dithering/blurry looking fits so good to Sonic games and 16 bit era overall. I just hope I can bring up some different version(s) aside from yours.

1 Like

Oh yeah, every preset posted here by you me and everyone contributes in some way because there might be a user here or out there that will come here one day that’s looking for a shader that looks like yours, mines etc. And yes for the 8-16 bit era the warm look works perfectly, either USA warm or the default version I’ll use, just feels right. The cool temperature look works for everything above that era imo.

On my latest shader pack I indeed mixed in some mask bloom with minus regular bloom and came up with a little mix, I also been experimenting adding in more glow (up to either 16 or 24) but I’m not sure if that’s overdoing it, I’ll see.

Our presets are two sides of the same coin it seems, you’re going for the more blurry look while I’m trying to get the image as sharp as possible while still keeping it blurry enough to get all the dithering and rainbow banding effects, I think I managed to come up with something close enough to that.

I just added a new one by Sik ported over from blastem that handles the MD rainbows very nicely. I called it ntsc-blastem. Check it out. :slight_smile:

8 Likes

Looking forward to trying that out soon as I get home, been thinking my md-rainbow presets needed another tweak so this came right on time. Thank you for porting that over, I’ll report back after testing it out.

2 Likes

@hunterk so I tried it out last night, it indeed does the rainbow effect properly. The only thing I can’t seem to do with this shader is make it look sharper when I mix it into my guest ntsc preset, it’s extremely blurry but I assume that’s the nature of the shader itself. With the mame-ntsc shader I can produce really sharp results and still keep the dithering/rainbow effect. I didn’t get a chance to take comparison pics to show what I mean but maybe later I can.

1 Like

You can hack gdapt shaders to get sharp visuals. Use the gdapt pixel classifier results from pass0 and inject blastem code in gdapt-pass1 to only execute (blend pixels)where str is greater than zero.

2 Likes

I’ll try that out later, I think it’s possible to get some sexy results out of this shader just gotta tweak it right, thank you.

yeah, dunno. Looking at some of Sik’s screenshots from blastem standalone, it looks sharper, so there may be something it’s doing with the video output that I need to compensate for in the shader port.

I found that pre-scaling it by 2x or 4x in the previous pass and then dropping it back down afterward seems to help quite a bit without damaging the dedithering or rainbows.

shaders = 2

shader0 = ../stock.slang
scale_type0 = source
scale0 = 4.0

shader1 = shaders/ntsc-blastem.slang
scale_type1 = source
scale1 = 0.25
4 Likes

I’ll give this a try later as well, thanks.

Ok so I finally gave it a test with your suggested settings. For comparison sake I’ll post 3 diff pics.

My current standard composite preset:

My megadrive rainbow preset:

And the new mega drive rainbow preset using the blastem shader with the same tweaked settings as my above md-rainbows preset:

The blast em shader has become a bit sharper with your suggested settings but I still can’t get it as sharp as even my current MD rainbow preset, other than that it gets the job done as far as getting the rainbow look. I’m just at a phase at the moment where Im moving away from the typical blurry composite look, it might just be the nature of the shader and it’s designed that way. I still haven’t tried Hyllian’s method yet.

1 Like

Could you please share the preset either way on here as a reference (from 3rd picture)? It still looks amazing !

And thanks to @hunterk as always for his amazing contributions!

2 Likes

I ended up discarding and deleting it since guest.r just included a new “rainbow” setting in his ntsc shader. This is what I been working on:

I’m not sure if I’ll go with the first or second pic with the stronger rainbow effect. I’ll probably choose the first.

do crt advanced presets also allow now to include this rainbow effect? In that case, that’s wonderful to know! Thank you buddy !

Have been out for some time yet, I’m also excited to check out the new variants you have available since then!

1 Like

Yeah it was just added in by guest two updates ago so it’s fairly new but a very welcome addition.

Yeah you’ve been away for a while. You’re one of the main reasons why I even started making presets with the megadrive rainbow look so hopefully you’ll like the new pack when I release it.

1 Like

is this the intended result with crt guest advanced ntsc ? my only concern is that i cant find a way to make the colorful lines to be more far away one from the other.

Oh nevermind, I found new version.

Yeah, its spectacular job !

As always will be so happy to check out your potential new versions!

Even though not always comment around, I’m checking out for sure your presets. Thank you again, friend!

2 Likes

There’re quite a couple of recorded playthroughs on Original Genesis Console, but most specially with Rainbow Banding + composite video, in case any of these are useful for current presets or make new ones. All credits to their original authors.

Links in file: (all youtube) https://1drv.ms/t/s!AtKS8lBxejvUg2Z_fxWsiGEYu60P?e=Jjqqog

2 Likes