Vampire The Masquerade: Bloodlines

Low resolution textures

People sometimes email me asking if I know about an issue whereby the game displays low resolution textures even though the user's video card should be capable of displaying high resolution graphics.

I never witnessed this problem myself, which meant I was never able to diagnose it. Apparently someone by the name of DoctorOld_Nick did figure out what was going on. He posted on some forum somewhere and was quoted on the Steam forums by donzi, who reports he can't remember where the original information was found.

I found somewhat extreme but efficient solution to this problem. The source of evil is way of determining texture memory. shaderapidx9.dll (function ComputeTextureMemorySize) does that in rather barbaric way by creating fake textures until the system gorges up and then deletes it, summing size of those textures in process. And with big RAM it easily outruns boundaries of int type.

Fix is very simple and dangerous - hardcode the DLL to always return 0x7F000000 as a result. Be sure to backup the file and don't use it on any other system!

Here's the hex: shaderapidx9.dll

address   new old
000262CC: 90  75 
000262CD: 90  0C 
000262D4: 7F  04

I do not know who either donzi or DoctorOld_Nick are. I have not attempted to perform the modification described. Brad Jelinski has, however, and he reports success.

Jump to a section

intro | part 1: Isolating the problem | part 2: Disassembly | part 3: GlobalMemoryStatus() | part 4: The solution | part 5: Patches | part 6: Low res textures