[REQUEST] crt-guest-dr-venom with interlacing support

I know, I know, I’m constantly asking for all of the things… BUT, I think alot of people would like interlacing support (if they’re like me and not the biggest fan of the (high TVL mode?) extra thin scanlines at higher resolutions).

I’m also suggesting that this be a variant version of crt-guest, as some will still want the old behavior available.

Really I can only think of about three solutions for thin scanlines at higher internal resolutions (I understand that the shader was written with this mode in mind; thin scanlines/high v-resolution).

  • Solution 1: Use a stock shader pass to force 240p. (Personally really dislike how this ends up looking.)

  • Solution 2: Add some form of interlacing to the shader. (Ideally as part of the main/final pass, with similar setting to the interlacing.glsl’s scanline brightness (maybe calling it the wrong thing?) but raising it reduced the flickering appearance.)

  • Solution 3: Do something similar to what crt-hyllian-3D does (raising the “scanline resolution”), @guest.r I still have that hacky prototype from forever ago for this, from what I recall the only issue with this, was that the mask ended up doing some weird stuff, like it wasn’t scaling properly (kinda looked to big) or something (if it’s the mask doing weird scaling, this could be an easy fix… I’ll look and see if I can get it working properly.)

Ideally option 2 or 3 would be the best solution for this (problem?).

2 Likes

@guest.r So I made some progress on option 3.

I’ve gotten this working what seems like correctly, on my nonsense (modded) version of guest-venom.

Now I guess all I have to do is port that over to the most recent version of crt-guest-dr-venom, and figure out the best way to make a setting in the shader so you can match which IR the game is at 2x, 3x, 4x, etc (like hyllian-3D). This way there doesn’t need to be 8 versions of this increased resolution shader, one for each resolution multiple would be a nightmare.

1 Like

Been tinkering with interlacing a bit and sometimes it gives very interesting results. It’s a bit of a straining thought though to combine it only with the regular preset.

In order to get the effect something like this must be added into the shader:

float line_no  = floor(mod(float(OGL2Pos.y),2.0));  // change y with x for TATE
float frame_no = floor(mod(float(FrameCount),2.0));
color = mix(color1, color2, abs(line_no-frame_no)); 

Add it after the line:

vec3 color = color1*w1 + color2*w2;

You can also add an parameter and use IF…

Ofc. the vertical effect is quite hard. To get sweet results with some games, the preset must be altered. Last shader (crt-guest-dr-venom) goes like this:

shader10 = shaders/guest/crt-guest-dr-venom.glsl
filter_linear10 = true
scale_type_x10 = viewport
scale_x10 = 1.0
scale_type_y10 = source
scale_y10 = 1.0 

Unfortunatelly, a screenie only shows an odd or even frame, but some games look nicely vibrant.

2 Likes

I’ll test this out after I wake back up XD.

This is cool though, thanks for taking the time and effort out for this!

2 Likes