Return to Part 1: Dumpster Diving
Continued from Part 26: Coming to You Live
I have mentioned before how I was unable to get Dave Taylor's original port of Doom to work as it was built as an outdated a.out binary rather than ELF. Since then, I stumbled on an article by Jason Heiss that describes how to load the binfmt_aout kernel module to attain a.out binary support, as well as installing the ld.so-1.9.5-13.i386.rpm and aout-libs-1.4-9.i386.rpm packages from earlier Red Hat Linux releases to provide the necessary libraries.
Sure enough, with those in place the primordial Linux port of Doom works, albeit from an XFree86 server configured to run at only 8 bit colour depth. The other expected limitations apply such as the lack of any music, but the strangest issue I had was with the sound effects. On first launch I was hearing Heretic noises, as Doom was using the sndserver binary from the Linux Heretic source port installed in /usr/local/bin rather than its own. Replacing the sndserver solved the issue.
Another spanner in the works is that the X11 version of Doom is in effect keyboard only. A launch parameter does exist to grab the mouse, but this is bugged; I did get my Perixx PERIMICE-209 WP working with SVGALib by modifying the ~/.doomrc file to have mousdev set to "/dev/psaux" and mousetype set to "PS2". Under X11 the game runs in a 320x200 window with no full screen option, but you can double or triple the pixels using the "-2" and "-3" parameters.
The shareware release of Doom is included inside the linux-doom-1.8.tar.gz archive I used to install the xdoom and sdoom binaries. Explicit support is offered for the registered Doom and Doom II, with Final Doom possible as a set of add-on WADs. Demo playback only works with the shareware, producing version errors everywhere else. A mixed bag to be sure, but even before the Doom source code was opened, hackers were making improvements to the Linux version.
A fan patch included in the udoom-1.1.tar.gz archive adds support for The Ultimate Doom and seems to fix the demos, while musserver.tgz even hacks in MIDI music through a separate musserver binary. I had to fake the /dev/sndstat device file, but it works. These changes would be mainlined after Bernd Kreimeier tidied up the Linux code for public release, but thanks to Dave Taylor's other studio Crack dot Com, I have another example of a.out insanity I can try as well.
Several iterations of the Linux binaries for Abuse are available, but I opted to install the abuse-1.10-5.i386.rpm package as distributed by Red Hat. This provides a few niceties such as custom launch scripts installed into the /usr/games directory, as well as the original Abuse shareware data with the alien ants storyline. The X11 version launches in a 320x200 window also at 8 bit colour depth, but you can stop the cursor leaving the window with the "-grab_pointer" launch parameter.
This is how Abuse was intended to be played, but you can toggle higher resolutions by using the "-size" parameter. This will disable the lighting engine, as well as exposing more of the level to the point of being considered a cheat by the developers. Due to this they also included a pixel doubling mode using the "-2" parameter that preserves the original viewing area and lighting at resolutions of 640x400 or above. I ran with 640x480 so I could hack full screen like I did with Quake.
A few effects will still only flash in the 320x200 area, and I did have some redrawing issues when loading saved games, but these always resolved themselves on the second attempt. The other problem I had was with the sound effects, which only worked when abuse.x11 was launched with root privileges. Speaking of needing root, abuse.svga which uses SVGALib starts fine but then stalls at the cursor; I even tried using an old Mouse Systems serial mouse with it but no dice.
If this sounds insecure, it is because it is. In fact, known privilege escalation exploits exist due to how the SVGALib version of Abuse executes its undrv and sndrv binaries. In some ways we should be grateful for such sloppiness, as it is how we got the SVGALib version of Quake. Dave Taylor only ported the game to X11, but thanks to the Quake source code being stolen from the Crack dot Com server, coder Greg Alexander was able to finish a port to SVGALib in just twenty four hours.
Alexander even had the chutzpah to submit the patches to John Carmack, who graciously accepted them without the threat of legal action. Crack dot Com would show the same community spirit by opening up the Abuse source code and releasing most of the Abuse shareware assets into the public domain. This allowed for the creation of enhanced source ports to Linux such as Abuse-SDL, as well as the fRaBs level set using the shareware assets. If only all games could be as lucky.
Carrying on in Part 28: Losing My Marbles
Return to Part 1: Dumpster Diving
https://aput.net/~jheiss/aout_redhat.shtml
The Linux Doom FAQ by Steve VanDevender is archived here:
https://hexadecimal.uoregon.edu/~stevev/Linux-DOOM-FAQ.html
A review of Doom by Michael K. Johnson for Linux Journal can be found here:
https://www.linuxjournal.com/article/1
The files for the original Linux Doom port are mirrored here:
https://www.ibiblio.org/pub/Linux/games/doom/!INDEX.html
My fake /dev/sndstat device can be seen here:
https://icculus.org/~hamish/dianoga/sndstat
The RPM package for Abuse can be downloaded from here:
https://archive.download.redhat.com/pub/contrib/libc6/i386/abuse-1.10-5.i386.rpm
An RPM package for the patched Linux Doom binaries can be downloaded here:
https://archive.download.redhat.com/pub/contrib/libc6/i386/doom-1.10-7.i386.rpm
A press release on Red Hat partnering with Crack dot Com be be read here:
https://www.redhat.com/ja/about/press-releases/press-crackdotcom
A detailed overview of Abuse versions can be seen in this VOGONS thread:
https://www.vogons.org/viewtopic.php?t=44100
The Linux Game Tome page for Abuse is archived here:
https://web.archive.org/web/20070227220513/http://happypenguin.org/show?Abuse
Security reports on the exploits found with the SVGALib version of Abuse can be read here:
https://www.exploit-db.com/exploits/19279
https://vulners.com/packetstorm/PACKETSTORM:15084
An article on the Quake source code leak from Wired can be read here:
https://www.wired.com/1997/01/hackers-hack-crack-steal-quake/
An interview with Dave Taylor on Linux gaming by Harley Jebens for Gamespot can be read here:
https://www.gamespot.com/articles/okay-dave-taylor-why-linux/1100-2467851/
An interview with Dave Taylor on Linux gaming by James Hills for GA-Source is mirrored here:
https://www.talisman.org/~erlkonig/misc/ddt.shtml
And my launch command for Abuse is as follows:
sudo /usr/games/abuse.x11 -2 -size 640 480 -grab_pointer
Last edited by Hamish on 23 March 2023 at 7:10 am UTC
Quoting: LightkeyBernd Kreimeier! Squee~ *girlynoises*Yeah, that scans, since his initial interest in the Doom source code was for a book deal that fell through:
A name I haven't heard in a long time. Sorry, I know this is getting off-topic, I only know him from his Loki Software days, where he was responsible for OpenAL and as a German myself, from his science-fiction short stories in the c’t magazine I was reading at the time I thought he wrote those just as a hobby but looking at Wikipedia, it seems it was his job early on, where he even wrote some novels that I should check out some time.
https://doomwiki.org/wiki/Bernd_Kreimeier
These articles are kind of just old Linux storytime at heart, so no worries about getting off topic.
Quoting: StoneColdSpiderThey are rage....... Brutal....... DOOOOOOOM!!!!!!!Nothing Brutal about Linux Doom, I can tell you that much. It can not even run SIGIL without a visplane overflow:
https://doomwiki.org/wiki/Visplane_overflow
I think you got this link wrong though:
Quoting: HamishA detailed overview of Abuse versions can be seen in this VOGONS thread:Maybe you meant to link to this one? https://www.vogons.org/viewtopic.php?t=44100
https://www.vogons.org/viewtopic.php?t=6363
Quoting: CybolicI think you got this link wrong though:Yep, that would be correct. This is probably one of the articles that I spent the most time doing research on, and I ended up having a massive text file full of links. I guess I must have copied the wrong VOGONS thread over. I never did get XFree86 to launch at 320x200 by the way, but I was able to expand the Abuse window in the end.
Quoting: HamishA detailed overview of Abuse versions can be seen in this VOGONS thread:Maybe you meant to link to this one? https://www.vogons.org/viewtopic.php?t=44100
https://www.vogons.org/viewtopic.php?t=6363
Quoting: CalinouI gave Abuse a try recently, but I couldn't stand the low framerate.I definitely intend to come back to Abuse in a later article, once I can get my hands on a CD-ROM. The original registered version direct from Crack dot Com would be best, but I could make do with the later Electronic Arts or Origin version as well thanks to the source code release.
Quoting: HamishYep, that would be correct. This is probably one of the articles that I spent the most time doing research on, and I ended up having a massive text file full of links. I guess I must have copied the wrong VOGONS thread over. I never did get XFree86 to launch at 320x200 by the way, but I was able to expand the Abuse window in the end.
Thank you for the article.
I waited for it, and I think it's my favorite article from your retro series. I like to read when users publish how to solve different issues with games for Linux.
It reminded me of this patch 640x480 for the old Linux version of ROTT from icculus.org.
Dave Taylor probably didn't spend too much time working on this version of Doom. I suspect that Doom for NeXTStep is similar to this one.
Inner worlds is another game that runs only using the root account.
It's such a shame https://happypenguin.altervista.org/ removed old comments because they are useful sometimes.
I don't know if you have plans to write the article about Mobility for Linux. However, their refreshed website is back online after a few months:
https://www.mobility-online.de/download-registrierung/download
I didn't expect it.
Quoting: LightkeyBernd Kreimeier! Squee~ *girlynoises*
A name I haven't heard in a long time. Sorry, I know this is getting off-topic, I only know him from his Loki Software days, where he was responsible for OpenAL and as a German myself, from his science-fiction short stories in the c’t magazine I was reading at the time.
I thought he wrote those just as a hobby but looking at Wikipedia, it seems it was his job early on, where he even wrote some novels that I should check out some time. Those are probably also the reason why there is only a German Wikipedia article for him.
Thanks.
I didn't know about it.
Quoting: HamishI definitely intend to come back to Abuse in a later article, once I can get my hands on a CD-ROM. The original registered version direct from Crack dot Com would be best.
It's much easier to find it than Inner worlds.
Last edited by gbudny on 2 March 2023 at 2:14 am UTC
Quoting: gbudnyI waited for it, and I think it's my favorite article from your retro series. I like to read when users publish how to solve different issues with games for Linux.I will admit, being able to say that I have played the original Linux Doom port with a serial mouse in 2023 is a proper nerd flex.
Quoting: gbudnyDave Taylor probably didn't spend too much time working on this version of Doom. I suspect that Doom for NeXTStep is similar to this one."I did this 'cause Linux gives me a woody. It doesn't generate revenue. Please don't call or write us with bug reports. They cost us money, and I get sorta ragged on for wasting my time on UNIX ports anyway." - Dave D. Taylor, README.linuxx
Quoting: gbudnyI don't know if you have plans to write the article about Mobility for Linux.That's the second old German shareware game with Linux binaries you pointed me to. I appreciate it.
Quoting: Lightkey..and then they just point to Holarse for the Linux version instead of hosting it themselves, those freeloaders!Looking back with the Internet Archive they used to use Tucows to offload the Linux hosting too:
https://archive.org/details/tucows_327831_MOBILITY
Both uploads of the demo are setup to launch at 1024x768 which is blocked in the shareware, meaning you have to edit the MOBILITY.INI file to even get the thing to launch...
Quoting: LightkeyQuoting: gbudnyI don't know if you have plans to write the article about Mobility for Linux. However, their refreshed website is back online after a few months:..and then they just point to Holarse for the Linux version instead of hosting it themselves, those freeloaders!
https://www.mobility-online.de/download-registrierung/download
I didn't expect it.
Seems like there was a lot added with later versions but not for the Linux version, sadly.
They didn't disappear with the registration keys, and more users could buy now this game for Linux.
I was able to run it even on Ubuntu 20.4, which is crazy.
See more from me