Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Check out the NES Mini CRT filter
#1
The NES Mini https://www.nintendo.com/nes-classic is (quietly!) on sale again world wide for some reason, and I just got mine from EB Games!

Megamarc since you're clearly into retro games, I'd really like to draw your attention to its CRT filter, and that it might be possible to implement into Tilengine because the filter is available as a GLSL file which you can download directly off the NES Mini (and probably online now). I know you have a CRT filter already, I think it does a good job of emulating the "grill" you see when you stare really closely at a CRT, but the NES Mini filter does an amazing job of re-creating the actual visual experience, somehow. I'm noticing things that I remember seeing that I never realised before.

I think you actually need to see it in person, as I think it is doing something very fast at 60hz to create the effect. I found an example video, but to ensure it's effective, you have to play it full screen and wait till it's streaming in 720p 60fps - even then, the effect isn't synced with the video, at it comes out looking jittery! This isn't quite what it looks like in reality; https://www.youtube.com/watch?v=sI34LFLaZww

Something more noticeable in person is the way the pixels seem to subtly alternate in a checkerboard fashion whenever the background scrolls - this and some of the scanline warping effects is something I was subconsciously aware of back in the day but hadn't consciously acknowledged till now.

The main reason I enabled it, was unlike the SNES Mini, the native resolution of the NES doesn't scale up evenly to HD resolutions, and so without the filter, the pixels come out all wonky and alternate thicker and thinner as the screen scrolls, and text just looks ugly, with parts of letters thicker than other parts - it looks really bad. Then you enable the filter and everything magically looks identical to the original experience! I enabled it and my housemate said "Woah... that's retro!"

There's a thread here discussing importing the shader into RetroArch, I thought that might be useful.
https://www.reddit.com/r/nesclassicmods/...rt_filter/
And this is a video specifically copying the filter to other emulators (which run on the NES mini)
https://www.reddit.com/r/nesclassicmods/...ilter_and/
Reply
#2
Congratulations for your new NES Mini! Time to enjoy it :-)

I know the CRT filter I implemented is somewhat crude, and not faithful to actual CRT/composite video systems. Its mission is to give some retro aesthetic, because in actual systems individual pixels were indistinguishable. It doesn't use shaders, just a bit of blending and blurring so it works on low-end systems like the Raspberry Pi or ancient graphic chips like the intel GMA 950 without shaders at all.

There are impressive shader-based filters out there, like the insane CRT Royale in RetroArch https://shmups.system11.org/viewtopic.ph...8&start=30 but they require a badass video card. Some others like the one you mention in the NES mini, also emulate the composite video artifacts like the dot crawl you talk about (the animated checkered pattern), color fringing, etc. https://en.wikipedia.org/wiki/Dot_crawl

I don't have plans to enhance the shader effects on Tilengine, because it wouldn't add value but also would limit the platforms where it can run. You can for example -and I do- disable the built-in CRT effect and use Reshade3 https://reshade.me/, a gneric post-processing injector that also include CRT effects. Tilengine can't compete with this.

However it's good news to know that modern retro developers are finally understanding that low-res graphics were intended to be watched through a flawed signal and display device that added character to the graphics, that crisp-clear pixels are unnatural, and that character must be restored for optimal exprience instead of keeping on using ugly filters that try to give HD treatment (scale4x, advancemame4x, hq4x and the like)
Reply
#3
Ah yes I see. I hadn't actually considered the performance hit such an advanced emulation would require Smile Fair enough - I see this is outside the scope of Tilengine but someone else could add it if they wanted.

Thanks for the links; what I'd noticed has a name, cool! Well looks like I'm not as alone in my appreciation for this as I thought, and that's awesome - yes there was something about the old signal that added character, more than just blurring it. It's a unique visual style. Woah I will have to check out Reshade.

Though I still don't see many people talking about the superior contrast ratio of CRT over modern TVs (the games still look washed out), though one day in the future when OLED becomes more standard, that should change.
Reply
#4
Reshade is a great framework for injecting effects to any DX9/DX10/DX11/OGL game or application out there, even with an on-screen GUI to edit parameters in realtime. CRT is just one of the many filters provided, and as the effects are all distributed in source code, so the door is open to anyone with skills to develop and distribute new effects. I use it to add CRT effect to old-school style games that don't provide proper filtering (like those produced with YoYo's GameMaker Studio), some emulators, Tilengine... and to add SMAA anti-aliasing for games that do not provide FSAA themselves.

Contrast ratio is another thing. I regularly attend retro events in Barcelona, and I always get amazed at how eye candy an Amstrad-CPC game looks in an original color monitor, compared to showing it on a modern LCD. It has vibrant bright colors and pixels get nicely softened, it must be experienced first hand.
Reply
#5
Man, Reshade sounds awesome... yeah I was looking at some comparison videos where people were tweaking Skyrim and PUBG.

I'm glad you know what CRT monitors look like for old games Smile I've made a custom arcade cabinet with a CRT in it, it's awesome.
Reply
#6
Yes, reshade is a great tool to inject effects on any game without the need for developers to update their in-game effects.

I'm approaching 40, so I spent my child days in the 80s with 8-bit home computers, bulky CRTs and composite video artifacts... I know about them Smile

Pics of your arcade cabinet please!
Reply
#7
Yes we grew up with them, but many people our age don't realise... I hear of many people our age going back to play older games (using our LCD monitors and TVs of course) and saying "I don't remember the graphics being so crap"... but they did not look that crap! It's the CRT contrast ratio we're missing! (and the CRT filtering effect, to a lesser extent)  Colour is the first thing our brains appreciate before every other aspect of vision (shape, clarity, etc). I had exactly the same experience going back to Thief 2, a 3D accelerated game from mid 2000's, full of dark atmospheric scenes lit by orange torch lights contrasted against blue moon light, best played in the dark on a CRT, for maximum effect.   I came back to it for the first time in years (around 2010), and thought "I don't remember the graphics looking so bad." But I was playing it on my LCD monitor.  One day (I don't remember why) I tried playing it on my CRT TV at the time and was blown away by the difference in colour contrast!  The game's graphics looked so much better, not "crap" at all! It still is a beautiful looking game.  And from that moment, I first realised the importance of the contrast ratio of a CRT.

Ah I knew I should have pics ready of the cabinet - turns out I did have the foresight to make an album of it, I nearly forgot!

https://goo.gl/photos/FCsDW7AGszVm5oYW8
Reply
#8
Also, one of the major things is that old game graphics were made with color mixing in mind. compare these images:
https://imgur.com/a/C0r2KRQ

The first one is using Snes9X's "TV Mode 3X" filter, while the second one is using "Simple 3X". Also, compare these two images as well:
https://imgur.com/a/cXl5CsC
Note how the filter increases the legibility of the text, and enhances the 3D effect.

The graphics of old games were created to blend well on low resolution CRTs. Many NES games were created with pixel artifacts in mind, and a lot of .
http://slack.net/~ant/libs/ntsc.html

Also, the waterfalls in old sonic games were made that way so that the colors could blend together, creating the visual effect of transparency. Also, some earlier SNES games seemed to have been created with composite in mind.

Some more examples:
https://imgur.com/a/wKqE3dM
Reply
#9
Hi RexyDallas,

Thanks for the samples. I was already aware of the horizontal smearing of adjacent pixels and how developers used it to fake transparency and more colors by interleaving strips of alternating colors, specially for the Sega MegaDrive/Genesis. Sonic, Vectorman, Comix Zone... many of them. The first step of the CRT filter in Tilengine is a basic horizontal blur that recreates this behavior.

This image of Comix Zone illustrates the effect too:


Attached Files Thumbnail(s)
   
Reply
#10
Very true RexyDallas! The Sonic waterfall example is one I've seen mentioned before, and it's great to see people realising this stuff.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)