What is your favorite CRT shader?

If you had to choose just one shader, which one would it be? Is CRT Royale now considered the best there is?

CRT-Geom is still a strong alternative, depending on your tastes. Each is unique.

http://emulation.gametechwiki.com/index.php/CRT_Shaders

CRT-Easymode with brightness boost at 1.3 is my main right now. Itā€™s fast and barely loses any brightness.

Iā€™ve had this issue with Royale in nightlies for quite awhile, so I donā€™t use it much anymore. I canā€™t get the shadow mask looking good with any of the resize modes at 1080. The other two mask types look fine with the default sinc resize mode, but I donā€™t like how they blur text and change colors.

1 Like

Lotteā€™s Halation with no curvature and no shadow mask

CRT easymode is really nice, but Iā€™m using a Raspberry Pi and it barely canā€™t handle it. Do you think removing lanczos filter would speed it up enough to run smoothly? Or, is there anything else you could do to improve performance. I really like the scanlines + aperture grille effect.

Iā€™m using Hyllian-glow (without the glow) right now and itā€™s good but it makes text look kind of off. Then I saw some settings you had posted in another forum: -scanline strength 60% -sharpness hack enabled -bloom strength 0

Iā€™m unable to run the cg2glsl script myself, as I donā€™t have a computer with the right hardware.

Is there any way to get parameter options working on the raspberry pi? Iā€™d really like to try those settings as well as get crt-easymode to work.

I remember Easymode saying he had optimized the shader about as well as he could, so Iā€™m not sure if that would help.

From what Iā€™ve read it sounds like youā€™d have to bake parameter settings in a .cg somehow before converting it to .glsl to use them on a platform like the Pi.

Yes, Awakened is correct: the values in the parameter block where it says: #else #define whatever #endif are the ones that get baked in, so you can modify those to the values you want.

@Nesguy If you want an aperture grille effect thatā€™s lightweight enough for the RPi, check out the dotmask shader, which is just that little bit from cgwgā€™s CRT shaders isolated. You can put it after scanlines or whatever.

Either CRT-Geom with the following settings changedā€¦

#define CRTgamma 2.2 #define monitorgamma 2.4 #define CURVATURE 0.0 #define cornersize 0.001

(or change crtgamma to 2.0 & monitorgamma to 2.6 if you want a bit more brightness to the display)

CRT-Easymode with the following settings changedā€¦

#define BRIGHT_BOOST 1.3 #define GAMMA_INPUT 1.8 #define GAMMA_OUTPUT 2.0 #define MASK_STRENGTH 0.2 #define SCANLINE_BRIGHT_MAX 0.25 #define SCANLINE_BRIGHT_MIN 0.15 #define SHARPNESS_H 0.65

I have tried Lotteā€™s Halation shader but for some reason i just get really bad performance for some reason(have an i7 @4.2Ghz and a GTX 970). CRT Royale is only really good for displays above 1080p

Yeah this is what Easymode help me with yesterday for Lordashramā€™s OpenElec build, for some reason atm cg shaders do not work so we have to use glsl shader. So you have to edit the cg shader with something like notepad++ and then save the file, thenā€¦

  • Install Python (C:\Python will do)
  • Install the Nvidia Cg Toolkit
  • Copy TheMaisterā€™s cg2glslscript to that folder
  • Create two subfolders called ā€˜cgā€™ and ā€˜glslā€™
  • Copy the .cg shaders you want to convert to the ā€˜cgā€™ folder
  • Edit them with the changes you want (as mentioned above)
  • In command prompt go to the python folder and run: python cg2glsl.py cg glsl

[QUOTE=BlockABoots;22138]Yeah this is what Easymode help me with yesterday for Lordashramā€™s OpenElec build, for some reason atm cg shaders do not work so we have to use glsl shader. So you have to edit the cg shader with something like notepad++ and then save the file, thenā€¦

  • Install Python (C:\Python will do)
  • Install the Nvidia Cg Toolkit
  • Copy TheMaisterā€™s cg2glslscript to that folder
  • Create two subfolders called ā€˜cgā€™ and ā€˜glslā€™
  • Copy the .cg shaders you want to convert to the ā€˜cgā€™ folder
  • Edit them with the changes you want (as mentioned above)
  • In command prompt go to the python folder and run: python cg2glsl.py cg glsl[/QUOTE]

