I installed wine fresh, using the current port on 14.3 RELEASE-p2. I built it with selected mono, gecko and OSS sound.
Then as user, I ran /usr/local/share/wine/pkg32.sh install wine mesa-dri
At this point I executed a simple but modern Windows game (Broforce), and it worked normally, sound OK.
Winecfg shows wineoss.drv being used and my interfaces are listed correctly.
Then I tried some other games and they ran without sound. I used winetricks to install dxdiag and saw there are no DirectSound devices. I picked out this part from dxdiags console output
If I don't build stuff from ports but use packages :
Wine then uses winealsa.drv and there are no devices shown in winecfg, and of course nothing in DirectSound too.
However this time the dxdiag stderr looks a bit different
I think in this case there is ALSA device list present, but empty one.
So...what to do here? Why is our wine built against ALSA by default anyway? Is there some bridge like pulseaudio exposing ALSA that I'm unaware of (I have pulseaudio_enable="NO" in rc but it's still running by virtue of Plasma).
Code:
wine-10.0_2,1 Microsoft Windows compatibility environment
wine-gecko-2.47.4 Gecko Layout Engine for Wine (HTML support)
wine-mono-9.4.0 Mono .NET implementation for Wine
winetricks-20250212 Easy way to work around problems in Wine
Then as user, I ran /usr/local/share/wine/pkg32.sh install wine mesa-dri
At this point I executed a simple but modern Windows game (Broforce), and it worked normally, sound OK.
Winecfg shows wineoss.drv being used and my interfaces are listed correctly.
Then I tried some other games and they ran without sound. I used winetricks to install dxdiag and saw there are no DirectSound devices. I picked out this part from dxdiags console output
Code:
00ec:err:alsa:get_device_name_from_guid No devices found in registry?
00ec:err:alsa:get_device_name_from_guid No devices found in registry?
00ec:err:alsa:get_device_name_from_guid No devices found in registry?
00ec:err:alsa:get_device_name_from_guid No devices found in registry?
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Loopback
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Loopback
ALSA lib seq_hw.c:531:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
00ec:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound
output probably won't work.
If I don't build stuff from ports but use packages :
Code:
wine-10.0_1,1 Microsoft Windows compatibility environment
wine-gecko-2.47.4 Gecko Layout Engine for Wine (HTML support)
wine-mono-9.4.0 Mono .NET implementation for Wine
winetricks-20250212 Easy way to work around problems in Wine
Wine then uses winealsa.drv and there are no devices shown in winecfg, and of course nothing in DirectSound too.
However this time the dxdiag stderr looks a bit different
Code:
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Loopback
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Loopback
ALSA lib seq_hw.c:531:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
00ec:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound
output probably won't work.
I think in this case there is ALSA device list present, but empty one.
So...what to do here? Why is our wine built against ALSA by default anyway? Is there some bridge like pulseaudio exposing ALSA that I'm unaware of (I have pulseaudio_enable="NO" in rc but it's still running by virtue of Plasma).