Guest-Advanced 4k HDR1000 experiments

Intro:

Here are the results of my recent experiments to optimize guest-advanced for 4k HDR1000 displays and 100% masks.

I adjusted the scanline beam profile to maximize the dynamic range, avoiding clipping of course.

Quite a bit of time was spent playing with sharpness controls. RGB sharpness is optimized, but NTSC sharpness can be adjusted to taste. I would avoid messing with the horizontal filter too much, though. “Horizontal Blur Sigma” can be increased up to 0.80 for more sharpness/ringing.

I only use subpixel-respecting masks in order to obtain an accurate phosphor shape.

I have omitted any combinations which resulted in low brightness.

Any feedback or suggestions for improvement are welcome!

Observations:

Even at 1000 nits, I found some mask/scanline combos to be too dark. In fact, most slotmask combos still leave something to be desired. 4k HDR1000 is not the endgame for CRT emulation. There are still limitations with masks and scaling at 4k, and HDR1000 is not sufficient for all mask/scanline combos. At 8k, all of the mask/scaling issues should be resolved. HDR1400 is currently the highest tier of HDR brightness, which may be enough for all slotmask combos (does anyone have an HDR1400 display around here?).

Sometimes you have to compromise on the phosphor shape a bit in order to avoid moire patterns with the scanlines. A mask height of 3 does not play nicely with odd-numbered integer scales, introducing moire patterns with the scanlines (inconsistent scanline width/shape). E.g., for a mask height of 3, you should use an integer scale of 2, 4, 6, 8, etc. (apparently there is an option in Megatron to compensate for this - thanks @Cyber)

Certain mask/sharpness settings can result in bad scrolling artifacts when objects scroll too slowly across the screen- it can somewhat resemble scrolling artifacts caused by non-integer scaling. You can check this with the “Scroll Test” in 240p Test Suite - this has become one of my essential tests.

Some of these are brighter than others due to the number of shut-off pixels, but all should be sufficiently bright.

The final number of presets is not as high as one would imagine, but these are the masks that make the cut. All else have been cut due to low brightness or not being subpixel-accurate.

Instructions:

-HDR1000 and 4k are required

-Recommended HDR settings for HDR1000 displays: Luminance 1000, Paper White 750, Contrast 5.8. This may need to be adjusted based on your display.

-You can increase Paper White Luminance up to 900 to compensate for darker masks. Adjust Scanline Shape Bright Pixels to 0.60 to compensate

-Local dimming should be disabled

-These have been tested at 10x scale with overscale - they should work pretty well at 9x and other scales, but I haven’t tested them thoroughly at other scales.

TVL and Brightness:

Preset:		TVL:	Brightness:
dotmask		432		Medium 
MGX-slot	720		Medium
RGBX		540		Medium
MGX			720		High
RRGGBBX		308		High

Download:

https://mega.nz/file/In1ghQDZ#a-Oy9ociviNgQ2gxxwAsZf0uN9vaR7AlDa7IpyEjCtU

Photos:

Mask Review:

Did a few more tests, came up with some rankings.

RRGGBBX: this is my favorite, it’s very bright and the lower TVL just has a great consumer feel, and it helps to disguise some stuff you don’t want to see when using composite video.

Dotmask: second favorite. It’s a bit darker, but capable of adequate brightness. The lower TVL looks really nice and the dotmask pattern has an interesting texture.

RGBX: third favorite. It’s bright, but the higher TVL isn’t as well suited for retro games IMO. It’s basically a PVM, if that’s your thing. Some games, particularly those designed with RGB in mind, can look really good with a higher TVL, but I usually just prefer a lower TVL. The mask is not really noticeable at all, even at close viewing distances, but you can still see it.

MGX: this one ranks a bit lower than the above, IMO, because although it’s a bit brighter the mask just isn’t very satisfying - it’s even higher TVL and you can’t really detect the mask at all at normal viewing distances. Just kinda darkens the image.

MGX-slot: same as above, but ranks lower because the mask stuff isn’t really noticeable and it’s darker.

Not recommended:

RRGGBBX + slot is probably not worth it - if you fiddle with the HDR settings you might be able to get something that’s barely adequately bright in a dim room, but it feels like this is really just barely out of reach.

RGBX + slot is even worse due to the tighter grouping of the triads and even more brightness lost.

4 Likes

