this post was submitted on 03 Nov 2024
1 points (100.0% liked)

Baldur's Gate 3

6278 readers
5 users here now

All things BG3!

Baldur’s Gate 3 is a story-rich, party-based RPG set in the universe of Dungeons & Dragons, where your choices shape a tale of fellowship and betrayal, survival and sacrifice, and the lure of absolute power. (Website)

Spoilers

If your post contains any possible spoilers, please:

Thank you!

founded 1 year ago
MODERATORS
 

EDIT: The issue was caused by my SSD being formatted in exFAT, which doesn't support symlinks. I backed up my SSD & reformatted it to btrfs, and then I could install .NET without hassle & the game runs!

Original Post:

I'm having an issue running this game on linux, every time I click play in Steam I get the following popup:

"you must install .NET desktop runtime to run this application"

Clicking "yes" takes me to download a Windows .exe which of course can't run on linux. I manually installed the .NET runtime following linux instructions here: https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian but the game still gives me this error.

Other things I've tried:

  • Reinstalling BG3
  • Completely deleting every file from steamapps/common for BG3 & reinstalling
  • Reinstalling Proton
  • Skipping the launcher
  • Tried with proton experimental, 9, 8, 7

My launch args are STEAM_COMPAT_DATA_PATH=/home/user/.local/share/Steam/steamapps/compatdata gamemoderun %command% --skip-launcher

On protondb everybody else seems to be running the game fine, but I don't understand how to get past this error.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 0 points 1 week ago (1 children)

Still the same error unfortunately.

Interestingly though, when I try to install .NET manually via protontricks-launch -v --appid 1086940 /home/user/Downloads/windowsdesktop-runtime-6.0.35-win-x64.exe I get the following error:

/media/user/T7/Main/Games/SteamInstalled/steamapps/compatdata/1086940/pfx/dosdevices/c:/windows: No such file or directory

Going down that tree I see the entire path is there except for "/c" at the end. I manually added a "c" folder, but then I get stuck at this error:

protontricks (ERROR): Active compatibility tool was found, but it's not a Proton installation supported by Protontricks.
Proton installation could not be found!

I know my proton installation works because all my other games use it fine. Proton is on a different drive than BG3, could that cause issues?

[–] [email protected] 0 points 1 week ago* (last edited 1 week ago) (1 children)

dosdevices/c: is missing I'm assuming is what you mean? That's very weird, it is there in every wine prefix and should be a link to ../drive_c.

Proton is on a different drive than BG3, could that cause issues?

I don't think so.

[–] [email protected] 0 points 1 week ago (1 children)

Ohh, is the "c" just a symlink to the drive_c folder?

[–] [email protected] 0 points 1 week ago (1 children)
[–] [email protected] 0 points 1 week ago (1 children)

I think you've just pointed me in the direction of a solution...

I tried to create a symlink "c:" pointing to ../drive_c, but I couldn't. "Operation not permitted" I then got ptsd flashbacks to the last time this happened - turns out it was because my SSD is formatted as exFAT, which doesn't support symlinks.

I'm guessing proton is trying to create this symlink when it installs .NET, but fails, which is probably why everyone else seems to have a breezy time with it. Not sure why my other games haven't run into this though... maybe they haven't needed to install anything there?

I will report back after reformatting my entire SSD lol

[–] [email protected] 0 points 1 week ago

The proton prefix should not be created on the external drive, but in the Steam folder in the home directory, I’m pretty sure. Even with a second Steam game install location. Why is it not there?

I'm guessing proton is trying to create this symlink when it installs .NET

No, it is created when Wine initializes the prefix. It has absolutely nothing to do with .NET.