You can sign up to get a daily email of our articles, see the Mailing List page.

Building a Retro Linux Gaming Computer - Part 5: Quaking in My Boots

By - | Views: 20,840

Continued from Part 4: Installing Red Hat Linux 7.3

Dave Taylor can be credited with kickstarting the commercial Linux gaming industry with his ports of the games Doom and Abuse. Before leaving id Software he also graced us with a Linux port of Quake, which while unofficial and unsupported was later taken by Macmillan Digital Publishing to form the basis of their retail Quake: The Offering package. This included not only Quake but also its two mission packs, Scourge of Armagon and Dissolution of Eternity.  

To install Quake: The Offering on Red Hat Linux 7.3 you need SVGAlib, which I got using the svgalib-1.9.25-1.rh7.rf.i386.rpm package from freshrpms. The setup will still complain about not having libglide2x.so and will skip installing the quake-1.09-glibc-5.i386.rpm package, but you can install it off the disc using rpm and the “–nodeps” flag to skip the dependency check. Then download and copy libglide2x.so to /usr/lib manually to avoid conflicts with the Glide3 package.

In terms of software rendering you can either launch the squake binary to use SVGAlib from the command line or you can launch the quake.x11 binary to run the game in an X11 window. Full screen is only supported using SVGAlib, and while it can be ran with hardware acceleration through the use of the glquake binary, this will only work on 3dfx Voodoo cards. Everyone else is stuck using the glquake.glx binary within an X11 window.

This is a temperamental port. As well as not allowing for full screen glquake.glx is also a creature of the XFree86 server. This means it will use the system gamma and the mouse cursor will be drawn on top of the window. This being Linux, I was able to create a BASH shell script that blanks the pointer, increases the brightness, and loads the correct libGL.so.1.2 library file. I also included a menu for selecting either Quake or one of its two mission packs as an added bonus.

Mouselook is a separate issue. The most reliable way to make this work I found was dropping down the game console and entering both “+mlook” and “_windowed_mouse 1” each time I launched the program. Playing with SVGAlib must be done with root privileges, but the X11 binaries can be ran from a regular user account if the ownership of the glquake.glx binary is changed to the user and write permission is given for the rogue, hipnotic, and id1 directories.

 

One ugly but effective hack you can do is to change the resolution of the screen so only the glquake.glx window is showing. XFree86 allows you to cycle through valid modes by holding down Ctrl and Alt and pressing the keypad + and - keys. If one of those modes is 640x480 you can set the game to that resolution, have it grab the mouse, and then cycle until the focus is on the game window. Some of the window border may show, but this can be mitigated with theming.

I had issues with CD audio not looping properly when using the Creative CD-ROM drive, but upon switching to the LG DVD drive it has proven to be reliable. Only the original Quake soundtrack is included on the Linux CD without the music for the mission packs. I also noticed that the game would on occasion either cut off or drop sound effects. I saw some graphical glitches with water and the edges of certain polygons when using the OpenGL renderer as well.

There is something charming about logging into a virtual terminal and launching Quake from the command line, and my Pentium III 500 Katmai is more than capable of delivering a smooth playable experience in software at 320x200. In fact, Linux actually outperforms Windows 98 with an average of 96.6 FPS against 88.0 FPS across all three timedemos. Windows does take the lead at 640x480, with Linux getting 30.4 fps to 38.5 fps on Windows, but neither ran fluid.

With OpenGL things get more complicated. Windows leads full screen at 640x480 with 16 bit colour averaging 81.5 FPS, but when ran windowed this drops to only 62.4 FPS. Linux averaged 67.1 FPS when using the glquake.glx binary, but given the difficulties in comparing the numbers, I think it would be best to call it a draw. A silly contest perhaps, as neither the original Windows or Linux binaries have aged that well.

It would be nice to come back to Quake at some point if I ever get my hands on a 3dfx graphics card just to see SVGAlib running in its full glory. That said, now that I can run vkQuake and average 635 FPS, it does make it easier to appreciate the clunkiness of the original Linux port, or even the chunkiness of the software renderer. This would not be the end of the road for id Software and Linux of course, or even for Macmillan Digital Publishing.

Carrying on in Part 6: A Lone Marine Battled

Article taken from GamingOnLinux.com.
15 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
15 comments
Page: 1/2»
  Go to:

Hamish 29 Mar
Anybody wanting to try my shell script can download the following:
http://icculus.org/~hamish/dianoga/quake-glx-launch.sh

Those needing the libglide2x.so library can use this link:
http://icculus.org/~hamish/dianoga/libglide2x.so

And my raw Quake timedemo data can be found here:
http://icculus.org/~hamish/dianoga/quake-timedemos.txt

