Blur Busters Forums

Who you gonna call? The Blur Busters! For Everything Better Than 60Hz™ Skip to content

Is groovymame with 120fps BFI still a good option ?

Talk to software developers and aspiring geeks. Programming tips. Improve motion fluidity. Reduce input lag. Come Present() yourself!

Re: Is groovymame with 120fps BFI still a good option ?

Postby jimmer » 16 May 2018, 17:13

I'm a bit lost on the contents of each frame and their durations and +ve or -ve voltages :) so I'll just ask: is there a cheaper version using 144Hz displays that gives strobed response times of the order 8ms ?
Posts: 9
Joined: 14 May 2018, 06:48

Re: Is groovymame with 120fps BFI still a good option ?

Postby Chief Blur Buster » 16 May 2018, 22:29

Calamity wrote:This should be relatively easy to do in GM. What I need to understand is, do you mean to do this sequence at 240 Hz:

frame_1, frame_1, frame_1, black frame, frame_2, frame_2, frame_2, black frame, ...

I have to answer this question with multiple different answers as a cause-and-effect reply.

There are many different possible ways to do 60fps software black frame insertion on a 240Hz monitor, both with and without strobing. You've got different black frame ratios. You've got the option to use software BFI only. You've got the option to combine software BFI and hardware strobing. What we're trying to do is 240 hardware refresh cycles per second trying to reduce motion blur on 60 emulator refresh cycles per second. That is tricky, and requires properly understanding persistence behavior (Blur Busters Law).

This is lower input lag than the pure 60Hz hardware-only single-strobe options (such as ULMB 60Hz hack) because it permits the Quick Frame Transport (QFT) effect of delivering a "60Hz" emulator refresh cycle in a mere 1/240sec over a video cable. The hardware 60Hz single-strobe has better color quality, but this reply matters simply because you earlier said you want the absolute lowest input lag, with possibly a little bit less input lag than the original arcade machine (Because its CRT slow-scanned at 1/60sec top-to-bottom). So now we are faced with a problem of trying to get low-blur 60Hz with low-lag, by commandeering a 240Hz display for its quick scanout abilities, and trying to work around silly unwanted arbitrary manufacturer restrictions on hardware-based stroberates, etc.

Persistence = pixel visibility time
Persistence = 1ms of motion blur per 1000 pixels/second
Read: Blur Busters Law And Amazing Journey To 1000Hz Display for the motion blur science

Situation #1: Software BFI without Hardware Strobing
Doing Software BFI at 60fps@240Hz on a completely flicker-free LCD display

3:1 BFI ratio = 75% ON:25% OFF = 25% less motion blur = 0.75/60sec blur = 12ms persistence (brightest)
2:2 BFI ratio = 50% ON:50% OFF = 50% less motion blur = 0.50/60sec blur = 8ms persistence (good quality)
1:3 BFI ratio = 25% ON:75% OFF = 75% less motion blur = 0.25/60sec blur = 4ms persistence (but bad quality; inversion defeated)

To understand BFI ratios correctly, please view TestUFO Black Frames 15fps @ 60Hz with Multiple BFI Ratios to understand the correct correlation of motion blur to the BFI ratio.

Conclusion: When using software-based BFI, use biggest black ratio for least motion blur.
For somewhat improved color quality, use 2nd biggest black ratio for best image quality (e.g. 2:2 ratio at 240Hz or 2:1 ratio at 180Hz)

Here's the near-exact amount of motion blur that you can expect while staring at

4ms emulator frame visibility time = same blur as the "4ms UFO" above.
8ms emulator frame visibility time = same blur as the "8ms UFO" above.
12ms emulator frame visibility time = blur between "8ms UFO" and "16ms UFO" above.

I made this diagram in year 2013, but ULMB is the same. And 240Hz monitors have the "4ms persistence" look without strobing. While the Zisworks 480Hz monitor have the "2ms persistence" without strobing. And all my ULMB monitors (almost every GSYNC monitor) have the "1ms persistence" look. (And ULMB is capable of 0.25ms at smaller ULMB Pulse Widths). So you really want to combine software BFI with hardware strobing.

