Proton: Banished (242920)

Created on 23 Aug 2018  路  46Comments  路  Source: ValveSoftware/Proton

Banished is working perfectly via Proton. This game is (I think) in OpenGL. It should be whitelisted.

System information: https://gist.github.com/juliotux/3a0f54caaa38bb349fb2229d0d520157

Game compatibility - Unofficial XAudio2

Most helpful comment

Just noticed that it had indeed no sound... xact fixed it.
@Gfurst You need to run this command:
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/242920/pfx winetricks xact

All 46 comments

Hello @juliotux, please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

When Banished runs in fullscreen it will result in a black screen when the mouse leaves the window. i3wm and dual monitor setup. Haven't tried with a non tiling window manager. Works fine in window mode though.

System information: https://gist.github.com/qqwa/9557dd5c5d22f84134b950463c955b9f

Audio doesn't work here. The game is completely silent.
My sysinfo: https://gist.github.com/laloch/e160eb5d347f02f87d970695eef42264

Played for about 45 minutes, and worked well for me. No issues at all.

Regarding the audio issue @laloch mentioned, the game did indeed start with no audio. Toggled output source and then back to primary, and audio started. Probably a bug with Pulse.

Sysinfo: https://gist.github.com/jackfms/82f4b688d19bd27e26ff3bfce44bfd22

... , the game did indeed start with no audio. Toggled output source and then back to primary, and audio started.

Can't confirm. Pulseaudio shows an active source, but the game stays silent no matter what I do with the source.

Looks like that, for some users, xact is needed, as reported in the community driven survey.
https://docs.google.com/spreadsheets/d/1DcZZQ4HL_Ol969UbXJmFG8TzOHNnHoj8Q1f8DIFe8-8/htmlview?usp=sharing&sle=true#

Same for me, looks to work perfectly graphically, even better than on windows since fps spiked up so fast, tried it in the past with wine and had several issues. But still no sound, what is this about needing xact and how do we get it?

Just noticed that it had indeed no sound... xact fixed it.
@Gfurst You need to run this command:
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/242920/pfx winetricks xact

You're right, thanks worked well, however a little strange issue, sound only seems to be coming out on one side of the stereo. And also worth noting, the compatdata folder is relative to steam library.

Can confirm @qqwa solution. Running a pretty clean installation of Antergos. Had no audio, ran winetricks and installed xact and now have audio. Thank you!

Oh and let me correct myself too, I said that there was only audio on one side, I think it was actually just a bad connection on the cable, so forget about that.

Doesn't work on Arch 64-bit. I get an error message with Proton 3.7-4 Beta

A fatal error has occurred and the application cannot continue.

InputDevice: The application failed to create a DirectInput interface

I get this error whether or not I have used the WINEPREFEX with xact or not

System info gist: https://gist.github.com/stratus-ss/73e90ae7dcc42caf324190ea36e979cc

Log gist: https://gist.github.com/stratus-ss/936415e6ccf3799e3d7b5e516d97de9d

@stratus-ss: Works for me on Arch 64-bit. I have only two issues with the game: 1) it needs manual installation of xact in order for the audio to work. 2) Proton can't handle screen resolution changes at all.

Runs perfectly fine with Arch & x64 using ...
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/242920/pfx winetricks xact
... like qqwa described.

stratus@stratus-desktop ~  $ WINEPREFIX=/big_space/Steam/steamapps/compatdata/242920/pfx winetricks xact
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20180815 - sha256sum: 9343f9174146c0fa4d34e18e05269ae772a45ba78e3d8786829fa21895f6f7f4 with wine-3.13 (Staging) and WINEARCH=win64
Executing w_do_call xact
xact already installed, skipping

stratus@stratus-desktop ~  $ uname -r
4.18.5-arch1-1-ARCH

I deleted the game and am redownloading it right now. Not sure exactly what the problem is

EDIT: nope same problem on a fresh uninstall/reinstall of banished:

```A fatal error has occurred and the application cannot continue.

InputDevice: The application failed to create a DirectInput interface

I see this in the logs now though 

119864.393:0008:0009:trace:module:load_builtin_dll Trying built-in L"dinput.dll"
119864.393:0008:0009:err:module:load_builtin_dll failed to load .so lib for builtin L"dinput.dll": /big_space/Steam/steamapps/common/Proton 3.7 Beta/dist/bin/../lib64/wine/dinput.dll.so: undefined symbol: SDL_JoystickGetVendor
119864.393:0008:0009:warn:module:load_dll Failed to load module L"C:\windows\system32\dinput.dll"; status=c000007a
119864.393:0008:0009:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\windows\system32\dinput.dll"
119864.393:0008:0009:err:ole:CoGetClassObject no class object {25e609e0-b259-11cf-bfc7-444553540000} could be created for context 0x1
119864.393:0008:0009:err:dinput:DirectInput8Create CoCreateInstance failed with hr = 0x80070005

```

I was able to get this working on a laptop with Optimus graphics (gtx 1050)

I did have to do

protontricks 242920 xact

So I am not sure what is the difference between the two systems. They are both running Arch from the same repos...

I only played a few minutes, but so far it runs perfectly. For what its worth, I've never had trouble with this game. Meaning perfect out of the box.

...still it's a shame the guy cancelled the native port. He wrote his own engine - props for that! Still it wouldn't have been so much trouble if he would have used SDL. :'/

So I dont get a CTD anymore with protno 3.7-5. I haven't played long enough to comment on stability just noted that the game doesnt crash immediately for me anymore

I tried the WINEPREFIX solution mentioned above to no avail, ended up finding protontricks that stratus mentioned on github soon after.

Here is what worked for me:

Fetch protontricks from github and mark executable

wget https://raw.githubusercontent.com/Sirmentio/protontricks/master/protontricks && chmod +x protontricks

move protontricks to /usr/bin so it can be ran from terminal

sudo mv protontricks /usr/bin/protontricks

setup xact for banished on steam

protontricks 242920 xact

run winecfg for banished prefix using protontricks

protontricks 242920 winecfg

click on libraries and add xact and xaudio2_7, leave them with native, builtin
https://i.imgur.com/lvguBoG.png

this is with Ubuntu 18.04, WINEPREFIX solutions did not work for me in this case, but this did.

With Proton 3.16-5 and FAudio Banished now crashes on main menu. @flibitijibibo

System Info: https://gist.github.com/NoXPhasma/c69b8988a35383bc6f9a452872dbdfb2
Proton Log: steam-242920.log

Sounds about right - try a build with FFmpeg enabled:

https://github.com/FNA-XNA/FAudio/wiki/FAudio-for-Proton

My distribution does not offer SDL 2.0.9, only SDL 2.0.8.

Possible line of interest: INFO: Assertion failed: 0 && "xWMA is not supported!"

So, I was able to build FAudio with ffmpeg, but with SDL 2.0.8, so no idea if that is a problem. Anyway, Banished doesn't crash, connects to pulseaudio but doesn't play any audio.

steam-242920.log

So, I build FAudio again, now with debug and set FAUDIO_LOG_ERRORS=1 to the launch parameters. Now I get this error message:

```INFO: ERROR: WMAv2 codec not supported!
WARN:

Assertion failure at FAudio_FFMPEG_init (/home/noxp/build/FAudio/src/FAudio_ffmpeg.c:83), triggered 1 time:
'0 && "WMAv2 codec not supported!"'

[steam-242920.log](https://github.com/ValveSoftware/Proton/files/2669553/steam-242920.log)

I have no idea why it says that ffmpeg would not support wmav2, when it is clearly in the list of codecs:

$ ffmpeg -codecs | grep wma
D.A..S wmalossless Windows Media Audio Lossless
D.A.L. wmapro Windows Media Audio 9 Professional
DEA.L. wmav1 Windows Media Audio 1
DEA.L. wmav2 Windows Media Audio 2
D.A.L. wmavoice Windows Media Audio Voice
```

Seems there's a problem with your libavcodec, here's the line that's troublesome:

https://github.com/FNA-XNA/FAudio/blob/master/src/FAudio_ffmpeg.c#L75

As I wrote, this is the official package of Ubuntu 18.04. Of course I could build ffmpeg on my own, but this won't help anyone beside me. Also this is the output of the build config of ffmpeg:

ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
  configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc

Maybe the Steam runtime is causing a problem - if they ship their own libavcodec that's likely getting priority over what's on your system.

That could be the reason, the Steam Runtime ships libavcodec indeed. However, because of ancient libs the Steam client needs, I can't run it without Steam runtime.

There's a way to pin certain libraries to avoid this, but I don't entirely remember what the process is... a brute-force method would be to simply delete the FFmpeg files from the runtime directories. I don't know what depends on those files though, so maybe keep backups just in case.

You can add a symlinks to what you need in <steam dir>/ubuntu12_32/steam-runtime/pinned_libs_* and if there's a problem you can delete the pinned_libs_* folders and Steam will regenerate the folder on the next start.

I moved all libva* files from the steam-runtime/amd64/usr/lib/x86_64-linux-gnu folder, without success. I still get the same error message.

System Information

  • GPU: AMD Radeon R9 390
  • Driver/LLVM version: Mesa 18.1.0-rc4
  • Kernel version: 4.18.19-041819-generic
  • Link to full system information report as Gist:
  • Proton version: 3.16-4 / 3.16.5 Beta

Symptoms

  • Audio don't work (log)
  • Game work with Proton 3.16-4, but crash with Proton 3.16.5 Beta (log)

3.16-6 game works again, but no sound again.

By the size of the libFAudio.so I guess it's build with FFMpeg support this time. But is still unable to use the wma codec.

FFmpeg support still isn鈥檛 built in, you鈥檒l still have to rebuild. You can verify this with ldd.

Okay.

I've built latest FAudio again with ffmpeg and debug, this is what it says now:

WARN: 

Assertion failure at FAudio_FFMPEG_init (/home/noxp/build/FAudio/src/FAudio_ffmpeg.c:98), triggered 1 time:
  '0 && "FFmpeg codec not supported!"'

WARN: 

Assertion failure at FAudioSourceVoice_SubmitSourceBuffer (/home/noxp/build/FAudio/src/FAudio.c:1889), triggered 1 time:
  '(voice->src.ffmpeg != ((void *)0) && pBufferWMA != ((void *)0)) || (voice->src.ffmpeg == ((void *)0) && pBufferWMA == ((void *)0))'

Proton Version: 3-16-6
steam-242920.log

$ ffmpeg -codecs | grep wma
ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
  configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
 D.A..S wmalossless          Windows Media Audio Lossless
 D.A.L. wmapro               Windows Media Audio 9 Professional
 DEA.L. wmav1                Windows Media Audio 1
 DEA.L. wmav2                Windows Media Audio 2
 D.A.L. wmavoice             Windows Media Audio Voice

After I've installed this FFMPEG 4 PPA and build FAudio with FFMPEG support against it, audio works!

At least music and environment audio works. UI audio still won't work.

I haven't played long enough to comment on stability just noted that the game doesn't crash immediately, it works fine on architecture 64 Bit.

Audio still does not work for me with the most recent proton.

Also the performance is pretty bad, but that's probably because the game is not optimized that well ?

I am just testing this on one of super old machine of mine. Crashing on startup
https://gist.github.com/klemenoslaj/1e2e8d5891663847eaefb0874afa044d

Hello @klemenoslaj, these are the lines of interest from your log: err:vulkan:wine_vk_instance_load_physical_devices Failed to enumerate physical devices, res=-3
err:vulkan:wine_vkCreateInstance Failed to load physical devices, res=-3

This tells us that Vulkan failed to initialize on your system. Please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

Hello @klemenoslaj, these are the lines of interest from your log: err:vulkan:wine_vk_instance_load_physical_devices Failed to enumerate physical devices, res=-3
err:vulkan:wine_vkCreateInstance Failed to load physical devices, res=-3

This tells us that Vulkan failed to initialize on your system. Please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

@kisak-valve thanks for super fast reply :+1:
Here is the system info: https://gist.github.com/klemenoslaj/abc726dd235671a9c4d574f37e5a21f9

I have to mention as well that on a newer linux machine everything works as a charm with Manjaro Linux as well. Could be old hardware, I can't say.

So, the Intel Sandybridge generation GPU in your system does not support Vulkan.

You can try adding PROTON_USE_WINED3D=1 %command% to the game's launch options to tell Proton to use the DirectX to OpenGL render path, but this considered unsupported and comes with a significant performance penalty.

So, the Intel Sandybridge generation GPU in your system does not support Vulkan.

You can try adding PROTON_USE_WINED3D=1 %command% to the game's launch options to tell Proton to use the DirectX to OpenGL render path, but this considered unsupported and comes with a significant performance penalty.

That explains working newer machine :+1:

With the options provided it indeed works, thanks a lot. To my surprise it even appears to be playable.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

raikirii picture raikirii  路  3Comments

lumni1968 picture lumni1968  路  3Comments

ArekPiekarz picture ArekPiekarz  路  3Comments

BLaDZer picture BLaDZer  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments