Doom Legacy Changelog
1.48.8 SVN1568 (2020-12-19)
FEATURES 1.48.8
* Sky generation has gotten a Vanilla setting. Sky drawing (software
draw) now puts a solid texture above and below the sky, and no
longer tiles the sky. The OpenGL sky draw has separate sky draw
behavior.
* The mouse2 serial support has been expanded to handle PC mice,
MouseSystems mice, and PS/2 mice, for SDL and Win32 ports. The PC
and MS mice have been tested. If anyone has found a way to route a
PS/2 mouse, possibly on USB, to a serial port input, please let us
know.
BUG FIXES 1.48.8
* A savegame buffer overflow was fixed. An overflow prevention test
had been misplaced. such that it could be avoided in some
conditions. Fixes BUG 0667.
* Cleaned out some of the accumulated cruft in sky drawing. Fixed sky
tiling, and then made changes to prevent sky tiling.
* Changed the software mode sky drawing to TM_picture format. This
eliminates the line artifacts that were drawn above and below the
sky, and restores the vertical alignment.
* Limited the software sky drawing to the texture, so to not tile the
sky draw. Created a skytop_flat for above the sky, and a ground_flat
for below the sky. These are drawn when the viewed sky exceeds the
bounds of the sky texture. For now, these flats are created as solid
textures. Hardware draw has a separate sky draw behavior.
* In the case of 200 or 240 sized sky textures (Heretic and Legacy
substitutes), fixed the texture sky height so that the correct size
TM_picture is created. Fixes BUG 0668.
* Changed the freedoom wad names, avoiding doom wad names as that was
conflicting with doom2 gamemode. Freedoom: "freedoom2.wad",
"freedoom.wad", and "fdoom2.wad". Ultimate freedoom:
"freedoom1.wad", "freedu.wad", "fdoomu.wad".
* Fixed BUG 0670, Monsters mysteriously disappearing, moving large
distances into the void space.
This bug was introduced in the moonwalk patch (SVN 1540) by copying
the opposite direction calculation code from PrBoom. This was done
in an effort to reduce differences that might lead to bugs. It
replaced a table lookup implementation. However, the PrBoom
calculation must be guarded against the value DI_NODIR, which the
table implementation could handle inherently. Without that
protection, an olddir of DI_NODIR introduced a direction of 12 into
the logic, which can only handle directions of 0..7, with NODIR=8.
Several times a game that 12 value would survive long enough to get
used, which would be expressed as a wild walk movement.
* Improved the large blockmap handling to deal with more issues of
blockmap overflow in the presence of zennode blockmap compression.
It can now handle more maps of the Lost Civilization wad, although
some other issues are still present.
* The mouse2 support was found to be disabled and missing for the SDL
port. It has been fixed, and expanded to handle PC mice,
MouseSystems mice, and PS/2 mice, for SDL Linux, SDL Windows, and
Win32 ports. Fixes BUG 0669.
* Made LOGMESSAGES work again, which writes debugging logs. Release
binaries do not have this code. If DoomLegacy is compiled with
LOGMESSAGES enabled (doomdef.h file), a log.txt file will be
produced. This is currently enabled when compiled with DEBUG.
* Fixed the overlapped string copies detected by GCC 10.
Fixes BUG 0671, Michael Bäuerle.
* Reduced warnings when compiling with GCC 10. This was mostly due to
signed char being used as an index, which may cause problems on some
platforms. Fixes BUG 0671.
Update pkgsrc patches and remove the ones that were merged upstream.
Doom Legacy Changelog
1.48.6 SVN1550 (2020-09-09)
FEATURES 1.48.6
* DoomLegacy can read zip archives (Linux Only, enabled by compile option
ZIPWAD). When an load file is a zip archive, all loadable files within the
archive are loaded. When searching for a known file, zip archives of the
same name (but with .zip) are also searched.
This uses library libzip. When built with compile option ZIPWAD_OPTIONAL,
DoomLegacy detects if the libzip library is present on the user machine.
This allows DoomLegacy to run without the feature, when the user does not
have libzip.
A libzip before version 1.2 does not have a seek function. A compile
option will provide our own zip_seek function, so libzip 1.0 can be used.
* Recorded Demos now include both the Version and Revision numbers, so
revision specific behaviors can be enabled. DoomLegacy 1.48.6 has modified
its native demo format, which is revision specific. Older demo formats are
still playable.
* Recognize and handle DeePsea Tall patches. Enabled with compile option
DEEPSEA_TALL_PATCH. Michael Bauerle submitted the orignial patch, derived
from crispy doom.
BUG FIXES 1.48.6
* DoomLegacy and PrBoom monster infighting does not have missile
invulnerability between monsters of the same species. Some other ports
(Boom, MBF, Eternity engine) do not have the infight test, so their
monsters are always invulnerable to missiles from their own species.
Added another item to the infight control to select the behavior.
Implements "Full Infight" setting with missile damage (Legacy, PrBoom).
Implements other infight settings without missile damage (Boom, MBF,
Eternity).
Fixes BUG 0664.
Added MBF infight logic, thats stops monsters from firing on friends.
* Legacy demo would fail to start due to blocking the textcmd that loads the
map.
The Legacy 1.48.4 demo was recorded with player 0 issuing the map textcmd.
Player 0 was not in the game yet, and this was detected as a textcmd from
a non-existant player, which got caught by new security code. For textcmd
issued before player 0 is in the game, the demo needs to use SERVER_PID.
Fixed demo read to redirect player 0 demo textcmd to SERVER_PID.
DoomLegacy 1.48 has a single long combined textbuf, containing the textcmd
from all players. Within the combined textbuf, there are individual
textcmd marked with the player id. Individual textcmd are still limited to
255 chars as in an ordinary textbuf. The DoomLegacy 1.48.6 demo format has
been changed to store the entire combined textbuf buffer into the player 0
slot.
This is simpler for recording and playback, has the same effect, and
allows SERVER_PID textcmd, which the previous demo format did not.
The commands to create a player (and other server actions) are now issued
by SERVER_PID, where in older demos they were issued by player 0, before
player 0 existed. DoomLegacy 1.48 has better protection against malicious
network traffic than previous versions, and checking textcmd validity is
part of the security protection. This fixes demo playback to work with the
security checking.
Changed the SERVER_PID to 250 now, for future expansion of players.
This fixes bug 0665.
* Fixed the moonwalk bug, where monsters would sometimes walk backward. This
was due to a bad translation of an everything-in-one-expression to more
maintainable code.
* Make an oof sound when hit a 2s line, just like when hit a 1s line.
Adopted from PrBoom, a Killough enhancement.
* Make optional, and disabled, some old development hacks.
Option DEVPARM_LOADING:
Loaded development wads from a special directory. This used switches
-wart, -devgame (even older -shdev, -regdev, -comdev).
Option WADFILE_RELOAD:
If a filename started with a tilde "~", it was taken as an indication to
reload the file on every lump access. This was to enable leaving doom
running while changing wad files.
Option LOADING_DISK_ICON:
Not implemented in any port anyway.
* The Full Graphics startup was fragile, requiring constant fixing. Video
startup now changes directly to the config modes, which is faster and
cleaner. Removed some antiquated code and interactions, adopting an
interface that puts the main code in control.
* Fixed the violet line, trees, and tall sprites of "Lost civilization" wad.
This required being able to save the same texture as both a transparent
patch texture, for drawing hanging vines, and as a picture format texture,
for drawing tiled walls. This fixes Bug 0663.
* The fast drawing of wall textures required them to be a power-of-2 in
width, so they could be tiled. To handle the case where it is not a
power-of-2 in width, it now uses a slower masked draw similar to that in
PrBoom, which also handles a negative offset. This fixes the large tree in
"Lost civilization".
* Fixed some old code to use POSIX fcntl, which allows it to compile on
SunOS. Patches submitted by Michael Bauerle. Fixes Bug 0666.
Use native inet_aton() on Solaris.
Solaris has inet_aton() in libresolv since version 2.6 from 1997.
No revision bump because this only affects the Solaris build that was
broken before.
The type label_t is not available on all OS, e.g. on SmartOS.
labelforname() is an unused function and the only place where label_t is
used. Commented out with new patch.
Bump PKGREVISION because C source file has changed.
pkgsrc changes:
- Patches for NetBSD support removed (merged upstream)
- Define "SOLARIS" for SunOS based operating systems
- MESSAGE replaced by file "share/doc/doomlegacy/INSTALL.pkgsrc"
- Man page is now installed in section 6
- Patch to disable launcher replaced by startscript
(upstream suggested to use an unsupported option for this purpose)
- Patch for extended node support added (Feature request #95)
Supported formats: DeeP V4, ZDoom uncompressed, ZDoom compressed
Without this patch the engine may crash with unsupported node formats
- Patch for local blockmap creation added
Command line option "-blockmap" added for activation (no automatic mode)
The extended node and blockmap patches allow to play modern PWADs like NOVA III
and Lost Civilization.
Upstream changelog since 1.47.2 is very long, refer to this page:
http://doomlegacy.sourceforge.net/docs/whatsnew.html
pkglint --only "https instead of http" -r -F
With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.
This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
This is one of the most popular Doom source ports.
It enhances Doom with things like:
- Free Look
- OpenGL renderer
- Heretic support,
- TCP/IP networking
and much more.
Doom Legacy can play Doom, Boom, Marine's Best Friend (MBF), and Heretic maps.
In addition to the original games by id Software and Raven Software, there are
hundreds of free, fan-made maps available on the Internet. These maps are
typically distributed as PWAD files, which are not fully self-contained.
For each game you will also need the corresponding IWAD data file, which
contains all the graphics, wall and floor textures, sounds, and music for that
game. For example, if you want to play Doom II maps, you'll need the IWAD file
doom2.wad, or one of the free replacements.
Legacy has implemented the fundamental and de-facto-standard Boom extensions,
and the Marine's Best Friend (MBF) extensions. Legacy also has implemented
among other things 3D floors, swimmable water and other special effects using
extended linedef codes, and supports the FraggleScript scripting language.
This package contains the SDL build of Doom Legacy.