Giter VIP home page Giter VIP logo

protontricks's Introduction

Hi!

'Sup? My names HunnyBon (Github "sirmentio"), and I like to program, among other things. I enjoy videogames of most kinds, and ways to modify them.

Stuff about me

  • 💕 I like community to be held as high as code.

    • The people are as important as the code made by them.
    • If someone doesn't enjoy a community they won't make good code.
    • Anything less wouldn't be fun!
  • 🎨 I like to make art.

    • I suppose icons count as art?
    • If I could grasp music theory I'd make so much music alongside code.
    • You could say any program is a piece of art.
  • 📝 I like to write.

    • Code, of course.
    • But also just write in general.
    • Worldbuilding makes me giddy.

What do I know?

Java Python Kotlin

protontricks's People

Contributors

bobwya avatar curioustommy avatar danielhlane avatar denispapec avatar gabmus avatar matoking avatar simons-public avatar sirmentio avatar

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

protontricks's Issues

Protontricks doesn't know about $STEAM_DIR/compatibilitytools.d/

Steam allows adding custom versions of Proton using the compatibilitytools.d directory in $STEAM_DIR.

Example:
/home/$USER/.local/share/Steam/compatibilitytools.d/Proton 3.16 dxvk-master/

Inside Proton 3.16 dxvk-master/ is a file compatibilitytool.vdf, which Steam reads to register the installed version.

compatibilitytool.vdf:

"compatibilitytools"
{
  "compat_tools"
  {
    "Proton 3.16 dxvk-master" // Internal name of this tool
    {
      // Can register this tool with Steam in two ways:
      //
      // - The tool can be placed as a subdirectory in compatibilitytools.d, in which case this
      //   should be '.'
      //
      // - This manifest can be placed directly in compatibilitytools.d, in which case this should
      //   be the relative or absolute path to the tool's dist directory.
      "install_path" "."

      // For this template, we're going to substitute the display_name key in here, e.g.:
      "display_name" "Proton 3.16 dxvk-master"

      "from_oslist"  "windows"
      "to_oslist"    "linux"
    }
  }
}

The "display_name" key is optional. If not set, Steam will use the internal name as display name

Use steam runtime to execute proton-wine

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

AttributeError with proton 3.16-3beta

Hello there.
i tried protontricks some weeks ago and it worked without a hassle , but now after a clean new install i get following error:

[INFO] Found Steam directory at /home/mike/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
[INFO] Found 1 Steam library folders
Traceback (most recent call last):

  File "/usr/bin/protontricks", line 294, in <module>
    steam_apps = get_steam_apps(steam_lib_dirs)
  File "/usr/bin/protontricks", line 235, in get_steam_apps
    SteamApp.from_appmanifest(path) for path in appmanifest_paths
  File "/usr/bin/protontricks", line 235, in <listcomp>
    SteamApp.from_appmanifest(path) for path in appmanifest_paths
  File "/usr/bin/protontricks", line 88, in from_appmanifest
    appid = int(re.search(r'(\t"appid"\s+")([0-9]+)', content).group(2))
AttributeError: 'NoneType' object has no attribute 'group'

i am using proton 3.16-3 beta
any ideas, what i could do?

Protontricks fail with python syntax error.

I think latest commit introduced a bug, which makes protontricks fail with python syntax error.

$ python3 -V
Python 3.5.3
$ ./protontricks
  File "./protontricks", line 364
    combo_values = "|".join([f'{app.name}: {app.appid}' for app in steam_apps])
                                                      ^
SyntaxError: invalid syntax

Installing Windows Libraries

Hello

I try to install Media Foundation for Resident Evil 2, but I got stuck at an uncommon message.

/data/steam/steamapps/common/Proton 5.0/dist/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message ""

[rmoritz@ArchLinux ~]$ protontricks --no-runtime --gui
winetricks GUI enabled, using zenity 3.32.0
Executing mkdir -p /data/steam/steamapps/compatdata/883710
------------------------------------------------------
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: insgesamt 36
drwxr-xr-x  8 rmoritz rmoritz 4096 16. Feb 2020  .
drwxr-xr-x  4 rmoritz rmoritz 4096 14. Sep 14:49 ..
drwxr-xr-x  4 rmoritz rmoritz 4096 16. Feb 2020  ProgramData
drwxr-xr-x  6 rmoritz rmoritz 4096 16. Feb 2020  Program Files
drwxr-xr-x  7 rmoritz rmoritz 4096 16. Feb 2020  Program Files (x86)
drwxr-xr-x  6 rmoritz rmoritz 4096 16. Feb 2020  users
drwxr-xr-x  3 rmoritz rmoritz 4096 16. Feb 2020  vrclient
drwxr-xr-x 20 rmoritz rmoritz 4096 13. Sep 15:35 windows
-rw-r--r--  1 rmoritz rmoritz    9 16. Feb 2020  .windows-serial

