VOGONS


ZDoom LE (Legacy Edition)

Topic actions

First post, by dondiego

User metadata
Rank Member
Rank
Member

Finally i've released this @GitHub, now i'll copy the readme file. 😀

https://github.com/drfrag666/gzdoom/releases

I've released ZDoom LE 2.8.3 (GL 1.8.4c) JUL 11 2018 but i don't feel like writing a changelog anymore, it's an important update with several bugfixes (one major old ZDoom bug) and more stuff.

----------------------------------------
ZDoom LE 2.8.2a (GL 1.8.4b) APR 10 2018
----------------------------------------

ZDoom LE (Legacy Edition) is a fork of the ZDoom 2.8.1 maintenance branch (https://github.com/rheit/zdoom/tree/maint) for Windows 9x and old machines. Now merged with GZDoom as of august 2013.

Changes/features since 2.8.2:
- Added light definition for megasphere.
- Added unexploredsecretcolor variables to mark undiscovered secrets differently in the automap.
- Several bugfixes.
- Fixed GL performance regression.
- Restored XInput and FluidSynth support.

Changes/features since 2.8.1b:
- Changed savegame list order, now they are sorted by slot number instead of alphabetically.
- Added hqNx MMX HQ resize modes to the GL renderer.
- Fixed security issues (execution of unsafe commands and ACS stack checking).
- Lots of official bugfixes.
- More compatibility fixes.
- Not optimized for ancient hardware anymore.

Changes/features since 2.8.1a R3:
- 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 textures larger than those supported by the hardware in the D3D backend (BD v21).
- Added an option to add elements to an existing options menu.
- Added four text colors: ice, fire, sapphire, teal.
- Several more old bugfixes not present in the maint branch.

Changes/features since 2.8.1a R2.1:
- Included old OpenGL renderer from GZDoom 1.8.4 with later fixes (off by default). Requires GL 1.2 support.
- Added xBRZ scaler to the GL renderer.
- Autoloading of brightmaps.pk3 and lights.pk3.
- More modern default keyboard layout.
- Command versions of the original Doom cheats.
- Render cull options (sprite and wall distance) to increase performance.
- Fixed skies during the wipe and wrong weapon scale in savegame pic for low detail modes.
- added MF7_NOINFIGHTSPECIES flag.
- More iwad compatibility fixes.
- Some important ZDoom fixes not present in the maint branch.
- Switched to FMOD Ex 4.36 for sound.
- Updated Game-Music-Emu library.

Changes/features since 2.8.1a R2:
- Fixed bug introduced in the maint branch, A_SpawnItem was broken.
- Fixed the timing of Heretic's lava damage.
- Added some wad compatibility fixes mainly for the Doom II, Doom and Heretic iwads.
- Added WadSmooth iwad support.

Changes/features since 2.8.1a:
- Restored Direct3D renderer.
- Fixed sky scaling in low detail modes.
- Added video menu options to switch between d3d and ddraw and set ddraw display bits for compatibility.
- Usernames for ini files are back on win2k and later.
- Proper startup banner modification.
- More engine defaults changed for performance.
- Some more official fixes.
- Now compiled for pentium ii architecture but there's no performance difference.

Changes/features since 2.8.1:
- Includes later fixes from the maint branch and some more.
- Compiled with pentium architecture optimizations.
- Low detail modes have been restored. Added a new quad horizontally and double vertically mode for a somewhat retro look, you can get the original low detal mode from 640 and it's playable even @320. Unfortunately it gives the same performance as doubling horizontally and vertically.
- A more retro looking startup console.
- Engine defaults changed for slower machines.
- Runs on windows 95 but without the startup log.
- No direct3d nor xinput joystick support, only classic directdraw mode.
- Uses a modified openal compatible with windows 95 as sound backend.
- Compiled without fmodex support but should work, it's untested though. Fluidsynth doesn't work with openal and
could even crash on certain machines so no fluidsynth support either.
- Hardware midi doesn't work on modern windows versions, it does on win9x.(*)
- If you experience sound problems on very slow machines try reducing the sound channels to 8.
- To set the default video mode on pentiums sometimes you need to press enter twice.

Minimum estimated system requirements are: Pentium 133, 16 mb of ram, 1 mb svga card and windows 98.
Tested on a Pentium 90 with 32 mb of ram and a trident 1 mb graphics card on win95c, i get 22 fps @320x200.
Don't try to turn on rendering interpolation on a pentium mmx, it's extremely slow.
For OpenGL mode a graphics card with GL 1.2 support is required.

(*) For modern windows i recommend CoolSoft VirtualMIDISynth with the following soundfonts: Roland SC-55, Yamaha DX50XG and AWE64 Gold from Soundfonts that mimic old hardware (SC-55, DX50XG, AWE64 Gold).
A good alternative is the Yamaha S-YXG50 Portable VSTi software synth at http://veg.by/en/projects/syxg50/.

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.

The source code can be downloaded from https://github.com/drfrag666/gzdoom.

Copyright © 1993-1996 id Software, 1998-2016 Randi Heit, 2002-2017 Christoph Oelckers, et al.
This version by drfrag from zdoom.org, blue-green-frog from vogons.org, dondiego and hail-to-the-ryzen.
Note that blue-green-frog and hail-to-the-ryzen might be the same person, same for drfrag and dondiego.

More stuff from drfrag:
ZDoom32 2.8.4a, a fork of truecolor ZDoom by dpJudas and Rachael and ZDoom.
https://github.com/drfrag666/gzdoom/releases
ZDoom CLASSIC 2.1.4a, a fork of ZDoom 2.1.4 for Windows 9x and pentium machines.
https://github.com/drfrag666/gzdoom/releases
Romero's Heresy II, an universal ZDoom mod to play Heretic levels with Doom and Heretic modified weapons and monsters.
http://www.moddb.com/mods/romeros-heresy-ii
Romero's Heresy 0.15, a conversion of all the Heretic levels to Doom II.
http://www.moddb.com/mods/romeros-heresy
My Brutal Doom v20c unofficial patch.
http://www.moddb.com/mods/brutal-doom/addons/ … nofficial-patch

Alternative final release without the GL renderer for Windows95:
https://github.com/drfrag666/ZDoom-LE/releases

Old original post follows...

Some food for thought:
After adding the low detail modes there was a crash on certain maps with tall skies, i think this was due to a race condition on small maps such as Heretic E1M1 so R_InitSkyMap() was being called too late.
The quad mode didn't work properly (only showed one third of the screen) when done "the right way", picking every one out of four pixels from the framebuffer (creating a 80*100 virtual screen) and copying it four times, so i had to create another 160*100 virtual screen like in the double mode and then travel it increasing the x by two units at a time to pick half of the pixels. I don't think it matters.
This apparently runs well, i've tested with original Doom 2 and that damned Heresy project (all Heretic levels in Doom 2) plus Brutal Doom 20 but needs more testing.

Last edited by dondiego on 2018-07-19, 18:24. Edited 18 times in total.

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

Reply 2 of 63, by dondiego

User metadata
Rank Member
Rank
Member

I should have done so but i only wanted to fork the maint branch. I can apply patches but it's a bit tricky. Anyway it's possible to create a branch from this repo on a new one.
Have you tried it by the way?

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

Reply 3 of 63, by dondiego

User metadata
Rank Member
Rank
Member

I don't see much interest in this, however i've released another old ZDoom version for 486 machines.

ZDoom CLASSIC

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

Reply 4 of 63, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

You're catering to a niche of a niche. Probably would get more response on a Doom specific forum.

Thanks for working this though I'm definetly interested.

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

Reply 6 of 63, by leileilol

User metadata
Rank l33t++
Rank
l33t++
DosFreak wrote:

You're catering to a niche of a niche. Probably would get more response on a Doom specific forum.

On a Doom-specific forum these days, the response would be "what the point play gzdoom it work with brutal doom best 4k graphics who clare slow computer!!! upgrade to windows 10 to play doom THREAD CLOSED"

apsosig.png
long live PCem

Reply 7 of 63, by dondiego

User metadata
Rank Member
Rank
Member
DosFreak wrote:

You're catering to a niche of a niche. Probably would get more response on a Doom specific forum.

I already knew that, actually i've posted it at doomworld and at least they've not locked the thread.
Hope the classic version actually runs well on a 486, it should.

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

Reply 9 of 63, by keropi

User metadata
Rank l33t++
Rank
l33t++

I will check it out on my 233mmx , always nice to have stuff like that 😁

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 10 of 63, by dondiego

User metadata
Rank Member
Rank
Member

Big update, i actually wasn't very happy with the old release. Now direct3d works while maintaining win95 compatibility. I've edited the first post.

I want to comment something on the quad mode algo. At last i think i know how the original double one worked. It copied the first half of the screen onto the second, i got it right after all (copying half of the pixels) but i could also have copied the first quarter onto the second, third and fourth. Performance wise it could have been even worse. It's very difficult to see what was going on there without any commentary.

Last edited by dondiego on 2017-04-09, 00:19. Edited 1 time in total.

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

Reply 11 of 63, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

Do this "brutal-doom" stuff work with this classic release, or is it possible to get a low-end-brutal-doom-fix for a classic pentium(mmx)/pentium2 win9x machine.

Retro-Gamer 😀 ...on different machines

Reply 12 of 63, by dondiego

User metadata
Rank Member
Rank
Member

The brutal doom v20c patch is only required for new GZDoom versions but has more bugfixes so i recommend it anyway. ZDoom LE of course can run brutal doom 20 but it's barely playable on a pentium ii, it will be surely too slow on a pentium and i guess it will require at least 64 mb of ram. BTW 2.1.4 classic it's much faster on a pentium.
@keropi: i strongly recommend you to upgrade to the new version.

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

Reply 14 of 63, by dondiego

User metadata
Rank Member
Rank
Member

Of course not but brutalv20c_UP.pk3 already enhances performance since decreases the number of particles for water splashes. I'm planning another completely unrelated mod BTW.

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

Reply 15 of 63, by dondiego

User metadata
Rank Member
Rank
Member

I've just uploaded a new release, i've flagged it as important due to the A_SpawnItem bug of the maint branch i've noticed recently.

Changes/features since 2.8.1a R2:
- Fixed bug introduced in the maint branch, A_SpawnItem was broken.
- Fixed the timing of Heretic's lava damage.
- Added some wad compatibility fixes mainly for the Doom II, Doom and Heretic iwads.
- Added WadSmooth iwad support.

https://github.com/drfrag666/ZDoom-LE/releases

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

Reply 16 of 63, by koverhbarc

User metadata
Rank Member
Rank
Member

I finally found this. More progress - is this the last version you think necessary? I've finally tried it out and had something of an adventure.

First, you do have a binary version available. I either missed it before (most likely) you you just added it. This is what I first tried. I also compiled it myself, using your instructions and some help from the wiki, with several combinations of OpenAL, FMod, and Fluidsynth, trying to see if they'd make a difference in the sound; I could detect none that I was sure of.

The reason I was doing this is that the sound seemed awful; as if there were some strange reverb enabled or my speakers just had a cold (LOL) - I finally examined the sound settings in the menu and found almost the entire difference was caused by the option 'Randomize pitches', which was enabled. Why, I must ask, does this option even exist? Turning it off made it sound right again (in all the versions including your binary), and it performs exactly the same as standard 2.8.1 as it should. This showed me that it does have demo compatibility, as I could timedemo the exact same runs on both.

I note that (barring the sound) this software rendered is a bit faster than the Quake2 software renderer; if interpolation is off this is so even on quite large levels. If I can extrapolate I'd say any computer that can run Quake2 software mode can run ZDoom 2.8.1 at the same resolution quite playably. Unfortunately I don't have any hardware older than my main computer to test, though I know others do - what do you have? I'm worried that even OpenAL may take too many cycles on a Pentium 1.

Adding truecolor support as I have speculated about would be an awful mess; though, if it were done, it would make sense to add it as almost all the target systems will support it - yes, maybe ZDoom should have done it when RGB effects/computations were first added, but it wasn't. With this renderer it would require new versions of functions in many places, including the assembly loops. Further, truecolor isn't even that useful (I can barely notice the improvement) in maps not specifically designed for it, which means everything that runs on ZDoom. So Zpack E2M6, the level I was looking at, doesn't even look right in truecolor! Yes, it's smoother but the colored lighting and fog effects are just too faint; it was clearly made for the ZDoom palette mapping. [Also the bug rendering that level uncompletable occurred only in 2.5.0, of the official releases - I looked back in the forum and saw it was finally marked 'fixed' - and was in the polyobject code, not the scripting code. So that's not a concern now.]

So should I switch to LE from 2.8.1 as my default version for playing? There seems no reason why not if it is as stable.

Andrew Usher

Reply 17 of 63, by koverhbarc

User metadata
Rank Member
Rank
Member

I believe I have found at least one bug.

First (occurs in stock 2.8.1 also), some video modes don't work. While this is no surprise, the way in which it is handled is problematic. ZDoom can just crash, and worse, keep crashing if restarted (because it tries to enter the same mode) unless the user knows the command line options for restoring the resolution to something that does work. The occurs with some of the stranger low resolutions, and is related to one's video driver since it doesn't happen with the standard VGA driver. The actual crash must occur in (or from) I_SetMode or I_CheckResolution , which I can't find in the source. Even if the crash can't be avoided (some other unsupported modes just cause it to switch to windowed, which is better), surely ZDoom should not store this resolution as the default before it's demonstrated to work. I would consider this bug serious, but not too important, since it involves modes few people will use anyway. [Related minor issue: the video modes screen will only display 30 resolutions, with no way to page down to higher ones. Setting the aspect ratio reduces it to less than 30, and does allow selecting the highest ones.]

Secondly (does _not_ occur in 2.8.1), I tried in on another system I have, a laptop running Windows 7, and it simply bluescreens and requires a complete reboot, even with proper setup (specifying a standard iwad and the native monitor resolution on the command line). This doesn't seem to be sound-related as it happens the same with the FMod build and with -nosound. I don't use that system for gaming of course but if this occurs in Win7 (or other) systems that are used for gaming, it is important.

Reply 18 of 63, by dondiego

User metadata
Rank Member
Rank
Member

As stated in both threads and the readme i've already released several versions.
Have you tried compiling with both fmod and openal? You should be able to select the audio backend from the sound options menu.
You cannot fix bugs (or add new features) and keep 100% demo compatibility.
About sound it's right the opposite, i see you didn't play Doom when it came out. ZDoom LE tries to resemble the first dos versions up to 1.2 (actually the 1.3 beta) which had random pitched sounds. On later versions they didn't work due to a bug (the spec of the DMX audio library changed) and id didn't bother fixing it. That option has been in ZDoom almost right from the start (came from Boom). Also i've changed the defaults for old machines so you should increase the sound samplerate at least to 22050.

Nothing to do with Quake 2, with Doom you will be cpu limited most of the time due to the game logic, the engine was not ready for maps that complex and with that many things (inneficient algos and data structures).
As i mention in the readme i've tested it on a pentium 90 and performance is more of less acceptable.

I see you've looked at the code and noticed it's not pretty. The 32 bit renderer would be a nice addition but a nightmare to implement. Also dpJudas started his work in the middle of the renderer floatification and that didn't make into the maint branch. I guess you've tried the renderer in QZDoom or GZDoom, even the 8 bit mode is clearly slower due to the asm removal. Also dpJudas fully refactored the renderer with a different modularization.
Finally i restored the low detail modes and i don't know if that could also be a problem.
Actually there were some sort of hicolor and truecolor modes in ZDoom in very early versions using ddraw (up to 1.14 i think) but they were half broken and looked pretty much the same as the 8 bit one (they were also paletted i think and with these i only noticed a difference in the menu).

About Zpack that nodebuilder bug was never fixed, for now there's only a recent workaround.

On those bugs of course i'm not going to support an unnoficial build. If the engine crashes just run RUNME_WIN8_1ST.cmd and try to set video modes until you find which one is causing the crash. BTW are you runnigh the d3d or the ddraw backend? Have you installed the video drivers? Which graphics card? In d3d the mouse cursor is an imp claw and the menus are in 32 bit, if not the palette change very noticeable with the status bar on.
I guess what's happening is that some weird lowres letterboxed mode is being set and those only work well with certain graphic cards. I changed the default to 320x200 for old machines since 640x480 is too slow on pentiums but 320x240 works on most computers. There was a menu option for testing video modes but was removed between 2.0.38 and 2.0.39 becouse apparently users got confused and wasn't needed, not a very clever decision. I looked into it but the video section of the code saw a major refactoring then so i don't know how to restore the testing modes option. BTW there's a race condition when setting the default video mode (due to multithreading) and i don't think it's fixable, on very slow machines (some pentiums) you need to set the video mode twice. Another one appeared after restoring the low detail modes making certain maps crash but i fixed it.

So in the end if things get messed up you can always run the cmd file to start @640 windowed.

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

Reply 19 of 63, by koverhbarc

User metadata
Rank Member
Rank
Member

As I have stated in this thread, yes, I did compile with both OpenAL and FMod (and each separately). I haven't noticed any difference audibly; the 'random pitch' just sounds awful to me either way. Maybe on a real Soundblaster it wasn't so bad. I didn't know about the history; if so, the option has a right to be in the game, but I'm afraid making it the default will convince many people (as it did me) that there's something wrong with LE. I did indeed play Doom v1.2 when it came out, but I can't remember anything about the sound (it's been over 20 years!).

I wasn't complaining about demo compatibility - I know Doom's demo format makes it impossible to maintain compatibility across most changes without special-case code - I was just observing that this version doesn't seem to have broken compatibility from 2.8.1, which allowed me to time the same demos in both.

As for the video issues, yes, your batch file does fix it. I didn't think of that before because I hadn't looked at it, and your documentation identifies it as an issue only for Windows 8 and later (not 7); clearly, if I can get a bluescreen crash on 7 that's not entirely accurate. Perhaps the batch file should instead be called, for example, SAFEMODE (reminding people of the somewhat related feature of Windows) and suggested any time ZDoom crashes in startup.

The video-mode crashes, I now am convinced, are bugs in Windows and/or my drivers, and not in ZDoom. They're just seen there because ZDoom offers so many strange video modes and allows them all to be selected fullscreen. Neither is the need to reset manually - while it's true that ZDoom (arguably incorrectly) sets a new video mode as default before actually switching to it, reversing that order did not help. So I would say there's nothing to be done except document the behavior.