Koko-aio shader discussions and updates

As per the possibility to gain speed, it is all documented in the first post;ì, where it says “if you want to boost your fps”.

Further explainations are in the file config.globals.inc

1 Like

Hi Kokoko3k, please I need some advice from you. Fiddling with the settings I decided to stop at slotmask 2, which could ideally represent an Arcade/Personal Computer monitor. I managed to improve the color by simply “Gamma Out”. I wanted to understand how it works I loved exactly the horizontal and vertical sharpness values ​​under the “glowing input” heading, if I have to increase or decrease them together or not, or if it is the case to act on the corresponding values ​​of the “Halo” heading, I tried to document me but when you can I need advice please. I’m almost there to have exactly what I want, I’m close. A thousand thanks.

Roughly, the Gamma function is a curve that lets you push or diminish the middle tones (black stays black, white stays white); speaking of bloom, you can modulate how it fades from bright to dark; 1.0 means no gamma correction; lower values will make the fades wider with a steeper falloff; this can be used to pronunce the wide “halo” around bright objects". Values > 1.0, instead, will produce smoother contours and will lower the overrall bloom brightness.

As for glow and halo, they serve two different purposes, i can tell you what they do, not what values you have to use on them, because it depends on what you are after, ofc.

The first (glow) controls the input signal, in other word, one of the first gain you can apply to the image (if we exclude the color corrections); changing it will change the signal that will be processed by all of the successive filters.

The halo acts almost like the bloom, but it is tuned for very narrow sizes. It reproduces the reflections made by the glass on the tube of crts and is literally added to the input signal and the mask; thus lowering the effect of it (the more the halo, the less you’ll see the rgb mask); you can modulate it via its gamma setting to mantain vmask visibility on darker areas.

Like explained in the doc, even if halo should in theory have the same effect on scanlines, as it does on the rgb mask, you can further cheat/tweak it by choose how much the halo should affect scanlines via “Light up scanlies gaps too” setting; this is useful if one likes more pronunced scanlines visibility that “survives” to halo.

1 Like

Thank you very much for your help, you are very kind as always. I’m already testing things, seeing if and what I should change your “monitor-slotmadk-bloom-bezel-backimage” preset. I then await the release of your new version to “confirm” the final result. Thank you always for the opportunities that your work gives us users. Good day.

Hi @kokoko3k, just fyi - I pushed my old Intel iMac Late 2013 (Nvidia GTX 780M) to MacOS Monterey with the OpenCore Legacy Patcher. And it was worth the effort: RetroArch Vulkan with koko-aio stock performs impeccably on it in first testing! I will check now my own artwork as well, but quite clear that it will perform very well. So Nvidia on MacOS is also a :white_check_mark:. Your shader truly rocks!

2 Likes

Hi there.

Currently, you can set a custom aspect ratio in the shader options, but it will change the aspect of the bezel too.

If you don’t mind having the border frame, you can just disable it and set retroarch aspect to ‘core provided’

Your use case is interesting, indeed it looks very nice, and i can insert an option to force the aspect just for the content in a future release.

edit

Wops, I see you deleted the post, have you found an alternative solution?

Oh yes, thank you for responding. I withdrew it because when checking again the video was not, in fact, 4:3 but 16:9 letterboxed. I still don’t know why it squeezed the image, but I do have a few more video that were actually 4:3 and they work perfect and look wonderful. So it was my own dumb fault for posting before double checking everything. But the good news is that your shaders are making 480p TV content look incredible. Thank you for your response and I will keep this knowledge with me for the future. Have a wonderful day!

1 Like

Chiming in: I think having the ability to set content to force aspect ratio for content would be great.

I think what you like is the 480i look, not 480p.

If you’re using one of the provided presets, probably the interlaced detection and the flickering emulation kick in.
Since I liked the vibrant flickering effect of the interlaced images, i spent some time tuning that aspect till it looked like i remember them.

@jt.cs, i’ll write it in my todo list, it is growing :slight_smile:

1 Like

These presets are intended for Sega Genesis Games with the intention to play Composite Video + Rainbow banding.

These small presets are made based on January 26th, 2023 update. Maybe works without a problem in most recent version. I think this version had already the RF feature incorporated, not really sure.

Have been looking for a while within these 2 to get as close as I could to the video samples I have had to presence with Composite video + Rainbow banding but also my own experience with it.

The colorful lines were intended to be accurate in case “Borders” are enabled or not, depending of the Genesis core. BlastEm core has Borders enabled by default and Genesis Plus GX have the option to enable it full as well.