If you are using Sawfish as your window manager with GNOME I found that choosing either the "simple" or "mono" themes from the Appearance settings and changing the colour of active frames to be black worked well for faking full screen.


Last edited by Hamish on 29 March 2021 at 6:36 pm UTC
mirv 29 Mar
View PC info
  • Supporter Plus
I always found 30fps acceptable for pretty much anything - so long as it's a steady 30fps, without wavering much. Of course back in that era of gaming I was using a ball mouse, and they weren't quite as responsive as today's optical tech. Strangely enough I've also never played Quake.

Just out of curiosity, does red hat from then come with tux racer? Not sure if that was mentioned in a previous post, so forgive me if it was.

And this kind of article is one reason I like working on *nix systems - I do find the scripting of commands to get something running so much nicer to handle compared to windows. Switching in & out of fullscreen though, I seem to recall that not being the most stable operation in the world, before compositors and borderless fullscreen windows. The GNU/Linux graphics stack has come a very long way (they have on every OS I suppose).
slaapliedje 29 Mar
View PC info
  • Supporter Plus
Quoting: mirvI always found 30fps acceptable for pretty much anything - so long as it's a steady 30fps, without wavering much. Of course back in that era of gaming I was using a ball mouse, and they weren't quite as responsive as today's optical tech. Strangely enough I've also never played Quake.

Just out of curiosity, does red hat from then come with tux racer? Not sure if that was mentioned in a previous post, so forgive me if it was.

And this kind of article is one reason I like working on *nix systems - I do find the scripting of commands to get something running so much nicer to handle compared to windows. Switching in & out of fullscreen though, I seem to recall that not being the most stable operation in the world, before compositors and borderless fullscreen windows. The GNU/Linux graphics stack has come a very long way (they have on every OS I suppose).
Funny thing I always find is that most games on non-dos platforms usually ran at 50/60 frames per second (depending on PAL/NTSC). It wasn't until 3d stuff came along, and better 2d cards that most things got above 15. Though the same could be said going backward and without the 3d or chunky pixels, the 16bit systems ended up doing 10-15 on fps.

Also, Quake was an amazing game back then! Still pretty fun now.
Hamish 30 Mar
Quoting: mirvJust out of curiosity, does red hat from then come with tux racer? Not sure if that was mentioned in a previous post, so forgive me if it was.
Yep, it is installed along with the regular GNOME games.

I would not put too much stock in the FPS numbers reported by Quake but it does serve as a rough comparison. You almost never get exactly the same result twice from a timedemo just a ballpark.
damarrin 30 Mar
View PC info
  • Supporter Plus
Hamish, I have a Voodoo card I can send your way if you promise to send it back sometime this century. It’s been sat in my attic for many years and I’ll be happy to have a small hand in your enjoyable series of articles, if it still works that is. LMK if you’re interested at all.
fabertawe 30 Mar
I was using RISCOS back then and remember seeing Quake for the first time running on a RISCPC on the x86 addon card under Windows 98. Blew me away and still one of my all time favourite games. It came out on RISCOS itself sometime later and I spent many hours enjoying that.

I'm really glad I lived through the evolution of home computing, there were so many exciting times as it all progressed.

Great series of articles Hamish.

Edit: That should have been Windows 95. I'm shrouded in the mists of time!


Last edited by fabertawe on 31 March 2021 at 10:56 am UTC
x_wing 30 Mar
Quoting: slaapliedjeFunny thing I always find is that most games on non-dos platforms usually ran at 50/60 frames per second (depending on PAL/NTSC).

TBF, when running on NTSC or PAL you have to process a half of the resolution for each frame.
Hamish 30 Mar
Quoting: damarrinHamish, I have a Voodoo card I can send your way if you promise to send it back sometime this century.
At this point I am hesitant to take responsibility for anyone's hardware but my own but I appreciate the offer. I would be too nervous about it getting damaged, no matter how careful I am.

For the past month I have been trying to get one article out every Monday, but that is probably going to become more sporadic from here as I will actually need time to play the games in order to write about them. As the temperature goes up so does my workload, but I will keep writing as I can.
View PC info
  • Supporter Plus
Quoting: x_wing
Quoting: slaapliedjeFunny thing I always find is that most games on non-dos platforms usually ran at 50/60 frames per second (depending on PAL/NTSC).

TBF, when running on NTSC or PAL you have to process a half of the resolution for each frame.
Sure, once you got to VGA graphics, but EGA was still around the same. Early DOS gaming's performance was terrible...
Cybolic 1 Apr
I had completely forgotten that "The Offering" didn't include the expansion soundtracks!

Since I originally played through Quake from that very release, I'm now wondering if I didn't get the full experience and need to go back and play the expansions with their real soundtrack. I do remember thinking that some of the tracks were odd choices for some of the expansion levels (at the time, I didn't know they had their own soundtracks).
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

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.