Please show off what crt shaders can do!

What used to happen on older screens was instead of the image in the corners and edges bending and conforming to fit the curve of the bezel, sometimes a portion just got cropped off and was off screen. This is all subjective though. Everyone is free to set and use things in the way that they like.

As for me personally, I’ve tried different curvature settings and algorithms and I’ve decided that I prefer the modern benefits of perfect geometry.

Most of the time when I see screenshots featuring curvature, they seem a bit exaggerated. It’s like back in the day, you didn’t really notice that things looked curved. To me it was so subtle that things didn’t really look curved even though the outside of the glass was definitely not flat. That could also be due to the possibility that our brains might have been so accustomed to curvature that we adjusted to compensate and now that we’re used to seeing things straight, they look exaggerated. However, in the not too distant past when I’ve used CRTs I still didn’t notice any curvature of the image on the screen.

3 Likes

To tell the truth if I could get all the bezels I have pretty much without the bezel and just the two images on the side I would be more than happy to get rid of the curvature forever. I tried what you were talking about once where some of the image gets cut off but then I remember every crt I had in the past always use to cut some of the image off so now I don’t want to ever go through that again, I want to see everything now lol. I guess I’m just use to it so it doesn’t bother me at all and I like it now actually even if it does appear exaggerated.

4 Likes

I’m definitely with you on that one.

2 Likes

There is a “crt-fast-bilateral-super-xbr” in the “denoisers” folder in both slang and glsl.

3 Likes

I hacked an old version of Guest.r shader to pieces lol, removed masks, inserted others, removed some pieces and in the end it run 85 fps on old Snapdragon 600 cellphone (guest-sm runs only 25 fps there). As a comparison fake-lottes runs around 150 but the guest.r shader looks a lot better. I have much stronger hardware like gtx 1070 & 1060 & snapdragon 835 but is always fun doing things like these lol.

grab it here, maybe it runs on your old hardware

https://mega.nz/file/u3xEwDTD#udetJUFA-rvQZO8Nsvd3THh040YGuERy71UIlbQ6yTA

5 Likes

Looking through this thread, I noticed there is very little discussion of PC CRT emulation through shaders. I realize this is because the vast majority of emulated content is 240p, but let us not forget two paragons of 400/480p content: The Dreamcast, and VGA DOS games (you could also make a strong argument for the GameCube and Wii, of course). If we’re about authenticity, I would think having shaders that properly emulate 31KHz resolutions would also be a priority for these!

Long ago, I attempted to modify CRT-Geom to output 480p-esque scanlines for use with DOSBox, along with a few others over at VOGONS. We had some success, but the result was imperfect. Nowadays we have much more advanced shaders to work with, so I set about to see if any of them were able to deliver out of the box.

It turns out a fair bit of them are! Well, to an extent, at least. It depends on how the shader deals with 400+ line content. Some, such as CRT-Easymode, show no scanlines of any kind with such content, even after disabling interlacing, so that and a few others were a no-go as they are. However, others, such as CRT-Royale, scale their scanlines accordingly when fed such “hi-res” content. The scanlines are half as thin as in regular 240p, as you would expect. My favorite so far for this kind of content is CRT-Guest-SM. For some reason, it’s the only variation of the Guest family that has no issues displaying scanlines in 480p, and it has tons of options to tweak.

So how do you go about testing this? Well, as you would expect, the easiest way would be to load a 480p game, such as anything on the Dreamcast. However, the other big category of 31KHz content is VGA DOS games. As many of you probably know, VGA DOS games internally ran at 320x200 for the most part, but in order to actually display them on VGA PC monitors, which did not accept such low-res signals (at least not at 60/70 Hz), they were line-doubled. This gave VGA DOS games their distinctive blocky, pixelated look. Of course, this was also done to CGA and EGA games running on VGA-era hardware for backwards-compatibility purposes, though that is not how they originally looked. However, by default DOSBox does not actually do this. Thus, you must first enable the normal2x scaler in the DOSBox core options. By pre-scaling the game this way, the shader will see it as 400-line content, and the scanlines will scale accordingly. Of course, you can do something similar with any other 240p content if you so wish by, for example, loading the corresponding video filter under Video settings, or perhaps by adding a simple 2x scaling shader pass.

