ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.61k stars 1.07k forks source link

Banished (242920) #322

Open juliotux opened 6 years ago

juliotux commented 6 years ago

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

kisak-valve commented 6 years ago

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.

qqwa commented 6 years ago

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

laloch commented 6 years ago

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

jackfms commented 6 years ago

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

laloch commented 6 years ago

... , 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.

juliotux commented 6 years ago

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#

Gfurst commented 6 years ago

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?

qqwa commented 6 years ago

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

Gfurst commented 6 years ago

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.

tpanajott commented 6 years ago

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!

Gfurst commented 6 years ago

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.

stratus-ss commented 6 years ago

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

laloch commented 6 years ago

@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.

cRaZy-bisCuiT commented 6 years ago

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

stratus-ss commented 6 years ago
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:


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
stratus-ss commented 6 years ago

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...

nstgc commented 6 years ago

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.

cRaZy-bisCuiT commented 6 years ago

...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. :'/

stratus-ss commented 6 years ago

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

ghamlin219 commented 6 years ago

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.

NoXPhasma commented 5 years ago

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

flibitijibibo commented 5 years ago

Sounds about right - try a build with FFmpeg enabled:

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

NoXPhasma commented 5 years ago

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

kisak-valve commented 5 years ago

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

NoXPhasma commented 5 years ago

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

NoXPhasma commented 5 years ago

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

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

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
flibitijibibo commented 5 years ago

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

NoXPhasma commented 5 years ago

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
flibitijibibo commented 5 years ago

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.

NoXPhasma commented 5 years ago

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.

flibitijibibo commented 5 years ago

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.

kisak-valve commented 5 years ago

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 pinnedlibs* folders and Steam will regenerate the folder on the next start.

NoXPhasma commented 5 years ago

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.

JanGalek commented 5 years ago

System Information

Symptoms

juliotux commented 5 years ago

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

NoXPhasma commented 5 years ago

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.

flibitijibibo commented 5 years ago

FFmpeg support still isn’t built in, you’ll still have to rebuild. You can verify this with ldd.

NoXPhasma commented 5 years ago

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
NoXPhasma commented 5 years ago

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.

peterson432 commented 5 years ago

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.

kaimast commented 5 years ago

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 ?

klemenoslaj commented 4 years ago

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

kisak-valve commented 4 years ago

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.

klemenoslaj commented 4 years ago

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.

kisak-valve commented 4 years ago

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.

klemenoslaj commented 4 years ago

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.

revanmj commented 2 years ago

Banished (Steam version) run via Proton 7.0-4 doesn't take any input from virtual keyboard on a Steam Deck.