Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

AoE2DE on Linux with Alsa

I recently reinstalled my gaming workstation, and of course I reinstalled Age of Empires 2: Definitive Edition. It's one of the few non-open source activities I allow myself.

Well, with this OS reinstall, I set up Devuan GNU+Linux which uses sysvinit. I had the choise to use pulseaudio, like my Fedora GNU/Linux installation used. I recall that you could use the pulseaudio graphical control utility to change the default audio sink, which immediately switched over running applications' default audio streams. However, I am going more traditional and less poettering-style, and using just alsa for audio these days (and fluxbox for my window manager, as previously discussed).

I have had this setup for about a month, and it has gone well, including audio, until the past few days. Somehow, my default audio device switched probably to my Nvidia graphics card. I tried adjusting my /etc/asound.conf which worked in general, such as for vlc.

defaults.pcm.card 1
defaults.ctl.card 1

I still needed to manually choose the correct card for the game, however. Reviewing the output of steam and/or the game (by running steam in a terminal window), I saw these logs:

ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory

This could have been because I unplugged what was getting picked for the default device, a cheap webcam that has a microphone but no speakers, so it really should never show up as an audio sink anyways.

After reviewing my output of aplay -l (a snippet is below), I set an environment variable in the Steam settings for the game.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC221 Analog [ALC221 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

So in steam settings for AoE2DE, I now have it set up with:

PROTON_USE_DXVK=1 ALSA_CARD='PCH' %command%

Also, I am currently using Proton 7.0-4 for compatibility. I was previously using 5.13-6.

References

Weblinks

  1. Advanced Linux Sound Architecture - ArchWiki
  2. Using apulse for alsa audio in games launched via proton? :: Steam for Linux Steam Play
  3. [SOLVED] Steam/proton issues with some games, related to ALSA - Page 2

Internet searches

  1. alsa lib cannot find card 0

Comments