Borders can be enabled or disabled in Genesis Plus GX as your own wish but Borders ON is supposed to provide more accuracy with original hardware. Both presets fit this purpose.

Main menu video options: Aspect ratio: 16:9

Main menu audio options: Output rate: 16000 or 22000. I like both as it fits the bad audio quality from back then and fits better with Composite video looking. Resample quality: Lowest

Maybe you like it, maybe nobody cares but I hope you have fun if you use it. Still, it would be great to see it with other TV looking images like those being used with the Mega_bezel project. @Cyber @sonkun @HyperspaceMadness

koko-aio danny CVRainbow march03th,2023-NoBorders

shaders = "17"
shader0 = "shaders_slang/bezel/koko-aio/shaders/first_pass.slang"
filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false"
alias0 = "first_pass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "2.000000"
scale_type_y0 = "source"
scale_y0 = "2.000000"
shader1 = "shaders_slang/bezel/koko-aio/shaders/fxaa.slang"
filter_linear1 = "true"
wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "true"
alias1 = "FXAA_pass"
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/bezel/koko-aio/shaders/shift_and_bleed.slang"
filter_linear2 = "true"
wrap_mode2 = "mirrored_repeat"
mipmap_input2 = "false"
alias2 = "shift_and_bleed_pass"
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/bezel/koko-aio/shaders/in_glow.slang"
filter_linear3 = "true"
wrap_mode3 = "mirrored_repeat"
mipmap_input3 = "false"
alias3 = "in_glow_pass"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/bezel/koko-aio/shaders/halo.slang"
filter_linear4 = "true"
wrap_mode4 = "mirrored_repeat"
mipmap_input4 = "false"
alias4 = "halo_pass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/bezel/koko-aio/shaders/avglum_pass.slang"
filter_linear5 = "true"
wrap_mode5 = "mirrored_repeat"
mipmap_input5 = "false"
alias5 = "avglum_pass"
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "0.500000"
shader6 = "shaders_slang/bezel/koko-aio/shaders/reflection_blur_h.slang"
filter_linear6 = "true"
wrap_mode6 = "mirrored_repeat"
mipmap_input6 = "false"
alias6 = "reflected_blurred_pass1"
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/bezel/koko-aio/shaders/reflection_blur_v.slang"
filter_linear7 = "true"
wrap_mode7 = "mirrored_repeat"
mipmap_input7 = "false"
alias7 = "reflected_blurred_pass2"
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/bezel/koko-aio/shaders/bloom_pass_1.slang"
filter_linear8 = "true"
wrap_mode8 = "mirrored_repeat"
mipmap_input8 = "false"
alias8 = "bloom_pass_1"
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/bezel/koko-aio/shaders/bloom_pass_2.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_edge"
mipmap_input9 = "false"
alias9 = "bloom_pass_2"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "0.500000"
scale_type_y9 = "source"
scale_y9 = "0.500000"
shader10 = "shaders_slang/bezel/koko-aio/shaders/bloom_pass_3.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_edge"
mipmap_input10 = "false"
alias10 = "bloom_pass_3"
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/bezel/koko-aio/shaders/bloom_pass_4.slang"
filter_linear11 = "true"
wrap_mode11 = "mirrored_repeat"
mipmap_input11 = "false"
alias11 = "bloom_pass_final"
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/bezel/koko-aio/shaders/ambi_push_pass.slang"
filter_linear12 = "true"
wrap_mode12 = "mirrored_repeat"
mipmap_input12 = "false"
alias12 = "ambi_push_pass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/bezel/koko-aio/shaders/ambi_pre_pass.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "true"
alias13 = "ambi_pre_pass1"
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
scale_type_x13 = "source"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/bezel/koko-aio/shaders/ambi_temporal_pass.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "ambi_temporal_pass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/bezel/koko-aio/shaders/isrotated.slang"
filter_linear15 = "true"
wrap_mode15 = "mirrored_repeat"
mipmap_input15 = "false"
alias15 = "isrotated_pass"
float_framebuffer15 = "false"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "0.100000"
scale_type_y15 = "viewport"
scale_y15 = "0.100000"
shader16 = "shaders_slang/bezel/koko-aio/shaders/final_pass.slang"
filter_linear16 = "true"
wrap_mode16 = "mirrored_repeat"
mipmap_input16 = "false"
alias16 = "final_pass"
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000"
SATURATION = "0.950000"
CONTRAST = "-0.020000"
BRIGHTNESS = "-0.020000"
TEMPERATURE = "6100.000000"
GAMMA_OUT = "0.415000"
DO_FXAA = "1.000000"
DO_NTSC_ARTIFACTS = "1.000000"
NTSC_FILTER_SCF = "5.330001"
NTSC_MIX = "0.700002"
DO_SAT_BLEED = "1.000000"
SAT_BLEED_STRENGTH = "1.900000"
DO_SHIFT_RGB = "1.000000"
OFFSET_STRENGTH = "1.000000"
SHIFT_B = "20.000000"
DO_IN_GLOW = "1.000000"
IN_GLOW_POWER = "1.749999"
IN_GLOW_W = "0.200000"
IN_GLOW_H = "0.500000"
IN_GLOW_GAMMA = "2.200000"
DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "0.100000"
VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "0.000000"
DARKLINES_PERIOD = "2.000000"
HALO_POWER = "0.500000"
HALO_W = "0.500002"
HALO_H = "3.500000"
HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_DARK = "0.400000"
SCANLINE_COMPENSATION = "0.500000"
SCANLINES_BLEEDING = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_STRENGTH = "1.000000"
DO_BLOOM = "1.000000"
BLOOM_MIX = "0.150000"
BLOOM_POWER = "8.000000"
BLOOM_GAMMA_OUT = "1.200000"
DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.500000"
GEOM_WARP_Y = "0.500000"
GEOM_CORNER_SIZE = "0.005000"
GEOM_CORNER_SMOOTH = "700.000000"
DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.010000"
BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_IMAGE_BORDER = "1.020000"
DO_BG_IMAGE = "1.000000"
AMBI_FALLOFF = "0.400000"
AMBI_POWER = "5.000000"
DO_VIGNETTE = "1.000000"
V_SIZE = "2.700000"
V_POWER = "1.050000"
DO_SPOT = "1.000000"
S_POSITION = "194.000000"
textures = "monitor_body;bg_under;bg_over"
monitor_body = "shaders_slang/bezel/koko-aio/textures/monitor_body.png"
monitor_body_linear = "true"
monitor_body_wrap_mode = "clamp_to_edge"
monitor_body_mipmap = "true"
bg_under = "shaders_slang/bezel/koko-aio/textures/background_under.png"
bg_under_linear = "true"
bg_under_wrap_mode = "mirrored_repeat"
bg_under_mipmap = "true"
bg_over = "shaders_slang/bezel/koko-aio/textures/background_over.png"
bg_over_linear = "true"
bg_over_wrap_mode = "mirrored_repeat"
bg_over_mipmap = "true"

