Drog Black Tooth
Self-Ejected
- Joined
- Feb 20, 2008
- Messages
- 2,636
Well, since nobody wants to help me code the Arcanum patch I got bored and decided to help Wesp5 with his patch instead. Because I'm a good person. And want to help people.
Anyway, I just re-installed Bloodlines a couple of days back after watching that cringy love letter video on YouTube. It's still the best shit game, I love it. However, there's a jarring issue all too apparent on modern systems. It has a Half-Life 2 style LOD (level of detail) system in place, basically models (both NPC and static) start rapidly losing polygons as you move a few steps away from them. Everything constantly switches between low poly and high poly (each model has 5 versions in total). Like that cop going down the road starts with a buttonless shirt and then his shirt suddenly has buttons as he moves closer to you. Or that almost naked chick under a street lamp, her boobs constantly change shape depending on how close are you to her.
I couldn't play like this. No way in hell.
Half-Life 2 has a "r_lod" cvar which controls this. Setting it to 0 (or -2 and lower) completely disables this tomfoolery. But no such luck in Bloodlines. It almost seemed as the cvar does nothing. And yet...
I attached a debugger to the game, and just for fun took a look at what the fuck does access r_lod if anything at all. And sure enough, there were two subroutines that did. And it turns out, Troika fucked up (as they often did) and the code only checks for r_lod 1 and r_lod 2, not even r_lod -1 which is the default value!
Anyway, I made it so that r_lod is always reported as 0, which it couldn't do before. Now the game always loads highest quality geometry and no longer fucks with it. There's no god damn "pop in" effect anymore! The polygon count for the whole scene will increase a few times. This would be very taxing on systems of the day, but nowadays you can do it, even with 32x CSAA, no less.
Best shit patch I've ever done. Even better than my famous Arcanum sprite mirroring disabling patch.
tl;dr HOW TO INSTALL
DIY:
Open engine.dll in a hex editor. Change 0x01 to 0x00 at 0xA6791. (OR you can do it in memory with Cheat Engine or something, the address is 0x200A6791)
Download:
This is a pre-patched engine.dll from Wesp5 patch 9.6. Put it to your \bin folder.
Fucking enjoy already. Go look at some high poly vampire boobies.
Anyway, I just re-installed Bloodlines a couple of days back after watching that cringy love letter video on YouTube. It's still the best shit game, I love it. However, there's a jarring issue all too apparent on modern systems. It has a Half-Life 2 style LOD (level of detail) system in place, basically models (both NPC and static) start rapidly losing polygons as you move a few steps away from them. Everything constantly switches between low poly and high poly (each model has 5 versions in total). Like that cop going down the road starts with a buttonless shirt and then his shirt suddenly has buttons as he moves closer to you. Or that almost naked chick under a street lamp, her boobs constantly change shape depending on how close are you to her.
I couldn't play like this. No way in hell.
Half-Life 2 has a "r_lod" cvar which controls this. Setting it to 0 (or -2 and lower) completely disables this tomfoolery. But no such luck in Bloodlines. It almost seemed as the cvar does nothing. And yet...
I attached a debugger to the game, and just for fun took a look at what the fuck does access r_lod if anything at all. And sure enough, there were two subroutines that did. And it turns out, Troika fucked up (as they often did) and the code only checks for r_lod 1 and r_lod 2, not even r_lod -1 which is the default value!
Anyway, I made it so that r_lod is always reported as 0, which it couldn't do before. Now the game always loads highest quality geometry and no longer fucks with it. There's no god damn "pop in" effect anymore! The polygon count for the whole scene will increase a few times. This would be very taxing on systems of the day, but nowadays you can do it, even with 32x CSAA, no less.
Best shit patch I've ever done. Even better than my famous Arcanum sprite mirroring disabling patch.
tl;dr HOW TO INSTALL
DIY:
Open engine.dll in a hex editor. Change 0x01 to 0x00 at 0xA6791. (OR you can do it in memory with Cheat Engine or something, the address is 0x200A6791)
Download:
This is a pre-patched engine.dll from Wesp5 patch 9.6. Put it to your \bin folder.
Fucking enjoy already. Go look at some high poly vampire boobies.