Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Redneckerz

The story of Linux Heretic (And uh, ggiDoom)

Recommended Posts

Note: This is the second in a long line of entries i will be making over the following months highlighting new, obscure or forgotten parts of our collective Doom history.

 

See the H.A/R.M Project thread for more detailed info on what i am doing.

 

Previous entries:

WinMBF goes 64-bit

 

Linux Heretic: 

 

Linux Heretic wiki entry

 

Our Christmas story of today brings us to the kingdom of Heretic. Back in 1999, Raven Software released the source code to Hexen & Heretic and, unfortunately, caused the Raven source code license issue that would last for several years. The source code was for DOS, unlike Doom which as released source started off on Linux.

 

In those first few days, a first port was started for Heretic to port its codebase over to Linux. Aptly named Linux Heretic, it was the start of Heretic on Linux. Later on, its author, Andre Werthmann, took up the task of porting GLHeretic, by Kokak.

 

In doing so, Werthmann effectively took his work regarding Linux Heretic and merged it with GLHeretic's codebase, but regular GL-less builds still released for several months. The pre-dominant focus was however bringing GLHeretic to Linux, to which most of the improvements went. In 2003 one final release was made after several years of inactivity and after that, Linux Heretic, along with GLHeretic went abandoned.

 

Linux Heretic had a few strong advantages. It ran on several CPU architectures, from x86 to 68k and even the Corel Netwinder, and it also played in other OSes, such as FreeBSD and Solaris. It also supported several ways of graphics rendering, through X, SVGALib, GGI, SDL and later on Fast X. This versatility allowed Linux Heretic to run on a wide range of configurations in the Linux world.

 

Uncluttering the history tree of this rather significant port was nothing but a small nightmare to say the least. At times, dates would conflict, or references were made that weren't found in any archive whatsoever of significance. Fortunately this first Christmas day was one of relaxation and preparation for the NYE party later on, so i had some time to finally deliver the oral history of this port.

 

ggiDoom:

 

ggiDoom wiki entry

 

A little side tale by the way of ggiDoom that has a relationship with Linux Heretic above. ggiDoom was a port made for the General Graphics Interface. This was a display server similar to X that had the ambitious goal of wanting to run on every architecture and platform out there. As a result, ggiDoom was made that supported rendering through this interface. With the rise of X as a display server during the 90's, having been a solid foundation prior in other OSes, GGI was not to last, and as such, it went into the halls of the obscure.

 

The GGI code was provided in a driver made by Marcus Sundberg who, as a matter of coincidence, also provided GGI code for the Linux Heretic port.

 

MERRY CHRISTMAS EVERYONE!

 

EDIT: Clarified the X bit thanks to @andrewj.

Edited by Redneckerz : Adding in the Christmas.

Share this post


Link to post
8 hours ago, Redneckerz said:

With the rise of X as a display server, GGI was not to last, and as such, it went into the halls of the obscure.

That is not really correct.  X was already well established before GGI came along.

 

GGI was attempting to be a better display system on Linux.  A main component was KGI, K standing for Kernel and was the driver stuff inside the Linux kernel.  That was Marcus Sundberg's main project.  The goal for KGI was to replace the ad-hoc (userland) stuff for setting up and using graphic video modes, like svgalib and X windows, since they were not in the kernel they were prone to problems, e.g. not resetting the hardware properly when switch virtual consoles.  It also handed text-mode console stuff and input events.  KGI never really made it, but some of the ideas eventually did, in the form of KMS, DRM and evdev systems in today's kernels.

Share this post


Link to post
7 hours ago, andrewj said:

That is not really correct.  X was already well established before GGI came along.

 

GGI was attempting to be a better display system on Linux.  A main component was KGI, K standing for Kernel and was the driver stuff inside the Linux kernel.  That was Marcus Sundberg's main project.  The goal for KGI was to replace the ad-hoc (userland) stuff for setting up and using graphic video modes, like svgalib and X windows, since they were not in the kernel they were prone to problems, e.g. not resetting the hardware properly when switch virtual consoles.  It also handed text-mode console stuff and input events.  KGI never really made it, but some of the ideas eventually did, in the form of KMS, DRM and evdev systems in today's kernels.

During GGI's tenure, it (X) definitely skyrocketed, especially as Linux as a graphical OS came to prominence. Atleast this is what i attempted to establish here with ''The rise of X''.

 

But you are definitely right - X prior to Linux was already a rather solid foundation by itself. I should have made this more clear when writing, as this was made more on a whim.

Share this post


Link to post

As I recall, GGI was a few years before the "Xorg" X server came into existence.  Before that the internal code of the current X server (Xfree86 IIRC) was quite horrible, nobody wanted to work on it, but then Xorg cleaned a lot of things up, introduced reliable hardware acceleration, and later on stuff like the Xrender extension and multi-monitor support.

 

So yeah, you are right about it being a time when X under Linux developed into something better and most of the problems people had went away, making things like GGI less attractive.

 

What happened with KGI / GGI was a real shame, it was a better approach and had good ideas but the code wasn't quite ready, and kernel politics was hostile to the large changes required.  The good ideas were eventually brought into Linux in other ways, like KMS for setting video modes and evdev for event processing.

 

Cheers for the updated article.

Share this post


Link to post
11 minutes ago, andrewj said:

As I recall, GGI was a few years before the "Xorg" X server came into existence.  Before that the internal code of the current X server (Xfree86 IIRC) was quite horrible, nobody wanted to work on it, but then Xorg cleaned a lot of things up, introduced reliable hardware acceleration, and later on stuff like the Xrender extension and multi-monitor support.

 

So yeah, you are right about it being a time when X under Linux developed into something better and most of the problems people had went away, making things like GGI less attractive.

 

What happened with KGI / GGI was a real shame, it was a better approach and had good ideas but the code wasn't quite ready, and kernel politics was hostile to the large changes required.  The good ideas were eventually brought into Linux in other ways, like KMS for setting video modes and evdev for event processing.

 

Cheers for the updated article.

The xFree86/Xorg bit is something ive missed out on, but yes - GGI was more of an alternative during the former days than the latter.

 

Having researched ggiDoom for the most part i tend to agree. The ggi concept of ''run everywhere'' is something i wish would be a thing. It is readily apparent even in ggiDoom considering it does run on Sharp Zaurus PDA's.

 

Still, ggiDoom and to a lesser degree ggiHeretic were, in retrospect, nice historical experiments during these times.

Share this post


Link to post
52 minutes ago, Redneckerz said:

Having researched ggiDoom for the most part i tend to agree. The ggi concept of ''run everywhere'' is something i wish would be a thing.

Yeah.

 

SDL mostly gets there, it has been ported to many different systems, allowing Chocolate-Doom (and everything else using it) to run on all of those systems.

 

Share this post


Link to post
1 hour ago, andrewj said:

Yeah.

 

SDL mostly gets there, it has been ported to many different systems, allowing Chocolate-Doom (and everything else using it) to run on all of those systems.

 

Funny enough Linux Heretic did get a SDL version, although it was a rather late development and it was more used for display purposes than being a proper codebase.

 

But yeah, SDL (and certainly SDL2) do seem to have put in practice what GGI promised, all the way back for the most part.

Share this post


Link to post
38 minutes ago, vadrig4r said:

Love these historical posts, thank you for documenting this gamelore.

Thank you. :) More is coming really soon :)

 

On the list: a long lost port from the early ZDoom era...

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×