Difference between revisions of "NTSC filters"

From Emulation General Wiki
Jump to navigation Jump to search
m (Fix links to shaders)
Line 1: Line 1:
 
NTSC filters replicate the analog signals that the consoles output to the TV. They vary in quality, with the lowest quality being RF, then composite, then s-video and RGB (SCART)/YPbPr (Component) being the highest quality. Many emulators have NTSC filters built into them. They can also be separately downloaded as filter plugins. These filters were developed by [http://slack.net/~ant/libs/ntsc.html blargg] for specific consoles. Other NTSC shaders have been created which are different from Blargg's implementation.
 
NTSC filters replicate the analog signals that the consoles output to the TV. They vary in quality, with the lowest quality being RF, then composite, then s-video and RGB (SCART)/YPbPr (Component) being the highest quality. Many emulators have NTSC filters built into them. They can also be separately downloaded as filter plugins. These filters were developed by [http://slack.net/~ant/libs/ntsc.html blargg] for specific consoles. Other NTSC shaders have been created which are different from Blargg's implementation.
  
The level of blur in RF and composite signals are needed for [[dithering]] to blend on Genesis/Mega Drive. S-video, and RGB are too clean to blend dithering. However, [https://github.com/libretro/common-shaders/blob/master/crt/shaders/snes-hires-blend.cg snes-hires-blend.cg], [https://github.com/libretro/common-shaders/tree/master/dithering dithering shaders], or [https://github.com/libretro/common-shaders/blob/master/crt/shaders/tvout-tweaks.cg tvout-tweaks.cg] may work fine for the purpose.
+
The level of blur in RF and composite signals are needed for [[dithering]] to blend on Genesis/Mega Drive. S-video, and RGB are too clean to blend dithering. Other shaders can be used to achieve the same level of blur.  
  
 
Many SNES games were developed with the color distortion from these signals in mind, such as Chrono Trigger, with shifted values that make blacks look brown and borders look purple (this is due to TV color range being 16-235, as opposed to standard PC color range of 0-255), which would be output properly with NTSC colors, and Kirby's Dream Land 3, with vertical line patterns combined with high horizontal resolutions producing translucency effects when blended by the analog signal.
 
Many SNES games were developed with the color distortion from these signals in mind, such as Chrono Trigger, with shifted values that make blacks look brown and borders look purple (this is due to TV color range being 16-235, as opposed to standard PC color range of 0-255), which would be output properly with NTSC colors, and Kirby's Dream Land 3, with vertical line patterns combined with high horizontal resolutions producing translucency effects when blended by the analog signal.
  
 
==Description==
 
==Description==
 +
[[File:NTSC settings.png|thumb|350px|Chart showing the relative difference values between Composite, S-video and RGB]]
  
 
===RF===
 
===RF===
Line 50: Line 51:
  
 
A shader made by Aliaspider intended for processing emulator images for output to a CRT TV connected to PC via VGA-to-RGB adapter. This shader uses code from the GTU CRT shader to provide emulated signal bandwidth blur, as well as TV color level conversion. This shader is equivalent to the Blargg's NTSC filter RGB preset when the signal resolution is set to a high level and TV color levels are enabled. Works with any resolution without issues, lower signal resolutions result in blur that blends higher input resolutions, allowing dithering to be blended and SNES hi res translucency to work.
 
A shader made by Aliaspider intended for processing emulator images for output to a CRT TV connected to PC via VGA-to-RGB adapter. This shader uses code from the GTU CRT shader to provide emulated signal bandwidth blur, as well as TV color level conversion. This shader is equivalent to the Blargg's NTSC filter RGB preset when the signal resolution is set to a high level and TV color levels are enabled. Works with any resolution without issues, lower signal resolutions result in blur that blends higher input resolutions, allowing dithering to be blended and SNES hi res translucency to work.
 +
 +
===Other===
 +
 +
* [https://github.com/libretro/common-shaders/blob/master/crt/shaders/snes-hires-blend.cg snes-hires-blend.cg]
 +
* [https://github.com/libretro/common-shaders/tree/master/dithering dithering shaders]
  
 
==Gallery==
 
==Gallery==

Revision as of 22:44, 4 February 2016

NTSC filters replicate the analog signals that the consoles output to the TV. They vary in quality, with the lowest quality being RF, then composite, then s-video and RGB (SCART)/YPbPr (Component) being the highest quality. Many emulators have NTSC filters built into them. They can also be separately downloaded as filter plugins. These filters were developed by blargg for specific consoles. Other NTSC shaders have been created which are different from Blargg's implementation.

The level of blur in RF and composite signals are needed for dithering to blend on Genesis/Mega Drive. S-video, and RGB are too clean to blend dithering. Other shaders can be used to achieve the same level of blur.

Many SNES games were developed with the color distortion from these signals in mind, such as Chrono Trigger, with shifted values that make blacks look brown and borders look purple (this is due to TV color range being 16-235, as opposed to standard PC color range of 0-255), which would be output properly with NTSC colors, and Kirby's Dream Land 3, with vertical line patterns combined with high horizontal resolutions producing translucency effects when blended by the analog signal.

Description

Chart showing the relative difference values between Composite, S-video and RGB

RF

The lowest quality. Very blurry due to crosstalk between video and audio signals, and subject to static due to interference.

Composite

Higher quality than RF, but still blurry and with lots of color artifact and dot crawl due to crosstalk between luma (brightness component of the signal) and chroma (color component of the signal). This is what most systems used as default.

S-video

Much cleaner image due to luma and chroma being separate signals, though color blur still present and signal bandwidth is the same as composite.

RGB

The highest quality possible, since it uses separate channels for each color, along with a sync signal. Component YPbPr is similar, where it uses luma+sync, blue minus luma, and red minus luma for signals to give high quality, high bandwidth output capable of displaying higher resolutions, though this is only utilized by newer consoles.

Filters and Shaders

Blargg NTSC

Blargg's NTSC shaders are powerful and optimized, but they are very system specific. There is a version for NES, SNES, SMS, and Genesis/Mega Drive, and each is intended for that system only, expecting a certain size input resolution. Certain games on other systems than the intended one can still make use of them, but not without glitches. For instance, on certain PS1 games that have multiple resolutions, some of the resolution modes will work properly with these filters, and some won't. This may mean the aspect ratio is horribly messed up for menus, but the main gameplay will look normal. These filters upscale the image wide horizontally, but don't touch the vertical scale, so 1:1 PAR may result in weird aspect ratios.

In some emulators, it will have sliders for settings such as Resolution (level of signal blur), Sharpness (sharpness/comb filter that some TVs used), Color Bleed, Artifacts, and Fringing. Others simply use the preset settings. Note: RF preset is just composite with field merging disabled, so it emulates the oscillating artifacts composite output has (Go here and see the 3rd image on the right for an example of this).

Maister NTSC

https://github.com/libretro/common-shaders/tree/master/ntsc

Themaister created a set of NTSC shaders for use with various emulator cores in RetroArch. These try to be more "generic" than Blargg's filters, so they will work with any resolution without major glitching. There are several presets that cover different methods of generating composite and s-video signals.

The 256px presets use 3-phase NTSC output, which is what the NES, SNES, and N64 output, while the 320px presets reflect the more common NTSC output from the Mega Drive, PC-Engine, PlayStation, and most consumer video electronics. Both of these assume 256px and 320px horizontal resolution input, respectively, and scale that to 1024px and 1280px to display the NTSC effects. This may result in scaling artifacts if the game's input horizontal resolution is not the same, but the effects will be consistent if the horizontal resolution of the game gets larger or smaller, allowing SNES hires translucency to work since it changes between 256 and 512, for example.

The plain presets use 3-phase NTSC filtering and don't assume a specific input resolution, and just simply scale to 4x the game's width. These will work with any resolution without scaling errors, but games that change horizontal widths may have inconsistent blurring. SNES hires translucency won't work correctly on these because of this.

Among the presets, there are Composite and S-video versions. Composite has all the fringing artifacts that oscillate every other frame, resulting in a slightly flickery image, while S-video simply has color bleed and blur. This shader lacks the sharpness filter that Blargg's NTSC filter has, so some may perceive it as blurrier, but it also lacks ringing artifacts.

There isn't much tweaking you can do besides changing gamma, since the effect is quite complex and difficult to understand. It does not have an RGB preset, though that's covered by another shader.

Tvout-tweaks

https://github.com/libretro/common-shaders/blob/master/crt/shaders/tvout-tweaks.cg

A shader made by Aliaspider intended for processing emulator images for output to a CRT TV connected to PC via VGA-to-RGB adapter. This shader uses code from the GTU CRT shader to provide emulated signal bandwidth blur, as well as TV color level conversion. This shader is equivalent to the Blargg's NTSC filter RGB preset when the signal resolution is set to a high level and TV color levels are enabled. Works with any resolution without issues, lower signal resolutions result in blur that blends higher input resolutions, allowing dithering to be blended and SNES hi res translucency to work.

Other

Gallery

Blargg NTSC

Emulators

Many emulators have them built in.

Emulator System NTSC filters Notes
Nestopia NES
puNES NES
ZSNES SNES
Snes9x SNES
Genesis Plus GX Sega consoles
Kega Fusion Sega consoles