Hi. From the log, it seems that your installation of Steam is corrupted. It can't find a bunch of wine dlls. Please reinstall the Steam client and try again.
@zzhiyi I'm at work so I'll have to test my personal laptop later, but I didn't have steam installed on my work laptop (Dell Precision 5530) so I installed steam / mono, updated, rebooted, enabled proton logging and tried to launch it on this laptop. The log looks similar, so if it is due to missing steam files, maybe the arch steam package is broken.
System Information:
GPU: Intel(R) UHD Graphics 630
Driver/LLVM version: 3.0 Mesa 19.0.0
Kernel version: 5.0.3-arch1-1-ARCH
Link to full system information report as Gist: systeminfo.txt
Proton version: 3.16-8 Beta
Steam log attached:
steam-18110.log
Edit: Also the error popup

I tried it again on my personal laptop - I updated my system, uninstalled the steam package, and deleted ~/.steam and ~/.local/share/Steam. Rebooted and cleaned the package cache (so it would redownload the steam package), then reinstalled the steam package. Logged back in and enabled Steam Play for all games, restarted Steam and installed Shattered Horizon, enabled logging, and got the same error (re-posting systeminfo since things are updated some, yay rolling release):
System Information:
GPU: GeForce GTX 1050/PCIe/SSE2
Driver/LLVM version: 4.6.0 NVIDIA 418.56
Kernel version: 5.0.4-arch1-1-ARCH
Link to full system information report as Gist: systeminfo.txt
Proton version: 3.16-8 Beta
Proton Log:
steam-18110.log
Error popup (I believe this popup without the extra info is what I originally got on this laptop, so no change there):

I cloned the repo and checked out tags/proton-3.16-8, got the submodules, and built a proton-localbuild using make install, giving me a proton-localbuild - this still seems to have the same missing .so as the provided proton build, such as
proton-localbuild/dist/lib/wine/apex_release.dll.so
proton-localbuild/dist/lib/wine/physxloader.dll.so
proton-localbuild/dist/lib/wine/nxcooking.dll.so
proton-localbuild/dist/lib/wine/fmod_event.dll.so
proton-localbuild/dist/lib/wine/fmodex.dll.so
and others. Only change in debug info from last comment is using proton-localbuild made from tags/proton-3.16-8 using the vagrant build from make install.
Proton log: steam-18110.log
The problem is, somehow I can't find this game on Steam client, nor on browser. So I can't test it at the moment. The error popup suggest different cause than missing dlls.
@zzhiyi IIRC the game was removed when the Angry Birds people bought the gaming arm of FutureMark, since I guess they weren't interested in the game. There are still ~$2 keys on g2a and floating around on various sites though.
I would be happy to acquire a key and email it to you if that would help - this is one of my all time favorite games so I would love to be able to play it on linux.
Don't you worry. I am one of the staffs. Here are some of the progress so far:
First installing steam games with appid on terminal when the client is already launched if the game can't be searched.
$ steam steam://install/18110
The the game checks for dll version properties(first failed check, d3d10.dll, see ~/.local/share/Steam/steamapps/compatdata/18110/pfx/drive_c/users/steamuser/Local Settings/Application Data/Futuremark/Shattered Horizon/crash_dumps/). And because [email protected] currently doesn't generate version info for its dlls so the game exits.
Switching to wined3d goes a bit further. Then it failed at CreateQuery, because wined3d doesn't support D3D11_QUERY_SO_STATISTICS and others so far. And there are a bunch of D3D methods missing.
I suggest waiting for dxvk to get its dll versions and see how it goes.
After dxvk gets dll version properties. It will need native d3dcompiler_47 to go further.
It stops at D3DX10GetImageInfoFromMemory returning E_NOTIMPL after filling dxvk dlls with version properties.
Thanks for triaging the dll stuff, is there a ticket I can follow along for this next one?
This is the ticket. The next one will be tough. But you can use native d3dx10_43 dll to work around it, if you are interested in getting it working.
Gotcha, how would I go about doing that? By native dll do you mean copying from a working windows installation?
Gotcha, how would I go about doing that? By native dll do you mean copying from a working windows installation?
There is a script called protontricks. See https://github.com/ValveSoftware/Proton/issues/2058 for example. protontricks d3dx10 is the command you want. Note, I haven't gone that far to test whether there are more bugs.
Unfortunately, I haven't been able to get proton to build with the dll version patch, I'm assuming I'm going to need that first. I tried by switching origin to doitsujin's repo and checking out master, as well as applying the relevant PR as a patch on top of the ValveSoftware origin commit that's currently pinned as a submodule here. Any tips?
@zzhiyi I noticed that the patch has finally made it into an official proton build, so I redownloaded the game and updated proton, did protontricks 18110 d3dx10, and the game launches! Adjusting graphics works, the menus work, menu sound seems to be fine.
I can't actually get into game yet though, trying to start a singleplayer game with bots results in "disconnected from server" (I guess singleplayer works by starting a server locally). Multiplayer doesn't show any servers (though that may be just because none are on, though it seems like there's always 1 these days), so I'm wondering if it's network related (nss/libnss related?)
My log file may be of use, though it's very large this time:
steam-18110.log
I've been trying this one pretty regularly, as it is one of my favourites as well. The following error is new to me (Proton 4.2-4, steam runtime, Arch Linux + R9 Fury):

Transcript:
Application Crash: std:exception
shattered_horizon.exe build: 54
main_vsh failed: Invalid data
(D3DXERR_INVALIDDATA):
unknown filename:1:333: error: syntax error,
unexpected KW_CBUFFER
Shattered Horizon encountered a fatal error and will
be terminated.
Hello @MayeulC, please add PROTON_LOG=1 %command% to the game's launch options and drag and drop the generated $HOME/steam-$APPID.log into the comment box.
Hello @kisak-valve, here is the log:
steam-18110.log
This is likely the most relevant part:
8478.733:0027:0028:trace:loaddll:load_native_dll Loaded L"Z: \\data\\SteamLibrary\\steamapps\\common\\Shattered_Horizon\\client_exe\\ATIMGPUD.DLL" at 0xf820000: native
8478.733:0027:0028:fixme:driver:D3DKMTOpenAdapterFromHdc (0x32f458): stub
ERROR: Could Not Get Primary Adapter Handle^M
8478.733:0027:0028:trace:loaddll:free_modref Unloaded module L"Z: \\data\\SteamLibrary\\steamapps\\common\\Shattered_Horizon\\client_exe\\ATIMGPUD. DLL" : native
8478.734:0027:0028:trace:loaddll:load_builtin_dll Loaded L"C: \\windows\\system32\\bcrypt.dll" at 0xabfe0000: builtin
8478.734:0027:0028:trace:loaddll:load_builtin_dll Loaded L"C: \\windows\\system32\\crypt32.dll" at 0xabf10000: builtin
8478.734:0027:0028:trace:loaddll:load_builtin_dll Loaded L"C: \\windows\\system32\\rsaenh.dll" at 0xac110000: builtin
8478.738:0027:0028:err:d3dcompiler:compile_shader HLSL shader parsing failed.
8478.739:0027:0028:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b43d64d ip=7b43d64d tid=0028
Just adding some fresh logs now that 4.11 is out - I believe I used to get an error popup when exiting the game, that now seems to be gone. On a fresh install I just need to protontricks 18110 d3dx10, and still stuck at not being able to start a singleplayer game (couldn't connect to server). The only other noticeable thing is that it takes a while for steam to show the game as exited.
GPU: GeForce GTX 1050/PCIe/SSE2
Driver/LLVM version: 4.6.0 NVIDIA 430.34
Kernel version: 5.2.4-arch1-1-ARCH
Proton version: 4.11-1
I tried today with proton experimental. It's a different error now.
protontricks 18110 d3dx10 as suggested above, and tried again. Log (compressed, 3M uncompressed):In both first cases, I got this error dialog:

Here's a partial transcription for the search feature:
Application Crash: std::exception shattered_horizon.exe build:54
main_psh failed: The function called is not supported at this time (E_NOTIMPL):
ynknown filename:14:16: E5017: Aborting due to not yet implemented feature: SM4 half expression.
In the last case, I got the usual issue: the game runs, but fails to connect to the included server.
In the past, I also tried to start a dedicated server (available on steam) and connect using PROTON_LOG=1 %command% --connect_to 127.0.1.1:27015, but I haven't tried again. Unsure if the issue is client or server-side.
I tried again today, with proton-GE, flatpak steam and mesa git. Singleplayer works perfectly after protontricks 18110 d3dx10.
I tried again today, with proton-GE, flatpak steam and mesa git. Singleplayer works perfectly after
protontricks 18110 d3dx10.
Was that with the dedicated server or going to singleplayer in the main menu? I'm still able to launch the game using ge proton 7.38 and protontricks d3dx10, but I still get the "Disconnecting from server" and "Connection to the server was lost" error when trying to load into singleplayer.
That's from selecting singleplayer in the menu.
I also confirmed it works from Proton experimental. I'm using the flatpak version (no mesa git this time), Proton experimental 7.0-20221102 (community build 1667424249).
Other than that, my system config hasn't changed much. I am now at 48GB RAM, though I doubt it changes much, and Linux 6.0.2-arch1-1.
Here's how it goes with a clean prefix:

Application Crash: EXCEPTION_ACCESS_VIOLATION
shattered_horizon.exe build: 54
Shattered Horizon encountered a fatal error and will
be terminated.
log:
steam-18110.log
Flatpak command: com.github.Matoking.protontricks 18110 d3dx10
The loading screen used not to display any info on the game (gamemode/map), now I get the info, as shown on the screenshot, and I get ingame (everything seems to work fine). I could not take a screenshot via F12 as the game uses this as a keybinding for the game console.

log:
steam-18110.log
Hmm that's odd. I'm using
Kernel 6.0.6-arch1-1
Proton 1667244152 experimental-7.0-20221031 (I can't seem to get it to download the few days newer version you have)
GE proton 7-38
flatpak steam
mesa 22.2.1-1 (if that matters)
The only difference I see between GE proton and experimental is that the intro video only displays with GE proton, with proton experimental showing a test pattern.
I made sure to clear my prefix before each try, and before running flatpak protontricks d3dx10 I get this slightly different launch error:

And after d3dx10 I get the same issue as before when starting a singleplayer match:


And my proton ge log:
steam-18110.log
@stephen304, how did you install your proton experimental and GE? I get them both through the flatpak add-on:
flatpak install com.valvesoftware.Steam.CompatibilityTool.Proton-{Exp,GE}
My Proton-GE version is 7.36-1. Other than the proton version, you are using an nvidia card, but the issue seems unrelated to graphics. I do not see the intro video.
@MayeulC Experimental I used the one steam automatically downloads to steamapps/common, and GE proton I downloaded using flatpak protonup-qt, which places it in compatibilitytools.d.
I fetched proton experimental and proton ge from flatpak as well and tried them both, clearing my prefix each time, launching to the error message (which now looks exactly like what you got, if that matters), running flatpak protontricks d3dx10, then launching again. With both I still get the same failure to start a singleplayer game
steam-18110.log flatpak ge proton 7-36
steam-18110.log flatpak proton experimental 7.0-20221102
Soo, other than the language setting, it seems like you're using Intel Integrated graphics with that title (i915).
Other differences include the fact that I'm on wayland (I guess you're on X11?), but that shouldn't matter.
It seems however that your log goes faster than mine. I load the game from a spinning disk (with proton on an SSD), do you load it from an SSD? That could make a difference if there is a race condition somewhere.
I found a few things in your log that were not in mine, like:
01c0:01c4:err:sync:RtlpWaitForCriticalSection section 023C60B0 "?" wait timed out in thread 01c4, blocked by 01d8, retrying (60 sec)
And in my log:
Server started.^M
Level loaded: eva/levels/belt.evagamestore^M
[unknown] (client id: 1) connected^M
The Laughing Cow (client id: 1) connected^M
Server is in lan mode.^M
Stats will not be submitted to Shattered Horizon Stats Server.^M
^M
Steam client is present.^M
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: eax=00000036 ebx=0ff8fa84 ecx=00000000 edx=00000000 esi=00000010 edi=024805a0
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ebp=0ff8fa58 esp=0ff8f9fc eip=7bc0b37c cs=0023 ss=002b flags=00000206
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ds=002b es=002b fs=0063 gs=006b
CAppInfoCacheReadFromDiskThread took 6 milliseconds to initialize
0200:020c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\bcrypt.dll" at 66240000: builtin
0200:020c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\crypt32.dll" at 6E8C0000: builtin
0200:020c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rsaenh.dll" at 6FE40000: builtin
0200:020c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\rsaenh.dll" : builtin
0200:020c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\crypt32.dll" : builtin
0200:020c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\bcrypt.dll" : builtin
Server started.^M
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: eax=00000036 ebx=0ff8fa84 ecx=00000000 edx=00000000 esi=00000010 edi=024805a0
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ebp=0ff8fa58 esp=0ff8f9fc eip=7bc0b37c cs=0023 ss=002b flags=00000206
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ds=002b es=002b fs=0063 gs=006b
0200:021c:trace:seh:signal (2, 00426500)
0200:021c:trace:seh:signal (4, 00000000)
0200:021c:trace:seh:signal (8, 00000000)
0200:021c:trace:seh:signal (11, 00000000)
0200:021c:trace:seh:signal (15, 00000000)
0200:021c:trace:seh:signal (22, 004264A0)
0200:021c:trace:seh:signal (6, 004264A0)
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: eax=00000036 ebx=0ff8fa84 ecx=00000000 edx=00000000 esi=00000010 edi=024805a0
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ebp=0ff8fa58 esp=0ff8f9fc eip=7bc0b37c cs=0023 ss=002b flags=00000206
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ds=002b es=002b fs=0063 gs=006b
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: eax=00000036 ebx=0ff8fa84 ecx=00000000 edx=00000000 esi=00000010 edi=024805a0
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ebp=0ff8fa58 esp=0ff8f9fc eip=7bc0b37c cs=0023 ss=002b flags=00000206
0200:0218:trace:seh:NtGetContextThread 0xfffffffe: ds=002b es=002b fs=0063 gs=006b
Level loaded: eva/levels/belt.evagamestore^M
Server is in lan mode.^M
Stats will not be submitted to Shattered Horizon Stats Server.^M
^M
Steam client is present.^M
CAppInfoCacheReadFromDiskThread took 5 milliseconds to initialize
01c0:01dc:trace:seh:signal (2, 00426500)
01c0:01dc:trace:seh:signal (4, 00000000)
01c0:01dc:trace:seh:signal (8, 00000000)
01c0:01dc:trace:seh:signal (11, 00000000)
01c0:01dc:trace:seh:signal (15, 00000000)
01c0:01dc:trace:seh:signal (22, 004264A0)
01c0:01dc:trace:seh:signal (6, 004264A0)
0134:0164:trace:seh:__regs_MSVCRT__setjmp3 buf=0688EDDC ebx=00000004 esi=00000000 edi=0ee29a90 ebp=0688ee24 esp=0688edc4 eip=00691848 frame=0688f04c
0134:0164:trace:seh:__regs_MSVCRT__setjmp3 buf=0688EE0C ebx=00000004 esi=00000000 edi=0ee29a90 ebp=0688ee54 esp=0688edf4 eip=00691848 frame=0688f04c
0134:0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\bcrypt.dll" at 66240000: builtin
0134:0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\crypt32.dll" at 6E8C0000: builtin
0134:0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rsaenh.dll" at 6FE40000: builtin
0134:0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\rsaenh.dll" : builtin
0134:0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\crypt32.dll" : builtin
0134:0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\bcrypt.dll" : builtin
0134:0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\bcrypt.dll" at 66240000: builtin
0134:0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\crypt32.dll" at 6E8C0000: builtin
0134:0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rsaenh.dll" at 6FE40000: builtin
0134:0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\rsaenh.dll" : builtin
0134:0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\crypt32.dll" : builtin
0134:0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\bcrypt.dll" : builtin
On the other hand, both you and I have repeated messages about loading and unloading of DLLs, and some of these signal event handler messages arrive regularly, so that's probably a red herring.
The thread that blocks for you is identified by 01d8, the only other mention is at:
(your log)
01c0:01d8:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Games",023C84A0): stub
This thread appears last (023C84A0, not sure what it corresponds for, probably some code location) for you, but in the middle of the pack for me.
(my log)
0200:0218:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Games",023C84A0): stub
If you look closely, thread 0218 has a lot more to tell for me than 01d8 for you. I see the same patterns in your GE log (id 01d4 this time).
I also tried the dedicated server route again, but it still doesn't work (I get bounced back to the main menu with "unable to connect to server, then I can launch a "singleplayer" game just fine). I am not sure whether it's a server or client issue, and would need a Windows computer to test, which I don't have. Strike that. It sometimes happens when the game is the first client connecting to the dedicated server, but it now works most of the time (I tried with and without gamescope). Gamescope sometimes has issues ( Assertion `wlserver.wlr.virtual_keyboard_device != nullptr' failed.), but retrying a few times usually works. It means that multiplayer is probably doable. I suggest you try this method.
Something else I did was to experiment with older proton versions. Unfortunately I was only able to launch proton 4.11-13, where I had the old connection issue for singleplayer as well (I needed to run it through gamescope to be able to click the menu items during my first try). Moving to experimental, it works again (no prefix clearing necessary).
Thanks for the investigation - and yeah I'm on X11 and loading off an nvme SSD, CPU is i7-7700HQ but this is an XPS laptop with a GTX 1050 and I'm pretty sure I have it set to use the discrete card full time though I forget exactly how I set that up:
glxinfo|egrep "OpenGL vendor|OpenGL renderer"
egrep: warning: egrep is obsolescent; using grep -E
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 1050/PCIe/SSE2
I just tried with the dedicated server and managed to get it to work! It is pretty confusing though - I wasn't able to get it to show up in the LAN tab of the server browser, but it seems trying to enter a single player game while the dedicated server is running locally (127.0.0.1 and default port 27015) causes it to connect to the dedicated server and ignore the single player settings.
It definitely took some tinkering though since I discovered that you won't be able to connect if the dedicated server isn't started from within steam - at least when I started it through external wine, I got an error in the dedicated server window, and an error "steam authentication failed" in game when trying to start singleplayer, despite the dedicated server being in LAN mode:
Server is in lan mode.
Stats will not be submitted to Shattered Horizon Stats Server.
Server started.
Failed to load Steam ServiceBOpenService failedServiceStart: failed to startLeve
l loaded: eva/levels/flipside.evagamestore
And launching the dedicated server within steam fails with the default proton experimental, but works with flatpak proton experimental as well as flatpak proton GE 7-36, as well as non-flatpak proton ge 7-25.
Not sure if your glxinfo output is representative of what happens inside the flatpak (unless ran from within), better use Steam's system info for this!
And launching the dedicated server within steam fails with the default proton experimental, but works with flatpak proton experimental as well as flatpak proton GE 7-36, as well as non-flatpak proton ge 7-25.
Well, sub-sandboxing as newer proton versions try to perform can break things sometimes (https://github.com/flathub/com.valvesoftware.Steam/issues/642 and linked issues). I'll try to launch it in non-flatpaked steam one of these days. Does it fail explicitly? (as in, a message is displayed in the server's log).
it seems trying to enter a single player game while the dedicated server is running locally (127.0.0.1 and default port 27015) causes it to connect to the dedicated server and ignore the single player settings
That's weird, but it makes sense somewhat, good to know.
I wasn't able to get it to show up in the LAN tab of the server browser
Yeah, me neither, I wonder if this works on Windows. I just use the launch argument --connect_to 127.0.0.1:27015 as indicated here: https://github.com/ValveSoftware/Proton/issues/2393#issuecomment-1084983538 (I initially found it by running strings on the executable, not sure if documented somewhere else).
This is progress, but your issue is weird. Seems like your game doesn't start a server when clicking singleplayer? :thinking:
Here's my systeminfo, which looks like it's correctly using my graphics card: systeminfo.txt
And here's the proton log from trying to start the dedicated server with default proton experimental (that is, still flatpak steam but proton experimental from the steam store, not the flatpak proton experimental from flathub):
steam-18112.log
I haven't been using non-flatpak steam for any of the recent testing fwiw
And yeah that would make sense...
I'm not sure what changed but I tried again and singleplayer just works on proton 9.0 beta now :tada:
Still need to do the flatpak run com.github.Matoking.protontricks 18110 d3dx10 but aside from that and the intro video having a codec issue that shows the test pattern briefly it seems to just work, and I get get into singleplayer games now without needing to mess with the dedicated server.
Edit: I was worried that it stopped working because I was having issues a while ago, but I tried again recently so just documenting here that it still works fine on Proton 10.0-4 as well as GE 10-34 after protontricks d3dx10.
proton 10.0-4x1 2024-04proton 9.0x1 2024-04proton experimentalx8 2022-11proton 4.11-13x1 2022-11proton 7.38x1 2022-11proton 4.2-4x1 2019-05proton 3.16-8x1 2019-03PROTON_LOG=1x2 2022-03bcrypt.dllx2 2022-11crypt32.dllx2 2022-11rsaenh.dllx2 2022-11atimgpud.dllx1 2019-05d3d10.dllx1 2019-03apex_release.dllx1 2019-03fmod_event.dllx1 2019-03fmodex.dllx1 2019-03nxcooking.dllx1 2019-03physxloader.dllx1 2019-03
Compatibility Report
System Information
I confirm:
Symptoms
After clicking play, an error popup reads: "Shattered Horizon encountered a fatal error and will be terminated."
Reproduction
Launch game with proton enabled.
steam-18110.log