Changes

Jump to navigation Jump to search

NTSC filters

3,054 bytes added, 17:02, 31 December 2023
no edit summary
'''NTSC filters ''' replicate the analog signals that the consoles console's 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<ref>http://slack.net/~ant/libs/ntsc.html blargg] </ref> for specific consoles. Other NTSC shaders have been created which are different from Blarggblargg's implementation. A different approach is taken by [[Clock Signal]], in which composite video processing is an inherent part of the rendering chain, as opposed to a post-processing effect.
Encoding ''luminance '' (or ''luma'', the brightness component of the signal) and ''chrominance '' (or ''chroma'', the color component of the signal) into a single signal is what causes blur and artifacting artifacts because it's a lossy way of encoding an image. RF is has worse artifacts because it also encodes audio into the signal and is more prone to interference since the signal is the same as what was used TV broadcasts.
The level of blur Many games were developed with the color distortion from these signals in RF mind, such as Chrono Trigger, with shifted values that make blacks look brown and borders look purple which would be output properly with NTSC colors, and composite signals are needed for Kirby's Dream Land 3, with vertical line patterns combined with high horizontal resolutions producing translucency effects when blended by the analog signal. Other games like Sonic used [[dithering]] to blend patterns that would be blended on the Genesis/Mega Drive. S-composite output, which is notably blurrier than NES or SNES composite 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==Download==* [http://www.mediafire.com/?356uu02o7oxw0u1 Win32]* [http://www.mediafire.com/?62p83g46s95v44r Win64]* [http://www.mediafire.com/?bqnp2etqkq3fkz1 Linux32]* [http://www.mediafire.com/?01747etfqs8tt6g Linux64]* [http://www.mediafire.com/?l5abvq3077cuqvt MacOS]
==Description==
[[File:NTSC settings.png|thumb|450px|Chart showing the relative difference values between Composite, S-video and RGB. Values taken from [[Nestopia]]]]
===; 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 usually dot crawl due to crosstalk between luma and chroma. 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 chroma resolution is about the same as the composite output.;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.
The lowest quality. Very blurry due to crosstalk between video ==Filters and audio signals, and subject to static due to interference.Shaders==
===Compositeblargg's NTSC===
Higher quality than RF'''blargg's NTSC''' filters 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 blurry and with lots make use of color artifact and dot crawl due to crosstalk between luma (brightness component them, but not without glitches. For instance, on certain [[PS1]] games that have multiple resolutions, some of the signal) resolution modes will work properly with these filters, and chroma (color component of the signal)some won't. This may mean the aspect ratio is what most systems used as defaulthorribly 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.
===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.
Much cleaner image due to luma and chroma being separate signalsIn some emulators, though color it will have sliders for settings such as Resolution (level of signal blur still present ), Sharpness (sharpness/comb filter that some TVs used), Color Bleed, Artifacts, and signal bandwidth Fringing. Others simply use the preset settings. Note: RF preset is just composite with field merging disabled, so it emulates the same as oscillating artifacts compositeoutput has (Go [http://www.chrismcovell.com/gotRGB/screenshots.html here] and see the 3rd image on the right for an example of this).
===RGBMaister NTSC===
The highest quality possible, since it uses separate channels '''Maister NTSC''' is a set of NTSC shaders<ref>https://github.com/libretro/common-shaders/tree/master/ntsc</ref> created by Themaister for each coloruse with various emulator cores in [[RetroArch]]. These try to be more "generic" than Blargg's filters, along so they will work with a sync signalany resolution without major glitching. There are several presets that cover different methods of generating composite and s-video signals. Component YPbPr  The 256px presets use 3-phase NTSC output, which is similarwhat the NES, SNES, and N64 output, while the 320px presets reflect the more common NTSC output from the Mega Drive, PC-Engine, PlayStation, where it uses luma+syncand most consumer video electronics. Both of these assume 256px and 320px horizontal resolution input, blue minus lumarespectively, and red minus luma for signals scale that to 1024px and 1280px to give high qualitydisplay the NTSC effects. This may result in scaling artifacts if the game's input horizontal resolution is not the same, high bandwidth output capable but the effects will be consistent if the horizontal resolution of displaying higher resolutionsthe game gets larger or smaller, allowing SNES hires translucency to work since it changes between 256 and 512, though this is only utilized by newer consolesfor example.
==Filters The plain presets use 3-phase NTSC filtering and Shaders==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 the ringing artifacts caused by a sharpening filter.
BlarggThere isn's NTSC shaders are powerful and optimized, but they are very system specific. There t much tweaking you can do besides changing gamma since the effect is a version for NES, SNES, SMS, quite complex and Genesis/Mega Drive, and each is intended for that system only, expecting a certain size input resolutiondifficult to understand. Certain games on other systems than Increasing the intended one can still make use horizontal scale of them, but not without glitches. For instance, on certain [[PS1]] games that have multiple resolutions, some the output of the resolution modes shader from 4x to 6x will work properly with these filters, and some won't. This may mean decrease the aspect ratio is horribly messed up for menus, but intensity of the main gameplay will look normaleffects (which also increases sharpness). These filters upscale the image wide horizontallyIt does not have an RGB preset, but donthough that't touch the vertical scale, so 1:1 PAR may result in weird aspect ratioss covered by another shader that emulates signal bandwidth.
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 [http://www.chrismcovell.com/gotRGB/screenshots.html here] and see the 3rd image on the right for an example of this).===GTU===
===Maister NTSC==='''GTU''' is a CRT shader<ref>https://github.com/libretro/common-shaders/tree/master/crt/shaders/gtu-v050</ref> by aliaspider that has options for emulating signal bandwidth in addition to the CRT scanlines effects. In addition to luminance (Y) signal resolution settings, enabling the "composite connection" option will allow tweaking the chrominance (I and Q) signal resolutions as well while emulating color bleed from low chroma resolutions.
[https://github.com/libretro/common-Since the shader is multipass, the signal bandwidth emulation passes can be decoupled from the CRT scanline emulation pass and be used with other CRT shaders/tree/master/ntsc https://githubor by itself.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===tvout-video signals.tweaks===
The 256px presets use 3'''tvout-phase NTSC output, which tweaks''' is what the NESa shader<ref>https://github.com/libretro/common-shaders/blob/master/crt/shaders/tvout-tweaks.cg</ref> made by aliaspider, SNESbased off GTU, and N64 output, while the 320px presets reflect the more common NTSC 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 Mega DriveGTU CRT shader to provide emulated signal bandwidth blur, PC-Engine, PlayStation, and most consumer video electronicsas well as TV color level conversion. Both of these assume 256px and 320px horizontal Works with any resolution inputwithout issues, respectively, and scale that to 1024px and 1280px to display the NTSC effects. This may lower signal resolutions result in scaling artifacts if the game's a blur that blends higher input horizontal resolution is not the sameresolutions, but the effects will allowing dithering to be consistent if the horizontal resolution of the game gets larger or smaller, allowing blended and SNES hires hi-res translucency to work since it changes between 256 and 512, for example.
The plain presets use 3===GTU-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.Famicom===
Among '''GTU-Famicom''' is a variant<ref>https://github.com/libretro/common-shaders/tree/master/crt/shaders/GTU-famicom</ref> of the GTU CRT shader that emulates the NTSC NES/Famicom PPU. It requires the presets"raw" palette option in Nestopia, Mesen and FCEUmm [[libretro]] cores, which outputs<ref name="nestopia_raw">https://github.com/rdanbrook/nestopia/commit/9d58851a22eb3baeee7b4fe28ae8ffaac7eaa599</ref> chroma, level, and emphasis as red, blue, there are Composite and Sgreen color channels. GTU-video versionsFamicom takes that output and processes it as an NTSC signal, which the shader decodes into RGB colors for display. Composite has all The shader also emulates the fringing full effects of RF/composite NTSC video signals, complete with artifacts that oscillate every other frame, resulting in a slightly flickery imagefringing, while S-video simply has and color bleed , and bluroptionally RF signal noise. This Like with the GTU shader lacks , the sharpness filter that Blargg's NTSC filter has, various signal resolution parameters can be tweaked so some may perceive it as blurriercan be made sharper, but it also lacks ringing artifactsor made to have less color bleed by boosting chroma resolution.
There isn't much tweaking you can do besides changing gammaAs with GTU, since the effect GTU-Famicom shader is quite complex multipass so the Famicom NTSC emulation passes can be decoupled from the CRT scanline emulation pass and difficult to understand. It does not have an RGB preset, though that's covered be used with other CRT shaders or by another shaderitself.
===TvoutNTSC-tweaksCRT by LMP88959 (EMMIR)===
['''NTSC-CRT by LMP88959 (EMMIR)''' is an NTSC emulator<ref>https://github.com/libretro/common-shaders/blob/master/crtLMP88959/shaders/tvoutNTSC-tweaks.cg https:CRT</ref> which encodes RGB images and/githubor "raw" NES palette indices into an NTSC signal and decodes the signal in a manner similar to an analog television.com/libretro/common-shaders/blob<br /master/crt/shaders/tvout-tweaks>This makes it so that it '''can be adapted to suit almost any system''' including systems like the NES, PS1, N64, SEGA systems, Apple II, etc.cg]
A shader made by Aliaspider intended for processing emulator images for output to a CRT TV connected to PC via VGA-toNTSC-RGB adapter. This shader uses code from the GTU CRT shader to provide emulated signal bandwidth blurcan emulate both progressive and interlaced composite video complete with vertical sync, horizontal sync, as well as TV and color level conversionburst detection, so noise in the signal can realistically effect image warping/scrolling/quality. This shader is equivalent to the Blargg<br />It accurately reproduces '''''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 issuesartifacting''''', '''''chroma bleed''''', '''''phosphor trails''''', lower signal resolutions result in blur that blends higher input resolutions'''''dot crawl''''', allowing dithering to be blended and SNES hi res translucency to workmore.<br />
===Other===NTSC-CRT has controls for noise, hue, saturation, brightness, contrast, artifact color phase, black point, and white point.
* Go [https://github.com/libretroLMP88959/commonNTSC-shadersCRT/blob/mastermain/crt/shaders/snes-hires-blendREADME.cg snes-hires-blend.cgmd here]* [https://githubto see images of example output along with some videos.com/libretro/common-shaders/tree/master/dithering dithering shaders]
==Gallery==
===Blargg blargg's NTSC===
<gallery position="center" captionalign="center">
S-video.png|S-Video
Rgb.png|RGB
</gallery>
 
===NTSC-CRT by LMP88959 (EMMIR)===
 
<gallery position="center" captionalign="center">
NESLMP88959.png|NES Decoding
cbarsLMP88959.png|SMPTE Color bars
Apple2LMP88959.png|Apple II Frogger (Left=Input, Right=Output)
</gallery>
==Emulators==
Many The following emulators have them blargg's NTSC filter or NTSC-CRT by LMP88959 (EMMIR) built -in;<ref>[https://github.com/LMP88959/NTSC-CRT#emulators NTSC-CRT supported emulators]</ref> {| class="wikitable"! scope="col" style="text-align: center;"|Emulator! scope="col" style="text-align: center;"|SystemEmulator! scope="col" style="text-align: center;"|NTSC filtersSystem! scope="col" style="text-align: center;"|Notes
|-
| style="text-align: center;"|[[Nestopia]]| style="text-align: center;"|[[Nintendo Entertainment Systememulators|NES]]| style="text-align: center;"|✓| style="text-align: center;"|Win32 version has sliders.
|-
| style="text-align: center;"|[[puNES]]| style="text-align: center;"|[[Nintendo Entertainment Systememulators|NES]]| style="text-align: center;"|✓| style="text-align: center;"|
|-
| style="text-align: center;"|[[ZSNESMesen]]| style="text-align: center;"|[[Super Nintendo Entertainment Systememulators|SNESNES]]| style="text-align: center;"|✓| style="text-align: center;"|
|-
| style="text[https://github.com/L-align: center;"|[[Snes9x]Spiro/BeesNES BeesNES]| style="text-align: center;"|[[Super Nintendo Entertainment Systememulators|SNESNES]]| style="text-align: center;"|✓| style="text-align: center;"|
|-
| style="text-align: center;"|[[Genesis Plus GXZSNES]]| style="text-align: center;"[[Super Nintendo emulators|Sega consolesSNES]]| style="text-align: center;"|| style="text-align: center;"|
|-
| style="text-align: center;"[[Snes9x]]|[[Kega FusionSuper Nintendo emulators|SNES]]| style="text|-align: center;"|[[Genesis Plus GX]]|Sega consoles| style="textPresets only.|-align: center;"|[[Kega Fusion]]| style="text-align: center;"Sega consoles|
|}
 
==See also==
*[[Shader_Presets|Shader Presets]]
:*[[CRT_shaders|CRT shaders]]
:*[[Shaders_and_filters|Shaders and filters]]
 
==References==
{{reflist|2}}
[[Category: Shaders/Filters]]
[[Category:FAQs]]
Anonymous user

Navigation menu