Skip to content

releases/0.8.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@BodbDearg BodbDearg released this 12 Jul 06:31
· 640 commits to master since this release

Feature changes & improvements

  • Expanded the available VRAM for the game from 1 MiB to a maximum of 128 MiB (the default).
  • Greatly expanded the amount of main RAM available to the engine; it's now 64 MiB by default (up from around 1.3 MiB).
    • This can also be increased further via config settings, if needed.
  • Added support for any power of two texture size for walls and flats from 2x2 up to a maximum of 1024x512.
    • Previously only wall textures with pixel widths 16, 64 and 128 were possible.
    • Previously only 64x64 pixel flats were allowed.
  • Classic renderer: now allowing up to 8192 sprites (instead of 64) to be drawn per subsector.
  • Removed all limits on:
    • The maximum map lump size (was 64 KiB).
    • The maximum number of flats in a map (was 16).
    • Classic renderer: the number of draw subsectors (was 192).
    • Classic renderer: the amount of geometry that can be clipped (was 20 edges and 32 vertices max).
    • The number of scrollable lines (was 32).
    • The number of moving floors (was 30).
    • The number of moving ceilings (was 30).
    • The number of specials that can be triggered in one frame by crossing lines (was 8).
    • The number of switches that can be activated at once (was 16).
    • The maximum size of the music sequencer's .WMD file (was around 70 KiB in previous builds).
  • Implemented Doom 64 style dual colored lighting.
    • Due to the need for binary map format compatibility, the feature is slightly more limited than D64.
    • However it does have additional tweaks & controls available that aren't found in the D64 engine.
  • Implemented the ability to have floor skies.
  • Implemented a new 'invisible/ghost' platform flag for sectors.
    • This makes the sector render as if it's floor height is the same as the lowest sector floor height around it.
    • Can be used to make invisible platforms, like the 'self-referencing sector' technique for the PC engine.
  • Implemented support for a new 'MAPINFO' lump to allow user maps and episodes to be named etc.
    • See PsyDoom's modding docs for more details.
  • Implemented the ability to add custom animated textures and flats via the 'PSYFANIM' and 'PSYTANIM' lumps.
  • Added the ability to define new switch types via the 'PSYSWTEX' lump.
  • Implemented a simple 'DECORATE' style lump for adding new (non-interactive) decor sprites.
  • Implemented the ability to use Lua for scripted line and sector specials.
    • Scripts allow more control over specials and for elaborate sequences of events to be scheduled.
    • See PsyDoom's modding docs for more details.
  • Implemented the ability to adjust floor and ceiling texture offsets via scripting.
    • Can be used to do scrolling effects.
  • Reimplemented the following missing enemies/things from PC Doom II:
    • Arch-vile (now DoomEd number '91' for PSX).
    • Wolf-SS.
    • Commander Keen.
    • All 'Icon Of Sin' related things.
  • Reimplemented the following missing line specials from PC:
    • 131 & 132: 'raise floor turbo' switch, once and repeatable.
    • 130 & 129: 'raise floor turbo' line cross trigger, once and repeatable.
    • 128: repeatable 'raise floor to nearest' line cross trigger.
  • Reimplemented the following sector specials missing from PC:
    • 11: E1M8 style 'death' exit
  • Made the 'Texture Cache Overflow' error a non-fatal warning.
    • Graphical corruption may still happen when this situation arises, but using a warning allows the game to recover.
  • Implemented an optional on-screen stat counter that can show kills, secrets and item stats.
    • This can be toggled in the 'Extra Options' menu.
  • Added logic to de-duplicate and merge identical sounds played at the exact same time to keep audio levels under control.
  • Removed the use of the 'TEXTURE1' and 'SPRITE1' lumps by the engine.
    • This makes adding new textures and sprites much easier.
    • Instead use the size and offset info in the texture header.
  • Now generating the list of sprites in the game based on main WAD contents rather than hardcoding.
    • Allows new lumps to be added to main game IWADS without breaking the lump numbers in the sprite list.
    • Also allows new sprites to be more easily defined.
  • Lua: add the ability to have an external camera viewing something for a brief period.
    • Useful for showing the result of using a switch etc.
  • Define new hint flags to specify whether a sky wall should be drawn above a 2-sided linedef.
    • Allows the mapper to control the behavior and fix certain problem cases if required.
  • Vulkan renderer: allow lower and upper walls to extend past sector floors and ceilings.
    • Allows certain special effects to be achieved when used in conjunction with sky floors or ceilings.
      • In order to support this change renderer batching must be broken in some (rare) situations.
    • This change also makes the renderer behavior/results more consistent with the classic renderer.
  • Added PsyDoom specific generic marker things, intended for use in scripting.
  • Overhauled WAD management to allow for more than one main IWAD.
    • PsyDoom will now load 'PSXDOOM_EXT.WAD' and 'PSX_MISSING_ENEMIES.WAD' from the mod directory specified via the '-datadir <MY_DIRECTORY_PATH>' command line argument.
    • The user can also manually add extra IWADs via the '-file <WAD_FILE_PATH>' program argument.
    • For more on all this, see PsyDoom's modding documentation.
  • Limit removing: allow sprites with odd widths to be used (normally these would display corrupt).
  • Level loading: now handling missing textures more gracefully.
    • Missing textures are replaced with a default and a warning is issued after level startup.
  • Tweaked audio compression further to reduce the amount of compression.
    • Should now only activate when sounds get really loud.
  • Vulkan renderer: add a (default enabled) tweak that brightens automap lines to compensate for them appearing perceptually darker, due to their thinness at high resolutions.
    • This tweak is required due to a correction made to the automap line colors for both renderers.
    • Previously they were over bright for both renderers due to a bug, so dimness not an issue.
  • File overrides mechanism: make file name matching case insensitive.
  • Add a developer cheat to automatically re-load a map 'in-place' when it has changed.
    • This reloads the map but preserves player position and view angle. Useful for quickly previewing changes.

