Hacker Newsnew | past | comments | ask | show | jobs | submit | BlurBusters's commentslogin

For things like a pan -- you have to apply it globally because your eye movements will smear the static pixels and motionblur them across your retinas.

However, the CRT simulator actually is variable-MPRT; it does compress the light emissions as quickly as possible as early as possible. Dim greys, for example are brightened and pushed in an earlier refresh cycle of the series that simulates a CRT refresh cycle.

So dimmer pixels get lower MPRT and brighter pixels get higher MPRT. Any unemitted brightness gets cascaded to subsequent refresh cycle until fully emitted to meet Talbot Plateau Theorem.


You need a large native:simulated Hz ratio in order to accurate a CRT accurately. It's laws of physics, sadly. I need to update a pixel multiple times per videogame frame, just to accurately simulate a CRT.

120Hz = up to 50% motion blur reduction for 60fps

240Hz = up to 75% motion blur reduction for 60fps

480Hz = up to 87.5% motion blur reduction for 60fps

CRT simulation is bottlenecked by limited genuine native non-faked Hz, which is why accurate CRT simulation is so difficult.


It already sort of does that, through a clever variable-MPRT algorithm.


You need a large native:simulated Hz ratio. I recommend at least 4. Which means 240Hz to simulate a 60Hz better.


It's actually good enough for most content for most people if you're just doing 320x240 retro material.

Also, there's some optimizations coming to make it look even better depending on how good or limited your display is.


I wish Shadertoy had an easier way to let me change framerate. If you click 480Hz on a 120Hz display, it flickers at an awful 15Hz instead of 60Hz; so you don't want to simulate a 15Hz CRT -- not comfortable.

Retroarch now has this CRT simulator and it will automatically keep it at 60Hz by its default settings; so it's more foolproof in Retroarch than in Shadertoy.


Even 480Hz looks great for office use; very ergonomic -- browser scrolling has 87.5% less motion blur than a 60Hz OLED and about 90-92% less motion blur than a 60Hz DELL LCD.


Thank you! It's in Retroarch now


- Turn off HDR, use Adobe sRGB both at OS level, display icc level, and display menu level. The math in the CRT simulator is optimized for the gamma2linear/linear2gamma math, needed for Talbot-Plateau Theorem, and it was easier on a well-known old gamma curve.

- Adjust your black levels and white levels so there's no clipping

- I noticed 6bit TN panels tend to have problems, try IPS or OLED

- Lower GAIN_VS_BLUR to 0.5 at 120Hz, or 0.25 at 240Hz, if discoloration is bothersome.

- There are some optimizations coming in January 2025 as band-aid workaround for display limitations (especially low-Hz TN LCDs), even 240Hz is sometimes too low.

OLED at 240Hz looks better than LCD at 360Hz with the CRT simulator for example, so if you're buying a monitor to have 75%-90% motion blur reduction in your 60fps retro content, you will want to have a high-Hz OLED, see the motion blur physics at TestUFO Variable-Persistence Black Frame Insertion demo (in TestUFO 2.1) to understand how higher Hz can reduce motion blur of low frame rates more than lower Hz; it's just the laws of physics caused by ergonomic flickerless sample-and-hold displays, and BYOA (Bring Your Own Algorithm) approaches. I can emulate plasma subfields on a 600Hz OLED, and I can emulate DLP subfields on a 1440Hz OLED; but CRT is the gold standard; still it needs a large native:simulated Hz ratio to look realistic. It's very adjustable.


Fantastic work!

What will be the use case of plasma and DLP subfields emulation?

What about 24fps movie contents, is there a future with fluidity and no visible stutter by chance?


Yes. Retroarch now has the CRT simulator built in.

I recommend 240Hz OLED in arcade cabinets to emulate 60Hz CRT, do not skimp on Hz. More Hz is better for CRT simulators, due to a very important temporal principle, you need a large native:simulated Hz ratio.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: