ValveSoftware / Proton

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

Divinity Original Sin 2 appid 435150 #413

Open FreeLikeGNU opened 6 years ago

FreeLikeGNU commented 6 years ago

D:OS2 will not start after installation (SupportTool.exe). Some users report that using the EoCApp.exe and WINE dll override xaudio2_7 allows the game to run, but for me, I get only as far as a black screen and the game cursor with those modifications.

OS: Ubuntu 18.04 bionic Kernel: x86_64 Linux 4.15.0-32-generic Resolution: 1920x1080 DE: XFCE WM: Xfwm4 CPU: Intel Core i5-3470 @ 4x 6.3GHz GPU: GeForce GTX 1070 driver 396.54 RAM: 2030MiB / 15989MiB

Kron4ek commented 6 years ago

@Rotscha thanks for the patch. Works perfectly.

MinIsMin commented 6 years ago

@Rotscha Patch is working for DE. The game is only using ~25% of each core all the time (10 FPS ingame).

Edit: Divinity on Wine seems to use less threads than on Windows. (atleast with i5)

lieff commented 6 years ago

There also crash on alt+tab.

lieff commented 6 years ago

My bad, I've not checked that Proton prefix do not contains dxvk overrides for this game. After I setup dxvk overrides - dxvk hud showed and colors are correct for progress bar and books.

notfood commented 6 years ago

I tried with vanilla wine+patch, wine-staging-nine+patch, proton+patch

I get the same error in them all from a clean prefix, doesn't matter if I use DXVK or not. Am I missing something else? I only set the FakeFullScreen to 1. Isn't that all is needed to get it to run from a clean prefix?

Hangs at SetThreadIdealProcessorEx

Kron4ek commented 6 years ago

@notfood Are you sure you patched Wine correctly?

FreeLikeGNU commented 6 years ago

@Kron4ek I tried your patched exe and had similar results as before:

i5-3470 CPU GTX 1070 DXVK .70 - fail i7-2670QM GTX 670MX DXVK.70 - runs

wine debug output:

https://gist.github.com/FreeLikeGNU/38a1e5ee4535b76dff96c1f18770c075

notfood commented 6 years ago

Yes, certain the patching works. It does change the result a bit. I get audio, it plays short and the window no longer becomes unresponsible. But then after a moment, it hangs again and writes a dmp file. Previously it'd just hang with no audio.

lieff commented 6 years ago

@notfood You use configure --enable-win64 ? Is there any warnings? Also I have problem with startup video in clean prefix (it's black, but not crashes). May be this related, xaudio_2_7 helps with startup video in my case.

lieff commented 6 years ago

Hmm, I remove xaudio_2_7 override and still no problem with video. Not sure what cause black video earlier then.

notfood commented 6 years ago

I actually use a modified PKGBUILD file to create a package to install under ArchLinux. I'm certain the patching is correct.

MinIsMin commented 6 years ago

With i5 4210U DOS2 (DE) only uses core 0 and 1 and hangs infinitely when assigning more cores (regardless the wine version w/ or w/o the patch).

div

Can someone please verify this?

ksterker commented 6 years ago

@notfood I had similar symptoms as you describe after applying the patch to wine. The Larian jingle would play, but screen remained black and after hitting CTRL+C it would create a crash dump. As I'm using the steam version of the game, I verified the installation, upon which it re-downloaded about 4GB. And now it's working just fine!

@Rotscha: my CPU (i5-4460) has 4 physical cores and no hyper threading. Did not run without the patch.

notfood commented 6 years ago

No success... it redownloaded one file but the result is the same.

Sethox commented 6 years ago

This is the output when I skip Steam and put the executable on a WINEPREFIX: https://pastebin.com/raw/sdL2CGMB

These output only prints out when an application with DXVK fails to run for me. I don't think this output will help anything though (it's output for my test earlier, this one is fresh though).

FreeLikeGNU commented 6 years ago

https://source.winehq.org/patches/ does not seem to have a search function but I see @Rotscha's patch in there awaiting approval. :D

Watching for approved commit of @Rotscha's patch or any other adjustments to thread affinity:

https://source.winehq.org/git/wine.git/?a=search&h=HEAD&st=commit&s=affinity.%2Bthread%7Cthread.%2Baffinity%7Cthread.%2Bmask&sr=1