koko-aio danny CVRainbow march03th,2023-YesBorders

shaders = "17"
shader0 = "shaders_slang/bezel/koko-aio/shaders/first_pass.slang"
filter_linear0 = "false"
wrap_mode0 = "mirrored_repeat"
mipmap_input0 = "false"
alias0 = "first_pass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "2.000000"
scale_type_y0 = "source"
scale_y0 = "2.000000"
shader1 = "shaders_slang/bezel/koko-aio/shaders/fxaa.slang"
filter_linear1 = "true"
wrap_mode1 = "mirrored_repeat"
mipmap_input1 = "true"
alias1 = "FXAA_pass"
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/bezel/koko-aio/shaders/shift_and_bleed.slang"
filter_linear2 = "true"
wrap_mode2 = "mirrored_repeat"
mipmap_input2 = "false"
alias2 = "shift_and_bleed_pass"
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/bezel/koko-aio/shaders/in_glow.slang"
filter_linear3 = "true"
wrap_mode3 = "mirrored_repeat"
mipmap_input3 = "false"
alias3 = "in_glow_pass"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/bezel/koko-aio/shaders/halo.slang"
filter_linear4 = "true"
wrap_mode4 = "mirrored_repeat"
mipmap_input4 = "false"
alias4 = "halo_pass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/bezel/koko-aio/shaders/avglum_pass.slang"
filter_linear5 = "true"
wrap_mode5 = "mirrored_repeat"
mipmap_input5 = "false"
alias5 = "avglum_pass"
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "0.500000"
shader6 = "shaders_slang/bezel/koko-aio/shaders/reflection_blur_h.slang"
filter_linear6 = "true"
wrap_mode6 = "mirrored_repeat"
mipmap_input6 = "false"
alias6 = "reflected_blurred_pass1"
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/bezel/koko-aio/shaders/reflection_blur_v.slang"
filter_linear7 = "true"
wrap_mode7 = "mirrored_repeat"
mipmap_input7 = "false"
alias7 = "reflected_blurred_pass2"
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/bezel/koko-aio/shaders/bloom_pass_1.slang"
filter_linear8 = "true"
wrap_mode8 = "mirrored_repeat"
mipmap_input8 = "false"
alias8 = "bloom_pass_1"
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/bezel/koko-aio/shaders/bloom_pass_2.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_edge"
mipmap_input9 = "false"
alias9 = "bloom_pass_2"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "0.500000"
scale_type_y9 = "source"
scale_y9 = "0.500000"
shader10 = "shaders_slang/bezel/koko-aio/shaders/bloom_pass_3.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_edge"
mipmap_input10 = "false"
alias10 = "bloom_pass_3"
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/bezel/koko-aio/shaders/bloom_pass_4.slang"
filter_linear11 = "true"
wrap_mode11 = "mirrored_repeat"
mipmap_input11 = "false"
alias11 = "bloom_pass_final"
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/bezel/koko-aio/shaders/ambi_push_pass.slang"
filter_linear12 = "true"
wrap_mode12 = "mirrored_repeat"
mipmap_input12 = "false"
alias12 = "ambi_push_pass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/bezel/koko-aio/shaders/ambi_pre_pass.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "true"
alias13 = "ambi_pre_pass1"
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
scale_type_x13 = "source"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/bezel/koko-aio/shaders/ambi_temporal_pass.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "ambi_temporal_pass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/bezel/koko-aio/shaders/isrotated.slang"
filter_linear15 = "true"
wrap_mode15 = "mirrored_repeat"
mipmap_input15 = "false"
alias15 = "isrotated_pass"
float_framebuffer15 = "false"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "0.100000"
scale_type_y15 = "viewport"
scale_y15 = "0.100000"
shader16 = "shaders_slang/bezel/koko-aio/shaders/final_pass.slang"
filter_linear16 = "true"
wrap_mode16 = "mirrored_repeat"
mipmap_input16 = "false"
alias16 = "final_pass"
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
DO_CCORRECTION = "1.000000"
SATURATION = "0.950000"
CONTRAST = "-0.020000"
BRIGHTNESS = "-0.020000"
TEMPERATURE = "6100.000000"
GAMMA_OUT = "0.415000"
DO_FXAA = "1.000000"
DO_NTSC_ARTIFACTS = "1.000000"
NTSC_FILTER_SCF = "5.360002"
NTSC_MIX = "0.750000"
DO_SAT_BLEED = "1.000000"
SAT_BLEED_STRENGTH = "1.900000"
DO_SHIFT_RGB = "1.000000"
OFFSET_STRENGTH = "1.000000"
SHIFT_B = "20.000000"
DO_IN_GLOW = "1.000000"
IN_GLOW_POWER = "1.750000"
IN_GLOW_W = "0.200000"
IN_GLOW_H = "0.500000"
IN_GLOW_GAMMA = "2.200000"
DO_VMASK_AND_DARKLINES = "1.000000"
RGB_MASK_STRENGTH = "0.100000"
VMASK_USE_GM = "1.000000"
DARKLINES_STRENGTH = "0.000000"
DARKLINES_PERIOD = "2.000000"
HALO_POWER = "0.500000"
HALO_W = "0.500002"
HALO_H = "3.500000"
HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.800000"
DO_SCANLINES = "1.000000"
SCANLINE_DARK = "0.400000"
SCANLINE_COMPENSATION = "0.500000"
SCANLINES_BLEEDING = "0.300000"
SCANLINE_SM_TYPE = "1.000000"
SCANLINE_SM_STRENGTH = "1.000000"
BLOOM_MIX = "0.150000"
BLOOM_POWER = "8.000000"
BLOOM_GAMMA_OUT = "1.200000"
DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.500000"
GEOM_WARP_Y = "0.500000"
GEOM_CORNER_SIZE = "0.005000"
GEOM_CORNER_SMOOTH = "700.000000"
DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "-0.010000"
BEZEL_FRAME_ZOOM = "0.170000"
BEZEL_IMAGE_BORDER = "1.020000"
DO_BG_IMAGE = "1.000000"
AMBI_FALLOFF = "0.400000"
AMBI_POWER = "5.000000"
DO_VIGNETTE = "1.000000"
V_SIZE = "2.700000"
V_POWER = "1.050000"
DO_SPOT = "1.000000"
S_POSITION = "194.000000"
textures = "monitor_body;bg_under;bg_over"
monitor_body = "shaders_slang/bezel/koko-aio/textures/monitor_body.png"
monitor_body_linear = "true"
monitor_body_wrap_mode = "clamp_to_edge"
monitor_body_mipmap = "true"
bg_under = "shaders_slang/bezel/koko-aio/textures/background_under.png"
bg_under_linear = "true"
bg_under_wrap_mode = "mirrored_repeat"
bg_under_mipmap = "true"
bg_over = "shaders_slang/bezel/koko-aio/textures/background_over.png"
bg_over_linear = "true"
bg_over_wrap_mode = "mirrored_repeat"
bg_over_mipmap = "true"

