Pixel perfect
AKA emulating vintage displays on modern machines. Â I know i’m super late to the party, but that is life as they say. Â As you may be aware, when it comes to emulation, sometimes it simply is too perfect.
Just look at how utterly pixel perfect it is. Â The thing is back in the 1980’s LCD screens were amber only with 4 shades of amber at best. Â Everyone else had CRT’s, and arcade machines sure were all about the CRT. Â But now we live in a future where CRT’s are not only expensive and rare, but it’s easier to emulate the look and feel, although today I’m looking at shaders, I’m sure at some point there will be a Physics emulation of a CRT, but not yet.
Retro Arch & CRT Shaders
So I’m using RetroArch, as it supports a vast number of both video and audio plugins, and shaders, but more importantly you can stack them to get a more intracte look to take a pixel perfect version like above, and then translate it onto how it may have looked on an aging black & white TV set:
Or evena colour CRT look and feel:
While reading on the libretro forum, I found this great package that includes the following easy presets:
- 480p: Nice shader suitable for 480p content like Dreamcast games
- Component: High-quality signal look but not overly sharp like RGB
- B&W TV: Pretty self explanatory
- Vintage TV: This looks really good with low-res pixel games on systems like the Atari 2600
- Vintage LCD: Looks like an early gen LCD screen complete with ghosting
- Composite: Simulating a typical cheap CRT using composite cables
- S-video: Much the same but better quality video signal
- RGB-Shadowmask: This is more akin to a high quality CRT with RGB/SCART cables
- RGB-Scanlines: Like the previous but with thick bold scanlines like you’d find on a Sony PVM or other broadcast quality monitor, nice and bright
I would HIGHLY advise using the nightly builds of RetroArch, as I had really poor performance when using some of these stacked shaders that may go as many  as 12 deep, however nightly had no issues at all.  It does without saying that you’ll really want a powerful machine to do this kind of thing with a real GPU.  This flies in the face of the ARM stuff, but as they say that’s life.
I don’t have the youtube privleges to upload super high video, so this ended up looking like a smudgy mess, and I captured it with that Windows 10 “Game DVR”, which really isn’t that great, it clipped the bottom, and captured the menu bar.
But it got the basic job done.
If you have the CPU/GPU power, and want a more all around better looking emulation experence, I’d HIGHLY recommend it. Â If anything it’ll remind you why CRT’s certainly may have had awesome refresh rates, but really terrible resolutions.
You can download the shader from either mega.nz here:
https://mega.nz/#!Qk1RVCJC!KAC127iD5wNw9GvLqKtnzJRcixDDzgb7UcjBQVIlDrY
or on my site (read the 404 page!):
You know what’s cool, is you can do this in bone-stock MAME using both the D3D9 video backend and the BGFX video backend. And in fact the BGFX backend supports quite a number of the same shaders that RetroArch does.
Where though? I only found HLSL, but I don’t see anything about shaders or stacking them.
-video bgfx -bgfx_screen_chains hlsl
This will give you a “stack” of the following shaders in the following order:
– NTSC encode/decode (to apply color fringing for e.g. NES games)
– Color convolution (multiply each RGB triplet by a 3×3 matrix, as well as applying separate offset, scale, and saturation values)
– Convergence (both radial and linear)
– Focus
– Phosphor decay
– Geometric distortion applied by the monitor (pincushion, vignetting, internal reflection, corner rounding)
If this is not the sort of “stacking” that you’re referring to, please give a more clear explanation, as I’d be happy to bring MAME up to feature parity with RetroArch’s shader system.
That looks pretty comparable to the “RGB Shadowmask” configuration which is pretty awesome, MAME is brighter on this default compared to this Analog TV pack version.
But what I was looking for was how this pack + retro arch can emulate the TV look/feel. In the config menu it has listed 12 shader passes from the config to make it look like an old POS TV. I’d have to ask how to make MAME look like a blury smudgy washed out mess, as I’ve only recently found this stuff. If this helps at all to show the difference.
Meanwhile, pure MAME can do this too…
Where? I found the hlsl stuff, but I don’t see anything about stacking them.