Giter Club home page Giter Club logo

protontricks's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

protontricks's Issues

python-versioneer creates nondeterministic tarballs

See also #34.

I downloaded https://github.com/Matoking/protontricks/archive/1.3.1.tar.gz on December 29th and again today (January 11th) and the files differ.

url date size sha512sum
https://github.com/Matoking/protontricks/archive/1.3.1.tar.gz 2019-12-29 57793 1c00668c4132b5a1caef088dfd282ddfa59b6ec5485a273e83d513d93258964894e05b0cdefdbad5ffde9e78498f0f24236382772695f6b9d9caf0f243889bf4
https://github.com/Matoking/protontricks/archive/1.3.1.tar.gz 2020-01-11 57784 4e33334e219db2e6679b430ee42408529478834c80c7da3b9bece4756eb27b9331d49a6a884de8a7ced5ec29d78ce831fee4cfbf6d5adcd750666b7e7a1e5607

Diff between the two tarballs

diff -ruN protontricks-1.3.1-2019-12-29/src/protontricks/_version.py protontricks-1.3.1-2020-01-11/src/protontricks/_version.py
--- protontricks-1.3.1-2019-12-29/src/protontricks/_version.py  2019-11-21 10:14:11.000000000 -0600
+++ protontricks-1.3.1-2020-01-11/src/protontricks/_version.py  2019-11-21 10:14:11.000000000 -0600
@@ -23,7 +23,7 @@
     # setup.py/versioneer.py will grep for the variable names, so they must
     # each be defined on a line of their own. _version.py will just call
     # get_keywords().
-    git_refnames = " (HEAD -> master, tag: 1.3.1)"
+    git_refnames = " (tag: 1.3.1)"
     git_full = "db7f1abf7bcd8786836d8c03e25d539ccc8686ff"
     git_date = "2019-11-21 18:14:11 +0200"
     keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}

The impact is this breaks most package managers.

RPG Maker RTP with Protontricks?

So, with a whole bunch of RPG Maker games on Steam now, I think it might be good to add installing its runtime package using Protontricks. I have several on my library, they tended to black screen but when I ripped the files, put it in my normal Wine prefix, and install RPGM RTP for that prefix, it works perfectly. Adding the ability to do that on Protontricks for the specific game prefix would greatly streamline the process.

Or is that more on the scope of Winetricks? I'm sorry, I'm not too familiar with the scope of this project.

find_proton_app expects magic number in appinfo.vdf that isn't portable

@aanderse encountered a crash while trying to test out a new package for protontricks on NixOS: NixOS/nixpkgs/pull/64705.

~> protontricks --gui
Traceback (most recent call last):
  File "/nix/store/6slrbp5hb8ijd5gv7fb6k80jmp8g3176-protontricks-1.2.2/bin/.protontricks-wrapped", line 11, in <module>
    sys.exit(main())
  File "/nix/store/6slrbp5hb8ijd5gv7fb6k80jmp8g3176-protontricks-1.2.2/lib/python3.7/site-packages/protontricks/cli.py", line 178, in main
    steam_path=steam_path, steam_apps=steam_apps, appid=steam_app.appid
  File "/nix/store/6slrbp5hb8ijd5gv7fb6k80jmp8g3176-protontricks-1.2.2/lib/python3.7/site-packages/protontricks/steam.py", line 356, in find_proton_app
    steam_path=steam_path, steam_apps=steam_apps, appid=appid)
  File "/nix/store/6slrbp5hb8ijd5gv7fb6k80jmp8g3176-protontricks-1.2.2/lib/python3.7/site-packages/protontricks/steam.py", line 317, in find_steam_proton_app
    proton_appid = re.search(appid_regex, appinfo).group(2)
AttributeError: 'NoneType' object has no attribute 'group'

The issue was narrowed down to find_proton_app using a magic number in a regex when trying to lookup up the proton app id. This magic number should probably be made more generic, or the binary API for vdf should be used instead.

# In ASCII, the substring we're looking for looks like this
# ```
# proton_316_beta..appid.
# ```
appid_regex = "({name_ascii}0002617070696400)([a-z0-9]{{8}})".format(
name_ascii=str(binascii.hexlify(bytes(name, "utf-8")), "utf-8")
)
# The second group contains the App ID as a 32-bit integer in little-endian
proton_appid = re.search(appid_regex, appinfo).group(2)
proton_appid = struct.unpack("<I", binascii.unhexlify(proton_appid))[0]

No module named 'setuptools'

For those that get this error:

$ python3 -m pip install git+https://github.com/Matoking/protontricks.git
Collecting git+https://github.com/Matoking/protontricks.git
  Cloning https://github.com/Matoking/protontricks.git to /tmp/pip-istvf8bk-build
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ModuleNotFoundError: No module named 'setuptools'
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-istvf8bk-build/

You're missing this package:
python3-setuptools

Apt Package managers (Debian based systems) uses this command to install said package:
sudo apt-get install python3-setuptools

Might be handy to add to the description under Requirements.

Featurerequest: mediafoundation

Thank you for providing an updated version of protontricks. Since winetricks doesn't have a way to install mediafoundation into a prefix i was wondering if you maybe could include it.

Some needed informations ->
a.) http://www-pc.uni-regensburg.de/systemsw/win7/sp1/index.htm
b.) https://github.com/tonix64/python-installcab
c.) https://lutris.net/files/tools/dll/mfplat/x64/mfplat.dll & https://lutris.net/files/tools/dll/mfplat/x32/mfplat.dll

Thank you for the hard work.

protontricks crashes

protontricks crashes with the following output

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/protontricks/gui.py", line 57, in select_steam_app_with_gui
    result = run_zenity(args)
  File "/usr/lib/python3.8/site-packages/protontricks/gui.py", line 36, in run_zenity
    return run(args, check=True, stdout=PIPE, stderr=PIPE)
  File "/usr/lib/python3.8/subprocess.py", line 512, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['zenity', '--forms', '--text=Steam Game Library', '--title=Choose Game', '--add-combo', 'Pick a library game', '--combo-values', 'Batman: Arkham Asylum GOTY Edition: 35140|Batman™: Arkham Knight: 208650|Bully: Scholarship Edition: 12200|CLANNAD: 324160|CLANNAD Side Stories: 420100|Edge Of Eternity: 269190|Fallout: 38400|Fallout 2: 38410|Hyperdimension Neptunia U: Action Unleashed: 387340|If My Heart Had Wings: 326480|KARAKARA: 487430|KARAKARA2: 745850|Lara Croft and the Temple of Osiris: 289690|Left 4 Dead: 500|Legrand Legacy: 556740|Rise of the Tomb Raider: 391220|Sword Art Online: Hollow Realization Deluxe Edition: 607890|The Legend of Heroes: Trails in the Sky: 251150|The Legend of Heroes: Trails in the Sky SC: 251290|The Witcher: Enhanced Edition: 20900|Valkyria Chronicles™: 294860|eden*: 315810']' died with <Signals.SIGABRT: 6>.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/protontricks", line 11, in <module>
    load_entry_point('protontricks==1.3.2.dev9+gfc20b09', 'console_scripts', 'protontricks')()
  File "/usr/lib/python3.8/site-packages/protontricks/cli.py", line 171, in main
    steam_app = select_steam_app_with_gui(steam_apps=steam_apps)
  File "/usr/lib/python3.8/site-packages/protontricks/gui.py", line 94, in select_steam_app_with_gui
    raise RuntimeError("Zenity returned an error")
