Guest-advanced-ntsc: Final Form

Thought I’d share my global preset. I’m calling this the “final form” since it is meant to be the cleanest possible composite video image with currently available shaders. Imagine an alternate timeline in which the CRT era never ended and the tech continued to improve for 10+ years (we can only dream…). This is “enhanced composite video.”

I think this is as close as it gets to a one-size-fits-all shader for all consoles up to and including the 6th generation.

This gives you the best of both worlds- this has all the color of RGB, while still blending dithering so that you see all the effects the artists wanted you to see. I’ve also meticulously adjusted the sharpness filters so that you get the sharpest possible image while completely avoiding any artifacts like ringing, color fringing, ghosting, shimmering, etc. Everything that should be blended is blended, otherwise it’s as sharp and clear as it can get.

Now that we have a few very talented people currently working on hardware-accurate, circuit-level composite video emulation, I think “enhanced composite” is the best use for the ntsc-adaptive family of shaders.

Some notes-

Brightness: With HDR1000 and local dimming off, I’m getting 225 nits on a white screen, enough to give it “CRT punch.” This feels like looking at a CRT. Without 1000 nits, you’ll have to turn the mask strength way down and/or crank up the bloom/glow/etc.

Mask: RRGGBBX (Mask 12) is used for its consumer-grade TVL (308) and high brightness- 225 nits on white, in range with the highest-end CRTs.

I strongly feel a lower TVL is what is desired for retro gaming. It works on the exact same principle as scanlines- basically, your brain fills in the gaps and it looks smoother, etc- this has been scientifically studied and verified. Of course, you can easily use a higher TVL mask if desired - 9 or 10 in guest-advanced does the trick if PVMs are more your thing.

Sharpness: This is a big one. The sharpness is very fine tuned to be as sharp as possible while avoiding ringing, color fringing on whites, shimmering/ghosting, etc. Black text is solid black. I went through several dozen iterations and arrived at exactly the same look with two different combinations of settings, so I know this is as optimized as it gets. Tested everything from NES to PS2.

You can play with “sharpness shape” a bit, along with “horizontal filter range” and “horizontal blur sigma.” A good rule of thumb is for filter range to be about ~3x blur sigma. Then adjust these controls gradually, until black text is as sharp as possible. Then check white text for color fringing, adjusting these settings gradually until color fringing is no longer apparent. Repeat this process until black text is as sharp as possible and white text has no color fringing. Once you start really fine tuning it, there’s a range of about 0.10 - 0.15 with blur sigma / filter range between black text being too blurry or having visible color fringing from oversharpening.

You can also play with the deblur in fast sharpen, it’s very subtle but helps in a few situations. It can also just tip things over to the side of too sharp. Current settings are optimized, but maybe a click or two in a different direction is possible.

Scanlines: Adjusted profile so that scanlines aren’t lost on white. There is little value in increasing the beam edges parameter above 40.00, seems to just darken the image without having an appreciable impact on the scanlines.

Interlacing: I choose interlacing mode 4 because the flickering is awful and in our hypothetical future CRTs we would have advanced digital deinterlacing (lagless, of course) that would have eliminated flickering completely

NTSC Artifacts: Switched off because in our advanced future CRTs, signal processing would have eliminated these completely, through increased signal bandwidth, “AI” per-pixel comb filtering, who knows.

Download:

https://mega.nz/file/wj9HFKhb#senpjslTxUOpeDh5A8X6l9kgPhpwLZ_QMXBbOuNMIWY

Screenshots:

These are all showing an earlier preset, I’ve since made a few improvements.

The black text in Kirby should be solid black at normal viewing distance - some faint phosphor activity is ok and probably unavoidable if you want to completely avoid color fringing on white text.

Vertical black lines in Super Mario Bros 3 should be solid.

The text in Link to the Past is a real pain and quickly reveals oversharpening.

I couldn’t get a screenshot of LRPS2 in action, but the white text in FFX is another torture test for color fringing.

And lastly, an Aladdin example to demonstrate dithering, since we’ve all seen the Sonic waterfall enough times :smiley:

4 Likes

Bonus screenshot, another good test for sharpness - both eyes in Mario’s sprite should be solid black. I quietly snuck in some deblur and now situations like this are greatly improved.

2 Likes