I’m not that deep into the technical details of NTSC or S-Video signals. I usually stop coding when my eyes tell me to/when what I see looks “good enough”® . So while my NTSC implementation might look fine to an untrained eye and may bring back some good memories, it’s definitely not analytically perfect.
The same goes for S-Video, though in this case my memory and a bit of technical knowledge help me a little more.
The preset named “TV-PAL my old” is meant to recreate how I remember my old, cheap consumer TV …though that one was connected via composite, not S-Video.
As far as I know, S-Video carries luminance and chrominance through separate cables, so they don’t interfere with each other as they do in CVBS. However, both still operate within limited bandwidth.
That means luminance should appear cleaner and sharper than with composite (though not as sharp as RGB due to bandwidth limits), with no crosstalk — but the same kind of color bleeding can still be seen because of that limited bandwidth.
Vertical and overral sharpness depends on the CRT screen itself, but assuming you were using a common model, maybe blurring the image, adding a bit of noise and activating the CVBS color bleed feature should be enough (?)
What about this? it is probably on the low quality side (on purpose to show the effect of the parameters), so you may want to tweak it.
It is a slotmask with high scanlines, low saturation, some noise, color bleeding, a bit of blur on x and y and PAL chroma bleeding.
Rest is the base.slangp reference preset.
If you want to tune to your likings, i think the main parameters to be used which relates to Svideo are Colo Corrections: saturation, RF Noise, Glow/Blur: Sharp X/Y, CVBS Bandwidth: Strength and Falloff
Put this in the same folder as Presets-ng/Base.slangp:
#reference "Base.slangp"
IN_GLOW_GAMMA = "2.220000"
IN_GLOW_POWER = "2.999999"
LUMINANCE = "0.000000"
SATURATION = "0.9"
DO_SAT_BLEED = "1.000000"
SAT_BLEED_PAL = "1.000000"
SAT_BLEED_STRENGTH = "0.60000"
SAT_BLEED_FALLOFF = "1.470000"
DO_SHIFT_RGB = "0.000000"
DO_RF_NOISE = "1.000000"
RF_NOISE_STRENGTH = "0.140000"
RF_NOISE_SPARK = "0.080000"
IN_GLOW_H = "-0.850000"
IN_GLOW_WARPSHARP_X = "0.500000"
IN_GLOW_WARPSHARP_Y = "0.500000"
PIXELGRID_MIN_H = "0.650000"
PIXELGRID_MAX_H = "1.000000"
PIXELGRID_GAMMA_H = "3.600001"
PIXELGRID_H_PRST = "5.000000"
PIXELGRID_Y_MASK = "0.400000"
PIXELGRID_Y_MASK_COORDS = "1.000000"
PIXELGRID_Y_MASK_HEIGHT = "0.500000"
PIXELGRID_Y_MASK_OFFSET_DEHIVE = "0.260000"
PIXELGRID_Y_MASK_SHIFT = "-0.010000"
PIXELGRID_Y_MASK_ON_WHITE = "0.999999"
PIXELGRID_Y_SPARK = "0.000000"