Skip to content

Releases: BodbDearg/PsyDoom

1.1.1

13 Jun 06:50
Compare
Choose a tag to compare

Feature changes & improvements

  • Add the ability to choose between exclusive and borderless windowed fullscreen modes.
    • Previously PsyDoom only supported exclusive fullscreen.
    • Borderless windowed is the new default, since it handles multi-tasking better and there is no real performance difference in most cases.
  • Upgraded various third party libraries used by PsyDoom (such as SDL) for better OS and device compatibility.
  • HUD: tweak message priority for renderer/uncapped-fps toggle.
    • If toggling both at the same time then show a message for the renderer being toggled instead of uncapped fps being toggled.

Bug fixes

  • Windows: fix invalid handling of Unicode characters in save data filepaths (#93).
    • This bug prevented user preferences and save files from being written successfully.
  • Fix the Wolfenstein SS enemy not dropping ammo clips.
  • Vulkan renderer: fix excessive registry access while the Window is minimized. (#91).

1.1.0

05 Mar 08:10
Compare
Choose a tag to compare

Feature changes & improvements

  • Added support for "GEC Master Edition Beta 4".
  • Classic renderer: add a new improved precision mode for rendering walls (enabled by default).
    • Helps prevent textures from sliding and stretching and improves temporal stability significantly, particularly when using uncapped framerates.
  • Added a variety of new map fixes for Doom, Final Doom, and GEC Master Edition Beta 3 & 4.
    • Demo compatibility with previous PsyDoom versions may be affected for some maps due to the changes.
  • The game now auto-pauses if the window loses focus.
    • This feature can be turned off if needed.
    • Auto-pause is also ignored for demo playback and recording since pause is not allowed in those scenarios.
  • Vulkan renderer: tweak sprite splitting across subsector boundaries to try and improve the visual result of sprite ordering.
    • Take into account how much a sprite intersects geometry vertically when deciding whether to allow a split or not.
    • Disallow splits if the sprite intersects geometry too much.
  • Demo playback: show the intermission screen at the end if the level was completed.
  • Automap: implement opt-in extended automap coloring which shades live enemies and bonus items differently.
    • This makes identifying remaining enemies and items easier when used with the 'Map all things' cheat.
  • Multi-display environments: make PsyDoom start the game on the display where it is launched from.
    • Which display to use is determined by the mouse position at launch time.
    • Also allow the start display to be manually specified, if needed.
  • Launcher: default the mod directory chooser to the currently selected mod directory.
    • On Windows default it to the current working directory, if no valid mod directory is selected.
  • Add the option to trigger boss related specials when using the 'No monsters' cheat in singeplayer or co-op.
    • This option allows progress past maps which require boss enemies to be killed, even when there are no monsters.
  • Added the ability for mods to use widescreen menu background assets.
  • Finale: show the Arch-vile in the cast of characters if the current game or mod has the assets for it.
  • Single player: add the option to spawn deathmatch only things (if desired).
  • Single player: add an "IDFA" cheat for "Lots Of Goodies! (No Keys)".
  • Multiplayer: allow secret maps to be selected and map selection to wrap around on the main menu.
  • Co-op: add an option to disable friendly fire.
  • Co-op: add an option to preserve some ammo after dying and respawning.
  • Co-op: add an option to preserve keys after dying and respawning.
  • Co-op: add the option to spawn deathmatch only things.
  • Deathmatch: add a frag limit option.
  • Deathmatch: add the option to disable exits if no frag limit is set.
  • Deathmatch: add the option to trigger boss related special actions upon entering a map.
    • These are normally only possible to activate in single player, after killing all enemies of a certain type.
  • Tweaked the punctuation for some loading and saving related HUD messages.
  • Turned down the default mouse speed since it was probably too high for most users.
  • Disallow weapon switching from occurring when zooming in and out on the map.
    • Enables the mouse wheel to be bound to both zoom in/out and weapon switch.
  • Make the Arch-Vile, SS Tropper, and Commander Keen things use the same timings as the 'GEC Master Edition (Beta 4)' project.
    • This helps maintain demo compatibility between maps made for GEC ME Beta 4 and PsyDoom.
  • Save slots: truncate the map name if it is too long, or if it is multi-line.
  • Icon of sin: add the ability to manually specify the roster of enemies via map things with the 'MTF_SPAWN_BY_IOS' (0x100) flag.
    • In addition to this when the IOS is using this roster, enemies will occasionally spawn with special blending and will occasionally be nightmare.
    • This mirrors similar functionality in 'GEC Master Edition Beta 4'.
  • Made new MAPINFO additions and changes:
    • Added the following new settings to GameInfo:
      • AllowWideOptionsBg, AllowWideTitleScreenFire
      • TexLumpName_BACK
      • TexLumpName_Inter_BACK, TexPalette_Inter_BACK
      • TexLumpName_OptionsBG
      • TexLumpName_STATUS
      • TexLumpName_TITLE, TexLumpName_TITLE2, TexPalette_TITLE2
      • TexPalette_TitleScreenFire
      • TitleScreenCdTrackOverride
    • Removed the following settings from GameInfo:
      • CreditsXPos_IDCRED2, CreditsXPos_WMSCRED2
    • Added the following new settings to Episode:
      • LogoPic, LogoPal, LogoX, LogoYOffset
      • IsHidden
    • Added the following new settings to Map:
      • NoIntermission
    • Added new CreditsPage and ClearCredits definitions.

Bug fixes

  • Fix an infinite freeze if there is no valid audio output device.
  • Arch-vile: fix a small error that might sometimes cause it to not raise corpses when it should.
  • Fix 'nightmare' style enemies resurrected by the Arch-vile not having 2x health.
  • Icon Of Sin: count spawned enemies towards the kill count if the kill count fix is enabled.
  • Status bar: fix the extension pieces for Vulkan widescreen not repeating sometimes for some extremely wide aspect ratios.
  • Fix the toggle key for uncapped framerate not working in all the same places as the renderer toggle key.
    • This fix can be useful to keep the two settings in lockstep, if you want to toggle between the classic renderer and uncapped FPS with the same key at the same time.
  • Fixed a bug where the level timer is not properly set after loading a save from the main menu or another map.
  • Final Doom: fix unintended/stray pixels on the key card sprites when visual map patches are active.
  • Launcher: fix vertical mouse wheel inputs not being recognized when binding an input to an action.
  • Fix the player being killable while in sector special '11'.
    • Mirror PC Doom behavior and don't allow enemies to kill the player while in this sector type.
  • Quickload: prevent strange sounds from sometimes playing when quick loading to another map.
    • Kill all active sounds immediately before loading the new map.
  • Lua scripting: count enemies spawned via 'P_SpawnMobj' towards the total kill count, if the kill count fix is enabled.
  • Warp menu: don't reset the map number if an attempt is made to open it again while it's already showing.

1.0.1

08 Oct 06:52
Compare
Choose a tag to compare

Important note

This release raises the minimum required Windows version to 8.1. Windows XP, 7 and 8.0 are no longer supported.

Feature changes & improvements

  • Add the ability to toggle the 'uncapped framerate' setting in-game via the 'extras' menu and via a toggle key (unbound by default).
    • This makes it easier to switch between high-fps Vulkan rendering and low-fps 'classic' rendering, all while in-game.
    • Note: the old config setting for uncapped framerate is now removed as a result of this change.
  • Demo recording: show when recording has started and ended for added clarity.
    • There are some situations like when loading a save game where demo recording is not allowed; this change helps identify those situations.
  • Demo recording: allow the game to be paused while recording instead of just quitting the game.
    • Note: pausing causes recording to end, since demos can't pause the game.
    • This change can be helpful for speed-runners to restart the level again and record the next run.
  • Simply the HUD messages emitted when loading and saving a game so that they don't clutter up the UI.
  • Deathmatch: display a frags count (you/them) if kill stats are enabled.

Bug fixes

  • GEC Master Edition: fix the wrong CD music track playing for the 'Icon Of Sin' level.
  • Vulkan renderer: fix level and performance stats not drawing in the right place if widescreen is disabled.
  • Doom MAP20 'Unholy Cathedral': fix some lines incorrectly marked as doors, and door tracks that should not move.
  • Classic renderer: fix an issue that has the rare potential to cause crashes.

1.0.0

29 Sep 08:29
Compare
Choose a tag to compare

Feature changes & improvements

  • Added the ability to load from and save to savefiles.
    • There are 5 save slots available, 3 manual/numbered slots, 1 quicksave slot and one autosave slot.
    • Autosave happens at the start of each level.
    • Each game type also has it's own set of savefiles which do not interfere with each other.
  • Added a new GUI based launcher to make configuring and running the game much easier.
  • Uncapped framerate: added motion interpolation/smoothing for sectors, map objects, and the player weapon.
    • These can all be disabled if required.
  • Implemented the playback of intro logos and movies to mimic the startup flow of the original game.
  • Added full support for playing the 'GEC Master Edition Beta 3'.
    • PsyDoom also supports playing the single level test discs produced by the GEC modding tools.
  • Added support for Linux.
    • Officially supported architectures are x86_64, arm64 and armhf.
    • A Debian 'Buster' based distro (or later) is recommended. Other distros might work, but have not been tested.
  • Tweaked interpolation for improved smoothness.
    • Space frames apart by a fixed and absolute amount in time to improve pacing consistency and visual smoothness.
  • Dropped the required Vulkan version down to 1.0 instead of 1.1.
  • Added a new app icon.
  • Implemented demo recording and a new enhanced demo format for PsyDoom.
    • This new format supports recording multiplayer games among other improvements.
    • During multiplayer demo playback, you can also toggle which player is viewed.
  • Map patches: add the ability to configure whether certain categories of map patches are applied or not.
    • Most patches can be opted out of, if original bugs are desired.
  • Add the ability to type in passwords with the keyboard.
  • Implemented onscreen performance counters that can be enabled to profile the game. The counters show average FPS and frame time in microseconds.
  • Vulkan renderer: made occlusion culling more lenient to help avoid 'pop in' of sprites when bordering visible and hidden areas. Render more subsectors, at the cost of some performance but hopefully with less pop in.
  • Vulkan renderer: added tweaks to flat merging and sprite splitting to try and improve some draw order issues.
  • Vulkan renderer: disable MSAA for lower powered GPUs by default. Also use low resolution (480p) on the Raspberry Pi by the default.
  • Make nightmare Pain Elementals spawn nightmare Lost Souls. Also make spectre Pain Elementals spawn spectre skulls.
  • Config: remove the default cue file path which was 'Doom.cue'. Instead force the user to choose which disc to play with. This should reduce confusion in future. Also make the launcher check that a valid (existing) cue file is chosen.
  • Add support for 'Voodoo dolls' that behave largely similar to those found in PC Doom. Limitation: sector damage effects do not currently effect the dolls.
  • Video: make whether to use v-sync configurable. Note: this setting might be ignored by the OS/driver.
  • Implemented support for playing the one level PAL/Europe demo of 'Doom'.
    • Supports the standalone Doom demo disc as well as the demo found in collections like 'Essential PlayStation 3' and 'Euro Demo 103' (Official UK PlayStation Magazine).
  • Implement a tweak which allows multiple 'Computer Area Map' powerups to be picked up (enabled by default).
    • This fixes issues on some maps where 100% items cannot be obtained because there are multiple map powerups present.
  • Tweak how co-op indirect monster kills are handled. Instead of assigning the kill to nobody try assigning the kill to the player being targeted by the enemy; this player is most likely responsible for the indirect kill. If this is not possible (e.g due to monster infighting) then randomly assign the kill to one player or another.
  • Icon Of Sin: don't spawn an Arch-vile if the sprites for it are not present in the loaded wads. Instead spawn a Revenant.
  • Raised the default audio buffer size from 128 to 256 samples to help avoid playback issues.
  • Deathmatch: hide HUD kills/secrets/item stats even if turned on in the options menu. They don't make sense in this mode.
  • Co-op: make the in-game stats joint counts, so overall level completion can be determined by both players. On the tally screen individual contributions to those counts will still be shown.
  • Added -warp <MAP_NUMBER> and -skill <MAP_NUMBER> command line arguments.
    • These arguments allow quick warping to a specific map for testing - useful for map development.
  • Teleporting: disallow all self-telefragging. Added as a safety measure now that multiple line specials can be triggered at once (see bug fixes), in case the player activates two sides of the same teleporter at the same time.
  • Sector specials: issue a warning rather than a fatal error if entering a sector with an invalid special.
    • Allows the game to recover from mapping errors in this situation.
  • MAPINFO: add a HideNextMapForFinale flag to Cluster definitions. This flag allows hiding of the next map and password displays on the intermission for the last map in the cluster.
  • MAPINFO: made various menu palettes configurable and also made the options menu tile graphic configurable.
  • MAPINFO: make the palettes used for STATUS, TITLE and credits related lumps all configurable.
  • MAPINFO: allow either a Doom or Final Doom style title or credits screen to be used.
  • Added some additional validation and sanity checks to program arguments. Certain combinations of settings contradict each other or are not supported.
  • Vulkan renderer: allow 1 sided lines to be rendered masked or translucent.
    • This makes the Vulkan renderer behave the same as the classic renderer in this scenario.
  • Tweaked the view bobbing strength fix to make it less jerky/glitchy at low frame rates.
  • Add a '-nolauncher' command line argument which skips/bypasses the launcher.
    • This argument has no effect other than skipping the launcher.
    • The launcher is skipped when any command line arguments are provided, the new switch serves as a way to invoke that behavior without having any other side effect.
  • LCD loader: abort loading an LCD file if it contains samples not listed in the WMD file and issue a warning. This added safety will prevent crashes and undefined behavior in this situation.

Bug fixes

  • Added various patches for map issues in both Doom and Final Doom.
    • These patches are mostly to address minor visual issues.
    • Also fixed many for 'GEC Master Edition Beta 3', including some progression blockers.
    • All these map fixes are far too numerous to list here!
  • Fix line activation logic not being reliable in some cases.
    • Fixes some situations where switches would be hard to use, and also some exploits where switches could be used through walls.
  • Implement a fix (enabled by default) to the 'total kills' counter: increment the total whenever a new enemy is spawned. This fix prevents the total kill % from exceeding 100 and allows the player to determine how many enemies are actually left.
  • Fix an original bug where sounds sometimes have incorrect reverb applied after starting a level.
  • Fix the view angle not interpolating smoothly on the player's death.
  • Fix overriding original flats and textures via loaded wads not working for Final Doom format maps.
  • Fix audio clicks when stopping sounds suddenly, like missiles being destroyed.
  • Fix some types of blood decorations (thing types 79-81) not moving up or down with elevators.
  • Vulkan renderer: fix the game freezing in some parts of the game when alt-tabbing out of the game.
  • Fix an original Doom bug where sometimes enemy gibs after crushing can block the player. The bug would happen if the enemy is crushed during it's death animation.
  • View interpolation: fix a bug where the view height is not snapped correctly after teleporting. Can cause momentary view movement/glitching if teleporting up or down great heights.
  • Fix a crash playing demos via the '-playdemo' command where the map has a fire sky.
  • Doom: fix unintended holes in the 'GRATE' texture which cause visual artifacts. Patch the texture to fill in the holes.
    • Note: this fix is enabled when visual map patches are enabled.
  • Fix an original issue where two of the music tracks in 'Final Doom' stop eventually and don't play again.
  • Fix an original bug where only 1 line special can be crossed per frame.
    • Now any amount can be crossed, if the fix is enabled.
    • Should be helpful for new maps that place many line specials close together.
    • It is still disallowed to cross multiple lines with the same special and tag in 1 frame however...
  • Fix an original bug where sometimes sprites on the edge of ledges 'warp' between the top and bottom of the ledge.
  • Fix an original PSX crash which happens when the player tries to activate a 'door' special on a 1-sided line.
  • Vulkan renderer: fix occasional precision issues rendering sky walls that cause them not to cover intended areas sometimes.
  • Vulkan renderer: fix the sky being stretched when widescreen mode is disabled.
  • Co-op/dm: fix an original bug where sector specials that cause pain also change the status bar face for the other player. Now the pain face will only be shown for the player receiving the pain.
  • Deathmatch: fix negative frag counts not displaying correctly.
  • Co-op: fix key pickup sounds not playing.
  • Passwords: fix a bug that allowed passwords with invalid map numbers to be entered for 'Final Doom'.
  • Vulkan/classic renderers: fix sky walls sometimes not rendering in the correct locations.
  • Vulkan device selection: fix a bug where CPU devices were preferred over integrated GPUs.
  • Vulkan renderer: fix a rare draw order bug when viewing things at 90 degree angles.
  • Fix developer cheats causing the view to jitter sometimes when used.
  • PAL: added fixes ...
Read more

0.8.3

17 Oct 06:14
Compare
Choose a tag to compare
0.8.3 Pre-release
Pre-release

Bug fixes

  • Fix a crash when activating god mode after death, deactivating and then firing.
  • Fix original demos potentially de-syncing if MAPINFO specifies Doom vs Final Doom game rules.
  • Big font: fix the uppercase letter 'C' being slightly cut off.
  • MAPINFO: fix a bug where setting the 'Text' field in 'Cluster' would not clear unused lines.
    • The bug would result in unwanted text from the base game's finale displaying - now fixed.

0.8.2

12 Oct 08:06
Compare
Choose a tag to compare
0.8.2 Pre-release
Pre-release

Bug fixes

  • Arch-vile: fix resurrected monsters not having their blending mode preserved.
  • Classic renderer: fix occasional numerical overflow when using dual colored lighting.
    • The bug would result in strange wall colors in some situations.
  • Cheats: add a message for when the 'X-Ray Vision' cheat is enabled and disabled.
    • Helps explain what is happening to avoid confusion.
  • MAPINFO: fix the 'multiplayer disabled' sound unintentionally playing when moving up and down the main menu.
    • The sound should only play when the user attempts to switch to multiplayer.

0.8.1

30 Aug 06:12
Compare
Choose a tag to compare
0.8.1 Pre-release
Pre-release

Feature changes & improvements

  • Implement the option to extend the player shoot range (on by default).
    • If enabled, extends the following player attack limits:
      • Max shoot/hitscan distance, from '2048' to '8192'.
      • Max auto-aim distance, from '1024' to '8192'.
      • Max BFG spray/tracer distance, from '1024' to '2048'.
  • Robustness: gracefully handle orphaned lines with no sectors in the map data instead of crashing.
  • MAPINFO: add the ability to disable multiplayer for a user mod.
    • May be required if the mod uses tricks that are incompatible with a multiplayer environment.
  • Improve the behavior of the Final Doom 'no repeat' mid wall flag.
    • Instead of forcing the mid wall to be 128 units in height the flag now forces the wall height to be the same height as the texture.
    • This allows fence textures smaller than 128 pixels in height to be used.
    • The change doesn't affect original maps, but will be useful for modding.
  • Implement sector special '32' (strobe hurt) which behaves the same as special '4' on PC.
    • The PSX version of special '4' is missing the strobe, and this behavior must be preserved for map compatibility reasons.
    • For a PC style 'strobe hurt' special '32' can now be used, if desired.
  • Sector special 11 (Damage 10/20% and End level): don't play the player's death sound (silent death).
    • This makes the behavior more like PC.

Bug fixes

  • Classic renderer: fix tall sprites like tech pillars sometimes vanishing up close.
    • These pillars can be found in 'MAP01: Attack' of Final Doom.
  • Doom MAP04 (Command Control): fix some steps appearing black.
  • Doom MAP22 (Limbo): fix a step/lower-wall not rendering.
  • Fix flats and textures in PSXDOOM_EXT.WAD not overriding those in PSXDOOM.WAD.
  • Fix an original bug where sometimes sound propagates through closed doors that should block it.
    • This bug can be observed with the small window into the secret room, in MAP03 of Doom.
    • It allows sound to pass through it even though it is closed.
  • Fix an original bug where the 'lower and change texture' special doesn't work sometimes.
    • The bug can happen if the sector being lowered is surrounded by another sector that isn't at the destination height.
    • Without this fix a series of lowering floor segments like E3M1 in PC Doom will not work.
  • Final Doom: fix incorrect default palette selection for SKY02-SKY06 if a user map with the .WAD extension is loaded.
    • Palette selection logic was incorrectly using DOOM palette selection logic instead of Final DOOM logic.
    • The fix makes the palette selection method vary depending on the base game loaded rather than the map file extension.
  • Fix being able to use again scripted 'once only' switches.
  • Fix overflows in shooting logic near the minimum & maximum possible map coordinates.
    • Helps prevent strange behavior for larger maps that have areas close to these coordinates.

releases/0.8.0

12 Jul 06:31
Compare
Choose a tag to compare
releases/0.8.0 Pre-release
Pre-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.

0.7.4

15 Apr 07:54
Compare
Choose a tag to compare
0.7.4 Pre-release
Pre-release

Feature changes & improvements

  • Add a new '-turbo' command line parameter that enables the 'turbo mode' cheat.
    • Turbo mode allows the player to move and shoot twice as fast, and doors and platforms also operate twice as fast.
  • Vulkan renderer: draw an extended in-game status bar for widescreen mode, using the existing HUD assets.
    • Can be disabled however if letterboxing is preferred.
  • Allow an input key to execute a 'pause' and 'menu back' action at the same time.
    • This allows a key such as 'Escape' to go directly from gameplay to the options screen, bypassing the intermediate 'pause' screen.
    • Change the default key bindings also so that 'Escape' goes directly to the options menu.
  • Vulkan renderer: add a small tweak to make sky scrolling smoother.
  • Engine limit removing: no longer load .IMG files (containing sprites and textures) for maps, instead load resources from WAD files.
    • This makes modding easier since it removes the need to produce these files.
    • We also don't need to worry about lump number references in .IMG files being invalidated if we add new lumps to the main IWAD.
  • Classic renderer limit removing: fix view corruption for tall cliffs of 1024 units or more in height; fix a numerical overflow issue.
  • Spu limit removing: extend SPU RAM to 16 MiB by default and make the amount configurable.
    • Will allow any monster variety on a map without worrying about exceeding SRAM limits, and plenty of SRAM for new music and SFX etc.
  • Spu limit removing: extend the number of available voices from 24 to 64.
    • This should allow PsyDoom to handle even extremely busy scenes and music without dropping any sounds.
  • Spu limit removing: upgrade audio processing and mixing from 16-bit to floating point quality.
    • Improves precision and eliminates distortion on loud sounds caused by audio clipping.
  • Spu: add dynamic range audio compression to limit the strength of very loud sounds.
    • Required since audio loudness is almost unlimited and does not clip anymore with the float SPU.
    • The compression is very light in most cases and barely noticeable until very loud situations occur.

Bug fixes

  • Fix an exploit where it was possible to move at 2x speed if using analog and digital movement at the same time.
  • Fix an original and PSX specific audio bug that could sometimes cause enemy and player sounds to cut out prematurely.
    • The logic for stopping a missile's spawn sound on explode was slightly flawed, and causing other (unintended) sounds to be stopped instead.
  • Vulkan renderer: fix a failure to redraw the screen while connecting to a multiplayer game, after resizing the window.
  • Debug builds: fix Vulkan validation layer errors on starting a multiplayer game and on encountering an error during a multiplayer game.
  • Windows debug builds: fix an error printed to the console about invalid command line arguments when there are no arguments specified.

0.7.3

27 Mar 07:01
Compare
Choose a tag to compare
0.7.3 Pre-release
Pre-release

Feature changes & improvements

  • Vulkan renderer: add the ability to specify a preferred GPU device to use, useful for manual selection in multi GPU systems.

Bug fixes

  • Fix graphical corruption issues on AMD GCN 4 cards and possibly other AMD GPUs.
  • Fix discontinuities and 'wobbling' of the sky for some scenes, particularly at lower draw resolutions.
  • W_ReadMapLump : fix a crash with reading uncompressed map lumps (affects user maps).
  • P_LoadSectors : issue a descriptive error when a flat texture is not found rather than crashing.