Situation #2: Combining Software BFI With Hardware Strobing
Simultaneous software BFI with hardware strobing, by using blacked-out refresh cycles to hide unwanted extra strobes. Basically, being done as a method to reduce strobe frequency to ideal triple lock needed for CRT clarity (framerate=refreshrate=stroberate)

3:1 software BFI ratio = 1 hardware strobes blocked by software BFI = 3 visible strobe per emu frame = triple image effect
2:2 software BFI ratio = 2 hardware strobes blocked by software BFI = 2 visible strobe per emu frame = double image effect
1:3 software BFI ratio = 3 hardware strobes blocked by software BFI = 1 visible strobe per emu frame = single image effect
Note: Burn in from defeated inversion may still occur if you're doing even-number ratios, e.g. 120Hz and 240Hz; so that's why I recommend 180Hz and 1:2 ratio

The double-image effect is similar to the CRT 30fps@60Hz which also occurs with LCD 60fps@120Hz. The number of duplicate images are the number of visible strobes (non-blacked-out) per emulator refresh cycle, for 60fps emulator material running on a 240Hz hardware-strobed display that's also running software BFI concurrently too.

Conclusion: When using hardware-based strobing with software BFI, use the biggest BFI ratio for best effect.

Motion blur will be completely controlled by strobe backlight flash length (e.g. "ULMB Pulse Width" setting).
Try It Yourself!: If you have a ULMB monitor, please use TestUFO Panning Map Test at 3000 Pixels/Second and then adjust your "ULMB Pulse Width" from 25%, 50%, 75% and 100% -- you will notice that at shorter ULMB pulse widths, your panning image becomes sharper motion than many CRT monitors (especially Sony FW900 CRT which used a medium-persistence CRT). Even though you lose a lot of brightness. ULMB monitors are capable of ~0.25ms persistence at minimum strobe length, but is extremely dark. The Google Maps street name labels amazingly become fully pixel-crisp readable at 3000 pixels/second panning on an LCD panel; with 98% of LCD motion blur successfully removed by the shorter ULMB pulse widths. Rather surprising accomplishment for an LCD for anybody who's "never seen an LCD do THAT" (the "OMGs" and "WOW" of zero-blur LCDs came in year 2012 in the form of the LightBoost testimonials back in the day when people didn't think LCD panels could completely eliminate motion blur by that order of magnitude. LightBoost had crappy blacks and poor colors, but it was the first-ever time any mainstream person saw an LCD beat a CRT in motion blur -- which was frankly amazing back at the time, and helped launch the Blur Busters website.

And to avoid inversion color quality problems, burn in problems, or checkerboard-pixel-texture problems (inversion artifacts), use 60fps@180Hz instead of 60fps@120Hz or 60fps@240Hz. And use whatever leftover below-max-Hz headroom you gain from lowering your Hz, in order to biggen the vertical totals to add a small quick-frame-transport (QFT) effect.


Whis this diagram was designed for non-BFI situation, it is very applicable to software BFI. If you have a ULMB display, view TestUFO Black Frames 4 UFOs with Multiple BFI Ratios on a CRT, plasma, LightBoost-enabled or ULMB-enabled, or other strobed/impulsed display, and you will see exactly the duplicate images I described. And you will understand you only want one strobe flash per unique frame (emulator frame) and therefore want the biggest-ratio BFI.

Hopefully this reply 100% logically explains all the visual phenomenae of combining software BFI and hardware BFI
Head of Blur Busters - | | Follow @BlurBusters on Twitter!
To support Blur Busters: Official List of Best Gaming Monitors | G-SYNC | FreeSync | Ultrawide
User avatar
Chief Blur Buster
Site Admin
Posts: 4832
Joined: 05 Dec 2013, 15:44

Re: Is groovymame with 120fps BFI still a good option ?

Postby Chief Blur Buster » 16 May 2018, 22:55

jimmer wrote:I'm a bit lost on the contents of each frame and their durations and +ve or -ve voltages :)

