this post was submitted on 03 Nov 2024
41 points (97.7% liked)

Baldur's Gate 3

6246 readers
71 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.

top 33 comments
sorted by: hot top controversial new old
[–] astrsk@fedia.io 17 points 3 days ago (1 children)

Skip the useless launcher. Set the steam shortcut to run the game exe directly, it doesn’t need anything special, been playing it fine on Debian and arch with both nvidia and amd gpus as well as my steam deck.

[–] Jozzo@lemmy.world 3 points 3 days ago (2 children)

I already skip the launcher but this error still happens. My launch args are STEAM_COMPAT_DATA_PATH=/home/user/.local/share/Steam/steamapps/compatdata %command% --skip-launcher

[–] mox@lemmy.sdf.org 6 points 3 days ago* (last edited 3 days ago) (1 children)

I don't know if --skip-launcher is a valid command line option. If it is, I expect it just tells the launcher to immediately launch the game without showing a launcher screen. Of course, if the launcher requires a version of .Net that isn't set up correctly, then it can't run at all, and therefore can't even get as far as noticing the command line option (let alone run the game). So I wouldn't expect this to work.

Instead, read through the bug report that I linked earlier. Look for the comments that explain how to make Steam run bg3_dx11.exe or bg3.exe instead of running the launcher at all. (I don't remember the exact paths, so I can't just write the correct command line here.)

