# Using Pulseaudio with Wine



## Deleted member 67862 (May 10, 2022)

I was wondering, can Pulseaudio be used with emulators/wine-devel? Ive had issues missing sound using OSS due to it not having support for a specific audio library, and Ive heard that Pulseaudio can handle it. I could not get ALSA, which also supports it, to work correctly. So the next best thing would be Pulseaudio itself. 

Unfortunately when I set sound=pulse for Wine, there is no driver for it. It seems like people have done this before to fix sound issues. Im quite frustrated after building both architectures of wine with alsa to no avail, so if anyone knows how to use pulseaudio as the driver for Wine it would be greatly appreciated.


----------



## ayleid96 (May 21, 2022)

What problems do you have? Stuttering? With what games?


----------



## Deleted member 67862 (May 21, 2022)

ayleid96 said:


> What problems do you have? Stuttering? With what games?


I don't have any stuttering, just the absence of sound in certain games whenever using the OSS driver. Project Zomboid and Subnautica are two I installed and tried and had no sound. Alexander88207 helped me discover that games using the fmod sound engine will have no sound, since OSS lacks support for it. Not surprisingly, both these games use it.


----------



## ayleid96 (May 21, 2022)

hunter0one said:


> I don't have any stuttering, just the absence of sound in certain games whenever using the OSS driver. Project Zomboid and Subnautica are two I installed and tried and had no sound. Alexander88207 helped me discover that games using the fmod sound engine will have no sound, since OSS lacks support for it. Not surprisingly, both these games use it.


Alex is wine wizard around here. I had problems with Skyrim Legendary Edition. Check out THIS. For example, Morrowind and Oblivion uses FMOD for their sound, but they are working fine now. I highly recommend you to use proton instead of wine, it has better debugging output compared to wine, it tells you what really is the problem.


----------



## Deleted member 67862 (May 22, 2022)

ayleid96 said:


> Alex is wine wizard around here. I had problems with Skyrim Legendary Edition. Check out THIS. For example, Morrowind and Oblivion uses FMOD for their sound, but they are working fine now. I highly recommend you to use proton instead of wine, it has better debugging output compared to wine, it tells you what really is the problem.


I didn't realize you could just use Proton on its own. I'll give that a try..


----------



## Alexander88207 (May 22, 2022)

ayleid96 said:


> Alex is wine wizard around here.



Thank for your kind words, but i am not really a wizard. I just went through the hell before you did.


----------



## Deleted member 67862 (May 22, 2022)

I've got wine-proton, but I cant make a 64-bit prefix or else I run into an issue with ntdll.so:


> could not load ntdll.so: (null)


Creating a 32-bit prefix works fine. I have wine-proton installed via pkg32.sh as well.


----------



## Alexander88207 (May 22, 2022)

Is /proc mounted?


----------



## Deleted member 67862 (May 22, 2022)

Alexander88207 said:


> Is /proc mounted?


Yes.


----------



## shkhln (May 23, 2022)

What's the exact command?


----------



## Deleted member 67862 (May 23, 2022)

I wasn't at my computer at the time so I forgot that I got over the ntdll.so error by mounting /proc (sorry) but then I ran into the following error afterwards when trying to create a 64-bit Wine prefix:


```
wine: created the configuration directory '/home/hunter/.wine' wineserver: using server-side synchronization.
0024:fixme:fsync:do_fsync futexes not supported on this platform.
err:virtual:virtual_alloc_first_teb wine: failed to map the shared user data: c0000017
0024:err:environ:run_wineboot failed to start wineboot c00000e5
0024:fixme:actctx:parse_depend_manifests 
Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
err:virtual:virtual_alloc_first_teb wine: failed to map the shared user data: c0000017
err:virtual:virtual_alloc_first_teb wine: failed to map the shared user data: c0000017
err:virtual:virtual_alloc_first_teb wine: failed to map the shared user data: c0000017
0024:err:winecfg:WinMain failed to restart 64-bit L"C:\\windows\\system32\\winecfg.exe", err 1359
0024:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0024:err:winediag:nodrv_CreateWindow The explorer process failed to start.
```