Sometimes you have to compromise on the phosphor shape a bit in order to avoid moire patterns with the scanlines. A mask height of 3 does not play nicely with odd-numbered integer scales, introducing moire patterns with the scanlines (inconsistent scanline width/shape). E.g., for a mask height of 3, you should use an integer scale of 2, 4, 6, 8, etc. (apparently there is an option in Megatron to compensate for this - thanks @Cyber)

Do you mean height 2? Anyway, it was worth to take a look at the presets to get some ideas for tweaking for my lower res/lower brightness displays :+1: One thing I would personally change if you tweak it further is differentiating sharpness more according to mask TVL.

1 Like

It’s a bit confusing - “mask height 2” corresponds to a triad that is 3 pixels tall (horizontal black line every 4th pixel)

You’re right- the sharpness settings should be tailored to the TVL. This is something I started working on, but I gave up. I couldn’t really find anything to improve RGB sharpness, but I think there’s some room for improvement with NTSC sharpness. I’ll see what I can do!

I don’t understand why horizontal and substractive sharpness have to be fixed to 6.0/2.0 then. Are there major effects if you would lower it to something like 5.0/1.0?

2 Likes

6.00/2.00 is the sharpest I could get without introducing detectable artifacts, but if one wants to lower sharpness as a matter of taste, I don’t think there’s a problem with it.

Compared to 5.00/1.00, 6.0/2.0 is a bit sharper with fine details, but we’re talking like single-phosphor differences in sharpness, now. You can check the menu screen on 240p Test Suite for this. I also used the black line around the green pipe in Super Mario Bros :stuck_out_tongue: You can crawl forward with Mario (just tap forward) and slowly scroll while observing the black line. This is mostly a thing with RRGGBBX. If you go too high with sharpness, text on Test Suite menu screen gets all rainbowy. If you go too high you can also see how things almost become less sharp when looking at some high contrast edges, in some situations- it’s kind of a color bleed effect. Going higher with sharpness caused some additional problems that can be seen in the Scroll Test - Try 15.00/2.00 with RRGGBBX and you can see what I mean.

I think 6.00/2.00 is pretty close to optimized for RRGGBBX but I’m still looking for ways to improve it, if possible. Let me know if you find something! I need to take a closer look at each TVL and see if anything can be done- I didn’t notice anything obviously wrong with 6.00/2.00 at other TVLs but there could still be room for improvement.

2 Likes

I think this should count:

Peak 10% Window 1,466 cd/m²

Peak 25% Window 1,378 cd/m²

Sustained 10% Window 1,443 cd/m²

Sustained 25% Window 1,364 cd/m²

I took all of them for a spin. Brightness and saturation wise, they looked great even using my HDR settings in RetroArch but only for NES and possibly N64 though. My first encounter was with Legendary Axe II on the Turbografx16/Duo and it was a bit washed out and over sharpened for my taste.

With Super Mario Bros. on the NES things looked much better. My biggest issue was with the vertical lines that are supposed to be black, for example in the pipes, I found the contrast to be a bit low and the high levels of fringing and artifacting only exacerbated that. Turning both parameters down resulted in a much more palatable experience for me. Leaving them as is only compounded the lack of BFI and relatively poor motion by my VA panel.

I had to switch to Mask Layout 1 to match my display’s subpixel output but that resulted in probably worse colours than Layout 0 for the MG masks. Perhaps those only work correctly on R-G-B layout displays?

Judging from these presets, we seem to have similar tastes in what constitutes a good CRT shader preset.

I know you’ve been baptised in CRT-Guest-Advanced but don’t hesitate to give my most recent shader stacks a whirl which combine elements of Sony Megatron Colour Video Monitor, CRT-Guest-NTSC, Grade, ImgMod and there are some with and without XBR.

The two most recent and possibly best stacks are my current “Epic” 18 pass shader stack and my “W2” and “Sharp Neo-GX” 12 pass shader stack which deliberately omitted any smoothing shaders in favour of getting the smooth/sharp recipe fine tuned by mainly just using NTSC settings.

If you don’t like any smoothing, it can even be sort of bypassed or minimized even while using the “Epic” 18 pass stack.

These can be found in my miniLED and miniLED Epic preset packs.

One key trick I’ve learned recently is to cleanup any “noise” in the scanlines caused by little pieces of rendered vertical slot mask that might be better off culled by reducing the Scanline Max. While the Scanline Min can be used to fine tune the darker/narrow end of the scanline dynamics.