Thanks again to creator for this very awesome project with variety of presets available.

Have fun

4 Likes

Ahah, thank you. I’m laughing because I was just working on this:

What I was trying to do is to selectively blur artifacts more so that waterfalls have a more solid look.

by comparison:

3 Likes

There’s this little modest playthrough to showcase the new CompositeVideo+Rainbow filter in Sonic 3 complete, Sega Genesis: https://youtube.com/live/1JdgH-NZk5s?feature=share

Related to the post:

Filter used from post above is: koko-aio danny CVRainbow march03th,2023-NoBorders

I hope it helps out a little bit to make more visible your content @kokoko3k

Some specific times to showcase the Rainbow banding, in timestamps like:

OR (see the walls to check how the rainbow banding is flickering)

I simply cannot express how orgasmic this experience has been to see the rainbow colors to be showcased from time to time in some objects that have transparencies. This artifact gives such an old school vibe that I couldn’t ever see again in HD-like content since 2000 and onwards. Thanks again for your amazing presets bud. I hope many more people can reach out your content and give you a lot of love for it.

4 Likes

Ooh, nice. It is a good feeling to know someone is having such a good time thanks to your work. You made my day, thanks!

2 Likes

Greetings boss or anybody else. I would like to know if there’s some way to make it fit to use these presets alongside MegaBezel OR Soqueroeu’s TV layouts.

