VOGONS

Common searches


Zdoom fork?

Topic actions

First post, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Zdoom recently ceased development this month, and the current developers have been sabotaging Win98 support in favor of "modernity" (i.e. VS2015 libraries, requiring Win7+, dropping old working 8bpp software renderer and its optimizations, etc), being hypocritical about the "i fit ain't broke don't fix it" adage with new futurecreep.

so.... is there anyone here interested in a W9X maintenance fork? 2.8.1 works on Win98 with a few minor bugs at least. It can't currently work on Win95 due to the FmodEx and OpenAL dependencies.

Things I can think of happening:

- Making it easier to compile with MinGW without needing Cmake
- Reversing the ASM removal
- Using colormap+additive for additive actors rather than a slow imprecise 15bpp table (fixing the black blend bug)
- using transtabs (fixing imprecise translucency in Heretic/Hexen/Strife)
- Restoring r_detail
- Some W95-compatible sound backend that sucks nowhere near the CPU FmodEx does. (sdl_mixer?)

Last edited by leileilol on 2017-01-25, 01:53. Edited 8 times in total.

apsosig.png
long live PCem

Reply 1 of 94, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie

I'm no software developer but I am interested in a legacy Win9x compatible zdoom.

“I am the dragon without a name…”
― Κυνικός Δράκων

Reply 3 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

zdoom 2.4.0 builds with cmake and mingw/gcc46, but has a dependency on Fmod (v42416 for win32) which is not compatible with Win95. Attached patch to remove dependency on directx9 and xinput so that directx8 (dinput8, ddraw, and dxguid) is the dependency. However, compiling assembly files with nasm.exe leads to a binary that is not working. Tried with more recent builds but there are additional dependencies on more recent Windows API. I also created traditional makefiles for this version, although not fully tested.

Instead, the zdoom 2.2.0 binary release is Win95 compatible. The last version compatible with Win95 is r788. It is dependent on Fmod v3. Moreover, these versions have mingw makefiles.

One strategy is to build a working binary from r788 and then identify mods of interest that are dependent on versions later than v2.2.0. The commits are on github, so it would require less debugging work to find the relevant commits and patch the r788 version. A complementary approach is to create a difference file between r788 and a recent version, and then carefully apply changes which do not impact the Win95 compatibility of the audio and other win32 systems. This way a zdoom 95-compatible binary can be developed in parallel with others, and tested easily, along with a simple way to revert issues. It also provides a simpler way to edit the known working makefiles.

Attachments

  • Filename
    zdoom240-mingw.zip
    File size
    7.25 KiB
    Downloads
    128 downloads
    File comment
    zdoom240 code to remove dx9, xinput dependency
    File license
    Fair use/fair dealing exception

Reply 5 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

zdoom v2.7.0 may provide satisfactory compatibility with most mods. That is ~5 year gap from v2.2.0 and around 2700 unique commits. Perhaps apply commits and parts of commits that don't affect the win32 directory, at least initially. A build could be tested for error every 20 commits. It would require time and help, but it would result in a working build with some level of capability. It also shouldn't require extensive knowledge of the zdoom engine. If there are issues along the way with the Windows API, then ptitseb's branch may be used as a reference to correct it.

Reply 6 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

Attached zdoom v271 built by mingw32/gcc46, included binaries and patch to remove directx9 and xinput dependencies in zdoom v271 source code. Instead, mingw32 dx8 headers and libraries are used. The cmake system has a GUI based tool to create the makefiles. Currently dependent on fmodex, but the commit that follows zdoom r788 is a reference to revert from fmodex to the Win95 compatible fmod library.

Attachments

  • Filename
    zdoom271-mingw.zip
    File size
    3.15 MiB
    Downloads
    131 downloads
    File comment
    zdoom v271 + dx8 patch
    File license
    Fair use/fair dealing exception

Reply 7 of 94, by dondiego

User metadata
Rank Member
Rank
Member

This looks pretty interesting, reminds me of ECWolf legacy version. ZDoom 1.7.1 is capable of running recent mods (at least runs BD 20) and was stable, on the other hand 2.8.1 had the broken chainsaw. We need to get ultra low detail back as well.
I've been testing 2.2.0 in windows 7 and runs fine, the lowest resolution i can get is 320x240 but it's okay.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 8 of 94, by gerwin

User metadata
Rank l33t
Rank
l33t

I had this version stored for Windows 98: gzdoom.exe version 1.0.21.340, 03-10-2006. The reason being a regression regarding the midi music: Midi Playback Failure (Windows 98). I disassembled most of my systems for recapping, so I cannot really test it. Wonder if the issue is still there...

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 9 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

Attached openal branch of zdoom (approximately v271) built by mingw32/dx8/gcc46 -- included binaries along with the patch which was applied against the openal branch. The included openal binary requires "SHGetSpecialFolderPath". That function is available in shell32.dll, reportedly v4.71+. That should require IE4 with active desktop in Win9x.

The openal binary was downloaded from that linked location. Also, modified code so that cache directory is in program directory in all cases; and originally was the default for Win9x only. User accepts sole responsibility for use of these binaries.

Attachments

  • Filename
    zdoom271-oal-mingw.zip
    File size
    2.94 MiB
    Downloads
    111 downloads
    File comment
    zdoom v271 + dx8 patch + openal
    File license
    Fair use/fair dealing exception