I recently updated my Old Skool Arcade Epic preset to reflect this.

The Shader Parameter in question is called “Vertical Center”.

1 Like

Found a complete list of HDR1400 products here:

https://displayhdr.org/certified-products/

Probably not in my budget any time soon!

I think you’re referring to NTSC preset sharpness? I think I found some improvements to the horizontal filter, I’ll post soon. The Artifacting/Fringing is a matter of taste IMO and should be adjusted as desired.

Yes, I probably should have mentioned that- that could be affecting sharpness and color, definitely.

I admit I haven’t tested with TG16- that had a unique composite output (much like Genesis) and probably needs a fine-tuning. This is probably a decent starting point, though.

That’s a neat trick- I often use the beam min/max to fine tune, very handy. I’ll check this out.

1 Like

I think I found some improvements to the horizontal filter, this is basically as sharp as RGB but still blends dithering:

ntsc_sharp = "-4.000000"
HSHARPNESS = "1.800000"
SIGMA_HOR = "0.400000"
S_SHARP = "1.600001"
HSHARP = "2.000000"
MAXS = "0.200000"
HARNG = "0.600000"
2 Likes

I updated to 1.21 (finally). Were there any changes to HDR? I swear I’m able to squeeze out a bit more brightness? Or possibly a change within guest-advanced (I updated shaders, too)?

I’m taking another look at some different combinations - I think low TVL + slot could be possible with the right HDR settings :thinking:

2 Likes

Great! Did you install the Nightly or Stable? It’s the Nightly that has the new Shaders Menu.

I don’t think there were any changes to HDR but CRT-Guest-Advanced has been undergoing changes at it’s usual rapid pace.

Depending on which version you were using before, you might have actually downgraded it or just installed a different version that’s not the latest.

I’ve stabilized my CRT-Guest-Advanced, Sony Megatron Colour Video Monitor and Mega Bezel Installations by installing them into different Folders.

I’ve recently revisited my Mega Bezel preset pack because I feel like the reflective bezel and background are the perfect solution to blooming/backlight bleed in the pillar boxes on an LCD when playing in a dark room and occasionally walking around.

1 Like

Nope, lol. Let me try this again…

Yep, I’ve gotten into the habit of saving entire Retroarch versions and shaders :smiley:

Not a bad idea - the pillarboxes on an HDR1000 display with local dimming off look pretty terrible.

2 Likes

Remember, there’s also @Hyllian’s uBorder which supports CRT-Guest-Advance as well. uBorder is much lighter weight. I’m not sure when last CRT-Guest-Advanced has been updated for it though as CRT shaders need to be ported to ensure compatibility.

I’m sure @Hyllian won’t mind updating it if necessary.

It also supports Sony Megatron Colour Video Monitor and many other popular CRT shaders.

I even made one of the first uBorder CRT Shader preset packs during it’s early stages of development:

Spoiler

The latest RetroArch Nightly finally allows us to overwrite and update the currently active preset without remembering and retyping it’s filename. It also displays the currently active preset and allows us to revert any unsaved changes made while tweaking with the push of a button!

2 Likes

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Mask Review

Did a few more tests, came up with some rankings.

RRGGBBX: this is my favorite, it’s very bright and the lower TVL just has a great consumer feel, and it helps to disguise some stuff you don’t want to see when using composite video.

Dotmask: second favorite. It’s a bit darker, but capable of adequate brightness. The lower TVL looks really nice and the dotmask pattern has an interesting texture.

RGBX: third favorite. It’s bright, but the higher TVL isn’t as well suited for retro games IMO. It’s basically a PVM, if that’s your thing. Some games, particularly those designed with RGB in mind, can look really good with a higher TVL, but I usually just prefer a lower TVL. The mask is not really noticeable at all, even at close viewing distances, but you can still see it.

MGX: this one ranks a bit lower than the above, IMO, because although it’s a bit brighter the mask just isn’t very satisfying - it’s even higher TVL and you can’t really detect the mask at all at normal viewing distances. Just kinda darkens the image.

MGX-slot: same as above, but ranks lower because the mask stuff isn’t really noticeable and it’s darker.

Not recommended:

RRGGBBX + slot is probably not worth it - if you fiddle with the HDR settings you might be able to get something that’s barely adequately bright in a dim room, but it feels like this is really just barely out of reach.

RGBX + slot is even worse due to the tighter grouping of the triads and even more brightness lost.

1 Like