Please show off what crt shaders can do!

The mega cd? extension It uses the video output of the megadrive (France) or genesis us. The genesis megadrive works in full rvb peritel and offers the same quality as the arcade. The 32x extension also uses the genesis rvb video output.

Like all the others I mentioned… The exception in France? The nintendo nes famicom, and the nintendo 64… Everything else is perfect. Those who are looking for the rainbow effect in sonic? In the waterfalls? It’s because they had a console with bad wiring, sega did not provide the rainbow artifact on genesis. I saw a post where he was looking for a shader for this effect…he didn’t understand actually… This effect is due to a composite cabling, cinch yellow cable video the colors pass in a wire… No separation luminance chrominance etc…

In rvb ? The Genesis does not produce any video artifact. The nintendo nes yes, because the programmers knew this weakness of video quality. Pegaman was created by taking account of that, (the megaman or there is a building the city, of the windows illuminated) this thing in blarg ntsc composite reproduces the effect which I saw on the real hardware. It creates rainbow effects, (but this is not on genesis) Rvb peritel genesis full rvb no artefact.

They hooked up the genesis with this. We call it rca video cinch (the worst possible quality in our country) Nothing to see, the peritel has more than 20 pins which ensure the quality, that is more than 20 wires. The cinch video thingy has one wire…

What about your home? Us?

You use super video That I also have here in France but… Cinch video > super video > rvb. Peritel.

The rvb offers a better rendering than svideo. I tried on my sony, yes it’s better than the yellow cinch video…but not at the rvb level…

1 Like

Better is subjective. Some games look “better” using composite than in RGB.

1 Like

Yes subjective

So I originally posted this about a year ago. At that time, I had been gaming primarily on an HDTV via a Framemeister for a few years since I didn’t have access to my CRTs during that time. I finally got sick of it and purchased a lovely little 13" Sony Trinitron. This little TV looks fantastic, but the catch is that it only inputs RF and composite (and only mono audio at that). For the longest while when I was young, I only had a 13" TV (not nearly as nice as a Trinitron) and used RF for everything, so I figured I’d make due. I was planning on making a stereo-to-mono RCA adapter to solve that problem, but until I had a chance to make it I decided to just use consoles that output mono audio. So I was playing a lot of NES and my Genesis 3. At that point, it had been many years since I used composite for the Genesis. I was using RGB with the Framemeister on an HDTV for a few years, and I was using S-Video on a CRT for a few years before that.

Not to sound too dramatic, but I was kinda blown away how awesome these composhit effects looked. I hadn’t seen them in many years, I forgot how awesome they look. I was use to looking at these jarring hash and checkerboard patterns. So I binged played my favorite Genesis games and marveled at how much better I thought it was. At this point, I thought I would simply stick with composite for the Genesis from then out. Sure, it’s a blurry rainbow mess. But I thought I’d rather deal with that than the broken transparencies.

But since I originally posted this I decided to pick up a 13" Sony PVM and a SCART switcher. The seller of the switcher threw in a bunch of cheap RGB SCART cables. I only had an RGB cable for my model 1 Genesis up to this point, but now I had a model 2/3 RGB cable. So naturally I decided to test it out. I was using composite for a few months with the Genesis 3, so that’s what I was use to seeing. I hooked up the RGB cable with the Genesis 3 and WOW I forgot how amazing blurry the Genesis composite really is. It really is like smearing Vaseline all over the screen. RGB is so crisp, so clean. But now the transparencies are broken.

And that is why I posted this. I just cannot make up my mind. It’s a I want my cake and eat it too kind of situation. It doesn’t help that all of my favorite games for the Genesis use this trick in one way or another. Another good example is my favorite game on the console, Castlevania Bloodlines.

1 Like

had a model 2/3 RGB cable. So naturally I decided to test it out. I was using composite for a few months with the Genesis 3, so that’s what I was use to seeing. I hooked up the RGB cable with the Genesis 3 and WOW I forgot how amazing blurry the Genesis composite really is. It really is like smearing Vaseline all over the screen. RGB is so crisp, so clean. ( I can tell you it’s true what he says…) :grin::grin::grin:

He says the transparencies are broken? After plugging in a genesis with the wrong cabling, he thinks the transparencies are broken?

