PsyDoom

From DoomWiki.org

PsyDoom
PsyDoomMap32Underhalls.png

A view of MAP32: Underhalls, rendered at 3x native resolution.

Standard PlayStation Doom
Codebase PlayStation Doom
Developer(s) Darragh Coy
Initial release 0.01 (2020-01-23, 20 months ago)
Latest release 0.8.0 (2021-07-12, 3 months ago)
Development status Active
Written in C++
Target Platform Cross-Platform
Available in English (United States)
License GNU General Public License v3
Source Repository

(git)

github.com

PsyDoom, formerly known as StationDoom, is a source port based on the Sony PlayStation version of Doom by Darragh Coy. It is a backport, which allows playing that version of the game on Windows and Mac machines. PsyDoom includes several enhancements over the original, bypassing the limits imposed on the PlayStation hardware and bringing the visual rendering features of the PlayStation version to general purpose computers. It also includes a Vulkan renderer to enable higher resolutions and a more stable framerate than the original.

Features[edit]

PsyDoom allows playing the PlayStation version of Doom (or Final Doom) when provided with a CD image named DOOM.CUE in order to be detected. The source port utilizes hardware accelerated rendering (OpenGL or Vulkan on PC, Metal on Mac OSX x86 and ARM) to internally emulate and natively render the PlayStation graphics pipeline. It has the following list of notable features:

  • Native rendering of all of PlayStation's enhanced rendering features, including higher color depth, alpha blending, colorized sectors and animated skies
  • Emulation of original 16 bit lighting and shading rendering as per the original game
  • High resolution rendering when using Vulkan/Metal, such as 1080p and 1440p
  • Widescreen support beyond the original aspect ratio
  • 240p resolution mode to emulate the look and feel of the original version
  • Ability to instantly toggle between Classic and Vulkan rendering modes
  • MSAA anti-aliasing support
  • Experimental support for ARM based Apple Mac processors, such as the Apple M1
  • Various QoL (Quality-of-life) fixes to enhance the personal computer experience as opposed to the console version
  • Doom 64-style dual colored lighting
    • Due to the need for binary map format compatibility, the feature is slightly more limited than in Doom 64. However it does have additional tweaks & controls available that aren't found in the D64 engine (since version 0.8.0)
  • Floor skies support
  • A new 'invisible/ghost' platform flag for sectors.
    • This makes the sector render as if its floor height is the same as the lowest sector floor height around it. This can 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
  • Custom animated textures and flats support via the PSYFANIM and PSYTANIM lumps
  • Support for new switch types via the PSYSWTEX lump
  • Implementation of a simple DECORATE-style lump for adding new (non-interactive) decor sprites
  • Support for the Lua programming language for scripted line and sector specials
    • Scripts allow more control over specials and for elaborate sequences of events to be scheduled.
  • Custom floor and ceiling texture offsets through scripting, making scrolling effects possible
  • Several new line and sector specials reimplemented from the PC version
  • Optional on-screen stat counter that can show kills, secrets and item stats. Can be toggled in the 'Extra Options' menu
  • Overhauled WAD management to allow for more than one main IWAD. Users can also manually add new IWADs

Limit-removing features[edit]

Since version 0.7.3, PsyDoom is focused on bypassing and removing the original PlayStation limits in terms of memory allocation and map complexity, allowing more complex maps to be made. These features include:

  • Sound Processing Unit (SPU) memory increased from 512 KB to 16 MB and is user configurable. This will allow any monster variety on a map without worrying about exceeding SRAM limits, and plenty of SRAM for new music and SFX (since version 0.7.4)
    • SPU: Available voices increased from 24 to 64. This should allow PsyDoom to handle even extremely busy scenes and music without dropping any sounds (since version 0.7.4)
  • Available main memory (RAM) is increased from 1 MB to 64 MB by default. This can also be increased via config settings, if needed
  • Available video memory (VRAM) is increased from 1 MB to a maximum of 128 MB which is the default (since version 0.8.0)
  • Added support for any power of two texture size for walls and flats from 2x2 up to a maximum of 1024x512
  • Classic renderer: now allowing up to 8192 sprites (instead of 64) to be drawn per subsector
  • Removed all limits on:
    • Maximum map lump size (was 64 KB)
    • 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)
    • Maximum number of scrollable lines (was 32)
    • Maximum number of moving floors (was 30)
    • Maximum number of moving ceilings (was 30)
    • Maximum number of specials that can be triggered in one frame by crossing lines (was 8)
    • Maximum number of switches that can be activated at once (was 16)
  • Reimplemented the following missing enemies/things from PC Doom II:

External links[edit]

Source code genealogy
Based on Name Base for
Sony PlayStation PsyDoom Active