Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

DoomLegacy 1.48.4 Release

Recommended Posts

The Release code for DoomLegacy 1.48.4  is available at SourceForge.

Binaries and Source are available as downloads from SourceForge.


Update: Latest packages, DoomLegacy 1.48.4  SVN 1531



The latest is in the SVN.



Any faults found should be reported at SourceForge, DoomLegacy project, Bug reporting.



Due to bug fixes DoomLegacy 1.48.1 got updated to 1.48.2, and then to 1.48.3, and finally 1.48.4 got through to binary packages.


New Features DoomLegacy 1.48.1:

  • Add the video drawmode to the option menus. This allows the user to change between 8 bit paletted draw, 15 bit, 16 bit, 24 bit, 32 bit, native draw, and OpenGL draw, at any time. The drawmode is saved in the config file.  It is no longer necessary to specify a drawmode on the commmand line.
  • There can now be a separate config file for each video drawmode.
  • Added software draw of coronas, which uses a new alpha draw.
  • New corona types.
  • Upgraded the hardware and software corona generation to use the new capabilities. This provides a corona type field to all coronas, including fragglescript.
  • The fire, firefly, random, and pulse types, support multiple independent lights, without them being synchronized.
  • Support for NETBSD.
  • Improved deathmatch and coop menu selections.
  • Respawn weapons now works for Heretic too.
  • Feature Request 0092: Added a bot menu setting to the deathmatch menu.
    Concept by Leonardo Montenegro.
  • Bot code has been overhauled, with significant changes.  It is not
    demo compatible with previous bot code.
  • The bots will obsess less over things they cannot reach.
    Bots attacking barrels has some regulation now so they can leave them.
    This is still a work-in-progress, and there will be further
    significant changes to bots.
  • Automatic Sky Generation.  Alternatives to the sky stretch, for normal sized sky textures.
    This is a work-in-progress.  Wanted to get it into the 1.48 release,
    even though it is not polished yet.  It is still better than always stretch.
  • Extend the joystick key definitions to handle gamepad, like the xbnx-style gamepad.
    Added joystick/gamepad controls that can be defined (menuesc, pause, automap).
    It is now possible to play Doom Legacy without a keyboard, if your controller has 6 or more buttons, and you stay with the basic Doom and Heretic wads.  Concept by Leonardo Montenegro, and contains submitted code.
  • The console help command now has help categories.
    This shows commands that are specific to the category.
    This also avoids overflowing the screen, which was not helpful.
  • Added autoaim, crosshair, and weaponpref for player2 (splitplayer).
    Added a player menu for changing these for player1 and player2.
  • Network games can now be entered at the next level start (game start).
    This can be achieved by disabling the download savegame control, for
    the server, or for the client.


New Corona Types:

SPLT_unk = 0x00 : (plain corona, near and far fadeout)
SPLT_rocket = 0x10 : (rocket corona with random flicker, near and far fadeout)
SPLT_lamp = 0x20 : (lamp and corona, brighter than plain corona, different size, near and far fadeout)
SPLT_fire = 0x30 : (fire and torches, slow flicker, near and far fadeout, 64 generators)
SPLT_light = 0xC0 : (a light source without an object, far fadeout)
SPLT_firefly = 0xD0 : (blinking firefly, far fadeout, 64 generator phases)
SPLT_random = 0xE0 : (random LED, no fadeout, 32 generators)
SPLT_pulse = 0xF0 : (slow pulsation, no fadeout, 256 generator phase)


Deathmatch and Coop:

Coop_SP_Map: Play coop using the single player map, items, and monsters.
Coop_60: Play coop, but the strong monsters added for coop are reduced.
Coop_80: Play coop, but the strong monsters added for coop are reduced.
Coop: Play coop, using the respawn settings in the game options menu.
Coop_weapons: Play coop, using the deathmatch weapon respawn (orig coop).
DM: Play Deathmatch, using the respawn settings in the game options menu.
DM_weapons: Play Deathmatch, respawn weapons (orig Deathmatch 1).
DM_items: Play Deathmatch, respawn items (orig Deathmatch 2).
DM_both: Play Deathmatch, respawn items and weapons (orig Deathmatch 3).


Bot Selections:

randmed:   (random 0 to gameskill-1)
randgame:  (random 1 to gameskill)
gamemed:   (use gameskill-1 setting)
gameskill: (use gameskill setting)


Bot speed:
gamemed:   (dependent upon gameskill-1, speed=0..4)
gameskill: (dependent upon gameskill, speed=1..5)
botskill:  (dependent upon bot skill, speed=0..5)


Sky gen control:
auto:           Will look for a replacement sky first, then will make best choice, which is usually extend_bg.
subst:          Will use a replacement sky. (not fully implemented yet)
bg_stars:       Extend the sky, replace all of background with stars.
extend_stars:   Extend the sky, replace missing background with stars.
extend_bg:      Extend the sky, fill with background color.
extend_fill:    Extend the sky, fill with random samples.
stretch:        Stretch the sky to fit.


Bug Fixes:

  • Make the SDL sound interface use the samplerate from the sound effect header.
    Adjust the audio device number of samples for our new sample rate, like Eternity does.
    The added sounds in biowar now sound more reasonable.
  • Fix segfaults on a 64 bit machine when playing phobiata.wad.
    The fault was an internal fragglescript variable copy that was being sign-extended.
  • Corrected the fog draw for 8 bit drawing of dark fog.
  • Broke the Chex Newmaps DEH, when adding MBF DEH.
    Fixed to bypass frame number translation and allow new states
    when the frame number is not recognized.
  • Fix compile errors in DEBUGFILE conditional code.
    Based on code by Adam Stylinski.
  • Remove the backscale array from the drawsegs and give it a dynamic allocation.
    It is now allocated at the actual video width.
    This reduces the memory usage, and will allow the MAXVIDWIDTH to be increased, as requested.
  • Deathmatch setup issued a text command that was missing a switch "-",
    making the skill setting ignored.   Based on code by Leonardo Montenegro.
  • The draw8 implementation had a dark circle for the corona.  Fixed.
  • On big-endian machines (Mac) some of the unsigned blockmap values were getting sign-extended.
    This and similar uses were changed to prevent accidental sign-extension of unsigned numbers.
  • Compressed blockmaps, such as zennode sometime creates for a large map, would cause loading errors.
    Their blockmap compression reuses an empty blocklist, and puts blockmap lists out-of-order.
    Example, strg.wad Map20.
    Blockmap overflow correction detects this now and no longer is dependent upon order assumptions.
  • Fixed the double click detection code.  Provides a double click control, to adjust the detection.
  • The netcode had some flags in the lower bits of angleturn, which have been removed to a separate byte.
    These had added noise to the angle input, as they were not masked out again.
  • Eliminated problems with too many ticcmds and textcmds for one network packet.
    The new format can now handle 32 players, without errors, using multiple packets when needed.
  • Fixed the display of coop netgame stats, and the overlap of face pictures.
    The coop listings now show the player name and player color, similar to the deathmatch listings.
  • Many other bug fixes, see WhatsNew.htm in the release.


Edited by wesleyjohnson

Share this post

Link to post

Wow now that's a nice list of features and fixes!

We need to hunt down smite-meister so he can update the site with the new builds!

Nice work Wesley. :)


Here's a somewhat official Doom Legacy icon if needed:

legacy_icons.zip windows, mac and android flavors.

The icon image is based on the image I created some years ago when Smite and I updated/rewrote the docs.

Yes, it's been a while.. Incase you were wondering where the demo files in the docs came from also. ;)






Edited by Mr.Rocket

Share this post

Link to post

Have some bugs, might have to go to 1.48.3.


One problem is that the new config file setup does not initialize an opengl config file.  It is optional, what settings are in it are optional.

Because of that, when the OpenGL config is missing,  DoomLegacy CANNOT just create one.  Not having an OpenGL config is perfectly valid.

However, most people are going to want to keep their OpenGL settings separate from the settings for 8bit palette draw.


The first thing a user probably wants to do is create the OpenGL config file, and put in some of the video settings that might be unique for opengl.


The steps to do this:

Go to the video menu and press F3 to enter edit config mode.

Enter the video mode menu, press Insert.

Exit the video mode menu.

Position the cursor at Fullscreen, press insert.

Position the cursor at the Gamma_func, Gamma, Black, Bright settings and press insert for each of them.

Position the cursor at the VSync, press insert.

For any other setting that should be separate for OpenGL, go to that setting and press insert.

Press F1 to exit the editing config mode.

The new config file will be created at Quit game.


I am considering shipping an initialized OpenGL config file with the distribution.

Every drawmode can have its own config file,  to keep separate video settings.



Share this post

Link to post

I may sound a bit grotesque, but:

If SRB2 had long ago implemented slopes and polyobjects, why not sometimes to backport these features to whatever new Legacy build?

Share this post

Link to post
15 hours ago, SilverMiner said:

I may sound a bit grotesque, but:

