How to use gdapt/mdapt/cbod with a crt-shader?

So a few days ago I discovered these 3 shaders that blur the dithering. So far I’ve been using GTU to blur the dithering as best as it can but these shaders seem to be a far better solution. I tried them on their own and the results are fantastic (cbod completely eliminates PS1 dithering) but I want to use a crt-shader on top of it too. There doesn’t seem to be any .cgp with a configuration like this even though there are so many with NTSC filters. I’ve tried loading gdapt.cgp and then adding crt-interlaced-halation manually like this but the crt-shader completely cancels out gdapt and the blurring is gone. How can I do this?

Depending on the CRT shader, some have references to specific passes (such as the original, unfiltered image) that can negate other effects. Try a single-pass one, like crt-hyllian or crt-easymode and see how that treats you. I think the easymode halation one is setup to allow pre-filtering.

Thanks man, it worked! I should have tried with easymode first before making this thread. I’m just so used to crt-interlaced-halation that it didn’t cross my mind - I thought this would have been easier.

What do you think of the result?

EDIT:

Welp, guess I needed a thread after all. I found a problem playing PS1

Look at the ceiling. Might this be an issue with the gamma settings?

You mean the stuff that’s not getting blended? If so, it’s because the de-dithering shaders only spot specific checkerboard-type patterns. Dithering that doesn’t follow those exact patterns gets missed.

This is where blurring methods like GTU can have some advantages.

[QUOTE=hunterk;30098]You mean the stuff that’s not getting blended? If so, it’s because the de-dithering shaders only spot specific checkerboard-type patterns. Dithering that doesn’t follow those exact patterns gets missed.

This is where blurring methods like GTU can have some advantages.[/QUOTE]

No, I don’t think that’s it. Look at the dark spots on the ceiling and compare to the first screenshots I posted

This is how it should look like.

if I add gdapt or cbod it becomes pitch black

Ah, yeah, i see what you mean. Dunno!

[QUOTE=VidarPT;30100]No, I don’t think that’s it. Look at the dark spots on the ceiling and compare to the first screenshots I posted

This is how it should look like.

if I add gdapt or cbod it becomes pitch black[/QUOTE]

I see what you’re talking about.

Can you load both the dithering and CRT shaders again, save it as a shader preset, then post the preset for me?

[QUOTE=EasyMode;30119]I see what you’re talking about.

Can you load both the dithering and CRT shaders again, save it as a shader preset, then post the preset for me?[/QUOTE]

I’m at school right now. I’ll do it as soon as I get home.

I’m using crt-lottes with cbod and it works fine. Seems to be an issue with your shader or some other pass that it uses.

[QUOTE=EasyMode;30119]I see what you’re talking about.

Can you load both the dithering and CRT shaders again, save it as a shader preset, then post the preset for me?[/QUOTE]


shaders = "7"
shader0 = "D:\Emuladores\RetroArch\shaders\shaders_cg\dithering\shaders\cbod-v1\cbod-v1-pass1.cg"
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 = "D:\Emuladores\RetroArch\shaders\shaders_cg\dithering\shaders\cbod-v1\cbod-v1-pass2.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 = "D:\Emuladores\RetroArch\shaders\shaders_cg\crt\shaders\crt-easymode-halation\linearize.cg"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "D:\Emuladores\RetroArch\shaders\shaders_cg\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 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "D:\Emuladores\RetroArch\shaders\shaders_cg\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 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "D:\Emuladores\RetroArch\shaders\shaders_cg\crt\shaders\crt-easymode-halation	hreshold.cg"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "D:\Emuladores\RetroArch\shaders\shaders_cg\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 = "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"
GAMMA_INPUT = "2.400000"
GAMMA_OUTPUT = "2.200000"
SHARPNESS_H = "0.600000"
SHARPNESS_V = "1.000000"
MASK_TYPE = "4.000000"
MASK_STRENGTH_MIN = "0.250000"
MASK_STRENGTH_MAX = "0.250000"
MASK_SIZE = "1.000000"
SCANLINE_STRENGTH_MIN = "0.300000"
SCANLINE_STRENGTH_MAX = "0.400000"
SCANLINE_BEAM_MIN = "0.900000"
SCANLINE_BEAM_MAX = "1.000000"
GEOM_CURVATURE = "0.000000"
GEOM_WARP = "0.000000"
GEOM_CORNER_SIZE = "0.000000"
GEOM_CORNER_SMOOTH = "150.000000"
INTERLACING_TOGGLE = "1.000000"
HALATION = "0.030000"
DIFFUSION = "0.010000"
BRIGHTNESS = "1.000000"

There you go. Is this what you wanted?

I’ve noticed this too on some textures in N64 games I was testing when using easymode-halation. I think it’s something in the linearize pass, if I remember correctly that ends up turning everything under a certain brightness to black.

Yes, thank you. Hopefully I can figure out why they don’t play well together.

Although in my testing, the single pass version of crt-easymode works fine with the dithering shaders.

You encountered this when using easymode-halation with other shaders or by itself?

Ah, I see the problem. The following shaders need to have srgb_framebuffer set to true in the preset file: linearize, blur_horiz, blur_vert, threshold. Once the preset file is reloaded, the banding in dark areas should go away.

srgb_framebuffer can only be set in preset files, not when manually setting shaders while running RetroArch.

1 Like

[QUOTE=EasyMode;30183]Ah, I see the problem. The following shaders need to have srgb_framebuffer set to true in the preset file: linearize, blur_horiz, blur_vert, threshold. Once the preset file is reloaded, the banding in dark areas should go away.

srgb_framebuffer can only be set in preset files, not when manually setting shaders while running RetroArch.[/QUOTE]

Indeed, that worked wonders

1 Like

Just getting back into testing some N64 stuff in the newer Parallel emulator, and I am still seeing banding issues with EasyMode Halation. For example, Conker’s Bad Fur Day or Banjo Kazooie. The banding issues are not present in the single pass EasyMode shader.

I did check my local files and the SRGB flag is set as noted above in the preset file. I also redownloaded the glsl shaders through the RetroArch menu just to make sure they were the most recent version. This is while running on a Shield TV in opengl mode.

Any ideas what might still be causing this? I’ve tried playing around with different parameter settings in case this was a gamma or brightness issue, but the problem seems to persist in every test I’ve run so far.

I hope my necrobump doesn’t bother anyone… been trying to do exactly this (easymode halation on top of dithering shader) and sheer luck brought me here!

Also this will likely solve a few issues I was having with dark-area banding when stacking some shaders (AA and image adjustment) pre-easymode halation.