Rotscha commented 6 years ago

Thanks everyone for testing. The patch was merged into upstream wine, just in time to make it into the new 3.16 release :)

notfood commented 6 years ago

Tried with 3.16 release, no success...

Sound plays, the cracks, then hangs.

Hangs at this:

006e:fixme:thread:SetThreadIdealProcessorEx (0xfffffffffffffffe 0x550fdf0 (nil)): stub

notfood commented 6 years ago

I got it to run by installing xact and vcrun2015. Sounds cracks all the time for some reason though, does that happen to everyone else?

FreeLikeGNU commented 6 years ago

With patch, I was getting black screen with music then I deleted my ~//Documents/Larian Studios/Divinity Original Sin 2 Definitive Edition/ folder and made a fresh prefix. The game runs great! I had high frame rate but some stutter until I disabled vsync in the game. It runs great now over 110fps with max settings! Thank you @Rotscha for your awesome patch and everyone who tested along the way!

@notfood I did not encounter sound issues with a fresh prefix + DXVK .71 (no xact or vcrun)

I compiled only 64bit version using the following these very concise instructions: https://www.reddit.com/r/wine_gaming/comments/9fg4jn/is_anyone_successfully_running_witcher_3_on/e5w9sv2/

edit: forgot to clarify, I compiled the 3.16 source that includes the upstream patch

eNTi commented 6 years ago

i've got sound crackling as well... using alsa not pulse.

AL lib: (EE) ReleaseThreadCtx: Context 0x7fb3ac08fd00 current for thread being destroyed, possible leak!

notfood commented 6 years ago

I'm using Pulse and I get a lot of cracking. I tried messing with default.pa

load-module module-udev-detect tsched=0
default-fragments = 5
default-fragment-size-msec = 2

These settings seem to reduce the cracking but they're still there.

Kron4ek commented 6 years ago

Xact reduce crackling a bit.

But you have to install it manually, cause winetricks won't install 64-bit xact.

FreeLikeGNU commented 6 years ago

@eNTi Audio sounds good for me and I don't see the AL lib message unitl I quit the game from the main menu: AL lib: (EE) ReleaseThreadCtx: Context 0x7fd604026400 current for thread being destroyed, possible leak!

Ubuntu 18.04.1 pulseaudio 11.1 (audio stereo dulplex) https://gist.github.com/FreeLikeGNU/aa22b62dbcabb393160fb5304ecd0cc4

Audio device: Realtek ALC898 from LSHW: *-multimedia description: Audio device product: 7 Series/C216 Chipset Family High Definition Audio Controller vendor: Intel Corporation physical id: 1b bus info: pci@0000:00:1b.0 version: 04 width: 64 bits clock: 33MHz capabilities: bus_master cap_list configuration: driver=snd_hda_intel latency=0 resources: irq:35 memory:f7230000-f7233fff

edit @notfood : what happens if you switch pulseaudio out modes (such as: from stereo to stereo duplex) after the game has started?

yaffa7 commented 6 years ago

Using the above renaming strategy doesnt work for me. In fact. the game doesnt even start. Anyone else not able to get the game to launch?

eNTi commented 6 years ago

Xact reduce crackling a bit.

But you have to install it manually, cause winetricks won't install 64-bit xact.

winetricks -q xact works for me on an 64 bit prefix.

i had the game running with wine-staging 3.15 before and that had no crackling...

Kron4ek commented 6 years ago

winetricks -q xact works for me on an 64 bit prefix.

Yes it works, but installs only 32-bit libraries (into syswow64) of xact, but skips 64-bit ones. This is on latest winetricks from github. So as i said, you have to install it manually.

But maybe it works for 64-bit too on old version of winetricks.

Rotscha commented 6 years ago

@Kron4ek is right. Xact via winetricks installs 32bit dlls only.

The game actually doesn't really need them on Wine anyways. If you still get a blackscreen at startup, set xaudio2_7 to disabled in winecfg. The game should then start just fine. Maybe it even fixes the crackling sound (I personally don't have that issue, so I can't say for sure).

notfood commented 6 years ago

Disabling every xaudio2_* fixes the crackling for me. Thank you!

