updated guide on changing sharpness/decreasing scanline in crt-geom?

I’m using crt-interlaced-halation, which as I understand is derived from crt-geom. So far, I’ve used the emugen wiki to edit it to flatten the curvature. However, the wiki’s instructions on increasing sharpness and decreasing scanline size seem out of date.

The instructions say they refer to “old XML shader format only,” and the variables I need to change, ‘rubyInputSize’ and ‘rubyTextureSize’ seem to have been deprecated, as they are not present in the shader I’m using.

Does anyone know how to get it done in the current shader? I’m currently looking at crt-interlaced-halation-pass2.cg, do I need to mess with pass0 and pass1 as well? What changes do I need to make?

The equivalents for Cg would be IN.input_size and IN.texture_size. Do note that Cg is deprecated and you should probably switch over to GLSL or slang unless you’re using the d3d9 driver or are on a PS3.

That’s my mistake, apologies, I should have linked the glsl that I am indeed already using..

What would I need to edit in the GLSL, given that it doesn’t have ‘rubyInputSize’ and ‘rubyTextureSize’ either? Am I correct to assume that crt-interlaced-halation is the same thing as crt-geom-halation? I haven’t been able to find the latter on the Internet, but crt-interlaced-halation seemed like it might be the same thing to me.

After some more research, it looks like crt-interlaced-halation is essentially crt-geom with halation. However, crt-geom has parameters that can be edited through retroarch whereas crt-interlaced-halation has none.

Does anyone know what I need to change in crt-interlaced-halation-pass2.glsl to apply 4x sharpness and/or get thinner scanlines, like you might get on a 480p TV?

In the case of GLSL, you can use InputSize and TextureSize directly. I usually port from slang to GLSL to keep the repos in sync, so you might see slang-isms in there, in which case, InputSize and TextureSize are both “SourceSize”

Well, I tried putting

vec2 TextureSize = vec2(4*TextureSize.x, 4*TextureSize.y);

at the end of the ‘Fragment’ and ‘Vertex’ sections of crt-interlaced-halation-pass2.gsl

and I put

<fragment filter="nearest" outscale_x="1" outscale_y="2"><![CDATA[

just below the line that says

#elif defined(FRAGMENT)

as instructed in the emugen crt-geom guide, in the section Scanline Size but that just breaks the shader, resulting in an unfiltered image onscreen. I reverted the changes and now it’s back to how it was, but what am I doing wrong? I’m pretty new to this, never done anything like this before.