./games/doomlegacy, The legacy of Doom

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.48.18, Package name: doomlegacy-1.48.18, Maintainer: micha

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 SDL1 build of Doom Legacy.

MESSAGE.doomlegacy [+/-]

Required to run:
[audio/SDL_mixer] [devel/SDL] [games/doom1]

Required to build:
[pkgtools/x11-links] [x11/xcb-proto] [x11/fixesproto4] [pkgtools/cwrappers] [x11/xorgproto]

Master sites:

Filesize: 2737.961 KB

Version history: (Expand)


CVS history: (Expand)


   2025-05-19 14:21:27 by Michael Baeuerle | Files touched by this commit (3)
Log message:
games/doomlegacy: Update to 1.48.18

- Modify DESCR to make it clear that this package contains SDL1 build

1.48.18 SVN1749 (2025-04-23)

FEATURES 1.48.18

  * Added the slow_react menu control that adds some random delay to an idle
    monster, before it notices the player. This is adjustable from 0 to 15,
    adding about 0.3 sec to 1.25 sec per step (random), which at setting 3 is 1
    to 3.75 seconds. Some monsters will have the larger delays as if they were
    not paying attention, or half asleep, which is more realistic and adds
    variation.

    Settings above 6 can be helpful in slaughter maps, if you are not good at
    that or are not the slaughter type. You will now get a chance to shoot
    first. After having used this, it will be difficult to return to all
    monsters having an unnatural instantaneous reaction time.

  * Recognition of MPEGIII (mp3) header format used by phobiata.wad music lumps
    o_ddtbl2.lmp and o_doom2.lmp. The other mp3 music lumps are using the ID3
    header format already recognized.
  * Enhanced boom, prboom, MBF, MBF21, Heretic, Legacy, EternityEngine
    detection, and deh assumed standards like dehextra. Also detect legacy and
    boom special linedefs and sectors. These are reported as each wad is
    loaded.
  * Added some state corruption detection routines to discover what the
    dehacked in those wads are doing. It has become apparant that some wads are
    dependent upon vagaries of the DSDA port, and they incompletely setup the
    dehacked sprites and states. Because of this we must take measures to
    detect and protect against those wad errors. This will need fixing later,
    as they need tuning.
  * State action functions are no longer kept as ptrs, they are now enum codes.
    This prevents wad errors from crashing DoomLegacy anymore. Each action
    function executor can now identify when it has an action function code that
    it cannot execute.

    Similarily the thinker functions are now also enum, which makes them much
    more corruption resistant. A lookup table supplies the actual functions.

    Sfx info tables also now use index to other sfx, no longer using ptrs.
    There were only a few that were not NULL, mostly chaingun.
  * Detection of special lumps by prefix names, activating specified dehacked
    enables. This detects if "SPxx", DSFRExxx" exist, to activate \ 
DEHEXTRA.
  * Implemented DEHEXTRA, at least the parts we could, and were not implemented
    already. DEHEXTRA has an enable because it conflicts with existing
    DoomLegacy table entries.

    DEHEXTRA added STATES, SPRITES, and SOUNDS, the number of each, can be
    tuned (for the compile) in the doomdef file. The amount can be set lower to
    control program bloat as Doomlegacy already has free space.

    The "dropped item" keyword is recognized as DEHEXTRA, and its \ 
effects are
    implemented. When used with zeroed states, it could drop a player zombie
    upon every monster death, so that is blocked in code.

    DEHEXTRA sprites [145 to 244] are given the DEHEXTRA names "SPxx" \ 
(where xx
    = 00 to 99) for loading the sprite lumps.

    DEHEXTRA sfx [500 to 699] are given the DEHEXTRA names DSFRExxx (where xxx
    = 000 to 199).

    Made the "Touched special thing" error of DSDA into a SoftError, \ 
as just
    killing DoomLegacy was not useful.
  * Extra sfx are otherwise given "SFXxxx" names for loading the \ 
