Linux Heretic


Linux Heretic
Codebase Heretic
Developer(s) Andre Werthmann (Primary port), various other authors, including Lee Killough
Initial release 0.9.0 (1999-01-18, 25 years ago)
Latest release 1.1-1 (2000-05-02, 23 years ago)
Development status Discontinued
Written in C
Target Platform Linux
License see Raven source code licensing issue

Linux Heretic is a 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[edit]

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 separate 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 separate 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[edit]

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 separate builds of Linux Heretic, now using GLHeretic as his base as a result of this merge and simply titled Heretic. Under this merged codebase however, focus was most spent on GLHeretic, with Linux Heretic mostly receiving 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 separate build for this. As such it only exists as GLHeretic 1.2.

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


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;

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)

External links[edit]

Source code genealogy
Based on
Linux Heretic Base for
GLHeretic (Linux version)