Linux Heretic

Linux Heretic is an source port made by Andre Werthmann, with several code fixes by various other authors, including Lee Killough. Due to it being an early and direct port of the Heretic source code, it is subject to the Raven source code licensing issue.

The port has support for multiple CPU architectures, being able to run on x86, Alpha, SPARC, 68k and even ARM for the Corel Netwinder client. It also supports multiple graphic targets under Linux, namely fast X11, X11, GGI, SVGA and SDL. In terms of operating systems, Linux Heretic would also work on FreeBSD, Solaris and SCO-Unix.

As Linux Heretic
Multiple people contributed to Linux Heretic during its development. In particular Marcus Sundberg provided a GGI driver and keyboard fixes along with support for resolutions higher than 320x200, whilst Lee Killough of MBF fame provided fixes in the p_spec.c file of the Heretic source code. Other improvements include patching version 0.9.0 to gain support for Linux under m68k and adding SVGAlib code for version 0.91 by Jes Sorensen and Nic Bellamy, respectively. A full list can be found in the AUTHORS section.

Linux Heretic started life on January 18 1999 with version 0.9.0. Versions 0.9.1 to 0.93 saw the introduction of SVGA and GGI support alongside SFX sound effect support. At this point. Linux Heretic could run under Linux/x86 and m68k and also under FreeBSD. Version 0.95 had significantly improved network support over UDP and IPX networks and GGI code enhancements with better scaling and fullscreen support through double buffering. Version 1.0 was preceded by two beta's which not only brought in Alpha and ARM support for the Corel Netwinder, but also finally brought music support for OPL3, Midi-wavetable and AWE32-Midi. Lastly, alongside linear and bilinear filtering for X11/GGI/VGA (SVGA), it added Fast X11 as another graphics target.

Oddly, there was a seperate release of Linux Heretic with just the GGI code intact, called ggiHeretic. This was based on version 0.92.

The last version of Linux Heretic as a seperate codebase was 1.03, released on December 27 1999. It brought in an SDL version as graphics target and support for multiple game resolutions. There is a mention of a version 1.04 by Werthmann himself in the readme file, but there is no changelog nor code for it to be found in the released source archives, so this is likely a spelling error.

As part of GLHeretic
Werthmann then moved on to port GLHeretic to Linux from Michaël Ryssen (Kokak) by using the Linux Heretic codebase as a starting foundation, thereby merging both codebases together under a single port. Werthmann continued to release seperate builds of Linux Heretic, now using GLHeretic as his base as a result of this merge. Under this merged codebase however, focus was most spent on GLHeretic, with Linux Heretic mostly recieving bug fixes to retain compatibility with platforms such as Alpha, Solaris and SPARC, although version 1.1 brought in high resolution support for VGA and in-game menu improvements. The last version of Linux Heretic under this banner was version 1.1-1 released on May 2 2000. It saw, however, one final update to its X11 code with version 1.2 on December 9 2003, but Andre released no seperate build for this. As such it only exists as GLHeretic 1.2.

After this release, Werthmann left GLHeretic (And thus Linux Heretic) abandoned.

Authors
Note: Taken directly from GLHeretic 1.2 source files. ID-Software/RAVEN-Software: original Dos-Heretic code Michaël Ryssen: the win32 (original) GLHeretic version

Andre Werthmann: Port of Heretic to Linux; works with BSD's too. Port of GLHeretic to Linux Rewrite of the Doom soundserver to work with Heretic, that means Sfx-sound works now ! Made netgames(IPX/UDP) working. Multiple game resolutions Some feautures..

Christian Groessler: original Doom-x11 and ipx code; modified by me to work with Heretic.

Jes Sorensen: has patched version 0.9.0, so Heretic works with Linux/m68k correct now !

Nic Bellamy: added SVGAlib code for 0.9.1.

Marcus Sundberg: GGI code. Keyboard fixes. Removed busywaiting loop. Support for resolutions higher than 320x200.

Lee Killough: fixes in p_spec.c

Maciej W. Rozycki: enum-fixes; udp-fixes; namespace fixes; geometry fixes; debug-fixes

Robert Bowles: made an Alpha-cpu version true (cleaned up the sourcecode              to be 64bit-clean) !

WHS: gsi-code

Vedran Rodic: fixes in mn_menu.c

Rafael Reilova: lxdoom-musserver and patches for Heretic-soundclient to                work with lxmusserver

Josh Parsons: optimizations, plattforms compatibility fixes

Lovasi Peter: bug fixes, sound improvements

Douglas Paul: patches for Heretic to make it work with Netwinders (ARM)

???: x11_fast_version (sorry, but I couldn't find the name of the author)