RetroArch - Variable BFI Mod for 180Hz/240Hz/Etc
Posted: 12 Sep 2020, 14:33
So I've done a side project to mod Retroarch to add support for bfi at 180 Hz, 240 Hz, etc.
As discussed in previous threads, this eliminates the problem of image retention that is present at 120 Hz software bfi, further increases clarity (but decreases brightness ofc). Overall, I'm extremely happy with the output at 180hz especially. Also, you should preferably use an 8 bit panel (and the newest TNs are true 8bit too like the HP Omen X 27 I tested this on, which means you can skip the IPS glow). As also discussed in previous threads, 6bit + frc doesn't play nice with software bfi even at 180 or 240hz, I find.
I can also say that vs. using the 60hz single strobe ulmb hack, there doesn't seem to be any problem with strobe crosstalk, nor is the flickering nearly as severe. I would presume this is because since the actual backlight stays on with software bfi the total difference in luminance in on vs off frames is not as severe.
I would in no way say this mod is ready to merge into Retroarch proper, it was mainly made for personal use. But I'll include the link to my fork if anyone wants to polish and submit it to solve the ticket for BFI v2 that Chief Blurbuster already put in. Otherwise it'll get out of date vs the real Retroarch.
One minor non-ui issue (at least for me) is that seemingly whenever the emulator skips a frame because your pc can't keep up, or for emulation sync reasons, or whatever else the screen will flash for that frame. Happens much more in the menu than in game, so don't be overly concerned when you first turn it on. With hard gpu sync set to one frame look ahead, and audio sync off (which never causes any terribly out of sync audio for me) I was able to get this to down to less than once a minute, quite tolerable considering the upsides. There still might be a software solution to account for this, and at least get it to flash black when this happens so it isn't nearly as noticeable.
Here is a link to the modded retroarch exe which you just drop in replace for your current exe: https://drive.google.com/file/d/19RLnbd ... sp=sharing
And here is a link to my Github retroarch fork if anybody wants to fork it again and take it to the point it could be merged upstream: https://github.com/Ophidon/RetroArch
To use, I've turned the existing on/off setting for BFI into an integer value, where 0 is off, 1 is one black frame (meant for 120hz), 2 is two black frames (meant for 180hz), 3 is three black frames (meant for 240hz) etc. If you set the integer value to something that doesn't properly match your current screen refresh rate by the above formula, you will not like the result, lol.
As discussed in previous threads, this eliminates the problem of image retention that is present at 120 Hz software bfi, further increases clarity (but decreases brightness ofc). Overall, I'm extremely happy with the output at 180hz especially. Also, you should preferably use an 8 bit panel (and the newest TNs are true 8bit too like the HP Omen X 27 I tested this on, which means you can skip the IPS glow). As also discussed in previous threads, 6bit + frc doesn't play nice with software bfi even at 180 or 240hz, I find.
I can also say that vs. using the 60hz single strobe ulmb hack, there doesn't seem to be any problem with strobe crosstalk, nor is the flickering nearly as severe. I would presume this is because since the actual backlight stays on with software bfi the total difference in luminance in on vs off frames is not as severe.
I would in no way say this mod is ready to merge into Retroarch proper, it was mainly made for personal use. But I'll include the link to my fork if anyone wants to polish and submit it to solve the ticket for BFI v2 that Chief Blurbuster already put in. Otherwise it'll get out of date vs the real Retroarch.
One minor non-ui issue (at least for me) is that seemingly whenever the emulator skips a frame because your pc can't keep up, or for emulation sync reasons, or whatever else the screen will flash for that frame. Happens much more in the menu than in game, so don't be overly concerned when you first turn it on. With hard gpu sync set to one frame look ahead, and audio sync off (which never causes any terribly out of sync audio for me) I was able to get this to down to less than once a minute, quite tolerable considering the upsides. There still might be a software solution to account for this, and at least get it to flash black when this happens so it isn't nearly as noticeable.
Here is a link to the modded retroarch exe which you just drop in replace for your current exe: https://drive.google.com/file/d/19RLnbd ... sp=sharing
And here is a link to my Github retroarch fork if anybody wants to fork it again and take it to the point it could be merged upstream: https://github.com/Ophidon/RetroArch
To use, I've turned the existing on/off setting for BFI into an integer value, where 0 is off, 1 is one black frame (meant for 120hz), 2 is two black frames (meant for 180hz), 3 is three black frames (meant for 240hz) etc. If you set the integer value to something that doesn't properly match your current screen refresh rate by the above formula, you will not like the result, lol.