New CRT shader from Guest + CRT Guest Advanced updates

If you play with Retroarch options:

Settings -> Video -> Synchronization -> VSync Swap Interval

this can also improve the interlacing experience. Best use it with VSync ON.

2 Likes

New Release Version (2025-08-24-r1):

Notable changes:

  • Old: Display P3 gamut support added.
  • Old: DCI-P3 white point correction.
  • Old: Ntsc rainbowing feature vertical fidelity improvements.
  • Old: Small optimization.
  • Old: Better NTSC rainbowing modes 2&3.
  • New: “Show Original Image” option added to most versions.
  • New: “Vertical Image Shift” option added to most versions.

Download link:

https://mega.nz/file/xsgxTKAR#93dvbv-3KTr0dQoI56TAQrzHJw1Gr7FVtJ1JR0MejJk

14 Likes

Is there anywhere that explains what each of the masks are?

2 Likes

Hey!

Aperture masks are (for 1080p): 0, 2, 5, 6, 9 (RGB) and 7 & 8 (not RGB, but black-white)

High TVL of these are: 0, 5, 7, 9

Lower TVL are: 2, 6, 8

You can use slotmask with any of these, just increase both strengths. Maybe you can lower the slotmask height for 1080p + scanline mode.

Mask 1 is already a RGB mask + low width slotmask, just to mention it.

Mask 10 is an aperture style RGBX mask.

Mask 11 is a 4-width aperture mask.

Mask 12 is a 7-width RRGGBBX aperture style mask.

Mask 13 is a 6-width aperture mask.

Mask zoom can be used to enlarge or shrink masks, one should a bit explore the feature, it’s more or less worth the time.

Aperture masks can be turned into shadow-masks, it’s important that the total mask width is 2,4,6…

Mask zoom can help here, since it changes “total mask width”.

9 Likes

Thanks for the write up! Mask 12 is suitable for 4k right? with the smaller masks raising mask zoom would be necessary for 4k i imagine? And what are masks 3 and 4 then?

2 Likes

Yes, vanilla mask 12 is good for 4k. Mask zoom can always help, especially with 4k.

Mask 3 is a special horizontally streched shadowmask, where mask 4 is an ordinary shadowmask (nice for 4k also).

Masks 1-4 are so-called lottes masks, which are managed by alternate (maskLight, maskDark) mask strength controlls.

5 Likes

im trying to understand the how bloom and glow and magic glow differ exactly. like, i can see a difference in effect but i cant put my finger what each is doing exactly.

also there isnt an up to date readme or guide anywhere is there? i feel silly having a lot of questions other people seem to just already understand.

2 Likes

speaking of masks, is there are a way (option) to make the RGB mask (5 & 6) act like black-white (7 & 8) based on how flat area are? which mean in edges or details (especially if it has different colors) will be 100% mask 5 or 6 and in full flat area will be 100% (or even 90% is fine) black-white (7 or 8)

1 Like

Ordinary Glow is mostly manifested on very dark background, with a wider spread compared with bloom.

Bloom passes contribute their effect to Bloom, Halation and Mask Bloom. These are mask mitigation techniques, for example set mask strengths to full and then add one of those effects or more of them…

Magic Glow is exclusive with ordinary Glow, it falls back to Glow shader passes (number of TAPS, sigma), it can be used similar to ordinary Glow, contrast enhancer or a mask mitigation technique, depends, what you have in mind. You can also add haloing effects to pixels, make the image bloomy…

Default parameter setup of Magic Glow is contrast enhancement, just saying.

Quite a while ago i tried some different mask effects on the same image and it didn’t feel appealing. One of the viable ways to use different mask “setups” on an image is that masks comply with curvature (currently they don’t), but this is more or less a 4k thingie and lower TVL bound.

4 Likes

Suitable is relative, because of the type of look you are going for. The size of the host display matters too. Mask 12 without zoom will actually result in a somewhat coarse pitch even on 4k.

In the context of realism, it roughly should match something like a 4k laptop emulating a small TV.

If you use the 2 pixel masks (like 0) on a big 4k TV, it would be something like an unusually large, low pitch PC monitor. It wouldn’t bother with thinking about this too much if you don’t have specific matches in mind and just experiment a bit.

3 Likes

This is what I gathered from the post?

# Resolution TVL Mask Width
0 1080p RGB High Aperture low width
1 Slot
2 1080p RGB Low Aperture
3
4
5 1080p RGB High Aperture
6 1080p RGB Low Aperture
7 1080p Black-white High Aperture
8 1080p Black-white Low Aperture
9 1080p RGB High Aperture
10 Aperture RGBX
11 Aperture
12 4k Aperture RRGGBBX 7-width
13 Aperture 6-width
6 Likes

Thanks for the template, @yuzqailo. :sunglasses: I made some changes and added some info.

# Resolution TVL Mask Width
0 1080p RGB High Aperture Mag-Green 2-width
1 1080p+ RGB Med Slot RGB 3-width
2 1080p+ RGB Med Aperture RGB 3-width
3 1440p RGB Low Shadowmask-low profile RRGGBB 6-width
4 4k RGB Low Shadowmask RRGGBB 6-width
5 1080p RGB High Aperture Mag-Green 2-width
6 1080p+ RGB Med Aperture RGB 3-width
7 1080p Black-white High Aperture BW 2-width
8 1080p+ Black-white Med Aperture BWW 3-width
9 1080p+ RGB High Aperture Mag-Green-X 3-width
10 1440p RGB Med-Low Aperture RGBX 4-width
11 4k RGB interpolated Med-Low Aperture 4-width
12 4k RGB Low Aperture RRGGBBX 7-width
13 4k RGB interpolated Low Aperture 6-width
20 Likes

I add that TVL for Aperture is defined here by dividing Resolution by Width. Suitability for Slot and Shadowmasks is a bit trickier because of the variable heights/mask transform parameter, the content res and on how scanlines are set makes a huge difference.

For example, on my 1504p laptop I use 3- width aperture masks for slot with height 2 for 240p, but that doesn’t really work for 480p (scaling factor is just 3, so 1.5 relative to height). I set slot height to 3 and have mild/ no scanlines only in that case (more realistic anyway).

3 Likes

a white pixel takes exactly one triad to draw if the signal strength is irrelevant, so you can calculate theoretical TVLs from this. E.g., for RRGGBBX at 4k: 2160 pixels / 7 pixels for the mask = ~308 TVL

2 Likes

I’m currently happy that it’s commonly accepted that the mask width defined in shaders correlates with TVL. :wink:

2 Likes

It looks great on a big screen TV from a relatively far viewing distance though. Although if comparing phosphors vs pixels on many CRT displays including arcade displays the phosphors might not align as well with the edges of the pixels on many graphical elements compared to a slightly higher TVL mask.

Just to add to what @guest.r and @yuzqailo posted:

3 Likes

Wonder if anyone has done some testing on the BRAVIA 8 WOLED TV. I know it uses some LG panel of RWBG layout. This is the structure according to RTINGS: https://i.rtings.com/assets/products/n0kSjgfE/sony-bravia-8-oled/pixels-large.jpg?format=auto

1 Like

What would you like to know?

It uses LG Display’s RWBG WOLED Panel so Mask 12 Size 1 with BGR Mask Layout 1 in CRT-Guest Advanced should give you properly spaced triads.

There are many folks who use RWBG OLED panels who have passed through these forums and I have shared more than just a few presets made using an LG RWBG WOLED Display.

2 Likes

I think that’s what I’d like to know for starters, thank you!

Didn’t get my TV to look great using my old presets of CRT Guest, but once I have some free time I’ll have a look at your presets for RWBG or try customizing my own based on the info you gave me. Cheers

2 Likes

Having lots of fun with magic glow, bloom, halation, etc. Still trying to figure out what sorta look like best haha. I like a sorta soft glowy look but i also wanna preserve some of the crisp contrast of my OLED tv. Trying to avoid the appearance of LED backlight blooming on black backgrounds. It’s a difficult balance. Also problematic is text. I might like the glow effect on an image but then text might appear distractingly smeary. I’ll have to play around with it more but does anyone have any tips or tricks with this stuff to share?

2 Likes