Reply 10 of 94, by dondiego

User metadata
Rank Member
Rank
Member
gerwin wrote:

I had this version stored for Windows 98: gzdoom.exe version 1.0.21.340, 03-10-2006. The reason being a regression regarding the midi music

I've tested GZDoom 1.3.17 (based on ZDoom 2.3.1) and it works on win 98 with old graphics cards (requires OpenGL 1.2). The issue with system midi is still there. GZDoom 1.4.08 shows an error message in chinese! and crashes but should work with KernelEX. Old versions of GZDoom can still be downloaded.

blue-green-frog wrote:

Attached openal branch of zdoom (approximately v271) built by mingw32/dx8/gcc46

Great, i guess going back to Fmod was not that easy. Getting rid of the SHGetSpecialFolderPath requirement should not be complicated right? And getting r_detail back should be pretty straightforward.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 11 of 94, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

"SHGetSpecialFolderPath" Looks like OpenAL uses that for the config file.

Anyone object to getting rid of the requirement?

If it's not needed then removing it would remove the requirement for active desktop on 95 and NT4.

How To Ask Questions The Smart Way
Make your games work offline

Reply 12 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

Attached binaries of openal branch of zdoom (~v271) built by mingw32/gcc46. Same patch as in previously posted archive, but configured with midi only. User accepts sole responsibility for use of these binaries.

Attachments

  • Filename
    zdoom271-midi-mingw.zip
    File size
    2.46 MiB
    Downloads
    129 downloads
    File comment
    zdoom v271 + dx8 patch + midi
    File license
    Fair use/fair dealing exception

Reply 13 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

Built openal-soft-1.12.854 and attached binaries along with zdoom. Sound and midi work in Win95, but openal is not very stable in an emulator because of a presumed dependence on multithreading. Once the sound is initialized, then the video mode shouldn't be changed.

On starting zdoom, I follow these steps in order:

1. Under sound options, change "midi device" by pressing right arrow (probably once) to change fmod (not installed) to a working device such as: Creative Music Synth [220]

2. For playback device under "openal options", change default to "directsound software". Also, turn off "enable efx".

User accepts sole responsibility for use of these binaries.

Attachments

  • Filename
    zdoom271-oal-mingw-95.zip
    File size
    2.9 MiB
    Downloads
    128 downloads
    File comment
    zdoom v271 + dx8 patch + openal-soft-1.12
    File license
    Fair use/fair dealing exception

Reply 14 of 94, by dondiego

User metadata
Rank Member
Rank
Member

@blue-green-frog: Thanks, have you modified OpenAL to remove that requirement? And how?

So is anyone going to fork this? In case someone's interested the commit when r_detail was removed is the following one (i think some changes would need to be reverted in v_video.h, v_video.cpp, r_draw.h, r_draw.cpp and m_options.cpp).

https://github.com/coelckers/gzdoom/commit/dd … 4539918aca44aa3

I think may be sound defaults should be changed (where are they?) and the FMOD menu option removed.
So how i compile this damn thing? I've got Dev-C++ 5.11 with TDM-GCC 4.9.2, openal-soft and cmake 2.8. Do i need something else? How do i apply diff patches? It's been years since i coded something and i don't know a shit about Git by the way.
Edit: i downloaded dx80_mgw.zip and NASM 2.10 as well.

Last edited by dondiego on 2017-01-26, 21:15. Edited 2 times in total.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 15 of 94, by gerwin

User metadata
Rank l33t
Rank
l33t
dondiego wrote:

The issue with system midi is still there.

Thanks for checking!

Great idea to make ZDoom more backwards compatible, I won't miss the modern dependencies.
As for me; I committed myself in some degree to the MBF 2.04 port, and failing to find time for that already: I won't be doing much with ZDoom besides then playing it.

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 16 of 94, by blue-green-frog

User metadata
Rank Newbie
Rank
Newbie

Attached binaries of openal branch of zdoom (~v271) built by mingw32/gcc46. Included previously posted patch for zdoom; and a second zdoom patch with changes to openal default settings and removal of unused menu items from the sound menu. These changes may provide some additional stability to zdoom while openal is loaded. User accepts sole responsibility for use of these binaries.

On starting zdoom: under sound options, change "midi device" by pressing right arrow (probably once) to a working device such as: Creative Music Synth [220].

The openal binary (v1.12.854) was built from unmodified source code.

Edit: the active desktop requirement seems to extend beyond the shell32 dependency. Also, suggest that video card has 4 mb of ram, otherwise there is less stability in zdoom, particularly where changing video resolution. In addition, suggest that system ram is at 192 mb or higher.

Attachments

  • Filename
    zdoom271-oal-mingw-95-2.zip
    File size
    2.69 MiB
    Downloads
    110 downloads
    File comment
    zdoom v271 + zdoom patches + openal-soft-1.12
    File license
    Fair use/fair dealing exception

Reply 17 of 94, by dondiego

User metadata
Rank Member
Rank
Member

Thanks again. I never install the desktop update on win 95. Have you tried any older version of OpenAL like 1.9? (i don't know the requirements of openal versions).
That video memory requirement seems strange, is not stable with less ram even @320x200? And that's a lot of system ram for win 95. I still need help to compile this.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)