3D Vision and geo-11 fix for DuckStation, a PlayStation emulator. Separate fixes for the "Hardware (D3D11)" (3D Vision and geo-11 fixes) and "Hardware (Vulkan)" renderer.
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.
Fixed in DirectX 11 with 3Dmigoto and geo-11.
Fixed in Vulkan with Vk3DVision.
Update (2023-10-25): updated geo-11 version to v0.6.182. Apparently now "nvidia_dx9" mode works too, and the nogui version of the emulator doesn't exist anymore. For geo-11, the normal qt version is OK.
Update (2022-07-27): added geo-11 fix. For those with 3D Vision monitors that want to use new GPUs or drivers, I recommend using the Vk3DVision fix.
Update (2022-02-20): reuploaded both DX11 and Vulkan fixes. The Vulkan one is updated to Vk3DVision version 4.19.19. The point of this update in general was making the separation settings equal between DX11 and Vulkan.
Update (2021-12-03): reuploaded Vulkan fix, after seeing that when Vk3DVision doesn't have dev mode enabled, a few games can crash (Vagrant Story, for example).
Update (2021-12-01): added fix for Vulkan made in single frame stereo. For Nvidia GPUs, the 2000 series is required as minimum and also newer drivers than the last ones that can be used with DX11.
What the fix does
- It stereoizes geometry, because even in DX11, 3D Vision Automatic doesn't stereoize anything.
Known issues (Common)
- You're forced to use the "duckstation-nogui-x64-ReleaseLTCG.exe" of DuckStation, because Vk3DVision crashes just by launching a game with the interface of the other exe. This is why I recommend configuring everything first with the other exe and then setting some hotkeys to open the quick menu, decrease and increase resolution, etc.
Installation (DX11)
- 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.
- 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
- Get the latest emulator version for Windows x64 from github.
- 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 (Vulkan)
- 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
Hotkeys (DX11)
- p: convergence presets (0, 0.5, 1, 2, 3, 4, 8, 16). 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.325, x0.4225, x0.4875, x0.56875, x0.62), because some games have more effective separation than others. x0.325 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.
- 1,2,3,4,5,6 (not the numpad): convergence presets (0, 0.5, 1, 2, 3, 4). 1 by default. Different games need different convergence levels.
- g,h,j,k,l: depth presets for 2D elements (0%, 50%, 70%, 85%, 100%). 0% depth by default.
- y,u,i,o,p: maximum depth settings (x0.5, x0.65, x0.75, x0.875, x1.0), because some games have more effective separation than others. x0.5 by default. The numbers here are different than the DX11 ones, but the effective separation is the same.
- (For the old 3D Vision fix, not geo-11) 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.
- Since you need to play using the DuckStation exe that has a more limited interface, I recommend setting the hotkey that opens the quick menu, and also others to increase and decrease resolution, for example.
PCSXR-PGXP also works for this purpose (with actual exclusive fullscreen), but the process was much more on the hacky-janky side (it requires double wrapping with both gldirect5 and dgVoodoo2 for optimal results).
ReplyDeleteI tested a whole bunch of games using that method, but i have no idea if the results are applicable here, so i'll hold off on sharing them here until i have the time to check if compatibility seems different with this method.
(If they are applicable, that 2D element depth hotkey is going to get a *ton* of use, as "Sky renders at screen depth" was my most common compatibility note by far for games that would have otherwise been stereo-ready.)
Wow thks bro brilliant
ReplyDeleteWow I haven't played PS1 games in 3D since bleem!\WinXP\H3D shutter glasses... :)
ReplyDeletewhich one have better depth
ReplyDeleteGraphically they are the same, and each has different pros and cons.
DeleteThe Vulkan fix can be used with new drivers, and it doesn't have the one eye bug that can happen when launching games (when they quick load the last state).
The DX11 fix is compatible with MSAA and SSAA, you can go in and out of fullscreen without risk, you can use proper vsync + fast forwarding, it has black frame insertion as an option, and the amount of hotkeys I made is lower, but with the same functionality.
With both fixes you can go way above the maximum separation that you should use, if you configure some variables :p.
Damn. Awesome. I was gonna say though the z buffer original state of the PS1 would have felt like a psychedelic experience in 3d XD.
ReplyDeleteI finally got around to comparing this to the old PCSXR-PGXP double wrapper solution.
ReplyDeleteBy default, the results appear to be identical, but this is *much* less finicky to set up obviously.
The PGXP options under Advanced Settings can be a real gamechanger tho. For example, Spyro has oodles of graphical/depth/rendering glitches with default settings, to the point that it isn't really playable in my opinion. But with PGXP Geometry Tolerance set to 0, it looks pretty good. (PGXP's CPU Mode option also needs to be on)
https://i.imgur.com/WRvXnPf.png
Relatedly, Metal Gear Solid and some of those other games that "detect part of the geometry as 2D" are also fixed by turning CPU Mode on.
https://i.imgur.com/mMbf2zu.png
Oh, it's also probably worth mentioning that the DirectX 11 fix doesn't seem to work with 452.06 drivers for whatever reason. 3D Vision activates, but the right eye image is displayed for both eyes (this is distinct from the *other* one eye bug masterotaku mentioned, which only shows a right eye image, with nothing for the left eye.)
ReplyDeleteIf you experience something similar, try 425.31 drivers instead.
Any way to get this 3D mode baked into Duckstation ala Dolphin?
ReplyDeleteI can run duckstation no-gui without a problem but after I run VK3dvision and then open duckstation no-gui I always get an error. Panic triggered: 'Failed to create placeholder texture' in function FullscreenUI::LoadTextureResource
ReplyDelete(D:/a/duckstation\duckstation\src\frontend-common\fullscreen_ui.cpp:525)
Do you want to attempt to break into a debugger? Pressing Cancel will abort the application.
I'm trying to run it in vr. I have changed the .ini to Stereo3DViewMode = OpenVR.
This is with the latest version of DuckStation.
Just tried this out for the first time tonight on Mega Man Legends. As others noted the sky wasn't rendering correctly. It was only a quick test with very little play. I was amazed to be able to play a ps1 game in 3D. I'll spend more time on it in future date to learn the ins and out. Even though the sky was rendering off, I still loved the 3D gameplay and would play it in 3D even with that issue.
ReplyDeleteI'm using driver 452.06 by the way.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteIf anyone is still using this fix make sure you set the games to start in fullscreen or you will have left eye issues!
ReplyDelete1- Does it work with anaglyph 3d green/magenta ? .... 2- Does it work on windows 7 ?
ReplyDeleteon windows 7 do i need to install some driver (vulkan, or some other), or do i need just the emulator and the fix ?
ReplyDeleteCan anyone please provide a download link on these articles? Why are they so tough to find? It's a bad hassle when i see updates, backwards screenshots, instructions, and anything else but a download link. Why is it so hard to put in a direct download link?
ReplyDeleteThis is a bunch of bullshit to me. You'd think these idiots would put links here but their mushy brains are too busy softening themselves in front of Fortnite and drunk on beer. How hard is it to add a damn link?
DeleteNot to put too fine a point on it... but if you aren't capable of reading this page, you are never going to get it to work. This requires the ability to do modding, and that requires comprehension of components. You could stand to cool it with the entitled attitude for something that is free.
DeleteSo happy this works with the geo-11 fix. Thank you for this!
ReplyDeleteI'm having a hard time finding the latest download link. Please add one at the top of the blog page.
ReplyDeleteIt's non trivial to setup, it's not a single link. Also two options, Vulkan or DX11.
DeleteDo ctrl-F, look for "Installation".
I managed to get part of it working, but it lacks a lot of convergence. I am trying to run Toy Story 2 in 3D but i can only adjust depth of the 2D elements. Nothing pops out like it did before
Delete