I loved it. I didn’t have a VCR or TV with a Composite or S-Video input.
Hi @guest.r “raster bloom” (breathing) in PAL preset seems missing
edit: also what about PAL adaptive sharp parameter that similar to NTSC adaptive sharp?
Yes, PAL preset uses the HD version on top, no raster bloom. For extra sharpness please use Fast Sharpen features, like extra sharpness of deblur.
that unfortunate, because it is a wonderful effect, is there any obstacle to adding it in the HD version in the first place?
I already do, I asked since both NTSC and PAL should share similar basic options
Is there any chance to incorporate more options for “Noise” emulation to get RF-like presets ?
Such as from PlainOldPants's Shader Presets
The 2 Noise options from near the end of each Guest’s preset is good but this guy on link above has delivered the effect to a next level. It look there so much closer to what I get with real 35 years old NES through RF and flat screen.
Linking this for context about the noise
…and for source code: PlainOldPants's Shader Presets
and a later version which might or might not have updated the noise: PlainOldPants's Shader Presets
Looking back, patchy-ntsc was a mess, and it was far more experimental than I made it look. Sure, it got the processing steps right, with features that still haven’t been implemented by anyone else, but the settings are so far off that it’s actually embarrassing and dishonest. (Not to mention the performance and code quality…) I ditched the whole thing at the end of that year, and it took about 5 or 6 months before I finally made a fixed, faster alternative from scratch.
That said, that means it’s been about a year since this kind of effort has been made to make this kind of RF noise effect in a shader.
HD version would need extra shader passes and code adjustments, but it’s not a good idea because it would make existing presets stop working.
I want the PAL version to be lighter, more performant. NTSC version “needs” other features like rainbowing and the edge colors hack, therefore it’s all in an extra pass the PAL version misses. But FSharpen does an excellent job, it’s newer, preserving some features adaptive sharpen doesn’t.
It’s a bit tricky with noise, my implementation allows 2D pseudo random noise. Currently full scope signal noise isn’t supported by design.
This. It’s a challenge, which also requires a lot of skill and dedication. Sometimes a simple single feature requires days of free time’s work. Why? Because experience raises from beginning and after a period of time, better solutions could be on the table.
that unfortunate, then any suggestion so I can add it in my PAL preset? mixing with other than HD? or only add a passes that has “raster bloom” (breathing)
It’s integrated with HD pretty close, using some features. It won’t be a seamless integration, if you try it with the ntsc shader chain, because you would need to rename some samplers in shader code etc…
If anyone else is having trouble getting out of the rabbit hole:
-composite video causes color bleed
-color bleed leads to some saturation loss in the bleeding areas
-TV manufacturers had several mechanisms for boosting saturation, some built-in and automatic, some user-controlled
-In theory, you can almost equalize the color between the two inputs (RGB and composite). Not 100%, but pretty close
-This is why composite often looks dull on “better” CRTs; they aren’t doing the extra “TV processing” that makes the image pop
Current composite video strategy:
NTSC Saturation +20% (consumer grade chroma pre-amp)
Saturation +20% (consumer calibration)
Number of taps: lower to 10 or so for realistic 1980s-1990s composite video behavior
Gamma: 2.4/2.2
Safe volts: optional for “bad RF” setups with a lot of noise
Btw, loving the Smart Dithering with Fast Sharpen! This is like the “retro game mode” on an alternate timeline CRT where the tech advanced for another 20 years. 
As I made my Inquries, “Safe Voltages” make sense with composite signals to, since chroma can be “hot” and allowed voltage limits can be exceeded. Dunno if with RF this is handled with AGC instead. AGC with RF was standard procedure…
“Save Voltages” shouldn’t be an issue with svideo, dunno what they did there if chroma was “hot”, but they definitelly didin’t join the luma + chroma signals and drive it over composite circuits. 
Ok, it’s the safe volts interaction with chroma bleed that was causing the yellows to become very desaturated. I guess it’s recommended to keep taps low when safe volts? With taps at 6.00 (no chroma bleed), safe volts produces a more realistic effect, with much more usable range.
safe volt 1.50, # of taps 6.00:
What’s nice about this is that you get that ‘for free’ just by (a) reconstructing the dot pattern and (b) modeling the composite encoding and decoding according to the standards and how a CRT works. The newer shaders by Patchy and Beans show this and my updates to Scanline Classic show this. You model the encode -> filter -> modulate -> demodulate -> filter -> decode all in gamma-corrected space and you get the color bleed and dot crawl. The tricky thing is how the underlying dot pattern changes from system to system (at least until the fifth generation).
The subjectivity lies with the filtering and adjusting the colors to mimic different compensation behaviors by different TVs, so there is plenty of creative room, so to speak, for different authors to develop different shaders with different techniques.
I mean TVs are still doing that kind of processing to this day. When you get a TV out of the box, even a good quality one, you need to change it to movie/cinema/professional mode to get the more accurate factory-calibrated colors. What is different nowadays is that the factory calibrations are actually way better and more stable than they used to be.
I know HDR left a bad impression for some people because, relative to the overprocessed vivid modes of many TVs, it actually is darker overall (because it’s bright relative to the calibrated SDR at 100 or so nits). If you run your display at a high brightness all the time, HDR doesn’t have as much room to go brighter.
That is, I don’t think it’s just composite that looks dull on better CRTs. It’s everything, but dull is okay if the result is more natural.
Libretro now has a lot of CRT shaders, many of these have not been updated in years, and I think we can (maybe) do some work to organize them in a smart way. Here is an example:
- Legacy - Shaders that aren’t getting updated anymore, deemed obsolete by their authors, etc.
- Display Emulators - Shaders that are meant to mimic the exact look of a specific TV model, including user controls (Patchy presets, Megatron fall under this I believe)
- PVM-like - Shaders that present a cleaner, less modified look, like what you’d see on a PVM or calibrated consumer CRT (Scanline Classic falls into this)
- Consumer-like - Shaders that try to mimic the look from a consumer-grade or aged display, with controls for adding more or less processing/degradation (I think Guest aligns with this)
- Fantasy - Shaders that do things that clearly go outside reality, for a specific effect or just for fun, and still have a CRT look
The consumer-like can maybe be split into two categories: ones that are more idealized and ones that really are meant to degrade/age the picture. MAME’s HLSL would be the latter.
There is also a lot of knowledge sharing going on. It would be neat if we had a CRT shader development wiki or something of that nature, like how NESDev compiles its info into a wiki.
Megatron is more like a phosphor/scanline/gamut mimicry kit if that makes sense? You can use it to mimic specific displays, or even broad non-specific types of displays.
For example, the “Aperture grille” presets included with my AzMods fork aim to capture the distilled, idealized “look” of a Trinitron, rather the particular quirks and foibles of any one model or unit.
Yeeeeeeep. And for all the talk we may have over things like when D65 became “standard” in a particular region, my LG C1, a TV less than 5 years old, is actually cooler than D93 at the default Game mode settings. According to my colorimeter, D93 is Warm 14.
New Release Version (2025-10-22-r1):
Notable changes:
- pal luma noise improvements
- ntsc and pal versions: signal desaturation (safe voltages) feature improved
- pal chroma noise option added
Download link:
https://mega.nz/file/ZtohgIaT#WXTT0sSl-46XpluBmxtLNfeGb4ZplUi6pkjz37PR7Ps
it’s better but the effect is so strong now! even with RFNOISE = “0.000001” it still strong in black areas
OK i reverted some things, new version is more gradual regarding luma noise.
Won’t the color amplitude and burst levels be in the specs for the PPUs?
I have to confess that I’m still a bit confused about safe volts, lol. This is my current approach for achieving the “consumer” look, let me know if you think it looks good…
-Increase “signal boost & safe” until yellow is noticeably desaturated. The higher you raise this parameter, the more compensatory saturation is needed, and the more “over-saturated” the final image will be
-Optional: slight red channel boost (1.05) - some TVs did this, I guess?
-Increase NTSC Saturation (TV jungle chip chroma amp) until Yellow has regained saturation
-This will oversaturate other colors, which is what TVs did
-Optional: Saturation +10-20% (Consumer adjusted knob)
The goal is for ALL colors to be adequately saturated and for SOME colors to be somewhat oversaturated - this is what TVs did. Studies were done showing that the human eye was more sensitive to the less saturated colors than the over saturated ones (citation needed)
Also, a word on the NES - Safe volts almost never applies, the palette was chosen so as to not exceed safe voltages… It wasn’t really “artistic choice” so much as technical necessity. There may be some cyans that are mildly affected…?
