I wasn’t sure whether to post this on the current NTSC shaders thread but I thought it probably warranted its own discussion. Sorry if I’m wrong.
Until recently, I’ve been using blargg’s NTSC filters when playing retro games but I’ve become increasingly frustrated by the video filter being reliant on which emulator core I’m using. Lots of cores are missing them entirely and some, such as snes9x, currently have a broken implementation, as far as I can tell. I’ve come to the conclusion that I’d really rather have a shader implementation that’s separate from the emulator core.
As such, I’ve been experimenting with themaister’s NTSC shaders. I’m quite happy with the results on NES but things get more complicated when we go over the 16-bit consoles.
Below are some images to illustrate my problem:
Raw pixels:
blargg’s NTSC composite filter, built into emulator:
themaister’s NTSC 2-phase composite shader:
themaister’s NTSC 3-phase composite shader:
themaister’s (?) NTSC xot shader:
As I hope you can all see, there is quite a lot of variation here. As I understand it, themaister’s 2-phase shader should be the best fit for the mega drive. However, it looks awful here and 3-phase isn’t a lot better. Xot gets close to blargg but still isn’t quite as good.
There are also problems on the SNES side.
Raw pixels:
themaister’s NTSC 3-phase composite shader:
themaister’s 3-phase shader should be a good fit for this console, I believe. However, we get the same pattern issue as on the mega drive. Ironically, the 2-phase shader handles SNES transparency better but leaves other areas more artifact-y than I would prefer, compared to the 3-phase shader and the real console.
Does anyone have any thoughts here? I don’t have any experience writing shaders, myself, but, in an ideal world, I would love either for blargg’s filters to be ported over as a slang shader or for someone to tell me how I can adjust themaister’s NTSC shaders to get better results.
Thanks for reading!