eNTi commented 6 years ago

disabling xaudio2_7 seems to be working for me as well.

ekkia commented 6 years ago

So...what is necesary for playing this game today?? I'm lost! Only xaudio2_7 disabling?? The patch is needed?? We still need to rename exes??? it's confusing. I'm trying to run steam version in KDE Neon with Nvidia970 and 396.54 drivers. Thank you!

Rotscha commented 6 years ago

Great @eNTi @notfood

@ekkia As it stands, to be on the safe side, all that is needed is

That should be all, I think.

xrishox commented 6 years ago

Is there a way to get this to work inside of steam at this point? I've got it running perfectly using wine 3.16, but it won't let me play online with my friend. I've done all of the renaming tricks and linking stuff etc, but it just does not work no matter what I do.

smilligan93 commented 6 years ago

@xrishox I was able to get it working through steam. I haven't tried connecting with friends (no friends are online).

DO NOT JUST COPY/PASTE THE COMMANDS, READ EVERYTHING!!!

To play this through steam you need to make a custom Proton folder in your steamapps/common directory (on ubuntu 18.04 it is "~/.steam/steam/steamapps/common"). Navigate there cd ~/.steam/steam/steamapps/common

Copy the original Proton folder to a custom one: cp -r "Proton 3.7" "Proton 3.7 Custom"

rename "Proton 3.7" to "Proton 3.7 Original" mv "Proton 3.7" "Proton 3.7 Original"

Now we need to replace the files in the Proton 3.7 Custom directory with wine 3.16-staging. On my system, wine-staging is in "/opt/wine-staging". You'll have to figure out where your install is. Note the names end with "/", that is important with rsync rsync -avhP "/opt/wine-staging/" "Proton 3.7 Custom/dist/"

Finally, link the custom Proton folder to what steam is expecting ln -s "Proton 3.7 Custom" "Proton 3.7"

Now we have a Proton that will use Wine-Staging 3.16 (as this is the version with the patch)

