About scanlines: I need to get to the bottom of this

I have finally found a way to run psx games at speedy frame rates with 2x IR + scanlines that doesn’t require reshade and looks great: guest_sm, only at 720p (or 1440, 2160 etc as well, but my computer can’t cope with those and besides I’m not interested in super high resolutions for old games).

Anyway, there’s a few things that I don’t understand (I hope I’m not being stupid), I know some of you have the answers and I would really appreciate them.

First off, these are what I consider good scanlines. It’s the look that I want for almost everything. In this case, I get them @ 960p, 1x internal resolution.

Now as soon as I increase the IR, this is what happens, same shader preset of course.

Then, if I run the game at 720, again same preset I get them back, like this

or this

Notice how Tekken’s lines are thicker (and nicer in my opinion).

So my questions are:

  1. In a 2x IR scenario, why do I get scanlines at 720 and not at 960, both being integer multiples of 240?

  2. Why do the lines disappear at 2x IR/960p?

  3. Why are the lines so thin at 2x IR/720p?

  4. Why are the lines thicker in Tekken 3? (I guess this has to do with its higher, interlaced resolution, but I would love some technical details here).

  5. Is it actually possible to get things to look like the first screen without using downscaling tricks?

Looking forward to your answers!

Scanlines scale to the ir resolution unless you use downscaling. Lower ir = thicker scanlines. Thats all I can help you with. It should probably look the same regardless if it is in 720p or 1440p.

1 Like

All I can think of that makes it different between different resolutions is because you need to turn off then on integer scale again.

Try resizing back to 1x within the shader preset, you get the effect of multisampling but with the cool scanlines.

scale_type_x2 = "absolute"
scale_x2 = "320"
scale_type_y2 = "absolute"
scale_y2 = "240"

There’s also a res-independent-scanlines shader (slang version is in better shape at the moment; i need to apply latest changes to glsl version) that will not be tied to the content size.


I guess you should really ask guest about this if you wanted to know the details. I would just guess based on another core I tried with Geom yesterday that 1 +2 are due to interlace detection kicking in at certain number of lines and the shader scaling with IR. So 960 is 2x 480, but 720 is not = not detected as interlace = scanlines.

Tekken 3 runs in 320x480 natively I believe, at 720p but with IRx2 you scale that down.

1 Like

Good to know!

@Dogway - cool, where in the chain should I put that?

@hunterk - didn’t know about that one, damn. Is it new? Will try it right away. Edit: just tried it, too much black. I would like something more subtle and that changes dynamically depending on the content, like the proper scanlines from good shaders.

@Jamirus - that’s all very interesting, and makes sense. I would like to know the details indeed. Perhaps interlace detection can be turned off or modified so one can choose how to trigger it? @guest.r @hunterk , maybe you can help with that?

1 Like

The interlacing in guest-dr-venom has a setting to set what vertical resolution the interlacing is triggered at.


I was just extrapolating from Geom’s behavior with the Xmillenium core that (currently) uses an internal res of 640x400. Because the games I’ve tested there actually use 320x200 you get thick scanlines once you turn off interlace in Geom, but it turns out this doesn’t work with Guest Venom, so the actual issue is probably how scanlines are generated in relation to res and not interlacing per se.