lumps, where
    xxx is the sfx id used in dehacked.
  * Remap of sprite, state, and sfx. The remap knows where the free space is in
    the DoomLegacy tables, and can adjust for the gamemode and options. It can
    account for known DoomLegacy extensions of sprites, states, and sfx, and
    can also adapt to recognize those of some other ports.

    These have command line options that control or disable them.

    Levels are 0 to 5, where 0 = off.
    The default is 5, which is auto.
     -remap 4  : set all remap to level 4
     -state_remap 4 : state remap to level 4
     -sprite_remap 4 : sprite remap to level 4
     -sfx_remap 4 : sfx remap to level 4

     Level 0: Disable remap.
     Level 1: All of the predef table, Legacy extensions, and a 128 beyond
        that, are fixed mapping.  Entries beyond that are remapped.
        This supports older wads.
     Level 2: All of the predef table, Legacy extensions, and a few spare
        are fixed mapping.  Entries beyond that are remapped.
        This is a reasonable setting for debugging dehacked lumps.
     Level 3: All of the predef table for the gamemode, plus some extra,
        are fixed mapping.  Entries beyond that are remapped.
     Level 4: Only the minimum vanilla tables and extensions are fixed
        mapping.  Everything else is remapped to available free space.

  * Command line switch for state zero defaulting.

     -state_zero 2

      0 : Zero state default, nextstate=0 (destroy).
          For compatibility with older wads, and older Legacy.
      1 : DSDA state default, sprite=TNT1, nextstate=self (freeze).
      2 : automatic detection.

  * Command line switch for dehacked control.

     -dsda  : map for DSDA
        This is for wads that were developed on DSDA.  It enables closer
        dehacked compatibility with DSDA, and some special values unique to DSDA.
        However, DoomLegacy is not DSDA and does not implement everything
        as DSDA does.

    This enables detection of DSDA sprites 138 to 143. Some of these, like
    DOGS, already exist in DoomLegacy and have code support, while others are,
    for now, just remapped somewhere safe. Support for such is evolving. They
    do get the DSDA sprite names.
  * Action functions in the dehacked lump can be set in a Thing declaration
    using the syntax:

      action = functionname

    This is a DoomLegacy extension to dehacked.

BUG FIXES 1.48.18

  * Fixed Format 1.49 savegames that read as CORRUPTED. It writes a proper 1.49
    savegame now. It can also read the previous 1.49 corrupted savegames.
  * Fixed the x11 port to not require the esd library, when it should not. The
    x11 sndserver was requiring the esd library be present, even though it was
    compiled with the esd library to be detected and dynamically loaded. The
    sndserver Makefile was using an obsolete makefile signalling, which was
    corrected, so it now links only the correct libraries.
  * The zip file read was failing for some files, due to the zip_seek failing
    on perfectly good files. Fixed it so when zip_seek fails, it reopens the
    file and uses a different fallback seek operation.
  * Fixed the SDL2 keypress input so that console, chat, and savegame names,
    only get one character per keypress. The savegame description was getting
    doubled characters. The Chat line, and console were also affected.

    The SDL2 library is delivering separate events for keydown, and the
    translated version of that key. It delivers two key down events for each
    keypress. Each keypress handler has to choose one of the events and ignore
    the other, which is complicated for handlers that must handle both the text
    and key commands too. After entering chat text mode, sometime later SDL2
    would deliver a translated char for the command key that started text mode,
    thus entering that into the chat. To block that required something ugly.

    A control (cv_sdl2_textchar) was added that selects the source delivered as
    translated text input. This is mostly useful for testing your particular
    computer. With it off, the translated SDL2 events are blocked, and the
    console, chat, and savegame text is a copy of the untranslated key input.
    With this set off, Shifted keys, like underscore, are unavailable.

  * The melee monster attack was not damaging the player. This was affected by
    the MBF21 changes, and this part required some additional setup. Added the
    initialization of the MBF21 melee_range field, and the other MBF21 info
    fields.
  * Fixed some MBF21 dehacked interpretations. Added MBF21 weapon flags. Fixed
    MBF21 Args not being recognized. Recognize "MBF21 Bits" in things too.
    Fixed some other MBF21 dehacked syntax. Ignore comments in things.
    Initialize some alt speed items (MT_BRUISERSHOT, MT_HEADSHOT, MT_TROOPSHOT)
    that MBF21 has moved into MBF21 special fields.
  * Improved the dehacked handling of odd syntax and badly formed dehacked
    lines. It now handles blank lines and EOL more correctly, without
    extraneous error messages.
  * The dehacked "Bits" lines now will clear any existing bits \ 
