Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.57k stars 35 forks source link

Protontricks downloaded DLL components do not work when launching a game under Steam #248

Closed Souliboi closed 10 months ago

Souliboi commented 10 months ago

Describe the bug Last year when I added a non steam game to Steam (DirectX9) and forced the Proton Compatibility tool in the properties, then using Protontricks to install the latest D3D9 component launching the game then through Steam worked perfectly fine, it loaded the DirectX9 components and didn't report anything missing. Now the complete opposite is happening. When I repeat the same steps, launching the game through Steam will cause the game to crash due to DirectX9 missing, launching directly through Protontricks launches the game just fine, how could I fix this? Launching through Protontricks exclusively is not an option as I need Steam for the Controller support.

To Reproduce Steps to reproduce the behavior:

  1. Add a non-steam DirectX 9 game to the Steam library
  2. Enable Proton Experimental or Proton 8.0.3 in the game configuration
  3. Install the last/latest D3D9 DLL component on the default wineprefix
  4. Launch the game through Steam
  5. It should crash
  6. Launch the game through Protontricks

Expected behavior In Step 4 and 5 it should launch just fine

System (please complete the following information):

Additional context

Like already mentioned before, months ago, it worked like stated above clean and simple.

It is also important to launch the game through Steam because once again; Controller support for non Xbox controllers without Steam Input is hell. EDIT 2: even installing other DLL components like DXVK, various other D3D9 components, or anything else doesn't fix the problem and using Proton 7.0.3 also did not work, tried using it on i3 instead of Hyprland and also no luck.

Matoking commented 10 months ago

Protontricks tries to replicate the same Steam Runtime environment as what the game uses when launched through Steam, but it's not perfect. If the problem only occurs when launching the game through Steam, you could try enabling logs for the game and checking them after trying to launch. In short, set the game's launch options to PROTON_LOG=1 %command%, launch the game and look up ~/steam-APPID.log. See here for additional instructions:

https://github.com/ValveSoftware/proton#runtime-config-options

With any luck, the log file might explain what is happening.

--

You can also try deleting the game's Wine prefix and recreating it. This might wipe your save files, so remember to backup first if you need to. Look up the game's compatdata directory; you can either launch Protontricks and select "Browse files", or use the command protontricks -c "echo \$WINEPREFIX" APPID.

In either case, you should see the directory /path/to/steamapps/compatdata/APPID/pfx. You need to delete /path/to/steamapps/compatdata/APPID, not only the pfx directory. Launch the game to regenerate the Wine prefix and then perform the same Protontricks/Winetricks operations again and see if that fixes the issue.

--

Finally, Protontricks is a wrapper for Winetricks, and almost all heavy lifting done to install D3D9 is done by Winetricks. You might want to check if your Winetricks installation is up-to-date in case that helps.

Souliboi commented 10 months ago

Okay so weirdly enough, it might've been a fault of my own? Maybe Hyprland being weird? Idk, using it on KDE in the Wayland session worked directly as expected, closing this now, still thank you for the time and options you provided in case it went wrong.