User Tools

Site Tools


version:detailed_list_of_changes_in_doomsday_version_1.9.7

This article lists the important changes in 1.9.7.

Fixes during Candidate phase

  • [367] regression: blank screen on client
  • player thing angle not updating in automap
  • [367] regression: missing/hidden automap [scale initialization issue]
  • Hexen: pottery explode sound gets a channel but doesn't play [sf_dontstop]
  • Doom: Use Patch Replacement with the weapon slot indicators
  • fixed infinite loop when -iwad equals the Doomsday install dir
  • material subsystem causes fatal errors in dedicated mode
  • clientside InFine [with client skip]
  • resource namespace population issues [F_MatchFileName matching partial paths]
  • busy mode progress animation jumps arounds [anim logic]
  • -file arguments interpreted too late
  • -vdmap'd paths do not populate into resource namespaces
  • color palette not found [with model resource packs]
  • Hexen/Deathkings: game starts in regular Hexen Map01
  • server needs to send material Id dictionary to clients
  • [376] Chex Quest: unable to find a font at startup
  • getting stuck in monsters [prevent clientside overlaps]
  • [376] slow addon loading [with numerous zips]
  • Hexen: Bishop missiles need to be locally spawned (NetSv/Cl)
  • Hexen: skies do not scroll
  • Hexen: no music beyond title
  • replacement sprites scaled to dimensions of iwad original
  • server should send state/mobjtype dictionary to clients [resource mods]
  • Doom: Archvile resurrects something ⇒ engine shutdown [needs percent-encoded de::Uri]
  • mismanagement of GL_TEXTURE_2D state in model renderer
  • Doom: Doom title screen displayed when playing Doom II [resource search path order]
  • [381] regression: control panel slider/list buttons ineffective
  • [381] regression: control panel does not fade away
  • include man page in .deb
  • include readme.txt in Windows installer
  • bump minor game plugin versions
  • multiplayer: test with model resource packs loaded on client
  • compare ac/deceleration numerically vs. 1.8.6 (walk/run) [input-toggle-sharp]
  • increase netbuffer max size (up to 4 MB msgs now supported)
  • disable bindings for MP chat if there is only one player in game
  • aspect correct view window geometry
  • zero player control when receiving conflicting input (turn left & right at the same time)
  • automap: background does not cover entire view
  • segfault at startup [startup fonts not installed on Unix]
  • automap: player marker not smoothed/angle not updated
  • Doom: sound effect missing for screen resize
  • intermission: pressing Use doesn't move to the next stage
  • Snowberry: Chex Quest profile appears above “Shared Settings” [sorted by identifier]
  • Snowberry: default game mode selection for TNT and Plutonia incorrect
  • automap: missing “All marks cleared” message
  • sky models not rendered
  • [395] regression: HacX fails to start [missing mappoint font]
  • Doom|Heretic: Option to display kills/items/secrets huds only in automap
  • Unix: textures/flats not found from .pk3
  • [402] regression: dedicated server resource access failures [loads fonts; fails to find doomsday.ded; when installed to a non-system directory?]
  • Heretic|Hexen: view resize sounds (KEYUP; KEYS2A/PickupKey)
  • enforce ban on all GL/window access from busy worker
  • world time is not paused during game saves [commit 4b1a62ff]
  • game endings should loop forever [with NoSkip ⇒ script not stopped at end]
  • SDL: capslock behavior to match Windows: behaves like a normal key
  • menu buttons do not reflect the current state of their cvars (e.g., ctl-run)
  • prevent iterating through entire disk file tree during DD_LocateAllGameResourcesWorker() [e.g., -iwad (homedir)/some.wad; respect the NO_DESCEND flag; fixed by 98b889e2]
  • automap: default zoom level at map start [now closer to vanilla Doom; not identical, though]
  • input: track sharp input toggle states during busy mode (keys, buttons)
  • defer GL calls when not in main thread
  • Doom: missing enemies during the end game cast call
  • Heretic automap: font tracking state mismanagement [missing calls to FR_Push/PopAttrib in UI widget drawer]
  • finale events handled in the wrong order [Doom 2 cast call]
  • “shortcuts” binding context should be active during game endings
  • [402] regression: HacX: Password map object is broken [state lookup logic mismatches, DED Reader vs DEH Reader]
  • Doom: don't let floating monsters float into an invalid position after a valid XY move [verified in Doom 2 map30]
  • automap: panning in “follow off” mode is unusably slow
  • Hexen: falling scream not played in single-player games
  • [395] regression: movement controls stuck at map start
  • Hexen: standing on a mobj allows walking through walls
  • Hexen: no view bobbing when walking on mobjs [e.g., barrels in DK map17]
  • Enemies embedded in one another cannot separate [caused by game-mobj-fracepsilon]
  • Doom: Flying enemies get stuck on one another [mf2_passmobj]
  • multiple simultaneous “help” InFine scripts [rapidly tap F1]
  • update readme
  • WARNING: Phase 1 of game resource loading does not presently prioritize ZIP [no longer applicable]
  • -iwad failed locating iwads in root of Doomsday install dir
  • investigate possible dedicated server memory leak [disabled fast zmallocs]
  • memory zone functionality and performance: fixed memory zone fragmentation and excessive volumes; efficient test for a full volume
  • mobj ↔ polyobj collisions thrust mobj at an incorrect angle (+inconsistent damage) [polyobj seg→angle != linedef→angle]
  • Hexen: text mispositioned on the end game finale
  • Hexen: Korax's ghosts do not circle his corpse [removed FRACUNIT]
  • upon fatal error an attempt is made to return to ringzero [should simply shutdown; the implicit “unload” should not return to ringzero]
  • Game Menu|Hexen: character selection menu draws player sprite in wrong pos
  • Game Menu: main page objects not positioned exactly the same as the original games'
  • rend-dev-wireframe 1 will only affect player view; added mode 2 for wire framing the UI/fonts

Fixes

Engine

Windows

Common code library

  • Restored original behavior of automap cheats in single player. http://sourceforge.net/tracker/?func=detail&aid=2639419&group_id=74815&atid=542099
  • When using lookspring the view pitch would not center when side-stepping left.
  • Do not do the text glitter/shadow effect for the space character.
  • Menu text shadow effect does not work.
  • Chat widget sometimes drawn over the message log making it difficult to read.
  • Buffer overflow vulnerability in WI_DrawParamText.
  • When drawing paramater text blocks as used with the patch_replacement system, the “break” directive was interpreted immediately when encountered. If the same paramater block also made changes to font or scale before the use of the break directive; the subsequent break(s) would use the new font and/or scale rather than that which was in effect before the paramater block began.

InFine

  • Script command 'notrigger' does not work, allowing the menu to be opened.
  • Menu trigger not enabled by default (as specified in the documentation).

All games

  • Further tweaked player/mobj movement friction and deceleration.
  • Other HUD displays were being drawn behind the “ReadThis” help screens even though they could not be seen.
  • After a teleport the player's view bob offset was not zeroed, resulting in brief interpolation of the view height from the old relative height back to zero.

DOOM

  • HUD weapons vertically offset four pixels lower than in the original game when using the statusbar-span view.
  • Both the idclip and idspispopd cheats worked in all variants of DOOM.
  • Flickering of the Tower of Babel on the episode two intermission (present in the original game).
  • Dynamically spawned BOSSTARGETs (e.g., using the ccmd spawnmobj) not working as expected.
  • Upon loading a saved game duplicate BOSSTARGETs would be spawned. Note that this would have no visible effect on gameplay.
  • At easy skill modes, the boss brain will only spit a BOSSCUBE every other time A_BrainSpit is called. However the value used to keep track of this was not stored in saved games.
  • Fullscreen HUD counters drawn using the menu text shadow and type-in effect if enabled.
  • Teleporting voodoodolls would affect the real player's view height offset and look direction.

Heretic

  • The current item display on the fullscreen HUD cannot be enabled/disabled from the menu.
  • With the auto-hide HUD enabled cycling through the inventory would not automatically unhide.
  • The menu color widget did not display an alpha slider when setting the fullscreen HUD text color.
  • Teleporting voodoodolls would affect the real player's view height offset and look direction.

Hexen

  • Fatal error attempting to play Deathkings of the Dark Citadel (Rend_RenderSkyHemisphere: Sky layer without a material!).
  • The current item display on the fullscreen HUD cannot be enabled/disabled from the menu.
  • With the auto-hide HUD enabled cycling through the inventory would not automatically unhide.
  • Minor alpha blending artefacts when using a translucent statusbar and the automap is open.
  • The menu color widget did not display an alpha slider when setting the fullscreen HUD text color.

Changes

API

  • View window is now specified in viewport coordinates (formerly fixed 320×200).
  • Before calling game-side drawing routines the engine now configures the orthographic projection in the viewport coordinate space (formerly fixed 320×200). It is now the responsibility of the game to scale the coordinate space if/as required.
  • Added DDKEY_PRINT plus DDKEY_CAPSLOCK and implemented support in the SDL, Win32 and DirectInput wrappers (fixes http://sourceforge.net/tracker/?func=detail&aid=1533380&group_id=74815&atid=542099).

Engine

  • If support is available; make use of the relaxed OpenGL requirement for non-power-of-two textures. If present this negates the need to resize textures, consequently resulting in higher quality textures in-game (especially noticeable on small, odd-sized textures such as those used in the various game HUD displays).
  • Removed the splitting of large Patch and Raw format graphics into two textures. Back when this was implemented the maximum texture dimensions supported by many GL implementations was considerably smaller than is common today. So to preserve quality Doomsday would split “large” graphics up into two smaller parts. This resulted in several architectural issues as drawing these graphics necesitated the use of dedicated methods for the purpose. Today with maximum texture dimensions so much larger and support for non-power-of-two textures being common place, this splitting is no longer useful for 99% of systems and has now been removed (this will allow us to streamline the rest of the API and the engine-internal texture management).
  • New equalization algorithm used on detail textures during load which balances them toward the optimum average and amplifies the hi/low variance to achieve better results (with poor source textures) when rendering. Note this does not mean that artists no longer have to take care to do this during the creation process. A well authored detail texture will produce far better results than a bad one relying on this algorithm. Verbose messages will be added to the log detailing what was done to each detail texture.
  • When loading Patch format graphics with both the “Upscale and Sharpen” and “Monochrome” translation/conversion filters enabled; do the Monochrome conversion first then Upscale and Sharpen, as this produces better results. The upscale method utilizes the HQ2x algorithm which aims to retain the shape of regions with similar colors. By doing the monochrome conversion first, regions of similar luminosity but different hue are no longer treated as distinct seperate forms.
  • Added a nearest neighbor image scaling algorithm for use with tiny graphics (w*h < 16) rather than hq2x. The hq2x algorithm can do nothing to help graphics this small and better results can be obtained with a simple nearest neighbor.
  • When loading sprites add an additonal 1 texel border around the graphic which is then scaled and clipped out at render time. This addresses various GL filtering issues where a sprite contains color information in the edge texels.
  • Disabled the BlackOutlines algorithm previously used on Patch format graphics with the “Upscale and Sharpen” conversion.
  • Replaced 3D projection/field of view calculation and shortened the near clip plane for better support of ultra-wide/multi-monitor setups. http://sourceforge.net/tracker/index.php?func=detail&aid=2802692&group_id=74815&atid=542102
  • New approach to drawing the player weapon sprites which aims to preserve the original aspect ratio. If the window dimension aspect ratio is equal or near to the original ratio, psprites will be stretched to fill the screen. If not, psprites will be centralized and scaled to fit while maintaining the original aspect ratio. This means that by default anything between 4:3 and 16:10 will be stretched while everything else will be scaled to fit. This behavior can be overridden with the new cvar rend-hud-nostretch.
  • Resolution independent aspect-correct drawing of the view border/background.
  • Renamed command line option “texnonpow2” to notexnonpow2 and logically inverted its usage.
  • Tweaked console min-height to leave a gap 1/4th of line height above the command line.
  • cvars con-alpha and con-light are now defined as floating-point.
  • Use the same equation for calculating shadow darkness for mobjs as used with fakeradio. Default value for rend-shadow-darkness is now 1.2
  • Use a slightly larger offset for mobj shadows to help avoid z-fighting.
  • Long walls no longer receive slightly larger fakeradio shadows as this made lighting look very inconsistent in odd shaped areas.
  • Disabled lightgrid z-biasing as it does not work particularly well currently.
  • Renamed cvar “rend-tex-filter-raw” to rend-tex-filter-ui.
  • Removed ccmd “smoothscr” - now unnecessary as the cvar rend-tex-filter-ui can be modified directly.

Win32

Common code library

  • New approach to drawing various HUD elements which aims to preserve the original aspect ratio. If the window dimension aspect ratio is equal or near to the original ratio, the element will be stretched. If not, the element will be centralized and scaled to fit while maintaining the original aspect ratio. This means that by default anything between 4:3 and 16:10 will be stretched while everything else will be scaled to fit (unless overridden).
  • Resolution independent aspect-correct drawing of the message log, crosshair, map title/author and Pause graphic.
  • Improved animation between view sizes to include HUD display modes.
  • Minor reorganisation of the HUD menu.
    • Added a separate slider for crosshair opacity and removed the alpha slider from the color selection widget. It was not immediately obvious that when vitality color was enabled that the opacity could be set independently.
    • Reordered items, grouping together player message options.
    • Added a slider to the Messages section for message scale.
  • ccmds movefloor and moveceil no longer prevent moving planes to or past the height of the opposite plane.

InFine

  • Command “linehgt” is now interpreted as a percentage of the actual height of the font rather than a fixed 320×200 pixel offset.

Automap

  • Improved drawing of marked points by projecting them onto the edges of the view window (they are always in-view regardless of scale or position).
  • Scale up the width of lines drawn to 1/1.6 of their visible width at 320×200.

All games

  • The map title display is now drawn for each viewport instead of one over all viewports.
  • cvar hud-status-size is now defined as floating point.
  • Removed ccmd “viewsize” (now unnecessary as the cvar view-size can be changed directly from the console).
  • Removed ccmd “sbsize” (now unnecessary as the cvar hud-status-size can be changed directly from the console).
  • PrtSc key now bound by default to take a screenshot.
  • The gravity multiplier (cvar server-game-mod-gravity) previously only available in multiplayer now works in singleplayer also.
  • Changed maximum movement speed for camera players, allowing them to move almost twice as fast as non-camera players when running.

DOOM

  • Changed the default colors for the menu, fullscreen HUD to better match the original Patches.
  • Changed the built-in Patch replacement strings for the main menu load/save items and the headings on the load/save menus to better match the original patches.
  • The kills/items/secrets counters were previously only visible when the automap was open. Renamed the cvars “map-cheat-counter” and “map-cheat-counter-scale” to hud-cheat-counter and hud-cheat-counter-scale respectively.
  • Draw all owned keys on the statusbar if not cvar hud-keys-combine (e.g., if the player owns both the Blue Keycard and the Blue Skull they will both be drawn in slot 1).

Heretic

  • The kills/items/secrets counters were previously only visible when the automap was open. Renamed the cvars “map-cheat-counter” and “map-cheat-counter-scale” to hud-cheat-counter and hud-cheat-counter-scale respectively.

Hexen

  • Position the inventory left/right indicators relative to the number of visible slots when using the fullscreen HUD.

New features

Engine

  • cvar rend-hud-nostretch 1=Disable automatic stretching of the HUD to fill the screen at aspects near to the original game.
  • Monitor vsync is used automatically on Windows and Mac OS X for smoother screen refresh.

Win32

All games

  • cvar menu-nostretch 1=Disable automatic stretching of the menu to fill the screen at aspects near to the original game.
  • cvar finale-nostretch 1=Disable automatic stretching of finales to fill the screen at aspects near to the original game.
  • The help screens shown when selecting “ReadThis” from the menu or using the (default) F1 shortcut are now defined as in_fine scripts to allow for customization in mods.
  • Sequential cycling of player weapons using next/prev until the current weapon is fully lowered (for example, if the player owns weapons one through four and four is currently readied; cycling the previous weapon three times in quick succession will select weapon one). Added “Sequential” item to the Weapons option menu. Added cvar player-weapon-cycle-sequential (on by default).

Common Code Library

InFine

  • Added command “font” (handle) (font) specify the font to use with a Text block by name.
version/detailed_list_of_changes_in_doomsday_version_1.9.7.txt · Last modified: 2017-03-23 06:45 by skyjake