Classic CRT Collection - Overlay Pack (Work in Progress)

Hello, everyone!

This is my first topic post here and I wanted to show some stuff I’ve been working on and would love some feedback.

I’m working to create a moderately large pack of CRT overlays, but I’d like some help from the community with supplying some good images to work from. Each of the current overlays has an optional screen-glare variation. They’re designed for 960x720 4:3 @ 1080p and the CRT-Pi Curved shader (though any CRT shader should work.)

All of the pictures below were taken directly on my Pi 3 B+ using raspi2png and look exactly as it does in RetroArch on the Pi (and pretty much any other RetroArch platform.) (Scanlines can show weird moire patterns when downscaled, so please click the images for full size.)

I’m still working to perfect these, and once I get a good groove going, it will be trivial to expand the library of overlays. I would greatly appreciate any feedback.


To use these overlays, you will need to place the CRT folder in your overlay folder on your Pi: /opt/retropie/configs/all/retroarch/overlay

You will then be able to access them from the Quick Menu.

Retroarch Video Settings:

1080p Settings Value
Aspect Ratio Custom
Custom Aspect Ratio X Pos 480
Custom Aspect Ratio Y Pos 180
Custom Aspect Ratio Width 960
Custom Aspect Ratio Height 720
Integer Scale Off

Most of these overlays need a curved CRT shader to avoid cropping too much in the image corners. On my RetroPie setup, I use the CRT-Pi Curved shader with most settings at default, and this change:

Shader Variable Value
Screen Curvature Vertical 0.25

These are awesome! Great job!

1 Like

Very nice and consistent, lovely work.

1 Like

I have decided to make a custom ReShade shader for users on Windows who want more flexibility and realism:

So far, there are per-CRT color profiles, working bezel reflections, adjustable screen damage and reflectivity, and room light level. More to come.

The bezel reflections can be hard to notice on a still, but you can make it out if you look at the screen and the bezel right next to it. The sky color and ground color are visibly reflected on the bezel on the right side as well as the sky being reflected on the top bezel.


Got Lottes CRT and the NTSC shader ported over to ReShade. All RetroArch shaders are disabled here. Everything is being done in ReShade. Here is a shot demonstrating the night lighting (it now has the ability to sync to your system time!)

Look at those lovely bezel reflections. MMMMmmmm…


These look amazing! I’ve been using some of them for past few days in RetroArch. But it’s great that you ported them over to ReShade! Will you share the ReShade preset? Does that mean that these can be put over anything that supports ReShade, like some classic Windows games?

Yes, the Reshade preset will be released when it’s ready, but as far as supporting other software beyond Retroarch, you’ll need a way to get the game content squeezed down into an exact 960x720 content area. Otherwise it won’t work, though I’m looking into an alternative method.


Yeah, that’s the problem I encountered when I tried to apply the overlay with ReShade alone in other software (like classic Windows games or PCSX2 emulator). I got the CRT shaders and Overlay to work, but I couldn’t find any way to squeeze the game screen in the content area of my overlay.

I looked on the ReShade forums, but it seems that “Horizontal / Vertical Stretch” shader is on the list of “ideas” to implement in ReShade, but it hasn’t been done by anyone yet. It would be really cool if it was possible to achieve similar overlay results in other, stand-alone emulators or classic Windows games.

Hey Finnen,

for months I had the exact same problem like you. Finally I took a closer look into the stock shader “CRT.fx” which is delivered with reshade. I instantly found a nice little tweak to use the “overscan”-parameter to be used as zoom-in as wells as zoom-out by just changing the accepted limits for the value.

I then took a closer look into the crt.fx-shader and were able to add some new parameters: zoom_x, zoom_y, offset_x and offset_y :slight_smile:

Now I was able to set the exact position and size, wherever I want to have it on the screen. Finally I combined this shader with a simple shader called “Hud_Tech” which originally was designed to display a crosshair for aiming. It was easy to convert it to a shader that just display an overlay.

For a while now I use these 2 shaders with steem, winuae, hoxs, demul, dolphin, supermodel and some others. For me it works perfectly. Maybe it’s exactly what you are looking for …

Here’s the dropbox link to my modified reshade shaders:

Hope it helps :smiley:

@TreyM: I really appreciate your classic CRT Overlays. They are just great! I use them for RetroArch, Mame and Reshade. Thanks a lot, you made me a happy man!


@frenki that’s great, thanks! I’m going to try it out right now. I was also using HUD.fx port that I found on the ReShade forums (I think it used to be shipped with ReShade itself, but later on it became controversial, alongside Magnifier, 'cause people were using it in competitive games to gain an advantage, so it was taken out from the base package). I’ve managed before to make my overlay show up correctly, but I couldn’t squeeze in the game screen. Your CRT shader will surely help me!

Amazing, thank you very much, just what I needed! keep coming these realistic crt/pvm overlays!

wonderful! is there a way i could add it on a Lakka distro for raspberry? i tryed putting it in “overlays” folder, shared with smb, then configured the overlay directory to point there, but when i choose one it doesn’t show up :frowning:

Great work! I’m surprised though you never made one with the Sharp NES Television. It would make the most sense for NES games and there’s a high quality image of the monitor available on the Internet.

Those look lovely indeed! Did you port the shaders yourself? Would it be possible to also port easy-mode halation? Matsilagi did the regular version but the newer halation one looks better and has more options. It is in fact my favourite crt shader currently and it would be amazing to have it on reshade for standalone emus!

Whoa. How are you doing the bezel reflections? Are they realtime? Do they change based on the image on the “CRT?”

Yes it’s in real time and is based on the image in the crt. It’s a custom shader in ReShade.

I’ve had to place this project on hold for a bit while I’m busy with some other things, but I might find some time this week to give you guys a release. We’ll see.


That particular pic is the only one I could find of that TV, and the harsh camera flash makes it basically unworkable for me. The lighting is all wrong unfortunately.

Hi, any progress since a few weeks?

This one would be nice. With a decent background please!:grin:

Hope to see more from your work

1 Like

@TreyM: Excellent shader work! Have you gotten a chance to package up your ReShade preset for a beta release? It looks so lovely, I’d hate to see it abandoned.