It's usually unimportant, but it becomes important mainly because of combining software BFI and strobing. This duo amplifies inversion problems. Monitor manufacturers aren't expecting their display to be "assisted" with software black frame insertion, and combining hardware-strobing and software-BFI is simply a band-aid to successfully get what we want. (If we could get a single strobed monitor that supports 60Hz while having a 1/240sec QFT -- alas does not exist (and even ULMB+GSYNC 240Hz only provides 1/155sec QFT) -- so we gotta combine software BFI with hardware strobing to have cake and eat it too with low-lag 60Hz strobing.

For LCD inversion, most of the time we don't need to worry about it. Every even-numbered refresh cycles and odd-numbered refresh cycles alternate voltages. Technical explanations about LCD inversion electrical balancing is explained at at TestUFO, at TechMind, and at Lagom. This is a normal feature in all LCD ever invented. Sometimes, occasionally, it creates an inversion artifact (diagram)


This checkerboard texturing artifact (inversion artifact) is amplified for 60fps@120Hz BFI on ULMB/LightBoost. But the problem almost completely disappears for software BFI 60fps@180Hz strobed, and you get full color depth back (no banding anymore) because it reduces interference with temporal dithering (6-bit FRC).

The checkerboard is positive-negative ... Imagine a chess board where black squares are negative voltages and white squares are positive voltages. And it alternates voltages the next refresh cycle. That's how LCD panels avoid a static charge buildup (image retention / burn-in effect). IPS panels don't have this artifact very visible, while TN panels have this more visible. As a rule of thumb, the faster the LCD (GtG becoming a tiny fraction of refresh cycle), the more likely the inversion artifact becomes visible.

If you black out one polarity, you end up getting a static charge buildup. That's what happens with software BFI. Monitors aren't expecting software BFI to be subjected to them. So 60fps@120Hz strobing (50% black:50% bright) and 60fps@240Hz strobing (75% black:25% bright) can cause the visible frame to be the same polarity, and lead to a burn in effect (image retention).

For end users, the best software BFI (in terms of best color quality + least blur + lowest lag + avoiding burn in) on any currently available monitor, is the BenQ XL2546 running a custom 180Hz mode, and using a 2:1 software BFI ratio (66% dark, 33% bright, ala 2 black refresh cycles and 1 visible refresh cycle, for 60fps material).

For computer programmers, there are workarounds to avoid burn-in issues (image retention) by occasionally inserting a duplicate BFI once every 15 seconds or so -- that's what I do at the TestUFO Flicker high speed camera test pattern. Also I helped the xash3d author do it in this thread (see pages 1 and page 2), he added a clever anti-burn-in algorithm that I feel is a bit more complex than necessary but actually apparently works very well and automatically figures out which BFI Ratios causes burn in, and which BFI ratios don't cause burn in.

Also, not all LCDs will burn in with software BFI. I've run into some IPS LCDs that don't even burn in with software BFI, but their pixel response is much more laggy. The BFI burn-in (image-retention) happens more often with certain LCDs.

Now in addressing your desire of a 144Hz monitor, you can use 120Hz + large vertical totals + software BFI. For this I recommend the BenQ XL2430T or the XL2411P ... The color quality is very bad but they are very low lag, provides a 1/144 quick-frame-transport, and you can adjust strobe phase with Blur Busters Strobe Utility. You can reduce strobe lag by adjusting strobe phase earlier but you will start to have strobe crosstalk (double image effects) caused by strobing a little too early. But you can still intentionally strobe early to reduce input lag if you want on certain BenQ monitors, as long as you don't mind double-image effects along the bottom edge of the screen.

Not all LCDs are realtime-scan, some of them buffer and scan out at their own merry velocity independent of the panel scanout. But as a rule of thumb, on most modern TN-based gaming LCD panels, they scanout synchronously at the highest Hz (e.g. 1/240sec at 240Hz, and 1/144sec at 144Hz). Some panels will truly multisync at custom resolutions (e.g. scan slower or faster) and some will only scanout at max velocity (e.g. buffer three-quarters of a framebuffer of a 60Hz input for 12ms before beginning to do a high-velocity scanout to panel -- this is a common problem with slow-scan signals on fast-scan-only panels -- but this is not applicable if you run in 240Hz mode anyway and intentionally treat it as a quick-frame-transport behavior as mentioned in earlier posts...). I've found certain BenQ monitors such as XL2735 behave this way; they aren't very Large Vertical Total friendly like XL2430T or XL2411P or XL2720Z or XL2420Z -- those models are truly multisync in terms of scanout velocity (cable scanout velocity equalling panel scanout velocity).

While mileage varies and there is overlap, I do get better color quality on several 240Hz monitors, and brighter strobing, than on several 144Hz monitors, so you should consider springing a premium. Many 240Hz monitors can strobe at 300 nits, so you still have roughly 100 nits left during 60fps@180Hz + software-BFI ...whereas with many other options you may be facing as little as 50 nits (quite dim). If bright strobing is important, the 25"-form-factor XL2546 (AMD+NVIDIA) and the 25"-form-factor 240Hz GSYNC monitors (NVIDIA) are the brightest-strobed monitors at the moment, if hardware-strobe brightness is a priority.
Head of Blur Busters - | | Follow @BlurBusters on Twitter!
To support Blur Busters: Official List of Best Gaming Monitors | G-SYNC | FreeSync | Ultrawide
User avatar
Chief Blur Buster
Site Admin
Posts: 4832
Joined: 05 Dec 2013, 15:44

Re: Is groovymame with 120fps BFI still a good option ?

Postby Chief Blur Buster » 16 May 2018, 23:18

--> If you want lowest strobe lag AND brightest strobing, choose the panels I recommended in "Cost No Object" post earlier.
--> If you want to avoid severe color degradation during combined software BFI+hardware strobe, get bright 180Hz (XL2546)
--> If you want easy and good colors (no GroovyMame mods), switch to NVIDIA and purchase a monitor with simultaneous ULMB+GSYNC because that 60Hz single strobes + provides QFT effect
--> If you don't mind lag and don't mind much poorer color quality, get a cheap 144Hz monitor with 120Hz strobing will do + software BFI. --> If you want easy 60Hz strobing and don't care about lag (console compatible), get a single-strobe XL2411P or XL2430T (you still have the alternate choice of 120Hz strobing + 1/144sec QFT + software BFI, too, on these)

Want to go cheap? Okay. The entry level is the Acer GN246HL for less than $200 with the LightBoost hack that works on AMD (there's a GN246HL specific hack available... It is the only one with what seems to be completely DRM-free LightBoost (possibly a monitor bug) that is activated via only adding a custom resolution (same visible resolution, minor change to vertical total to 1147 or 1149). Which means ToastyX works; strobelight-setup.exe only partially works (the DRM scanning unlock fails), but then strobelight.exe works after rebooting. Colors are bad with LightBoost but you get CRT clarity, Lightboost top/center/bottom lag is approximately ~11-12ms, but at least it is cheap and AMD compatible AND zero-blur.

Want lowest AMD strobe lag? Okay. This one was already mentioned -- the BenQ Zowie 240Hz is the one to go for (120Hz/180Hz/240Hz emulator-useful strobe modes) -- plus also the LG27GK750-B (120Hz/240Hz emulator-useful strobe modes). If you want an AMD compatible solution at lowest strobe lag, without too much image degradation, you need to involve Calamity to make appropriate modifications (QFT behaviour + BFI behavior), and use the XL2540/XL2740/XL2546 monitors. Of those models, XL2546 is far by the brightest. This is the hardest-work high-effort route, since it requires 3:1 software BFI ratio plus making the emulator Quick Frame Transport (QFT)-friendly on fixed-Hz displays by inputdelay+laterender+pageflipping late in VBIs.

For better quality AND brightness AND low lag AND zero blur -- you are going to have to pay quite a bit more in the "Cost No Object" recommendations list I posted.

Possible Additional AMD-Compatible Cost-No-Object Options

--> The LG27GK750-B, which is another option I forgot to mention, the LG 27GK750-B while cannot do 180Hz strobe (for good colors), it is not as bright, but it actually do a 1/280sec QFT. I forgot to mention this -- it's only 0.8ms sooner scanout -- but it's actually apparently the fastest-QFT mainstream-brand monitor available if you don't care about 180Hz. I have not personally seen this, and the brightness is not as bright as XL2546.

--> The Zisworks 4K120 display with 480Hz mode. If you want an even faster QFT effect, the Zisworks monitor is another outlier option -- -- with 480Hz mode (960x540) provides an ultra QFT of 1/480sec, though you will be stuck with full 60Hz motion blur (due to full 1/60sec emulator frame visibility time) unless using software BFI -- perhaps a 7:1 black ratio if you can tolerate the light loss -- will provide ultra-low-lag 2ms scanout lag with 2ms persistence. Top=+0ms, Center=+1ms, Bottom=+2ms and with 2ms refresh cycles, software BFI is capable of reducing to 2ms persistence which is quite incredible for software-based strobing. Lots of pixellation at 480Hz. The Zisworks is an unbuffered monitor and does not have overdrive, so it will motionblur badly without software BFI. But I've found it sings pretty remarkably well with software BFI even at 7:1 dark:bright ratio (~87.5% motion blur reduction) that somewhat looks slightly better-quality than 2013-era LightBoost. It's incredible to see software-BFI reduce motion blur as much as hardware strobing for 60fps@480Hz material, I simply view TestUFO BlackFrames with the 8-UFO count (60fps@480Hz) and look at the 7-blackframes row -- and I see 60 frames per second UFO looking similar to LightBoost using purely software strobing. Pretty neat. It actually looks like it would work very well with emulators. It will be very dark (~25 nits at 7:1 BFI) but it looked almost CRT clarity while simultaneously being virtually lagless (2ms scanout lag). Big letdown is huge loss of brightness, you get almost 10x brighter strobing with an XL2546 (240Hz) or 3x brighter at 60fps@180Hz BFI. You can use other BFI ratios (e.g. 6:2 ratio) to brighten a bit while still having acceptable 4ms persistence. So decision on motion blur tradeoffs and lag tradeoffs. Unfortunately the Zisworks 4K120 is out of stock at the moment, but Zis is getting a few back in stock.
Head of Blur Busters - | | Follow @BlurBusters on Twitter!
To support Blur Busters: Official List of Best Gaming Monitors | G-SYNC | FreeSync | Ultrawide
User avatar
Chief Blur Buster
Site Admin
Posts: 4832
Joined: 05 Dec 2013, 15:44

Re: Is groovymame with 120fps BFI still a good option ?

Postby fuzun » 04 Jul 2018, 19:48

Wow I missed this thread.

I have never done software strobing through 'inserting' black frames into the frame sequence. What I have done is simply replacing some of the rendered frames to black frames before buffer swap happens.

So I do not know results of insertion method; but with replacing method, I have seen that it may be the best method for software based strobing because:

1) Implementation is very very easy.
2) Integration into game engines etc. is also very easy.
3) Higher level than insertion method. At the level of game<->engine interaction being kept intact.
4) With 2018 GPUs, it is not hard to get 144 fps in games.