RuntimeError: Zenity returned an error

AttributeError: 'NoneType' object has no attribute 'group'

Hi, i am getting an error when i try to launch winecfg for games. Protontricks can find games when i search them but gives following error when i try to launch winecfg or winetricks gui:

user@user-pc:~$ protontricks -s stalker

Found the following games:
S.T.A.L.K.E.R.: Call of Pripyat (41700)
S.T.A.L.K.E.R.: Clear Sky (20510)
S.T.A.L.K.E.R.: Shadow of Chernobyl (4500)
To run protontricks for the chosen game, run:
$ protontricks APPID COMMAND
NOTE: A game must be launched at least once before protontricks can find the game.

user@user-pc:~$ protontricks 41700 winecfg

Traceback (most recent call last):
File "/usr/local/bin/protontricks", line 11, in
load_entry_point('protontricks==1.1.1+3.g06c86eb', 'console_scripts', 'protontricks')()
File "/usr/local/lib/python3.6/dist-packages/protontricks/cli.py", line 137, in main
steam_path=steam_path, steam_apps=steam_apps, appid=args.appid)
File "/usr/local/lib/python3.6/dist-packages/protontricks/steam.py", line 293, in find_proton_app
steam_path=steam_path, steam_apps=steam_apps, appid=appid)
File "/usr/local/lib/python3.6/dist-packages/protontricks/steam.py", line 254, in find_steam_proton_app
proton_appid = re.search(appid_regex, appinfo).group(2)
AttributeError: 'NoneType' object has no attribute 'group'

  • My games are located on 2 external libraries.
  • I have winetricks installed.
  • My os is Kubuntu 18.10

Failed to create direct3d device error message after enabling galliumnine

I ran the following :

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
sudo mv winetricks /usr/bin
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
python3 -m pip install --user pipx
~/.local/bin/pipx ensurepath
eval "$(cat .bashrc | tail -n +10)"
pipx install protontricks
pipx upgrade protontricks
protontricks 9420 galliumnine

before this the game ran fine.

after it though, I get the "Failed to create direct3d device" error box.

What am I doing wrong?

the game is using the default wineprefix (64bit) perhaps that's wrong?

my launch arguments in steam for this game (which worked before said commands) are the following :

PROTON_NO_ESYNC=1, PROTON_DUMP_DEBUG_COMMANDS=1, PROTON_USE_GALLIUM_NINE=1, PROTON_GALLIUM_NINE_MODULEPATH="/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1:/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1" %command%

protontricks gives error when trying to run GUI

I simply tried to run Protontricks (installed via pipx), and got this.

Traceback (most recent call last):
File "/home/nikki/.local/bin/protontricks", line 8, in
sys.exit(main())
File "/home/nikki/.local/pipx/venvs/protontricks/lib/python3.6/site-packages/protontricks/cli.py", line 150, in main
steam_lib_paths=steam_lib_paths
File "/home/nikki/.local/pipx/venvs/protontricks/lib/python3.6/site-packages/protontricks/steam.py", line 734, in get_steam_apps
os.path.join(path, "steamapps", "appmanifest_*.acf")
File "/usr/lib/python3.6/glob.py", line 20, in glob
return list(iglob(pathname, recursive=recursive))
File "/usr/lib/python3.6/glob.py", line 71, in _iglob
for dirname in dirs:
File "/usr/lib/python3.6/glob.py", line 71, in _iglob
for dirname in dirs:
File "/usr/lib/python3.6/glob.py", line 71, in _iglob
for dirname in dirs:
File "/usr/lib/python3.6/glob.py", line 72, in _iglob
for name in glob_in_dir(dirname, basename, dironly):
File "/usr/lib/python3.6/glob.py", line 83, in _glob1
return fnmatch.filter(names, pattern)
File "/usr/lib/python3.6/fnmatch.py", line 52, in filter
match = _compile_pattern(pat)
File "/usr/lib/python3.6/fnmatch.py", line 46, in _compile_pattern
return re.compile(res).match
File "/usr/lib/python3.6/re.py", line 233, in compile
return _compile(pattern, flags)
File "/usr/lib/python3.6/re.py", line 301, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib/python3.6/sre_compile.py", line 562, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib/python3.6/sre_parse.py", line 855, in parse
p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib/python3.6/sre_parse.py", line 416, in _parse_sub
not nested and not items))
File "/usr/lib/python3.6/sre_parse.py", line 765, in _parse
p = _parse_sub(source, state, sub_verbose, nested + 1)
File "/usr/lib/python3.6/sre_parse.py", line 416, in _parse_sub
not nested and not items))
File "/usr/lib/python3.6/sre_parse.py", line 553, in _parse
raise source.error(msg, len(this) + 1 + len(that))
sre_constants.error: bad character range D-1 at position 7

AFAIK, Python, steam and all other dependencies are up to date.

I am running Linux Mint 19.3, based on Ubuntu 18 "Bionic" on Linux Kernel 5.3.0.

issue while trying to $ protontricks 359320 -q --force dotnet40 win7

I think i did somthing wrong while installing protontricks or pipx.

Traceback (most recent call last):
File "/usr/local/bin/protontricks", line 11, in
sys.exit(main())
File "/usr/local/lib/python3.5/dist-packages/protontricks/cli.py", line 116, in main
steam_path, steam_root = find_steam_path()
File "/usr/local/lib/python3.5/dist-packages/protontricks/steam.py", line 198, in find_steam_path
if has_steamapps_dir(steam_path):
File "/usr/local/lib/python3.5/dist-packages/protontricks/steam.py", line 163, in has_steamapps_dir
os.path.isdir(os.path.join(path, "steamapps"))
File "/usr/lib/python3.5/posixpath.py", line 89, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
(funcname, s.class.name)) from None
TypeError: join() argument must be str or bytes, not 'PosixPath'

GUI not working

