Another fast CRT shader

Ahh! Thanks, hunterk. Now I understand!

Curvature is nice to play with, but it’s not fullspeed on my non-overclocked PI3, causing small hiccups once in a while (as I said, I am on double-buffered graphics). Maybe overclocking the GPU I could avoid those while keeping curvature. I’ll have to experiment :slight_smile:

I love this shader, it works very well with all the cores in a low-end gpu. They should add it in upcoming Lakka updates.

1 Like

I really like this shader :slightly_smiling_face: It’s possible add some bloom effect?

Not without wrecking performance, unfortunately.

1 Like

Fake lottes is by far the best shader for low end computers like my 2009 macbook. Thanks as usual, hunter!

1 Like

It also runs full speed on an old windows XP laptop, dual core, GMA x4500. Also runs full speed crt-pi, zfast-crt if anyone is interested. Personally i prefer crt-pi on that screen, looks better on 720p.

1 Like

For some reason, ‘fakelottes’ (version that is bundled with the latest Lakka) wrecks the perfomance of the Genesis Plus GX core (while both crt-pi and crt-nes-mini work just fine) on RPi 4. Can anyone suggest why that may be the case?

hi where can i get this shader, wanna try

It should be with the rest of the shaders. [shader dir]/crt/fakelottes

Hi hunterk: i think i have found an error in fakelottes.

    //vec2 omega = vec2(3.1415 * OutputSize.x, 2.0 * 3.1415 * TextureSize.y);
    vec2 omega = vec2(3.1415 * OutputSize.x, 3.1415 * OutputSize.y)

i only get sideways scanlines with my change. (texturesize->outputsize)

[EDIT] knowing full well i may have misunderstood what SCANLINE_SINE_COMP_B was intended to do… But on my box, it just brightens/darkens the image with fakelottes on my Jetson Nano.

My variant is here if anyone wants to check out the horizontal scanline action and maybe tell me what I have misunderstood, if anything.

fastlottes.glsl

Thanks - cheers

fakelottes: 9.9% gpu on Jetson Nano fastlottes: 8.0% gpu on Jetson Nano

I’m loving this shader @hunterk Does it turn vertical automatically with certain cores?

I don’t understand the option for turning vertical being ‘commented out by default’

How do a verticalise it in Retroarch?

Thanks.

open the shader file (crt/shaders/fakelottes.slang) in a text editor and delete the // in front of this line:

4 Likes

Hello, I try to improve performance of this shader in my GPD XD (which use gl graphics only) : please, is there any parameter I can remove to improve the performance and keeping the grid as it is ? So far, my GPD XD is getting really hot while playing with this shader. Thank you very much for your kind help

The mask is the part that uses the most resources. You can comment that out, but that’s about it.

1 Like

I hope to try and feedback the results, a big thanks for your help !

1 Like

This is the best looking lightweight shader I’ve found, although CRT-Pi is a little faster on my Android, it has very dark scanlines, a very faint mask but produces very strong moire. I gave up trying to configure it.

This one works very well even with the default settings. Thanks!

1 Like

I’ve been using this a lot more than I expected, it’s great considering how light and easy to run it is. Thank you for making it.

3 Likes

Hello guys! I’m about to get Anbernic RG406V, which has a 960×720 screen resolution, and I’d love your suggestion on which version of the shader would be best suited for this device - would you recommend using fakelottes-geom-mini or fakelottes-geom for a 720p screen? Does ‘mini’ means it’s made for handhelds? Geom (not mini) says in description about sub-HD res

Thanks in advance for your advice and for creating such a fantastic-looking shader!

For those of you who, like me, appreciate the look and speed of Fakelottes, I created a shader preset that also adds a lightweight NTSC shader pass to it, which will add the characteristic Composite or S-Video look and allow it to better display effects like the iconic Sonic Waterfall.

The NTSC shader pass I used is not resource-intensive, I used the lightest one I found but that still provided a consistent look between the GLSL and Slang versions. More advanced NTSC shades would give a better and more accurate look, but they also are more demanding (like ntsc-adaptive.slangp), so I gave up on using them since the focus here is on being lightweight and fast.

It still ran on a cheap low-end Android device from 2021 that I had (that according to some reviews I read, apparently is comparable to the Raspberry Pi 4 in performance), so I thought more people might appreciate it and submitted a PR to the repository some months ago, already merged.

You can find it in /shaders_glsl/presets/fakelottes-ntsc* if you’re using GL as video driver, and in /shaders_slang/presets/crt-plus-signal/fakelottes-ntsc* if you’re using Vulkan, GLCore or D3DXX as video driver.

5 Likes

Just to add some extra info to my comment above. By default, it doesn’t do the dithering effect that well, but you can change that by going to Shader Parameters>Luma Resolution.

The default value is set to 1.60, and it looks like this:

With it set to 0.80, it looks like this:

I didn’t change this in the preset because I think it’s up to the user to decide how they want the image. I like Super Nintendo games with the default value of 1.60, but I prefer Genesis/Mega Drive games at about ~0.80.

Also, I want to give a big thank you to metallic77/DariusG on GitHub, who developed the ntsc_module.slang for his CRT-Consumer-1w shader, and allowed me to use it in this preset for Fakelottes (originally, I used the great ntsc-adaptive.slangp, but unfortunately it caused a performance hit on my weak Android).

4 Likes