It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Of course Quake can be played in gnu/linux, there are dozen of source ports!
For gnu/linux the most famous (as far as I know) are quakespasm and darkplaces.
The first for a nostalgia trip, the second for a modern-looking engine.

I'll focus how to prepare the gog download to play.

You'll need:
To play:
- a quake engine, for example quakespasm or darkplaces. Most probably your distribution allows to install it with ease.
- innoextract

And if you want the music,
to extract:
- bchunk
or
- cdemu
- cdparanoia
to convert and deemphatize:
- sox (for deemphatizing)
- vorbis encoder, if you want to save some space

Finally if you want transparent water:
vispatch, it works only on standard maps, but it is very quick;
https://icculus.org/twilight/darkplaces/download.html], for all other maps;
qpakman, for accessing .pak files.
Many fan made maps already support transparent water, so try it out before patching them.

Download the game, you get the setup_quake_the_offering_2.0.0.6.exe file.

Lets start making the output directory:
$ mkdir -p quake/id1
$ mkdir quake/hipnotic
$ mkdir quake/rogue

Open the downloaded game with innoextract
$ mkdir quaketmp && cd quaketmp
$ innoextract ../setup_quake_the_offering_2.0.0.6.exe
[...] lots of output

Copy the files you need, renaming in lowecase:
$ cp app/Id1/PAK0.PAK ../quake/id1/pak0.pak
$ cp app/Id1/PAK1.PAK ../quake/id1/pak1.pak
$ cp app/hipnotic/PAK0.PAK ../quake/hipnotic/pak0.pak
$ cp app/rogue/pak0.pak ../quake/rogue

The quake directory must renamed to what your source port expect. (e.g., rm -rf ~/.quakespasm && mv ../quake ~/.quakespasm)

You probably want to add this autoexec.cfg for all three directories.
And you can also consider the third commercial (now free) expansion, Abyss of Pandemonium.

To have transparent water execute vispatch against all .pak files of Quake and expansions 1 and 2. Abyss of Pandemonium does not need.
vispatch is quick, but only works on stock maps, if you want to patch other maps you will need (executed first with -bsp2prt and a second time with -vis) and eventually [url=https://github.com/bunder/qpakman]qpackman to extract, and put back, files in the .pak archives. Make water transparent might be a long operation, but in a modern computer it will hardly need more than few minutes per map. Just don't start it if you are in hurry.

If you do not want the musics, you are done; you can delete the quaketmp directory and enjoy.

Otherwise continue reading.

According to this thread some .cue sheets are shifted. So you need to manually edit the .cue sheet to remove few seconds as explained in the thread, this is the direct link to the fixed files.

In the app directory are the original CD images with the music. Audio CDs cannot be mounted normally, but cdemu or bchunk allows to access the tracks.

$ cd app

# with bchunk
$ mkdir game_music
$ bchunk -w game.gog game.cue game_music/track
$ rm game_music/track01.iso #this is the data track, not music

# or if does not work, with cdemu
$ cdemu load 0 game.cue
$ cdemu device-mapping
Device mapping:
DEV SCSI CD-ROM SCSI generic
0 /dev/sr1

In your system it might be different, in the case use the different device name.

$ mkdir game_music && cd game_music
$ cdparanoia -d /dev/sr1 -B -- "2-"
$ cdemu unload 0

Assuming one of the two methods worked you got the music in .wav format, repeat in another directory with gamea.cue (for the first expansion) and gamed.cue (for the second), you fixed those sheets already did't you?

In this another thread they mention you need to deemphatize the Quake (not the expansions) music. If you want, just execute this line in the directory with musics:

$ for wav in *.wav ;do sox -V3 "$wav" --comment "" out.wav deemph && mv out.wav "$wav" ;done

Most modern source port accept the music to be placed in a subdirectory called "music" in format mp3, ogg or even flac.

And if you like SP don't forget Quaddicted and if you like coop send me a personal message ;)
Post edited December 26, 2015 by etb
Instead of cdemu+cdparanoia you can extract the bin/cue image directly with bchunk. This will also save the data track which you won't need, so be sure to delete it to conserve space.

mkdir game_music
bchunk -w game.gog game.cue game_music/track
rm game_music/track01.iso
Nice! I update the post.
avatar
etb: Most modern source port accept the music to be placed in a subdirectory called "music" in format mp3 or ogg. Just encode with oggenc.
And QuakeSpasm supports FLAC <3
avatar
snemarch: And QuakeSpasm supports FLAC <3
Only for real audiophiles! :)
avatar
etb: Most modern source port accept the music to be placed in a subdirectory called "music" in format mp3 or ogg. Just encode with oggenc.
avatar
snemarch: And QuakeSpasm supports FLAC <3
Are you sure? I just tried, but it does not work. Besides the music page states nothing about Flac support...
avatar
etb: Are you sure? I just tried, but it does not work. Besides the music page states nothing about Flac support...
This is very late, but I think it is still important:

Yes, quakespasm does support Flac, but the support is optional and has to be enabled during compilation by editing the Makefile.
avatar
Rixasha: Instead of cdemu+cdparanoia you can extract the bin/cue image directly with bchunk. This will also save the data track which you won't need, so be sure to delete it to conserve space.

mkdir game_music
bchunk -w game.gog game.cue game_music/track
rm game_music/track01.iso
I didn't know bchunk works on gog / ins files. I though it only worked with bin / cue file pairs.
avatar
TheBigCore: I didn't know bchunk works on gog / ins files. I though it only worked with bin / cue file pairs.
That's basically what they are, just named funny.
avatar
TheBigCore: I didn't know bchunk works on gog / ins files. I though it only worked with bin / cue file pairs.
avatar
Rixasha: That's basically what they are, just named funny.
Does it also work on GOG / INST pairs? Redneck Rampage named their BIN / CUE pairs that way, for some strange reason.
Post edited May 13, 2020 by TheBigCore
avatar
TheBigCore: Does it also work on GOG / INST pairs? Redneck Rampage named their BIN / CUE pairs that way, for some strange reason.
I don't know, I don't have that game. Like you said yourself, it works on bin/cue. The actual filenames don't matter.
I installed on my laptop today. Much of what i did was the same as above, but I have included a complete guide here:

it is on gist.github.com/omgraae/0f003ce9972cc2a5bf4fcb216f8d0c0f

You can also read it here without the formatting:

# Quake GOG on Fedora

## Prerequisites

- the following packages are installed: sdl2; ffmpeg; bchunk ; innoextract
`sudo dnf install sdl2 ffmpeg bchunk unzip innoextract`

## Installation

Download game content from here:

[www.gog.com/account](www.gog.com/account)

Unpack the file via wine:

```bash
innoextract setup_quake_the_offering_2.0.0.6.exe -d ~/.quake
rm -rf ~/.quake/tmp
mv ~/.quake/app/* ~/.quake
cd ~/.quake
```

Extract raw audio files from cue/gog files:

```bash
bchunk -w -v game.gog game.cue track
mkdir ./id1/music
mv track*.wav ./id1/music/

bchunk -w -v gamea.gog gamea.cue track
mkdir ./hipnotic/music
mv track*.wav ./hipnotic/music/

bchunk -w -v gamed.gog gamed.cue track
mkdir ./rogue/music
mv track*.wav ./rogue/music/

rm *.cue && rm *.gog && rm *.iso
```

Convert all wav files to ogg:

```bash
for FILENAME in $(find . -iname "*.wav"); do NEWNAME=$(echo $FILENAME | sed 's/wav$/ogg/gI') ; ffmpeg -i $FILENAME -aq 8 -acodec libvorbis $NEWNAME && rm $FILENAME; done
```

Download and install [Quakespasm-spiked](/triptohell.info/moodles/qss/) into the folder:

```bash
curl -o quakespasm_spiked.zip triptohell.info/moodles/qss/quakespasm_spiked_linux64_dev.zip
unzip quakespasm_spiked.zip -d ~/.quake
rm quakespasm_spiked.zip
```

Create a launcher script:

```bash
cat << eof > ~/quakespasm
# !/bin/bash

FOLDER=$PWD
cd ~/.quake
./quakespasm-spiked-linux64 -game $1
cd $FOLDER
eof
chmod +x ~/quakespasm
```

Add a shortcut:

```bash
echo 'alias quakespasm="~/quakespasm"' >> ~/.bashrc
```

Install Archane Dimensions

```bash
curl -o ad.zip www.quaddicted.com/filebase/ad_v1_80p1final.zip
unzip ad.zip -d ./ad
rm ad.zip
```

Install Zerstörer

```bash
curl -o zer.zip www.quaddicted.com/filebase/zer.zip
curl -o zer11.zip www.quaddicted.com/filebase/zer11.zip
curl -o zerend.zip www.quaddicted.com/filebase/zerend_fix.zip
unzip zer.zip -d zer && rm zer.zip
unzip zer11.zip -d zer && rm zer11.zip
unzip zerend.zip -d zer && rm zerend.zip
```
Post edited January 03, 2022 by t29monstrum
Thanks for sharing!


But why you write "Unpack the file via wine:" when using innoextract? You do not really use wine.

In addition to use sed to change the file extension is a bit of a overkill, you can just loop this line:

ffmpeg -i "$FILENAME" -aq 8 -acodec libvorbis "${FILENAME%.*}.ogg" && rm "$FILENAME"

About the launcher script, I usually just put "$@" so it passes all parameters, because while usually you just use -game you man want to use the map name.