However, there is a catch: if emulating 240p faithfully is already a challenge, how much more so 480p is, especially without a 4K+ display! On my 1080p monitor, the issue is the scanlines darken the image a good bit. I toyed with the settings on CRT-Guest-SM for a while, but in the end, the result I liked most actually had no scanlines to speak of:

Basically, I set the scanline type to 3, which effectively erases the scanlines at that scale, and the mask type to 1, which emulates the dot triad mask of a PC CRT. The image remains quite sharp, but softens the edges just enough to more or less reproduce the look of an older VGA CRT, which actually did not produce noticeable scanlines.

Maybe I need to mess with it more. I have not messed around too much with the newest shaders, after all. But I can tell you this much: I tried the same setup on my laptop with a 4K display, and the results are MUCH better! Definitely more room to work with there. Shame my graphics card is barely able to handle shaders at that resolution.

This is definitely a topic that I think warrants more discussion and exploration, particularly when it comes to DOS games. Sure, lots of people just “240p-ify” them with the current shaders, and it CAN look good, but I prefer to get closer to how they ACTUALLY looked. :slightly_smiling_face:

6 Likes

You’ll need to view this on a 4K monitor at full screen.

I am using Guest ADV in the Mega Bezel with a fine shadow mask and scanline direction multiplier increased horizontally.

To look perfect it would need at least 8K I think.

The dot pitch was so small on those high res monitors, maybe even 8K wouldn’t show the individual triads. :worried:

5 Likes

Are there some reference shots out there of old VGA monitors (beginning of the 90s) displaying low res content? I only have my 17" Samsung Monitor as reference which was build ca. 2001. Even in it’s bad state (practically only 480p downwards usable now) I dislike the look of vga low res on that.

The old analog shader pack has a VGA monitor preset and there are some shaders by I believe leileilol (who is also over at vogons) with a different look.

2 Likes

I did another little hack, Fake-lottes with lottes masks removed and replaced by CRT-geom mask. Should be the same speed with Fake-lottes, probably around 10% faster

https://mega.nz/file/7z4ECLKQ#Tn3B25N6Xu-YagwWtf7namJkJhNRCs-PiWs3Snoztxk

4 Likes

Interesting your text about DOS games. I would like a DOS specific shader.

My current setup:

1 Like

That’s pretty good! Looks like it’s using an aperture grille-type mask, though. Unless I am mistaken, they were not commonly used for PC monitors until after the heyday of DOS, but like you said, even 4K might not be good enough for a truly accurate dot triad mask, so we may have to settle.

This guy has some really good pics from an early 90’s HP monitor. Here’s a few:

That last one compares an LCD to the CRT. As you can see, the really old early 90’s VGA monitors did not really show scanlines, whereas the latter ones with a finer dot-pitch and bigger size typically did. Here’s such an example:

I recall seeing a direct comparison of that Prince of Persia shot above with one from a newer monitor that really drove the distinction between older and newer PC CRTs home, but I can’t find it at the moment. It was quite stark, let me tell you. The newer CRT was much sharper and displayed very prominent line-doubling, whereas you can hardly tell the sprite is line-doubled at all on the shot I linked to here.

3 Likes

Yeah I tried the dot shadow mask and didn’t like it at all, so I fudged a regular shadow mask with the horizontal scanline direction multiplier.

Actually at 240p it looks pretty good. For that reason I am among those that 240p-ify using shaders.

The thing is, most games that run on a VGA using the DIN plug are coded for 640x480 so I’m not sure how you would get a 240p snapshot.

I have a pile of IBM VGA and SVGA monitors lying around but I don’t think any have a composite input. I’ll have to take a look. I do have a color Magnavox but it is RGB, so not VGA.

Maybe one of my Apple monitors. :thinking:

If I have one, I can hook up a C64 and get some shots.

1 Like

Found a good picture of Prince of Persia on a newer PC CRT:

VERY different from the shot above, as you can see. It’s much like the difference between running, say, a SNES game on an average 90’s CRT vs. on a PVM, as in both cases, the use of a sharper display causes more prominent scanlines, the difference being that on the case of VGA stuff, it also reveals the line-doubling something fierce, which may or may not be a good thing.

That said, actual 480p content, such as Dreamcast games, could benefit quite nicely still.

3 Likes