I'm having this error when launching Protontricks with GUI on Arch Linux:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/protontricks/gui.py", line 27, in select_steam_app_with_gui
    ], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/usr/lib/python3.7/subprocess.py", line 487, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['zenity', '--forms', '--text=Steam Game Library', '--title=Choose Game', '--add-combo', 'Pick a library game', '--combo-values', 'Cube World: 1128000|EVE Online: 8500|Infinity: Battlescape: 1079620|NEOTOKYO��: 244630|Quake Live: 282440|Serious Sam 2: 204340|TEKKEN 7: 389730|Tabletop Simulator: 286160']' returned non-zero exit status 255.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/protontricks", line 11, in <module>
    load_entry_point('protontricks==1.2.5', 'console_scripts', 'protontricks')()
  File "/usr/lib/python3.7/site-packages/protontricks/cli.py", line 174, in main
    steam_app = select_steam_app_with_gui(steam_apps=steam_apps)
  File "/usr/lib/python3.7/site-packages/protontricks/gui.py", line 48, in select_steam_app_with_gui
    raise RuntimeError("Zenity returned an error")
RuntimeError: Zenity returned an error

Any suggestions? Or info you need me to post here?

Setting STEAM_DIR makes it unable to find config.vdf and appcache.vdf

If you use a steam library path for games outside the normal steam path it still needs to look in the default steam path for config.vdf and appcache.vdf. Current behavior cannot find compatdata without setting STEAM_DIR but can't find these files if is set since they are located in the default steam directory.

Update suggestion to README.md

I added Portage packages for Gentoo

It's a text file being Github doesn't allow me to push markdown files.

Sorry if this is the wrong place to put this suggestion/request at.

readme.txt

protontricks didn't start on Ubuntu 20.04

Installed the git version with pipx.
When i start protontricks i get the following error:
protontricks 252950 vcrun2017

Traceback (most recent call last):
  File "/home/jokergermany/.local/bin/protontricks", line 8, in <module>
    sys.exit(main())
  File "/home/jokergermany/.local/pipx/venvs/protontricks/lib/python3.8/site-packages/protontricks/cli.py", line 222, in main
    proton_app = find_proton_app(
  File "/home/jokergermany/.local/pipx/venvs/protontricks/lib/python3.8/site-packages/protontricks/steam.py", line 512, in find_proton_app
    proton_app = find_steam_proton_app(
  File "/home/jokergermany/.local/pipx/venvs/protontricks/lib/python3.8/site-packages/protontricks/steam.py", line 424, in find_steam_proton_app
    proton_appid = get_proton_appid(compat_tool_name, appinfo_path)
  File "/home/jokergermany/.local/pipx/venvs/protontricks/lib/python3.8/site-packages/protontricks/steam.py", line 309, in get_proton_appid
    vdf_sections = get_appinfo_sections(appinfo_path)
  File "/home/jokergermany/.local/pipx/venvs/protontricks/lib/python3.8/site-packages/protontricks/steam.py", line 254, in get_appinfo_sections
    with open(path, "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/jokergermany/.steam/steam/appcache/appinfo.vdf'

Protontricks can't find any games

Hi.
I installed protontricks from the GUI, and it couldn't seem to find any games, any idea where I go from here ?

$ protontricks --gui
Found no games. You need to launch a game at least once before protontricks can find it.

I have Steam installed (flatpak, deb and wine) and I have launched games in the past.

Doesn't allow non-integer App ID's

Describe the bug
It's not possible to use protontricks to modify an application using a non integer appid.

To Reproduce
Steps to reproduce the behavior:

  1. Install a game to a non-integer prefix (like I did)
  2. Command fails and error is displayed

Expected behavior
It should check if the appid is valid before assuming that it isn't because it's not an integer.

System (please complete the following information):

  • Distro: Arch Linux

  • Protontricks version: protontricks (1.4.1)

  • Steam version: Not Beta
    Additional context
    I wrote a script that allows me to install arbitrary applications into Steam Prefixes, and didn't restrict AppID's to integers, since there's technically no reason to do so - Any ID is a valid ID. I installed UPlay into Steam, and it works, but I want to run winecfg, and I can't because protontricks won't allow me to do so, because it's expecting an integer ID.

If the error happens when trying to run a Protontricks command, run the command again using the -v flag and copy the output!

For example, if the command that causes the error is protontricks 42 faudio, run protontricks -v 42 faudio instead and copy the output here.

protontricks uplay winecfg
usage: protontricks [-h] [--verbose] [-s SEARCH [SEARCH ...]] [-c COMMAND]
                    [--gui] [--no-runtime] [-V]
                    [appid] ...
protontricks: error: argument appid: invalid int value: 'uplay'

Faudio installer 404

faudi installer fails with
Executing cd /home/cmg/.cache/winetricks/faudio
Downloading https://web.archive.org/web/2000/https://github.com/Kron4ek/FAudio-Builds/releases/download/git-a756af4/faudio-git-a756af4.tar.xz to /home/cmg/.cache/winetricks/faudio
--2019-06-15 19:13:10-- https://web.archive.org/web/2000/https://github.com/Kron4ek/FAudio-Builds/releases/download/git-a756af4/faudio-git-a756af4.tar.xz
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving web.archive.org (web.archive.org)... 207.241.233.214
Connecting to web.archive.org (web.archive.org)|207.241.233.214|:443... connected.
HTTP request sent, awaiting response... 404 NOT FOUND
2019-06-15 19:13:11 ERROR 404: NOT FOUND.


Downloading https://web.archive.org/web/2000/https://github.com/Kron4ek/FAudio-Builds/releases/download/git-a756af4/faudio-git-a756af4.tar.xz failed

--gui shows 'returned empty string error message' then exits

az@master3900x:~> /home/az/.local/bin/protontricks --gui
winetricks GUI enabled, using zenity 3.32.0
Executing mkdir -p /home/az/.steam/steam/steamapps/compatdata/393380
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
------------------------------------------------------
WINEPREFIX INFO:
Drive C: total 0
drwxr-xr-x 1 az users 126 May 26 22:52 .
drwxr-xr-x 1 az users 126 May 26 22:53 ..
drwxr-xr-x 1 az users  44 May 26 22:52 ProgramData
drwxr-xr-x 1 az users 118 May 26 22:52 Program Files
drwxr-xr-x 1 az users 154 May 26 22:52 Program Files (x86)
drwxr-xr-x 1 az users  30 May 26 22:52 users
drwxr-xr-x 1 az users   6 May 26 22:52 vrclient
drwxr-xr-x 1 az users 462 May 26 22:52 windows

Registry info:
/home/az/.steam/steam/steamapps/compatdata/393380/pfx/system.reg:#arch=win64
/home/az/.steam/steam/steamapps/compatdata/393380/pfx/userdef.reg:#arch=win64
/home/az/.steam/steam/steamapps/compatdata/393380/pfx/user.reg:#arch=win64
------------------------------------------------------
This option is not available. Please see --help for all possible usages.
------------------------------------------------------
/home/az/.cache/protontricks/proton/Proton 5.0/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message "" 
------------------------------------------------------

Python Error: 'utf-8' codec can't decode byte

I encounter the following error when attempting to run protontricks:

user@host:~/.steam/steam/steamapps/common/They Are Billions$ protontricks 644930 -q --force vcrun2017 dotnet472 gdiplus
Traceback (most recent call last):
  File "/usr/local/bin/protontricks", line 11, in <module>
    load_entry_point('protontricks==1.2.3', 'console_scripts', 'protontricks')()
  File "/usr/local/lib/python3.6/dist-packages/protontricks/cli.py", line 227, in main
    steam_path=steam_path, steam_apps=steam_apps, appid=args.appid)
  File "/usr/local/lib/python3.6/dist-packages/protontricks/steam.py", line 444, in find_proton_app
    steam_path=steam_path, steam_apps=steam_apps, appid=appid)
  File "/usr/local/lib/python3.6/dist-packages/protontricks/steam.py", line 402, in find_steam_proton_app
    proton_appid = get_proton_appid(compat_tool_name, appinfo_path)
  File "/usr/local/lib/python3.6/dist-packages/protontricks/steam.py", line 287, in get_proton_appid
    vdf_sections = get_appinfo_sections(appinfo_path)
  File "/usr/local/lib/python3.6/dist-packages/protontricks/steam.py", line 272, in get_appinfo_sections
    vdf_d = vdf.binary_loads(data[i:i+vdf_section_size])
  File "/usr/local/lib/python3.6/dist-packages/vdf/__init__.py", line 337, in binary_loads
    stack[-1][key], idx = read_string(s, idx)
  File "/usr/local/lib/python3.6/dist-packages/vdf/__init__.py", line 305, in read_string
    result = result.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfd in position 12: invalid start byte

This is on a fresh install of python3, pip and protontools. I installed protontools by following the instructions in the README. I tried removing the python packages and reinstalling from scratch, I tried updating everything on my machine, both with pipx and standard pip, no luck.

Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.2 LTS
Release:	18.04
Codename:	bionic

Python 3.6.8
pip 9.0.1 

find_proton_app() rejects non‐official Proton versions

It is possible to install custom Proton versions to compatibilitytools.d (incl. ones that are not Proton at all, like boxtron) in the base Steam directory—e.g., ~/.local/share/Steam/compatibilitytools.d/. However it seems like protontricks will just blanket ignore these versions even if given directly via $PROTON_VERSION:

proton_app = next(
app for app in steam_apps if app.name == proton_version)

It will also not accept them without explicitly requesting it. See:

~> env PROTON_VERSION='proton_tkg_4.13.r0.g3f06c18b.din-fo4' protontricks 377160 winecfg
protontricks (ERROR): $PROTON_VERSION was set but matching Proton installation could not be found.
Proton installation could not be found!
~> protontricks 377160 winecfg
protontricks (ERROR): Could not find the Steam Play manifest in appinfo.vdf
protontricks (ERROR): Could not find Proton's App ID from appinfo.vdf
protontricks (ERROR): Active Proton installation could not be found automatically.
Proton installation could not be found!
~> ls ~/.local/share/Steam/compatibilitytools.d/
proton_tkg_4.11.r6.gfbb8eac8/  proton_tkg_4.12.1.r14.gc95aae10.din/  proton_tkg_4.12.1.r27.g2394b080.din-fo4/  proton_tkg_4.13.r0.g3f06c18b.din-fo4/

Unable to install corefonts

Trying to install corefonts for the game "changed" spits out this:
protontricks 814540 corefonts

------------------------------------------------------
WINEPREFIX INFO:
Drive C: total 32
drwxr-xr-x  8 xxxx 4096 Feb 13 08:39 .
drwxr-xr-x  4 xxxx 4096 Feb 13 09:22 ..
drwxr-xr-x  3 xxxx 4096 Feb 13 08:39 ProgramData
drwxr-xr-x  6 xxxx 4096 Feb 13 08:56 Program Files
drwxr-xr-x  7 xxxx 4096 Feb 13 08:56 Program Files (x86)
drwxr-xr-x  4 xxxx 4096 Feb 13 08:39 users
drwxr-xr-x  3 xxxx 4096 Feb 13 08:39 vrclient
drwxr-xr-x 18 xxxx 4096 Feb 13 08:56 windows

Registry info:
/home/xxxx/.steam/steam/steamapps/compatdata/814540/pfx/system.reg:#arch=win64
/home/xxxx/.steam/steam/steamapps/compatdata/814540/pfx/user.reg:#arch=win64
/home/xxxx/.steam/steam/steamapps/compatdata/814540/pfx/userdef.reg:#arch=win64
------------------------------------------------------
------------------------------------------------------
/home/xxxx/.steam/steam/steamapps/common/Proton 5.0/dist/bin/wine cmd.exe /c echo '%ProgramFiles%' returned empty string, error message ""

Using the gui returns this:

Running /home/xxxx/.steam/steam/steamapps/common/Proton 4.11/dist/bin/wineserver -w. This will hang until all wine processes in prefix=/home/xxxx/.steam/steam/steamapps/compatdata/814540/pfx terminate

edit: i updated winetricks and it work lol

validity check fails

Making package: protontricks 1.3-1 (Sat 09 Nov 2019 06:17:57 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found 1.3.tar.gz
==> Validating source files with sha512sums...
1.3.tar.gz ... FAILED
==> ERROR: One or more files did not pass the validity check!

how to disable something instead of enabling?

I can't figure this one out.

for example with gallium nine,

I've tried : /home/t/.steam/steam/steamapps/common/Proton\ 4.2/dist/bin/wine ninewinecfg -d
but this gets me :

0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0012:err:ole:get_local_server_stream Failed: 80004002
0010:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:mscoree:LoadLibraryShim error reading registry key for installroot
0010:err:msi:execute_command unable to execute command 2
0010:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0010:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
wine: configuration in '/home/t/.wine' has been updated.
wine: cannot find L"C:\\windows\\system32\\ninewinecfg.exe"

so clearly only protontricks knows the context. how do I disable gallium nine?

%AppData% returned unexpanded string error

protontricks (INFO): Found Steam directory at /home/name/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
protontricks (INFO): Using default Steam Runtime at /home/name/.steam/root/ubuntu12_32/steam-runtime
protontricks (INFO): WINETRICKS environment variable is not available. Searching from $PATH.
protontricks (INFO): Found 1 Steam library folders
protontricks (INFO): Currently logged-in Steam user: name
protontricks (INFO): Couldn't find custom shortcuts. Maybe none have been created yet?
protontricks (INFO): Found active Proton installation: Proton 5.0
protontricks (INFO): WINE environment variable is not available. Setting WINE environment variable to Proton bundled version
protontricks (INFO): WINESERVER environment variable is not available. Setting WINESERVER environment variable to Proton bundled version
protontricks (INFO): Created Steam Runtime Wine binary directory at /home/name/.cache/protontricks/proton/Proton 5.0/bin
protontricks (INFO): Attempting to run command ['/usr/bin/winetricks', 'ffdshow']
Executing mkdir -p /run/media/name/DATA/steam_linux/steamapps/compatdata/368370
------------------------------------------------------
WINEPREFIX INFO:
Drive C: total 0
drwxrwxrwx 1 edwin edwin 368 Jul  5 16:30 .
drwxrwxrwx 1 edwin edwin 472 Jul  5 16:40 ..
drwxrwxrwx 1 edwin edwin 144 Jul  5 16:30 Program Files (x86)
drwxrwxrwx 1 edwin edwin 136 Jul  5 16:30 vrclient
drwxrwxrwx 1 edwin edwin 144 Jul  5 16:30 windows

Registry info:
/run/media/name/DATA/steam_linux/steamapps/compatdata/368370/pfx/system.reg:#arch=win64
/run/media/name/DATA/steam_linux/steamapps/compatdata/368370/pfx/userdef.reg:#arch=win64
/run/media/name/DATA/steam_linux/steamapps/compatdata/368370/pfx/user.reg:#arch=win64
------------------------------------------------------
------------------------------------------------------
/home/name/.cache/protontricks/proton/Proton 5.0/bin/wine cmd.exe /c echo '%AppData%' returned unexpanded string 'C:\Program Files (x86)' ... this can be caused by a corrupt wineprefix (`wineboot -u` may help), by an old wine, or by not owning /run/media/name/DATA/steam_linux/steamapps/compatdata/368370/pfx
------------------------------------------------------

I am running manjaro. Also I dunno if relevant, but the game is on an NTFS partition

GUI Error..

I'm using Ubuntu 18.04.2 LTS.
I followed and installed everything using pipx.
The gui starts but i can't choose steamlibrary, the only buttons that works is "Ok" and "Cancel".
After that the gui shutsdown and giving me this:

Traceback (most recent call last):
File "/home/chillabis/.local/bin/protontricks", line 11, in
load_entry_point('protontricks==1.2', 'console_scripts', 'protontricks')()
File "/home/chillabis/.local/pipx/venvs/protontricks/lib/python3.6/site-packages/protontricks/cli.py", line 170, in main
steam_app = select_steam_app_with_gui(steam_apps=steam_apps)
File "/home/chillabis/.local/pipx/venvs/protontricks/lib/python3.6/site-packages/protontricks/gui.py", line 27, in select_steam_app_with_gui
appid = int(appid)
ValueError: invalid literal for int() with base 10: '

Slightly wrong compatibilitytools.d searching?

Per https://github.com/ValveSoftware/Proton/blob/proton_3.16/Makefile :: install directive, and the variable at the top for calculating the STEAM_DIR the correct/another search path for local builds seems to be $HOME/.steam/root/compatibilitytools.d

$HOME/.steam/root for me on one machine a symlink back to .steam while the other points as currently expected to $HOME/.steam/steam

Not sure of how you want to tweak get_custom_proton_installations() to handle that wonky-ness else I would do a PR. Hacky thought below:

if not os.path.isdir(comp_root):
    #try again at path used by proton's make install
    comp_root = os.path.join(os.environ['HOME'],'.steam','root','compatibilitytools.d')
    if not os.path.isdir(comp_root):
        return []

Ubuntu 20.04: Protontricks failed to install

Hello,

I follow your guide, install necessary packages, but when I try to install Protontricks I obtained this message:

$ pipx install --spec git+https://github.com/Matoking/protontricks.git protontricks
usage: pipx [-h] [--version] {install,inject,upgrade,upgrade-all,uninstall,uninstall-all,reinstall-all,list,run,runpip,ensurepath,completions} ...
pipx: error: unrecognized arguments: --spec protontricks

If I launch PRotontricks version installed before I upgraded to Ubuntu 20.04:

$ protontricks
Traceback (most recent call last):
  File "/home/legluondunet/.local/bin/protontricks", line 6, in <module>
    from pkg_resources import load_entry_point
ModuleNotFoundError: No module named 'pkg_resources'

My Python 3 version:

$ python3 --version Python 3.8.2

Thank you for your help.

Use steam runtime to execute proton-wine (copied from old repo)

Source:
Sirmentio/protontricks#39

Impacting my copy of protontricks from here as of a few days ago.

OS: Ubuntu 18.04.1 LTS
Steam Proton version: 3.16.7 Beta
GPU: AMD RX550


Proton wine is built against the steam runtime and a number of issues with winetricks/wineserver/winebus etc arise if they are ran on a system with incomplete, or mismatching library versions. For example, steam-runtime and thus proton-wine-3.16 is built against libpng-12 while ubuntu 18.04 has libpng-16.

My execution looked like this to get the whole of protontricks into the runtime:

$HOME/.steam/ubuntu12_32/steam-runtime/run.sh protontricks 359320


Here is my actual command for Snow:

$HOME/.steam/steam/ubuntu12_32/steam-runtime/run.sh protontricks 244930

WINELOADER and WINEDLLPATH are not set

It's a very minor thing, but WINELOADER should be set to $WINE so that commands like winecfg can successfully launch. Otherwise protontricks -c winecfg <appid> will give an error:

wine: failed to initialize: /home/vagrant/build-proton_4.2-local/dist-wine32/lib/wine/ntdll.dll.so: cannot open shared object file: No such file or directory

This is because winecfg, regedit, wineboot etc are all identical shell scripts that contain the lines

# determine the app Winelib library name
appname=`basename "$0" .exe`.exe

# first try explicit WINELOADER
if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

If WINELOADER is not set then the system wine will be used.

Current workarounds are:
protontricks -c 'wine winecfg' <appid>
protontricks -c 'WINELOADER="${WINE}" winecfg' <appid>


WINEDLLPATH should be set simply because the proton script does. It should point to the wine directory in the proton library paths e.g:
WINEDLLPATH=$HOME/.local/share/Steam/steamapps/common/Proton 4.2/dist/lib64/wine:$HOME/.local/share/Steam/steamapps/common/Proton 4.2/dist/lib/wine

The GUI doesn't work for every game

If I try to launch the GUI for Skyrim SE it gives the following output and quits.

free(): double free detected in tcache 2
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/protontricks/gui.py", line 23, in select_steam_app_with_gui
'--combo-values', combo_values
File "/usr/lib/python3.7/subprocess.py", line 395, in check_output
**kwargs).stdout
File "/usr/lib/python3.7/subprocess.py", line 487, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['zenity', '--forms', '--text=Steam Game Library', '--title=Choose Game', '--add-combo', 'Pick a library game', '--combo-values', 'LEGO® Star Wars™ III: The Clone Wars™: 32510|LEGO® Star Wars™: The Complete Saga: 32440|MX vs. ATV Reflex: 55140|PC Building Simulator: 621060|RIDE 3: 759740|STAR WARS™ Battlefront (Classic, 2004): 1058020|STAR WARS™ Episode I Racer: 808910|STAR WARS™ Starfighter™: 32350|STAR WARS™: Knights of the Old Republic™: 32370|STAR WARS™: The Force Unleashed™ II: 32500|STAR WARS™: The Force Unleashed™ Ultimate Sith Edition: 32430|Star Wars: Battlefront 2 (Classic, 2005): 6060|Street Fighter 30th Anniversary Collection: 586200|The Elder Scrolls IV: Oblivion : 22330|The Elder Scrolls V: Skyrim Special Edition: 489830|The Witcher 3: Wild Hunt: 292030|The Witcher: Enhanced Edition: 20900|Ultra Street Fighter IV: 45760|Victoria II: 42960']' died with <Signals.SIGABRT: 6>.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/protontricks", line 11, in
load_entry_point('protontricks==1.2.1+4.g1d982a7', 'console_scripts', 'protontricks')()
File "/usr/lib/python3.7/site-packages/protontricks/cli.py", line 174, in main
steam_app = select_steam_app_with_gui(steam_apps=steam_apps)
File "/usr/lib/python3.7/site-packages/protontricks/gui.py", line 34, in select_steam_app_with_gui
raise RuntimeError("Zenity returned an error or cancel was clicked")
RuntimeError: Zenity returned an error or cancel was clicked

Noticed while pasting this that it says I double-clicked but I didn't. I did the same as I always do.

protontricks does not find Deadlight (211400)

When I try to use protontricks with a game, no longer available on the Steam Store, it will fail and give this message:

$ protontricks 211400 --gui
Steam app with the given app ID could not be found. Is it installed, Proton compatible and have you launched it at least once? You can search for the app ID using the following command:
$ protontricks -s <GAME NAME>

It would be great if protontricks would work on all installed games, not only those still available.

Can't intall Protontrics via pipx Ubuntu 20.04

See terminal:
$ pipx install protontricks
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/igor/.local/pipx/shared/lib/python3.8/site-packages/pip/main.py", line 16, in
from pip._internal.cli.main import main as _main # isort:skip # noqa
File "/home/igor/.local/pipx/shared/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 10, in
from pip._internal.cli.autocompletion import autocomplete
File "/home/igor/.local/pipx/shared/lib/python3.8/site-packages/pip/_internal/cli/autocompletion.py", line 9, in
from pip._internal.cli.main_parser import create_main_parser
File "/home/igor/.local/pipx/shared/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py", line 7, in
from pip._internal.cli import cmdoptions
File "/home/igor/.local/pipx/shared/lib/python3.8/site-packages/pip/_internal/cli/cmdoptions.py", line 24, in
from pip._internal.exceptions import CommandError
File "/home/igor/.local/pipx/shared/lib/python3.8/site-packages/pip/_internal/exceptions.py", line 10, in
from pip._vendor.six import iteritems
ModuleNotFoundError: No module named 'pip._vendor.six'

Error installing protontricks.

Confusing 'usage' message.

Usage message (shown when something is wrong with command-line parameters), suggests a wrong order of parameters:

usage: protontricks [-h] [--verbose] [-s SEARCH [SEARCH ...]] [-c COMMAND] [--gui] [--no-runtime] [-V] [appid] ...

AFAIK, appid should always be a first parameter.

Doesn't work on Ubuntu 19.10

It fails with:

protontricks 261550 dotnet472
Traceback (most recent call last):
  File "/home/vadi/.local/bin/protontricks", line 8, in <module>
    sys.exit(main())
  File "/home/vadi/.local/pipx/venvs/protontricks/lib/python3.7/site-packages/protontricks/cli.py", line 150, in main
    steam_lib_paths=steam_lib_paths
  File "/home/vadi/.local/pipx/venvs/protontricks/lib/python3.7/site-packages/protontricks/steam.py", line 791, in get_steam_apps
    steam_apps += get_custom_windows_shortcuts(steam_path=steam_path)
  File "/home/vadi/.local/pipx/venvs/protontricks/lib/python3.7/site-packages/protontricks/steam.py", line 709, in get_custom_windows_shortcuts
    steamid3 = find_current_steamid3(steam_path)
  File "/home/vadi/.local/pipx/venvs/protontricks/lib/python3.7/site-packages/protontricks/steam.py", line 659, in find_current_steamid3
    content = f.read()
  File "/usr/lib/python3.7/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in position 1: invalid continuation byte

Protontricks GUI doesn't work with Proton 5.0-1

When I try to open the GUI with protontricks with Proton 5.0-1 it fails with undefined symbol error:

  • Distro version: Manjaro Linux
  • Proton version: 5.0-1
$ protontricks --version
protontricks (1.3.1)

$ winetricks --version
20191224 - sha256sum: afe039a7d72553cb761f0367f9f2085b92af8caf86e025c34bbc1fdd89a1f9ee

$ protontricks 244850 --gui
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
winetricks GUI enabled, using zenity 
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
Using winetricks 20191224 - sha256sum: afe039a7d72553cb761f0367f9f2085b92af8caf86e025c34bbc1fdd89a1f9ee with wine-5.0 and WINEARCH=win64
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
winetricks GUI enabled, using zenity 
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time

On the official proton repository It has been suggested that protontricks empty LD_LIBRARY_PATH before it calls zenity.

UPDATE
I've noticed that my protontricks version was outdated, but even with version 1.4 it's the same:

$ pipx upgrade-all 
upgraded package protontricks from 1.3.1 to 1.4 (location: /home/noxp/.local/pipx/venvs/protontricks)

$ protontricks --version   
protontricks (1.4)

$ protontricks 244850 --gui
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
winetricks GUI enabled, using zenity 
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
Using winetricks 20191224 - sha256sum: afe039a7d72553cb761f0367f9f2085b92af8caf86e025c34bbc1fdd89a1f9ee with wine-5.0 and WINEARCH=win64
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
winetricks GUI enabled, using zenity 
zenity: symbol lookup error: /usr/lib/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time

Stop suggesting running pip as root

Mostly the system pip shouldn't be run at all, but especially not with root. There is a warning about it possibly causing issues but it would be better to actively discourage it and show the reasonable alternatives.

Here's a reference PR.
https://github.com/pypa/virtualenv/pull/1283/files

There's pipx, pipsi, and venvs for managing envs for installing packages as 'programs', as opposed to for development. There's both virtualenv and venv for manually creating the virtual environment.

Keep in mind that --user can still cause trouble with system packages. It's less hazardous than using sudo with pip or otherwise running it as root, but it can still break the system packages for the user that does the install.

bit.ly/py-env is an intro to setting up envs.

Can protontricks be used with Non-Steam games?

Hi! First of all, thanks for your effort developing this tool. I'm using Arch Linux but I installed Steam with Flatpak. I followed the Flatpak usage instructions but whenever I try to run protontricks --gui it says:

Found no games. You need to launch a game at least once before protontricks can find it.

Is it possible at all to run this for Non-Steam games? I'd like to apply Gallium Nine to Guild Wars 2 but I added it through Steam so I could take advantage of Proton.

Thanks.

Active Proton installation could not be found automatically.

I've installed the AUR package and trying it run it for the first time

$ protontricks -v 359320 -q dotnet40 win7
protontricks (INFO): Found Steam directory at /home/viesturs/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
protontricks (INFO): Using default Steam Runtime at /home/viesturs/.steam/root/ubuntu12_32/steam-runtime
protontricks (INFO): WINETRICKS environment variable is not available. Searching from $PATH.
protontricks (INFO): Found 1 Steam library folders
protontricks (INFO): Multiple compatdata directories found for app 242920
protontricks (INFO): Currently logged-in Steam user: whatever
protontricks (INFO): Found 0 Steam shortcuts running under Proton
protontricks (ERROR): Active Proton installation could not be found automatically.
Proton installation could not be found!

I tried setting PROTON_VERSION="Proton 5.0", but have no idea what value is expected here. With several variations I always get

$PROTON_VERSION was set but matching Proton installation could not be found.

The latest Proton version installed in Steam is Proton 5.0-3 and games run without problems.

I tried adding some more logs to see what's going on in the

def find_steam_proton_app(steam_path, steam_apps, appid=None):

protontricks (INFO): steam_apps:['Banished(242920)', 'Bloodstained: Ritual of the Night(692850)', 'Book of Demons(449960)', 'CHRONO TRIGGER(613830)', 'CrossCode(368340)', 'Elite Dangerous(359320)', 'GRIS(683320)', 'NieR:Automata™(524220)', 'Proton 3.16 Beta(996510)', 'Proton 3.7(858280)', 'Wolcen: Lords of Mayhem(424370)']
protontricks (INFO): steam_path:/home/viesturs/.steam/steam
protontricks (INFO): potential_names:[None, 'proton_5', None, None]
protontricks (INFO): compat_tool_name:proton_5
protontricks (INFO): proton_appid:1245040
protontricks (ERROR): Active Proton installation could not be found automatically.
Proton installation could not be found!

So the right proton was found here, but it's not in steam_apps for some reason?

Proton installation could not be found!

Install protontricks from Aur but im getting this error -
protontricks (ERROR): No Proton installation found in config.vdf protontricks (ERROR): Active Proton installation could not be found automatically. Proton installation could not be found!

How can i fix this problem?

flatpak: cabextract workaround

I stumbled upon a game that has gold reports on protondb, but requires protontricks modifications. Therefore I followed the steps in the wiki to get that set up. I came across the same problems as in #25, but that has since been solved. Then, the problem was that cabextract was missing.

The wiki states that the flatpak version of steam does not include some libraries used by winetricks.

Workaround

The solution I found was adding it manually:

Compile latest

git clone https://github.com/kyz/libmspack.git
cd libmspack/cabextract
./autogen.sh

/usr/local/bin is read-only inside the flatpak, adding the prefix becomes necessary

./configure --prefix=$HOME/.local

gcc (requirement) is not present in the flatpak, the compilation needs to be made outside

make

Install it inside the flatpak

cd ..
mv cabextract $HOME/.var/app/com.valvesoftware.Steam
flatpak run --command=bash com.valvesoftware.Steam
cd cabextract
make install
exit

Add path to PATH as env

The last step is to add the binary located in .local/bin to the command. As it is the same location as the protontricks binary, the path to it is no longer necessary, changing the alias in the .bashrc file to:

alias protontricks-flat='flatpak run --env=WINETRICKS=$HOME/winetricks --env=STEAM_RUNTIME=0 --env=PATH=$PATH:$HOME/.local/bin --command=protontricks com.valvesoftware.Steam'

I suppose adding other libraries would be similar, but I haven't had the need yet.

@Matoking I dunno if you want this in the wiki or not, as its kinda specific to cabextract and might be clutter for people that don't require it.

Either way, if someone comes looking for an answer, I hope this points them in the right direction!

'%AppData%' returned empty string, error message

Describe the bug
[wintere@wintere-nuc8i5beh ~]$ protontricks 35140 mdx d3dx9 d3dcompiler_43 win10
Github down? version '' doesn't appear to be a valid version

Executing mkdir -p /home/wintere/.steam/steam/steamapps/compatdata/35140

You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.

WINEPREFIX INFO:
Drive C: 总用量 32
drwxr-xr-x 8 wintere wintere 4096 8月 23 17:00 .
drwxr-xr-x 4 wintere wintere 4096 8月 23 17:07 ..
drwxr-xr-x 3 wintere wintere 4096 8月 23 17:00 ProgramData
drwxr-xr-x 6 wintere wintere 4096 8月 23 17:00 Program Files
drwxr-xr-x 8 wintere wintere 4096 8月 23 17:01 Program Files (x86)
drwxr-xr-x 4 wintere wintere 4096 8月 23 17:00 users
drwxr-xr-x 3 wintere wintere 4096 8月 23 17:00 vrclient
drwxr-xr-x 19 wintere wintere 4096 8月 23 17:01 windows

Registry info:
/home/wintere/.steam/steam/steamapps/compatdata/35140/pfx/system.reg:#arch=win64
/home/wintere/.steam/steam/steamapps/compatdata/35140/pfx/userdef.reg:#arch=win64
/home/wintere/.steam/steam/steamapps/compatdata/35140/pfx/user.reg:#arch=win64

/home/wintere/.cache/protontricks/proton/Proton 5.0/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message ""

System :

  • Distro: Manjaro 20.1 Mikah
  • Protontricks version: protontricks (1.4.1)
  • Steam version: Steam_ Beta_Update(steam-manjaro 1.0.0.64-1)

Additional context
[wintere@wintere-nuc8i5beh ~]$ protontricks -v 35140 mdx d3dx9 d3dcompiler_43 win10
protontricks (INFO): Found Steam directory at /home/wintere/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
protontricks (INFO): Using default Steam Runtime at /home/wintere/.steam/root/ubuntu12_32/steam-runtime
protontricks (INFO): WINETRICKS environment variable is not available. Searching from $PATH.
protontricks (INFO): Found 0 Steam library folders
protontricks (INFO): Currently logged-in Steam user: drunkenbell
protontricks (INFO): Couldn't find custom shortcuts. Maybe none have been created yet?
protontricks (INFO): Found active Proton installation: Proton 5.0
protontricks (INFO): WINE environment variable is not available. Setting WINE environment variable to Proton bundled version
protontricks (INFO): WINESERVER environment variable is not available. Setting WINESERVER environment variable to Proton bundled version
protontricks (INFO): Created Steam Runtime Wine binary directory at /home/wintere/.cache/protontricks/proton/Proton 5.0/bin
protontricks (INFO): Attempting to run command ['/usr/bin/winetricks', 'mdx', 'd3dx9', 'd3dcompiler_43', 'win10']

Github down? version '' doesn't appear to be a valid version

Executing mkdir -p /home/wintere/.steam/steam/steamapps/compatdata/35140

You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.

WINEPREFIX INFO:
Drive C: 总用量 32
drwxr-xr-x 8 wintere wintere 4096 8月 23 17:00 .
drwxr-xr-x 4 wintere wintere 4096 8月 23 18:06 ..
drwxr-xr-x 3 wintere wintere 4096 8月 23 17:00 ProgramData
drwxr-xr-x 6 wintere wintere 4096 8月 23 17:00 Program Files
drwxr-xr-x 8 wintere wintere 4096 8月 23 17:01 Program Files (x86)
drwxr-xr-x 4 wintere wintere 4096 8月 23 17:00 users
drwxr-xr-x 3 wintere wintere 4096 8月 23 17:00 vrclient
drwxr-xr-x 19 wintere wintere 4096 8月 23 17:01 windows

Registry info:
/home/wintere/.steam/steam/steamapps/compatdata/35140/pfx/system.reg:#arch=win64
/home/wintere/.steam/steam/steamapps/compatdata/35140/pfx/userdef.reg:#arch=win64
/home/wintere/.steam/steam/steamapps/compatdata/35140/pfx/user.reg:#arch=win64

/home/wintere/.cache/protontricks/proton/Proton 5.0/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message ""

SteamOS

Is there a way to install this on SteamOS?

I am asking because I already invested several days into trying to get this installed on my Steam Machine (lastest SteamOS updates installed), without any success.

The recommended way of installing via pipx does not work because this requires Python 3.6 or newer, and SteamOS only has Python 2.7.9 and Python 3.4.2 in its repository:

desktop@steamos:~$ python --version
Python 2.7.9
desktop@steamos:~$ python3 --version
Python 3.4.2

So I tried the other (not recommended) way of installing Protontricks (via pip), because according to the README this is supposed to work on any system where any version of Python3 is available.
But on SteamOS the installation of pip is failing due to unresolved dependencies.

desktop@steamos:~/Downloads/Python-3.7.6$ sudo apt install python3-pip python3-setuptools
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 python3-pip : Hängt ab von: python3-colorama ist aber nicht installierbar
               Hängt ab von: python3-distlib ist aber nicht installierbar
               Hängt ab von: python3-html5lib ist aber nicht installierbar
               Hängt ab von: python3-requests ist aber nicht installierbar
               Empfiehlt: build-essential soll aber nicht installiert werden
               Empfiehlt: python3-dev (>= 3.2) soll aber nicht installiert werden
               Empfiehlt: python3-wheel ist aber nicht installierbar
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

Quiet / Expert mode

Could there be a option to run protontricks in gui mode with less pop-ups? In particular some of the following warnings:

  • Not 32 bit warning
  • Working around wine bug
  • Setting windows versions
  • Running x, this will hang until...
  • Etc.

It would really help when you are trying to install something and just want to see if it will work. (I.E Installing .net to test if another tool will even run.)

It would be fine to still log the issues, just don't make me hit OK 50 times on top of everything else.

Howto use with flatpaked Steam?

I wonder - does anyone know howto use Protontricks when you use flatpaked Steam? Would be awesome if it could be done -I've switched to Flatpak Steam as it gave the least amount of issues (to be precise - no issues at all :D ), but there are still games that require tweaks when using Proton and I'd love to have an easy way to apply those.

Curl error: symbol lookup error

I encountered the following problem when installing Windows DLL's and components, such as galliumnine standalone:

[user@fedora-silverblue ~]$ protontricks-flat --gui
winetricks GUI enabled, using zenity 3.30.0
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20190615-next - sha256sum: 2d3311f8cc0783b747c4e074008e701f2ce844765ba53d2fd4d27126d1df2383 with wine-4.2 and WINEARCH=win64
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
------------------------------------------------------
Github down? version '' doesn't appear to be a valid version
------------------------------------------------------
winetricks GUI enabled, using zenity 3.30.0
Executing w_do_call galliumnine
Executing load_galliumnine 
Executing cd /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
Downloading https://github.com/iXit/wine-nine-standalone/releases/download//gallium-nine-standalone-.tar.gz to /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
Executing cd /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
Downloading https://web.archive.org/web/2000/https://github.com/iXit/wine-nine-standalone/releases/download//gallium-nine-standalone-.tar.gz to /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
------------------------------------------------------
Downloading https://web.archive.org/web/2000/https://github.com/iXit/wine-nine-standalone/releases/download//gallium-nine-standalone-.tar.gz failed
------------------------------------------------------

I have tried downgrading the following so far: protontricks to the release 1.2.2, winetricks to the point release 20190615, and org.freedesktop.Platform to the commit 5c0dd88790d99d5aee62c9a471a9e38b1b7ccbe6b3f9e144dfc9169821755990 (I'm using Flatpak Steam).
I have also done a clean installation of Fedora Workstation 30 in a virtual machine to check if something on my installation of Fedora Silverblue 30 causes the error in question, but the issue persisted. However, I do not recall encountering this error 10 days ago when I was still using Fedora Workstation 30. I'm looking forward to hearing any clue as to what is to blame even though it might not be in this project's scope to solve it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.