correctly, and
    will do it only once.
  * Fixed a segfault with Back_to_saturn wad due to search for deh names
    exceeding predef tables. Also now checks for NULL and rejected names.
  * Add zeroing of some states, depending upon game, command line options, and
    detected wad extensions. Some MBF21 wads overwrite some Heretic states
    incompletely, leaving the engine to execute random data. This caused
    segfaults when action functions were called with the wrong parameter stack
    (something inherited from vanilla doom). Upon detection, the states being
    used are zeroed, to emulate other MBF21 ports.
  * Fixed the init of info table patching to work with MBF21 changes too. Due
    to engine differences, just putting the MBF21 changes into the info table
    init function did not work out as expected. Because this is within the
    built-in launcher loop, it got more complicated than I will describe here.
  * Fixed a segfault, for some odd music that could not be handled. Made a
    separate FindExtMusic that can handle the special cases. Made it have
    graceful failure, without any I_Error. The cause was MBF21 changes that
    upset the compile.
  * Fixed the MBF21_angle_to_slope function which was failing due to comparison
    of a signed angle against an unsigned constant. Do not know what the
    compiler was doing but it was wrong. Fixed a few other similar tests, out
    of caution.

    The MBF21_P_Random_hitscan_slope function was calling
    MBF21_fixed_deg_to_slope where it should have been MBF21_angle_to_slope.
    This is near impossible to determine from reading DSDA code. Weapons in
    Sleepwalking.wad now at least hit their intended targets.
  * Separated the MBF21 args from the MBF param, because it is possible to use
    both in the same state. This was an optimization that did not work out.
  * Revised the known sprite name mapping for Heretic, prboom, and dsda.
    Revised the system for handling non-standard sprite lumps to get it to load
    the matching sprite frames for the extra sprites. Revised the state
    blanking, for DSDA. Fixed MBF21 action function arguments, so they get
    adjusted too when states get remapped. These were an especially nasty bug.
  * Made FireOldBFG work, because a wad is using it. It just assumes it. It is
    an EternityEngine action function, but it can be defaulted to A_FireBFG.
  * Some wads (like infectio.wad) do not have a reject lump. For some large
    wads, this eventually made DoomLegacy segfault using other bugs.

    Fixed the lump cache so it will not allocate for 0 size lumps, it will
    return NULL.

    Made the CheckSight functions skip checking the reject lump when it is
    NULL, or when lookup will exceed the size of the lump, or when the sector
    indexes are unreasonably large.

  * Fixed Chex1 change engine when using software draw, to not try to init
    hardware draw functions. This fixes the "could not find corona".
  * Fixed the demo play to check and reject a missing demo.
  * Phobiata wad tests the objhealth to detect when an object is picked up. Do
    not know when this ever worked, but fixed it so that it is supported, which
    makes the stairs to the BFG work reliably now.

1.48.16 SVN1703 (2024-11-26)

FEATURES 1.48.16

  * Much better version and option reporting for the DoomLegacy binary, visible
    to the user. This also allows musserver and sndserver to identify their
    version of DoomLegacy.

    Prints a program header that includes date, program version, and major
    compile-time options.

    > doomlegacy --version

  * MBF21. This implements MBF21 dehacked capabilities, using the MBF21
    Developers Spec, and DSDA-Doom as a reference implementation. This adds
    many monster functions, can alter monster attributes that previously were
    for bosses only, makes SKILL5_FAST monsters changable from dehacked, and
    can alter player weapon effects. It also adds BLOCK_LAND_MONSTERS, and
    BLOCK_PLAYERS, as linedef flags, and adds sector flags.
  * Added player getting tired when they RUN too much. Added player drown when
    they swim underwater too much. The player drown does not actually kill the
    player, but just uses an extreme getting tired, with vison going black.
    These have option controls in the menus, and can be enabled for any map.
    The tired and drown player timers are not yet saved in save games, nor are
    in demos.
    At this time, this is EXPERIMENTAL, and may be changed.
  * Added monster body variations capability. Added controls monster_vary,
    vary_percent, vary_size. This option modifies existing maps by modifying
    some of the monsters, with random adjusted width, height, mass, and speed.
    This also will vary the monster speed due to damage.
    At this time, this is EXPERIMENTAL, and may be changed.
      + Off : Disabled, as in vanilla Doom.
      + All : All variations are possible.
      + Small : small size monsters
      + Smaller : smaller monsters
      + Light : light mass monsters
      + Lighter : lighter mass monsters
      + MedSmall : medium to small size monsters
      + Medium : medium size monsters
      + MedLarge : medium to large size monsters
      + Heavier : heavier mass monsters
      + Heavy : heavy mass monsters
      + Bigger : bigger monsters
      + Big : big size monsters
  * Added a menu control for the corrected clip width, in the effects menu.
    This corrects a bug in the original doom rendering, that affects the
    display of a few textures. Only a few users would even notice. Normally, it
    is kept OFF.
  * Added a control for varying monster teleports. This allows players to alter
    the severity of monster teleport traps. It also introduces variety when you
    have played a map so many times that it is too familiar.
    The menu:
      + norm : Disabled, as in vanilla Doom.
      + easy2 : random selection of the easiest effects.
      + easy1 : random easier
      + any : random of all but dup
      + hard1 : random harder
      + hard2 : random hardest effects
      + stun2 : stun the monster for a few seconds
      + stun4 : stun for 4 seconds
      + stun6 : stun for 6 seconds
      + rate2 : slow the rate of the teleport
      + rate4 : slower x4
      + rate6 : slower x6
      + scatter1 : scatter the teleport
      + scatter2 : scatter farther
      + scatter3 : scatter farther
      + scatter4 : scatter farthest
      + dup20 : duplicate some monsters during teleport
      + dup40 : duplicate 40% of teleported monsters
      + dup60 : duplicate 60% of teleported monsters

    At this time, this is EXPERIMENTAL, and may be changed.
  * Have made extensive changes to bot behavior with friends, and coop play.
    Added a menu control for bot grab.
      + low: least grabby
      + moderate:
      + friend: allows friend to get special items
      + grabby: previous non-deathmatch behavior, no friends
      + selfish: previous deathmatch behavior, for comp

    Friends are taken into consideration when deciding upon grabbing an item.
    For example, Keys are not grabbed when have friends.

    Added avoidance code that will turnaway from an object when the bot is
    blocked.

    The code for moving close or away from teammates was rewritten. The bots
    move slower around the teammate, so their behavior is better. Code to stop
    the bot from going over a cliff has been added, and does cause bot to stop
    in some situations. But, eventually the bot goes over the cliff.

    Increased distance required to shoot barrels.

    Bot jumping is now disabled when allowjump is not set, like other players.

    This is an ongoing effort and is EXPERIMENTAL.
  * COME_HERE command by keypress has been added. The default is the 'c' key.
    This will summon dogs and bots to come to the player.

    The COME_HERE code tries to block other distractions. It is noted that the
    dogs and bots often ignore the player, such as when there is an active
    battle. Often the effect is delayed, with them coming after a few seconds.

    The COME_HERE command is effective for 3 seconds. It can be repeated often
    for longer effect. It is only effective when the bot is within 1500
    distance. It causes bots to move slower when near the player. A summoned
    bot can cross a higher dropoff than normal.

    This is an ongoing effort and is EXPERIMENTAL. Details will change.
  * Added bot recognition of when the player is bumping them out of the way,
    which may also be used to move them somewhere. It is also effective to just
    punch them.

    More fields have been added to bots, so they remember what they were doing,
    and a timer to give them a chance to carry out a decision. This gives the
    bot a chance to actually turn, and get some benefit from a decision, before
    it is undone.

    Bots can now detect a damaging sector. They are blocked from going into a
    damaging sector, but often it does not stop them.

    The bots test for two steps ahead now, which gives them a chance to not go
    over a cliff, or hang on the edge.

    Some distances have been increased.
  * Release version 1.48.16 uses savegame format 1.49. Because MBF21, VARY, and
    changes to the dropammo status format, forced a savegame format change that
    requires a new savegame format version. DoomLegacy still will read
    savegames of format 1.48, and earlier.

