muttleyxd / arma3-unix-launcher

Launcher for Linux and Mac ArmA 3
MIT License
210 stars 44 forks source link

Direct launch failed, exception: compatibility tool entry not found #168

Closed MBR-0001 closed 2 years ago

MBR-0001 commented 3 years ago

This occurs every time I try to launch the game using the launcher, the game starts fine through steam

Console Output

conf file: "/home/mbr/.config/a3unixlauncher/launcher.conf"
[S_API] SteamAPI_Init(): Loaded '/home/mbr/.local/share/Steam/linux64/steamclient.so' OK.
Setting breakpad minidump AppID = 107410
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561198089xxxxxx [API loaded no]
Direct launch failed, exception: compatibility tool entry not found

Arch linux, obtained from AUR

I looked at the code and from what I saw it tries to obtain version of proton the game uses from config.vdf, I checked the file (/home/mbr/.steam/steam/config/config.vdf) and the version is there I also compiled the launcher (to add logging) but none of the steam stuff gets logged to console (just the first conf file line)

Spartan322 commented 2 years ago

It seems the problem has to do with the launcher looking only in the default folder since it relies on "BaseInstallFolder" in the config.vdf, if it can't find it any relevant files there it doesn't recognize the install, issue is that isn't where the other folder information is stored, instead you must look in config/libraryfolders.vdf which also stores the games making it also fairly easy to figure out 1) if the game is installed and 2) where the game is installed all without searching everywhere for it.

MBR-0001 commented 2 years ago

I just checked, there is no "BaseInstallFolder" in config.vdf, there's "BaseInstallFolder_1" and "BaseInstallFolder_2" tho, is it possible that steam changed this?

EDIT: Checked out libraryfolders.vdf, looks like it does contain the correct path (/home/mbr/.local/share/Steam)

Spartan322 commented 2 years ago

BaseInstallFolder_1 and BaseInstallFolder_2 I suspect are one of the weird value list forms that can be taken (it seems the parser for this tool ignores the postfix number and I'm assuming that's what the value list search for BaseInstallFolder is doing, I suspect this because I only have BaseInstallFolder_1 despite 3 library folders) which in this tool seems to be parsed correctly, however its not guaranteed that any of your library files will only reside in those directories.

muttleyxd commented 2 years ago

I refactored how compatibility tools are found, so this issue was possibly fixed. Please test this release https://github.com/muttleyxd/arma3-unix-launcher/releases/tag/commit-303

Spartan322 commented 2 years ago

I can personally (@MBR-0001 can you?) confirm the commit 303 release fixes this issue and enables the game to start properly on a secondary steam library path not listed in the config file. (reinforced by examining the change to the source that corrects the reference to use libraryfolder.vdf) I tested on the AUR package. Offtopic note @muttleyxd, the AUR package relies on spdlog being installed it seems but does not have a dependency on it, I incidentally didn't have it installed, perhaps it should be added as a dependency.

muttleyxd commented 2 years ago

Offtopic note @muttleyxd, the AUR package relies on spdlog being installed it seems but does not have a dependency on it, I incidentally didn't have it installed, perhaps it should be added as a dependency.

Fixed! Thanks for noticing this!

MBR-0001 commented 2 years ago

I just tried the latest verison and the issue is fixed, thanks!

k1ll1n commented 2 years ago

Hello! Now I have the same error when running "DayZ" image