ValveSoftware / Proton

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

The Legend of Heroes: Trails of Cold Steel (538680) fails to launch #1048

Open hornerwl opened 6 years ago

hornerwl commented 6 years ago

steam-538680.log

Game fails to launch do to an Unhandled Exception: System.NotImplementedException: The method or operation is not implemented.

Stacktrace: Unhandled Exception: System.NotImplementedException: The method or operation is not implemented. at System.Drawing.Font.FromLogFont (System.Object lf, System.IntPtr hdc) [0x0009e] in <881e150859e047dba143982f9ad099a8>:0 at System.Drawing.Font.FromHfont (System.IntPtr hfont) [0x00029] in <881e150859e047dba143982f9ad099a8>:0 at System.Drawing.SystemFonts.get_DefaultFont () [0x0009e] in <881e150859e047dba143982f9ad099a8>:0 at System.Windows.Forms.Control.get_DefaultFont () [0x00007] in :0 at System.Windows.Forms.Control.get_Font () [0x00054] in :0 at System.Windows.Forms.ComboBox.get_PreferredHeight () [0x00008] in :0 at System.Windows.Forms.ComboBox.get_DefaultSize () [0x00000] in :0 at System.Windows.Forms.Control..ctor (System.Boolean autoInstallSyncContext) [0x000b1] in :0 at System.Windows.Forms.Control..ctor () [0x00000] in :0 at System.Windows.Forms.ListControl..ctor () [0x0000b] in :0 at System.Windows.Forms.ComboBox..ctor () [0x00059] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.ComboBox:.ctor () at Sen1Launcher.Launcher.InitializeComponent () [0x0001b] in <60e14b83d515423d9830173f7cc641e0>:0 at Sen1Launcher.Launcher..ctor () [0x00032] in <60e14b83d515423d9830173f7cc641e0>:0 at (wrapper remoting-invoke-with-check) Sen1Launcher.Launcher:.ctor () at Sen1Launcher.Program.Main () [0x0000b] in <60e14b83d515423d9830173f7cc641e0>:0

It should also be noted that this game is playable with WINE + DXVK on Lutris.

Distro: Arch Linux Kernel 4.18.5-arch1-1 GPU: GTX 1080Ti Driver 396.54 CPU: Intel i7 4790k Proton 3.7-5 Beta

hornerwl commented 6 years ago

I've developed a workaround for getting the game to properly start. I found out that the game crashing on startup is the result of Proton prefixes lacking .NET Framework/WINE-mono. Installing .NET though winetricks will not work. I did the following to get it set up:

Prerequisites: WINE and WINE-mono pacakages must be installed.

  1. Delete the original proton prefix (the pfx directory itself) located at: /home/{USERNAME}/.steam/steam/steamapps/compatdata/538680/pfx

  2. Run the following command recreate the prefix using vanilla WINE: WINEPREFIX=/home/{USERNAME}/.steam/steam/steamapps/compatdata/538680/pfx winecfg

  3. Run the game in Steam, it should go through the first time setup.

The first time configuration menu should pop up shortly after, when you are done changing settings hit "Save & Launch". If the game status changes to no longer running, that is fine, it should still run.

NOTE: The Configuration Tool still does not work, so the only time you will be able to change graphical settings will be during the first time setup. If you want make additional changes, back up your save data to Steam Cloud, and repeat this process.

xorhash commented 5 years ago

I tested with a clean prefix on:

Proton version: 4.2-7 Beta (as ships with Steam by default) Kernel: 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16) x86_64 GNU/Linux OS: Debian 9 (stable) 64-bit Windowing: X.org 7.7 Steam: Built Nov 26, 2018, at 20:15:48; Steam API: v018; Steam package versions: 1543346820 GPU: Intel onboard (for Xeon E3-1245v5) Driver: intel_drv.so, vendor="X.Org Foundation", compiled for 1.16.4, module version = 2.99.917, Module class: X.Org Video Driver, X.Org Video Driver, version 18.0 Steam version: Built: Jun 17 2019, at 23:31:27; Steam API: v018; Steam package versions: 1560817063

