ValveSoftware / halflife

Half-Life 1 engine based games
Other
3.57k stars 596 forks source link

[HL25] Mods that previously use the Paranoia renderer simply do not launch anymore. #3710

Open cammy8580 opened 5 months ago

cammy8580 commented 5 months ago

The Half-Life mod, Paranoia, was known for using its custom renderer in the form of the opengl32.dll it provided that helped provide higher graphical fidelity on the goldsrc engine. Other notable mods in the community have used the same renderer for their projects, such as Mistake -1 and Cry of Fear's older pre-steam builds.

Sometime in 2013(?), Valve implemented a protection onto the game that deleted any opengl32.dll file placed in the game's directory. While this broke the custom renderer aspect of mods using the Paranoia renderer, it didn't stop the user from booting up and playing the mod (although in a significantly more inferior form).

Following the HL25 update, however, any and all mods that previously used said renderer to an extent now simply crash upon loading any map.

My hypothesis was that the new GL shaders potentially messed with the mod calling onto the renderer, but even with the shaders disabled through gl_use_shaders 0, the mods still crash. The only fix I can think of is to allow some sort of launch option that allows mods that use the renderer to not use any of the new shaders whatsoever.

If possible, it would also be nice to prevent the game from deleting the opengl32.dll if the game launches with -insecure, as suggested in a comment on issue #1379, or to allow mods to load the .dll if it's placed inside of their respective folder, similar to what was requested in #419.

JoelTroch commented 5 months ago

The Half-Life mod, Paranoia, was known for using its custom renderer in the form of the opengl32.dll it provided that helped provide higher graphical fidelity on the goldsrc engine. Other notable mods in the community have used the same renderer for their projects, such as Mistake -1 and Cry of Fear's older pre-steam builds.

IIRC the "hacked" opengl32.dll you're referring to was only needed for bump maps in said custom renderer to work, the rest of the renderer worked without it. I could be wrong on this one since mods either used said renderer "as is" or with modifications (that was the case of Arrangement which ditched the opengl32.dll part entirely).

The only fix I can think of is to allow some sort of launch option that allows mods that use the renderer to not use any of the new shaders whatsoever.

Better solution: mod developers fix the custom renderer to work with HL25 (if said mod is still supported) or players use the steam_legacy branch so that the renderer works.

or to allow mods to load the .dll if it's placed inside of their respective folder, similar to what was requested in https://github.com/ValveSoftware/halflife/issues/419.

It's up to mods programmers to implement the "delay load" mechanism for Windows and eventually an equivalent for Linux.

cammy8580 commented 5 months ago

IIRC the "hacked" opengl32.dll you're referring to was only needed for bump maps in said custom renderer to work, the rest of the renderer worked without it. I could be wrong on this one since mods either used said renderer "as is" or with modifications (that was the case of Arrangement which ditched the opengl32.dll part entirely).

Not exactly, The renderer supports better flashlights mechanics (i forgot the technical word for it) and I'm pretty sure a form of non-baked light sources (from what I remember from CoF, The game was noticeably darker in lots of environments because some light sources just would not work w/o the renderer) alongside the bumpmapping.

An example of the flashlight working can be seen here in Mistake -1, loaded through Xash3D. Base Profile Screenshot 2023 12 20 - 10 38 51 74

And then here is an example of the flashlight without the renderer. Screenshot 2023-12-20 103159

Better solution: mod developers fix the custom renderer to work with HL25 (if said mod is still supported) or players use the steam_legacy branch so that the renderer works.

While this would be the ideal way to go about it, most of these mods have not been touched since the late 2000s, and making them work independent of the renderer comes with major graphical downgrades. If Valve has expressed their desire to help work on mod support for HL25, I think potentially doing something to make these older, more ambitious mods work should be on their to-do list.

The original team who has made the paranoia renderer hasn't done any official work on the mod since 2009(?), and fans have created builds of the mods that completely jump ship from goldsrc due to the file being removed on launch. Using the steam_legacy branch also isn't ideal, because the lighting effects still will not work due to the renderer being deleted. No alternative to the renderer can really be done due to no efficient way of loading it without a potential delayed load or the -insecure method as I stated in the original post, or if a talented person in the community decided to update the renderer to work alongside the GL shaders.

It's up to mods programmers to implement the "delay load" mechanism for Windows and eventually an equivalent for Linux.

This is true, and I'm hoping that someone at Valve will take a look and determine if they want to implement something like this.