Return to Part 1: Dumpster Diving
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 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
Return to Part 1: Dumpster Diving
The official Red Hat Linux 7.3 documentation for setting up sound cards can be read here:
An article on early Linux sound card support by Jeff Tranter for Linux Journal can be read here:
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 21 March 2023 at 7:10 am UTC
"Early" Linux mixed with the hardware mess that was the late 90s / early 2000s.
Quoting: GuestGreat 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.
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.
See more from me