CRT-Interlaced-Halation, vertical chroma pattern on TV

Hello, when I use the halation shader on my monitor it shows fine but when on TV a vertical pattern is shown, pretty much as if the vertical phosphors were merged horizontally and became thick bars. I don’t know why this happens, I understand this might be due to a resizing process but everything is set avoid unnecessary scales.

My snes configuration is integer on, AR 8:7 (1:1 par), fullscreen. My monitor is 1280x1024 and shows fine. My TV is HDReady input through HDMI, so 1376x768, but on OS is set to 1280x720 (video card doesn’t work with that halfway resolution), so at worst there is an upscale involved which shouldn’t really harm much.

Here is snapshot showing the chroma bars, although on this take I was using 4:3 AR. It also happens with Sonic CD so pretty much bound to shader.

That version has some hardcoded scale factor stuff that makes it run fast but can lead to this issue. Probably the simplest solution is to comment out the dot mask code at the end of the third pass. You’ll lose that effect, of course, but everything else should still work.

I see, thank you, I will check the next days on TV.

edit: btw do you know any other version without those speed hacks? Curently I’m using the Tetsuya79 mod.

I tested on monitor, and it certainly loses half the joy.

Now it looks like simple strange and broken horizontal lines. We need one working curve shader at least. Aside of the vertical bug, I realised how the halation is kinda bad quality. We have crt-geom-flat but it doesn’t have bloom.

btw do you know any other version without those speed hacks? Curently I’m using the Tetsuya79 mod.

It looks like it’s point-sampling the output from the blurred pass. That’s supposed to be bilinear.

What did I do? =|

That’s the current cgp from github:

shaders = "4"
shader0 = crt-interlaced-halation-pass0.cg
filter_linear0 = "false"
float_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = crt-interlaced-halation-pass1.cg
filter_linear1 = "false"
float_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = crt-interlaced-halation-pass2.cg
filter_linear2 = "false"
float_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "3.000000"
scale_type_y2 = "source"
scale_y2 = "3.000000"
shader3 = ../../quilez.cg
filter_linear3 = "true"
float_framebuffer3 = "false"

Any Pass that should be linear?

Tatsuya79, got this response from hunterk, in case it rings a bell, I don’t understand the insights of these shaders.

I don’t understand everything either. But the one on github I pasted is ok, guess quilez at the end does its job. :stuck_out_tongue: