Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
We do often include affiliate links to earn us some pennies. See more here.

Playing Quake 4 on Linux in 2018

By -

A few months back I wrote an article outlining the various options Linux users now have for playing Doom 3, as well as stating which of the three contenders I felt to be the best option in 2017. Having already gone to the trouble of getting the original Doom 3 binary working on my modern Arch Linux system, it made me wonder just how much effort it would take to get the closed source Quake 4 port up and running again as well.

 

Getting it running

 

Quake 4 was ported to Linux by Timothée Besset in 2005, although the binaries themselves were later taken down along with the rest of the id Software FTP server by ZeniMax. The original Linux FAQ page is still online though, and mirrors hosting the Linux installer still exist, such as this one run by the fan website Quaddicted. Once downloaded this will give you a graphical installer which will install the game binary without any of the game assets. 

These will need to be taken from either the game discs of a retail Windows version as I did, or taken from an already installed Windows version of the game such as from Steam. Follow the steps in the Linux FAQ to the letter for best results. Please note that the GOG.com release of Quake 4 is unique in not supplying a valid CD key, something which is still required for the Linux port to launch. There are ways to get around this, but we only condone these methods for legitimate purchasers.

Like with Doom 3 I had to remove the libgcc_s.so.1 and libstdc++.so.6 libraries that the game came with in the install directory in order to get it to run. I also ran into the same sound issue I had with Doom 3, meaning I had to modify the Quake4Config.cfg file located in the hidden ~/.quake4/q4base directory in the same fashion as before. However, this time I ran into a whole host of other issues that made me have to modify the configuration file as well.

First off the language the game wanted to use would always default to Spanish, meaning I had to manually tell the game to use English instead. I also ran into a known issue on all platforms wherein the game would not properly recognize the available VRAM on modern graphics cards, and as such would force the game to use lower image quality settings. Quake 4 will also not render see-through surfaces unless anti-aliasing is enabled, although going beyond 8x caused the game not to load for me.

Appending the following to the end of the Quake4Config.cfg file resolved all of my issues:

seta image_downSize "0"
seta image_downSizeBump "0"
seta image_downSizeSpecular "0"
seta image_filter "GL_LINEAR_MIPMAP_LINEAR"
seta image_ignoreHighQuality "0"
seta image_roundDown "0"
seta image_useCompression "0"
seta image_useNormalCompression "0"
seta image_anisotropy "16"
seta image_lodbias "0"
seta r_renderer "best"
seta r_multiSamples "8"
seta sys_lang "english"
seta s_alsa_pcm "hw:0,0"
seta com_allowConsole "1"

Please note that this will also set the game to use 8x anti-aliasing and restore the drop down console to how it worked in all of the previous Quake games. Similar to the Linux port of Doom 3 the Linux version of Quake 4 also does not support Creative EAX ADVANCED HD audio technology. Unlike Doom 3 though Quake 4 does seem to also feature an alternate method for surround sound, and widescreen support was thankfully patched into the game soon after its release.

 

Playing the game

 

Over the years Quake 4 has gained something of a reputation as the black sheep of the Quake family, with many people complaining that the game's vehicle sections, squad mechanics, and general aesthetic made it feel too close to contemporary military shooters of the time. In the game's heart of hearts though it really does feel like a concerted sequel to Quake II, with some of developer Raven Software's own Star Trek: Voyager - Elite Force title thrown in for good measure.

To me at least Quake 4 does stand as being one of the "Last of the Romans" in terms of being a first person shooter that embraced classic design ideals at a time when similar titles were not getting the support of major publishers. Most of the game still features the player moving between levels featuring fixed enemy placements, a wide variety of available weapons, traditional health packs, and an array of enemies each sporting unique attributes and skills.

Quake 4 also offers a well made campaign that I found myself going back to on a higher skill level not long after I had already finished my first try at the game. Certain aspects like the vehicle sections do indeed drag the game down a bit, and the multiplayer aspect pales in comparison to its predecessor Quake III Arena, but overall I am quite pleased with what Raven Software was able to accomplish with the Doom 3 engine, especially when so few others tried.

 

Final thoughts

If anyone ever needed a reason to be reminded of the value of video game source code releases, this is it. Most of the problems I encountered could have been easily sidestepped if Quake 4 source ports were available, but with the likes of John Carmack and Timothée Besset gone from id Software and the current climate at ZeniMax not looking too promising, it is doubtful that any such creations will ever materialize. Doom 3 source ports look to be the end of the road.

Instead we are stuck using this cranky 32 bit binary with an obstructive CD Key check and a graphics system that freaks out at the sight of any modern video card sporting more than 512 MB of VRAM. The game itself has aged well, with graphics that still look great and dynamic lighting that is better than what is included with many modern titles. It is just a shame that it is now such a pain to get running, not just on Linux, but on any platform.

Article taken from GamingOnLinux.com.
Tags: Action, FPS, HOWTO, Review | Apps: QUAKE IV
28 Likes
About the author -
author picture
Hamish Paul Wilson is a free software developer, game critic, amateur writer, cattle rancher, shepherd, and beekeeper living in rural Alberta, Canada. He is an advocate of both DRM free native Linux gaming and the free software movement alongside his other causes, and further information 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
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
39 comments
Page: 1/2»
  Go to:

PublicNuisance Jan 14, 2018
Shame on Zenimax for taking down the binaries and the rest of the id Software FTP server. There was no good reason for that. It's one thing to not care about Linux but to go out of your way to make it more difficult for Linux users to run what once was a game with a Linux port is just being a bully.
rea987 Jan 14, 2018
Cool article! Keep in mind the game's quake4-smp script executes SM accelerated quake4smp.x86 binary which provides more framerate. By the way, best way to solve the sound issues is to let the game use OSS instead of ALSA and install osspd-pulseaudio alsa-oss:i386. Will you cover other Linux supported id Tech 4 titles like Enemy Territory: Quake Wars and Prey?

Configure ~/.quake4/q4base/Quake4Config.cfg:

seta s_driver "oss"

Launch:

aoss ./quake4-smp


Last edited by rea987 on 15 January 2018 at 1:01 am UTC
ElectricPrism Jan 14, 2018
Too bad it cant just be flatpaked.

I guess best you can do is tar.xz it for later.
Guest Jan 14, 2018
Nice write up. Remember playing this on triple monitors the easy setting of resolution and FOV was a plus.


Last edited by on 15 January 2018 at 6:40 pm UTC
appetrosyan Jan 14, 2018
Why, Zenimax?

I still can't figure out: why are they so actively anti-linux. Yes it constitutes a minority among gamers, still, wouldn't explain why aren't they publishing games that already have tested Linux support.

The only logical explanation would be a contract with Microsoft, but then why aren't they pioneering DX12 and blatantly supporting Vulkan.

I suppose Zenimax are run by Chimps, because partnering up with nVidia and then doing a 180 after the Ryzen launch, is not a sane business decision, but I'm guessing there's something at play here.
Grim85 Jan 14, 2018
Why, Zenimax?

I still can't figure out: why are they so actively anti-linux. Yes it constitutes a minority among gamers, still, wouldn't explain why aren't they publishing games that already have tested Linux support.

The only logical explanation would be a contract with Microsoft, but then why aren't they pioneering DX12 and blatantly supporting Vulkan.


Boiling Steam did an interview with Tim Basset, he seems to paint it not so much of a resentment, but lack of knowledge
Hamish Jan 14, 2018
As always thanks for the feedback everyone. :)

Cool article! Keep in mind the game's quake4-smp script executes SM accelerated quake4smp.x86 binary which provides more framerate.
Thanks for letting me know about this, although the difference it seems to make for me is minimal. I am pretty sure my frame rate is being bottlenecked by r600g anyway though, seeing as how scaling the graphics settings down seems to not improve my frame rate either. I dug up some old Phoronix articles for those interested into reading into this further:

https://www.phoronix.com/scan.php?page=article&item=455&num=1
https://www.phoronix.com/scan.php?page=news_item&px=NTgx

I should also mention that I actually played the game with 2x AA enabled as it gave me the best performance, but kept it at 8x AA for the article and when taking screenshots.

By the way, best way to solve the sound issues is to let the game use OSS instead of ALSA and install osspd-pulseaudio alsa-oss:i386.
Indeed there are multiple ways to tackle the sound issue, I just went with what worked well for me.

Will you cover other Linux supported id Tech 4 titles like Enemy Territory: Quake Wars and Prey?
I was actually planning on making this a double feature with Prey to start with, but I ran into so many issues with Quake 4 it just made more sense to have it go out as its own article. So yes, that is definitely something I am open to doing in the future.


Last edited by Hamish on 15 January 2018 at 12:34 am UTC
apocalyptech Jan 15, 2018
Huh! I hadn't realized that Quake 4 never got opensourced - I'd just sort of assumed that somewhere down the line it had been. That's a shame! I'm one of the folks who actually quite liked Quake 4, and I'd actually been thinking about giving it another spin soon. Looks like this article should give me some help with that!
slaapliedje Jan 15, 2018
Under Debian.
game-data-packager -d ~/Downloads quake4 --binary-executables

I think that works, I am low on disk space!
Hamish Jan 15, 2018
Well, I am going to walk back what I said earlier - launching the game with quake4-smp does actually provide me with a much smoother frame rate as long as I am playing at 2x AA and have seta r_useSMP "1" included in my Quake4Config.cfg file along with the previously listed options. Nice call rea987. :)

I am seriously tempted to amend the actual article.

