This is one of the most popular Doom source ports.
and much more.
Doom Legacy can play Doom, Boom, Marine's Best Friend (MBF), and Heretic maps.
hundreds of free, fan-made maps available on the Internet. These maps are
typically distributed as PWAD files, which are not fully self-contained.
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.
and the Marine's Best Friend (MBF) extensions. Legacy also has implemented
extended linedef codes, and supports the FraggleScript scripting language.
2024-01-17 13:22:59 by Michael Baeuerle | Files touched by this commit (2) |
Log message:
games/doomlegacy: Update to 1.48.14
FEATURES 1.48.14
----------------
- UMAPINFO, derived from umapinfo-lib (GPL) written by Michael Bäuerle,
who has allowed us to use and modify it in DoomLegacy (FR_0100).
In DoomLegacy the original library code got heavily modified,
eliminating use of FLEX and YACC, removing internal structure hiding,
and making it embedded in DoomLegacy. Errors and messages were
rewritten to attach to DoomLegacy error reporting.
- Add viewfit control. This allows a wider monitor to be used with
drawing at correct aspect ratio.
- auto: auto select based on actual screen size.
- stretch: stretch to fit screen.
- fit width: fit to screen width, scale to correct aspect ratio.
- fit height: fit to screen height, scale to correct aspect ratio.
BUG FIXES 1.48.14
-----------------
- In Pagodia.wad, Map06, the hanging vine texture had visual artifacts.
(AUR008, texture #624, lump 132961). Due to some of the patch columns
being totally empty, some of the columns of the generated texture had
the 0xFF termination, in the wrong place.
Fixes bug 687.
- In Lost Civilization Map04, the arch texture ARC1ABRN was rendered
with black holes. The wad uses it on a wall and as a masked texture,
next to each other. These two uses generate incompatible texture
formats.
The use on a wall had texture generation using the TM_picture format.
The masked use requires a TM_masked compatible texture format.
To fix this, gave the masked texture draw the capability to generate
an extra texture_render holding a TD_2s_ready texture.
- The MIDI output included some padding of Track 0, that caused the
Win10 and Win11 MIDI player to delay the track and change it to a
piano. Do not know why these were in the MIDI output. The Track 0
padding has been disabled, and may be removed entirely (eventually).
The Program_Change inclusion is now enabled by control variable
"midi_create_program", which is default 0. The midi compression is
enabled by control variable "midi_compress", which is default 1.
These are not in any menu, can be changed by console.
This fixes bug 0674.
- Add JOYSTICK_SUPPORT compile-time option, so that joystick code can be
disabled. This was necessary due to some port situations not having
joystick hardware.
- Steven Newbury has been trying to compile for DOS.
These are changes based on a something he summitted. I suspect this
may not be complete. It covers some network problems with DOS.
Within djgppdos, there are DOS sound fixes and many other fixes to
bring the DOS port up to date with the interface.
- Fixing complaints from gcc 11.2. Also snprintf does not honor string
max field size. Must copy possibly long strings to some shorter
buffer first. The code_size seems to have been reduced by 56K, perhaps
due to new compiler.
- Fix error from w104_23. When BOB_MOM code was made a standard feature,
one of the compile tests was missed. Removing the BOB_MOM define, made
some of the old code active again. This may have had some obscure
effect upon when the weapon bobbing stops. Have removed that old code.
Some other cleanup, ptr declares.
- Disabled a RANGECHECK in wi_stuff as many wads violate those
assumptions. Fixed many other typo and ptr declares encountered while
working on UMAPINFO.
|
2022-12-19 12:53:59 by Michael Baeuerle | Files touched by this commit (3) | |
Log message:
games/doomlegacy: Update to 1.48.12
Updated man page for pkgsrc.
Disabled SVN usage for build.
FEATURES 1.48.12
* Added SDL2 support, as a compile option. This provides video, sound, and
keyboard alterations for the SDL2 library calls.
The source code still supports SDL1. This supports target machines that are
not supported by SDL2. At this point, for some things like MIDI music, we
have not yet found optimal SDL2 solutions.
* Add a control to select music type, with an automatic mode. Add automatic
music type selection and playing. This works better with SDL1 than SDL2.
SDL2 will always use Fluidsynth for MIDI. It even builds a copy of
Fluidsynth into SDL2.
* Added controls to adjust monster health, health pickup, armor pickup, and
ammo pickup. This allows adjusting play of an overly difficult map such as
one with multiple cyberdemons, such as when you have only three players on
your coop team and one is a newbie, or just adjusting a map weak in ammo.
The user can also increase difficulty when feeling cocky.
BUG FIXES 1.48.12
* Mingw32 does not have strcasestr. Had to write one for Mingw32 and Watcom.
* Fixed a segfault in biowar.wad Map08 with OpenGL. It would segfault when a
texture being drawn in cache, had one patch extending lower than the
texture bottom. The cache write now tests against the cache limits, and not
the source.
* Fixed X11 musserver quitting whenever trying any device other than TiMidity.
Made the FluidSynth MIDI detection work. Included the DEBUG options.
Fixed a HAVE_ZLIB test that would error when compiling for X11.
* Fixed where Player picks up clip when already has full ammo. A bug was
introduced in patch w105_22_playermsg, svn 1225. This resulted in the clip
being used up, even when the player already has max ammo.
* Rewrote the flat animation, to load all flats of an animation. A long time
ago the flats were optimized by only loading the flats that appeared in the
level map. This is incompatible with flat animation, as the animation
requires flats that may not have appeared otherwise. This results in the
animation not working for some flats that should be animated (doom2 map17).
Updates the flat animation again when levelflats has moved during the
update. Removed the old animation code that checked all flats in the wad.
* Fix the existing MIDI, MP3, and OGG music playing. Fix MP3 music playing,
so that it does not try to play it as MUS. Detect the music type upon
replay too.
* VISPLANE_DYNAMIC_COVER. Replaced arrays of [MAXVIDWIDTH] in visplane with
dynamically allocated arrays of the current video width. This reduces each
visplane from 6464 bytes to 3268 bytes. This will allow MAXVIDWIDTH to be
increased, to allow larger screen sizes, without affecting the memory usage
for everybody.
* Transition to new software renderer, to fix sprites that are drawn in
conflict with 3d floors.
* Removed drawnodes code. Sprites could not be sorted into the drawnodes to
satify all the conflicts that occur. Instead of trying to save all the
sprite conflicts in one sprite structure (like a drawnode), the sprite is
split and clipped until all parts of it have been drawn (or masked).
* Replaced openings code (from PrBoom) with pool16 code, which does not have
to adjust existing pointers when expanding the pool.
* Fix to sprite draw, so that flipped sprites drawing is independent of the
sprite x1 position. This fixes draw errors of some flipped sprites.
* Fixed the OpenGL dynamic lights, where wall textures would distort when a
fireball or rocket would pass by. This affected walls under a 3d floor,
when it experienced a dynamic light.
* Fixed a zip seek error that only affected some zip files. Opening a zip
archive when there already was a zip file open, required that the zip file
be closed, or its file position will be different than our recorded
position. This fixes bug when loading cyberarena3.zip.
* Protect against NULL line ptr in some light functions. This mitigates a
segfault in cyberarena3.zip, that was not reproducible.
* Fixed compile errors in dynamic load of zlib, and libzip. Detect version
of libzip from header file. Remove version of libzip from make_options.
* Add SDL_DIR to the compile make_options, because compile on win/mingw32
cannot reliabily find SDL/include otherwise, and it is better than having
end users editing the Makefile. SDL installs with sdl-config are not
affected, and most users do not need to specify it.
* Fixed the new SDL sound code to compile with SDL Mixer 1.2.8, SDL Mixer
1.2.10, SDL Mixer 1.2.12, and SDL2 Mixer. This is detected at compile.
The SDL Mixer 1.2.8 does NOT have MIX_INIT, but the SDL Mixer 1.2.10 does,
and SDL2 does too. The MIX_INIT provides some device detection and
reporting to the user what was found.
* Still supports compiling for SDL Mixer older than 1.2.8, but those do not
have RWOPS, and thus music playing with that Mixer will then use the
hard-drive. This is detected and determined at compile-time, and running
with a newer SDL Mixer will not affect that compile decision.
* The user must have a compatible SDL Mixer installed (same or better).
Newer SDL installs have bug fixes (especially on win), and may be
customized to the users machine, so this is up to the user.
* Changes to support compiling on Mac OS X (Darwin). Uses App folder.
Based on support from Gibbon.
|
2022-11-21 19:20:46 by Jonathan Perkin | Files touched by this commit (54) |
Log message:
*: Re-apply SunOS linker argument removals.
These are currently duplicated in mk/platform/SunOS.mk but the generic
removals will be removed soon in favour of per-package removals, due to
flags getting leaked into installed files.
|
2022-01-17 16:10:15 by Michael Baeuerle | Files touched by this commit (14) | |
Log message:
games/doomlegacy: Update to 1.48.10
FEATURES 1.48.10
• Support for DeepBSP V4 extended nodes (based on crispy doom). Also ZDoom
extended nodes (based on code from woof 1.2.0), supporting uncompressed,
and compressed nodes (when zlib is present). Allows playing several wads,
such as Avactor, and Lost Civilization, that are otherwise playable by
DoomLegacy, but use extended nodes for several of their maps. Code provided
by Michael Bäuerle (FR_0095).
• Added the blockmap generation code provided by Michael Bäuerle (FR_0096).
Some of the code is borrowed from crispy doom, altered a bit by Michael
Bäuerle to suit DoomLegacy, and then totally mangled by WJ.
A blockmap control has been put into the menu.
□ Vanilla: Load the blockmap, preserves blockmap tricks.
□ Large: On large blockmaps (error prone), Generate the blockmap instead.
□ Generate: Always Generate a blockmap.
□ Auto: Try to Load the blockmap, upon significant errors then Generate a
blockmap.
• The hardware sky draw (OpenGL, etc.) now uses the extended textures. The
scaling and alignment of the sky in hardware draw has been made consistent
with software draw. The sky movement from head turning is greatly reduced.
There is still some horizontal wander.
The hardware sky still does not change when the player is Invulnerable. The
hardware draw sky does not support the necessary multiple colormaps right
now.
• A dehacked thing translation command line switch, -dehthing. This selects
the dehacked translation for thing numbers in the range 138 to 150. This
overrides the Automatic translation detection.
□ legacy : DoomLegacy untranslated
□ boom : translate things according to Boom
□ prboom : Boom and Beta things
□ ee : Eternity Engine things
• A separate supplementary wad is provided that has dog sprites and sounds.
Specified before a wad, it provides default dog sprites and sounds.
Specified after a wad, it replaces the dog sprites in a wad.
• More ports now allow a second mouse. This allows using PC, mousesystems,
and PS2 type mice. The ports that have the second mouse support are SDL,
WIN32, and X11.
• The Linux X11 port got a total rewrite of sfx sound. It previously was only
supporting OSS sound, and ESD sound. Can now select between OSS, ALSA, ESD,
PulseAudio, and JACK sound devices using the sound menu. For music, can now
select between MIDI, TiMidity, FluidSynth, external MIDI, FM_Synth, and
AWE32_Synth, using the sound menu. This depends upon which support got
compiled into the program, as selected in the make_options file.
Many of the options are untested. The last two Synth options depend on
older specific sound cards, and will not be included in released binaries.
I have not managed to get a FluidSynth installation to work, I don't have
an external MIDI device to test with, and JACK wants to take over the
entire sound system.
BUG FIXES 1.48.10
• Added failure detection for setting drawmode from config file. If the
config file drawmode fails then use a window at native bpp. This used to
fail ungracefully.
• Improved Gcc10 compilation, eliminating most of the nuisance messages.
Fixed usages of snprintf, and strncpy. Fixed bug 0671.
• The Clang compiler caught some mistakes. The old code probably did work.
Fixed bug 0672.
• Fixed where the program is stuck in client mode. Once having tried to
connect as client, the program would not go back to server mode, not even
when starting a netgame as server. A symptom was the player wait count
being initialized to 99. Fixed to set server mode. Fixes bug 0677.
• Players were kicked during netgame when their blood splat setting was
different than the server. As it was desireable to allow players to turn
off blood splats independently of the server setting, this was fixed by
making the off code call P_Random appropriately. This also fixes a demo
consistency error. Fixes bug 0678.
• Changed the netgame repair function to correctly report differences in
random number settings for the server. The message syntax was only
appropriate for the client, displaying reversed server/client values at the
server.
• Adding extended nodes fixed several bugs. Fixes bug #657, due to DeepBSP V4
extended nodes. Fixes the segfault in Eviternity.wad Map15 and Map32, due
to use of uncompressed ZDoom extended nodes.
• Fixed dehacked code to read Avactor.wad dehacked lump. Increased the
dehacked buffer length to 1028. Made all the string comparisons caseless.
Adopted some logic from PrBoom and Eternity regarding exiting sections on a
blank line. Detect "//" lines as comments.
• Fixed the hardware draw to clip lights at 0..255. Some wad editors put in a
default light value of 256. This fixes some wads, like Avactor.wad, which
has light values of 256 for some sectors. These would show up as black
sectors. Most ports allow the light field to exceed 255, allowing some
lighting tricks (that few wads take advantage of).
• In Avactor.wad, there are an excessive number of BSP partition lines that
miss the subsector. In this case the hardware draw BSP must determine if
the subsector poly is to the right, or to the left of the divide line. This
must match the BSP partitioning, as those poly will be assigned to the
front sector, and back sector. Sometimes it was testing a vertex on the
divline, leading to the poly being assigned to the wrong subsector. This
fixes a missing floor in Avactor.wad (Map04, sector 1757).
• Fixed some bad subsector draws for hardware-draw in Avactor.wad (Map05
sector 1502). These were using the wrong sector to draw the subsector. For
the polygons that do not have a linedef as a side, there must be a search
of all linedefs to find one that indentifies the sector that this subsector
is within. The test needed to be more robust for large maps.
• Lost Civilization uses some masked textures on upper textures and single
sided walls. This is not entirely valid usage, but it happens. The software
render draws black in the missing portions of the texture. With hardware
render, OpenGL, this shows sky through the wall. Fixed the hardware render
to also draw black in this usage.
• Fixed the menu selected extra dogs, to be spawned using the correct type
code. This fix was revised three times, as more problems with dehacked dogs
arose. Fixes bug 0681.
• Fixed the rocket in Valiant.wad. It uses dehacked thing numbers from Beta
versions, that are valid in PrBoom, but in Doom Legacy they match thing
numbers for Dogs, smoke, and other Legacy specific things.
Implemented dehacked detection that translates these to more appropriate
DoomLegacy things. This affects dehacked things in Lost Civilization,
Avactor, Valiant, and especially antaxyz.
• Always include the missing sprite detect, from Debug. Often the dog sprite
is missing from the wad.
• Made Voodoo card support optional. The base code is no longer tied to
support for Glide.
• Fix Load savegame menu controls to allow ESCAPE from the Load savegame
after changing to another directory.
|
2021-10-26 12:44:37 by Nia Alarie | Files touched by this commit (466) |
Log message:
games: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
|
2021-10-07 16:08:04 by Nia Alarie | Files touched by this commit (466) |
Log message:
games: Remove SHA1 hashes for distfiles
|
2021-01-18 10:41:07 by Michael Baeuerle | Files touched by this commit (1) |
Log message:
games/doomlegacy: Build fix
Remove "-march=native" option.
This should unbreak bulk builds on 32-bit ARM architectures.
Bump PKGREVISION.
|
2021-01-04 17:40:59 by Michael Baeuerle | Files touched by this commit (5) |
Log message:
games/doomlegacy: Update to 1.48.8
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.
|