Making GZDoom GPL is a sensitive matter because the licensing is a mess and removing or replacing code will ultimately impact the user.
So, I was wondering: is it possible to make a fork of it and mess with the code without impacting the current state of GZDoom and make a proof-of-concept of a zdoom/gzdoom derivative that can be relicensed as GPL?
It would be ugly, but it could be a basis for future works.
In order to do that, and if I'm correct, we'll need to:
- remove Build code (mscinlines.h, gccinlines.h, asm_ia32/a.asm, r_polymost.cpp, r_things.cpp, r_segs.cpp, r_draw.cpp) => according to Ken Silverman, the opengl rendering doesn't use his code. Thus we'll have to disable the possibilty to set software rendering if we make a mess by removing it, right?
- remove oplsynth code => another ugly thing to do if I'm not mistaken.
Edit : *As fraggle mentionned, we could replace the OPL synth with the equivalent code from Chocolate Doom*
- replace FMOD Ex by OpenAL => perhaps the hardest task and the one that will impact the fork the most. Is it even possible? Will we have to ultimately dump out all of the sound thingies like SNES playback, reverb stuff or the music slider?
According to Randy back in 2008:
Wouldn't it be a start before other steps? I mean, the FSF wouldn't be happy but couldn't it make easier to finally dump out FMOD Ex?
IMO, you don't need to separate the FMOD code into a separate module. Just make the FMOD DLL delay-loaded and provide a fallback if it can't be found. Also make the code conditional so it isn't required for compilation. As long as a library it isn't required for a GPL program's operation, the library doesn't need to be GPL-compatible. That's my understanding of it, anyway.
Edit : *As Trasher][ mentionned, we could take a look on the active experimental branche of ZDoom that change the sound code to make a switch between FMOD Ex and OpenAL*
Speaking of that, I'd like to know how does this code interact with GZDoom... In short, a detailed roadmap to make this ugly proof-of-concept a reality. I'm not a programmer and my understanding of it is very limited (and I guess it shows!), but I'm eager to learn more about the possibilities.
Here is the OpenAL in ZDoom thread.
Here is the OpenAL branch.
Last edited by K!r4 on Jan 23 2012 at 13:15