Confused on Steam Play and Proton? Be sure to check out our guide.

Building a Retro Linux Gaming Computer - Part 16: We Are All Doomed

By - | Views: 10,601

Continued from Part 15: Square Cubed

The most appealing aspect of my QDI Advance 5/133 motherboard is its inclusion of AGP, PCI, and ISA expansion slots. This is what allows me to pair a GIGABYTE ATI Rage 128 Pro Ultra AGP video card sold in 2001 with a Creative Labs Sound Blaster 16 WavEffects ISA sound card made in 1997. By having both dedicated MIDI and 3D acceleration hardware I can dip my toes into two different eras of gaming, straddling the divide between Doom and Quake III Arena.

That said I have never been able to get Dave Taylor's original Linux port of Doom to run, as it was built with the deprecated a.out binary format rather than ELF. It would also lack any kind of music playback due to Linux not being supported by the proprietary DMX library used by Doom, although it was for this reason that the Linux source code was chosen for release in late 1997 by id Software to avoid infringing copyright with the DMX code bundled on MS-DOS.

Because of this, Linux users did not have long to wait for a better alternative to arrive, which by the turn of century proved to be LxDoom. LxDoom is derived from the influential Boom source port by TeamTNT, but it still functions very similar to the original Doom port for Linux. Installation is trivial using the lxdoom-1.4.4-0.i386.rpm and lxmusserv-0.94.2-0.i386.rpm packages available for download on SourceForge.

From there you can launch either the lsdoom or lxdoom binaries located in the /usr/games directory, the first functioning through SVGALib on a root console and the second displaying in an X11 window. The music was not working for me at first, but I resolved this by running the Red Hat sndconfig utility which created the proper MIDI sequencer device. This allowed the playmidi and KMid players to both have working playback as well.

Raven Software also released the source code to their Doom clone Heretic in 1999 with a source port to Linux coming soon after. Red Hat themselves archive RPM packages for Linux Heretic on their website, with the linux-heretic-1.03-2.i386.rpm, linux-heretic-vga-1.03-2.i386.rpm, and linux-heretic-fx11-1.03-2.i386.rpm packages all needing to be installed to have both vgaheretic and xaheretic binaries provided for SVGALib and X11 same as with LxDoom.

  

As for the actual MIDI tracks produced, well, they have personality at least. After some reading I discovered that I am using a later budget variant of the Sound Blaster 16 which uses CQM Synthesis to emulate the functionality once provided by a dedicated Yamaha OPL-3 chip. Windows uses the Creative WaveSynth software synthesizer to improve MIDI playback, but on Linux I am left with a rough if workable FM synthesis outside of using something like TiMidity.

Now curious, I tried swapping the Sound Blaster 16 for a MediaVision Pro AudioSpectrum 16 SCSI with an actual YMF262-M OPL-3 chip installed. This required a little tinkering to find the right I/O, IRQ, and DMA settings as it is not an ISA PnP card. While with Windows 98 I could hear a subtle difference, on Linux it sounded much the same. Even more unusual is the fact that playing an identical MIDI file from playmidi, KMid, and lxmusserv does produce different results.

Regardless, launching either LxDoom or Linux Heretic with SVGALib from the command line is still an authentic experience you would be hard pressed to find outside of playing the games on MS-DOS. Because LxDoom is limit removing with Boom support you also have access to a great deal of custom level sets and total conversions alongside Doom, Doom II, and Final Doom however, including John Romero's SIGIL when loaded with the compatibility WAD file.

Sadly neither Linux Hexen or the later forked HHexen source ports support MIDI music playback through /dev/sequencer like LxDoom and Linux Heretic do, making HeXen lack for me the main appeal of playing the game on vintage hardware as opposed to just using a modern source port. Strife meanwhile did not see a reverse engineered Linux version emerge until almost a decade after these initial Doom engine source ports were first released.

All of the community ports have come a long way since then of course. LxDoom would later form the basis of PrBoom, which was the first Doom source port I spent a great deal of time with as it was packaged alongside Freedoom on Fedora. After covering six first person shooters in a row though, and another four before that, the time has come to broaden our horizons again, and welcome you all into the llama lair.

Carrying on in Part 17: The Llama Master

