1.46.3 SVN1301 (2017-02-19)
- Fuzzy shadow draw control has been added to the effects menu.
The translucent draw control has been expanded.
BUG FIXES 1.46.3
Fix the setup of the message box position for non-menu message boxes.
Fix message box text positioning so that it is in the message box for
video modes other than 800x600.
- Video modes switches could cause segfault if a video print triggered
console output. This was occuring in the linux_x xshm port when
verbose was enabled.
Changes to the video status indication were made to prevent print
statements in the video mode switch from causing a console update.
Some previous video print outputs are restored.
- CDROM music has not worked in Linux. It has problems in SDL, even in
windows. The plan was to disable it, as SDL 2 does not support
CDROM music. However, after some effort, it has been made to work again
in Linux X11 and SDL.
This is likely the last version that will have CDROM music support.
Checking the CDROM status, in Linux, is a blocking IO call that stops
all action in the game for 1/4 second, which is very noticable.
- The Doom shotgun and other player weapons were drawn with a visible
scanline below them.
Moved the weapon down to the lower edge for Doom (but not Heretic).
Fixes bug 0455.
Fixed controls for smoke, shadow, and translucent, which were interacting
and confused. Improved the implementation. Fixes bug 0631.
Fixed the -connect command line switch detection, which was triggering an
error message due to a redundant setting of netgame. Fixes bug 0634.
Eliminate an extraneous error message about autoexec.cfg. Check that
it exists before trying to exec it.
1.46.2 SVN1287 (2016-12-18)
- To improve the situation with players being kicked due to
consistency errors, network repair messages have been added.
This makes 1.46.2 network incompatible with previous versions of DoomLegacy.
Because 1.46.1 had a serious bug and should not be used, this should not
cause many compatibility problems.
The server now keeps a consistency error count for each node.
Upon detecting a consistency error with a node, the server will try a
series of escalating repair attempts before it kicks the node out of the game.
- Server sends the player current position, momentum, the random
number index, and the current tick.
- At 3 consistency errors, the server suggests a savegame.
The client requests a savegame download from the server,
and then a position update. The client screen will briefly go black
duing the download.
- When consistency errors exceed 7, the server kicks the player node.
- When a node is consistent, the server counts down the
consistency error count.
A network download displays the file download activity in
a box with speed and file size. This replaced some of the existing hud
messages, and others were updated to be more helpful and informative.
BUG FIXES 1.46.2
- Fix the savegame corruption introduced by an interface change in 1.46.1.
During a savegame write, the netvars were overwritten in the buffer.
A savegame read would notice the netvars were missing and issued a
savegame corruption message.
A network game would display different textures when it downloaded the
wad file, than if it loaded the wad file from the command line.
Any texture or patch change by the loaded file would
affect textures, so it now clears the cache and rebuilds all textures.
Fixed the download display screen to have a background draw so the background
does not flicker due to hardware double buffer swaps.
Fix a Heretic status bar draw that was drawing outside the screen
Rewrite of the X11 version sound server code, and the internal sound
driver. Added some functionality and cleaned up the unused code.
Separated the code for the 3 sound driver alternatives.
1.46.1 SVN1276 (2016-10-08)
There is a new docs file, doc/INSTALL.html, that just deals with
- Network behavior has been updated and is greatly improved.
The discovery of DoomLegacy server nodes has been improved.
Network startup has been changed to handle early and late game joiners
The Network play interface has been improved.
The number of players and timeout can be selected by the server
DoomLegacy, from the menus.
The waiting display gives the number of players, and a timeout counter.
There are now three server addresses (server1, server2, server3)
that will be checked.
They can hold a server IP address such as
"192.168.1.1", or a network broadcast address such as "192.168.1.255".
For a home network, addresses should be 192.168.nn.xx, where all your
computers have the same nn, but different xx (nn=1..254, xx=1..254).
Do not use addresses such as 255.255.nn.xx as those do not work.
- Better network error reporting.
- Network file download is now protected at the server so that DoomLegacy
cannot be used to snoop on your computer.
It will transfer wad files found by the server DoomLegacy in the
legacy wad directories, and only if they have .wad, .deh, or .bex
Complex filenames (using ../ to back out of a directory, having ':',
or '\' or '/') and absolute
filenames are explicitly blocked by the server as a SECURITY issue.
The previous search of 10 directories deep was a security risk, and has been
replaced with a new search system.
DoomLegacy will now search through upto 24 specific directories to find
legacy.wad, the IWAD, PWAD, DEH, and BEX files.
On failure, (or -v2 verbose), DoomLegacy will print out the directories
searched, as an aid to the player to setup the game.
For legacy.wad, the environment variable LEGACYWADDIR specifies the
first directory in the search list.
The environment variable DOOMWADDIR specifies the first directory in
the search list for the other files.
The search directories include absolute and HOME relative directories,
(the HOME environment variable needs to be set).
Most search directories, which are fixed at compile-time, are specified
in doomdef.h, according to the operating system.
There are some spare slots for users who wish to compile DoomLegacy with some
additional search directories.
DoomLegacy will also search sub-directories.
The IWAD search will go 5 directories deep.
The game file search will go 3 directories deep.
The console map command now does a file search like the command line.
The command line has more privileges, the map command is more
The map command, as a network command, is restricted to ".DEH",
".BEX", and ".WAD" files, and within public doomwaddir directories.
Now it searches the doomwaddir list, to 4 subdirectories deep.
- Many fatal error exits have been changed to soft error messages,
leaving the player in the game with a chance to save the game. Many of
the situations are transient problems that would resolve themselves when
the player leaves the affected map area. This most strongly affects wad
development, buggy wads, and wads not meant for DoomLegacy.
Many debugging and information messages are suppressed during normal
Command line switches "-devgame", "-devparm", "-v", and "-v2" will
enable many more informative and warning messages (to stderr).
A readable listing of DEH text replacement is presented when selecting
devparm or verbose, ( -devparm -v ).
The ticrate display control is now in the video menu.
The ticrate display now has a numeric FPS display, in addition
to the graphical display.
There is now a menu control with 3 darkness settings of the background and console.
The dark setting darkens the background so the menu are easier to
read against the background. It also darkens the console background to
make console text easier to read.
There are now menu entries to control the console font size and the message font size.
The console and hud text now draw proportional fonts.
OpenGL drawing got improved. There is an now a menu option that
controls how odd shaped polygons that sometime occur are handled.
The display anomolies will vary with the selection.
If you do not understand this, just leave it at Trim.
Polygon shape option selection. The default is Trim.
- Subsector: Disables cutting with segs.
- Fat : Ignores any seg that does not cross the subsector polygon
- Trim: Chains together the segs, and applies those chains that cross the
subsector polygon. It might create a non-convex polygon, so a check removes
the center vertex where sides meet at an interior angle
greater than 180 degrees.
- NonConvex : Leaves the non-convex polygons. My nVidia supplied
OpenGL library seems to tolerate the non-convex polygons. Others
The show messages option has been expanded to (Off, minimal, play, verbose, diag, dev).
This control now affects all messages displayed during play.
If the player sets it to minimal, they will not get messages for minor
object pickups like ammo, but will get messages for important things,
like the BFG.
Improved the handling when drawing an excessive numbers of sprites.
The closest sprites are always drawn.
The farther sprites depend upon the distance from the viewer and priority.
The priority takes into consideration the object height, and if it is a
corpse, missile, or monster.
There are now alternatives to the palette flash when picking up ammo
The pickup palette flash is similar to that used when the player is hit.
Pickup Flash menu control.
- off : no flash
- status : parts of the status bar flash color
- half : the palette flash is half intensity
- vanilla : the Vanilla Doom palette flash
The status bar pickup flash applies to the status bar and overlay
status. The appropriate box is flashed with a color.
Heretic is also affected, but uses different flash colors.
Added autorepeat to the console scrolling page-up and page-down keys.
BUG FIXES 1.46.1
Fixed BossDeath detection failure so special linedefs now trigger.
Solid Corpse health is now (0 .. -spawnhealth). Upon reaching -spawnhealth
the corpse is Killed, becoming gibs.
Fixed the solid corpse health when restoring old savegames.
Fixed the Chex newmaps fireflies, as far as I know.
Rewrote parts of fragglescript corona function to fix Chex newmaps bugs.
Rewrote the String_to_RGBA func to handle any length hex value string.
Chex newmaps does not turn on the corona type flags for the
fireflies. To make the fireflies work, the code now turns on the corona
automatically if it is 0 when a write to the corona color is made.
The code for Doomu has the tall-torch corona turned on, but
the Chex1 patch turns it off.
Catch some BEX comments so they do not cause error messages.
Fixes messages in toxdm1.wad.
The wad 2002ado.wad has many sidedef with bad sector numbers, but they
are also unused. They were left by the editor.
Fixed the error reporting to ignore those with sector number = 65535
unless verbose is ON. Also to report if any line is using the sidedef.
- Network ack bug fix, and cleanup of the ack code.
- Network chat fixed so that player 0, team 0, and broadcast to all players
are no longer confused. This changes the chat protocol (DoomLegacy 1.46)
and is incompatible with any previous version of DoomLegacy.
Display of the chat message now works for splitscreen.
Network errors are now caught so they do not crash the program.
Network packets now have standardized stdint field sizes, so that 64bit
and 32bit machines have a chance of playing together.
Master server pinging has been fixed to not use a player node. This now
allows all 32 players when using the Master server. This new behavior
is a compile conditional that is enabled by default in the source code.
Block demos from starting up when the console is open.
Fixed some problems with compiling in Windows systems using MinGW.
Works around some nasty command problems that occur if MSYS is present.
Needs to use mingw32-make as the MSYS make still fails to compile some
files, due to the search paths of include files.
- Fixed errors due to not finding the legacy.wad file.
AddFile will no longer segfault when a filename is NULL.
Gave the CV_Possible_t system an INC option. This is used to increment the
wait time in 5 second increments.
Wadtool has been missing from the legacy 1.45 build.
Copied and revised the wadtool from legacy2.
Added a directory switch to wadtool, to make it much easier to use in a Makefile.
Added reading a lump by file name or lump name, so that an extracted wad
can be rebuilt without having to change file names of the lumps.
Windows and DOS do not have sed, which is used to add the "obj/"
directory to the dep file entries.
The new tool, fixdep, will do the same operation, making the dep files work
on Windows and DOS.
Heavily rewrote all Makefiles to reduce user errors and miss-information.
To compile, the user first selects one of the make_options sample
files, copies it and modifies it to suit.
The syntax of make_options has changed, so previous versions will not be
Now uses OS= for operating systems.
Now uses CC_SELECT= for compiler select.
The src Makefile still has the capability of being run directly, but other
sub-Makefiles must be run from the Main Makefile, as they use exported vars.
There is now a port independent video status, which also serves during
shutdown to prevent quit looping on errors. When legacy.wad was not
found, a quit loop was triggered due to more errors on shutdown.
Shutdown is now handled by D_Quit_Save, which has complete sequencing
of the shutdown, even with multiple errors retriggering the Quit.
The Heretic status bar has a darkening of the chain on the
ends (shadow). This code was 8 bit palette draw only, which left
draw artifacts for other draw modes. This draw has been updated to
correctly draw shading for the other draw modes too.
The inline keyword is causing some problems with some compilers.
Remove it and let compiler do any inlines it can.
DoomLegacy identifies the flat picture to enable splash sounds.
Fixed sector changes to also change the splash sound when the sector
flat picture changes.
Make the deh_error function show DEH errors for any of
devgame, devparm, or v (verbose) switches.
Fixed DEH text replacement that failed when the name string was 6 chars long.
Checking of the devgame switch was hiding the value of the devparm switch.
Fixed so they use independent vars, but devgame will set devparm.
Initialize team names to NULL upon creation.
Fixes segfault in set_team_name, when setting teamplay from console.
Give hexen unsupported error message on -game switch.
Fix map command level setup to set the gameepisode and gamemap correctly.
This also caused the wrong music to be played and the wrong level setups
to be used.
This would also lead to corrupted savegames, saving the wrong map number
in some situations.
Later, during savegame loading, it would use the wrong map to size the level
structures, which would lead to the save game restoring
some structure changes outside of the structure boundaries (overwriting
something else). Have also added some checks to the savegame restore to
detect sector or linedef numbers that exceed the established structures.
This will detect some existing savegames as corrupted. They could be
fixed by correcting the map number in the savegame.
Make fogcolor default assign work for any endian.
Made BOB_MOM code a standard feature, removed compile tests.
Made VOODOO_DOLL code a standard feature, removed compile tests.
Made GAMMA_FUNCS code a standard feature, removed compile tests.
Rename gamma_bright_black choice to be gamma_full, so it fits in the menu.
Make it the default choice, which will minimize problems with
existing config files.
Fixed where the topoffset and leftoffset were calculated wrong for patch
draws when SCALEPATCH, but not SCALESTART. This did not happen in
vanilla code, but occurs in new applications of scaling, such as font size.
Fix bug #0620.
In asm, Clang does not accept "%cc", as it is not a register.
Gcc used to accept "%cc", and probably still does.
In the asm clobbered section, cc and memory should not use %.
Fixed some OpenGL polygon errors in wads such as BOOMEDIT.WAD, and
Rewrote of hardware draw polygon creation. This uses a new structure
with vertex pointers that makes it much easier to maintain common vertexes.
The final polygons are converted to the current polygon structure so
the drawing code is not affected.
The BSP walk procedure gives a subsector convex polygon, and a list
of segs. Cutting the subsector polygon with the segs introduces errors,
and the result might not be convex.
Applied some hardware draw crack remedies.
Check the cross product, so an added vertex does not make the crack worse.
Fixed a bug when a seg-chain cut only cuts one side of the polygon.
Fixed one of the missing sector draws for a sign in BOOMEDIT.WAD.
The bsp in the wad file has errors. One error is that sometimes it has
the wrong sector number for a subsector. This results in drawing the
Added code to try to dectect some of these.
Created a routine to find the correct sector by finding the closest
facing linedef to a point within the subsector.
Fixed the hardware render sky drawing to block walls and flats drawn
inside buildings. Sky sectors are supposed to draw sky over the walls,
which blocks the view of any taller sectors behind the wall.
The polytile remedy, to prevent polygon cracks.
It enters the same vertex in adjacent poly when splitting a poly at an
angle that may cause crack errors. This should prevent cracks before they start.
In the existing routines, it is hard to find these poly points after other
poly splitting has taken place. It was going to get very complex to fix it.
This can eventually replace that search.
There is some conflict with some existing crack repair routines,
so it is made optional. It does not seem to do harm, but its effect is
not yet obvious.
A control, gr_polytile, can turn it off and on.
Rewrote the spawning code so it can handle more multiple players
than spawning spots, and provide better network join spawning.
The Coop spawning now tries to spawn at 255 locations around the spawn
spot, to handle collisions, and to allow more players than spawn spots.
Deathmatch spawn will also try Coop spawning if it needs to.
Coop spawn will try Deathmatch spawn locations (last) if it needs to.
Removed old optional draw code, (DRAW_UNSORTED) and (DRAW_CHOICE) in
the hardware renderer. The new code (DRAW_SORTED) of w89_draw_sorted
is used, which sorts transparent walls and sprites.
When a water surface is close to eye level, the water plane is not
drawn completely. This was showing HOM or sky.
Moved the clip plane closer to the player.
Detects when the player has water surface near eye level and draws both above
and below the water until eye level is cleanly above or below the
water level. When the eye level is exactly level with the water surface
the player can see both above and below the water.
There are still some sky flashing for OpenGL, but it is due to
Changed the net wait to count players instead of nodes.
This allows machines with split screen players to be handled cleanly.
Playing with only split players will now start cleanly without
having to fiddle the wait parameters.
Fix the start server so it also works for Heretic and UltDoom.
The start server menu now changes to give selection of the episode style
of map naming when appropriate.
Fixed the skins setting when a player becomes a chicken, so the other
players can see a chicken. Otherwise the skins setting overrides
the chicken sprite. Restore the skin upon un-chicken-ing.
If the player dies while a chicken, they leave a chicken corpse.
Rewrote all of the status bar, overlay status, and status palette
flash routines, so they work cleanly with splitscreen.
For all draw modes except 8bit palette draw, each split screen can now
palette flash individually.
Splitscreen only can use overlay status, as the status bar saves state
to speed up drawing, and it only saves for the one player.
Fixed a lumpnum field that was made too small.
Error showed up with phobiata.wad, or probably any wad with animated flats.
Fixed the font1 output so that spaces appear in the printed line.
Moved the spawn fog to be over the spawned monster and spawned object.
Restructured the sound priority system, and sound effect parameters.
Fixed Heretic sounds. The channels were saturated with copies
of the same sound, which was a faint low priority sound.
Heretic uses ascending priority, while Doom and the code used
descending priority. The Heretic priority system is more capable,
and Heretic handles more types of sound, so switched everything to using
signed ascending priorities.
The priority is also altered for distance, so faint sounds can get replaced.
Made the Doom sound priorities get used, instead of mostly ignored.
Dehacked changes to info for Doom and Heretic should function as before.
Added Heretic limit channels capability.
This limits how many channels can have the same sfx.
It checks this limit when trying to get a channel.
Fixed problems caused by use of gcc 4.8.
The SDL defined, as set by "-DSDL", is not recognized by the
command line of gcc 4.8, for reasons unknown.
This define has been changed to SMIF_SDL, which does work.
The other SMIF determined defines were also changed from using VID_ to:
SMIF_WIN_NATIVE, SMIF_OS2_NATIVE, SMIF_X11, SMIF_X11_GGI, SMIF_PC_DOS.
This makes this more obvious that this is a user selected option (SMIF),
and not a detection of the OS.
Gcc 4.8 detects variables that are set but not used, and issues many
warning messages. Many of these are left over from the original Doom
source code. Have hunted each down and fixed each, by deleting the
dangling variable, commenting it out, or in one case making use of it.
Concerning compiling and running on a Win32 XP machine.
On a computer with MSYS installed, it has caused some strange problems.
MSYS provides a HOME environment variable for its own use. The code
now detects when HOME is from MSYS and ignores it so it can get to
the XP home directory.
The MSYS shell intecepts commands from the Makefile.
The MSYS shell will not execute DOS commands, nor pass them to the DOS
command processor, so MSYS commands and MSYS legal directory specifications
have to be substituted everywhere.
Systems that do not have ftw.h have to use dirent.h, and that code was
not finished. Have finished it, along with stat code to identify
directories for systems that do not have dirent D_TYPE either.
Fixed palette problems on Windows/Intel systems.
A gamma function that was performing (0.0/0.0) was putting a 0 in the
gammatable when run on Windows/Intel, but not on my Linux/Athlon.
There was an informal report about such a gamma problem some time ago,
but it did not occur on my Linux/Athlon development system.
Extensive testing on a Windows/Intel system confirmed the cause.
When a cv var set value exceeds the bounds, the code attempts to rewrite
the value string. The string could be a const string such as during init,
which segfaults on modern systems like Linux.
Fixed the code to write a buffer instead.
Fixed segfaults caused by flatfill draw writing out-of-buffer.
Added a fill scale so that Doom background flats can be scaled down.
This makes it easier to read menu and message text, such as the Quit box.
Fix bug 0626, submitted by Ryan.
Change memcpy to memmove in command.c because it overlaps dest.
Reported that it was causing segfaults.
Fixed some problems with clean and distclean in the Linux port Makefiles.
Rewrote of most of the musserver for linux_x. Now it has music again.
The IPC message formats in this musserver have been customized for DoomLegacy.
The musserver no longer searches the doom wad. It is sent the exact wad
file and lump to read using IPC messages.
The sound device to use can be changed using a menu option.
The preferred sound device is sent to the musserver using an IPC command.
This allows the sound device setup to be performed while there is some
Added FluidSynth to the device selection.
Fixed many problems with the musserver code.
Added code to throttle the Midi commands, so it does not get so far
ahead in the song. There is no way to shut off the music that has
already been sent to the Midi device, or TiMidity.
Added code to kill drone notes (that did not get shut off).
In spite of redundant attempts to shut them off, sometimes the current
notes of a song will still drone on until the song loops.
Changed the state setting of removed mobj, so that dereferencing the
mobj state will not segfault. A segfault was occuring during testing,
so in some special cases the removed mobj might still be referenced.
Heretic wads can use the SWITCHES lump. They no longer need to have
Add handling of TCP connection reset and connection aborted errors
that were transient errors with WinXP.
Add DEBUG_MESSAGE_ON to doomdef.h, which enables debug_Printf messages
to be shown without needing verbose. Only used in development compiles.
Converted some run-time I_Error, to I_SoftError with a recovery fix.
This allows the player to save the game, or to see the effects of
a wad development error.
When a sprite does not have all the rotations present, it will no longer
I_Error, but will substitute another sprite frame for the missing one,
with an error message.
Changed to use stdint types in the network tic packet, to standardize
the tic packet for both 32 bit and 64 bit machines.
Hardened the network XCmd code against malicious packets.
Bumped the network version number to 22.
The differences in the packet are slight, but this is done mostly to eliminate
the older code from usage for security reasons.
The DoomLegacy coding standard has space indenting only. The extraneous
tab indenting is being systematically removed as files are edited.
1.45.2 SVN1139 (2014-09-14)
- Pausing, or opening a menu, will now release the mouse containment
so that other windows can be visited. This allows dealing with network,
and firewall boxes that may appear.
BUG FIXES 1.45.2
- The Makefile dependency was including files that were not part of
the compile for the selected port and options. This would lead to errors.
Making of dependency has been sub-divided into smaller sets, which only
include files appropriate for the selected port.
- The Makefile has been improved to allow environment CC, explict CC,
and use of the clang compiler. It also allows using it from outside the src
directory, or for program development where is invoked on the current
directory from scripts.
Chexquest Newmaps specific fixes.
Fix segfault when drawing black bars and crosshairs in software rendering.
These graphics were meant for OpenGL where they would be stretched.
- When more than two commands were entered in one tic, such as in loadlevel
setting of keys that execute fragglescript, often the third command would fail.
A latent bug in the command append function was making multiple commands
erratic. After two appends, garbage characters would be left between commands
due to extra buffer length that affected the append positioning.
All the special keys in Chexquest Newmaps now work reliably.
1.45.1 SVN1133 (2014-08-29)
- When a file does not load, Doom Legacy will now default to fail
with an error message, like many other ports. This will invoke the Launcher.
The -noloadfail switch causes it to ignore load errors as in previous
versions of Doom Legacy.
BUG FIXES 1.45.1
- Allow Version 1.44 savegames to be read. The format of Version
1.44 savegames is the same as in 1.45 and will be compatible in many
- Allow DEH modified monsters to use Keen_death to trigger a boss
death and trigger the tag=666 sectors.
- Allow DEH infight settings to override the Monster Behavior menu
control. This makes the control similar to controls in other ports.
Separate "Force Coop" and "Force Infight" settings are added to the control
to allow the user to override DEH infight settings when they want.
- Restore the -nomonsters switch that got lost in the w95_startscreen patch.
Had intended to move it and lost it entirely instead.
There is no equivalent menu control.
- Prevent using a NULL ptr, when restoring a savegame that has a
flying cube. The savegame does not handle saving a braintarget as a mobj.
The SpawnFly will get the previous braintarget when the target is NULL.
- Fix things collision check to ignore things on other 3dfloors.
The allows monsters placed on upper and lower floors to not get stuck
to each other.
Also make the things collision check not block for NOCLIP and not SOLID,
same as in prboom and compatible with boom demo.
- Flush messages so they appear sooner with Linux.
- Straighten out some positioning in the opengl menu options, and gamma.
- Fix the OpenGL rendering of the transparent doors in TNT Map21.
They need to be rendered full height when the middle texture is transparent
and the door is closed.
Check for 3dfloors in monster sight line checks. This will prevent
monsters from trying to shoot the player through 3dfloors.
They grey background text box has been positioned and sized wrong when using
font1, as in the launcher menu, and the quit message from it.
Have corrected it in the few places where the font1 and the grey box have
- For big endian machines, fix two missing include of m_swap.h in
two source files.
1.45 SVN1107 (2014-5-2)
- 1.45 is the Beta release version of the 1.44 alphas. The new features
have already been mentioned in the 1.44 alpha FEATURES below.
BUG FIXES 1.45
- Linux_X port will compile code that does not fail. Removed
references to verbose variable that the dll version of some code could
not access at run time.
- Savegame menus will now remember the page and position of the last
usage. They no longer wrap to the top of menu.
- Large maps like Europe.wad would have rendering errors due to the
poor resolution of one of the angle functions. The resolution has
been much improved, with fewer rendering errors.
- Use of a PrBoom fix, using the atan2 function for really long distances,
has fixed more of the large map rendering errors.
- Changed the heretic chicken code to use a common Morph function
that does not create orphan objects. This also fixes the chicken
attack from creating a bogus player sprite on top of its opponent.
- Using quicksave several times would freeze the menu system due to
quicksave writting some status outside of an array.
Fixed the quicksave status to be written in the correct location.
- The Legacy demo wad would segfault because a patch and colormap have the
same name. Attempting to interpret a colormap as a patch lead to wild
Added checks for bad patches where post offsets exceed the patch size.
This allows the Legacy demo wad to be played.
- Implemented lump namespace tracking. Patch name search is now within the
patch namespace first. If the patch is not found in the patch namespace,
then the first lump of that name in any namespace will be used,
because of wads that do not use the namespaces.
This fixes the Legacy demo wad problems with a colormap and patch of the
- When level without any monsters finished, there was a chance of
a divide by zero fault when calculating the stats. Tests that protect
against divide by zero have been expanded to all the stat divides,
now showing that there were no monsters.
1.44 SVN1088 (2014-02-03)
FEATURES 1.44 alpha5
BUG FIXES 1.44 alpha5
FEATURES 1.44 alpha4
- BEX files supported, with BEX flags, [STRINGS], [POINTER], [PARS],
and include file.
- DEH and BEX names are now compared case insensitive.
- Support for multiple DEH and BEX files changing same items.
- Support for separate language BEX files as BEX_LANGUAGE compile option.
An example french.bex is supplied, which can be modified for other
languages. A command line switch will accept any language name and
load that BEX file, or a default "lang.bex" file.
Many error lines are not yet changable from english.
- DEH support now has a hashed lookup of the original strings,
so it recognizes strings that were changed by DoomLegacy (DOS -> your os),
or changed by a previous DEH file.
This is also used by to recognize ult doom strings after
the chex modifications have changed all the strings.
Strings changed from two "%s" to one "%s", can now be handled,
and DEH can change them again.
- PAR time not displayed when not valid. Limited SUCKS display, so
can see 24 hour of elapsed time for most wads.
- Added verbose switchs as -v and -v2. Most of the print lines they control
output to stderr. Verbose prints out the file strings for doomwaddir,
home, config, and save files.
- The doomwaddir determination now looks for, DOOMWADDIR environment variable,
a default wad directory and an alternate wad directory. When none exist it looks for the wads in the current directory.
(Linux: /usr/local/share/games/doomwads or /usr/local/games/doomwads)
(Windows: \doomwads or \games\doomwads).
- The home directory determination now looks for, HOME environment
variable, or a default home directory. When none exist it uses the current directory for home.
- Draw directly in 15, 16, 24, 32 bpp modes.
Command line switches for bpp draw modes.
- Switch "-highcolor" requests a 15 or 16 bpp draw mode.
- Switch "-truecolor" requests a 24 or 32 bpp draw mode.
- Switch "-native" requests the native drawing mode.
- Switch "-bpp 15" requests a
specific bpp mode (can be 8, 15, 16, 24, or 32).
- Extensive video reporting using verbose switches "-v" and "-v2".
- Improved fog sheets with color, shimmer and ripple.
Mid texture determines the color of the fog, and the intensity of the
Fog is not finished.
- Effect menu has selections for Boom Deepwater colormap effect:
Sector colormap (Boom colormap behaves same as Legacy colormaps),
Boom visible colormap (where colormap is visible like in legacy),
Boom colormap (where the colormap is not visible like in Boom),
and Boom detect (which adjusts according to detected Boom and Legacy linedefs).
The Boom colormap selections make the Boom deep water sectors appear
normal until walked into, then the deepwater colormap will have global effect.
- CD-music is now makefile compile option.
When disabled, all CD code is removed, including cd-volume
controls. This allows compiling without some special libraries, that
some interfaces require.
- Updated the fragglescript function docs to the actual code
- IPX network code is compile-time optional using the USE_IPX define in
- Grabinput option provided. When enabled prevents mouse escape
from the window and stops the most window manager intercept of key
- SDL Mouse motion option to select between absolute and relative mouse
- Augmented translucent draw to handle alpha of 0..255 for all draw modes.
Water can now be drawn with a nearly opaque translucent alpha.
- Change linedef decoding for new water and fog effects, affecting
301 (translucent water), 302 (fog), 304 (opaque water).
Each of these can now select alpha and a fog mode selection (which
ranges from clear to fog with distance effects). Water does not need to
be crystal clear anymore.
- Add water and fog default controls that give new fog effects to
older wads without the new fog selections.
BUG FIXES 1.44, alpha4
- Stuck monsters, in wads like TNT, was fixed. In TNT, some monsters start
positions are overlapped, and full speed impulse was needed to get them unstuck.
- Menus reorganized for multiplayer setup and compatibility with mods.
- Level names for TNT and Plutonia were not displayed due to old variable.
- TNT Map30 stair bug fixed. The stairs now rise same as in the original.
- TNT Map31 yellow key wad error detected and dynamically fixed. Now
the player can finish the game, even on the original buggy TNT.
- Added Plutonia text that was missing.
- Fixed interference from French language mods upon DEH loads.
- DEH string replacement hardened against buffer overrun and attacks.
- Moved MF_FLOORHUGGER to MF2_FLOORHUGGER, and added code to distinguish between
flag bits in old DEH files, that could be either MF_TRANSLUCENT or MF_FLOORHUGGER.
- Check if -devgame name if valid before use, to prevent segfaults.
- MAX_WADPATH size increased to 256. Use size limited copy and
printf to most buffers to harden against long filenames and path
strings in environment variables, command line switches, and files.
- Harden a net buffer string operation against buffer overflow.
- Fix net demo play function to write command as one string, so it
would not execute partially written strings and fail. Command line
specified -playdemo now works.
- Fixed compilation under windows, tested on Win98 using MinGW.
- Moved created dep files to directory outside of source.
- Under old Win32 version, a GlobalMemory call now uses an older version available on Win98.
- Fixed unsigned char usage that caused GCC 4 compiler complaints on lib
- Fixed exec of config file on Win32 systems. It failed because
the Execute string processing of backslash characters mangled windows
directory strings that use backslash. Commands that have file names
are prevented from processing backslash character codes.
- Prevent directory detection logic from returning "" as directory, that
caused some savegames and config to be saved at the root directory.
- Fix nosound name conflict with Watcom nosound() function.
- A bad blockmap in the wad would cause zone memory corruption due to
allocating and writing the blockmap based on inconsistent blockmap fields.
Not running a node builder on a wad level would trigger this fault.
Missing and bad blockmaps are now detected before allocating zone memory,
and limits fixed to prevent exceeding the allocation.
- Added better ZONEID corruption detection and messages.
- Demo code made to stop interfering with savegame loading.
The screen would wipe, and then wipe a second time and the controls
would be useless.
- Demo code fixed to record and honor monster friction settings.
Older demos need to use MBF monster friction or Doom no friction.
- Explicit check to prevent savegames over 99, and crash.
- Fixed segfault when executing command "teamplay 1" attempted
to re-write const strings.
- Players locked together during spawn in deathmatch has been fixed.
Player respawning now sets MF_SOLID flag to do CheckPosition test, so
collision detection will work while they are still a corpse.
Player corpse now honors cv_solidcorpse setting.
- Use of MAXINT on 32 bit fixed_t variables not safe on 64 bit machines.
Created FIXED_MAX and FIXED_MIN that are safe.
Search for lowest ceiling was flawed by an additional paranoid test that
would also defeat a Boom search limit meant to prevent overflow.
Removed the additional paranoid test.
- In Doom2 Map05, two doors to secret rooms would not work.
If another door (1st of 4 doors on left) is opened first, then an
extraneous tag 9 will move the floors of these two rooms like doors.
Restored some tests that stopped the floors movement
like the original, and the flawed Map05 is then playable.
Revised vid structure to handle problems with Mac and direct video.
The buffer width can be different than the screen width, to handle the
Mac which pads the buffer lines to a power of 2.
Fixes many common draw routines to increment by buffer width instead of
screen width so they are correct for any driver buffer choice.
Every draw routine fixed to draw correctly in all bpp modes.
Fixed 16 bpp draw for 15 bpp and 16 bpp.
Created new draw functions for those that were missing.
Fixed translucent and fog draw using proportional addition of pixels.
Fixed screen fade effects for 15/16 bpp drawing.
- Extensive rewrite of mode code in sdl port driver.
It now handles all bpp mode requests.
I_StartFrame no longer locks the video buffer.
- Fix green console to be more readable and not distort colors in 15..32 bpp.
Dim background to 25% for higher contrast (gray green).
- Update linux xshm to latest interface and improve code.
Can handle drawing in -native bpp mode, -highcolor, -truecolor modes, and
- Update linux ggi to latest interface and improve code.
Can handle drawing in -highcolor, -truecolor modes, and using -bpp.
Does not detect native bpp.
- Doom2 Map8 was dropping into secret level code,
even though it is not a secret level.
Skulls no longer spawn into void walls.
Fixed skull spawning using a version of Boom code that checks on line
Skull limit code made conditional on demoversion.
Pain elementals fixed so if there is not room to spawn a skull, it silently
removes the skull instead of sending it down to floor to explode.
Conditional code is present for:
(REMOVE) remove skull (like Edge),
(KILL) explode in place (like prboom),
(DAMAGE) explode on floor (previous Legacy).
Increased the save game buffer reserved free space from 2K to 4K,
and the header buffer size.
- Fixed Boom translucent linedef 260.
Tagged lines now get the translucent effect too.
Recognizes and uses named translucent lumps introduced by linedef 260.
Analyzes Boom translucent lumps to get alpha for DRAW15, DRAW16,
DRAW24, DRAW32, and opengl draw modes, which now work.
Will draw using closest existing translucent implementation, or use
Added TRANSLU_75 in RGB draw routines, to implement a 75/25% translucent draw.
OpenGL does draw the translucent textures in BOOMEDIT.WAD.
- Boom deepwater colormap fixed.
Effect menu has selections for Boom Deepwater colormap effect: Sector
colormap, Boom visible colormap, or Boom colormap.
The Boom colormap selection makes the Boom deep water sectors appear
normal until walked into, and the deepwater colormap has global effect.
- Gave the Point pusher a square law effect (enabled by mbf_support),
as in prboom (an MBF feature actually, Boom is not square law).
- Fix a Doom bug: cannot raise a door when ceiling action is in same sector.
Add check to door logic that ceiling action being modified is a door action.
This also prevents corruption of the ceiling action.
Derived from prboom fixes doc (cph 2001/04/05).
- Fix signed mapthing_t angle that would create table lookup using
It does not emulate the Doom buggy behavior.
Note prboom fix doc (cph 2001/04/05), of Vanilla Doom bug found by Ville Vuorinen.
- Fix strcmp error in BEX parsing of FRAME and PARS.
Fixes hg.wad, eye shooting missiles.
- Fix hardware render to draw translucent in distance order.
This fixes BOOMEDIT.WAD.
- Boom deepwater colormap fixed in hardware renderer.
Extend view_colormap to affect hardware render too.
- Fix buffer overrun of print strings by video card extensions.
New functions will get the GL info strings,
check renderer, and set gl_extensions string and oglflags, and
also print extension strings on multiple lines, without buffer overrun.
- Fix buffer overruns caused by vsnprintf to buffer without string termination.
New function will handle va_list printing to console.
- Fix hardware render so that colormaps affect objects too.
- Fix some floor and switch code to detect incomplete fragglescript
created linedefs (no sidedefs, no frontsector),
and skip secondary actions that would have segfault.
Fix fragglescript to init more fields in temp linedef to some safe
value, to prevent port dependent crashes.
- General cleanup on all fragglescript functions.
Added many checks for valid mobj and fields that could segfault in fragglescript.
Fixed much of fragglescript code fragility.
- Fix wipe for bpp draw.
- Make palette used by draw15, draw16, draw24, draw32,
respond to gamma settings, and palette changes, such as palette flash,
object pickup, damage red.
- Fix ouchface again, as previous fix was not complete.
Ouchface is now visible for more than one tic, and works for
- Fix texture patch combiner to handle compressed patches.
Compressed patches, which share some columns, caused the estimated
size and memory allocation to be too small, and it would abort into
using picture format instead.
This fixes the elevator railings (SW1COMM) in Requiem.wad MAP08,
which use compressed patches.
- Fix mouse event handling to add mouse motion, and rewrite of mouse
handling. This fixes OpenBSD mouse problems.
- Fix opengl mode to switch video modes as other modes do.
- Status bar overlay in opengl mode was not positioned correctly.
Fixed it so position is consistent for all video modes.
- A previous patch sped up P_CheckSector, but made it vulnerable
to a second thing being removed by the player on a moving lift,
resulting in a segfault. Instead, use the previous behavior of restarting
from beginning of touching_thinglist.
- Fix bug introduced by BOOM_COLORMAP, which segfaults when restoring
game saved during use of fixed_colormap.
- Allow Heretic and Blasphemer PWAD to fully use the SWITCHES lump without
restricting it to only episode 4.
Other ports do not have any restriction on Heretic use of the SWITCHES entries.
Requested by a Heretic wad project.
Checks for missing switch textures and defaults to use texture 1.
- Shortened some of the Boom Colormap Option text strings so they fit
low-res screens. This affects saved configs.
- Add test for colormap fog using viewer_extracolormap. This is not
very good fog but at least it works now as documented.
- Cleanup of hardware renderer code to make it easier to
maintain. Cleanup of code in hw_cache, concerning bytepp, endian issues,
and much better draw code for the various bytepp switches.
- Fix hardware draw of fx1 translucent.
Fixes display of linedef 288 in opengl.
- Fix the hardware draw of Boom and view_colormap.
Now see global colormap change with Boom deep water and colormap fog
in opengl mode.
- Fix segfault in dsv4. When wrong buttons are pressed player is hurt.
If they are pressed after getting the yellow key, then segfault.
There is a mobj without a subsector, and script code must check first.
- Fixed the legacywad filename to use compatible allocation and usage so that
a terminator of the string is not written into other data space.
This caused segfault at program shutdown.
- Light calculations are now done internally in range 0..255.
- Chase camera is now fixed to be usable with splitscreen players, with
the first player getting the chase camera.
This could be expanded to allow two chase cameras now, but the chase camera
gets hung up going through doorways, so I do not recommend it.
- Gun effect light is now 3/4 for colormap fog,
and 1/2 for FF_FOG, instead of the previous none.
Light precedence is now FF_FOG, colormap fog, translucent, normal.
- Rewrite all fog draw functions to new specifications and fog alpha.
Create fog face sheets and fog join sheets.
- Fix split wall draws so that hardware renderer draws water sides with
3dfloor backsectors, and they are drawn translucent.
- Fix bug of -opengl in hw_cache introduced in svn973, triggered when imps
FEATURES 1.44 alpha3
- Stop demos when menu opens.
- Voodoo doll damage effects upon players are restored.
- Voodoo doll mode control (Vanilla, Multispawn, Target, Auto).
- Voodoo doll telefrag instadeath control (Die, Damage, Zap).
- Remove hard limits for brain targets.
- Start game menu asks user "Abort this game. Y/N" when user is
already in a game, and upon "YES" will abort the game and continue.
- Mouse will no longer change menu values without pushing a button.
- DoomLegacy demo format will have a header of version 144, and the
characters "DL". DoomLegacy demos shall only use the one demo version number.
Three later fields shall record the DoomLegacy VERSION, demoversion,
and sub-demoversion numbers.
Not yet enabled, alpha still writes demoversion 143.
- Changed to MBF style sector friction (from examination of Killough code in prboom),
making DoomLegacy more consistent with DoomLegacy 2.0, prboom and
other modern ports, with some fixes and differences.
Water friction and Heretic friction are also converted to sector friction.
Sectors get the friction and movefactor values at load time,
and are updated whenever a flag or friction control changes.
Finds stickiest friction on icy sector edge too.
Independent friction for each 3dfloor slab.
Old boom friction thinker code is compile-time conditional (FRICTIONTHINKER),
and is only used for demos. Demos select appropriate friction code.
Did not preserve perfect demo compatibility with Boom and prboom.
- Converted to independent player bob momentum of Killough, as in DoomLegacy 2.0,
MBF and prboom, with fixes and adaptations.
Compile-time conditional on BOB_MOM.
Fixes many problems of previous bobbing, such as bobbing while riding
conveyor, and interaction with friction.
- Monsters use same sector friction as players.
Selection mechanism for monster friction (none, MBF, momentum).
The MBF monster friction only gives the monster momentum on ice,
and this creates surge when moving off ice, and stall when moving onto ice.
Momentum monster friction selection accumulates momentum on every move,
and fixes the surge and stall problems.
Additional code to prevent hangups on dropoff ledges, get monster
unstuck from edges, and to allow monsters to fall off conveyor belts.
- Create Adv Options menu, for monster friction, gravity, voodoo mode,
voodoo insta-death, and door delay.
BUG FIXES 1.44 alpha3
- More checks against buggy wads.
- Fixed colormap name in colormap missing message.
- Fixed recognition of Plutonia.
- Make savegame loading tolerate of added control vars.
- Fix savegame restore of voodoo dolls to not modify players, fixing savegame load crashes under
- Remove hard limits for braintargets, similar to prboom.
Prevents overrun of braintargets array.
- Fix vile revive monsters stuck together bug.
- Fix vile fire location bug.
- Timelimit fixed. Will now count minutes instead of tics.
- Fix game menus, so that the check for "already playing" will give
the user an immediate message asking "Abort this game Y/N". Upon a
YES it will quit the game and let the user continue.
- Fix mouse bugs in menus and reduce sensitivity.
Fix so mouse cannot change values until button pushed, because previously
one mouse slide could accidently change a dozen values.
- Fix fragglescript parsing to use safer, faster
string handling code, to protect against overrun of strings.
Simplify fragglescript function args concatenation.
- Fix code so savegame description allows spaces again.
- Fix Makefile to link MATH1 functions pow and powf, for pld-linux.
- Patches submitted by pld-linux to fix linux_x video, handle more
video modes, and TrueColor.
- Linux 2.6 compile warning messages squashed, and smaller code.
- Fix TNT recognition.
- General repairs to linux_x directory.
Update system calls to same changes as made recently to SDL.
Fix prototype changes.
Fix keyboard translation and event posting.
Add X error handler code.
Fix X joystick code.
Verified to run Linux X11 in software mode.
- Fix spritelump array to be dynamic expanded, thus removing spritelump
- Fix CheckCheat to avoid special keys being mistakenly recognized.
The cheat code was seeing the 0 key =0x48 and LSHIFT key =0x0148 as the same.
- Fix more dehacked special string copies to use Z_Strdup, like the other fixes,
so do not write const string.
- Fix mancubus fireballs going through walls.
Fix bug of missiles exploding within walls instead of upon them.
- Fix demo code to better handle boom, prboom, demos.
Correct the turn code to use relative turns for boom demos.
- Moved a Heretic chicken friction calc, which may have fixed a latent bug.
- 3dfloor opening code rewritten, simplified logic, moved redundant
tests making it faster, and fixed an error.
- As suggested by Fraggle, use (width-offset) instead of offset when displaying a
sprite frame flipped.
FEATURES 1.44 alpha2
- Boom demo headers are now recognized and the demos play better.
They will not stay in sync, but will no longer crash the engine.
- Revised game description tables now have three wad names for each
game type, to recognize more naming variations.
- Sprites Limit: Adjust the number of sprites displayed by software
renderer from 128 to 16384, depending upon where your machine bogs down.
- Removed sprite display limits in software renderer.
The number of displayed sprites is dynamically adjusted according to the
sprite count, and the user setting in the Effects menu.
The menu control gives a soft limit from 128, upto 16384 sprites.
The sprite display is hard limited to twice the user setting.
When there are too many sprites, the nearest sprites have preference,
the farther sprites have semi-random visibility (they flicker),
so the player can sporatically see the sprites in the distance.
- Savegame size is now unlimited, and uses much smaller savegame buffer.
- Replaced the odd command line switches for game development with
one switch that specifies the gamename.
BUG FIXES 1.44 alpha2
- Z_Malloc memory locking, to protect the status bar textures from
other routines using and releasing them.
- Bug fix on endian conversion for switch textures.
- Fixed the automap for screen sizes and splitscreen mode.
- Fixed splitscreen mode and splitscreen mode sound.
- Protect splitscreen mode setup from demos.
- Updated code to reduce compilation complaints from GCC 4.4.4.
- Fixed texture generation failures in caesar.wad,
detect and replace PNG patches with a dummy,
handle empty patches,
and split posts longer than 255 bytes.
- Fixed crusher logic so that they will crush floating monsters too.
- Fixed game modes so is easier to understand names, and fixed bad
test for heretic shareware.
- Fixed game recognition by Ultimate doom wad name.
- Fixed a number of nusance bugs in the savegame menu system.
- Display ".." as the UP-DIRECTORY menu entry.
- New directory can be created from DIR line and from any blank directory entry.
- Fixed "EMPTY SLOT" message being presented as a savegame name.
- Fixed very old segfault in savegames of DoomII MAP27, which
opened a door by level logic instead of a line trigger. These failed
after restoring a savegame.
Fixed savegame to save and restore NULL ptrs for line and mapthings.
FEATURES 1.44 alpha1
- New Effects menu, makes room for the additional user controls.
- Gamma generation: Gamma table is generated from the selected gamma
(Gamma, Gamma_black, Gamma_bright_black, Linear).
The Gamma function has 25 gamma setpoints.
The Gamma_black function has gamma and black level controls.
The Gamma_bright_black function has gamma, black level, and bright
The Linear function has two setpoint controls, each of which has 25
- Door delay: Option control that slows doors by x1.5, x2, etc.
so that player has more time to get through them.
- SoftError: Many hard errors (fatal) have been changed to soft errors,
where the user will get one message, and the game will be allowed
- Voodoo dolls added. The voodoo doll was an accident of the original
Doom, that many wads made use of to trigger linedef actions.
Extra player1 starts now create voodoo dolls, with the last being the
actual player1 start position.
- Demo fixes. Demos that Legacy cannot play back are now recognized
and rejected, so they do not crash the engine.
- Z_Malloc allocation compile options, user selectable in z_zone.c.
PLAIN_MALLOC: Large memory, no reclaimation.
TAGGED_MALLOC: Will free allocations according to tags kept in the allocations.
ZONE_ZALLOC: Improved version of original zone allocation. Allocates
from large pre-allocation of memory, with tags, and frees allocations
according to tags.
GROW_ZONE: Option on ZONE_ZALLOC that grows the memory usage when free
blocks cannot be found. This is the default now.
AGGRESSIVE_PURGE: Option on ZONE_ZALLOC that aggressively purges
downgraded allocations instead of leaving them as cache.
Mostly for testing memory usage code, but also usable for small memory.
- Texture generation now handles multi-patch transparent
textures. The code selects between three rendering methods, one of
which creates a single patch transparent 2-sided texture from the source
This now software renders the gates in Phobia.wad correctly.
- Game determination characteristics and parameters are now in one table.
This allows special game wads to be added easily without errors. The table
specifies a Legacy support wad for the specific game that will now be
automatically loaded (none exist yet).
- Savegame format now has a header that specifies the name, map
number, time, the wad, and the command line switches. The savegame
display shows the name, map, and time. Upon loading the savegame must
match the current wad.
- Savegame format now records the endian and word size. Loading now
detects these and other critical parameters to intercept incompatible
- Savegame now allows up to 99 savegames in one directory.
This is a compile option.
- Savegame now supports savegame directories. You can have a
separate savegame directory for each wad. This is a compile
- Hardware renderer now can display Boom colormaps.
- Hardware renderer now has lighting level variation with colormaps.
- Chexquest support is enhanced. The Doom pictures that are in the
Chexquest wad are now blocked when in Chexquest game mode, along with
blood splats and Doom episode names. Chexquest splats are less violent.
- Full international keyboard support (SDL).
- New joystick/gamepad code, should support all modern controllers (SDL).
- New FS functions.
- Audio output samplerate raised to 22 kHz.
BUG FIXES 1.44 alpha1
- ENDOOM lump updated with current information.
- Build process brought up to date: Automatic dependecy generation,
serious Makefile cleanup, SDL as the default multimedia interface,
LOTS of compile-time warnings fixed.
- 64-bit compatibility.
- Flat search logic once again honors the F_START, F_END, FF_START,
FF_END markers. Only if it fails to find the flat within those
bounds does it search the entire wad. At least one wad had an
extraneous lump with the same name as a flat, and Legacy will now
behave as well as other Doom ports.
- ZALLOC memory management fixed. It had a latent bug that would
corrupt memory management for some aligned allocations. It also
allocates more memory now, so larger levels can be handled.
- ZALLOC memory users fixed to protect their in-use allocations against
accidental purging by other memory allocation calls.
Added new classes of allocation tags and code to protect them.
This fixed several bugs that would hit only certain wads.
- Z_Malloc tagging improvements to give cache preference to expensive
combined multi-patch textures.
- Fixed memory leak when purging sectors at end of level.
- Time tick fixed so that it can handle time count overflow and wrapping.
- Replaced all uses of gets library function with fgets, which is
- New endian conversions, uses standardized, with most uses moved to
wad reading functions, so should be endian-safe now (Mac users).
- Several vsprintf/vsnprintf-related potential crashing bugs fixed
in the console code.
- Fixed bug where life and ammo status would have bad background after
a save game.
- Fixed bug where things can overdraw the status bar.
Added limit checks where things are split by a Legacy 3D floor.
- Fixed sound to work on both old SDL mixers (non-functional RWOPS) and new SDL with
a working RWOPS. The SDL mixer version is detected at compile time.
- Heretic save game fixed so that it does not use up an inventory
- Heretic sound fixed. Heretic uses a different naming scheme
for sound effects.
- Fixed the bug that was triggered by the big room in 3DHorror.wad.
Limited the span code to valid span ranges, so such situations cannot
accidently cause it to overwrite several arrays and other static memory.
- Prevent having a segfault for some wads with minor flaws,
like using a Boom linedef 244 instead of 242. Tests the b-nodes index
for being valid before using.
- Fixed Phobia segfaults due to a texture with one small patch.
- Fixed segfaults from low level draw clipping exceeding the bounds
of an array. The callers are fixed to limit the width drawn.
- Wads with missing sprites will no longer cause segfaults.
- Fixed the fighting code to test some target ptrs before using them. This
prevents segfaults during heavy monster in-fighting.
- Fix large vertical bars drawn in Phobia.wad map07. Software rendering
calculations were overflowing due to the extreme height and depth of
- Fixed clipping artifacts seen in Twilight.wad. Limit the x range
earlier so do not exceed the screen width.
- Fixed Dehacked segfaults due to trying to overwrite const strings.
Some compilers allow that, but not GCC on Linux.
- Hardware renderer fixed to use some of the same code fixes as the software
render for things like 3Dfloor lighting. The hardware renderer now
correctly lights things under 3D floors.
- Prevent segfault when 3Dfloor does not have a side texture.
- Display fog sheet in software renderer.
- Sprites behind a transparent wall are now displayed by hardware
- Fixed Medikit bug, from DoomWiki known Doom bugs list.
- Fixed ouch-face bug, from DoomWiki known Doom bugs list.
- Fixed blaze-door bug, from DoomWiki known Doom bugs list.
- Fixed monster-attacks-self bug, from DoomWiki known bugs list.
- Fixed boss-death bug, from DoomWiki known bugs list.
- Fixed sleeping-sargeant bug, from DoomWiki known bugs list.
- Finished buildstairs bug fix, from DoomWiki known bugs list.
- Display Chexquest goo splats, instead of the bloody splats from the
legacy data wad. Chexquest table entry specifies that Chexquest wad
- Fixed segfault due to lightlist bad value, seen in Chexquest-newmaps.
- Centered the scope crosshairs in Chexquest-newmaps. They were off
to the left for some screen resolutions.
- Allow Chexquest-newmaps to access more than the 5 maps that
Chexquest had. Use of the "-file" switch on command line allows all maps
to be accessed.
- Fixed savegame code to handle more than 1023 thinkers. The hth2.wad
saves 1899 thinkers.
- Number of colormaps increased to 64. The hth2.wad has 38
- Detect some buggy wad conditions and recover or gracefully
exit. Detects bad linedef number, missing sidedefs, bad sector
number, bad seg number.
- Fixed math overflow for large maps like Europe.wad MAP01 (which really is too
large, but plays now). One corner of Europe.wad is beyond the blockmap
and walls there are walk-thru.
- Fixed blockmap loading to deal with large maps like Europe.wad, which
overflows the blockmap numbering x3. The code now detects the
overflow and adds the missing upper bits of the blockmap numbering.
- Fixed the automap to handle large maps like Europe.wad. Math
overflows are detected and the automap zoom is limited to avoid them.
- Fixed the automap to track the center of attention instead of the
corner of the window. This keeps the map centered when zooming.
- Sprites that fail to draw over the floor due to too many 3D floors
close together. Seen in hth2.wad. Caused by the height of the nearby
railing affecting the sorting of the sprite relative to the floor.
Fixes to 3D depth sorting are already being investigated.
- When walking into water, when the eyes are right at the water
level, it will display bad clipping above and below the water level.
Occurs for both software renderer and the hardware renderer.
A fixable cause has not been discovered yet.
- Under Linux the SDL port code works. The non-SDL port to X-Windows has
problems with screen modes that cause it to fail.
- Corona on lights are misplaced when the wad replaces the sprite
and the bright spot position is different. The Corona positions are from
measuring the original doom sprite bright spot positions.
- Corona on far light is drawn over nearby solid object that
partially blocks the view of the far light.
- The field-of-view clipping is clipping polygons at the edge of
vision as if the player were looking straight ahead. This has not
been fixed yet for player looking up and down.
- The hardware renderer BSP traversal is having rounding errors
from sector splitting that show up as cracks in the floor.
1.43 Beta (2004-06-14)
This release was primarily for Mac OS X, but had some small fixes that
were carried into 1.44.
1.32 Beta 4 (2002-01-01)
1.32 Beta 3 (2001-08)
Lot of fixes as usual for a beta.
- Translucent 3D water and 3D floors in hardware mode
- Coloured sector lighting in hardware mode
- New corona code
- Improved load level time in hardware mode
- Show a status of level load in hardware mode
- now legacy can load skin using sprite keywork (original spec)
- Use Transform and lighting in OpenGl
- draw full screen when status bar is not scaled in hardware
- fixed heretic weapon height in opengl/glide
- fixed conflicting sector type 4 (heretic/doom)
- fixed moving hanging mobj on platform (heretic e2m5)
- fixed error message while saving
- fixed crash of e3m8 in heretic caused by object 56 badly handled
- fixed crosshair not showed when joining multiplayer game
- fixed file search in windows version, was causing problem in
multiplayer game with additional files
- fixed option "se" not drawed is some video modes
- fixed map30 savegame crash
- fixed commander keen dead not open door
- fixed player reset between secrets levels of doom2
- fixed problem of map29 not loading
- fixed timelimit cvar problem in menu
- fixed quoted badly handled in responce file
Shipped with Launcher 1.4
- handle e?m? map name in heretic mode
- added direct 3d sound switch in setup panel
- now launcher encloses wad string between quotes to send
parameter to legacy. This allows space and special
characters in wad files
- option are now saved when legacy is started
Was in beta 2 but no doc updated
- fixed joystickfreelook cvar not working
- added little menu cosmetic that tell when the serverlist
is empty and fixed little problem of refresh
- fixed (one more time) angle prediction
- added posibility to change death message by dehacked scipt
and fixed some ones
- added gr_coronasize in the menu
- fixed final cast not showed corectely
- fixed some problem with heretic final episode stuffs
- fixed reset of weapons on doom2 map07, map12 and map21
- fixed bug 427507 : doors no more turn corpse to giblet
- fixed problem with load/save menu screen that screw up
the texture cache in glide, and display badly in opengl
- fixed 3D floors crash in software
- improved heretic support :
- fixed network not working
- fixed height of weapons on heretic
- fixed heretic invenory key handled in menu (bug 426338)
- added native support of heretic1.wad
Was in beta 1 but we forgot to mention it
- removed main wad version checking
- fixed cannot restart game after end of a episode
1.32 Beta 1 (2001-05-08)
Added Heretic support it is already playable but still experimental
see heretic note in legacy.txt for more
- added gr_coronasize cvar this allow to adjust coronas size
to you screen size and your distance to the screen
- fixed litle glide issues
- fixed texturing problem in hardware mode with middle twosided texture
- change the way legacy handle color in opengl/3dfx
this allow better contrast
- fixed little problem of backface culling of lights
- added support for 3D positional sound cards (now under Win32 only).
See Legacy.txt for more details.
- enable client angle prediction was removed from 1.31 by mistake
- fixed some issues in network (game sometime lock)
- implemented timeout detection and kick player if connection timeout
- added cvar scalestatusbar so you can see it in original size
or scaled to your resolution
- Win32: added -nodinput command line parameter (use standard Windows
mouse input instead of DirectInput) to resolve issues with some mouses
under Win32 systems (like issues with mouse whell support under
- joystick can be used for free look using joystickfreelook cvar
- like in heretic now missile can now active weapons switches
- suport heretic ambient sound
- BUG FIXES
- fixed little issue that allow to exitlevel even if allowexitlevel
cvar was set to false
- Known bug (don't mail us about it !)
- in 3dfx/opengl :
- splat/bullet hole have serious problems
- water don't show properly
- there is white dots around some wall/floors/ceiling
- the lighting is slow (mainly on slow 3d cards or low end PC)
- missing polygone/textures one some levels
(need to be rebuild with new nodes builders like zennode or deepbsp)
- no more coronas for mancubus balls
- added light for revenent fireball, lost soul and candle
- fixed full transparency of torch
- make backface culling for lights
- new menu option : create server and connect server
- use masterserver to detect all server in the world !
- added "internetserver" ,"masterserver" and "servername"
to use in conjunction of new multplayer features
see console.txt for more
- no more palette change in splitscreen
- fixed issues with netgame and dehacked (it is now copyed automaticaly
like all wads)
- deathmatch team-start-sectors can be created with normal deathmatch-
starts in a sector. A sector/line-tag and a line with linedef-type
1000-1031 prevents other teams from respawning there.
- when solidcorpse is true you can smash it and turn it to giblets !
- adjust buchholz for suicide.
- added FraggleScript scripting capability ! (as beta for now)
Read the doc for more
- added 3DFloors capability (as Beta for now)
Read the doc for more
- Legacy now detect free memory and allocate from 6 to 20 Mb
The "-mb" option overwrite detection
- remove limit of polygone pool
- the STFB0 is now optinal in a skin replacement
- allow use of joystick y axis for looking up/down just use mouselook cvar
- added support of mouse wheel under WinNT
- Support Dolby Surround sound (only for external decoder)
- display #SECRETS and #MONSTERS on the overlay! NOTE: add 'S' (secrets)
and 'E' (monsters) to the "overlay" cvar for seing them.
- BUG FIXES
- fixed crash with splat on two sided wall
- fixed little issue for look up/down of splitscreen player with keyboard
- fixed splitscreen variable with demoplayback
- fixed player viewpoint when using F12
- removed monsters steping
- fixed random crash in OpenGl/Glide when load level
- fixed minor stuff to increase compatibility with old wad
- fixed death meassages issues : telefraged and when weapon change before
the player die
- Thierry Van Elsuwe (aka Hurdler) ported to OpenGL our glide code
so Legacy have now OpenGL support with some new OpenGL specific
features like FOV "what you want" (zooming),...
- improve glide support, fixed all texture problem and so one
- fixed many splats problem so now is enabled in the code
- Opengl/3Dfx added new features like coronas and dynamic lighting
(unfinished),... added new cvar for this at the same time.
- fullscreen and windowed mode under Linux or Windows+OpenGL
- Join in game : now you can join the game without a restart of the
- added automatic file copy through network
- added seconde mouse support for splitscreen
read the legacy.txt for more about it
- added support for ipx under win32
- now the engine wrape around level in deathmatch no more final screen
- splitscreen variable can now be changed while in netgame
- added -noresetplayer to map command
use this option to keep your weapon and keys through a map change
it is used internaly by the engine for usual map change
- added allowturbo and allowexitlevel cvar
- added splats cvar to enable/disable splats
- added translucency cvar so slow cumputer can disable translucentcy
- added controlperkey cvar this allow you to enable/desable
more than one control per keys
- added screenlink cvar so you can enable the color melt screen link
- added gimme map
- Boom compatibility, except BEX and lindef 260, Thanks to SoM
- impoved Linux support (similar to win32 one)
- Dos version can now use winsock 2.0 (default in Win98)
Thanks to the libsocket team
- enable color blend for screen translation (was in the original sources)
- added video menu and move some option there
- support mouse wheel in win32 version thanks to Dominique Leger
- added joystick hat support under win32
- improved launcher for windows version
- BUG FIXES
- fixed some serious network issues
- fixed multiple dehacked don't load
- fixed can take the chainsaw in doom1 or udoom with next/prev weapon key
- fixed can't save when use -warp or +map
- fixed timedemo work now more than one time
- fixed cdvolume bounds in win32 version
- translucency now use colormaps
- and fixed some more tiny bugs
- Known bug (don't mail us about it !)
- in 3dfx/opengl :
- splat/bullet hole have serious problems
- water don't show properly
- monsters/sprite have feet(head) in ground
- there is white dots around some wall/floors/ceiling
- the lighting is slow (mainly on slow 3d cards or low end PC)
- the light of sector is not correct !
- missing polygone/textures one some levels
(need to be rebuild with new nodes builders like zennode or deepbsp)
- FULL WIN32 PORT
- no more compatibility problem with sound and graphics card
- plays MIDI music through whatever MIDI output you have set
(including software midi synthesizers like those of Yamaha)
- uses TCP/IP network instead of IPX, allows internet play
- includes a preview of the 3Dfx mode (that r_glide.dll file)
- 3DFX BETA VERSION
- you can choose between software or 3Dfx accelerated mode
in the Doom Legacy Launcher 'Setup' panel, without the
launcher, use "-3dfx" on the command-line
- 3Dfx mode is available through the r_glide.dll, you need
the latest Glide 3 drivers from www.3dfx.com
- fixed shooting with mouselook, note you can fire at 90 degree
up and down, but he sprites will look 'flat'
- you can now change resolution at run time through the video
modes menu (F5), just like in software mode
- uses external r_glide.dll file : this WILL be a feature,
because it allows for future extensions with OpenGL,
Direct3D, or even hi-color software modes
- COOL LAUNCHER
- setup single and multiplayer games easily
- add external wad files with file dialog
- set your Preferred Weapons Order (tm) =)
- easily switch between Doom1, Doom2 etc..
- Demos section allows quick 'n easy playback of demos, the launcher
saves the external files, and your comments into the demos!
- forget about the command-line !
- SPLITSCREEN !
- two player game on one computer!
- within a multiplayer game, any computer can 'host' 2 players
thus with 2 computers, you can have a 4 player game !
- when playing back a demo, type in 'splitscreen 1' at the
console to show 2 views at the same time
- TCP/IP MULTIPLAYER
- Legacy now uses TCP/IP (DOS version also supports IPX)
- '-connect' auto-detects the server on a LAN (when computers
are directly connected together)
- the server passes the list of files added with '-file' to the
clients (but clients MUST have the file)
Note: the files on each computer must have the same date or
Legacy will stop with a warning message, you can disable date
checking with '-notime' cmd-line option
- demos can be recorded by only one player in a network game
(use "stopdemo" to stop recording without quitting the game)
- "playdemospeed" console variable allows faster playback of demos
- "addfile" and "map" commands can load skins while in game
- "fastmonsters" : same as -fastparm parameter
- "map" command enhanced :
map <mapname[.wad]> [-skill <1..5>] [-monsters <0\1>]
this allows to change skill and monsters at run time
note : these two parameters are optional, if not specified the
current value is used
- "timelimit" allows server to set a time limit on a level
- "chasecam" activates or desactivate the chase-cam mode
- "cam_height","cam_dist", "cam_speed" to customize the chase-cam
- GAME STUFF
- display KEYS on the overlay! NOTE: MAKE SURE TO ADD 'K' TO
THE "overlay" CONSOLE VARIABLE IF YOU KEEP YOUR OLD CONFIGURATION
- Next and Previous weapons controls added in 'Setup Controls' game menu
- Legacy's 'true' water effect was enhanced with physics: press
Jump button to swim up, or use mouselook, friction, gravity..
- "-iwad xxx.wad" : you can keep all your original Doom versions
in a single directory and choose which one to run with this switch
(example: -iwad plutonia.wad)
- "-file" searches for files recursively, starting at the directory
where you run Doom Legacy, it will find files in any subdirectories
THIS IS VERY USEFUL FOR MULTIPLAYER : for example, provided everyone
has the 'hipafrag.wad' map, the server just types 'map hipafrag.wad'
and all clients will load the map, even if they have placed the file
in different directories
- savegames enhanced (works better)
- DOS VERSION ONLY
- the DOS version supports both TCP/IP _AND_ IPX
TCP/IP is used when you use the "-connect" or "-server" parameters
- Joystick support enhanced, type "help use_joystick" at the console
- mouseaiming works better, and aim is now correct independently of the
- fixed crash when starting netgame in Cooperative and there are not
enough player starts
- fixed many problems.. (ok, bugs) with 1.27 and 1.28 betas
- fixed 1.9 original bug : demos get out of synch if you go into the menu
- KNOWN BUGS
- Alt-Tab/Alt-Escape in windows with 3Dfx preview may crash
- Sometimes video modes are not detected when you start Legacy WIN32 from
a fullscreen DOS box, just use Doom Legacy Launcher, damnit !
- documented version 1.27 changes! see below
- GAME STUFF
- new in-game menus allows setting console options easily
- "deathmatch" console variable : change deathmatch mode
at any time!
deathmatch 0 = cooperative
deathmatch 3 = deathmatch 2 + weapon stay (dm1+dm2)
- fixed problem where 2 or more skins would have the same
name, made it impossible to browse all skins in the
- "fraglimit" : go to intermission after limit of frags is
- the DOS version should work better with modem
(using HX8 or SERSETUP)
- the DOS version supports TCP/IP using __Winsock 1.0__ ONLY
See section [5-5] of the main documentation
- pass console commands on the command-line using a "+"
> legacy +color 7 +name "the killer"
- human readable console variables, example:
type "help <commandname>" to see possible values for each
console variable, note the old system still works
- "exitlevel" : ends level and goes to intermission, comes in
handy when you get stuck in a level or you don't find the key
- "bind" : attach console commands to a key, example:
bind s "screenshot"
bind h "sayteam help me guys!!"
- "screenshot" command takes a screenshot, pssst: bind it
or you will screenshot the console =)
- "vid_ticrate" shows a graph of rendered frames timing
- "save" command : saves game, works in multiplayer too
- "load" command : load previously saved game, multiplayer too
- "timedemo" : like -timedemo it will playback a demo as fast
as possible to test the speed of the renderer
- "map" and "addfile" commands now loads textures!
- "sayteam" : sends a message only to your own team
- added 3 new commands related to configuration :
loadconfig : load a previously saved config file
saveconfig : save the current config, you must give
an explicit file name
changeconfig : switch to the config (saves current config, and
load another one)
- supports 'multipatch' textures on any 2-sided wall !
- 5 new linedef types for translucent walls : 201 to 205
- fixed 32 skins limit, would not check for the limit,
and crash if more than 32 skins used. No more crash but
the limit is still 32 skins.
- fixed bug in the display of frag in intermission in teamskin
- fixed map7 bug when the 2 last babyspider die at same time
(original 1.9 bug)
- fixed gamma max value
- fixed final pic shows in doom1 and bunny scroll
- fixed "got unknow netcmd 109" when changing player config
- many, many bugfixes and internal changes.
NOTE! The chasecam key is now '/' slash on the keypad, and it
is available only in '-devparm' mode.
- SKINS !!! : a skin is basically a full sprite replacement
for the player, with optional specific sounds (hurt, death,
jump etc..) and optional status bar face to go with it.
Skins are simple wad files, that can be added with '-file'
on the command line, and you can have as many skins as you
want into a wadfile, so prepare for skinspacks galore!
With Doomatic (our deathmatch launcher), the copying of
files to other players is automatic, so the skins are
automatically copied to other players. Using your pre-
ferred deathmatch launcher, just make sure everybody
have the skins wads.
Skins work in single player too, you can admire your skin
while in chasecam mode (use '/' slash key on keypad while
in -devparm mode).
- TEAMPLAY and TEAMSKIN deathmatch modes : you know about
teamplay, teamskin is like teamplay, but using skins to
identify teams instead of the color. Of course the frag
rankings and intermission are updated to show team scores.
Plus, there's a 'teamdamage' console variable that allows
to choose whether your team partners get hurt when you
shoot'em or not. Quake's teamplay is Legacy's teamplay
with 'teamdamage' at 0.
Cool! 'teamdamage' also works in cooperative, so in
cooperative you can choose whether you can hurt your
coop partners or not.
Like in Quake, the armor is always damaged in teamplay
if you hurt your partners.
When you are hurt by a partner, and teamdamage is off,
you won't see blood and the screen won't go red.
- NETWORK IMPROVED : the 'slow turn' seems to be fixed now.
Even better, we can call this the 'angle-turn client
prediction' as your view now moves _before_ the server
receives it. As you move around the view quicly in multiplayer,
it is now smoother, especially in higher resolutions.
Please tell us how you feel the improvement!
- viewheight : set the height of view, if you want to see what a Leprechaun
sees, just lower that! It's good to frag those giant marines
when you're a little teeny-weeny Leprechaun, heheheeee
- skin,teamplay,teamdamage : for teamplay modes
- frags,teamfrags : these shows the original Doom frag table, and also for
teams vs teams !
- memfree,help : see what memory is used in Doom's heap, see how much physical
memory is left after you run Legacy.
- addfile : completes 'map' command, loads external pwads at run time, currently
able to load the sprites, sounds, musics, flats, and maps,... but
not new textures (to do). Also to do is load the skins in pwads
at run time.
- 'hall of mirrors' removed (thanks to Demiurg and his cool rivbrid.wad which
looks really nice)
- visplanes limit increased (should be plenty) (thanks to Russel and his huge
pract.wad that broke Legacy's 256 drawsegs and 256 visplanes with... up to
896 drawsegs at once (2sided lines), and 380+ visplanes when flying above the
map with 'IDFLY' !!!)
- dehacked patches files with .DEH extension can be added
after '-file', which makes it very easy to use patches
with your usual deathmatch launcher (it doesn't have
to know about the dehacked, then, and Doomatic will
copy the dehacked patches automatically since it is
part of the wad files).
- end sequence (finale) fixed for higher resolutions
- 'splash' sounds when walking and jumping in water
- can't cheat anymore by jumping in dangerous fluids to
avoid the damage as it does more damage now.
This makes a lot of deathtag levels playable again
with Legacy (as lava was used to prevent scoring unless
you have got the 'steel boots' armor)
- testing deathmatch maps alone using '-deathmatch -warp'
didn't work in last version, now fixed
- that horrible 'SIGSEGV' bug due to a faulty CD-library,
- other little goodies you'll find yourself...
- added CD Audio music, along with console commands 'play','stop',
'info', etc. CD Music volume is in the sounds menu (F4).
Note: cd audio and midi music are separate, and can be active
at the same time. This is useful if, like me, you have
some 'ambiance sound' cd's like sounds of storm, rain..
you can use it to add ambiance, while still listening to
the midi music.
Usually, you will want to turn either the music or CD
audio volume to zero.
- some minor changes in the network, we noticed a serious problem
with FAST machines & SLOW network cards, seems to work fine now.
- fixed the backspace problem in the chat
- fixed problem with some playback of lmp version 1.20
- warp parameter work again with doom1 and ultimate
- fixed switch textures that didn't 'switch' in ultimate doom.
- fixed stupid bug with the statusbar numbers not refreshing.
- the 'map' console command now works in multiplayer.
- blood sprite changed so it looks better when staying longer
- bloodtime is now a network variable, the server sets it for
- added gravity variable
This version was a 'source release' for some projects, it was
a work in progress, not released on the site.
- the slow turning left & right is fixed. Sorry we have forget to
put the right code in the release.
- added command "say" and "sayto". This fix chat problem.
- word wraping in the console.
- fixed problems with the new head up display.
- fixed shift key problem.
- the slow turning left & right is fixed
- playing back demos of the latest version, along with the support
for v1.12 demos didn't work : fixed. If you happened to record
demos and thought they didn't work, they will now playback cor-
rectly as they were recorded properly.
- now SERSETUP works.. but more work need to be done, especially
testing it , so please mail us how it worked for U !!
Check LEGACY.TXT section 5/6 for more.
- fixed a nasty bug with getting the vesa extended modes. On some
cards like Matrox Millenium it either showed less video modes,
or didn't work at all.
- fixed 'netgame' name used for savegames sometimes.
- starting a game with more players than deathmatch starts will
not crash anymore.. but some players will be spawned at the
same point and will be stuck (yes it is a quickfix, this
problem arises only at the very beginning of the game,
usually there is always a dm start free)
- the demons are opaque.. and the spectres translucent.
- removed the "F***" word from fragging messages by request
- Doom Legacy supports 64 deathmatch starts (the original game
used up to 10 dmstarts)
- height checks added for melee attacks: so monsters can't hit you
if they are not on the same level, when using short range attacks.
- when you are under Invisibility (blur sphere) and it is running out,
you will switch between hi translucency and low translucency, and
only when the invisibility is fully finished, you become opaque.
- Supports FLATS and SPRITES in pwad, from the very old 'dmadds' pwads
up to the latest dehacked patches using sprite renaming.
See EDITING.TXT for more about using sprites/flats in pwad.
- Can replace only some frames of a sprite in a pwad.
- Sprites/Textures in a pwad are not supported at run-time using
the map command, to do. Flats in pwad work at run-time.
- the automap displays the right player colors
- savegame buffer upped to 512kb
- supports multiple dehacked eg: -dehacked one.deh two.deh three.deh
- supports DIGMID (digital midi) using the sound.cfg
NOTE: THIS IS NOT COMPLETE AT ALL, WE WILL DOCUMENT THE CHANGES OF
VERSION 1.2 AS SOON AS POSSIBLE, THERE ARE MANY ONES! BUT WE
- Added the Doom Console! Enter commands and change game var-
iables at any time! If you are not used to it, the console
will allow you to be a 'Doom power user' ! We have worked
a lot on the console itself, and have implemented a basic
set of commands and variables. In the future we will be
able to add any kind of commands easily. Any command or
variable that you'd like? We are open to suggestions.
Check the console section for more about all the commands
- Finally improved and fixed the translucency on sprites:
- the spectres (pink like demons) are really hard to see
- translucency on torches is now correct, only the flame
part is translucent
- most projectiles are now brighter : the translucency
used to diminish the colours intensity, now they look
as bright as the original game
- each sprite, and each frame can use a different trans-
lucency eg: the bullet puffs are more translucent than
the fireballs, the plasma bullets gets more translucent
as they disappear
- the blur sphere will make you as translucent as the
pink demons, which means very hard to see! So the blur
sphere item will probably become a strategic weapon!
- Totally rewritten the network code of Doom : the method
is now a very basic implementation of Client/Server. It uses
less transfer, and allow up to 32 players simultaneously.
Actually there is one drawback : you have to be sure that
the server is fast enough, and doesn't slowdown, because
if the server slows down, everybody in the game experience
- We have cleaned up the intermission screen with the death-
match scores. It displays now several kinds of rankings,
including the death rankings :) See Section [5-9] of the
We will document these scoring modes better in the future.
Please note that this was quickly added: we can add any type
of scoring system provided it's interesting enough, and
- The deathmatch rankings are now automatically displayed when
you are dead, until you respawn.
- When playing back a demo, it tells the name of the player
you are looking at when pressing F12. It is also displayed
white in the deathmatch rankings. When you are actually
playing, it is always YOUR name that is displayed white in
the deathmatch rankings.
- The old sky textures are stretched and displayed right. It
doesn't look great, but that's better than nothing.
- The jump key is no more repeatable. If you keep it pressed,
the marine will jump only once.
- Restored the sound caching system: if soundprecache is set
to false, it will not load all the sounds at startup, but
only when needed.
- Restored the original game title screen, since there is now
the Doom Legacy logo at the game startup screen. Phew! I'm
happy to see that great titlepic of Doom1 back!
- Items under crushing sectors that could not be picked up is
fixed. A ridiculous test == should have been <=, arh!
Fixed the crushing ceilings that didn't crush too.
- The game can now be started in standard VGA 320*200 on
older non-vesa graphic cards.
- Fixed an important bug with memory usage under Windows and
OS2 systems, please tell is if it works under WinNT !
We have tested it under OS2 and it works now perfectly!
- Fixed Win95 asking for 'switch to DOS mode'.
- Started working on hicolor : the engine will use HICOLOR
textures, instead of simply converting the 256color graphics
- The console border graphics, and the loading screen picture
were done in a hurry, I have to finish them.
- Finish that damn water, arh! We have to make a simple editor
for this. The tools will be developed under Windows.
As you can see, we've taken some time to write a better docu-
mentation, we hope you'll appreciate, and read the full doc
before sending us reports about bugs/trouble shooting.
- You can now shoot up and down, in the free look direction!
- You can shoot the ceiling and the floor, and see the puffs
- Doom didnt draw the puffs of smoke when shooting on some
walls in open areas, this is now fixed!
- Autoaim on/off. When autoaim is off, you can still use the
freelook to shoot up and down, but only when there's nothing
to aim in front of you.
- Crosshair preference : Off, Cross, Angle, or Point. It's drawn
a little translucent too.
- Added jump ability, key mappable in the menu of course.
- Can walk under and over monsters/inanimate objects.
All Doom things (sprites) are now collision-checked in real 3d,
thus things can stay on top of other things, monsters and player
avatar can walk/fly over stacked things and so on...
Eg: we've tested a 'solid corpse' feature and all the corpses
were stacking one on another in maps with lots of ennemies!
- Added transparency on other sprites, as requested : arachno,
barons, caco and mancubus projectiles, the lost soul, blood
'puffs', eye in symbol, demon (big boss) spawn fire.
- You can now frag with the barrels!!! For the frag artists out
there, now you're rewarded by your talent! Let me explain:
when you shoot a barrel, and then later one or more guys die
by the explosion of the barrels, you get the frags!!! This
works like dominoes too : whatever number of barrels they are,
they all know who caused the first explosion! Now there should
be a special deathmatch mode with respawning barrels :) !!!
- Fixed a bug that MAY have caused some 'consistancy failures'
with more than 4 players (the more players, the more this bug
- Demos now record the mouse look, change of color, change of
name, and the messages (talk key) when multiplayer!!
- Demos now record the timer, so you don't need to set -timer
when you playback the demo.
- Demos are somewhat 'compressed' and takes less space.
- Fixed demos not being recorded when you exited using F10 key.
- The 'q' key no longer ends a demo recording. Too many times
someones presses this key by error. Now use 'F10' to end a
demo (or quit from the menu).
- Older demos may not run well. We don't like putting a lot of
dirty code for the sake of backward compatibility. Especially
now with the mouse aiming, old demos just look crap! They're
always looking straight ahead! Anyway, before sending your
bug reports : we're trying all we can to keep the compatibilty,
we know a lot of old demos don't playback well now... we're
trying to fix that. For now, just keep your old exes to play
your old demos!
- Fixed a bug with demos not recording the right name for the
- Demos doesn't record pause now.
New mappable controls (Setup Controls menu):
The Setup Controls menu has been reworked. It now accepts a lot
more combinations. eg: you can now 'Backward' and 'Use' with one
- Weapon Keys !!! Map your preferred weapons to easily accessible
- Deathmatch Rankings (it was stuck to 'f', now mappable)
- Talk key (used to be 't') now mappable.
- F11 : gamma key is back, I removed the key when I put the gamma
in the menu, but then I could have let the key. I restored it.
- Jump key, everybody on da plasma at map01!
Menus keys remapped:
- F5 (used to be lowdetail) : since lowdetail is no more useful,
this key activates the Video Options menu.
- F7 (used to be endgame) : now calls the main Options menu.
- Added joystick support : useless but demanded... so there you
have it, and since we don't do it half : you have support
for the 'hat' plus 6 joystick buttons. Check the 'Joystick
Support' section for more.
- Removed the translucency from 2sided walls. There still need
to do an 'editing' support for this, so that new-made levels
can use it...work in progress.
- As requested, a '-fuzzy' parameter disables the translucency
and restores the old spectre 'fuzz' effect. Hey! We DO KNOW
that translucency is too low on the spectres (ie: too much
visible), but that's another problem! As we have tested, the
spectres look MUCH better with a high translucency than with
the old fuzz effect...
- Can now use keypad arrows in the menu, as requested.
- A new cheat to fly around levels, this is NOT FOR MUTLIPLAYER.
Don't mail us to know about it, we won't tell you!!!
- Added 'crunchy' sound when a sector crushes a dead corpse :)
- Restored the ENDOOM screen ('beg' end screen).
- Ctrl-C no longer interrupts the game, as requested, now use
Ctrl-Break to cleanly exit at any time.
- Fixed autodetection of Ultimate Doom, however it stills shows
'Doom Registered Startup' on the title bar.
- Some new features like rocket trails were disabled when playing
back an old demo, but wasn't restored when starting a new game.
Fixed. (this was a problem with in-game demo sequences)
- Fixed the problem with people having 'detaillevel 1' in their
default.cfg. The game exited with an error message.
- Fixed the messages was offset a little in some resolutions.
- Fixed the config not saved when playing back or recording
- Fixed the 'RROCK17' texture not found with Doom1/Doom Ultimate.
- Fixed a bug with 'french' keymap used when it should not. Now
use it only for the french version, so you have 'qwerty' keymap
when entering messages, American people happy?
- Some other boooring little bugs crushed with our mighty feet.
- Transparent water in development (test it at map30)
this is unfinished and given as a 'preview shot', if you
like/dislike please mail us!! We think that it looks
much better than Quake2's transparent water. If you dont
think so, mail us, but then please read first the
SNEAK PREVIEW HINT:
To see it, with Doom2, go at map30. Right now, its slower
than it could be so don't look at the speed, it will be
done a faster way later.. just wanted to do a fast preview
so that you can tell us what you think about it!!
Still to do : all kinds of sounds when walking/jumping into
water, new colors when underwater, different sound when
under water, new sprites when shooting into water and so on...
- Chase cam! Use the 'c' key when in '-devparm' mode to test
this. Remember: its just a quick addition, unfinished.
Anyway real cool to look at demos with this.
- Solid corpses : corpses stack one on another. This will be
implemented as a multiplayer option for fun deathmatches.
SNEAK PREVIEW HINT:
For now, you can test it with the -solidcorpse option.
Consider this as a quick way to see the new walk over/under
New problems arise in this mode, sometimes you're blocked
by corpses, and there should be a way to clear out the path!
- Better things-on-top-of-things handling : if you walk over
a monster and the monster moves, you should move with it.
That's not implemented right now: if the monster move,
- Some kind of detection of the old skys, disabling the sky
from moving when mouse looking or something like that...
- Full support SVGA : can switch to any VESA2 mode with the good
aspect ratio, can switch video mode in the menu, save video mode
in default config
- We have added - Transparence - , better say 'translucency', which
replace the old 'partial invisibility' effect. A selection of
objects are now transparent : BFG and Plasma balls, monsters fireball,
bullet puff, ...
- Full setup controls from the game menu, much better than 'setup',
now you can assign any 'control' to any key/mousebutton or joybutton.
Assign mouse and keys to anything.
- Free look : look up and down like Heretic (mouse supported).
- Multiplayer menu: choose your preferred color and enter your name.
The name of the players are displayed in the deathmatch rankings,
and also when receiving messages. You can change your color at any
time while playing a net game (your name too)!
- We have added support for 8 player. We could not test it much, but
it seems to work fine now.
Test it, and send us a report if it run great. Thanks.
However you'll need a deathmatch launcher which supports more
than 4 players... why not try our great launcher called 'Doomatic'?
- We have added 7 'deathmatch' colors (for a total 11 colors).
- We have added 'preferred weapons order'. However we didn't finish
it at the time you read this, so its not configurable in the menu
right now , but you can edit the default.cfg (hint)
- can load demos of doom v1.9, some new additions are automatically
disabled when playing back older demos so that they run fine.
- Support dehacked patches : use -dehacked <filename.deh>
If you like superweapons patches, and the like, it should work
no problem with our support. The difference is that now you don't
need to patch the exe.
- play demos from any directory (eg: -playdemo demos\cooldemo)
- show player's statusbar and hear player's sounds when changing the
viewpoint while looking at a demo (F12)
- autorun toggle (menu)
- mouselook toggle (menu)
- mouselook y sensitivity (menu)
- invert mouse for mouselook (menu)
- Load MIDI file in wad (autodetect if is MUS or MID)
This one is for you wad creators : just insert a MID as a raw
file in place of a 'D_XXXX' resource and it works.
- Some network optimisations (but run only with doomatic).
- Yes, there's transparency on 2sided walls, but be reassured, this
is a simple 'quicktest' feature, to see what it looks like,
we've left it until the next version so that you can see it.
- When a 'marine' is translucent (pickup blur sphere), it looks
like a green marine... instead of using the player color. todo..
- You'll have only access to 320x200 video mode, if you don't run
a VESA2 driver (we don't support mode-X VGA 'tweaked' modes...)
UNIVBE is recommended, you can use S3VBE20 (freeware) if you have
an S3 card..
- automap is not aspect ratio correct in modes like 320x400
- the intermission screen might display garbage or even crash the game,
when playing more than 4 players
- if you use Doomatic : we added the name and preferred colors in
Doomatic, at that time doom sources were not released... but now
that we have added name and color in Doom LEGACY, these settings in
Doomatic don't have effect
- no win95 specific code, we might do a simple support for win95,
eg: a setup/launcher program. If you really need something for w95,
try to convince us!!
- no waitvbl (no pageflipping)