I don't understand why it can't load presumably a graphics driver, I have the amdgpu firmware and driver loaded.


----------



## shkhln (May 23, 2022)

Yeah, but what are you actually typing?


----------



## Deleted member 67862 (May 23, 2022)

Just trying to run winecfg. `env WINEARCH=win64 winecfg`


----------



## shkhln (May 23, 2022)

First, wine-proton requires a full path to the Wine executable. Second, there isn't really any kind of "better debugging output", although steam-utils sets `WINEDEBUG=warn+module` due to dlopen silently failing being a very frequent issue for me in the past.


----------



## ayleid96 (May 23, 2022)

shkhln said:


> First, wine-proton requires a full path to the Wine executable. Second, there isn't really any kind of "better debugging output", although steam-utils sets `WINEDEBUG=warn+module` due to dlopen silently failing being a very frequent issue for me in the past.


I disagree with debugging part, latest version of wine reported that it cannot open MIDI device for the problem I had with sound. But proton tells me that my gstreamer1 installation lacks some features. So I installed missing packages and the problem was solved. Also it has way better error output on graphics and other stuff. Just setenv WINE in /usr/local/wine-proton and everything is fine. If you want regular wine then unset the env var.


----------



## Deleted member 67862 (May 28, 2022)

Can anyone please answer the OP - how does one get Wine to use pulseaudio? I cannot find anything related to using pulseaudio for wine on FreeBSD.

I dislike pulseaudio myself so alternatively does anyone know how to get the Wine port to have sound when built with ALSA? I painstakingly did this for both 64 and 32-bit Wine, and ended up with _no_ sound at all even though _winealsa.drv_ was the driver. I'm under the impression this works by using ALSA-OSS compatibility modules to play audio.


----------



## thindil (May 29, 2022)

If you want to have sound with ALSA, the easiest way is to use emulators/wine-devel and configure it to use ALSA instead of OSS. You will also need audio/alsa-plugins. But from my experience, it doesn't solve problems with lack of audio from FMOD based games.

Build wine with PulseAudio is possible, I was able to do it. Just then, it didn't detect my sound device. Again, the best way is to start with emulators/wine-devel and modify its Makefile in similar way how it is done with ALSA and OSS. I will probably back to this someday, but first, I have to update my version of emulators/wine-proton.


----------



## Deleted member 67862 (May 31, 2022)

thindil said:


> Build wine with PulseAudio is possible, I was able to do it.


How? The only audio options in the menu config is ALSA and OSS.

EDIT: I assume its by removing the "--without-pulse" line in the Makefile. I didn't think about it but building this with Pulse support is going to be just as painful as with ALSA since I have to make a 32-bit package to install with the pkg32.sh script..


----------



## thindil (May 31, 2022)

I modified Makefile of the emulators/wine-devel package to have three options (OSS, ALSA and PulseAudio) instead of two (OSS and ALSA).

The build is a lot easier if you use ports-mgmt/poudriere-devel. Then it is just six commands:

```
# Create a new ports collection
sudo poudriere ports -c
# Create a jail for build 32-bit version of wine
sudo poudriere jail -c -v 13.1-RELEASE -a i386 -j 13i3865
# Create a jail for build 64-bit version of wine
sudo poudriere jail -c -v 13.1-RELEASE -a amd64 -j 13amd64
# Here command to edit the Makefile of port or setting its options with
# configuration file of poudriere
# Build the 64-bit version of the port, use binary packages to speed up
sudo poudriere bulk -j 13amd64 -b latest emulators/wine-devel
# Build the 32-bit version of the port, use binary packages to speed up
sudo poudriere bulk -j 13i386 -b latest emulators/wine-devel
```


----------