Another person who doesn’t know the hardware of the consoles. The genesis can’t display hardware transparency effects, it’s a development trick that was used on genesis, like the dithering technique to make better gradations and believe that the genesis has a better color palette, the genesis doesn’t manage the transparency effect in hardware, like the .saturne compared to a PSX which manages it in hardware.

The genesis can’t do that like the .snes which came out after. The snes can manage transparency effects in hardware, visible in all the games that are on the 2 supports, genesis, and snes.

The genesis 512 colors 32 displayable on the screen no transparency managed hardware (I say this from memory…more than 20 years…)

Snes 32768 color 256 displayable on the screen, hardware transparency effect, zoom, mode7 were advances for the time that the genesis could not manage in hardware, here is the truth.

So there is no hardware transparency effect on genesis, it requires the developer of the time to use advanced techniques and tricks, to make believe in transparency…like dithering simulates a better color palette, for a better gradation.

Look at snes vs genesis games, all the games that have water, waterfall, will always be better rendered. Because the snes handles this perfectly, and this is the difference between the 2 consoles, which make a real aesthetic identity to the genesis, so if users want video artifacts on genesis, they do what they want, but this is not the truth.

Want to know more? It’s up to you.

1 Like

Fake-lottes with image-adjustment.glsl as 1st pass and curvature removed. Really fast and good looking for a not so powerful device.


I actually made and tested this “Vaseline” preset earlier this morning. Not as a result of any of your posts though it was purely coincidental as I was experimenting with ways in which I could improve my latest CyberLab Mega Bezel Death To Pixels Composite Pure preset! My other presets failed the Sega Genesis dithering to make more colours and transparencies test but I actually stumbled upon this accidentally while trying to eliminate dithering from a SNES game.

The result? Perfect and beautiful transparency and reflective glass effects in Sonic The Hedgehog - the way it was meant to be played I’d say! Now I have to go and play it all over again just to see how beautiful it looks.

I’m calling this new preset CyberLab Mega Bezel Death To Pixels (Composite - Vaseline)! lol Actually, I think I’ll just call it CyberLab Mega Bezel Death To Pixels (Composite).

I will add it to my shader presets post a little later. My screenshots really need an update as they’re lagging way behind my presetss now. I would have to use video clips to accurately represent my presets though because they all contain “active” elements and don’t look as good when paused or frozen. Even that is a challenge because too low of a bitrate or wrong settings can lead to a similar problem as the screenshots or worse.

1 Like

From old EGM and GamePro memory, I thought the Sega Genesis could display 64 Simultaneous colours, sometimes more?


Exact 64 color :grin: This was from memory 20 years ago. That’s why I say memory and recollection are not always reality. Like having a reference crt. for shaders To see the truth.


The thing with memory, just like eyesight is that it varies from person to person and some people have much better memory than others so you can’t always count it out.

1 Like

FYI If you want to copy the “hound’s tooth” effect, you can use this shader pass from @guest.r

New CRT shader from Guest + CRT Guest Advanced updates - RetroArch Additions / Shaders - Libretro Forums


thank you my friend i hope you understand better now why nesguy told you that your old preset was blurry, if like me he saw and played with good quality cabling on his rvb consoles

and I also told you that your preset was blurry, it was not to denigrate your work that I respect, it’s just to tell you that in 2021 I’m playing on my sony crt some retro games and it’s easier for me to see the truth, than childhood memories.

The comment I posted is not from me; it’s not me who says that “But since I originally posted this I decided to pick up a 13” Sony PVM and a SCART switcher. The seller of the switcher threw in a bunch of cheap RGB SCART cables. I only had an RGB cable for my model 1 Genesis up to this point, but now I had a model 2/3 RGB cable. So naturally I decided to test it out. I was using composite for a few months with the Genesis 3, so that’s what I was use to seeing. I hooked up the RGB cable with the Genesis 3 and WOW I forgot how amazing blurry the Genesis composite really is. It really is like smearing Vaseline all over the screen. RGB is so crisp, so clean.

it’s just the truth I know from my childhood until 2021 because my sony aperture grill kvm 1450b tv crt is cable in rvb. so when i see blurry, dark shaders, not representative of reality? that’s what i see in the present, live, on my crt. I can only say it’s blurry, but the user goes further by saying

RGB cable with the Genesis 3 and WOW I forgot how amazing blurry the Genesis composite really is. It really is like smearing Vaseline all over the screen. RGB is so crisp, so clean.

So here I am willing to help, always a pleasure to share. when i test your preset, we’ll get in touch, and if you want me to help you take pictures, screenshots, or video of your preset in action? i’ll be there to help you if you want.

quote from cyber The result? Perfect and beautiful transparency and reflective glass effects in Sonic The Hedgehog - the way it was meant to be played I’d say! Now I have to go and play it all over again just to see how beautiful it looks.

I’m really glad you’re going in the right direction, I share your joy the rvb is beautiful on all consoles and to see that in a shader is a tribute to crt… if some users like blur and smudgy colors? it’s their choice that i don’t share, why would i degrade the video signal in a shader when it’s not the original hardware quality, it’s just the result of a user who uses an inadequate, cheap, and bad quality cable. and on top of that who doesn’t even have a tv crt anymore to see that he’s wrong so everyone does what he wants, I repeat.

The issue there was that you hadn’t tried the presets which had evolved way past that plus you were using an old screenshot of the presets as well. One of the first iterations.

I can’t recall him saying that my old preset was blurry but I do remember him commenting on a screenshot, not as old and outdated as the ones you used in your assessment. He said he didn’t like XBR and I told him that I didn’t use XBR. I told him I use Scale FX and he said why he didn’t like things like that. I also told him that he shouldn’t judge from the screenshot.

Let’s not go around in circles with these things that have already been said and misunderstandings that have already been resolved only to unresolve them again.

Remember this whole thing is all very subjective. Please look at the first few posts in this thread and you’ll see what the original poster and some others preferred. My issue at first was based on a misrepresentation then. When I showed you the current screenshots you said they were close to yours just darker or at least that’s what I gathered.



shaders = "12"
shader0 = "shaders_slang/misc/grade.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/advanced/afterglow0.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/advanced/pre-shaders-afterglow.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/advanced/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BloomPass"
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
CONTR = "0.250000"
WP = "-100.000000"
glow = "0.000000"
brightboost = "2.500000"
brightboost1 = "2.500002"
gsl = "1.000000"
beam_size = "0.000000"
vertmask = "0.500000"
scans = "1.000000"
spike = "0.000000"
h_sharp = "4.000001"
s_sharp = "1.000000"
shadowMask = "7.000000"
maskstr = "0.800000"
mcut = "0.800000"
masksize = "2.000000"
mclip = "0.000000"
gamma_out = "2.799998"
deconrr = "1.000000"
deconrb = "-1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"

I have a week free to test your settings, it will be great. Thanks for all your sharing, you should have a place to share. Now I’ll have to look everywhere for your presets. And you don’t say exactly what shader you use, if you use guest adv ntsc for the nes famicom? And that I am on guest advanced revision2 . I don’t think I have the same rendering. Thanks for sharing.

To be fair, even if it’s a developer trick to get transparencies.

It doesn’t change the fact that they are technically broken if not viewed via composite, as any use of pseudo-transparencies on the genesis had to be intentional like 99% of the time. You don’t accidentally make a half transparent dithering pattern :joy:

I will agree that the genesis didn’t have transparency in the same way as the SNES. (As the genesis didn’t have real transparency)

Basically to say that Genesis transparencies aren’t broken over anything other than composite is inaccurate, as they are, even if the genesis didn’t support real transparency. (As pretty much all transparency done on the genesis via composite was definitely intentional, so saying it’s anything other than broken via other display methods is incorrect imo)


I know this question will further expose my ignorance in this thread, but what is palette cycling? And how does this feature work perfectly to simulate a true transparency effect? When you change the colors of the palettes to make the graphics using those colors look like they are animating. (Pulseman’s clock does this, as do the waterfalls in Sonic games, etc.)

The transparency effects on Genesis are tricks Like the palette cycle etc… I don’t go into details otherwise I have to write 20 pages here…a book as you say So here there is a little info.

1 Like