Registry info:
/data/steam/steamapps/compatdata/883710/pfx/system.reg:#arch=win64
/data/steam/steamapps/compatdata/883710/pfx/userdef.reg:#arch=win64
/data/steam/steamapps/compatdata/883710/pfx/user.reg:#arch=win64
------------------------------------------------------
Diese Option steht nicht zur Verfügung. Bitte verwenden Sie »--help« für alle Anwendungsmöglichkeiten.
------------------------------------------------------
/data/steam/steamapps/common/Proton 5.0/dist/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message "" 
------------------------------------------------------

I know it is warning me about using a 64bit prefix but the error message intend there is another problem. So I tried to enter the command manually and it returned "C:\users\steamuser\Application Data" instead of an empty String. It appeared after installing the Media Foundation for the first time. In the system folder of windows where the prefix of Resident Evil 2 is directed to I can see the mf*.dll's

[rmoritz@ArchLinux ~]$ /data/steam/steamapps/common/Proton\ 5.0/dist/bin/wine cmd.exe /c echo '%AppData%'
wineserver: using server-side synchronization.
0034:err:module:__wine_process_init L"C:\\windows\\system32\\winemenubuilder.exe" not found
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126).
006c:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\wineusb": c0000142
003c:fixme:service:scmdatabase_autostart_services Auto-start service L"wineusb" failed to start: 1114
C:\users\steamuser\Application Data
[rmoritz@ArchLinux system32]$ pwd
/data/steam/steamapps/compatdata/883710/pfx/drive_c/windows/system32
[rmoritz@ArchLinux system32]$ ls -l mf*.dll
-rw-r--r-- 1 rmoritz rmoritz    1544 13. Sep 15:29 mf3216.dll
-rw-r--r-- 1 rmoritz rmoritz   46760  7. Feb 2017  mfc140chs.dll
-rw-r--r-- 1 rmoritz rmoritz   46760  7. Feb 2017  mfc140cht.dll
-rw-r--r-- 1 rmoritz rmoritz   75432  7. Feb 2017  mfc140deu.dll
-rw-r--r-- 1 rmoritz rmoritz 6031520  7. Feb 2017  mfc140.dll
-rw-r--r-- 1 rmoritz rmoritz   65704  7. Feb 2017  mfc140enu.dll
-rw-r--r-- 1 rmoritz rmoritz   74408  7. Feb 2017  mfc140esn.dll
-rw-r--r-- 1 rmoritz rmoritz   75432  7. Feb 2017  mfc140fra.dll
-rw-r--r-- 1 rmoritz rmoritz   73384  7. Feb 2017  mfc140ita.dll
-rw-r--r-- 1 rmoritz rmoritz   54952  7. Feb 2017  mfc140jpn.dll
-rw-r--r-- 1 rmoritz rmoritz   53928  7. Feb 2017  mfc140kor.dll
-rw-r--r-- 1 rmoritz rmoritz   71336  7. Feb 2017  mfc140rus.dll
-rw-r--r-- 1 rmoritz rmoritz 6060704  7. Feb 2017  mfc140u.dll
-rw-r--r-- 1 rmoritz rmoritz  105120  7. Feb 2017  mfcm140.dll
-rw-r--r-- 1 rmoritz rmoritz  105640  7. Feb 2017  mfcm140u.dll
-rw-r--r-- 1 rmoritz rmoritz 4120064 12. Sep 21:08 mf.dll
-rw-r--r-- 1 rmoritz rmoritz  213096 13. Sep 15:29 mferror.dll
-rw-r--r-- 1 rmoritz rmoritz    3324 13. Sep 15:29 mfmediaengine.dll
-rw-r--r-- 1 rmoritz rmoritz    9736 13. Sep 15:29 mfplat.dll
-rw-r--r-- 1 rmoritz rmoritz    1544 13. Sep 15:29 mfplay.dll
-rw-r--r-- 1 rmoritz root     206848 16. Feb 2020  mfps.dll
-rw-r--r-- 1 rmoritz rmoritz  257024 16. Feb 2020  mfreadwrite.dll

If I will select another game/gamid with protontricks and i think in the backend there is winetricks - everything is working correctly.

protontricks --no-runtime 17460 --gui

Can't detect non-Steam proton added games

As title says, I used the APPID or the number provided in the .steam/steam compatdata folder after running a non-steam added game assuming it was assigned that number, but protontricks just says you don't have game with that ID.

Also tried the game ID given in terminal when launching said non-steam game and that doesn't help.

Perhaps add a function where it just searches for the compatdata folder and assumes that as the APPID ?

UnboundedLocalError

Hey there,
Running protontricks on a game, or even the gui, produces the following error:

Traceback (most recent call last):
File "/usr/bin/protontricks", line 309, in
steam_lib_dirs = get_steam_lib_dirs(steam_dir)
File "/usr/bin/protontricks", line 222, in get_steam_lib_dirs
with open(folders_vdf_path, "r") as f:
UnboundLocalError: local variable 'folders_vdf_path' referenced before assignment`

Any ideas on how to resolve this?

Proton and the game being in different libraries fails

I have two steam libraries, one on my HDD and one for particularly read-heavy games on my SSD. Because of how valve set it up, proton installs to the last library you installed to rather than letting you pick or targeting your primary library. In my case, Proton landed on my SSD, in /usr/local/steam/.... As far as I can tell, there's no way to configure protontricks to locate proton in one library when the game itself resides in another (such as ~/.steam/steam/...). I manually moved proton back to my main library for the time being, but having to move it each time I need to use protontricks... well, will make me not use it.

EDIT: And while I could likely remedy this for myself with a symlink (both partitions are ext4), people with libraries on filesystems that don't support symlinks properly won't have that luxury.

WINE is /home/bill/.steam/steam/steamapps/common/Proton 5.0/dist/bin/wine, which is neither on the path nor an executable file

I can not use protontricks on fedora 31
[INFO] Found Steam directory at /home/bill/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
[INFO] Found 0 Steam library folders
[INFO] Found active Proton installation: Proton 5.0
[INFO] Using Proton installation at /home/bill/.steam/steam/steamapps/common/Proton 5.0
[INFO] WINE environment variable is not available. Setting WINE environment variable to Proton bundled version
[INFO] WINESERVER environment variable is not available. Setting WINESERVER environment variable to Proton bundled version
[INFO] Found the prefix directory at /home/bill/.steam/steam/steamapps/compatdata/244210/pfx

You are running winetricks-20191224, latest upstream is winetricks-20200412!


You should update using your distribution's package manager, --self-update, or manually.


WINE is /home/bill/.steam/steam/steamapps/common/Proton 5.0/dist/bin/wine, which is neither on the path nor an executable file

WINE not on path when using protontricks

When attempting to use protontricks to install either foss_corefonts or corefonts (protontricks 644560 foss_corefonts) I recieve this output:

[INFO] Found Steam directory at /home/user/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] Winetricks path is set to /home/user/Downloads/protontricks/winetricks
[INFO] Found proton version 3.7. You can also define the proton version manually using $PROTON_VERSION
[INFO] WINESERVER environment variable is not available Setting WINESERVER environment variable to proton bundled version
[INFO] Found 0 Steam library folders
[INFO] Found the prefix directory at /home/user/.steam/steam/steamapps/compatdata/644560/pfx
------------------------------------------------------
WINE is /home/user/.steam/steam/steamapps/common/Proton 3.7/dist/bin/wine, which is neither on the path nor an executable file
------------------------------------------------------

The fonts don't get installed and as a result, the game is not displaying the needed texts.
I've installed wine, winetricks and have steam setup properly to use proton.

Dotnet installation not possible

You can no longer install dotnet with this script (and winetricks infact) because the scripts are broken and cause dotnet to insist its already installed even when its clearly not!

This is not a new issue, been present for months...

protontricks tries to use "steamapps" directory instead of "SteamApps"

[redneck@pylesos ~]$ protontricks 891660 allfonts
[INFO] Found Steam directory at /home/redneck/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
Traceback (most recent call last):
  File "/bin/protontricks", line 161, in <module>
    proton_version = get_proton_version(steam_dir + "/steamapps")
  File "/bin/protontricks", line 42, in get_proton_version
    dirs = os.listdir(steam_dir + "/common")
FileNotFoundError: [Errno 2] No such file or directory: '/home/redneck/.steam/steam/steamapps/common'

There is no "steamapps" directory but there is "SteamApps" one

Protontricks failing with AttributeError: 'NoneType' object has no attribute 'group'

After running the command:
protontricks 359320 dotnet40 win7

I get the following response:
[INFO] Found Steam directory at /home/$USER/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
[INFO] Found 1 Steam library folders
Traceback (most recent call last):
File "/usr/bin/protontricks", line 310, in
steam_apps = get_steam_apps(steam_lib_dirs)
File "/usr/bin/protontricks", line 250, in get_steam_apps
steam_app = SteamApp.from_appmanifest(path)
File "/usr/bin/protontricks", line 93, in from_appmanifest
appid = int(re.search(r'(\t"appid"\s+")([0-9]+)', content).group(2))
AttributeError: 'NoneType' object has no attribute 'group'

Version mismatch

hey so I tried to install xact for a hat in time but I got this error
wine client error:0: version mismatch 557/560.

edit: full log of the wine part

/home/fantoro/.steam/steam/steamapps/compatdata/253230/pfx/dosdevices/c:/windows/temp/_xact/oct2006_xact_x86.cab: WARNING; possible 5960 extra bytes at end of file.
Using native,builtin override for following DLLs: xaudio2_0 xaudio2_1 xaudio2_2 xaudio2_3 xaudio2_4 xaudio2_5 xaudio2_6 xaudio2_7
Executing /home/fantoro/.steam/steam/steamapps/common/Proton 3.7/dist/bin/wine regedit C:\windows\Temp\_xact\override-dll.reg
/home/fantoro/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/wineserver: Symbol `wine_casemap_upper' has different size in shared object, consider re-linking
/home/fantoro/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/wineserver: Symbol `wine_casemap_lower' has different size in shared object, consider re-linking
wine client error:0: version mismatch 557/560.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?
0009:err:process:start_wineboot failed to start wineboot, err 1359
Executing /home/fantoro/.steam/steam/steamapps/common/Proton 3.7/dist/bin/wine64 regedit C:\windows\Temp\_xact\override-dll.reg
/home/fantoro/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/wineserver: Symbol `wine_casemap_upper' has different size in shared object, consider re-linking
/home/fantoro/.local/share/Steam/steamapps/common/Proton 3.7/dist/bin/wineserver: Symbol `wine_casemap_lower' has different size in shared object, consider re-linking
wine client error:0: version mismatch 557/560.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?
------------------------------------------------------
Note: command /home/fantoro/.steam/steam/steamapps/common/Proton 3.7/dist/bin/wine64 regedit C:\windows\Temp\_xact\override-dll.reg returned status 1. Aborting.
------------------------------------------------------

Fedora 31 build of steam changes "Steam" directory

replace and add
os.path.join(os.environ.get("HOME"), ".local", "share", "Steam"),
os.path.join(os.environ.get("HOME"), ".var", "app", "com.valvesoftware.Steam", "data", "Steam")

in protontricks file

Problem with Wine not being on path.

When I attempt to install dotnet to make Assetto Corsa work I get this kind of error.I saw older issue and tried everything, but it won't work for me.

I'm using most up to date protontricks i think.
I have 2 other proton installations, but protontricks cannot find them.

protontricks 244210 -q dotnet452

[INFO] Found Steam directory at /home/jotaro/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
[INFO] Found 0 Steam library folders
[INFO] Found active Proton installation: Proton Experimental
[INFO] Using Proton installation at /home/jotaro/.steam/steam/steamapps/common/Proton Experimental
[INFO] WINE environment variable is not available. Setting WINE environment variable to Proton bundled version
[INFO] WINESERVER environment variable is not available. Setting WINESERVER environment variable to Proton bundled version
[INFO] Found the prefix directory at /home/jotaro/.steam/steam/steamapps/compatdata/244210/pfx

warning: WINE is /home/jotaro/.steam/steam/steamapps/common/Proton Experimental/dist/bin/wine, which is neither on the path nor an executable file

Please use os.path.join

Several dir+dir operations are done with the + operator and wind up with invalid values, e.g. when STEAM_DIR does not end with /
Even though this script is only for Linux, using os.path.join takes care of this nicely.

Check for SteamApps as well as steamapps

It seems Steam on Windows creates libraries with SteamApps instead of steamapps, it would be nice to include that variation since many people (such as I) will have imported those libraries on Linux.

protontricks does not work with proton 3.16

After installing Proton 3.16 in the recent update, trying to use protontricks with any application gives me this output:

[INFO] Found Steam directory at /home/mario/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
[INFO] Found 0 Steam library folders
[INFO] Found active Proton installation: Proton 3.16 Beta
[ERROR!] Proton installation could not be found!
[FATAL] Sorry, one or more errors prevents this script from being used, check the console for details...

I think the issue is that despite being regarded as Proton 3.16 Beta the folder in steamapps/common simply is named Proton 3.16, however I don't know Python well enough to personally fix this

Does not work with flatpak Steam

The current Debian stable does not properly run steam, and only the flatpak version runs. I have tried modifying the script myself to get it to work properly with the way flatpak installs steams and where the directories go but I have had no success.

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.