ZFast Vertical, does it exist?

Hi there!

For Raspberry PI 4 usage, I love ZFast. Is there a vertical variant for vertical games?


Sufficiently recent versions of zfast-crt and RetroArch should handle vertical games perfectly, except if you are an unlucky user of mame2016/mame (see https://github.com/libretro/mame/issues/261)

I am trying to use crt/zfast-crt.slangp with vertical games in FBNeo, and they show clear patterns (with integer scaling ON, of course), while it works great for horizontal games.

I am using these vertical games “rotated”, so maybe I am just being unrealistic here and zfast-crt should handle them well only when they are run in vertical mode?

Are you sure you are using the latest versions of this shader and retroarch ? I fixed this problem some time ago with https://github.com/libretro/slang-shaders/commit/b0c288b14146fc52309a2a070903ab6b989afd17 and https://github.com/libretro/RetroArch/commit/7cb250f8277d2e562ac162d370dc585f936c18b1

It was used on FBNeo for this screenshot :

@BarbuDreadMon Yes, I just cloned the glsl and slang shaders repositories on github, so that’s where I got them from. I am usong a 720p video mode. Maybe that’s related?

I don’t know :confused:

If you are only giving the long axis 720 pixels to work with, any shader that uses a mask will look really bad.

You are better of using the simple scanline shader.


If I recall correctly, integer scaling breaks when rotating games, it does not do what you expect it to do. That is, it does not do integer scale on the horizontal axis (which is the vertical axis before rotation).

For this reason I like playing vertical games with a 1:1 aspect ratio (i.e. a square image) since I get the proper integer scale on the horizontal axis, plus it just looks more comfortable to my eyes on a horizontal display.

I posted a screenshot on a previous thread:


Here is the image with better zoom, full image is 672x672 for 720p display, works great:

1 Like

The Mega Bezel shader has integer options for both axes.

1 Like

I think “great” would be a very relative term here.

Here is ZFast on a 4K monitor.


With 720 pixels I think it is reduced to an inferior version of a simple scaline shader. :frowning_face:


Yeah it looks like a simple scanlines overlay with a bit of brightness boost. I don’t see any mask (?) too. Well that’s one reason I edited some shaders, I wasn’t happy with most of these ‘fast’ shaders.

1 Like

Compare to the native resolution of your display, presumably you’re not using a rare genuine 720p panel TV.

1 Like

Test this and tell me what you think


Thanks! Looks nice, but too slow on the Pi4 that’s where I use retroarch most of the time… :frowning:

Then pi-4 shouldn’t be capable to run CRT-Pi because this should be faster than CRT-Pi.

Strange… Do you have a Vulkan version of this?

I checked the code on github and the commit on August 19, #144 has broken the mask (tested with previous code). I remember well that this shader had a dotmask (and looked like a flat crt-geom).