If SRB2 had long ago implemented slopes and polyobjects, why not sometimes to backport these features to whatever new Legacy build?

SRB2 is a weird flux. The base engine has been modified so much that its beyond impressive that it still has a Legacy core.


The weird part is that SRB2 has a dozen of community source modifications that all add to the engine but require their custom build for it to work. Their wiki does a great job listing for which SRB2 version the source mod is for, though.


I dunno. Something tells me backporting is a time sink in this case.

Share this post

Link to post

Fixed more bugs.  Thanks to my testers, who keep finding them.


The Release code for DoomLegacy 1.48.3 is in the SVN at SourceForge.



It will offer to make an initial drawmode config file.


The steps to do this:

Go to the video menu and press F3 to enter drawmode config edit mode.

Enter the drawmode mode menu, and select a drawmode.

There will be a message, offering to create the drawmode config file.

Press 'C' to create the initial drawmode config file.

Exit to the video mode menu.

Notice that the drawmode config file already has video mode and gamma settings.

Position to other menu entries you want in the drawmode config file, and press INSERT.

Press F1 to exit the editing config mode.


Binaries have been made.  Maybe a week before they get posted at SourceForge.

Edited by wesleyjohnson

Share this post

Link to post

I have a TODO list of stuff to implement that is longer than I can remember now.

We have HEXEN on Legacy 2.0.

Someday, I will port some of that over to the 1.4x line.  Otherwise, start working on the 2.0 line, and spend a year updating it with 1.4x patches.



Share this post

Link to post

Well, I knew that making that many changes and rushing to get it released was going to break something, and we have been finding out what got broken.

Old demos will play back, but new demos are recorded with a flaw that prevents the map starting on playback.  Repairing 1.48.4 demos would require inserting the missing server commands.  I finally have a fix for 1.48.5 and later.

Anyone with important Version 1.48.4 demos will have to let me know, to make it worth the effort to fix them.


I have been trying to find out what is up with the moon-walking monsters.  Still cannot find a significant difference from PrBoom code.

Now, investigating the problem seems to make it go away.  Upon close examination, it insists on behaving the same as MBF.

Turning off the MBF monster avoid hazard still seems to be the best fix.


Edited by wesleyjohnson

Share this post

Link to post

Yeh, I should have mentioned Heisenbug before someone else got to it.

Latest tests showed that it is even more erratic than I thought before.

I have a save file so I can test the same situation over and over, using TNT, the three imps facing into the corner.

Position the player slightly to the right behind the monsters and can provoke one to walk backwards out of the corner.  This will persist until he gets to an angle where he wants to turn to face the player.

Change any of the MBF monster settings and it won't happen.

Change the settings back to where they were and it still won't happen.

I got determined and did alot of tests to find out exactly what position provokes the behavior and found out it can happen even with the MBF_monster_avoid_hazard off, but it is harder to provoke.

I think I am chasing a reflection on the windshield, wrong bug.

I am using a instrumented version, but must not be instrumenting the right places.

So back to comparing code.


Trying to get PrBoom, Eternity Engine and EDGE properly installed.  They were on an older version of Linux, and it was time to fix that.

PrBoom is the only one I have got working decently yet.

I have to claim that DoomLegacy installation is easier.  Our install docs are better, they tell you what directories the various files go into, etc...  (No, please don't ask me here).




Share this post

Link to post

Found the moon-walking bug.  Of course, it is an erroneous translation of one of Killough's everything-in-one-expressions.

He puts stmts in the middle of expressions, followed by a comma.  I try to pull those out into stmts, to make it easier to read.

One of these is in the code for monster-avoid-hazard, but it was NOT followed by a comma this time.   My mistake (which I made over and over, every time I tried to compare my code to Killough's expression).  But, I am going to 100% blame those everything-in-one-expression too; they are unmaintainable, and basically unreadable.

It is worth it to translate to a maintainable equivalent.


For now, in DoomLegacy 1.48.4, keep the monster_avoid_hazard turned OFF, as it fires on every test cancelling out the monster's sense of direction.


It appears that will need a Release of 1.48.5 a little sooner than I expected.  And, I got more stuff that needs fixing.





Share this post

Link to post

Have added the ability to read a ZIP file, as of svn 1544, which is SVN current.

ZIP file reading is only available for Linux right now, as it uses libzip, which I do not know how to access in Windows or other ports.


Have started testing for Release 1.48.6, which should be very soon.

Need to release those bug fixes.

Have one fix for corrupt demo recording, which is probably not used by many people, or I would have heard more about it.


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