So, I’ve been working on the NTSC shaders lately. There are presets for
-
Gauss scanlines or not (an adapted CRT-geom might be better later)
-
SVideo or not (artifacts/fringing removed, but that’s it)
-
256px/320px or not.
-
ntsc.cgp and ntsc-svideo.cgp are basically equiv to gauss + 256px, gauss + svideo + 256px respectively.
The 256px/320px stuff requires some explanation. 256px presets force 1st pass to output to 1024px width. This avoids hires material to act differently than regular stuff.
Similarily for 320px. Use it for both 320/640 px width material (N64/PSX). The difference between 256px and 320px is a different chroma carrier wavelength (relative to pixels), and they need different filters, etc. I don’t know of any NTSC filters/shaders intended for N64/PSX, so I cannot compare.
Another difference between 256px and 320px is how burst phases are done. In NES and SNES, it’s 120 degree change per scanline, and offset per frame is 0/120 degrees. For 320px, I’ve used 2 phase with 180 degree offset per frame. Not sure if this is correct.
Some might think this is too blurry. I’m not sure how to filter away the chroma carrier and keep things sharp without looking very ugly. Also, I’m not sure how correct it is for the image to be “sharp” with NTSC, considering the bandwidth is kinda narrow to begin with.
A difference between my approach and Blargg’s is that he samples at a multiple of chroma frequency, while these shaders sample at multiple of luma. That could change some complexity, dunno.
Remember that all screenshots with NTSC will be more artifacty. You need to blend two successive frames to get an impression on how it will look on screen.
The old “diagonal lines” on screen were caused by chroma demodulation. After revising the filters, the stripes are now completely gone.
EDIT: Here’s ntsc-256px.cgp on tvpassfail NTSC test ROM (https://github.com/christopherpow/nes-test-roms/tree/master/tvpassfail). It’s not blended.: