{"id":379,"date":"2025-06-09T12:39:29","date_gmt":"2025-06-09T19:39:29","guid":{"rendered":"https:\/\/www.lucaswilliams.net\/?p=379"},"modified":"2025-06-09T16:06:33","modified_gmt":"2025-06-09T23:06:33","slug":"quake-4-on-ubuntu-24-04-that-actually-works","status":"publish","type":"post","link":"https:\/\/www.lucaswilliams.net\/index.php\/2025\/06\/09\/quake-4-on-ubuntu-24-04-that-actually-works\/","title":{"rendered":"Quake 4 on Ubuntu 24.04 that Actually works!"},"content":{"rendered":"\n<p>Hello everyone. I hope you are doing well and staying safe. Welcome to another blog entry on gaming on Linux, primarily Ubuntu 24.04.2. <\/p>\n\n\n\n<p>I am a huge id Software fan. Have been since Wolfenstein 3-D in the early 90&#8217;s. However, one of my favorites is Quake 4. The story and everything about it is awesome. It&#8217;s a direct sequel to Quake 2, which is probably by second favorite Quake game in the series.<\/p>\n\n\n\n<p>So, I wanted to install my copy that I have on DVD that has worked really well in the past, only to my chagrin did I find out that this is was going to be a journey. So if you are having issues setting up Quake 4 on your Ubuntu 24.04 machine, and getting it to run at all with sound included, read on and please like, share and comment so I know that this guide helped you as well.<\/p>\n\n\n\n<p>So, I&#8217;ve installed Quake 4 on Linux many times. In fact, it&#8217;s one of the first things I install on Linux once everything is all setup. It&#8217;s like a reward for a job well done. So here is what I had to do to get it to work.<\/p>\n\n\n\n<p>First thing I did was pull out the old DVD from my desk drawer, and put it in my DVD drive. On my Intel NUC, which is now my primary desktop machine now, I just plugged in a USB one and Ubuntu mounted the DVD with no issues. It was mounted in <code>\/media\/wililupy\/QUAKE4\/<\/code> directory.<\/p>\n\n\n\n<p>I then created the directory I wanted to install Quake 4 to, which is <code>\/usr\/local\/games\/quake4<\/code>. I have to copy all the <code>pk4<\/code> files to this directory, so I opened a terminal and ran the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/usr\/local\/games\/quake4\/q4base\/\nsudo cp \/media\/wililupy\/QUAKE4\/Setup\/Data\/q4base\/*.pk4 \/usr\/local\/games\/quake4\/q4base<\/code><\/pre>\n\n\n\n<p>This took about 10 minutes to copy all the pk4 files. I then needed to download the quake4 linux binaries. Luckily, I had a copy I previously downloaded because the id software FTP site is no longer online. For those of you in the same boat, here is a link to it off of this web server:<\/p>\n\n\n\n<p><strong>NOTE: <\/strong>Make sure you &#8220;right click&#8221; and Click Save link as: otherwise it will load this script in the web browser<\/p>\n\n\n\n<p><a href=\"https:\/\/www.lucaswilliams.net\/files\/quake4-linux-1.4.2.x86.run\" rel=\"nofollow\">quake4-linux-1.4.2.x86.run<\/a><\/p>\n\n\n\n<p>Once you have downloaded the binaries, you need to enable it to be executable:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod a+x quake4-linux-1.4.2.x86.run<\/code><\/pre>\n\n\n\n<p>Now, here is where I was stuck for a while, but I finally figured out how to get this binary to work correctly.<\/p>\n\n\n\n<p>I had to install the following packages to make sure everything would work, including adding a PPA for libxp6, which isn&#8217;t available for 24.04:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo add-apt-repository ppa:zeehio\/libxp\nsudo apt update\nsudo apt install libxp6 \\\n     libssl-dev \\\n     libasound-plugins:i386 \\\n     pipewire-alsa:i386<\/code><\/pre>\n\n\n\n<p>I could then install the quake4 binaries by running the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sh .\/quake4-linux-1.4.2.x86.run<\/code><\/pre>\n\n\n\n<p>I accepted all the licenses, and when it asked where I wanted to install Quake 4, I used the default path, which is where I uploaded the pk4 files:<\/p>\n\n\n\n<p><code>\/usr\/local\/games\/quake4<\/code><\/p>\n\n\n\n<p>I also installed Punkbuster, but I don&#8217;t think it is even still around, please comment if that is true or not.<\/p>\n\n\n\n<p>Once it finished installing, I started Quake 4, and it failed to start. It appears that the included libraries are not compatible with Ubuntu 24.04.2, so I created a folder in the quake4 directory called temp and moved the lib files there:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/usr\/local\/games\/quake4\nsudo mkdir -p temp\/\nsudo mv lib* temp\/<\/code><\/pre>\n\n\n\n<p>I then created symbolic links to the ones installed on my system to the quake4 directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/usr\/lib\/i386-linux-gnu\/libSDL-1.2.so.0 libSDL-1.2.id.so.0\nsudo ln -s \/usr\/lib\/i386-linux-gnu\/libgcc_s.so.1 libgcc_s.so.1\nsudo ln -s \/usr\/lib\/i386-linux-gnu\/libstdc++.so.6 libstdc++.so.6<\/code><\/pre>\n\n\n\n<p>I then ran <code>quake4-smp<\/code> to run and the game fired up with full audio. The only issue I had now was the game was in Spanish. To fix this I updated the Quake 4 configuration file in my home directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vi ~\/.quake4\/q4base\/Quake4Config.cfg<\/code><\/pre>\n\n\n\n<p>I searched for <code>sys_lang<\/code> and changed it from <code>\"spanish\"<\/code> to <code>\"english\"<\/code> and saved the file and then restart Quake 4 and everything started and worked normally. I can now play my favorite Quake title on my favorite OS.<\/p>\n\n\n\n<p>Now, these next few things are optional, but I like them because it makes playing the game a little more seamless. I like to have an icon in the Application Launcher for Gnome. Quake 4 comes with a bitmap icon, but the background is magenta and an eye sore. So I use GIMP to make the background transparent and remove the magenta color and then save it as a PNG file. Then I put this icon png file in \/usr\/share\/icons and call it &#8220;quake4.png&#8221;<\/p>\n\n\n\n<p>I have a link to the png I use <a href=\"https:\/\/www.lucaswilliams.net\/wp-content\/uploads\/2025\/06\/quake4.png\" data-type=\"attachment\" data-id=\"388\">here<\/a>. You can download it and save it to \/usr\/share\/icons and then it will be the icon when you create the desktop link file.<\/p>\n\n\n\n<p>Next, I create an <code>.desktop<\/code> file called <code>quake4.desktop<\/code> and put this file in \/usr\/share\/applications. Below are the contents of the file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Desktop Entry]\nName=Quake 4\nComment=First-person shooter - sequel to Quake 2\nIcon=quake4\nExec=quake4-smp\nTerminal=false\nType=Application\nCategories=Game;ActionGame;<\/code><\/pre>\n\n\n\n<p>Save the file and give ownership to root and make sure it has 644 permissions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown root:root quake4.desktop\nsudo chmod 644 quake4.desktop<\/code><\/pre>\n\n\n\n<p>I hope this helps you and everyone else that is running into this and wanting to play a game.<\/p>\n\n\n\n<p>Happy Fragging!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello everyone. I hope you are doing well and staying safe. Welcome to another blog entry on gaming on Linux, primarily Ubuntu 24.04.2. I am a huge id Software fan. Have been since Wolfenstein 3-D in the early 90&rsquo;s. However, one of my favorites is Quake 4. The story and everything about it is awesome. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[168,30,37,6],"tags":[165,164,27,21,167,34,55,166,22,5],"class_list":["post-379","post","type-post","status-publish","format-standard","hentry","category-desktop","category-games","category-howto","category-ubuntu","tag-24-04","tag-24-04-2","tag-canonical","tag-configure","tag-desktop","tag-games","tag-howto","tag-quake-4","tag-setup","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":5,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":390,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts\/379\/revisions\/390"}],"wp:attachment":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}