All the documentation for compiling is published in the docs, which is in the common download.
No one has compiled the DOS port in ages. How they did it is probably obsolete.
I do not know who it was working on it, it anyone. It may simply be the interface that was inherited from the original code, which was DOS.
Please see current discussion at DoomWorld.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've been giving this a go over the last couple of days with a very up to date DJGPP cross-toolchain: GCC13, DJGPP from the actively maintained for on github. Allegro4 and libsocket from the last DJGPP packages. There were a lot of build errors. I worked through each one, fairly confident about most of them, but a few I managed to make compile, but didn't expect to work.
Anyway, unsurprisingly it didn't work. The console wasn't initialised, so I'll need to check if the DOS code for that is still there! Instead startup messages were printed in green text. After loading the wads the screen went black and the VM (dosemu2) became unresponsive.
I need to check whether my allegro build is actually working, so I'm going to test that next.
Should I attach my WIP patch? There are probably errors easily spotted by someone more familiar with the codebase.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Below is my WIP patch. It contains local changes to help me with cross-compiling in addition to the needed changes to make DOS build.
CD music needs to be reworked for the DJGPP version of libbcd. It's on my TODO list. I've disabled it until then.
Joystick support has also changed in the DJGPP version of Allegro compared to what was expected in the existing code, the API seems to been replaced at some point. I'll probably take a look at it if I can get the game to run. I have disabled building the DOS joystick support for now.
I have renamed the files to lower-case, since I'm building on Linux and it was causing problems with case insensitivity expectations in the DOS support code. As a consequence, in order to apply this patch the files need to be renamed first. I wanted to make sure the diffs were obvious against the original files instead of showing up as new files.
Thank you for the work. I see many things that I changed in the base code, and see that I missed updating the DJGPP port a number of times.
Changes to the makefile are not going to go smoothly.
Is that HOSTCC variable supported on DJGPP, gcc, vc, and all the other compilers, for the last 10 years. I have not seen it before.
That you need to introduce "-I ." is suspicious, as I thought that it was already covered in one of the other compile flags. It certainly compiles under gcc and DJGPP on my systems.
Some of these will have to be conditional on the version of DJGPP, as the older versions may still be needed for other systems.
On something this large and hitting on so many issues, I will be making appropriate patches by hand, and on some issues after investigating what has gone wrong and if something else needs fixing instead.
Also, there is also WATCOM as a possible compiler.
I don't think it is limited to just DJGPP anymore.
Last edit: Wesley Johnson 2023-08-26
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Attached are my planned patches to the code base.
They will be applied to SVN soon, unless you or I find an error in them.
You should use these as soon as possible.
All the documentation for compiling is published in the docs, which is in the common download.
No one has compiled the DOS port in ages. How they did it is probably obsolete.
I do not know who it was working on it, it anyone. It may simply be the interface that was inherited from the original code, which was DOS.
Please see current discussion at DoomWorld.
I've been giving this a go over the last couple of days with a very up to date DJGPP cross-toolchain: GCC13, DJGPP from the actively maintained for on github. Allegro4 and libsocket from the last DJGPP packages. There were a lot of build errors. I worked through each one, fairly confident about most of them, but a few I managed to make compile, but didn't expect to work.
Anyway, unsurprisingly it didn't work. The console wasn't initialised, so I'll need to check if the DOS code for that is still there! Instead startup messages were printed in green text. After loading the wads the screen went black and the VM (dosemu2) became unresponsive.
I need to check whether my allegro build is actually working, so I'm going to test that next.
Should I attach my WIP patch? There are probably errors easily spotted by someone more familiar with the codebase.
Below is my WIP patch. It contains local changes to help me with cross-compiling in addition to the needed changes to make DOS build.
CD music needs to be reworked for the DJGPP version of libbcd. It's on my TODO list. I've disabled it until then.
Joystick support has also changed in the DJGPP version of Allegro compared to what was expected in the existing code, the API seems to been replaced at some point. I'll probably take a look at it if I can get the game to run. I have disabled building the DOS joystick support for now.
I have renamed the files to lower-case, since I'm building on Linux and it was causing problems with case insensitivity expectations in the DOS support code. As a consequence, in order to apply this patch the files need to be renamed first. I wanted to make sure the diffs were obvious against the original files instead of showing up as new files.
Thank you for the work. I see many things that I changed in the base code, and see that I missed updating the DJGPP port a number of times.
Changes to the makefile are not going to go smoothly.
Is that HOSTCC variable supported on DJGPP, gcc, vc, and all the other compilers, for the last 10 years. I have not seen it before.
That you need to introduce "-I ." is suspicious, as I thought that it was already covered in one of the other compile flags. It certainly compiles under gcc and DJGPP on my systems.
Some of these will have to be conditional on the version of DJGPP, as the older versions may still be needed for other systems.
On something this large and hitting on so many issues, I will be making appropriate patches by hand, and on some issues after investigating what has gone wrong and if something else needs fixing instead.
Also, there is also WATCOM as a possible compiler.
I don't think it is limited to just DJGPP anymore.
Last edit: Wesley Johnson 2023-08-26
Attached are my planned patches to the code base.
They will be applied to SVN soon, unless you or I find an error in them.
You should use these as soon as possible.
Last edit: Wesley Johnson 2023-08-27