Wrapper that enables variable refresh rate + more (dgVoodoo2)

ZabaZu

Member
Gender
Male
The Problem

Since this game has a non-alt tab friendly exclusive fullscreen mode, this means that we sacrifice low latency, smooth framepacing, the ability to play without vsync, and/or the ability to play with VRR (variable refresh rate) by playing in windowed mode or a borderless window mode. Luckily, these are all solvable problems on Windows 10 systems.

The Solution

dgVoodoo2 is a useful wrapper that, in this case, redirects this game's DX8 calls to a newer API of your choosing. Really though, it's a swiss army knife of wrappers that can make old games more compatible on modern systems. If you use this tool to wrap the game's DX8 calls to DX12, you get 2 main benefits baked into that API: enforced DXGI flip model (read: bypassing windows buffering to allow tearing/game managed vsync and VRR support) and hardware scaling at non-native resolutions in a borderless window (limited utility in a game like this, admittedly). DXGI Flip Model isn't only useful for VRR users either, it will ensure smooth framepacing with vsync on screens running at 60/120/240hz etc, which is not a guarantee of the traditional window mode. Basically, this mode gives you the benefits of exclusive fullscreen AND the benefits of borderless window mode, no compromises.

The Installation

This software can be a tiny bit confusing at first, so I'll provide a simple install process as well as some info on configuring it yourself.

Easy Install
1.) Download the latest stable version of dgVoodoo2
2.) Open the zip file, navigate to /MS/x86/, then copy D3D8.dll and paste it in your PSOBB install directory.
3.) Download my config files
4.) Open the zip file and figure out which config you'd like based on the folder names.*
5.) Inside the folder of the config file you'd like to use, copy the dgVoodoo.conf file and paste it in the PSOBB install directory.
6.) Start the game like normal and enjoy.
* Anisotropic Filtering Example | MSAA Example | Note that MSAA causes problems with Reshade and should be avoided if you use that mod.

To Uninstall
1.) Delete D3D8.dll and dgVoodoo.conf from the PSOBB install directory.

You can skip this paragraph if you did the easy install, but if you want to create a configuration file yourself, you launch the configuration tool, then you must add the PSOBB installation directory as a config folder. Once you've done that, you can customize a good number of options (you can ignore the Glide tab for this game, that doesn't apply to games that were originally DirectX). For PSOBB, I recommend checking the box in the DirectX tab for "Fast video memory access". With a heavy reshade preset, this meaningfully increased performance without any drawbacks, but on a modern system there shouldn't be a difference either way unless you go out of your way to really push things. Other than that, it'll come down to preferences, and it wouldn't hurt to take a look at the documentation for some stuff.

I hope others find this tool useful.
 
Last edited:
Could you do a video demonstrating how to install this? Does this mean we can fully utilise the GPU and monitor we have on our systems?
 
Could you do a video demonstrating how to install this? Does this mean we can fully utilise the GPU and monitor we have on our systems?
This setup more or less means that you'll get the best 30 fps possible from the game. This won't make it run faster. If you have a gsync/freesync capable screen, this will allow the game to make use of that. And if you use a 60hz monitor for example, it'll make that 30 fps look perfectly consistent when vsync is enabled (144hz screens without VRR support will still need to drop to 120hz at the desktop level to get proper framepacing).

As for a guide, videos aren't really my thing, but I edited the post to be more straight forward with the install process.
 
Pacing seems better but all the text is blanked out with weird white boxes
I definitely don't have that issue. Maybe it's picky about which font you have selected (I use Dotum and that works fine). Seems like something on your end somehow. Try changing fonts. Also, what GPU do you have? If it's AMD/Intel, could be a compatibility issue that doesn't exist on my Nvidia card.
 
Thank you so much was almost impossible to play MAE Desert (Merissa AA spaw). This solved almost all lag.
 
I'm surprised to hear that it increased performance like that. Are you by any chance on a laptop?
I am using an old computer. Waiting for the right time to upgrade setup later this year. ^^
Processor: I 7 870 | 2.9 GHz
Memory: 16 GB | 1333MHz
Video Card: AMD Series 7000

Edit: For now, the game runs just fine, no lag.
 
I am using an old computer. Waiting for the right time to upgrade setup later this year. ^^
Processor: I 7 870 | 2.9 GHz
Memory: 16 GB | 1333MHz
Video Card: AMD Series 7000

Edit: For now, the game runs just fine, no lag.
Interesting. Maybe AMDs DX8 driver is just that bad on newer hardware (well, yours is newer relative to dx8 anyway haha)? If you run into any issues with this (apparently it's common for AMD GPUs to have problems with dgvoodoo2), you could give this a shot https://github.com/crosire/d3d8to9

Glad it seems to have unforeseen benefits for even older rigs though!
 
I like. I've been playing with this for a bit on my 2080TI. It doesn't completely eliminate frame pacing issues, but it does far better overall. Anti-aliasing seems to be handled better (also supports 8x if you want to edit the config) as does AF.
 
I like. I've been playing with this for a bit on my 2080TI. It doesn't completely eliminate frame pacing issues, but it does far better overall. Anti-aliasing seems to be handled better (also supports 8x if you want to edit the config) as does AF.
You can take it a step further and use the Nvidia Control Panel (NVCP if I mention it again) to apply transparency supersampling as well. Set the AA mode to "enhance" and select one of the transparency supersampling options to the same multiplier of MSAA you are using in dgvoodoo2. If you are unaware what the option does, it applies supersampling to alpha effects only, such as tree leaves, which MSAA won't touch. That knocks out just about every aliased line this game can throw, it looks pristine. Not really sure why that option isn't in dgvoodoo2 itself tbh.

NVCP can also apply AF to this game even when wrapped, but afaik the MSAA options in NVCP won't work when wrapping to DX12. Only reason I applied it in dgvoodoo2 configs is to make things easier. I actually don't know if either option is generally superior to the other, but if there are any weird artifacts, switching to NVCP controlled AF would be a good starting place I'd think.
 
Forgot to post here after installing this like two months ago. It took care of all the stupid frame drops I still had around Merissas, Desert 3, etc., and enabled AA without sacrificing any performance. I can't recommend this enough if you have a good computer and still drop frames all the time like I did!
 
Back
Top