Is color corrected Black Frame Insertion possible?

BFI is a neat feature in RetroArch and it works wonders removing the motion blur, making the scrolling in 60hz games as sharp as a CRT (if you have a 120hz monitor).

But the problem is, it completely messes the brightness and colors. I’m not sure if it’s possible to correct them but even if you can, you are still going to have to reset them every time you need to use BFI and then turn it off.

So is it possible for this feature to also enable an automatic default color correction (that you can also manually edit to your liking) whenever BFI is active? It can be optional ofc.

2 Likes

I have a few other BFI issues.

  1. I don’t see such an option anywhere in RA. I can only set it by editing the retroarch.cfg file
  2. I tested multiple cores with my monitor set to 120hz, and RA to BFI, and almost everything works fine except for Scummvm. Core doesn’t want to work with RA settings. It probably sees 120hz set in the nvidia control panel and weird things are happening. In some games there are large fps drops, sound problems, others run too fast, hang, etc.

Can BFI work at 60hz? I tried this configuration but it still causes ghosting effect.

BFI needs 120hz if the game you want to play is 60hz (like most console games). That’s because it adds one black frame every other frame. It needs to be perfectly synchronized like that for the best results.

PAL games are 50hz so you need 100hz in this case.

PC games are odd, you need to figure out what refresh rate you are emulating and use 2x, just like above.

Oh and this has nothing to do with frame rate. It’s about refresh rate (30fps console games still use a 60hz refresh rate).

1 Like

Thanks for the explanation. From what I can see, I also had to disable gsync because ghosting still occurs. Yes, scummvm works in some strange way. For example, the option vsync swap interval 2 all it does is freeze the game. Games run fine when Windows is set to 60hz.

edit:

However, I still don’t have the black frame insertion option. I checked all the menus. Strange, I can only edit the option in retroarch.cfg. I’m using Retroarch 1.15 stable.

I’d also be interested in this, it seems like an HDR1000 display should be able to do BFI without the color/brightness loss, but it still looks really bad when I tried it.

Hello,

I just pushed a recent update to BFI the other day, that might solve it ‘not showing up’. It has just now been added to the dx10/11/12 render drivers. Grab the latest nightly to try it out.

Also as of this update, there is now adjustable brightness which will let you adjust -some- of the brightness problem (though only at 180 hz and above as you have to decide whether any given sub frame is on or off in whole values). Aka 180hz can do on-off-off for a 66% blur and brightness reduction, or on-on-off for a 33% blur and brightness reduction. 240hz can do on-off-off-off, on-on-off-off, on-on-on-off, etc.

Though be warned that even ‘lowly’ NES emulation can have trouble keeping up at 240hz on a fairly high end system with a super accurate but slow core like Mesen and a heavy 4k crt shader.

I can look into maybe adding the ability to have separate shader presets load when BFI is enabled, that’d let it automatically adjust when you turn it on/off. It feels like (I am a motion clarity expert, not a color expert) not only does brightness get lowered by bfi, which you can adjust back up but there is gamma shift and maybe unrelated to gamma de-saturation(?). All adjustable with a decent shader, so yes, having a separate default shader preset for bfi usage could be a good improvement.

Also just to clarify from the earlier posts, RA bfi is NOT just for 120hz, in fact 120hz has the most issues of all. A lot of lcds (not oleds) will get temporary image retention when used at 120hz. 240hz at on-off-off-off can sometimes lead to the same problem but less commonly, and if it does, you can switch to on-on-off-off.

As the maintainer of the feature, if you want my personal recommendation, 180hz with ‘2 dark frames’ via the new variable brightness feature that was just added is the best overall settings, to get considerably less blur than at 120hz, a still manageable and correctable level of brightness reduction, and still somewhat reasonable performance requirements. 180hz is also immune to the temporary image retention problem entirely.

The only issue is, very few monitors even at 240hz have 180hz built in as a default selectable refresh rate, so you’ll have to add it as a custom resolution. There are a lot of guides on the net for that.

3 Likes

tough_soft

The difficulty in trying to compensate comes from clipping, but we might be able to do a dynamic range reduction and then boost everything /shrug

2 Likes

Of course it messes brightness lol, on a normal 60hz CRT we have 16 ms on, then 16 ms on next frame. While doing this trick we have 8 ms on, 8 ms off. Probably just a visual illusion, losing 1 frame and the eye cannot see the blur as it stops every other frame.

1 Like

yeah, there’s no compensation for the loss of brightness outside of … moar brightness. We might be able to compensate somewhat for the lifeless/desaturated look it causes, though.

3 Likes