releases/0.8.0
Pre-release
Pre-release
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.
- Allows certain special effects to be achieved when used in conjunction with sky floors or ceilings.
- 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.