Tuesday, March 27, 2012

Vampire: The Masquerade - Bloodlines

Fix by Eincrou and Mana84

BEFORE 1: Default Convergence

BEFORE 2: Convergence Increased
AFTER


Description:

This fix addresses the fact that the UI, including HUD and menus, render in S3D. The convergence must be kept at 1 to align the UI, but the game world looks very flat. You can see this in the "BEFORE 1" screenshot.
"BEFORE 2" shows how the UI is destroyed after setting the convergence to a reasonable value so that the world doesn't appear all the same depth."AFTER" shows how we were able to use the Helix Mod to align the UI. This screenshot has the same exact convergence value I had in "BEFORE 2."

Problems Not Fixed:

  1. This fix will ruin the skybox and some distant buildings.  I have not a clue why.  I haven't seen anything like this in any other game.  I didn't find problem this worse than having to keep the convergence super low.  I'd rather have a weird sky than a flat game world.

Change Log:

v2: (03/29/12) Fixed remaining UI elements.
v1: (03/27/12) There are still UI art elements that render improperly in S3D.

How to get it working:

Install the d3d9.dll release and ShaderOverride fix to the same location as vampire.exe, just the same as any other fix. When you're done with that, don't get excited yet, because you're not finished!

1) Get the debug version of d3d9.dll. Temporarily rename the release d3d9.dll to something else, for example: "d3d9x.dll." Put the debug version in the same location as vampire.exe.

2) Launch the game, and get into the regular game world. Use the hotkeys (default Ctrl+F5 and Ctrl+F6) to set your convergence however you like. The nVidia profile sets the convergence extremely low, so you'll have to hold Ctrl+F6 for a while before you see a change in the game world. Ignore the splitting UI, we'll fix that in a minute.

3) When your convergence is set how you want it, look at the red debug text at the top and make a note of the "mConvergence" value. In the AFTER screenshot, you can see that my convergence is about 25. Press Ctrl+F7 to save your convergence settings.

4)
Go find the two fixed shaders at ".\ShaderOverride\VertexShaders\[xxxxxxxx].txt" and open them in a text editor.

5)
Locate the lines: "def c220, 0, 25, 0.0625, 1" and change "25" to the convergence value you saw in "mConvergence." Save the files.

6)
Now, you can delete the debug version of d3d9.dll, or you can rename it so it's still there in case you want to change your convergence again. Make the release version have the name "d3d9.dll" again.
When you boot up your game again, the main menu should already be aligned perfectly if you saved your convergence in step 3. If not, just increase your convergence with the hotkeys until it lines up. If you want it to pop out or have depth inside the screen, you're welcome to leave it slightly un-aligned.

Download Links:

Release .dll
Debug .dll
VTMB Fix Shaderoverride

Credits:

Eincrou located the UI shader and did all of the testing, but this fix is thanks to Mana84. He discovered this method of changing the convergence value at which the shader renders at screen depth. This will allow for fixes to many games that have to be played at super-low convergence values. Thanks to eqzitara for helping convert the shader.

14 comments:

  1. This works great for UI, but when wandering around the Santa Monica hub, I always get a hall-of-mirrors effect up in the sky.

    And while that's bad enough, weirdest of all is that changing convergence seems to shift around some of the building meshes (generally those above street level), moving them in different directions for each eye! Is there any way to fix this?

    ReplyDelete
    Replies
    1. Does this only happen with the fix installed or always?

      Delete
  2. The hall-of-mirrors sky only happens with the patch. The buildings getting moved around seems to happen based on convergence. They seem okay at default convergence, but changing it shifts them apart - with or without the patch.

    ReplyDelete
  3. I don't seem to be getting the mCongergence numbers... Is there a setting I have to turn on or a debug program I need to download?

    ReplyDelete
    Replies
    1. You don't have to do those steps unless you don't like the convergence of the game when the UI is at screen depth.

      If you do want to change the convergence, then the debug dll is in the download links section.

      Delete
    2. I think I might have found the issue. The version of Bloodlines I'm using gives me an error prompt asking for "d3d9_43.dll" when I put either the debug or the release in the folder. The game will boot if I rename it as such, but the UI fix doesn't seem to work...Any advice on how to get this to work?

      Delete
  4. Having a very difficult time getting this to fix to work for some reason. When I simply put the d3d9.dll in the folder with the .exe I get an error message telling me the program can't start because d3dx9_43.dll is missing. If I rename "d3d9" to "d3dx9" the game will run, but the fix does not work (i.e. the UI splits unless you're at a very low convergence). I've tried 3 different releases of this game and am simply not having any luck. Am I doing something wrong? Does this fix only work with a particular version of the game (i.e. the Steam version sans community patches?)? Any help with this would be greatly appreciated!

    ReplyDelete
    Replies
    1. I honestly have no idea what the problem is for you. I've never encountered an issue like this.

      This fix was created with the Steam version, with a community patch installed (I forget which one). I don't have the game installed anymore.

      Renaming the Helix Mod library to anything other than d3d9.dll causes the Helix Mod to not load, so no solution can be found in doing that.

      You might want to describe your problem on the Helix Mod thread on the GeForce forums. They might be able to help you. The only things I can suggest are really dumb and obvious like make sure your game is installed correctly and that your DirectX is updated.

      This game runs pretty well in S3D, except for the problems with the skybox this fix causes, so I hope you can find a solution.

      Delete
    2. So as a last ditch effort I decided to give it a go on my x86 install of windows and everything seems to work as it should. Not sure if it's the 64 bit architecture or some other misc. settings on my primary intall but either way I'm good to go now. And the game does look great in S3D, really breathes new life into it!

      Thanks again for your help and work on this mod!

      Delete
    3. Wow, I would have never thought to try that. I played the game with Windows 7 64-bit just fine. Well, at least you found a solution. Enjoy! (but try not to look at the sky too much, lol)

      Delete
  5. After 8 eight years, I don't think Eincrou will return to his fix but if anyone wants to play the game with this fix, I must warn you that there is a bug in a main quest that will prevent you from proceeding. In Grout's Mansion, electrical beams don't appear. You should watch a walkthrough and copy their movements to proceed.

    ReplyDelete
    Replies
    1. EIGHT YEARS, whew! A lot has changed in eight years, including the fact that I wouldn't want to play this game on a screen, I'd play it in VR.

      Delete
  6. Thanks for the warning, but i cant really play with the broken skybox either, its too distracting and when a skybox is visible it also adds alot to immersion, which is gone if played with this 3D fix.

    ReplyDelete
    Replies
    1. You should fix the skybox and rerelease this fix. Since this was created, we know about 100X more about how to fix effects, and skybox fixes are pretty easy, just pushing the shader to full depth. Always possible game is doing something weird, but these old DX9 games are usually straightforward.

      Delete