EDIT: So the only way I could get SMP to stick after a restart was by creating a separate AutoExec.cfg file instead of just using the main Quake4Config.cfg file. Even then it does not always handle SMP right on first launch, but on the plus side keeping all of my configuration changes in a separate file means I do not need to be as worried about overwriting them from inside the game's graphical configuration menus.


Last edited by Hamish on 15 January 2018 at 6:57 pm UTC
ageres Jan 15, 2018
> Please note that the GOG.com release of Quake 4 is unique in not supplying a valid CD key, something which is still required for the Linux port to launch.

The Steam version won't give you a key too.
rea987 Jan 15, 2018
By the way, best way to solve the sound issues is to let the game use OSS instead of ALSA and install osspd-pulseaudio alsa-oss:i386.
Indeed there are multiple ways to tackle the sound issue, I just went with what worked well for me.

Actually Prey is the only old id Tech 4 game whose vanilla Linux version doesn't suffer from ALSA related sound problems. In fact, that's a symptom of many pre-PulseAudio titles; as ALSA requires additional tweaking for its own, emulating OSS via OSS Proxy Daemon (osspd), PulseAudio OSS Wrapper (padsp), ALSA wrapper for OSS applications (alsa-oss) provides much better and stable sound performance. Haven't tried with surround systems though.

launching the game with quake4-smp does actually provide me with a much smoother frame rate as long as I am playing at 2x AA and have seta r_useSMP "1" included in my Quake4Config.cfg file along with the previously listed options. Nice call rea987. :)

I am seriously tempted to amend the actual article.

EDIT: So the only way I could get SMP to stick after a restart was by creating a separate AutoExec.cfg file instead of just using the main Quake4Config.cfg file.

Yeah, quake4smp.x86 binary uses two proprietary SDL_GL functions to enable SM acceleration. id Tech games always look for autoexec.cfg to edit default config.cfg; that's the suggested config editing method. Glad it worked for you. :-)

Edit:

Like with Doom 3 I had to remove the libgcc_s.so.1, libSDL-1.2.id.so.0, and libstdc++.so.6 libraries that the game came with in the install directory in order to get it to run. I also ran into the same sound issue I had with Doom 3, meaning I had to modify the Quake4Config.cfg file located in the hidden ~/.quake4/q4base directory in the same fashion as before. However, this time I ran into a whole host of other issues that made me have to modify the configuration file as well.

Not sure how you managed to enable SM acceleration without libSDL-1.2.id.so.0. Cause, it is a proprietary library that use couple proprietary SDL functions that I mentioned before. I suggest leaving that particular library as it is.

By the way, game's launcher scripts seem to check Loki libraries. Those historic libraries were used to avoid compatibility issues of 90s and early 2000s games for mid and/late 2000s distros, but I have no idea if they are suitable for recent modern distros. Most probably won't work with current libc anyway...

http://www.improbability.net/loki/


Last edited by rea987 on 15 January 2018 at 12:25 pm UTC
drvictor666 Jan 15, 2018
Cheers for this Hamish! I still occasionally go back to play Quake4. Just a good solid shooter, at least for me. I think last time I cheated and ran it via wine, where I had far fewer problems (and felt kind of dirty), but I might give native a go again next time and try some of the suggestions here.

I'd write exactly the same for myself.
rea987 Jan 15, 2018
> Please note that the GOG.com release of Quake 4 is unique in not supplying a valid CD key, something which is still required for the Linux port to launch.

The Steam version won't give you a key too.

No, it does. Launch the Steam version via WINE once to generate the CD key, then move the CD key into Linux version's config directory.

https://www.reddit.com/r/linux_gaming/comments/6w4m1l/quakecon_2017_sale_will_continue_until_29th_august/dm5ljdf/
ageres Jan 15, 2018
No, it does. Launch the Steam version via WINE once to generate the CD key, then move the CD key into Linux version's config directory.
I tried this, and it didn't work for me. I had to contact the Steam support, and they gave me a key.
rea987 Jan 15, 2018
I tried this, and it didn't work for me. I had to contact the Steam support, and they gave me a key.

You probably missed something. A user reported to be successful doing so, yet he hasn't received an extra key.

https://www.reddit.com/r/linux_gaming/comments/7qe83f/playing_quake_4_on_linux_in_2018/dsop3w7/
Swanny Jan 15, 2018
Yeah, quake4smp.x86 binary uses two proprietary SDL_GL functions to enable SM acceleration. id Tech games always look for autoexec.cfg to edit default config.cfg; that's the suggested config editing method. Glad it worked for you. :-)

Not sure how you managed to enable SM acceleration without libSDL-1.2.id.so.0. Cause, it is a proprietary library that use couple proprietary SDL functions that I mentioned before. I suggest leaving that particular library as it is.