The IBM PS/2 System 25 and 30 both had an MCGA adapter and ran at 320x200 in 256 colors.

There are a couple of scenes in this video where you get a decent view.

It actually looks a lot like my Mega Bezel attempt. :grin:

3 Likes

Thanks, this isn’t exactly how I expected it to look :thinking: I have to see how Prince of Persia looks on my monitor with original resolution and try to take some photos later. So far, I’ve mainly taking some photos of 240p with 120 Hz modelines. Mainly drives the point home that it looks very unlike your typical consumer TV I suppose.

.

2 Likes

crt-nes-mini with an adjustable gray-white mask. Can’t figure out why it doesn’t compile on my cellphones.

https://mega.nz/file/q3AgkJTY#ls3HRRmJ60Ipu5vBbxh7GlWuH8Vux6xmreKQWdum18M

1 Like

A spoiler alert would be nice.

The following 2 video clips show my CyberLab Mega Bezel Death To Pixels (Composite - Sharp) preset combined with the built-in Blargg NTSC Composite filter in the Genesis Plus GX core.

https://mega.nz/file/kYxySCKI#szeKGsQbg5YWFIJMooKw7WG5t-85uBhWxnQQUjNnoCo

https://mega.nz/file/ZUwUhAqL#G7JGAiWbhItVWvsU41peplF6ND-HIkMgswHo3n-BozA

Note: Please download (don’t use preview) and loop for optimal viewing quality and experience. They should play fine using VLC Player, MX Player and MPC-HC.

CyberLab Mega Bezel Death To Pixels (70s RF) Series

CyberLab Mega Bezel Death To Pixels (70s Bad RF)

CyberLab Mega Bezel Death To Pixels 70s Bad RF.slangp

#reference "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp"
HSM_FAKE_SCANLINE_OPACITY = "0.000000"
HSM_CURVATURE_MODE = "0.000000"
halation = "1.000001"
shadowMask = "4.000000"
addnoised = "1.000000"

CyberLab Mega Bezel Death To Pixels (70s RF - Curved)

CyberLab Mega Bezel Death To Pixels 70s RF Curved.slangp

#reference "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp"
HSM_FAKE_SCANLINE_ROLL = "14.000000"
HSM_CURVATURE_MODE = "0.000000"
halation = "2.000000"
addnoised = "1.000000"

CyberLab Mega Bezel Death To Pixels (70s RF)

CyberLab Mega Bezel Death To Pixels 70s RF.slangp

#reference "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp"
HSM_FAKE_SCANLINE_ROLL = "14.000000"
halation = "2.000000"
addnoised = "1.000000"

CyberLab Mega Bezel Death To Pixels 70s Bad RF Without Curvature.slangp

#reference "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp"
HSM_FAKE_SCANLINE_OPACITY = "0.000000"
halation = "1.000001"
shadowMask = "4.000000"
addnoised = "1.000000"

What I’ve noticed is that display resolution has a huge influence on how these shaders look so I have a couple alternatives that might better suit lower resolution displays.

CyberLab Mega Bezel Death To Pixels 70s Bad RF - 1080p and 1440p.slangp

#reference "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp"
HSM_FAKE_SCANLINE_OPACITY = "0.000000"
halation = "0.500000"
shadowMask = "4.000000"
addnoised = "0.70000"

CyberLab Mega Bezel Death To Pixels 70s RF - 1080p and 1440p.slangp

#reference "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp"
HSM_FAKE_SCANLINE_ROLL = "14.000000"
halation = "1.700000"
addnoised = "0.700000"

Note: You’ll need to have both the "CyberLab Mega Bezel Death To Pixels Composite Pure.slangp" preset and the “CyberLab Mega Bezel Death To Pixels Composite Sharp.slangp” preset saved in the same “…\Retroarch\Shaders” folder for these presets to work.

You can get those presets as well as more screenshots and video clips here:

4 Likes

Figured I’d try and see what I can play around with on one of the Guest shaders, so I can at least understand what each section does (and it seems to run decent on my work laptop). Usually I just pick a shader and don’t touch options. Messed with some of the halation, and added noise - similar to @Cyber 's RF shaders (I think)

3 Likes

That looks pretty neat! I’m sure the screenshot looks noticeably different from the live preset in motion due to the use of noise. Have you observed this as well?

2 Likes