Wolfenstein Enemy Territory
This archive contains all files needed to run Wolfenstein ET 2.60b on Linux. It includes two folders:
One to launch the main game :
- The official game
- et-sdl-sound (enabling sound - fetch from https://web.archive.org/web/20160804014221/http://nullkey.kapsi.fi/et-sdl-sound/)
One to launch a Jaymod server:
Requirements
Wolfenstein ET is built on a 32 bits arch. So, 32 bits libraries must exist to run the game.
# add the i386 architecture
sudo dpkg --add-architecture i386
# do update to fetch i386 libraries
sudo apt update
# install the 32 bits compatible libraries
sudo apt install ia32-libs # Mint
sudo apt install lib32z1 # Ubuntu
# after the installation the following lib must be present
sudo apt install libsdl1.2debian:i386
Installation
NOTE: The installation has been tested on Mint 20.04 | Ubuntu 20/22.04.
- Download the archive
wget http://et.sonak.fr/archives/et_full_linux.tar.gz
- Extract it
tar xzvf et_full_linux.tar.gz
cd wolfenstein-et
- Create the main folders
sudo mkdir -p /usr/local/games/enemy-territory
sudo chown 1000 /usr/local/games/enemy-territory && chmod 775 /usr/local/games/enemy-territory
sudo mkdir -p /opt/games/enemy-territory
sudo chown 1000 /opt/games/enemy-territory && chmod 775 /opt/games/enemy-territory
cp -r base/* /usr/local/games/enemy-territory
cp -r server /opt/games/enemy-territory
Launch the game
cd /usr/local/games/enemy-territory
./et-sdl-sound
Enjoy !
NOTE : Some libraries may be missing, you need to install it one by one (test to launch ./et.x86 and see missing libs).
Create a systemd service (server creation only)
In order to launch the server properly, a systemd service is a right solution instead of the serverctl sh script. To do so:
- put the launch_server.bash wherever you want (ex: /opt/games/enemy-territory/server/linux).
- put the wolfenstein-et.service file in /etc/systemd/system directory (must be root).
- replace
<linux_user>and<path_to>placeholders with your configuration (<linux_user>must have rights to execlaunch_server.bash). - enable the service (on reboot the service will autostart).
sudo systemctl enable wolfenstein-et
- start the service
sudo service wolfenstein-et start
- check the service status
sudo service wolfenstein-et status
Public server behind a tunnel
When the server runs at home and is only reachable through a front server (WireGuard), its own heartbeats leave through the home box: masters challenge the wrong IP and the server never shows up in the in-game browser.
- etrelay: a small Rust UDP relay running on the front. It proxies players and sends the master heartbeats from the front public address. Build, usage and how it works (with diagrams): see its repository.
- Disable the server's own heartbeats in
server.cfg, the relay sends them:
set sv_master1 ""
set sv_master2 ""
set sv_master3 ""
set sv_master4 ""
set sv_master5 ""
List the servers known by the masters
etmasters.py (Python 3, standard library only) asks the masters (etmaster.idsoftware.com, etmaster.net) for their server list, then every server for its info: name, map, players, mod. Handy to check the server is listed.
./etmasters.py # table sorted by players
./etmasters.py --json servers.json # JSON file instead
./etmasters.py --master etmaster.net:27950 --timeout 5
Settings
More useful information: https://wiki.archlinux.org/title/Wolfenstein:_Enemy_Territory.
Set screen size in 1920*1080
- Open the player configuration file:
vi $HOME/.etwolf/etmain/profiles/<username>/etconfig.cfg
- Override this settings
seta r_mode -1 // -1 mean we are using a custom screen resolution
seta r_customwidth 1920 // monitor's width
seta r_customheight 1080 // monitor's height
Common errors
"libstdc++.so.6: cannot open shared object file: No such file or directory"
sudo apt install lib32stdc++6
SDL driver error
------- sound initialization -------
SDL audio driver initializing...
ALSA lib conf.c:3722:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so: libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default
SDL_AudioDriverName() = NULL
------------------------------------
You must install the corresponding 32 bits library:
sudo apt install libasound2-plugins:i386
Keyboard input does not work
Try moving to Xorg instead of Wayland... To do so, on Ubuntu, logout, click on the Settings icon and select Xorg.
libGL.so.1: cannot open shared object file: No such file or directory
sudo apt install libgl1-mesa-glx:i386
libasound_module_pcm_pipewire.so
SDL audio driver initializing...
ALSA lib dlmisc.c:337:(snd_dlobj_cache_get0) Cannot open shared library libasound_module_pcm_pipewire.so (/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_pipewire.so: cannot open shared object file: No such file or directory)
SDL_AudioDriverName() = NULL
sudo apt install pipewire-alsa:i386