flickering image retention: better solutions?

The problem

Final Fantasy VIII has flickering icons that can cause image retention. It looks sort of like old fashioned burnin, but it happens quickly (30 minutes) and goes away about as quickly. The underlying technical issue isn’t specific to Libretro or RetroArch or to FF8 (1, 2, 3, 4). Apparently, a CRT filter when emulating certain NES games on the Switch causes a similar problem (5). Basically, images that flicker in just the wrong sort of way can cause problems with certain LCD displays.

A workaround

When the flicker is built into the ROM or core, Libretro and Retroarch do provide a workaround of sorts: the motionblur/response-time shader. In my case, setting the LCD Response Time parameter to the lowest positive value blurred the flickering enough to prevent image retention. Higher parameter values can stop the flickering entirely, but they exacerbate the motion blur effect.

This solution was inspired by a post about a largely unrelated problem. However, it took a while to find because there was little overlap in the search terms. Part of the reason for this post is to help others find this information.

Any better solutions?

Using the response-time shader has other obvious “side effects” (i.e., the intended purpose of the shader). I couldn’t think of anything better, though. Perhaps somebody here is more clever.

Ah, yeah, the response-time shader is indeed a good solution, but it blends everything, as you’ve found. There’s a bare shader (i.e., no preset, so you have to load it manually) in the ‘misc’ directory called “anti-flicker” that will detect the flickering parts, blend just those pixels and leave everything else untouched: