Modified NTSC S-Video shader with transparency for Sega Saturn!

It’s one of those times again when I feel I have to give something small in return in favor for you the RetroArch team giving me so much!

I’m gonna share my modified NTSC S-Video shader with transparency.

As you can see this is what it looks like. Sega Saturn wasn’t famous for it’s famous transparency effects and would have looked ugly. You could achieve this effect in SSF by using the Program 4 option “Mesh Translucent” for those who remember.

Anyway, enjoy! Just put it in your shaders\shaders_cg folder.

Download: ss.zip (16 KB)

That’s some nice-looking transparency. thanks for sharing it!

Yeah it’s quite nice to have somehow proper transparency in these games.

If you look at this comparison between the PSX and the Saturn version you’ll see how one of the transparent enemies in the game looks, not so good.

PSX:

Saturn:

Hahaha, man I just want to thank you guys for showing me what everyone is talking about when it comes to transparencies on the saturn. I’d never seen an example of it. That’s atrocious lmao.

Out of curiosity… Is there any way to make this a generic-enough shader that we could add it to other TV-connection presets?

The Saturn could actually do transparency but it depended on which VDP or layer (can’t remember exactly) that the item that was supposed to be transparent was being rendered on. Castlevania for the Saturn was an absolute horrendous and lazy port and not a fair judge of Saturns capabilities.

1 Like

Akumajou Dracula X - Gekka no Yasoukyoku was a lazy port on the Sega Saturn alright as explained here: Playstation-to-Saturn Porting

As for the Sega Saturn and transparencies this is a quote from the above linked article about the Akumajou Dracula X porting:

The Saturn cannot do hardware alpha channel transparencies in 3D. That has to be done in software as some programmers have shown they have the ability to do. Transparencies can be done, I believe on a hardware level, in 2D operating modes. Several games have demonstrated this. The PSX-derived engine is 3D-based and thus interpolation/dithering had to be used in most cases to replace true transparency. When true transparency is used it is programmed in software and slows the game down greatly, as evidenced in the special weapon rooms.

1 Like

[QUOTE=SkyHighGam3r;48063]Hahaha, man I just want to thank you guys for showing me what everyone is talking about when it comes to transparencies on the saturn. I’d never seen an example of it. That’s atrocious lmao.

Out of curiosity… Is there any way to make this a generic-enough shader that we could add it to other TV-connection presets?[/QUOTE]

I reckon it would be quite easy to make it generic-enough. This is how the Sega Saturn NTSC S-Video.cgp file from my download looks like:

shaders = "8"
shader0 = "shaders/mdapt-pass0.cg"
filter_linear0 = "false"
scale_type0 = "source"
scale0 = "1.0"
shader1 = "shaders/mdapt-pass1.cg"
filter_linear1 = "false"
scale_type1 = "source"
scale1 = "1.0"
shader2 = "shaders/mdapt-pass2.cg"
filter_linear2 = "false"
scale_type2 = "source"
scale2 = "1.0"
shader3 = "shaders/mdapt-pass3.cg"
filter_linear3 = "false"
scale_type3 = "source"
scale3 = "1.0"
shader4 = "shaders/mdapt-pass4.cg"
filter_linear4 = "false"
scale_type4 = "source"
scale4 = "1.0"
shader5 = "shaders/ntsc-pass1-svideo-2phase.cg"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
frame_count_mod5 = "2"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "absolute"
scale_x5 = "1280"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders/ntsc-pass2-2phase-gamma.cg"
filter_linear6 = "false"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "0.500000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders/image-adjustment.cg"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
parameters = "NTSC_CRT_GAMMA;NTSC_MONITOR_GAMMA;target_gamma;monitor_gamma;overscan_percent_x;overscan_percent_y;saturation;contrast;luminance;bright_boost;R;G;B;ZOOM;XPOS;YPOS;V_OSMASK;H_OSMASK"
NTSC_CRT_GAMMA = "2.100000"
NTSC_MONITOR_GAMMA = "2.100000"
target_gamma = "2.200000"
monitor_gamma = "2.200000"
overscan_percent_x = "0.000000"
overscan_percent_y = "0.000000"
saturation = "1.050000"
contrast = "1.000000"
luminance = "1.000000"
bright_boost = "0.000000"
R = "1.050000"
G = "1.000000"
B = "1.150000"
ZOOM = "1.000000"
XPOS = "0.000000"
YPOS = "0.000000"
V_OSMASK = "0.000000"
H_OSMASK = "0.000000"

[QUOTE=SigmaVirus;48074]Akumajou Dracula X - Gekka no Yasoukyoku was a lazy port on the Sega Saturn alright as explained here: Playstation-to-Saturn Porting

As for the Sega Saturn and transparencies this is a quote from the above linked article about the Akumajou Dracula X porting:[/QUOTE]

But it could do them without the awful alternating pixel fake transparency.

Great work SigmaVirus, tansparancyFX are horrible on Saturn unfortunately.

Is there any way you could make the shader any less blurry? Or is this absolutely necessary in order for the “faked transparancy” to work (which I would totally understand)?

[QUOTE=bankaiprimera;48907]Great work SigmaVirus, tansparancyFX are horrible on Saturn unfortunately.

Is there any way you could make the shader any less blurry? Or is this absolutely necessary in order for the “faked transparancy” to work (which I would totally understand)?[/QUOTE]

Thanks man!

If you want less blurriness I suggest you only use the mdapt shader through: shaders\shaders_cg\dithering\mdapt.cgp

Although the mdapt shader method seems to work well and gives an illusion of transparency, it’s not real transparency in anyway and it’s quite flawed if you look closer on transparent objects/enemies etc. if you only use mdapt.cgp alone.

However things related to transparency does seem to look better with the modified NTSC S-Video shader I presented and the flaws become less apparent.

I think it’s safe to say that anything is better then this at least: