Sunday, October 29, 2023

Serious Sam 4 and Serious Sam: Siberian Mayhem [DX11] [Vulkan]




3D Vision and geo-11 fix for Serious Sam 4 (DirectX 11 and Vulkan (outdated)) and Serious Sam: Siberian Mayhem (DirectX 11). For performance I recommend the geo-11 fix, and at this point not using Vulkan.


Update (2023-10-29): geo-11 fix updated with build v0.6.182. Autoconvergence changed. HUD adjustments.

Update (2022-11-13): geo-11 fix updated with build v0.6.78. Autoconvergence configured. HUD fixes and improvements.

Update (2022-06-21): geo-11 fix uploaded. Separated in the installation instructions.

Update (2022-06-06): fixed the standalone expansion, Siberian Mayhem. But only in DirectX 11 for the moment, so it's what I recommend for the expansion. I have improved HUD stuff and separated the DX11 and Vulkan fix files.


This time I didn't stereoize parallax occlusion mapping and specular reflections (real depth instead of surface depth). The reason is that camera rotation coordinates switch around depending on your location, making the effects worse more than half of the time if I try to stereoize them.

I also didn't make automatic low convergence presets for some iron sights while holding a button, because the game has a new awesome feature: dual wielding. And you'll need it.

Fixed in DirectX 11 with 3Dmigoto.

Fixed in Vulkan with Vk3DVision.


Fixed

  • Dynamic lighting and shadows.
  • Reflections and other haloing problems.
  • Fog.
  • Light shafts.
  • Distortion effects.
  • Radial blur.
  • Some shadows problems in Vulkan.
  • Stereoized crosshair and other HUD elements at static 95% depth, most of the time. Also stereoized sniper crosshair.
  • Stereoized damage numbers at real depth, if you enable that option in the game.

Known issues
  • The game doesn't want to show refractions/reflections at the sides of some effects when the separation of the effect is too high. This shows as "stretching". But after the latest update, I clipped the sides to not show garbage graphics.
  • A curiosity more than an issue: when you have very low health left, every second or so the crosshair shader briefly changes to another one that has real dynamic depth. That's the kind of shader that Serious Sam Fusion had, but sadly in SS4 the crosshair that appears most of the time can't be dynamic.

Installation
  • I recommend running the game at least once first and configuring all the settings and resolution, including putting it in borderless fullscreen windowed or fullscreen. Maybe check your performance too.
  • Don't enable motion blur. It makes the image 2D when using a specific gadget.
  • I recommend you to use the enhanced light shafts option, in case a lower setting doesn't work well with the fixing formula.
  • The first time you run it in a Windows session, if you're using old drivers the game will show a window complaining about it. Just cancel it (don't accept), and the game will run normally.
  • DirectX11 (geo-11, recommended, using build v0.6.182): download this file (geo-11 fix) and for the base game, extract its contents in the "Serious Sam 4\Bin\x64" folder, where "Sam4.exe" is. For the expansion, extract it in the "Serious Sam Siberian Mayhem\Bin\x64" folder, where "SamSM.exe" is. Remember to edit "d3dxdm.ini" to change your "direct_mode" to the output you need.
  • DirectX11 (3D Vision, outdated): download this file (DX11 fix) and for the base game, extract its contents in the "Serious Sam 4\Bin\x64" folder, where "Sam4.exe" is. For the expansion, extract it in the "Serious Sam Siberian Mayhem\Bin\x64" folder, where "SamSM.exe" is.
  • Vulkan (outdated): download this file (Vulkan fix) and for the base game, extract its contents in the "Serious Sam 4\Bin\x64" folder, where "Sam4.exe" is. For the expansion, extract it in the "Serious Sam Siberian Mayhem\Bin\x64" folder, where "SamSM.exe" is.
  • If you chose DirectX11, just run the game and let it overwrite the Nvidia profile.
  • If you chose Vulkan, first open "Vk3DVision.exe" and then run the game. By default the presentation is configured for 3D Vision monitors in DX9. Open "Serious Sam 4\Bin\x64\Vk3DVision\Vk3DVision.ini" and change the "Stereo3DViewMode = 3DVision" line to what you need.
  • For a quick API change outside of the game, if you want it, open "Serious Sam 4\UserData\SeriousSam4.ini" (this is the location for the GOG version. For the Steam one it's different) and search the line that contains "gfx_strAPI". Possible values for 3D:
    gfx_strAPI = "Direct3D11";
    gfx_strAPI = "Vulkan";

Recommendations
  • For better CPU performance, use Vulkan. You will get around 50% better fps in CPU limited situations compared to DX11. However, you can't alt+tab and come back to the game. At least in my case. A change in video mode, antialiasing and maybe some other settings will be problematic, so I recommend you to reboot the game if you do that.
  • DX11 advantages are alt+tab compatibility, synchronized frames between eyes, and not being unstable when you change video settings while playing. Borderless fullscreen windowed mode should trigger 3D Vision too in DX11, so that means instant alt+tab without risks.
  • If you use Vulkan, since frames aren't synchronized between the eyes, I recommend disabling head bobbing in the game options.
  • The ingame fps limit you should use is the same number as your refresh rate for Vulkan and refresh rate / 2 for DX11 (unless you don't use a 3D Vision monitor). For example, 120fps for Vulkan and 60fps for DX11 if you use a 120Hz monitor. Or you could just use unlimited fps and vsync, but your frame times may be worse than capped.
  • PCGamingWiki mentions the "thr_iMaxWorkerThreads = X" console command (X is number of threads) that may increase performance. I tested it in a very demanding CPU situation, using 7 while having a 4c/8t CPU, and I got 10% better performance in Vulkan. In DX11, it was useless.

Hotkeys (DX11)
  • F4 (not in geo-11): convergence presets (0, 0.5, 0.75, 1). 0.75 by default. You will most likely not even need to change it for cutscenes from your preferred setting.

Hotkeys (Vulkan)
  • F2: 0 convergence.
  • F3: 0.5 convergence.
  • F4: 0.75 convergence. Default value.
  • F5: 1 convergence.

Autoconvergence (DX11 with geo-11)
  • Enabled by default. If you go to "d3dxdm.ini" and set "dm_auto_convergence = 0", it will be disabled.

If you liked the fix and want to contribute for more future fixes, you can donate to this PayPal account: masterotakusuko@gmail.com
Or you can join my Patreon: https://www.patreon.com/masterotaku

2 comments:

  1. fantastic job, thank you very much, Master

    ReplyDelete
  2. Amazing, just amazing :)

    We're so lucky to have a dream 3D Team like Helixmod !

    ReplyDelete