Skip to main content

Python module for applying fixes at runtime for games not supported by Steam Proton

Project description


A module for applying fixes at runtime to unsupported games with Steam Proton without changing game installation files. The idea is to include seperate 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.

Current fixes include:

  • Final Fantasy IX
  • Oddworld: Abe's Oddysee
  • Forts


Install from PIP

# sudo pip install protonfixes

Install using setuptools

# sudo python install

Add to

In the steamapps/common/Proton* directory, add the following line to

import protonfixes

If there is no file, make a copy of the file.

Writing Game Fixes

Game fixes written in python and are named by the Steam game ID with the extension .py. For example, the file gamefixes/ will be loaded when the game FINAL FANTASY IX is run. Here are some things to consider when writing fixes:

  • Only import libraries that are part of the Python standard library for portability.
  • Use docstrings and comment thoroughly. There will likely be people without python experience making game fixes and good commented examples will help
  • Do not use any hard-coded paths, Steam may not always be installed in the same location.
  • Check your gamefix with pylint. You can safely disable warning C0103, modules named by Steam ID will never conform to snake_case naming style.
  • Pull requests are welcome!

Example game fixes - Changing the executable launched

import os
import sys

def main():
    """ Changes the proton argument from the launcher to the game

    print('Applying FINAL FANTASY IX Game Fixes')

    # Fix crackling audio
    os.environ['PULSE_LATENCY_MSEC'] = '60'

    # Replace launcher with game exe in proton arguments
    for idx, env in enumerate(sys.argv):
        if 'FF9_Launcher' in env:
            sys.argv[idx] = env.replace('FF9_Launcher.exe', 'x64/FF9.exe') - Running a winetricks verb

from protonfixes import util

def main():
    """ Uses winetricks to install the ole32 verb

    print('Applying fixes for Forts')

    if not util.checkinstalled('ole32'):

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protonfixes-1.0.1.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

protonfixes-1.0.1-py3-none-any.whl (7.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page