Awesome. Thanks for the instructions.

Well, after all this experimenting, I think the simple interlacing.glsl shader is the best looking one for the pi. Itā€™s been fun playing around with all these shaders and overlays, but interlacing.glsl with the backlight cranked up is like playing on a perfect, ā€œidealā€ CRT with no flaws. Itā€™s like a Sony BVM, but better. In the end, Hyllian looked a little too artificial to me, although pleasant. I think interlacing.glsl will suit my needs when it comes to the raspberry pi. :slight_smile: I think Iā€™m still going to give Hyllian with the suggesting settings a try, though.

Still would like to know which shaders people are using on their own machines, just out of curiosity. :slight_smile:

[QUOTE=Nesguy;22152] Still would like to know which shaders people are using on their own machines, just out of curiosity. :)[/QUOTE] As you said you were using 720p output on PI, I think crt shaders do not show good resulta at that res, barely over 3 times The native res of most retro systems. Only after 4 times that res you get The benefits of these crt shaderd.

About my favorite shaders. Well it depend on The Day and The mood. I donā€™t have a favorite among The crt ones. All have their advantages and cons. For all purpose shader I recommend jinc2-sharper or lanczos2-sharp. For cartoon games I recommend one of the xbr available. For 3D games I recommend ar shader 4.o with core at high internal res. For psx I recommend a combination from the cgp xbr-jinc2-sharper.cgp

[QUOTE=Hyllian;22156]As you said you were using 720p output on PI, I think crt shaders do not show good resulta at that res, barely over 3 times The native res of most retro systems. Only after 4 times that res you get The benefits of these crt shaderd.

About my favorite shaders. Well it depend on The Day and The mood. I donā€™t have a favorite among The crt ones. All have their advantages and cons. For all purpose shader I recommend jinc2-sharper or lanczos2-sharp. For cartoon games I recommend one of the xbr available. For 3D games I recommend ar shader 4.o with core at high internal res. For psx I recommend a combination from the cgp xbr-jinc2-sharper.cgp[/QUOTE]

This is good to know, I always wondered if maybe 720p just wasnā€™t high enough to get the results I wanted. I guess that simple scanline generators / shaders are the way to go for the raspberry pi. Interlacing.cg works rather well on the raspberry pi, as do the scanline overlays. I just wish there was some way to do a simple aperture grille simulation on top of the scanlines, but that would take 1080p resolution and Iā€™m not sure the pi could handle it. Plus, Iā€™m guessing that it would be incredibly dark and would require some kind of image adjustment to get back the color and contrast.

The overlays run fine at 1080p, so Iā€™m wondering now if it would be possible to create an overlay that would do what interlacing.cg does - completely blank every other line, while also adding a very light/fine aperture grill simulation. I think this would just take some very light grey pixels arranged in columns, spaced out every few pixels or so. I wonder if that would even look good.

You may have missed this post on the previous page: http://libretro.com/forums/showthread.php?t=2779&p=22134&viewfull=1#post22134

That shader is very lightweight and should look fine at 720p. I used to use cgwgā€™s CRT shaders on my HTPC at 720p, and they generally look pretty decent even at that low scale. <- Note: thatā€™s just the aperture grille simulation, not the whole thing, which would be way to heavy for RPi.

[QUOTE=hunterk;22178]You may have missed this post on the previous page: http://libretro.com/forums/showthread.php?t=2779&p=22134&viewfull=1#post22134

That shader is very lightweight and should look fine at 720p. I used to use cgwgā€™s CRT shaders on my HTPC at 720p, and they generally look pretty decent even at that low scale. <- Note: thatā€™s just the aperture grille simulation, not the whole thing, which would be way to heavy for RPi.[/QUOTE]

I saw that, but itā€™s not quite the effect Iā€™m after. Iā€™m just looking to add some very fine, light vertical lines spaced close together. Oh well, Iā€™m starting to like the look of just blanking every other line with the interlacing shader. Simple is beautiful :slight_smile:

Thatā€™s all that shader does, actually. It separates the pixels into 3 parts, tints one part pink, leaves the middle alone and then tints the last part green. Hereā€™s what it looks like against a plain white background: You can also checkout the interlacing-phosphor shader, which just combines interlacing with the dotmask effect. Thereā€™s also a toggle for the mask effect from crt-lottes, but itā€™s enabled through the parameters, so youā€™d have to enable it in the code and then convert to glsl for rpi2.

[QUOTE=hunterk;22194]Thatā€™s all that shader does, actually. It separates the pixels into 3 parts, tints one part pink, leaves the middle alone and then tints the last part green. Hereā€™s what it looks like against a plain white background: You can also checkout the interlacing-phosphor shader, which just combines interlacing with the dotmask effect. Thereā€™s also a toggle for the mask effect from crt-lottes, but itā€™s enabled through the parameters, so youā€™d have to enable it in the code and then convert to glsl for rpi2.[/QUOTE]

I canā€™t get interlacing-phosphor to run without slowdown and I canā€™t get them to combine, either. Oh well, thanks for trying :slight_smile: Iā€™m pretty happy with just using the interlacing shader, but Iā€™d like to know if itā€™s possible to create a scanline overlay with scanlines that can be adjusted to full black, and that doesnā€™t affect the brightness of the drawn lines.

[QUOTE=BlockABoots;22138]Yeah this is what Easymode help me with yesterday for Lordashramā€™s OpenElec build, for some reason atm cg shaders do not work so we have to use glsl shader. So you have to edit the cg shader with something like notepad++ and then save the file, thenā€¦

  • Install Python(C:\Python will do)
  • Install the Nvidia Cg Toolkit
  • Copy TheMaisterā€™s cg2glslscript to that folder
  • Create two subfolders called ā€˜cgā€™ and ā€˜glslā€™
  • Copy the .cg shaders you want to convert to the ā€˜cgā€™ folder
  • Edit them with the changes you want (as mentioned above)
  • In command prompt go to the python folder and run: python cg2glsl.py cg glsl[/QUOTE] Iā€™m getting [WinError 2] ā€œFile not foundā€ error, what can it be? I have the .cg shader under right folder

[QUOTE=BlockABoots;22138]Yeah this is what Easymode help me with yesterday for Lordashramā€™s OpenElec build, for some reason atm cg shaders do not work so we have to use glsl shader. So you have to edit the cg shader with something like notepad++ and then save the file, thenā€¦

  • Install Python (C:\Python will do)
  • Install the Nvidia Cg Toolkit
  • Copy TheMaisterā€™s cg2glslscript to that folder
  • Create two subfolders called ā€˜cgā€™ and ā€˜glslā€™
  • Copy the .cg shaders you want to convert to the ā€˜cgā€™ folder
  • Edit them with the changes you want (as mentioned above)
  • In command prompt go to the python folder and run: python cg2glsl.py cg glsl[/QUOTE]

just wanted to say that this helped tremendously, thanks! I was looking all over for simple instructions for how to use this.

One thing, though: if you follow your instructions in the exact order, you wind up with the glsl and cg folders, and the cg2glsl script in the ā€œNvidiaā€ folder when they need to go in the ā€œpythonā€ folder.

CRT-Hyllian with sharpness hack enabled and scanlines at 100% looks fantastic :slight_smile: It seems to do just enough filtering to hide the scaling artifacts you get when running SNES, NES, and Genesis in a 4:3 aspect ratio, without looking obvious.

What does ā€œcolor boostā€ do, though? Changing it from 1.2 to 1.0 doesnā€™t seem to do anything.

Edit: Bah, never mind. I think raspberry pi users just need to avoid shaders unless they are on a 720p display, or else donā€™t mind scaling artifacts. There is just nothing you can do to completely eliminate the artifacts when rendering at 960x720 and upscaling to 1080p (raspberry pi canā€™t handle shaders above 960x720).

Interlacing works at 1080p but with integer scale it puts further restrictions on screen size.

The best option for pi users using 1080p displays who want perfect scaling and scanlines is to turn integer scale on, set a custom resolution that is close to a 4:3 aspect ratio, and use an overlay for scanlines. I donā€™t think thereā€™s a better way.