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')