Now to rename the files in "Divinity Original Sin 2" (if you haven't done this yet) cd "Divinity Original Sin 2"

Link DefEd bin folder to top level bin folder mv bin bin.bak ln -s DefEd/bin bin

Copy EoCApp.exe to SupportTool.exe cd bin mv SupportTool.exe SupportTool.exe.bak cp EoCApp.exe SupportTool.exe

Now you should be able to run Divinity Original Sin 2 through steam. You may need to force the compatibility tool in the Steam Play settings to use Proton 3.7-6. If this doesn't work for anyone please let me know.

Also, DO NOT VERIFY FILES AFTER DOING THIS. This will hose the "Proton 3.7 Custom" directory. Before you verify, make sure to put the original Proton folder in place cd ~/.steam/steam/steamapps/common rm "Proton 3.7" ln -s "Proton 3.7 Original" "Proton 3.7" And put DoS2 folder back in order cd "Divinity Original Sin 2" cd bin mv SupportTool.exe.bak SupportTool.exe cd .. rm bin mv bin.bak bin

notfood commented 6 years ago

Isn't there a way to make steam recognize multiple proton instalations?

vquand commented 6 years ago

@smilligan93 Dear Smilling, I followed your instruction and I got the game working, however there are some issues

I have no idea why it is happening, as I can play single player perfectly fine ...

My spec (I think it is the cause for all of this, also according to everyone's posts above)

If you need any information, just ping, thanks

eloquenza commented 6 years ago

Interestingly enough, even after using @Rotscha's patch, and listening to @notfood's suggestions about installing xact and vcrun2015, the game hangs at the same function call as he described:

fixme:thread:SetThreadIdealProcessorEx (0xfffffffffffffffe 0x550fdf0 (nil)): stub

After playing around a bit, I can confirm that the Classic version of this game runs but the Definitive Edition does not. That still hangs at the black screen, but plays a little bit of the Larian Studios intro sound. After that, unresponsive for a while, then writes a minidump.

I tried disabling all kinds of xaudio2_* permutations. I am not sure, how to provide more information currently, but maybe after the exams I can start debugging around. If somebody has a good idea, where to look or what to try, please ping.

notfood commented 6 years ago

Make sure you run it in the same directory where EoCApp.exe is located.

eloquenza commented 6 years ago

Mh, I was sure I have done that, but apparently not. Thanks for the advice! Running the Definitive Edition now works, but only when I disable xaudio2_7.

notfood commented 6 years ago

Game works perfectly for hours but after some long time sound becomes corrupted, does it happen to anyone else? It's a mild annoyance because restarting it fixes the issue.

Books and spell icons all work for me. Finished Fort Joy with no issues other than the sound turning strange after a few hours.

Sethox commented 6 years ago

@smilligan93 Dear Smilling, I followed your instruction and I got the game working, however there are some issues

* The game cannot connect to "Steam" : no online game, cannot find Steam friends, etc.

* It cannot load Mods

* It doesn't sync my save games from Steam Cloud

I have no idea why it is happening, as I can play single player perfectly fine ...

My spec (I think it is the cause for all of this, also according to everyone's posts above)

* Ryzen 3 1200 (SMT disabled)

* NVIDIA 1050TI, nvidia-driver 390

If you need any information, just ping, thanks

There is a link for the steam workshop to work, a new update for proton has been added to suppose to solve it. By link I mean that proton is sort of "isolated".

eloquenza commented 6 years ago

Game works perfectly for hours but after some long time sound becomes corrupted, does it happen to anyone else? It's a mild annoyance because restarting it fixes the issue.

Books and spell icons all work for me. Finished Fort Joy with no issues other than the sound turning strange after a few hours.

I do have that too - interesting enough, after a longer play time, the corruption disappears and the sound is normal again. I, however, have this problem in Path of Exile too - where I can fix it by just selecting another sound device, which is not possible in Divinity: Original Sin 2.

Kzimir commented 6 years ago

Hello,

The game works but when i choose the mod for the campaign (story mod, exploration mod or other), the loading bar stay empty during very long time. The message popup in the loading screen appears randomly and there is the music so the game has not crashed. It really the loading bar which stay empty and don't load...

apokolokyntosis commented 6 years ago

Game works perfectly after following @smilligan93 instruction. Downloading Mods using the steam workshop didn't work though, so I manually created a folder called "Mods" in /home/USER/Documents/Larian Studios/Divinity Original Sin 2 Definitive Edition/Mods and copied the downloaded Mods from /home/USER/.local/share/Steam/steamapps/workshop/content/435150 to the new folder.

eloquenza commented 6 years ago

Game works perfectly for hours but after some long time sound becomes corrupted, does it happen to anyone else? It's a mild annoyance because restarting it fixes the issue.

Books and spell icons all work for me. Finished Fort Joy with no issues other than the sound turning strange after a few hours.

Hey @notfood, I have fixed that issue for me and I want to see if the source is the same. Are you using Pulseaudio and a sound setup with more than 2 channels? I had 6 channels because I have a 5.1 sound system. After switching to 2 channels in Pulseaudio, I no longer have corrupted sound, even after plenty hours of playing.

eNTi commented 6 years ago

Yesterday the sound crackling came back... using lutris running on esync-wine-staging-pba-3.16-nopulse and dxvk 0.80 with xaudio2_7 disabled.

notfood commented 6 years ago

@eloquenza I have the same setup, I'll try setting it to two channels but that's undesirable system wide...

eloquenza commented 6 years ago

@eloquenza I have the same setup, I'll try setting it to two channels but that's undesirable system wide...

Believe me, I don't like it either. I automatically change the channels, restart Pulseaudio and then start the game in a script, which changes the channels back after the game has exited. This solution helped also helped in other games. Maybe there is a deeper underlying issue.

Roliga commented 6 years ago

@eloquenza @notfood Perhaps you could try the module-remap-sink module in pulseaudio. It lets you create a virtual sound device with 2 channels and map those 2 channels to any of the 6 channels on your 5.1 output. You can set that up with something like this on the command line:

pactl load-module module-remap-sink master=MASTER_SINK_NAME channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right remix=no

Replace MASTER_SINK_NAME with the name of your 5.1 output. You can find that name with pactl list sinks short.

More info about the module in the pulseaudio docs.

notfood commented 6 years ago

@Roliga I followed your advice and sound corruption happened again, but this time I can switch between sinks and the game fixes itself, but after a while it corrupts again. No need to restart though, so that's a plus.