Definitive workaround for ETQW microphone issues on Linux


(REA987) #1

Greetings fellow Stroggos inhabitants,

TL;DR: Install osspd and osspd-pulseaudio; then switch game’s sound architecture to OSS.

Setting microphone for ETQW on Linux has always been an issue even a decade after its full release. That mostly caused by outdated libraries, loose settings, obsolete dependencies and dropped features of new softwares. As ETQW is still a proprietary software, it is not easy to implement source code level solutions; instead messing with settings and third party tools are the only things we can do.

Problems:

Unlike Windows and macOS versions, mic settings of ETQW on Linux aren’t configured default and even if they are configured by user via cfg edit, settings menu of the game won’t show voice output and input devices. If somehow there are more than one audio input devices, the game doesn’t recognize them properly.

Clan matches do require extensive usage of TeamSpeak as well as game’s own VoIP at the same time. As id Software stated before, using an additional mic is the only solution if both software is needed.

Cause:

ETQW on Linux supports Advanced Linux Sound Architecture (ALSA) and Open Sound System (OSS); the game was released before the adoption of PulseAudio by major distros. Game’s default sound architecture ALSA works fine with PulseAudio but it does not respect PulseAudio’s mic settings. Instead, it requires etqwconfig.cfg to be edited to point audio input devices directly. However, what I understood is the game recognize only the first audio input device; if you use a laptop with onboard mic but aiming to use an USB mic, the game still uses the onboard mic. Theoretically, it should be possible to configure ALSA with or without removing PulseAudio; but that would be such a big hurdle which affects whole system for a single game.

TeamSpeak on the other hand can respect PulseAudio’s mic settings but ETQW simply rejects to share same voice input device with another software. TeamSpeak can be switched to ALSA but that again requires additional ALSA config. What id Software suggested back in 2008 was to use an additional mic for TeamSpeak.

http://zerowing.idsoftware.com/linux/etqw/ETQWFrontPage/#head-38ba4aceb760ca11f10f058e917b302a1a4e1399

Solution:

As I mentioned before, ETQW does support OSS which is considered legacy software for a long time. During the GNU/Linux distros’ transition to PulseAudio from ALSA, native OSS support was completely dropped and instead provided via “PulseAudio OSS Wrapper” (padsp) or “ALSA wrapper for OSS applications” (alsa-oss). Few years ago, another project started to emulate OSS under PulseAudio; “OSS Proxy Daemon” (osspd) currently works great with OSS applications and as I have just found, it supports VoIP. Which means, instead of dealing with game’s and ALSA’s configurations, osspd uses PulseAudio’s mic settings and translates them to ETQW’s OSS on-the-fly.

Usage:

[ol]
[li]Install osspd packages. Here are the required packages for Ubuntu, Linux Mint and Debian that might differ on other distros; osspd and osspd-pulseaudio:[/li]

sudo apt-get install osspd osspd-pulseaudio

[li]Edit game’s one of launcher scripts etqw-rthread or etqw with a text editor. Replace[/li]```
#SDL_AUDIODRIVER=“alsa”

line with

SDL_AUDIODRIVER=“oss”



[li]Edit ~/.etqwcl/base/etqwconfig.cfg with a text editor; replace[/li]```
seta s_driver "alsa"

line with

seta s_driver "oss"

[li] Now the game can be launched with one of the launcher scripts. Enjoy the mic which properly respects PulseAudio’s settings.[/li][/ol]

Edit: Mods’ sound config should be edited separately; ~/.etqwcl/<modfolder>/etqwconfig.cfg

MAY THE MAKRON BE WITH YOU! :oppressor: