dhewm / dhewm3

dhewm 3 main repository
https://dhewm3.org/
GNU General Public License v3.0
1.78k stars 346 forks source link

dhewm3 does not work with Perfected Doom 3 #149

Closed Sophist-UK closed 5 years ago

Sophist-UK commented 8 years ago

dhewm3 does not work with Perfected Doom 3 - says the mod dll (gamex86.dll as provided with this mod) is incompatible - then it tries to load the base dll and something is (understandably) incompatible.

Perfected Doom 3 works with the patched doom3.exe, so this is a issue of compatibility with dhewm3.

Which is a great pity because there are quite a few things that work better with dhewm3 and they would be a great combination if they worked together.

ghost commented 8 years ago

This isn't dhewm3's fault.

The problem is the developers aren't interested in publishing the source code of their mod, something that is required in order to make it work with dhewm3.

I know - I'm semi-active on the IdTech4 forum and developing a mod myself. I've extensively tried arguing that making the source available is beneficial for everyone, but so far it didn't do much but fall on deaf ears, sadly.

I must say this is a pretty frustrating aspect of this particular scene. It's small, it's divided in Classic and BFG edition camps, and the Classic camp so far hasn't shown a lot of goodwill towards the idea that source ports are Doom 3's future.

Sophist-UK commented 8 years ago

Not that I am any sort of expert, but I assume that dhewm3 is either making a call to the DLL that doom3 doesn't make or it makes a similar call but in a different way - and that the Perfected Doom DLL can't handle whatever this is.

Source code for Perfected Doom 3 is available here.

I am sure that you and VGames could fix this quite quickly between the two of you.

nbohr1more commented 8 years ago

VGames needs to work with DanielGibson on this fork:

https://github.com/DanielGibson/dhewm3-base-mods

ghost commented 8 years ago

Oh so he did publish the source in the meantime. That's great news. My nagging paid off :)

He didn't specify whether his code is GPL - a requirement for dhewm3 support.

I've just sent hem this message:

Hello mr VGames,

I want to say thanks for publishing your source code. Excellent. One thing that isn't clear is the license. The dhewm3 developer requires your code to be available under the GPL before it can be supported.

So, do you choose to publish your source under the GPL? If so, could you mention this on ModDB or as an included license.txt file?

Thanks a bunch again. Looking forward to be able to play your mod.

DanielGibson commented 8 years ago

Not that I am any sort of expert, but I assume that dhewm3 is either making a call to the DLL that doom3 doesn't make or it makes a similar call but in a different way - and that the Perfected Doom DLL can't handle whatever this is.

The interface to the mod dlls has changed slightly in dhewm3, due to types/classes being changed (for cleanup and 64bit compatibility). Furthermore, dhewm3 doesn't load <mod>/gamex86.dll (or however it was called) or those gameXXX.pk4 files, but uses <mod>.dll (or <mod>.so on Linux) next to the dhewm3 binary, like base.dll and d3xp.dll.

I hope to properly integrate mod support via https://github.com/DanielGibson/dhewm3-mods etc in the foreseeable future, when I have some time. But, as mentioned by RalfVB, I can only support mods that have their C++ Source released under GPL there, for licensing reasons.

Sophist-UK commented 8 years ago

Ah - so the <mod>.dll is not the same as <mod>\gamex86.dll - and someone (i.e. someone maintaining dhewm3) needs to take the code for the mod-specific gamex86.dll and turn it into <mod>.dll to make it work.

So I can see the difficulty now.

It seems to me that it might be better to publish how to make this conversion so that mod authors can provide <mod>.dll themselves. Not only would this take the workload off your shoulders and put support responsibility where it belongs, but it would also allow mod authors to associate specific versions of <mod>.dll for different versions of their mod (which would be difficult or impossible for you to do).

DanielGibson commented 8 years ago

https://github.com/DanielGibson/dhewm3-base-mods#readme has a short description on how to port a mod to dhewm3.

DanielGibson commented 6 years ago

In case anyone still cares about this: I've been working on a dhewm3 SDK, which will make it easier to build mods for dhewm3. It'll contain the same source files as the original SDK, but taken from dhewm3 (and thus licensed under GPL and not SDK license) and a cmake build file to build it.

The process of porting a mod to dhewm3 will be very similar to the old approach though: Make a diff between the mod source and the original SDK, and apply that diff to the dhewm3 SDK.

I hope I'll get that dhewm3 SDK into a releasable state next weekend, so people can toy with it. I'll add Classic Doom III and Dentonmod as examples, and Hardqore2 and probably Ruiner once I'm done with porting them (see also #198).

So about Perfected Doom3: If you can convince the author (and maybe whoever else contributed code to it) to agree to releasing it under GPL, I'd try to port that mod afterwards when I have some more time. @RalfVB did he answer to your message?

ghost commented 6 years ago

Unfortunately, no. Looking forward to the SDK, thanks for your efforts!

DanielGibson commented 6 years ago

The SDK is up at https://github.com/dhewm/dhewm3-sdk (currently only tested on Linux, I hope I get around to making sure Windows+Visual Studio will also work in the next days, if it doesn't already work..)

A pity VGames didn't answer.

ghost commented 6 years ago

Oh well, to be honest with you, I don't really like the guy anyway.

DanielGibson commented 6 years ago

I took a very brief look at perfected doom3 and it looks like it includes Sikkmod code.

Which takes us back to the old problem that Sikkmod wasn't released under GPL and Sikkpin (the author) hasn't been seen anywhere in the last 6 years :-/ I mailed him about two years ago, to the hotmail address mentioned in some README, but didn't get any answer.

ghost commented 6 years ago

Then I'd say go ahead and port it. Why not? You tried to ask him. Consider it like classic game emulation - legally not entirely in the clear maybe, but there's nobody around to care, only us to benefit. If he turns up and objects, you can always remove it. But why should he? The more people that can enjoy his work, the better, right?

Also I've been experimenting with the SDK for the last hour, managed to port the grabber from roe over to vanilla Doom 3. There's still a few glitches left (and for some reason using my compiled library with my changes runs much slower than an unmodified compile but that's probably an oversight at my end)

DanielGibson commented 6 years ago

That's not how licenses and copyright works, I'm not gonna risk that.

Maybe you're building it in (unoptimized) Debug mode and that makes it slow?

DanielGibson commented 5 years ago

nothing I can do about license issues

Destroyer5150 commented 3 years ago

Anyway to get this working yet?

DanielGibson commented 3 years ago

sikkpin still hasn't turned up, so no.

nbohr1more commented 3 years ago

"The Dark Mod" engine is a modified Doom 3 variant that features Multi-core CPU support, SSAO, Soft Shadows, 64-bit color and Bloom.

If someone is willing to port the TDM renderer to Dhewm and VGames is willing to replace Sikkmod with this alternate renderer then that would probably help lead the example for other Doom 3 mods that integrate with Sikkmod to migrate to a GPL licensed code base.

That said, TDM has diverged enough from standard Doom 3 that it might not be much easier to port our renderer than to port the RBDoom3BFG renderer. At least you can see the SVN \ Git history of the changes from vanilla to TDM though ( and we also incorporate some Dhewm3 changes).