I've had minor amount of success with Proton 3.7 (by installing dotnet40 via protontricks, then manually launch WINEARCH=win64 WINEPREFIX=~/.local/share/Steam/SteamApps/compatdata/538680/pfx ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/SteamApps/common/Proton\ 4.2/dist/bin/wine ed8.exe), but then it only launches in “DRM-free” mode and continues to refuse launching via Steam, so I haven't really tested that at any further, though I did get errors about mscoree.dll not being found on startup.

As Proton now ships with Wine-Mono itself, @hornerwl's workaround does not seem to be applicable anymore and the game is just hard broken for me.

kisak-valve commented 5 years ago

Hello @xorhash, err: DxvkInstance: Failed to create instance and err: D3D11CreateDevice: Failed to create a DXGI factory in your log hints that you're having an issue with your vulkan driver stack. Please verify you have mesa-vulkan-drivers and mesa-vulkan-drivers:i386 installed with something like apt policy mesa-vulkan-drivers mesa-vulkan-drivers:i386.

xorhash commented 5 years ago

Thank you, @kisak-valve. It was indeed a Vulkan issue. That one's on me; I'm embarrassed to take up your time with that.

The main game appears to work out of the box, but the logo, opening movie and presumably all other movies continue to be broken. I managed to work around this by first installing LAVFilters 0.73.1 manually into the prefix (the installation will hang, but cancelling it during the hang is seemingly safe), then installing quartz via protontricks; seemingly movies work fine with these workarounds.

BobbyWibowo commented 5 years ago

I can confirm installing codecs + quartz works on my end. Though instead of using LAVFilters installer, I used K-Lite Codec Pack Basic. When using LAVFilters installer, I'd get multiple error messages about failing to register the filters, but no such thing with K-Lite installer. I also chose to disable tray icons, explorer plugins, file associations, and use LAVFilters for all media types, just in case.

RAMChYLD commented 3 years ago

Been getting very different errors. The errors I've been getting are all "wrong ELF class: ELFCLASS64". I'm running Proton-Experimental.

Edit: I further triaged the error and found what I believe to be the root cause of the game crashing.

wine: Call from 7BC30E90 to unimplemented function ntdll.dll._wsplitpath_s, aborting
wine: Unimplemented function ntdll.dll._wsplitpath_s called at address 7BC30E90 (thread 0144), starting debugger...

Disabling the video playback lets the game run, but the FMVs are one of the draws of the game even if they're optional that they can be disabled from the config tool. I already installed directshow and xvid.

zany130 commented 2 years ago

game crashes alongside steam randomly when I open the steam overlay proton log https://u.pcloud.link/publink/show?code=XZihoOXZ7wvtqHhRJF5K9bVscueq0kx6MhCV

sys info https://linux-hardware.org/?probe=5ae2157abe

steam dumps

─λ cat /tmp/dumps/zany130_log.txt
File: /tmp/dumps/zany130_log.txt
Wed Nov  3 23:44:07 2021 GMT: file ''/tmp/dumps/assert_20211103194406_23.dmp'', upload yes: ''CrashID=bp-51f84554-5ba5-4383-a9e
f-cba662211103''
Thu Nov  4 02:41:49 2021 GMT: file ''/tmp/dumps/crash_20211103224148_66.dmp'', upload yes: ''CrashID=bp-b04ad917-a381-4a3f-bd09
-261842211103''

https://u.pcloud.link/publink/show?code=VZCuoOXZMI66upJdaEHHQqDjumOdPjCCrGCX

ipr commented 2 years ago

Currently configuration tool works (I wonder if that was issue for some before) but game exits early on when trying to start with Proton 7.0-4. Following is found in the log: winegstreamer error: decodebin6: Your GStreamer installation is missing a plug-in. winegstreamer error: decodebin6: ../src-gst_base/gst/playback/gstdecodebin2.c(4719): gst_decode_bin_expose (): /GstBin:bin9/GstDecodeBin:decodebin6: no suitable plugins found: Missing decoder: MPEG-1 Layer 3 (MP3) (audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, codec_data=(buffer)010002000000000301000000) Missing decoder: DivX MPEG-4 Version 5 (video/x-divx, divxversion=(int)5, framerate=(fraction)30000/1001, width=(int)1280, height=(int)720)

Soon after that there is register dump, stack dump and backtrace

steam-538680.log

Using the configuration tool to skip startup logos and intro will let you start into main menu as a workaround.