I have managed to fit somehow one of the presets with some of the Soqueroeu’s layouts but it took quite some time. I’m not sure if its this long to just make it fit with one customized TV layout or there’s some way easier to do it. I had to sacrifice some of the reflections in order to make it fit.

I like default option to this default grey image on both left and right sides, but I really love the TV reflections in all the edges of game screen and would love to have more TV’s variability.

Thanks for any help.

1 Like

Hi there,

you can have reflections on all of the borders if you zoomout the content and the bezel.

Take a look to the commodore 1084s provided preset, it is a good start point.


or even to the work done by @estefan3112 in his fork (screenshots, presets),

Or presets adapted by @Starman99x

The way they are done are basically to take a png file and put an hole in it via alpha channel, then it is a matter of editing the preset by modifying:
bg_over = "textures/background_over.png"
…and aligning things and probably coloring the bezel reflections to match the png via controls in bezel section of koko-aio.

I hope I’ve answered to the question.

4 Likes

Hey boss hello again, do you mean doing this job ? It’s what I attempted to make it fit with your preset. Even though, I did not tweak any preset option(s) but just had to go very slowly to fit it all on the png.

2 Likes

Yes, but modifying the png to make it fit is overkill!

Just put an hole in it and then modify the preset to align everything; once satisfied, save and enjoy :wink:

1 Like

I mean, I made the alpha channel hole but what took quite a while was fitting it perfectly with video scaling > X,Y positions

1 Like

Nice job!

I made the step of those settings extremely tiny on purpose, so that you can align everything perfectly, but if you have suggestions to make the process faster, i’m here.

3 Likes

3.9 is up on github.

Even if there are a lot of changes, the overral look is the same as before, and other changes are difficult to show in still images.

Eg:
The bloom (visually improved, expecially for big sizes) can be temporally smoothed depending on the zone luminance to mimic the eye that adapts to new light conditions with a configurable inertia, speed and amount.
I enabled that in presets with conservative values, but you can have fun modifying the parameters.

The full screen zoom/glow that depends on the image luminance is now temporally smoothed too, to give a nice effect of “entrance” when brightness suddently goes up.
Bezel reflections has been modified to reflect that.

Other notable addition are the ntsc artifacts that can be used to modulate the blur strength (this is a last minute change which is nice to have, but not perfect).

Other tweaks here and there added because of your suggestions/requests like RF noise, the ability to shift and zoom the whole screen, the (static) support for backdrop images for games that used mirrors to overlay graphics over static backgrounds.

Also, i’m proud to say that performance penalty seen in 3.5 over 3.0 not only has been fully recovered, but 3.8 performs even better than 3.0 with the same features enabled.

I’ll take a final look tomorrow to double check everything is fine and will try to put everything on retroarch.

If you find something that needs to be adjusted/corrected, please let me know!

Edit:

3.9.01 released today with some very minor changes over 3.9 and has been just merged into retroarch bundled shaders.

Have (and share) the fun!

12 Likes