PCSX2 (and others) with software-based black frame insertion
Posted: 10 Sep 2018, 02:02
I have been adding more and more features to my PCSX2 3D Vision fix: https://helixmod.blogspot.com/2018/01/pcsx2-dx11.html
Most of them related to 3D, and some others that can work for everyone. The one I'm going to talk about is black frame insertion.
30fps games in this emulator always show 60fps in frame counters, because the emulator duplicates whatever internal fps the game has to 60fps (50fps for PAL games when you can't play at 60Hz). With my fix, pressing the "n" key turns alternate frames black, using an odd/even frame counter I set up in 3Dmigoto and turning black two types of pixel shaders. As I say in the blog post, the counter doesn't know if a frame is the original or the duplicated (it's random when you start a game), so pressing "n" again will switch to the other frame. Pressing it again will disable black frame insertion.
If you know (and care) how to look for the first frame, you should get the same visual and input lag as not using BFI. If you use the two methods of BFI at 120Hz (more on that after this), the comparison is like this for a 30fps game (F=frame, X=black frame):
No BFI: FFFF
BFI: FXXX or XFXX
Obviously, if you use this BFI feature with a 60fps game you are effetively downgrading that game to 30fps.
There's a second black frame insertion method I made with the "u" key that only 3D Vision users can use. It puts the game in 2D and makes the right eye image black (because the left eye image always comes first). Its purpose is to show 60fps with BFI at 120Hz for people that don't have access to 60Hz strobing, or for people that want to switch between 3D and 2D with a click without losing perfect vsync and low motion blur. This method can be combined with the other one. People with 3D Vision will most likely want to play in 3D, but I wanted to make this extra feature.
Here's video proof:
Watch this one at 60fps, and preferably with your monitor at 60Hz with strobing: https://youtu.be/LrJwGU0grPE
And this one should be viewed at 4x the speed at 120Hz, because it's a slow motion video at 30fps (120fps in real time): https://youtu.be/XD0jEnoS3Bw
I recorded both with my phone, using both BFI methods stacked and getting the first frame. Sorry for the black horizontal bar in the first one. It's because of synchronization with my phone. And I had to use very low monitor brightness to not get a super saturated video (maybe the phone wanted to overcompensate the BFI).
And just yesterday I saw that there's a ReShade shader (https://github.com/BlueSkyDefender/Dept ... rnation.fx) that basically does the same as my "n" hotkey. But mine has the extra preset of using the other frame at least, if you don't get the first frame at first.
My mod requires using the DX11 hardware renderer, and for BFI you should ALWAYS use vsync, and a perfect one at that.
tl;dr: black frame insertion for 30fps games and black frame insertion for 60fps games (3D Vision needed for the last one). Epilepsy warning, and you have to be comfortable with 30Hz strobing.
Most of them related to 3D, and some others that can work for everyone. The one I'm going to talk about is black frame insertion.
30fps games in this emulator always show 60fps in frame counters, because the emulator duplicates whatever internal fps the game has to 60fps (50fps for PAL games when you can't play at 60Hz). With my fix, pressing the "n" key turns alternate frames black, using an odd/even frame counter I set up in 3Dmigoto and turning black two types of pixel shaders. As I say in the blog post, the counter doesn't know if a frame is the original or the duplicated (it's random when you start a game), so pressing "n" again will switch to the other frame. Pressing it again will disable black frame insertion.
If you know (and care) how to look for the first frame, you should get the same visual and input lag as not using BFI. If you use the two methods of BFI at 120Hz (more on that after this), the comparison is like this for a 30fps game (F=frame, X=black frame):
No BFI: FFFF
BFI: FXXX or XFXX
Obviously, if you use this BFI feature with a 60fps game you are effetively downgrading that game to 30fps.
There's a second black frame insertion method I made with the "u" key that only 3D Vision users can use. It puts the game in 2D and makes the right eye image black (because the left eye image always comes first). Its purpose is to show 60fps with BFI at 120Hz for people that don't have access to 60Hz strobing, or for people that want to switch between 3D and 2D with a click without losing perfect vsync and low motion blur. This method can be combined with the other one. People with 3D Vision will most likely want to play in 3D, but I wanted to make this extra feature.
Here's video proof:
Watch this one at 60fps, and preferably with your monitor at 60Hz with strobing: https://youtu.be/LrJwGU0grPE
And this one should be viewed at 4x the speed at 120Hz, because it's a slow motion video at 30fps (120fps in real time): https://youtu.be/XD0jEnoS3Bw
I recorded both with my phone, using both BFI methods stacked and getting the first frame. Sorry for the black horizontal bar in the first one. It's because of synchronization with my phone. And I had to use very low monitor brightness to not get a super saturated video (maybe the phone wanted to overcompensate the BFI).
And just yesterday I saw that there's a ReShade shader (https://github.com/BlueSkyDefender/Dept ... rnation.fx) that basically does the same as my "n" hotkey. But mine has the extra preset of using the other frame at least, if you don't get the first frame at first.
My mod requires using the DX11 hardware renderer, and for BFI you should ALWAYS use vsync, and a perfect one at that.
tl;dr: black frame insertion for 30fps games and black frame insertion for 60fps games (3D Vision needed for the last one). Epilepsy warning, and you have to be comfortable with 30Hz strobing.