Bug fixes

  • Fix a bug where sometimes sound would not work on startup.
  • Original bug: fix bullet puffs not appearing sometimes when shooting certain walls outdoors.
  • Original bug: LCD Loader: fix a bug that could sometimes cause sounds to be cut short.
    • This bug can be observed on Final Doom MAP28 (Baron's Lair) with the Revenant's pain sound being cut short.
  • Automap: fix some colors being slightly incorrect versus how they appear in the original PSX game.
  • Windows: fix the game (unintentionally) running at lower resolutions when the Windows display scale is not at 100% (thanks @aybe!)
  • Original bug: fix the 'House Of Pain' hidden door bug by applying a map patch.
  • Fix music in Doom MAP04 having notes that are slightly off; fix a slight difference in pitch calculations versus the original game.
  • Fix lights in a room not going fully out in Final Doom MAP08, Minos, after collecting the Super Shotgun.
  • Final Doom MAP23 (Ballistyx): fix the altar ceiling hole not being see through and fix some outer walls dissapeering in the yellow key cage area.
  • MAP47 The Citadel: fix not being able to see over the small starting hut even though it is lower than other buildings.
  • Original bug: fix numeric overflows in the line-of-sight calculations that would sometimes cause enemies to not see the player.
    • These overflows occurred when sector floor and ceiling heights differed greatly.
  • Fix a strange sound playing when returning from the finale to the main menu.
  • Fix the item bounding box display in the VRAM viewer.
  • Fix view height interpolation being broken when a platform underneath the player is moving but the player is not touching it.
  • Fix the engine crashing without explanation if certain required/non-optional textures are not found.
    • Instead issue an error explaining what is wrong.
  • Tweak the rocket blast fix to the correct forces applied in some situations and to try and ensure the explosion is always rendered.
  • Original bug: fix certain 'raise platform' actions not fully finishing when the target floor height was reached.
    • This bug would prevent further specials from being executed on sectors, because movers were still regarded as 'active'.
  • Classic renderer: fix invalid handling of textures that are uncompressed for wall segment rendering (resulted in crashes).
  • Classic renderer: fix numerical overflows in sky wall rendering in some cases when really close to sky walls that are very high overhead.
  • Classic renderer: fix numeric overflows in extremely tall maps with far offscreen walls.
  • Vulkan renderer: fix flickering when sprites are placed at exactly the same location.
  • Vulkan renderer: fix a slight error in setting up texture wrapping for the sky (could affect custom skies).
  • Final Doom: fix the revenant missile fire sound sometimes playing upon reaching the MAP30 finale.
  • Audio tools fixes and error handling tweaks:
    • LcdTool: show more info when there is a sample size mismatch with the WMD when building the LCD file.
    • Fix the handling of implicit blocks in the VAG file. Need to be aware of the file size and zero any blocks that are not in the file.