Quake 4 on Ubuntu 24.04 that Actually works!

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’s. However, one of my favorites is Quake 4. The story and everything about it is awesome. It’s a direct sequel to Quake 2, which is probably by second favorite Quake game in the series.

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.

So, I’ve installed Quake 4 on Linux many times. In fact, it’s one of the first things I install on Linux once everything is all setup. It’s like a reward for a job well done. So here is what I had to do to get it to work.

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 /media/wililupy/QUAKE4/ directory.

I then created the directory I wanted to install Quake 4 to, which is /usr/local/games/quake4. I have to copy all the pk4 files to this directory, so I opened a terminal and ran the following command:

sudo mkdir -p /usr/local/games/quake4/q4base/
sudo cp /media/wililupy/QUAKE4/Setup/Data/q4base/*.pk4 /usr/local/games/quake4/q4base

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:

NOTE: Make sure you “right click” and Click Save link as: otherwise it will load this script in the web browser

quake4-linux-1.4.2.x86.run

Once you have downloaded the binaries, you need to enable it to be executable:

chmod a+x quake4-linux-1.4.2.x86.run

Now, here is where I was stuck for a while, but I finally figured out how to get this binary to work correctly.

I had to install the following packages to make sure everything would work, including adding a PPA for libxp6, which isn’t available for 24.04:

sudo add-apt-repository ppa:zeehio/libxp
sudo apt update
sudo apt install libxp6 \
     libssl-dev \
     libasound-plugins:i386 \
     pipewire-alsa:i386

I could then install the quake4 binaries by running the following command:

sudo sh ./quake4-linux-1.4.2.x86.run

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:

/usr/local/games/quake4

I also installed Punkbuster, but I don’t think it is even still around, please comment if that is true or not.

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:

cd /usr/local/games/quake4
sudo mkdir -p temp/
sudo mv lib* temp/

I then created symbolic links to the ones installed on my system to the quake4 directory:

sudo ln -s /usr/lib/i386-linux-gnu/libSDL-1.2.so.0 libSDL-1.2.id.so.0
sudo ln -s /usr/lib/i386-linux-gnu/libgcc_s.so.1 libgcc_s.so.1
sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 libstdc++.so.6

I then ran quake4-smp 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:

vi ~/.quake4/q4base/Quake4Config.cfg

I searched for sys_lang and changed it from "spanish" to "english" 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.

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 “quake4.png”

I have a link to the png I use here. 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.

Next, I create an .desktop file called quake4.desktop and put this file in /usr/share/applications. Below are the contents of the file:

[Desktop Entry]
Name=Quake 4
Comment=First-person shooter - sequel to Quake 2
Icon=quake4
Exec=quake4-smp
Terminal=false
Type=Application
Categories=Game;ActionGame;

Save the file and give ownership to root and make sure it has 644 permissions:

sudo chown root:root quake4.desktop
sudo chmod 644 quake4.desktop

I hope this helps you and everyone else that is running into this and wanting to play a game.

Happy Fragging!

25Shares

Comments

8 responses to “Quake 4 on Ubuntu 24.04 that Actually works!”

  1. James Avatar
    James

    I have followed all the provided steps, and have a similar setup to you (Debian 12).
    However, when launching quake4 and starting a new game, the progress bar starts to move forward, then the game just goes back to the Quake 4 main menu, without crashing. In my terminal output I can see the following:
    “`
    ———— Processing events ————–
    ———————————————
    Error ERP_DROP: entityDef not found: player_viewweapon
    TODO: Sys_SetClipboardData
    ———— Game Map Shutdown ————–
    ———————————————
    ********************
    ERROR: entityDef not found: player_viewweapon
    ********************
    ———— Game Map Shutdown ————–

    1. wililupy Avatar
      wililupy

      I have not seen this error when I run on my system. The only thing I can say is make sure that you have all the required Quake4 files installed and are using the latest patch. It looks like a file is missing so I would try re-installing all the PK4 files to the quake4 q4data path and re-running.

  2. Rainer Avatar
    Rainer

    Hi,
    thanks for your hints, but I have a problem with opengl:

    SDL_ListModes are currently ignored for resolution filtering. Set r_useSDLModes to 1 if you want it
    Fatal Error: Unable to initialize OpenGL
    ————— BSE Shutdown —————-
    ———————————————
    idRenderSystem::Shutdown()
    Sys_Error: Unable to initialize OpenGL

    I’ve try many options, but nothing work. Any idea?

    1. wililupy Avatar
      wililupy

      Hello,

      I would make sure that you have the 32 bit libraries installed, and verify that your OpenGL libraries for your graphics card are installed as well.

      sudo dpkg –add-architecture i386
      sudo apt update
      sudo apt install libgl1-mesa-dri:i386 libgl1:i386 libsdl1.2debian:i386

      1. Rainer Avatar
        Rainer

        I’ll try again. I’m pretty sure that in all my attempts to get Quake4 to run, I’ve tried this option more than once.
        I’ll let you know how it went

      2. Rainer Avatar
        Rainer

        Works again.
        I only had to comment out the line with LD_LIBRARY_PATH in the script. After that, the libs are pulled from the system path.

  3. Rainer Avatar
    Rainer

    Ok, it’s working now. But I have either no sound or music, but no voice output. I’m still trying it out. At least I’m one step further. It was due to the LD_LIBRARY_PATH variable. I have now commented it out.

    1. wililupy Avatar
      wililupy

      That’s outstanding. Glad you were able to figure it out. As for audio, make sure you are using the alsa drivers that I mention in my post (libasound-plugins:i386 and pipewire-alsa:i386).
      I would also use the aplay command to test the alsa drivers and make sure they are working correctly. Alsa is usually the pain I expirience getting this working correctly.

Leave a Reply to James Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

25Shares