Steam
steam proton notes
- pressure vessel added in > 5.10
- conflicting glibc version for bash link so had to revert/build custom
- does not respect XDG vars
Lutris
- installers battle.net
Protonfixes for some games
Link localfixes
(ignore-errors (let* ((proton-dir (concat (file-name-as-directory (xdg-config-home)) "protonfixes")) (localfixes-dir (concat (file-name-as-directory proton-dir) "localfixes"))) (if (not (or (file-exists-p localfixes-dir) (file-symlink-p localfixes-dir))) (progn (make-directory localfixes-dir 1) (set-file-modes localfixes-dir #o700))) (if (not (or (file-exists-p (concat (file-name-as-directory localfixes-dir) "7110.py")) (file-symlink-p (concat (file-name-as-directory localfixes-dir) "7110.py")))) (make-symbolic-link (concat (file-name-directory (or load-file-name buffer-file-name)) "7110.py") (concat (file-name-as-directory localfixes-dir) "7110.py") 1)) (if (not (or (file-exists-p (concat (file-name-as-directory localfixes-dir) "22380.py")) (file-symlink-p (concat (file-name-as-directory localfixes-dir) "22380.py")))) (make-symbolic-link (concat (file-name-directory (or load-file-name buffer-file-name)) "22380.py") (concat (file-name-as-directory localfixes-dir) "22380.py") 1)) ))
Jade Empire (process affinity)
""" Game fix Jade Empire: Special Edition """ #pylint: disable=C0103 import threading import os import subprocess from protonfixes.logger import log def _taskset(): """Use taskset to set mask of JadeEmpire.exe""" # avoiding an external library as proc should be available on linux again = True badexes = ['JadeEmpire.exe'] while again: pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] for pid in pids: try: with open(os.path.join('/proc', pid, 'cmdline'), 'rb') as proc_cmd: cmdline = proc_cmd.read() for exe in badexes: if exe in cmdline.decode(): mask = os.sched_getaffinity(pid) while mask != {0} : mask = os.sched_getaffinity(pid) res = os.sched_setaffinity(pid, {0,1,2,3}) again = False except IOError: continue @DeprecatedSince("5.0-3") def main(): """ Needs pid mask set on launch """ thread = threading.Thread(target=_taskset, args=()) thread.daemon = False thread.start()
Fallout New Vegas (audio/vk issues)
""" Game fix for Fallout: New Vegas """ # pylint: disable=C0103 from protonfixes import util from protonfixes.protonversion import DeprecatedSince @DeprecatedSince("5.0-3") def main(): """ Use D3D9, quartz for audio, disable AA & water reflections/refractions """ # DX9 game util.disable_dxvk() # quartz for audio util.protontricks('quartz') # Graphics and HUD glitches when # AntiAliasing and Water Reflections/Refractions are enabled # https://github.com/ValveSoftware/Proton/issues/356 user_opts = ''' [Display] iMultiSample=0 [Water] bUseWaterReflections=0 bUseWaterRefractions=0 ''' util.set_ini_options(user_opts, 'My Games/FalloutNV/FalloutPrefs.ini')