PsiDoom

From DoomWiki.org

PsiDoom
Codebase Linux Doom 1.10
Developer(s) Kalle Sandström (psilon)
Initial release 0.5 (January 1998, 26 years ago)
Latest release 0.8 (1998-02-11, 26 years ago)
Development status Discontinued
Written in C
Target Platform Amiga (68k)
License Doom Source License

PsiDoom was a early source port of Doom for the Amiga, based on the official Linux Doom 1.10 code. It was created by Kalle Sandström, better known as psilon.

History[edit]

The port got its first release with version 0.5, released somewhere in early January 1998. Like AmigaDoom which was in development just a few weeks earlier, it based itself around the Doom source code that was released in December 1997.

The major bugs that had to be solved before the program could run on the Amiga were two endianness bugs in WAD parsing code. These were somewhat challenging to fix because neither by itself would make the game not crash the computer at startup, thus both had to be addressed at the same time. It was found that both had the same general pattern (i.e. using raw data from a file unprocessed), so in time, both bugs were found and fixed. This first version brought functional graphics and keyboard, making PsiDoom playable.

A significant driver into making PsiDoom possible was the chunky-to-planar (C2P) routine by Mikael Kalms. The 68030 and 68060 versions rely on publicly available routines provided by Kalms.

Version 0.6, which was released on January 8, 1998, saw the introduction of AHI sound support to enable richer sound effects through multiple channels, to a maximum of eight. Significant speed gains to the renderer followed with 0.7, released on January 14, 1998.

Legacy[edit]

One final release followed with version 0.8, released over a month later on February 11, 1998. It brought in various significant optimizations to the rendering, making this version now also playable on high-end 060 processors. It also added a fixed low detail graphics mode, which was broken in previous releases.

PsiDoom didn't go much further into subsequent optimizations and fell behind when DoomAttack started incorporating versions for both 68030 and 68060, so it was a good time to leave this stuff for people who cared about the game beyond wanting to play it right now in the absence of a good port, as was the case around the turn of 1997/1998.

PsiDoom's feature set was similar to AmigaDoom, but had several restrictions - such as being only able to run on AGA machines and having no support for Retargetable Graphics (RTG) so that standardized video cards could not be used, limiting the usability of the port. It was, however, reported to be slightly faster than AmigaDoom at the time. The port pioneered a major optimization, which was the inlining of 16.16 fixed-point multiplications using efficient 68030 instructions in an "asm" statement, which SAS/C couldn't easily do, so the other ports would call a CPU-appropriate routine indirectly which was quite slow. The fixed-point maths code came from ADoom.

The author mentions in the readme to have lost a lot of interest to continue PsiDoom due to having to rely on a PC keyboard connected to the Amiga through an adapter that forfeited multiple key presses. Because of this, as well as the previously mentioned limitations, the port was discontinued at version 0.8.

PsiDoom was at the time the only port compiled with GCC (via GeekGadgets, nee Amiga Development Environment), which produced generally better code than the final release of SAS/C which was used by most of the early source ports for the Amiga. This was the main reason why it was slightly faster on the 68030 than its peers, before the optimization game started; and why the final '060 release was consistently a frame or two faster than SAS/C versions for the '060 (GCC would pick non-emulated instructions and pair them in the primary/secondary pipelines, where SAS/C only did instruction picking).

Features[edit]

  • 320x200 resolution (same as Linux Doom)
  • Works on AGA only
  • AHI sound effect support for eight channels of 16 bit sound effects (but not music)
  • Support for Doom and Doom II

Requirements[edit]

PsiDoom requires a Amiga with AmigaOS 3.0+ and a 68030 (030) processor with 8MB of RAM, though is reported to work on a 68020 (020) processor, albeit slowly.

Trivia[edit]

  • While PsiDoom's source code may exist somewhere in psilon's ancient backups, it should be considered lost at this time.
  • psilon, Kalle's nickname, is a direct reference to one of the major civilizations seen in the game Master of Orion.

External links[edit]

Source code genealogy
Based on Name Base for
Linux Doom 1.10 PsiDoom None