The pallet cycling that both of those examples you mentioned have to do with animation and not transparency. (I’m busy reading a book ATM, but I’ll look through that link in a bit, idk what pallet cycling has to do with transparencies tbh, as afaik all the pseudo-transparencies that the genesis does are the exact same, dithering of the color they want to be ‘transparent’ and no color, composite blends them to create a transparency)

It’s swapping colors to fake “animation”, basically they get away with not having to use more resources for graphics, because instead of swapping sprites to go through an animation they just swap some colors out, which saves on resources.

Basically let’s say I have a window that is normal but the scene is at night. And I want the windows to flicker on and off with light. I could make multiple images to do that animation, or I could pallet swap, use the same image with some colors swapped to imitate that animation. (It would save me space on the game, plus I could use the ram and stuff that would’ve went to swapping sprites to animate the window to something else)


There are a lot of ways to do it but I won’t detail it here, it’s not the right thread. I could explain it in 20 pages like in 1000. Vblank,scanline change, palette cycles, rendering and many other techniques for that.

Metal Slug 3 on the Neo Geo also makes heavy use of animation-based transparency. On the big alien boss, when he’s still covered in his brain, the energy balls he generates are transparent, but when they start moving towards you, they become solid. The reason they are transparent at first is because they are all pre-rendered.

Or maybe that too. Are you telling me that composite is useful for displaying transparency? I suggest you read the link I provided. Everything I site comes from there.and the answer to your question is also there I think…

It’s always a problem of semantic argument. Is the shaking of the checkerboard transparency? Is blinking an image every odd frame transparency? Both accomplish a similar effect to transparency, as does S/H. It’s very different for me, dithering only works in the case of bad video output, and the flashing image is easily broken just by pausing the game, so anyone can see that it’s fake! Very different from S/H mode, which works great on any video output and looks great even today.

In depth

Discussion between users of the good and not so good

For example in the link highlight and shadow I can see interesting things like this…

Quote Originally Posted by Jasper061992 View Post

Oh. If it’s a scan line change, how come every time I have slowdowns underwater, the color stays solid (no flicker)? I can tell the difference between the water in Sonic 1 (the water in the maze which has a real clean hue and the water in act 1 of the aqua planet area in Sonic 2 which has a dotted look every other pixel. Is this the effect of changing the scan line?

Are these two Sonic you are talking about the SMS or Genesis versions? The Genesis version of Sonic 1 does mid-screen palette updates (it may even do mid-screen tile changes too, but I doubt it since it already does palette block updates).

This leaves artifacts of corrupted pixels on the screen, mostly evenly spaced (it’s either 16 or 32 pixels apart, I forget from memory). So they put glittery/alternating sprites at the edge to help hide that. And that really makes it imperceptible. Also, when you change the position of a palette or mosaic in the middle of the screen, the rest of the screen is now drawn with these new updates. So you don’t need to do this effect on every scan line. Just at this point.

Actually, when i pause the game on Sonic 1-3 that flickering water waves can disappear at one side. The sprite colour neatly changes colour when one half is outside and the other inside along with any other graphics thats half out.

I’m not sure what you’re asking though? Not every transparency trick uses 60hz “flicker”, obviously. And what the game does when you pause it, is up to the developers. There’s nothing to prevent the sprites from alternating on the waters edge, other than the programmer decided the pause function was also going to pause that routine as well. There are a lot of tricks you can do be it the SMS or the Genesis, and not all of them are necessarily the same. Hell, SMS games are known to do software sprites because it has 4bit tiles. You’ll 99.999% never see this on the NES because if its lower color count/restrictions on tiles. If I were going to do such method on the SMS, it would a tilemap method like I mentioned earlier on and interrupt, and manually update the Sonic sprite with different colors depending on which point he entered the water (mainly, because I’m not sure what the effects or possibility of updating palette ram mid screen on the SMS), which is a very simple task given the 4bit color limit of sprites.

lol, i meant if Sonic loses rings underwater, the game framerate slows down to 25-30fps and yet the water colour is still solid, no flicker.

Why would that make any difference though? And interrupt is an interrupt. It’s going to happen whether the game codes falls behind or not, on a frame. It’s regardless if this is done via palette reg updates or tilemap method, or both. The color shouldn’t flicker because the game slowed down. You might be confusing this with some else (or some other broken/borked game engine) or maybe flicker style transparency. Dunno.