Please show off what crt shaders can do!

I think this is getting close to that “my TV didn’t have scanlines” low TVL look. The bloom is overboard, but it kinda needs to be for this approach.

Lottes mask dark/light at 0.00/1.00, bright boost and bloom added to compensate.

NTSC-J phosphor primaries and 9300K temperature.

Images should be downloaded and viewed at original size at 1080p.

Same thing w/curvature, just for kicks.

and here’s a 300% zoom on Mario.

4 Likes

Problem might be the wrong word. I’ll also admit my ignorance to how ntsc signal artifacts are supposed to look on a real TV. I find the problems show up on colorful simple games like the Master System or NES. Here is a shot from Alex Kid from the default mame_hlsl with ntsc signal turned on. It looks very chunky to me but again maybe I just don’t know how ntsc is supposed to look.

It really shows up better in motion. I’ve used a lot of shaders, lots of them have distortions, but for some reason mame seems to go crazy in motion. I don’t know how well it shows up here, but you see the edge of the cliff behind Sonic? It kind of looks like the edge of a sawblade. It’s also on the palm leaves.

Looking at it now, it looks almost like the pixels are too big, or that every other scanline is a little to the right. I wonder if this is a problem exclusive to 4k. If it’s supposed to look like that, okay. But I don’t ever remember a tv doing this.

Also, the waterfalls have diagonal rainbow stripes on them.

The edge of those yellow blocks. That’s the thing I’m talking about. Now look closely at the sky in the background. See the faint diagonal lines? I have a hunch that that has something to do with it. Those diagonals seem to show up on fake transparency dithering in Genesis games. And when you move the whole thing kind of vibrates or flickers. But that might just be the Genesis. Those yellow blocks however: I’m seeing that sawtooth effect all over the place. And in motion, that stuff flickers or vibrates like crazy, and it starts showing up on everything. It’s like I’m watching through a basket made of glass.

@tpjunior Much of what you describe is what ntsc signal noise is supposed to do. I find mame_hlsl implementation of is to be a little to harsh. The composite pass in the crt/shaders/crtsim to allow more subtlety but less variety of noise type.

The jagged sawtooth effect and diagonal lines are both indeed legit NTSC effects. This page on NESdev provides a good reference:

https://wiki.nesdev.com/w/index.php/NTSC_video

And here’s a good explainer pic:

image

You can also see it in action in this set of comparison shots I took:

2 Likes

I don’t ugly, I want Hollywood ugly. Here are three comparisons of my “hand-me-down CRT”. The first is mame and the second composite. I noticed the referenced texture was not tiling correctly and so I fixed it and that is the third shot.

2 Likes

So the effect seems to be “dot crawl” and as far as I can tell, something called a “comb filter” mitigates it. And I could be wrong, but from what I’ve read and what little I could understand it seems that, as far as real TV sets are concerned, this is mostly a problem with PVMs. Which explains my problem. I’m trying to get it to look like a standard, off the shelf CRT from the early 90’s. Like when I was a kid. I feel like there is a huge emphasis in the emulation community on making retro games look like they’re being played on a PVM. That’s just not what I’ve been looking for.

The issue with mame_hlsl is the same issue I’m having with just about every shader; I like the look of an NTSC signal, but hate it by itself. And everything I layer on top seems to move it farther and farther away from the old RF/composite look. You can get close with some presets like Royale+NTSC Adaptive or Venom+NTSC if you tweak it a bit, but something is always off. And I’m starting to get the impression that half of it is just me remembering things as better looking than they were.

This right here was something I found wasting time on 4chan. It sums it up better than I can, though it does so in more confrontational way than I intend:

You see, I’m aiming for number four. What I usually get is number three with a little blur and some artifacts. Mame comes close, but I wish there was a way to dial that dot crawl back a notch.

I think your memory of off the shelf CRT from 90’s might be off. If you had a small 15 inch the scanlines were probably hard to read.

For me that that 4th picture of Link looks likes like a blurry camera shot of a blurry CRT. Here’s a quick go at it anyways. If you want to knock the ntsc jitter down up the NTSC Scanline Duration to 89.0. The higher the frequency the less notches. 01Zelda

3 Likes

@BendBombBoom nice work. Yeah, that’s definitely a lot worse than your average TV from the mid 80s to the 90s. That would have to be a very small CRT that was going bad.

I think black gaps between scanlines disappear completely when you have just one triad per scanline.

Can’t really count the triads because it’s an aperture grille, but I found this interesting. The image on the left is of a 8” PVM, 250 TVL.

3 Likes

Yeah, I’m sure my memory is off. That and my OCD freaking out. I think the scanlines may have always been there. I just didn’t notice the scanlines back in the day. Back then, you had to kind of back away from the TV, so you didn’t notice these things as much. Although, the picture you got there looks kind of like a way blurrier version of what I remember.

In the mame_hlsl shader parameters, there is a setting “NTSC Color Notch Filter Width.” I have no idea what that means nor what it does. It’s default is 1.00. I set it to 4.00. Looks fine now.

It’s a filter that applies over the area where luma and chroma signals overlap (I suspect the 1.0 value represents filtering between 3 and 4 MHz). You can widen the filter at the cost of horizontal sharpness. That’s probably why you associate the effect with PVMs, since it would make sense for them to use minimal filtering to preserve detail.

I found this video interesting:

Playing around I added the NTSC adaptive passes to both Venom and Mame and found the results to just the type of ugly I remember. Here is Earth Worm Jim with Venom, Venom + NTSC, and MAME + NTSC. The blending of dithering is best outside the artificial madapt. Mame has scrolling scanlines adds to the “organic” noise.
5 Likes

And another one with Shinobi III to show transparency and rainbowing. I’m starting to get a a fun range of CRT’s that I can cycle through and watch the signal get better or worse.

3 Likes

Any particular settings you are using? This one is looking quite nice! :star_struck:

I’m tweaking a few things and than will post the setting but it’s basically Venom with both passes from the ntsc/ntscAdaptive folder.

1 Like

The key to a convincing low TVL setup in my opinion is the visibility of the phosphors; they should be as noticeable or even more noticeable than the scanlines.

With guest-dr-venom, you can do 0.00/1.00 for Lottes mask, and add bright boost and bloom and crank up the lcd backlight until the image is suitably bright (see this post using SMB as an example). This only really works on an IPS display because a TN panel doesn’t have the contrast and it looks like butt.

I’d like to keep the brightness-enhancing effect from the bloom in guest-dr venom while reducing the actual bloom (spillover from bright phosphors into darker adjacent phosphors). Does anyone know if this is even possible?

That third picture is compelling. Nice!

I’ve messing around with CRT shaders that represents various TV’s I’ve had through the years. The further you go back the worse they get. CRT 1984 has chroma smearing, rolling scanlines, composite rainbowing. It’s wonderfully bad. The first two are just for fun.

6 Likes