BUG FIXES 1.48.16

  * Fixed the grenade launcher, DT-GREN. The file MBFONLY.DEH creates a grenade
    missile that does not have MF_NOBLOCKMAP. This triggers a bug inherited
    from Vanilla Doom, and Boom, that causes the program to hang in a tight
    loop, or otherwise crash. This was fixed by creating a blockmap unlink that
    is not dependent upon the thing x,y position, similar to what MBF, and
    PrBoom did.
  * The viewfit control was not drawing flats at the exact same scale as
    everything else, when using viewfit = FIT_HEIGHT. Changed the table calc to
    use projection_y, correcting the problem. Fixes Bug 0692.
    Note: testing using 1280x800 is misleading, as while that looks like an
    extreme wide screen, it is also the exact same ratio as the original
    320x200. Because of that, it happens to hide defects in calculating the
    scaling. It is one of the screen choices that has no difference in all the
    viewfit settings.
  * Prevent in-fighting when player has both dogs and bots. The bots would
    attack the dogs. This makes bots friend aware.
  * Changes to deal with gcc12 nuisance warnings, compile quieter, but they do
    not fix anything in the program.
  * Fixed one of the calls in R_PointToAngle, to use the more accurate
    SlopeDiv_64.
  * Playing MP3 music (phobiata.wad) would cause SDL to fault, citing a double
    release of the rwops. This only happens for MP3 music. Fixed the unregister
    function to cope with SDL doing this unexpectedly. SDL1 will now play MP3
    on doomlegacy, (as in phobiata.wad). If your SDL mixer library does not
    play MP3, then you have to also compile the SDL mixer with the MP3 option
    enabled. Some distributions of SDL mixer have MP3 option disabled.
  * Fixed a segfault due to using uninitialized bot. Protected some other bot
    code from similar faults.
  * The 666 action upon Boss death was not working, the bug introduced by MBF21
    code. This has been fixed.
   2025-01-06 22:49:24 by Kevin Bloom | Files touched by this commit (217)
Log message:
revbump packages due to devel/libslang2 removal
   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) | Package updated
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) | Package removed
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