Page 1 of 8

[UPDATED] ZDoom32 2.8.5 (ZDoom is undead)

PostPosted: Fri Jun 30, 2017 5:05 am
by drfrag
It's released now. Download link:

I've released ZDoom32 2.8.5c (GL 1.9.4) SEP 29 2019 but i don't feel like writing a changelog anymore. See last page for some details. ...

ZDoom32 2.8.4a (GL 1.9.1b) APR 16 2018

ZDoom32 is a fork of truecolor ZDoom by dpJudas and Rachael and ZDoom 2.9pre (
It's a merge of dpJudas old truecolor branch (SEP 08 2016) and ZDoom master as of DEC 03 2016.
Later merged with the GZDoom g1.x branch (APR 24 2016).

Changes/features since 2.8.4:
- Fixed wrong alpha blending, this broke 3D floors in truecolor.
- Several bugfixes.
- Restored XInput support.

Changes/features since 2.8.3:
- Fixed generalized BOOM crushers not crushing.
- Fixed wrong weapon vertical position.
- Fixed security issues (execution of unsafe commands and ACS stack checking).
- Lots of official bugfixes.
- More compatibility fixes.

Changes/features since 2.8.2b:
- Fixed crashes on some old CPUs in software due to a broken asm routine.
- Fixed Doom turbo stairs not working anymore.
- Changed savegame list order, now they are sorted by slot number instead of alphabetically.
- Added free space margin aka safe frame for automap.
- Several bugfixes from GZDoom.

Changes/features since 2.8.2a:
- Fixed savegame bug on maps with dynamic lights.
- Don't hide the console when killing specific monster classes.
- Several minor bugfixes.

Changes/features since 2.8.2 GL:
- Added truecolor capped sky drawers.
- Added new 3x2 and 4x4 low detail modes.
- Increased size of the savegame comment area.
- Fall back to software renderer with unsupported OpenGL version.
- Fixed crash with voxels for the SSE2 executable (BD v21).
- Fixed crash with textures larger than those supported by the hardware in D3D and OGL (BD v21).
- Fixed crash with capped sky mode and very wide skies (Castlevania).
- Added four text colors: ice, fire, sapphire, teal.

Changes/features since 2.8.2:
- Included old OpenGL renderer from GZDoom 1.9.1 (off by default). Supports shaders on GL2 hardware.
- Added xBRZ to the GL renderer.
- Autoloading of brightmaps.pk3 and lights.pk3.
- added new Stairs_BuildUpDoomCrush special from Eternity.
- Switched to FMOD Ex 4.36 for sound.
- Fixed wrong weapon scale in savegame pic for low detail modes.
- Some recent GZDoom bug fixes.

Changes/features since 2.8.1:
- Old C++ truecolor renderer by dpJudas.
- Mostly up to date with the last ZDoom SVN and includes some later fixes and features (from QZDoom).
- Compiled with Pentium II architecture optimizations.
- Still has the assembly routines and SSE2 is not a requirement.
- Two executables, the one using SSE2 instructions requires a Pentium 4 or Pentium M CPU.
- Sprite and wall distance culling to increase performance.
- Low detail modes have been restored (from ZDoom LE) but are disabled for truecolor.
- Added video menu options to switch between d3d and ddraw and set ddraw display bits (ZDoom LE).
- Startup console fixed for Win98 (ZDoom LE) with a slightly different look.
- More modern default keyboard layout.
- Command versions of the original Doom cheats.
- Uses FmodEx 4.28 for sound.(*)
- Capped skies have been disabled for truecolor since there are no drawers. No support for truecolor textures either.
- Multithreading is disabled by default.
- No xinput joystick support.

Minimum estimated system requirements are: Pentium II 233, 32 mb of ram, 1 mb svga card and Windows 98.
For OpenGL mode a graphics card with GL 2.0 support is required.

(*) For modern windows i recommend CoolSoft VirtualMIDISynth with the following soundfonts: Roland SC-55,
Yamaha DX50XG and AWE64 Gold from
A good alternative is the Yamaha S-YXG50 Portable VSTi software synth at

NOTE: On Windows 8 and above trying to go fullscreen on some systems when using ddraw you may get a black screen,
a batch file (RUNME_SAFE.cmd) is included for convenience.
Some letterboxed modes don't display properly and they might even crash on ddraw.
With old graphic drivers on win9x d3d might crash, update your drivers or set 'vid_forceddraw' to true.
3D floors are not properly rendered in truecolor (missing textures).

The source code can be downloaded from

Compiles with CMake 2.8.12, CodeBlocks 16.01 (TDM-GCC 4.9.2) and NASM 2.10.09. You'll need the following libraries:, fmodapi43623win-installer.exe and fluidsynth.7z (optional).
Run CMake to generate a CodeBlocks makefile, you can link directly against the dlls but not for DX (dinput).

Copyright © 1993-1996 id Software, 1998-2016 Randi Heit, 2002-2017 Christoph Oelckers, et al.
Copyright © 2016-2017 Magnus Norddahl and Rachael Alexanderson.
Copyright © 2014-2017 Alexey Lysiuk.

This version maintained by drfrag from Includes patches by Blzut3 and hail-to-the-ryzen.

More stuff from drfrag:
ZDoom LE 2.8.3a, a fork of the ZDoom 2.8.1 maintenance branch for Windows 9x and old machines.
ZDoom CLASSIC 2.1.4a, a fork of ZDoom 2.1.4 for Windows 9x and pentium machines.
Romero's Heresy II, an universal ZDoom mod to play Heretic levels with Doom and Heretic modified weapons and monsters.
Romero's Heresy 0.15, a conversion of all the Heretic levels to Doom II.
My Brutal Doom v20c unofficial patch. ... cy-edition

Old original post follows:

I've just released a new project, i've been practicing git and tortoisegit recently with this. Well, i created a new branch from the end of dpJudas old truecolor branch in QZDoom, then created another one from ZDoom just before the asm removal and finally merged this one into the former.
This comes out of historical interest and to keep Randi's legacy alive at least for the time being. It's a more modern codebase and should be easier to maintain, however there has been a major refactoring of the engine recently.
I've been cherry-picking where posssible but i had to apply other patches manually as you can see.
This one could be considered dpJudas' bastard son or the father of QZDoom. :)

Someone suggested to replace ZDoom with the LE version in the downloads page but that version was never meant to replace the official one (the maint branch dated from march 2016 with some later fixes after all and was very similar to 2.8.1). Some wanted to have the latest SVN as well, this is not the latest but i've added later fixes and even some features (some of them from QZDoom).

I had some problems with the merge, i had to fix a couple of files later (r_segs.cpp and r_things.cpp) following the history using diffmerge, there were rendering problems. The interchange of code between the two ports gave me a hard time with these.
As a side note the merge between LE and GZDoom 1.8.3 (Frankie, gzdoomle branch) was a failure while it was pretty straightforward (i still don't know what happened, just no rendering upon map start after creating gl nodes, i don't know what goes next).

I've tagged this one as a pre-release but apparently runs fine. Is still has the asm and SSE2 is not required (but an SSE2 executable is included as well).
There are some problems and limitations as stated on the readme (it's the old C++ version of the renderer) regarding capped and double layer skies and multithreading, no truecolor texture support. Also i think portals were mostly broken back then. Of course no ZScript. Readme follows.
Opinions? Suggestions?

Re: ZDoom32 (ZDoom is undead)

PostPosted: Sat Jul 01, 2017 3:33 am
by drfrag
Could someone try this on a fast pentium 3? I'd like to know if the truecolor renderer is actually playable @640 without SSE2, i bet it will be on an athlon xp. Also i wonder how the renderer floatification affects performance on a pentium 2.
Some more things:
I backported the the fix for the melee weapons from ZScript of course, that one was important.
I applied Rachael's fix for dual layer skies however they were screwed and i reverted it, don't know why.
Any idea on how to make capped skies work in truecolor with the paletted drawers?
I've adjusted the view angle depending on sky mode, i've reduced the looking down angle to 48 since things looked distorted.
According to Rachael there were problems with multithreaded drawing then, that's why i've disabled it by default.

Re: ZDoom32 (ZDoom is undead)

PostPosted: Mon Jul 10, 2017 4:53 am
by drfrag
Multi layer skies are fixed now (thanks to Rachael) so expect a proper release soon. I forgot to apply a previous commit.
I've tried to run the truecolor renderer on a pentium 3 but apparently direct3d requires at least win2k since it crashes on win98. I removed my voodoo 3 and put a geforce fx 5500 in with the forceware 56.64, directx 9.0c is required BTW. Now the 3dfx card is back.
The official 2.8.1 crashes as well. I'm considering disabling direct3d support for win98 and ME. I wonder if anyone has ever managed to run ZDoom on 98 with direct3d. I've started a poll.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Wed Jul 26, 2017 2:14 am
by drfrag
I've just released a final (non pre-release) version, see first post. Lots of new stuff.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Sun Aug 06, 2017 4:15 am
by drfrag
Finally i've managed to test this with the direct3d backend on win98. It was definitely a crappy driver problem.
My card is a geforce fx 5500 and it works with forceware 77.72. With truecolor on a p3 @1 ghz i get 32 fps @640 so it's definitely playable with the default screen size. Of course @320 it's much faster, i get pretty much the same performance as the paletted renderer @640 and that's close to 100 fps.

I've tested the 1.8.4 GL renderer of the future GZDoom LE on this p3 and runs pretty fast, way over 100 fps but it's not a fully optimized build. This is with OpenGL 2.0 BTW. Out of curiosity i've tested an experimental win98 GZDoom build (around 2.2) and runs like shit (around 4 fps with the legacy render path). On a modern machine i get pretty much the same performance with both renderers and they are fast.

@Graf Zahl:
I wonder how would 1.9.1 run on old cpus (i guess poorly as well) and if that renderer would make much of a difference in quality on GL 2.1 cards compared with the legacy path (i haven't seen it with my cards). I could try merging the old 1.9 GL renderer into ZDoom32 but i don't think it's worth.
Edit: which features (GLDEFS) would i need to port (if possible) to the 1.8.4 renderer to keep it compatible with 1.9.1? (the contemporary version to ZDoom 2.8.1).

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Mon Aug 07, 2017 6:23 am
by Graf Zahl
The main difference between 1.8.4 and 1.9.1 is the removal of GL 1 support, the basic approach has not changed.
From your experience it sounds like rthe card has problems with rendering from arrays, that is something I also experienced with the GF 5900 many years ago with some driver versions.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Wed Aug 09, 2017 5:16 pm
by drfrag
I've updated the release since somehow i missed a couple of fixes for the savegame code, but i think those problems were pretty uncommon tough.

@Graf Zahl: thanks for the info. I decided to bite the bullet and merge the end of the g1.x branch (APR 2016) into ZDoom32. I read something about _mental_ reviving the 1.8 branch and i guess then maintenance works continued there. It's up and running but i still need to check some things. Bad news is performance is still the same as on 2.2 with the geforce fx even with a later driver (81.65). The wipe takes up to a minute while 1.8.4 was overall pretty fast.
There's a nasty bug, i don't know if this is something known that was fixed eventually. The fonts get screwed upon changing video mode but only after starting a game and not always. There are only some characters left, happens on the console as well.
Of course i lack the skill to fix this, i don't even know were the problem could be. Any help from the devs would be appreciated.


I've uploaded it here:

Edit: compiles with gcc 4.9.2.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Thu Aug 10, 2017 2:22 am
by drfrag
I've investigated a bit and i'm pretty sure this is not a bad merge. It happens after changing resolution two or more times (even the same video mode). If the status bar is on and you keep selecting modes eventually some numbers and faces appear instead of the small font characters. Any clues? Thanks in advance.
This version is actually a bit faster on my ati x1250 (compared to 2.2) but i keep getting a fragment shader not linked error (as always).

Just to clarify things i don't plan calling this GZDoom32, i guess Graf doesn't want more GZDoom bastard ports around. After all i think GZ stands for Graf Zahl's Doom and this would not be released by the man himself. I would keep the ZDoom32 name. 8-)
@_mental: since i guess you know this code well i could send you an invitation from GitHub. :wub:


Edit: there are even monster sprites and small titlepics instead of the characters, crazy. Only the open stuff (console or menus) is screwed.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Fri Aug 11, 2017 1:10 am
by _mental_
Hard to say with what I can help you because for me it renders without any issues. At least using OpenGL 4.5 I cannot reproduce them.
Probably I can try on PowerPC Mac which supports only OpenGL 1.5 but honestly it's pain in a butt to debug something there.

Also, gzdoom.pk3 is created during build but zdoom.pk3 is loaded instead.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Fri Aug 11, 2017 1:53 am
by drfrag
Thanks very much! I really appreciate your help.
For me zdoom.pk3 is created, i changed wadsrc/CMakelists.txt. Are you using MinGW?
So when you set resolution several times in the menu the fonts won't get corrupted? I don't know what's going on i've tested
two different GL 2 cards (nvidia and ati) and both show the problem. I guess that part of the code must be the same for all cards?
In case this is not a driver problem could you please give any clue of where to look at to track changes?
I find this old engine interesting since on my crappy integrated video i get 190 vs 160 fps of the legacy path. Also 1.9.1 didn't run very well on XP and this one would run on 98 and 2000 too. And this would take feature level from FEB to DEC 2016.
I will have a limited internet connection very soon and that's becouse i'm a poor man.

Edit: i've just changed CMakelists.txt as well. This one requires OpenGL 2.0, it's the gzdoomle branch the one that requires GL 1.2.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Fri Aug 11, 2017 1:55 am
by dpJudas
Based on the screenshot alone, my bet would be textures that are not power of two. Or textures that have no mipmaps while using a filter mode that isn't nearest or linear. That's the usual suspects when it comes to white textures. Since it doesn't happen on OpenGL 4.5, it makes it far more likely to be a power-of-two texture problem as NPOT2 textures are allowed there.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Fri Aug 11, 2017 2:00 am
by drfrag
Thanks very much, that problem wasn't there for sure in 1.9.1. Changing filtering mode has no effect. So do you know where should i look at to track changes? (which function or at least module). Only happens after changing video resolution twice even on windowed modes.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Fri Aug 11, 2017 2:52 am
by dpJudas
I don't know the old GZDoom codebase at all, so I can't really give hints on what it did back there. But if you want to test the NPOT theory, find the places in the source code where it calls glTexImage2D and verify that the width/heights passed in are always a power of two. If they are not, then that is your problem.

Edit: just noticed you said this was happening with window changes. The only way I could see that affecting anything is if it is using invalid OpenGL texture handles after the window change. You could toss in some calls to glGetError() and see if something is rotten. In any case, good luck with it!

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Fri Aug 11, 2017 5:00 am
by drfrag
I've just tested it on my Radeon HD 4650 with GL 3.3 support and the problem is there, fonts get screwed after changing video resolution two or more times.
However the display quality setting works with 2.2 (unrelated).

@_ mental_: are you sure it's not happening to you? You need to change video mode at least twice for it to happen.

Edit: seems like the fonts are not being read properly, everytime i change the resolution characters change. Some numbers are missing in the HUD while others are not. It's like fonts are being read from a wrong memory area and different characters, graphics or junk are shown.

Edit2: @_mental_: Thanks for your efforts, are you sure you have compiled the right branch (gzdoom32)? Since there's another one named glzdoom32 which is a merge with GZDoom 2.2 (modern engine) i did earlier and that one runs fine albeit slower and has no shaders on old cards. Do you get the GL version info with gameversion?
I can't find where the problem is but i still think fonts are read from a wrong memory location after switching video mode.

Re: [RELEASED] ZDoom32 2.8.2 (ZDoom is undead)

PostPosted: Sun Aug 13, 2017 4:26 am
by drfrag
@_mental_: did you manage to reproduce the issue? I updated the previous post. It happens when changing video mode twice but only after starting a new game. I guess must be some ZDoom change requiring an adjustment but i'm lost, might be already in the g1.x branch. The 2d drawing code was refactored soon after.
I could provide a test build later. Thanks again.