3D Vision fix for DuckStation, a PlayStation emulator. For the moment only for the "Hardware (D3D11)" renderer. A fix for Vulkan will be added in the future.
This is possible thanks to the PGXP feature that improves geometry and texture accuracy. It makes geometry vertices have a real depth value, which can be used for stereoscopic 3D.
What the fix does
- It stereoizes geometry, because even in DX11, 3D Vision Automatic doesn't stereoize anything.
- It has a hotkey with depth options for elements that are detected as 2D (could be HUD, could be skyboxes, could be wrong 2D geometry).
- It has a hotkey for black frame insertion. Most likely annoying for most people. It has the purpose of making 30fps games look smoother (no double images at 60Hz when tracking elements with your eyes).
Known issues
- Sometimes, and I think only with the "duckstation-nogui-x64-ReleaseLTCG.exe" file, a bug that makes geometry only show on one eye can happen (maybe some resolutions are the trigger, and changing games mid session). This can be quickly solved by saving and loading a savestate. This is probably due to Nvidia driver problems, doing wrong stereoization to a render target.
- Some games detect part of the geometry as 2D (PGXP can't improve them), and as a consequence they can't have proper depth in 3D. It's usually geometry that is close to the camera, in the games affected by this problem. Examples: Ape Escape, Spyro games, Medievil games, Metal Gear Solid.
- Sprites that should be inside the game world may appear in 2D (they can be moved with a hotkey, but it won't be accurate depth). Examples: Dragon Quest VII, Tomba!.
Installation
- Don't use Windows 7. The fix relies on flip model, which the emulator uses by default. That feature should work on Windows 8 and newer.
- Get the latest emulator version for Windows x64 from github.
- Download this file and extract its contents in the "duckstation-windows-x64-release" folder, where "duckstation-qt-x64-ReleaseLTCG.exe" and "duckstation-nogui-x64-ReleaseLTCG.exe" are.
- To configure the emulator easily, use "duckstation-qt-x64-ReleaseLTCG.exe" to your liking, but there are some key components for stereoscopic 3D. I'm going to mention them even if some of them are correct by default:
- To configure the emulator easily, use "duckstation-qt-x64-ReleaseLTCG.exe" to your liking, but there are some key components for stereoscopic 3D. I'm going to mention them even if some of them are correct by default:
- Settings -> Display Settings -> Basic -> Renderer -> Hardware (D3D11)
- Settings -> Display Settings -> Basic -> Fullscreen Mode -> Borderless Fullscreen
- Settings -> Display Settings -> Basic -> Use Blit Swap Chain -> Off
- Settings -> Enhancement Settings -> PGXP -> Geometry Correction -> On
- Settings -> Enhancement Settings -> PGXP -> Texture Correction -> On
- Run the game you want. The first time, Windows will ask for permission to modify the Nvidia profile.
Hotkeys
- p: convergence presets (0, 0.5, 1, 2, 3, 4). 1 by default. Different games need different convergence levels.
- o: depth presets for 2D elements (0%, 25%, 50%, 62.5%, 75%, 85%, 100%). 0% depth by default.
- i: maximum depth settings (x0.35, x0.375, x0.4, x0.45, x0.5), because some games have more effective separation than others. x0.35 by default.
- u: black frame insertion, intended for 30fps games. I don't recommend using it because it flickers a lot. One press enables it, another press makes the opposite frame black (which one has less latency may vary), and another press disables it. Disabled by default.
Recommendations
- To avoid one eye bugs (which can be solved by loading a savestate anyway), configure everything with "duckstation-qt-x64-ReleaseLTCG.exe" but then play the games with "duckstation-nogui-x64-ReleaseLTCG.exe", because 3D will be enabled during the entire session, even inside menus, so bugs like that one can't happen. It may be too annoying to navigate this UI if you prefer the other interface.
- To avoid one eye bugs (which can be solved by loading a savestate anyway), configure everything with "duckstation-qt-x64-ReleaseLTCG.exe" but then play the games with "duckstation-nogui-x64-ReleaseLTCG.exe", because 3D will be enabled during the entire session, even inside menus, so bugs like that one can't happen. It may be too annoying to navigate this UI if you prefer the other interface.
- If you have a powerful GPU, use a high "Internal Resolution Scale" setting in combination with the advanced setting "Multisample Antialiasing" set to some SSAA value.
- I don't recomment using any other "Texture Filtering" other than "Nearest-Neighbor". At least in Vagrant Story, I saw the motion blur effect being rendered black with other settings.
- For easy widescreen mode, go to Display Settings and set Aspect Ratio to "Auto (Match Window)" and enable the Widescreen Hack in the Enhancement settings.
- Enable all PGXP settings except Depth Buffer and CPU Mode.
- Don't force vsync through the drivers, because the fast forward key in the emulator can't bypass it. Instead, use vsync in the emulator (Display Settings).
If you liked the fix and want to contribute for more future fixes, you can donate to this PayPal account: masterotakusuko@gmail.com