Article taken from GamingOnLinux.com.
16 Likes
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG and Humble Store. See more here.
About the author -
author picture
Hamish Paul Wilson is a free software developer, game critic, amateur writer, and farm labourer living in rural Alberta, Canada. He is an advocate of both DRM free Linux gaming and the free software movement alongside his other causes, and more information on him can be found at his icculus.org homepage where he lists everything he is currently involved in: http://icculus.org/~hamish
See more from me
8 comments

Hamish 14 Mar
All of the RPM packages used can be downloaded here:
https://icculus.org/~hamish/dianoga/LxDoom-LinuxHeretic-RPM-Packages.tar

The official Red Hat Linux 7.3 documentation for setting up sound cards can be read here:
http://archive.download.redhat.com/pub/redhat/linux/7.3/en/doc/RH-DOCS/rhl-gsg-en-7.3/s1-fun-sndconfig.html

And here is how I configured the MediaVision Pro AudioSpectrum 16 SCSI on Linux:
Select Pro Audio Spectrum/Studio 16, Logitech SoundMan 16 in Red Hat sndconfig with the following settings:
I/0: 0x388      IRQ: 7      DMA: 3

Once configured also select AdLib in sndconfig for OPL-3 playback.



Last edited by Hamish on 14 March 2022 at 9:00 pm UTC
TheSHEEEP 14 Mar
View PC info
  • Supporter Plus
The more I read about it, the more the early Linux ports seem like Wild West style to me.
"Early" Linux mixed with the hardware mess that was the late 90s / early 2000s.
mirv 14 Mar
View PC info
  • Supporter Plus
Kind of interesting how audio back then seems just as painful as audio now, as least for me. I joke of course...partially. I never had speakers back in the day there were good enough to warrant something special in the sound department. Kind of the one area I missed out on I suppose, but always had enough trouble getting the right kernel drivers & codecs configured for audio.

Still, back then there were leaps in tech: a new card, new features, immediately appreciable differences. It was definitely fun times.

Great read in the series as always, and looking forward to more (as always)!
Hamish 14 Mar
Quoting: mirvGreat read in the series as always, and looking forward to more (as always)!
I should say that things are likely going to slow down a bit from here as spring is on the horizon, my livestock are going to start calving and lambing by the end of the month, and I have set myself up to play something other than a familiar action game I can burn through over a couple days.

More will come, but not every Monday like it has been for the last seven weeks. Thanks for the kind words.
Lightkey 15 Mar
Quoting: TheSHEEEPThe more I read about it, the more the early Linux ports seem like Wild West style to me.
"Early" Linux mixed with the hardware mess that was the late 90s / early 2000s.
Oh, absolutely. But it was also a simpler time in graphics land with Glide and OpenGL 1.x, meaning that Linux was actually competitive with Mesa back then (and even John Carmack did partake in it with Utah GLX). It took a long long time after that for Mesa to be a serious alternative to Nvidia drivers again.
Hamish 15 Mar
As an addendum, while I was able to get FM synthesis working just fine on the MediaVision Pro AudioSpectrum 16 SCSI which was what I needed for the article, digital audio playback had mixed results. Reading up on the issue it appears that the main problem is the lack of a -5V rail on my ATX power supply as opposed to an AT, something that can be mitigated with something like the Voltage Blaster:
https://www.philscomputerlab.com/voltage-blaster--5v.html

I also had the persistent popping sound consistent with having an incongruous clock chip on the motherboard, which could be addressed by using the sound card's internal clock instead. Considering the card was left in a barn loft for close to twenty years it is remarkable how well preserved it is other than a bit of oxidation on or near the mounting bracket. I have gone back to using the SoundBlaster 16 as my sound card in Dianoga but the PAS16 could be a good fit for an older AT computer.
mirv 15 Mar
View PC info
  • Supporter Plus
Quoting: HamishConsidering the card was left in a barn loft for close to twenty years it is remarkable how well preserved it is other than a bit of oxidation on or near the mounting bracket.

Just snipping one bit out for quoting, and to mention: that is awesome.
Hamish 1 May
Just as an update on where things stand with the upcoming article, I do have the next game installed and have been playing it on and off since March, but it has proven to be a difficult game to master when juggling other commitments. Now that I am done lambing and calving I hope to be able to put more focus on it, but the arrival of spring in general increases my workload by quite a lot. Progress is being made though.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: Liberapay or PayPal.

This ensures all of our main content remains totally free for everyone with no article paywalls. We also don't have tons of adverts, there's also no tracking and we respect your privacy. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.