Wednesday, July 30, 2014

Shadowgrounds: Survivor


Created using game version: steam 1.08


This game is the sequel to Shadowgrounds.  It's sort of a standalone expansion pack with some nice improvements over the original game.  The game engine is the same, so it renders pretty much identically to the first game.  The stereoscopic rendering anomalies Shadowgrounds suffered are still present in Shadowgrounds: Survivor.

This fix solves:

  1. Incorrectly rendering dynamic shadows removed.  Using the Helix Mod to target only the bad shadows allows you to enjoy the game's functional dynamic shadows.
  2. Shadowgrounds has no 3D Vison profile, so convergence settings will not save with Ctrl+F7.  Three presets for depth/convergence are available with hotkeys.

Problems not fixed:

  1. Ground textures for exteriors appear below ground level.  Fixing them would require modifying pixel shaders and I have no idea how to do that.
  2. 2D crosshair and world markers.
Change log:
  • v1: (7/30/2014) Initial fix.

How To Get It Working

Shadowgrounds: Survivor incorrectly activates NVIDIA's profile for a game called "Survivor" and 3D is completely broken.  The instructions below will tell you how to fix this.
  1. Extract the .zip file to the same location as survivor.exe.
  2. Install PhysX drivers as instructed by the developer..
  3. Use NVIDIA Inspector to remove survivor.exe from the "Survivor" profile and add it to the "Shadowgrounds" profile.
  4. Try to run the game.  If the game crashes, ensure that you installed both drivers from step 2. If it still crashes, you might have a problem with the Steam overlay.  As of August 2014, un-checking it in the Steam settings does not fully disable it.  You must rename GameOverlayRenderer.dll in your Steam installation folder while Steam is running.  After playing Shadowgrounds, rename it back to normal.
  5. Use F1, F2 and F3 to set your desired depth and convergence values.  (See below)
More information about Steam overlay issue: GeForce Forums: steam-update-breaks-helixmod-on-some-games

Preset Hotkeys:

Pressing F7 saves your current depth and convergence values to the last preset key you pressed.  The default hotkeys can be changed in DX9Settings.ini.  Reference the linked chart for keycodes.  Use the number from the second column: Keyboard Keys and Key Code Values
  • Preset Key 1: F1 
  • Preset Key 2: F2
  • Preset Key 3: F3



  1. These ShadowGround fixes are great, thanks very much. Awesome to see you taking them from unplayable to viable.

    For the below ground textures, it seems like those should be fixable via the VertexShader instead. Unless the ground textures are being done by deferred rendering (pretty unlikely, that is mostly used for lighting and shadows), then VS should be the piece to determine depth.

    Does the ground texture change when you dial separation? That would indicate that the texture is too sensitive to the stereo fix and can be dialed in.

    The automatic driver mode adjustments don't always make the right choice, so sometimes it works to subtract from the x position instead of the usual add.

    1. bo3b, thanks for the comment. I was able to find a VS for the ground textures in the original Shadowgrounds, but not for Survivor. There were two PS in Survivor that affected the ground textures. In Shadowgrounds, it took place mostly indoors so the ground outdoors was rarely a problem. Now that I've played more of Survivor, I've learned that the ground textures are a major problem.

      The ground textures are affected by separation and convergence. They move with the rest of the scene like normal, but they're just too deep It seems like it should be possible to manually make them render closer by a fixed value, but I have no idea how to do that.

      If you wouldn't mind, could you take a look at the other Shadowgrounds fix, where I found the VS for the ground textures? I included the original shader in the ShaderOverride folder.