ZDoom LE (Legacy Edition)

I've released this @GitHub, now i'll copy the readme file. :)

 

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

 

------------------------------------------------------
ZDOOM LE 2.8.1a (GL 1.8.4a) R3 SEP 04 2017
------------------------------------------------------

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.1a R2 2.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.
On a fast pentium ii Brutal Doom 20 is even playable on simple levels.

(*) For modern windows i recommend CoolSoft VirtualMIDISynth with the following soundfonts: Roland SC-55,
Yamaha DX50XG and AWE64 Gold from https://www.vogons.org/viewtopic.php?f=9&t=45600.
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.

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.2, 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/my-brutal-doom-v20c-unofficial-patch

 

BONUS: ZDoom CLASSIC.

 

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

 

----------------------------------------------------------
ZDOOM CLASSIC 2.1.4a (GL 1.0.17a) SEP 08 2017
----------------------------------------------------------

ZDoom CLASSIC 2.1.4a is a fork of ZDoom 2.1.4 (https://github.com/rheit/zdoom) for Windows 9x and pentium machines.

Changes/features since 2.1.4 CL R2:
- Included old OpenGL renderer from GZDoom 1.0.17 with later fixes (off by default).
- Added Skulltag's HQ resize options and texture compression.
- Added sprite billboard options from GZDoom 1.0.31.
- Autoloading of lights.wad.
- Added early Direct3D renderer and a display menu option to switch between d3d and ddraw.
- More modern default keyboard layout.
- Command versions of the original Doom cheats.
- Added buddha cheat.
- Render cull options (sprite and wall distance) to increase performance.
- More ZDoom patches (mostly up to date with ZDoom 2.1.5).
- Now compiled for pentium architecture (but i guess performance on 486s will not be affected).

Changes/features since 2.1.4 CL:
- Added video menu options to change fullscreen display bits for compatibility and disable widescreen aspect
ratio correction.
- Forgot to disable decals by default for better performance.
- Some more official fixes.

Changes/features since 2.1.4:
- Includes some later fixes.
- Compiled for 486 architecture.
- Added a new quad horizontally and double vertically mode from ZDoom LE.
- Added pixel doubled and quadrupled lowres directdraw modes from ZDoom 2.3 for more recent Windows versions.
- Engine defaults changed for 486 machines.
- Added some missing video settings to the display options menu.
- To set the default video mode on slow machines sometimes you need to press enter twice.

Minimum estimated system requirements are: 486DX4-100, 16 mb of ram, 1 mb svga card and windows 95.
Tested on a Pentium 90 with 32 mb of ram and a trident 1 mb graphics card on win95c, i get 38 fps @320x200.
This is intended for vanilla levels and old mods from 2006.

For modern windows i recommend CoolSoft VirtualMIDISynth with the following soundfonts: Roland SC-55,
Yamaha DX50XG and AWE64 Gold from https://www.vogons.org/viewtopic.php?f=9&t=45600.
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_WIN8_1ST.cmd) is included for convenience.
A DirectDraw to OpenGL wrapper such as DXGL for GL 3 cards should fix the problem.

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 and dondiego from vogons.org.
Note that drfrag and dondiego might be the same person.

More stuff from drfrag:
ZDoom32 2.8.2, a fork of truecolor ZDoom by dpJudas and Rachael and ZDoom.
https://github.com/drfrag666/gzdoom/releases
ZDoom LE 2.8.1a, a fork of the ZDoom 2.8.1 maintenance branch for Windows 9x and old 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/my-brutal-doom-v20c-unofficial-patch

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

Old ZDoom CL release:
https://github.com/drfrag666/ZDoom-CL/releases

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.
Edited by drfrag
1 person likes this

Posted (edited)

Share this post


Link to post

Any reason why you chose something right in the middle of a batch of point releases for the 'classic' version? 2.1.7 would have been better.

 

Share this post


Link to post

 Of course, i actually expected that question. I tried 2.1.7 first but that one crashed instantly with a SIGSEV signal in thingdef.cpp (CreateNewActor) and didn't look good so after reviewing the changelog i tried 2.1.4 which was a good version anyway. I even have a debug log for curiosity's sake. I compiled with gcc 2.6.1 but 3.4.2 gave the same result.

Program received signal SIGSEGV, Segmentation fault.
0x005931c0 in CreateNewActor (parentc=0x22f9e0, bag=0x22f9c0) at C:\DEV\zdoom-2.1.7-src\src\thingdef.cpp:1240
C:\DEV\zdoom-2.1.7-src\src\thingdef.cpp:1240:35165:beg:0x5931c0
>>>>>>cb_gdb:#0  0x005931c0 in CreateNewActor (parentc=0x22f9e0, bag=0x22f9c0) at C:\DEV\zdoom-2.1.7-src\src\thingdef.cpp:1240
#1  0x00594ccb in ProcessActor (process=0x4b8754 <ProcessStates(FState*, int)>) at C:\DEV\zdoom-2.1.7-src\src\thingdef.cpp:2215
#2  0x004347df in ParseDecorate (process=0x4b8754 <ProcessStates(FState*, int)>) at C:\DEV\zdoom-2.1.7-src\src\decorations.cpp:316
#3  0x00434641 in LoadDecorations (process=0x4b8754 <ProcessStates(FState*, int)>) at C:\DEV\zdoom-2.1.7-src\src\decorations.cpp:264
#4  0x004b895f in FActorInfo::StaticInit () at C:\DEV\zdoom-2.1.7-src\src\info.cpp:247
#5  0x00427dc2 in D_DoomMain () at C:\DEV\zdoom-2.1.7-src\src\d_main.cpp:2081
#6  0x005c50e5 in DoMain (hInstance=0x400000) at C:\DEV\zdoom-2.1.7-src\src\win32\i_main.cpp:377
#7  0x005c5615 in WinMain@16 (hInstance=0x400000, nothing=0x0, cmdline=0x2c826fc "", nCmdShow=10) at C:\DEV\zdoom-2.1.7-src\src\win32\i_main.cpp:580
#8  0x005f1d56 in main (argc=<error reading variable: Cannot access memory at address 0x1>, argv=<error reading variable: Cannot access memory at address 0x5>, __p__environ=<error reading variable: Cannot access memory at address 0x9>) at ../mingw/main.c:73
>>>>>>cb_gdb:Continuing.

 

Edited by drfrag

Posted (edited)

Share this post


Link to post

No idea why that happened. Of course the 2.1.7 release was rock solid, that version remained current for more than a year, after all.

 

Share this post


Link to post

Very interesting project. I'm curious about your eventual goal/plans for your port, or maybe just a mission statement. It looks like you're going for a enhanced ZDoom-y port that caters to (or at least makes sure to provide support for) slower older machines with older OSes. That seems to be a short-term goal. I'm interested also in the long-term goal. Can you elaborate?

Share this post


Link to post

I've updated the 2.8.1a release to fix sky scaling in low detail modes.

On your question:

