Giter VIP home page Giter VIP logo

protonfixes's Introduction

protonfixes

Build Status

Screenshot

A module for applying fixes at runtime to unsupported games with Steam Proton without changing game installation files. The idea is to include separate fixes that are only loaded when a game matching that ID is run. This should keep the individual game fixes from affecting any other games. Applying the fixes at runtime should also get them to persist after game updates.

A list of current fixes, guide for writing game fixes, and details on game fix utilities can be found on the Wiki. Sources for gamefixes can be found in the protonfixes/gamefixes directory.


Installation

Optional Requirements

Winetricks

If you want to be able to use fixes with winetricks it must be installed and be in your $PATH. Fixes that do not use winetricks will still work without winetricks being installed.

Winetricks can take a long time to run

Wine

If you want to use a win32 (32bit) prefix, you need to have wine installed and be in your $PATH. Currently creating a 32bit prefix with Proton wine doesn't work because the wineserver is already running by the time user_settings.py is loaded.

Progress Dialog / Splashscreen

If Steam is in big picture mode, protonfixes will try to launch a similarly themed splash dialog using kivy (pictured above). zenity or kdialog can also be used but need to be enabled manually via config. If Steam is not in big picture mode, it will try kdialog, then zenity.
The progress bar or splashscreen can help let you know that protonfixes is running a long task, for example installing dotnet35.

For the progress dialog to work, you need to have zenity or kdialog installed on your system, the steam-runtime version of zenity is broken.
It can probably be installed using your distro's package manager.

For the big screen splashscreen to work, you need to have kivy installed. It can be installed via your distro's package manager (python3-kivy on debian-based distros and python-kivy on Arch-based ones)

Install With PIP

Make sure to use the version of pip that matches the version of Python that Proton is running. Proton should be running on python3. Use pip to install from the GitHub repository, the PyPI package is not being maintained at the moment.

If pip3 is not installed, it can be installed with your distribution's package manager: the package is python3-pip on Ubuntu/Debian-based distributions, python-pip in many others.

To install the latest version from Github:

#  pip3 install git+https://github.com/simons-public/protonfixes

Upgrade from PIP

To upgrade to the latest version on Github:

# pip3 install --upgrade git+https://github.com/simons-public/protonfixes

Install using setuptools

# python3 setup.py install

Enabling protonfixes in Proton

Protonfixes includes a script install_protonfixes that, when run, will automatically install protonfixes in all Proton installations.
A manual installation is possible by browsing <Steam installation>/steamapps/common/Proton* and adding this line to user_settings.py

import protonfixes

If there is no user_settings.py file, make a copy of the user_settings.sample.py file included with Proton.


Contributing

Pull requests are welcome! If you're not comfortable doing pull requests, send your fixes to me by any other means and you will be credited in the comments.

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.