One disadvantage of replacement method may be when working with emulators. Because they are fixed at loaded games' programmed fps (I have found this information from internet, I do not know about emulators). So if emulator gets fixed at 60 FPS, strobing through replacement method at its least aggressive setting yields 30 effective fps (30 rendered frames in 60 total frames in a second). And this is really irritating.

I think hardware based strobing is the strobing method of near future. I have a monitor which has built-in strobe support and the outcome is excellent when hardware based strobing is used. It makes the monitor CRT-like.

In my experience hardware based strobing is at least 70% - 80% better than software based strobing. If you don't count lower brightness and other issues of software strobing, hardware based strobing is still better 40% 50% in my opinion.

But hardware based strobing has its disadvantages too. For example my monitor (Samsung C24FG70) locks screen brightness to 100% when strobing is enabled. It hurts my eyes so I only enable strobing while I play games.

And second disadvantage is when FPS is like 60-70 it "double strobes". I could not observe how bad this is with my naked eye (did not do much test about it though) but in internet forums people say that "double strobing" is very bad. There is also overshoot problems when strobing is enabled.

Since we will be stuck with this "strobing" for a while, I think maybe there is a way to add hardware based strobing into monitors which do not support hardware based strobing. Because as I said hardware based strobing is much much better and software based strobing should only be used when hardware based strobing can not be used (if they are used alone).

Many monitors control their backlight with support of PWM. If PWM and refresh rate of GPU can be synchronized somehow, would not there be hardware based strobing automatically ?
Posts: 15
Joined: 20 Jan 2018, 21:18


Return to Software Developers / Low-Lag Code / Game Programming

Who is online

Users browsing this forum: No registered users and 1 guest