II’m looking for a way to get rid of dithering and a make the image less ringing. I know I can achieve that with blargg or video soft filters however they don’t work with all cores. I’m trying to mix crt-easymode-halation and ntsc presets but the result is a mess since I’m not sure wich shaders should go first or later or if there’s no way to get those presets together at all. I know I can add any single crt .cg after the ntsc preset but I need help with easymode-halation.
Here you go:
shaders = 8
shader0 = ../ntsc/shaders/ntsc-pass1-composite-3phase.cg
shader1 = ../ntsc/shaders/ntsc-pass2-3phase.cg
shader2 = ../ntsc/shaders/ntsc-gauss-pass.cg
shader3 = ../ntsc/shaders/ntsc-stock.cg
filter_linear0 = false
filter_linear1 = false
filter_linear2 = false
filter_linear3 = true
scale_type0 = source
scale_x0 = 4.0
scale_y0 = 1.0
frame_count_mod0 = 2
float_framebuffer0 = true
scale_type1 = source
scale_x1 = 0.5
scale_y1 = 1.0
scale_type_x2 = source
scale_type_y2 = viewport
scale2 = 1.0
shader3 = "../crt/shaders/crt-easymode-halation/linearize.cg"
filter_linear3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "../crt/shaders/crt-easymode-halation/blur_horiz.cg"
filter_linear4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "../crt/shaders/crt-easymode-halation/blur_vert.cg"
filter_linear5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "../crt/shaders/crt-easymode-halation/threshold.cg"
filter_linear6 = "false"
srgb_framebuffer6 = "true"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "../crt/shaders/crt-easymode-halation/crt-easymode-halation.cg"
filter_linear7 = "true"
Save this as a cgp and put it in the subdirectory of your choice (cgp, ntsc or crt being the most obvious candidates).
Thanks for the help but the result was not what I expected…
Here’s how it looks like with crt-easymode-halation with tweked params plus blargg composite filter (genesis plus gx built in):
I’m look for the correct order to mix ntsc-320px.cgp (to be more specific) with crt-easymode-halation.cgp. Also I noticed in the .cgp you provided the first shader pass had a 4x scale, is it needed? If so it wouldn’t get full speed for me.
That would have been good information to have before. Anyway, try this one. I think it looks more like you were expecting:
shaders = 7
shader0 = ../ntsc/shaders/ntsc-pass1-composite-2phase.cg
shader1 = ../ntsc/shaders/ntsc-pass2-2phase-gamma.cg
filter_linear0 = false
filter_linear1 = false
scale_type_x0 = absolute
scale_type_y0 = source
scale_x0 = 1280
scale_y0 = 1.0
frame_count_mod0 = 2
float_framebuffer0 = true
scale_type1 = source
scale_x1 = 0.5
scale_y1 = 1.0
shader2 = "../crt/shaders/crt-easymode-halation/linearize.cg"
filter_linear2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "../crt/shaders/crt-easymode-halation/blur_horiz.cg"
filter_linear3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "../crt/shaders/crt-easymode-halation/blur_vert.cg"
filter_linear4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "../crt/shaders/crt-easymode-halation/threshold.cg"
filter_linear5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "../crt/shaders/crt-easymode-halation/crt-easymode-halation.cg"
filter_linear6 = "true"
Thanks again. In fact it looks as expected but way too slow on my old laptop. In order to get full speed I guess I’ll stick with ntsc on cores that support it or I can use tv-outs shader wich has a reslution param that can take care of dithering. Any other suggestion for composite look and dithering treatment is welcome.
If anyone wants to see how it looks here’s the .cgp:
shaders = "7"
shader0 = ":\shaders\shaders_cg\cgp\../ntsc/shaders/ntsc-pass1-composite-2phase.cg"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
frame_count_mod0 = "2"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "true"
srgb_framebuffer0 = "false"
scale_type_x0 = "absolute"
scale_x0 = "1280"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = ":\shaders\shaders_cg\cgp\../ntsc/shaders/ntsc-pass2-2phase-gamma.cg"
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\shaders_cg\cgp\../crt/shaders/crt-easymode-halation/linearize.cg"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = ":\shaders\shaders_cg\cgp\../crt/shaders/crt-easymode-halation/blur_horiz.cg"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = ":\shaders\shaders_cg\cgp\../crt/shaders/crt-easymode-halation/blur_vert.cg"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = ":\shaders\shaders_cg\cgp\../crt/shaders/crt-easymode-halation/threshold.cg"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = ":\shaders\shaders_cg\cgp\../crt/shaders/crt-easymode-halation/crt-easymode-halation.cg"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
parameters = "NTSC_CRT_GAMMA;NTSC_MONITOR_GAMMA;GAMMA_INPUT;GAMMA_OUTPUT;SHARPNESS_H;SHARPNESS_V;MASK_TYPE;MASK_STRENGTH_MIN;MASK_STRENGTH_MAX;MASK_SIZE;SCANLINE_STRENGTH_MIN;SCANLINE_STRENGTH_MAX;SCANLINE_BEAM_MIN;SCANLINE_BEAM_MAX;GEOM_CURVATURE;GEOM_WARP;GEOM_CORNER_SIZE;GEOM_CORNER_SMOOTH;INTERLACING_TOGGLE;HALATION;DIFFUSION;BRIGHTNESS"
NTSC_CRT_GAMMA = "2.500000"
NTSC_MONITOR_GAMMA = "2.000000"
GAMMA_INPUT = "2.400000"
GAMMA_OUTPUT = "2.200000"
SHARPNESS_H = "0.000000"
SHARPNESS_V = "0.000000"
MASK_TYPE = "1.000000"
MASK_STRENGTH_MIN = "0.500000"
MASK_STRENGTH_MAX = "0.500000"
MASK_SIZE = "1.000000"
SCANLINE_STRENGTH_MIN = "0.200000"
SCANLINE_STRENGTH_MAX = "0.400000"
SCANLINE_BEAM_MIN = "5.000000"
SCANLINE_BEAM_MAX = "5.000000"
GEOM_CURVATURE = "0.000000"
GEOM_WARP = "0.000000"
GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "150.000000"
INTERLACING_TOGGLE = "1.000000"
HALATION = "0.160000"
DIFFUSION = "0.080000"
BRIGHTNESS = "1.000000"
I have a PS3 connected to an CRT throught composite cable running retroarch and it looks exactly the same thing, even the flickering of 480i. crt-easymode-halation looks amazing with composite soft filter, unfortunately, as far I tested, this filter works only on few Nintendo cores.