By the way, game's launcher scripts seem to check Loki libraries. Those historic libraries were used to avoid compatibility issues of 90s and early 2000s games for mid and/late 2000s distros, but I have no idea if they are suitable for recent modern distros. Most probably won't work with current libc anyway...

http://www.improbability.net/loki/

So, I've been meaning to release a new Loki libs with updated ALSA libraries for a while now... However, the iD patch for SDL1 was pretty simple, just to allow enabling and disabling the GL context. I have it applied by default on my Gentoo systems but not sure if it's in my Loki libs. Should do a new release to be sure and make the patch available as it used to be on the iD FTP site.
franksouza183 Jan 15, 2018
An interesting post, because I am currently doing a couple of tests and comparisons between the native version and the windows (wine) one using mesa (radeonsi). I don't know why, but on wine, I get a much more smooth gameplay, and finally being able to maintain a 60fps rate without slowdowns, and beside that, now I can use some graphics mods (like sikkmod). I really was frustrated with this, the native version (smp and non-smp) gave me audio problems in addition to lower performance, using the same settings on both platforms. I do not understand, since based on this quote from here :

"... This means that each call to an OpenGL function must be" translated "and can not be directly used by the Windows program."

... perfomance was supposed to be lower.

To get "fixed" frame rate I needed to disable vsync (game), set the option "com_fixedTic" to "1" (the game will be accelerated if your graphic card can exceed 60fps, so to fix this, I needed a limiter (the next tool)) and use strangle to limit the frames at 60. The same process applies to both native and wine versions.

Another advantage in using wine is the possibility of using the virtual desktop, and open the game on the monitor I want (dual monitor here). It's 2018, and this fullscreen problem in dual monitors settings has never been appropriate for certain old native games.


Last edited by franksouza183 on 15 January 2018 at 4:47 pm UTC
Hamish Jan 15, 2018
Actually Prey is the only old id Tech 4 game whose vanilla Linux version doesn't suffer from ALSA related sound problems. In fact, that's a symptom of many pre-PulseAudio titles; as ALSA requires additional tweaking for its own, emulating OSS via OSS Proxy Daemon (osspd), PulseAudio OSS Wrapper (padsp), ALSA wrapper for OSS applications (alsa-oss) provides much better and stable sound performance. Haven't tried with surround systems though.
When I first started gaming heavily on Linux starting back in 2007 on Fedora games using OSS were the bane of my existence, as even with the methods for emulating it under ALSA and then later PulseAudio it almost never worked well for me. Just using ALSA for Quake 4 works fine in my experience as long as you specify the correct PCM device and it is not engaged.

Not sure how you managed to enable SM acceleration without libSDL-1.2.id.so.0. Cause, it is a proprietary library that use couple proprietary SDL functions that I mentioned before. I suggest leaving that particular library as it is.
Yes, I had to restore that library for quake4-smp to launch. If nothing else I have edited the article to not mention removing that particular library as both versions of the game launch fine with it in place, but I am still unsure about going back and mentioning SMP unless I can get it to reliably always be on with every launch. All the information you need for it is in the comments anyway.

EDIT: I would also like to provide a link to a blog post I found from someone writing about the same topic:
http://thesynrgy.blogspot.ca/2016/01/quake-iv-linux-pc-gaming-2016-quake-4.html


Last edited by Hamish on 15 January 2018 at 6:54 pm UTC
rea987 Jan 15, 2018
So, I've been meaning to release a new Loki libs with updated ALSA libraries for a while now... However, the iD patch for SDL1 was pretty simple, just to allow enabling and disabling the GL context. I have it applied by default on my Gentoo systems but not sure if it's in my Loki libs. Should do a new release to be sure and make the patch available as it used to be on the iD FTP site.

Holy cow, are you still around? I though devs of that site moved on and never looked back, silly me. :-) Well, ETQW requires pre-2.14 glibc to work properly which is not an easy task with current distros. In fact a custom build recent glibc with "disable-multi-arch" option seems to solve the issue but I couldn't figure out how to compile glibc on Ubuntu. :-)

http://forums.warchest.com/showthread.php/32089-ETQW-oddities-with-glibc-2-15-FIX?p=570552&viewfull=1#post570552
http://forums.warchest.com/showthread.php/32089-ETQW-oddities-with-glibc-2-15-FIX?p=396658&viewfull=1#post396658

Also, Quake 4 and ETQW's "improved" binaries have non-standard (probably proprietary) SDL_GL_DisableContext and SDL_GL_EnableContext_Thread functions. As I recently found SDL Compatibility Library which allows SDL 1.2 applications to use SDL 2.0, I wonder if it's possible to port those functions to default SDL 1.2 somehow?

https://github.com/MrAlert/sdlcl/issues/14


Last edited by rea987 on 15 January 2018 at 7:01 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring 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!
The comments on this article are closed.