Hello again ! :-)
I just want to show you some things I did. It's not extraordinary, it's even very simple, but I just tried to come close to how the picture was on a CRT (very basically, it was just for help me, because some CRT shaders are really better of course).
I compared with some photos that I found here :
https://www.neogaf.com/threads/scanline-screenshot-thread-because-240p-is-all-the-ps-i-need.921436/page-2
But here, I will take this capture as a model :
(source : https://youtu.be/iPohK0D8qvM )
I know the picture is bad :-P
But what is interesting is that the guy used a VGA CRT monitor instead of a CRT TV with the real console and an OSSC.
I think it's better to compare with this than with a CRT TV and its scanlines, because it's closer to the conditions we have on a modern screen which hasn't scanlines.
But there is the version with a CRT TV too ^_^ :
(source : https://youtu.be/OxBXiCPFM78 )
And so, here is a test with (very basic) scanlines and a little boost of gamma to compensate :
Language: avisynth
PointResize(512, 448)
Scanlines(STRENGTH=75)
Levels(0, 1.25, 255, 0, 255)
PointResize(1024, 896)
BilinearResize(2820, 2160) # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
Personnally, I wouldn't use scanlines for YouTube. It's just to compare ! :-)
The same without scanlines :
Language: avisynth
PointResize(1024, 896)
BilinearResize(2820, 2160) # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
Another capture for model :
I tested something softer (without scanlines) :
Language: avisynth
PointResize(512, 448)
Scanlines(STRENGTH=75)
Levels(0, 1.25, 255, 0, 255)
BilinearResize(1170, 896) # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
Resize8(2820, 2160, kernel="Spline36", kernel_c="Spline36") # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
I choose to change the aspect ratio with the bilinear filter to begin, because I think it's more convincing, but you can choose to do that only with the Spline36 resizer.
The same picture without scanlines :
Language: avisynth
PointResize(512, 448)
BilinearResize(1170, 896) # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
Resize8(2820, 2160, kernel="Spline36", kernel_c="Spline36") # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
I tested so many other things (with Nnedi3 too ;-) ) that I can just say one thing : the simpliest is often the best.
I know that lots of people hate the bilinear filter, but personnally, I think that the best result is this (from what I suggested of course) :
Language: avisynth
PointResize(1024, 896)
BilinearResize(2820, 2160) # Personnally, with some other games like "Super Metroid", "Mr. Nutz" or "Super Mario World", I keep the 8:7 AR, so I choose a resolution of 2468 x 2160
There is no miracle with an upscale ! :-(
Some people may think that it's to simple to be good, that it's inaccurate, but was it accurate in those days ? :-)
The other problem, as I said above, it's the influence of the modern "pixel art" indie games and their pixel perfect blocky representation... :-P
I'm curious to know what you think ! ;-)
But I tested enough things (like a lunatic ^_^ ) to know that it's never finished if we are looking for the perfection ! The rest is too subjective... !
Personnally, I keep the PointResize filter with the bilinear.
This with 1080p :
Language: avisynth
PointResize(512, 448)
BilinearResize(1410, 1080)
This with 1440p :
Language: avisynth
PointResize(768, 672)
BilinearResize(1880, 1440)
And this with 2160p :
Language: avisynth
PointResize(1024, 896)
BilinearResize(2820, 2160)
Voilà ! :-P
Sorry, there is no big revelation ! :-/
Just some reflexions I think.