The project originated at vogons.org, which is a forum on vintage hardware and games (there's a MBF 2.04 version there as well). Leileilol came with the idea of doing a ZDoom fork and then a guy out of nowere released a version for win95 using openal for sound. Then i continued the project (i had to undo some changes as well), i wanted to get low detail modes back and add a quad mode for some funny retro look. Unfortunately i've restored the low detail modes after dpJudas refactored the software renderer so this wouldn't be easy to merge back into the current engines.

 I think there are no long term goals. I've been thinking about adding pc speaker emulation but i don't think it would be easy and i actually used to play without sound on my 386 and of course in low detail mode.

 This has only DirectDraw support but apparently runs well on win7.

 

Edited by drfrag

Posted (edited)

Share this post


Link to post
On 3/23/2017 at 7:02 AM, drfrag said:

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.

drfrag might be the same person as dondiego? Don't you know for sure, drfrag? :)

Share this post


Link to post

Plausible deniability? :D

 

Anyway, cool project.

Share this post


Link to post

 I'm just 99% sure. :)

 BTW according to the reports i'm getting only nvidia cards are giving problems on win 8 and 10 but i'd need more feedback. Anyway directdraw emulation is poor on those.

Share this post


Link to post
7 minutes ago, drfrag said:

 I'm just 99% sure. :)

 BTW according to the reports i'm getting only nvidia cards are giving problems on win 8 and 10 but i'd need more feedback. Anyway directdraw emulation is poor on those.

I think the problems come from forcing a paletted display mode, which is simply something that is not well supported anymore on Windows. That's what you have to accept if you rip out the modern render path and only leave in the legacy version that had been superseded for solving precisely this problem. :P

 

Share this post


Link to post

 Actually it was the other guy the one that removed direct3d support and i thought it was fine, after all this is a legacy port mainly for win9x (and 2k and xp as well). I assumed this would break win95 compatibility but version 2.2 ran on it with d3d so it should work (of course with ddraw). Anyway i've already restored the d3d code but i'd need to mess a bit with CMake. According to the changelog Randi was compiling with gcc without the DX SDK installed, i guess that means the code would compile with the allegro minimal DX9 libraries. Does any of the devs know for sure if that's the case? I'm not sure about win95 support either but that wouldn't be a problem since i could include two executables.

 So i could consider restoring d3d but i'd need to compile with dx9mgw.zip.

Share this post


Link to post
2 hours ago, drfrag said:

 According to the changelog Randi was compiling with gcc without the DX SDK installed, i guess that means the code would compile with the allegro minimal DX9 libraries. Does any of the devs know for sure if that's the case? I'm not sure about win95 support either but that wouldn't be a problem since i could include two executables.

ZDoom 2.8.1 was build with Visual Studio 2005 or later. I cannot say much about the state of MinGW, there have been issues with XInput, but that has no place in a legacy build anyway.

 

 

Share this post


Link to post

 Thanks, the d3d renderer it's working now and the exe is still compatible with win95. It didn't even compile so i had to remove TOptWin32Proc and then DumpAdapters to keep win95 compatibility. Adjusting the weapon position in low detail modes has been a pain, it's not pixel perfect but i think it's okay and the formula is simple and fast. Now the weapon is really not affected by low detail modes since it's a texture.

 I've restored usernames for ini files on win2k and later, the old original code didn't work on 95 BTW. And removed that ugly startup banner hack, that one was easy. So expect a new and proper release soon.

 

On 29/3/2017 at 10:54 AM, Graf Zahl said:

I think the problems come from forcing a paletted display mode

  Then running with '+vid_displaybits 32' should help, could you please try GZDoom in sofware mode with '+vid_forceddraw 1'? I'm really interested and yours is the only crash report i've received.

Edited by drfrag

Posted (edited)

Share this post


Link to post

I never said it crashed. What it did was cause a black screen on my monitor. I was able to get it back by pressing Alt-Enter to leave fullscreen.

 

Share this post


Link to post

 Well, i assumed it when you said kaboom. I'd still like to know if it will work with 32 bits for the ddraw display.

Share this post


Link to post

Big update: now direct3d works while maintaining win95 compatibility, i actually wasn't very happy with the old release. I've edited the first post. Thanks go to Graf Zahl for his advice. I've updated the classic version as well. Have fun!

 

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.

Edited by drfrag

Posted (edited)

Share this post


Link to post

I've uploaded a new release, i've flagged it as important due to the A_SpawnItem bug of the maint branch i've noticed recently. Thanks to Graf, _mental_, Rachael and the rest of the dev team.

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.

 

1 person likes this

Share this post


Link to post

I've finally released a new ZDoom LE version with the old OpenGL renderer for GL 1.2 cards. It's the GZDoom 1.8.4 renderer with later patches. I also backported the QZDoom render cull options by dpJudas from ZDoom32.
I've managed to fix the bugs introduced with the restoration of the low detail modes as well.
I've switched to FMOD Ex 4.36 for sound. Also there's a last version for win95 without the GL renderer using OpenAL.

I've updated the ZDoom classic version, i've merged an ancient GZDoom 1.0.17 GL renderer with later fixes and additions as well. BTW among them i recreated the 1.0.18 fix with Graf's clues (basically he said what to do in another forum). I had to make the merge manually with DiffMerge since there was still no GZDoom repo.
Also has an early Direct3D renderer and again the render cull options by dpJudas.
It's a good nostalgia trip, i tried to update it to 2.1.7 and even 2.1.6 but kept crashing with GCC.
I've also updated ZDoom32. See first post for downloads and detailed info.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now