(Note: GitHub often hides some comments until you click the link to reveal more of them, so just using Control+F in your browser might not find these comments until you've clicked it several times.)

[–] Jozzo@lemmy.world 3 points 3 days ago (1 children)

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

The comment you're referring to seems to be this one:

mv Launcher Launcherbak
ln -s bin Launcher
ln -s ./bin/bg3_dx11.exe ./bin/LariLauncher.exe
cp ./Launcherbak/*.dll ./bin

creating a symlink to trick steam into thinking it's running the launcher when it actually runs the game. BUT ... my SSD is formatted as exFAT, which doesn't support symlinks, so I can't do this.

So I'm guessing proton is trying to create a symlink at pfx/dosdevices/c when it installs .NET, but fails, which is also 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

[–] mox@lemmy.sdf.org 2 points 3 days ago* (last edited 3 days ago) (1 children)

That symlink approach is one way to run the game executable directly, but it's a little heavy handed, and likely to be reverted whenever the game gets updates or you verify the game files.

Sometimes you can put something like /path/to/game/executable.exe %command% in the Steam launch options to accomplish the same thing without symlinks. I suggest reading more of those comments to see if anyone had success with this approach.

It might still be a good idea to replace exFAT, though. Symlinks are often useful. :)

[–] Jozzo@lemmy.world 2 points 3 days ago (1 children)

Reporting back!

Reformatted with btrfs, steam now does this when I open the game (didn't before):

anddd it works! Can't believe this whole headache was just exfat all along lol!

Thank you for your help :D

[–] mox@lemmy.sdf.org 3 points 3 days ago

Hooray!

Have fun on the Sword Coast!

[–] astrsk@fedia.io 3 points 3 days ago (1 children)

Did you try stripping out everything in the launch options except ‘--skip-launcher’? I tried your command and it didn’t launch but then tried just the skip option and it worked again.

[–] Jozzo@lemmy.world 2 points 3 days ago

I need STEAM_COMPAT_DATA_PATH because my proton is installed in a different steam library than the game, all of my proton games use this. I tried to remove it anyway and try just '--skip-launcher', but now the game doesn't launch lol

The command likely won't work for you because you don't have proton installed at that location

[–] bjoern_tantau@swg-empire.de 10 points 4 days ago

Steam should handle this stuff by itself. I'd report it as a bug. But in the meantime you can do what the others said, use Protontricks to install the .Net runtime.

[–] rowinxavier@lemmy.world 10 points 4 days ago (1 children)

When you need a component such as the .NET framework you can install it in Wine/Proton using the Windows installers. The .exe you are being recommended should be able to run, but the other way around it is to use something like protontricks, a proton version of winetricks (technically it uses winetricks and is more of a set of integrations and a GUI, but yeah). Using protontricks you can install the .NET framework, the C++ runtimes, dxvk, and other tools. I would recommend learning a little about how to use protontricks and maybe look for a few specific tutorials for using it with specific games to get a feel for it.

[–] Jozzo@lemmy.world 3 points 4 days ago* (last edited 4 days ago) (2 children)

I see!

I installed protontricks and read through the usage instructions

I've done protontricks-launch --appid 1086940 /home/user/Downloads/windowsdesktop-runtime-6.0.35-win-x64.exe

but it looks like it's stuck?

pressure-vessel-locale-gen: Missing locale en_US.UTF-8
pressure-vessel-locale-gen: Generating locale en_AU.UTF-8...
pressure-vessel-locale-gen: Generated locale en_AU.UTF-8 successfully
pressure-vessel-locale-gen: Generating locale en_US.UTF-8...
pressure-vessel-locale-gen: Generated locale en_US.UTF-8 successfully
pressure-vessel-adverb[101880]: W: Container startup will be faster if missing locales are created at OS level
0084:err:file:init_redirects /media/user/T7/Main/Games/SteamInstalled/steamapps/compatdata/1086940/pfx/dosdevices/c:/windows: No such file or directory

Thank you for pointing me in the right direction, I've never used protontricks before

Edit: using protontricks 1086940 dotnetdesktop7 seems to get past that point, but then I get another error

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

my proton is installed in a different steam library than BG3, could this cause issues?

[–] rowinxavier@lemmy.world 1 points 3 days ago

It is possible, can you confirm the filesystem your steam install is on? The T7 mount looks like an automatic user mount, is it a standard ext4 or btrfs partition? Also, why is it mounting there, not in a fixed location denoted in your /etc/fstab file? If it is just automatic mounting there are some possible issues that could come from that, it may be worth testing another windows game through proton installed in the same steam library folder.

That all said, you definitely need to have proton installed. If you go to your steam library you should be able to search for proton there. I would recommend installing the current version, the experimental, and if it is there proton-ge. I haven't used Debian for a while so I don't know what is in your repos but searching for proton-ge there may also have results.

Once you definitely have the latest and experimental versions try switching version, testing with protontricks. It should show up both versions and allow you to switch between them without problems. You may also need to define your proton prefix as an environmental variable, something like PROTONPREFIX=/path/to/your/T7/proton/prefix/

If you can't get that going consider jumping on to a matrix channel for more second by second help, tonnes of people are happy to help you get wine/proton working correctly.

[–] TechieDamien@lemmy.ml 2 points 3 days ago (1 children)

Are you running steam in a flatpak by any chance?

[–] Jozzo@lemmy.world 1 points 3 days ago

No, installed from debian repository

[–] 2xsaiko@discuss.tchncs.de 6 points 3 days ago* (last edited 3 days ago) (1 children)

Try deleting the prefix (steamapps/compatdata/1086940). This should work completely fine out of the box. (Not sure if uninstalling the game deletes that already, just in case)

[–] Jozzo@lemmy.world 2 points 3 days 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?

[–] 2xsaiko@discuss.tchncs.de 1 points 3 days ago* (last edited 3 days 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.

[–] Jozzo@lemmy.world 1 points 3 days ago (1 children)

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

[–] 2xsaiko@discuss.tchncs.de 1 points 3 days ago (1 children)
[–] Jozzo@lemmy.world 2 points 3 days 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

[–] 2xsaiko@discuss.tchncs.de 1 points 3 days ago (1 children)

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.

[–] Jozzo@lemmy.world 1 points 3 days ago

Reporting back!

Reformatted with btrfs, steam now does this when I open the game (didn't before):

anddd it works! Can't believe this whole headache was just exfat all along lol!

Thank you for your help :D

[–] mox@lemmy.sdf.org 6 points 4 days ago* (last edited 4 days ago) (1 children)

Have you tried (in Steam's properties for the game) switching the compatibility setting to force Proton Experimental? You might also need other workarounds, like configuring Steam to skip the game's launcher.

The best place to find and discuss options is here:

https://github.com/ValveSoftware/Proton/issues/4243

Also, you might want to join this community:

!linux_gaming@lemmy.world

[–] Jozzo@lemmy.world 1 points 4 days ago

Thank you, Yes experimental is the one I tried as per people's recommendation on protondb. I have also tried 9, 8, 7 but all give the same error. Putting the --skip-launcher argument in still brings me this error. I can't even get to the launcher 😭

[–] twinnie@feddit.uk 4 points 4 days ago (1 children)

If you’re running on Linux then installing the .NET for Linux won’t do anything because it’s looking for it within the Wine emulation layer, so it actually does need the Windows version and it should install because it should all be emulated. Install Protontricks and see if there’s anything you can do with that, I haven’t used it much by I think it has tools to install stuff like this.

[–] imecth@fedia.io 3 points 4 days ago (1 children)

wine doesn't emulate, it translates api calls.
Installing dotnet shouldn't be necessary afaik and might bork the protonprefix further.

[–] mox@lemmy.sdf.org 3 points 3 days ago

wine doesn’t emulate hardware,

FTFY

Wine's very purpose is to emulate the Windows runtime environment. Translating API calls is only part of that.

So kindly leave people alone when they refer to it emulating, or as an emulator, or something that emulates. They're not wrong.

[–] Wild_Mastic@lemmy.world 3 points 4 days ago* (last edited 4 days ago)

Try messing around by forcing gpu drivers to vulkan.

If I'm not mistaken, you open the launcher, change version, close launcher, add flag for skipping launcher and start the game.

Also, Proton tricks as the other comment should help too (installing the .NET version using it, as it install all data in the emulated environment)

[–] ColdWater@lemmy.ca 1 points 3 days ago

Maybe try pirated version of the game? I mean you already bought it, might be some kind of DRM preventing it from launching correctly

[–] Batadon@lemm.ee 2 points 4 days ago (1 children)

Can you play other games that require Proton on your PC?

[–] Jozzo@lemmy.world 1 points 4 days ago

Yes all the others I play work fine, I have only had an issue with BG3

[–] Talaraine@fedia.io 0 points 3 days ago

I've never been able to get a launcher to work on Linux and it's frustrating. Gonna give Bazzite a try soon though. Best of luck OP, I feel your pain.