Compare commits

..

15 Commits

Author SHA1 Message Date
787182f9c3 Scripts version 2132 2022-09-27 22:32:09 +03:00
3100a30ba6 Fix installing from AUR 2022-09-25 21:44:21 +03:00
1de526ba37 Scripts version 2131-2 2022-09-24 20:46:18 +03:00
39549a1832 Scripts version 2131 2022-09-24 20:43:43 +03:00
ae12e2c7a6 Scripts version 2130 (PROTON_LG) 2022-09-22 22:19:50 +03:00
ec2fe82d68 Scripts version 2129 2022-09-12 23:43:31 +03:00
ca019feeba Scripts version 2128 2022-09-12 21:56:20 +03:00
5d5b24df32 Scripts version 2127 2022-08-29 22:20:36 +03:00
ecc931fae3 Scripts version 2126 2022-08-28 12:40:08 +03:00
5406e3b792 hotfix start.sh 2022-08-21 20:39:42 +03:00
cc7f5c328c Scripts version 2124 2022-08-21 19:36:10 +03:00
a2b5385071 Scripts version 2123 2022-07-30 15:20:35 +03:00
8b442cf9ef Scripts version 2122 2022-07-28 22:55:31 +03:00
9e07d5bc97 Scripts version 2121 2022-07-23 11:59:50 +03:00
2029bb8275 Scripts version 2120 2022-06-26 17:49:07 +03:00
51 changed files with 1382 additions and 472 deletions

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2022 Castro-Fidel (PortWINE-Linux.ru) Copyright (c) 2022 Castro-Fidel (linux-gaming.ru)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,6 +1,8 @@
# PortWINE # PortProton
PortWINE is a project designed to make it easy and convenient to run Windows games on Linux for both beginners and advanced users. The **official website of the project** since September 2022: https://linux-gaming.ru. **Any other site is fake!**
PortProton is a project designed to make it easy and convenient to run Windows games on Linux for both beginners and advanced users.
The project strives to make launching games (and other software) as simple as possible, but at the same time provides flexible settings for advanced users. The project strives to make launching games (and other software) as simple as possible, but at the same time provides flexible settings for advanced users.
Based on the version of WINE from Valve (Proton) and its modifications (Proton GE). Includes a set of scripts combined with wine-proton itself, a Steam Runtime Sniper container with the addition of ported versions of MANGOHUD (output useful information over the game window: FPS, FrameTime, CPU, GPU, etc) and vkBasalt (improvement of graphics in games, very good in in conjunction with FSR, DLSS) + many already configured optimizations for maximum performance. Based on the version of WINE from Valve (Proton) and its modifications (Proton GE). Includes a set of scripts combined with wine-proton itself, a Steam Runtime Sniper container with the addition of ported versions of MANGOHUD (output useful information over the game window: FPS, FrameTime, CPU, GPU, etc) and vkBasalt (improvement of graphics in games, very good in in conjunction with FSR, DLSS) + many already configured optimizations for maximum performance.

View File

@ -1,7 +1,62 @@
You can help us in the development of the project on the website: boosty.to/portwine-linux.ru You can help us in the development of the project on the website: boosty.to/linux-gaming.ru
----------------------------------------- -----------------------------------------
Changelog: Changelog:
###Scripts version 2132###
* ATTENTION! The site portwine-linux.ru which is working again - FAKE! What kind of person did this and with what motives is unknown. So be vigilant! The site of our project: LINUX-GAMING.RU - and once again I will ask all the authors of their sites and Youtube channels to change their links. Thank you.
###Scripts version 2132###
* HOTFIX and change url
###Scripts version 2130###
* by default, the WINE version of PROTON_LG is used (based on wine-ge-custom with the addition of patches required for PortProton) You can still use the PROTON_GE version by selecting it in the startup menu.exe file.
* due to the rebranding and the transition to the new WINE-PROTON branch, the scripts have been significantly updated
* ATTENTION: The prefix of variables in "EDIT_DB" and "user.conf" has changed from "PW_" to "PW_". At the first launch after the update, your settings files will also be updated.
###Scripts version 2129###
* scipts optimization for dxvk and vkd3d
###Scripts version 2128###
* updated "plugins_v7" (updated libraries for FAKE DLSS - FSR 2.1 operation)
* updated PROTON_GE_7-33 (updated dxvk and vkd3d)
###Scripts version 2127###
* updated "plugins_v6" (added libraries for FAKE DLS)
* added the ability to enable support for USE_FAKE_DLSS in the EDIT_DB menu (Works on ANY video card with Vulkan support)
###Scripts version 2126###
* updated PROTON_GE_7-30 (dxvk and vkd3d from PROTON_STEAM_7.0-4)
###Scripts version 2125###
* HOTFIX - start.sh
###Scripts version 2124###
* updated "PROTON_GE" to version 7-29
* updated "PROTON_STEAM" to version 7.0-4
* updated pp-games-lib plugin
###Scripts version 2123###
* HOTFIX - GALLIUM NINE mode
###Scripts version 2122###
* added the pp-games-lib plugin to the new PortProton/data/plugins/ details directory on github (plugin author: comrade zorn) https://github.com/zorn-v/PortProton-games-library
* updated scripts for installing and launching League of Legends (updated WINE_LOL_GE_7.0-4 - from now on there is no need to enter the root password to launch League of Legends)
* for GALLIUM_NINE to work, PROTON_GE is used by default
* in GALLIUM_NINE mode, the operation of launchers (such as Epic Games) has been fixed
* for Wargaming Game Center, the startup argument "--disable-gpu" is disabled automatically when using VULKAN mode.
* when using the DOTNET prefix, the black screen display in some applications has been fixed
* added a choice of downloading and automatic installation of WINE versions from Kron4ek
###Scripts version 2121###
* updated "PROTON_GE" to version 7-26
* fixed creation of shortcuts for WGC (to automatically fix existing shortcuts, just run the WGC installer from PortProton)
* Added automatic activation of MANGOHUD when using FPS limit
###Scripts version 2120###
* updated "PROTON_GE" to version 7-21
* updated "libs_v32" (Steam Runtime Snipers)
* updated installation of ORIGIN
###Scripts version 2119### ###Scripts version 2119###
* HOTFIX - for PW_USE_D3D_EXTRAS * HOTFIX - for PW_USE_D3D_EXTRAS
* updated information about the project, developers and paid subscribers on boosty * updated information about the project, developers and paid subscribers on boosty

View File

@ -1,7 +1,70 @@
Вы можете помочь развитию проекта: portwine-linux.ru/donate/ Вы можете помочь развитию проекта: https://linux-gaming.ru/donate/
----------------------------------------- -----------------------------------------
История изменений: История изменений:
###Scripts version 2132###
* добавлен фикс для работы PortProton на системах Alt и Simply Linux (подготовка к возможному добавлению в репозитории)
* ВНИМАНИЕ! Сайт portwine-linux.ru который снова заработал - ФЕЙК! Что за человек это сделал и с какими мотивами - неизвестно. Так что будте бдительны! Сайт нашего проекта: LINUX-GAMING.RU - и еще раз попрошу всех авторов своих сайтов и каналов на Youtube сменить ссылки у себя. Спасибо.
###Scripts version 2131###
* исправлены ссылки со старого сайта на новый
* префикс переменных временно возвращен на "PW_".
###Scripts version 2130###
* по умолчанию используется WINE версии PROTON_LG (основан на wine-ge-custom с добавлением патчей необходимых для PortProton) Вы всё так же можете использовать версию PROTON_GE выбрав его в меню при запуске .exe файла.
* в связи с ребрендингом и переходом на новую ветку WINE-PROTON, значительно обновлены скрипты
* ВНИМАНИЕ: префикс переменных в "EDIT_DB" и "user.conf" изменился с "PW_" на "PW_". При первом запуске после обновления, обновяться и ваши файлы настроек.
###Scripts version 2129###
* произведена оптимизация части скрипта отвечающая за dxvk и vkd3d
###Scripts version 2128###
* обновлен "plugins_v7"
* обновлены библиотеки для работы FAKE DLSS (обновлена версия FSR до 2.1)
* добавлена функция подмены видеокарты для значительного увеличения списка поддержки игр с FAKE_DLSS (активируется автоматически при включении USE_FAKE_DLSS в EDIT_DB)
* ускорено создание нового префикса
* обновлен "PROTON_GE" до версии 7-33 (версии dxvk и vkd3d обновлены)
###Scripts version 2127###
* обновлен "plugins_v6" (добавлены библиотеки для работы FAKE DLSS)
* добавлена возможность включения поддержки USE_FAKE_DLSS в меню EDIT_DB (Работает на ЛЮБОЙ видеокарте с поддержкой Vulkan)
###Scripts version 2126###
* обновлен "PROTON_GE" до версии 7-30 (версии dxvk и vkd3d используются из PROTON_STEAM_7.0-4)
* обновлен список платных подписчиков в разделе "Авторы и спасибы" которые поддерживают развитие проекта на https://boosty.to/linux-gaming.ru
###Scripts version 2125###
* HOTFIX - start.sh
###Scripts version 2124###
* обновлен "PROTON_GE" до версии 7-29
* обновлен "PROTON_STEAM" до версии 7.0-4
* обновлен плагин pp-games-lib
###Scripts version 2123###
* HOTFIX - скачивание PROTON GE при использовании режжима GALLIUM NINE
* добавлена русификация CREDITS (Авторы и спасибы) - спасибо chal55rus
* добавлена русификация плагина pp-games-lib - спасибо zorn
###Scripts version 2122###
* добавлен плагин pp-games-lib в новый каталог PortProton/data/plugins/ подробности на github (автор плагина: товарищ zorn) https://github.com/zorn-v/PortProton-games-library
* обновлены срипты установки и запуска League of Legends (обновлен WINE_LOL_GE_7.0-4 - отныне нет необходимости вводить пароль рут для запуска League of Legends)
* для работы GALLIUM_NINE по умолчанию используется PROTON_GE
* в режиме GALLIUM_NINE исправлена работа лаунчеров (таких как Epic Games)
* для Wargaming Game Center аргумент запуска "--disable-gpu" отключаестя автоматически при исползовании режима VULKAN.
* при использовании префикса DOTNET исправлено отображение черного экрана в некоторых приложениях
* добавлен выбор скачивания и автоматической установки версий WINE от Kron4ek
###Scripts version 2121###
* обновлен "PROTON_GE" до версии 7-26
* исправлено создание ярлыков для WGC (для атоматического исправления уже существующих ярлыков, просто запустите установщик WGC из PortProton)
* добавлено автоматическое включение MANGOHUD при использовании ограничения FPS
###Scripts version 2120###
* обновлен "PROTON_GE" до версии 7-21
* обновлен "libs_v32" (Steam Runtime Snipers)
* обновлена установка ORIGIN
###Scripts version 2119### ###Scripts version 2119###
* исправлено и ускорено создание DOTNET префикса * исправлено и ускорено создание DOTNET префикса
* HOTFIX - для PW_USE_D3D_EXTRAS * HOTFIX - для PW_USE_D3D_EXTRAS
@ -424,7 +487,7 @@
###Scripts version 2022### ###Scripts version 2022###
* добавлен фикc для работы EVE Online * добавлен фикc для работы EVE Online
* добавлен в GUI вывод версий WINE используемых по умолчанию * добавлен в GUI вывод версий WINE используемых по умолчанию
* в функцию "GET OTHER WINE" добавлена вкладка с версиями WINE от PortWINE-Linux.ru (тест) * в функцию "GET OTHER WINE" добавлена вкладка с версиями WINE от linux-gaming.ru (тест)
* исправлено завершение тихого режима установки * исправлено завершение тихого режима установки
###Scripts version 2021### ###Scripts version 2021###
@ -869,7 +932,7 @@ PS: не забывает для активации добавить перем
* в AUTOINSTALL добавлены установки "Origin" и "Battle.net Launcher" * в AUTOINSTALL добавлены установки "Origin" и "Battle.net Launcher"
* увеличено время ожидания ответа при проверки связи с интернетом (ping -w5 -c1 github.com) * увеличено время ожидания ответа при проверки связи с интернетом (ping -w5 -c1 github.com)
* увеличено количество попыток скачивания для неустойчивого интернет соединения (wget -c -t 10 -T 1) * увеличено количество попыток скачивания для неустойчивого интернет соединения (wget -c -t 10 -T 1)
* в GUI PortProton добавлена кнопка F.A.Q. для открытия справочной страницы portwine-linux.ru * в GUI PortProton добавлена кнопка F.A.Q. для открытия справочной страницы linux-gaming.ru
###Scripts version 1046### ###Scripts version 1046###
* обновлена верси VKD3D используемая по умолчанию до версии 2.3.1 (скрипт var, переменная export PW_DEF_VKD3D_VER=2.3.1) * обновлена верси VKD3D используемая по умолчанию до версии 2.3.1 (скрипт var, переменная export PW_DEF_VKD3D_VER=2.3.1)
@ -952,7 +1015,7 @@ PS: не забывает для активации добавить перем
* убран xterm из debug (иначе ломает шрифты) * убран xterm из debug (иначе ломает шрифты)
* добавлена кнопка редактирования найденного db файла * добавлена кнопка редактирования найденного db файла
* ТЕСТ: автоудаление PINNED_LIBS и отключение setup.sh --force * ТЕСТ: автоудаление PINNED_LIBS и отключение setup.sh --force
* изменение сравнения версий скриптов и портов "$(curl -s --list-only "portwine-linux.ru/ftp/current_version/blabla_ver")" * изменение сравнения версий скриптов и портов "$(curl -s --list-only "linux-gaming.ru/ftp/current_version/blabla_ver")"
* автоматическая установка в префикс порта PW_DLL_INSTALL="vcrun2017 mfc42" * автоматическая установка в префикс порта PW_DLL_INSTALL="vcrun2017 mfc42"
* исправлено создание db файла при создании ярлыков, в именах которых присутствует одниковвые названия запускаемого файла * исправлено создание db файла при создании ярлыков, в именах которых присутствует одниковвые названия запускаемого файла
* исправили создания префикса на некоторых системах при использования встроенного xterm из ~/PortWINE/libs * исправили создания префикса на некоторых системах при использования встроенного xterm из ~/PortWINE/libs
@ -964,7 +1027,7 @@ PS: не забывает для активации добавить перем
* добавлен прогресс загрузки библиотек с интернета * добавлен прогресс загрузки библиотек с интернета
* добавлен в debug полный путь до запускаемой игры/программы вместе с именем файла * добавлен в debug полный путь до запускаемой игры/программы вместе с именем файла
* исправлено дублирование db файлов при создании ярлыков * исправлено дублирование db файлов при создании ярлыков
* перенос libs с сервера PortWINE-Linux.ru на github.com/Castro-Fidel/PortWINE/releases/ * перенос libs с сервера linux-gaming.ru на github.com/Castro-Fidel/PortWINE/releases/
* скачивание mono оф. github mono * скачивание mono оф. github mono
* скачивание gecko оф. ftp winehq * скачивание gecko оф. ftp winehq
* в /data/scripts/vars/PortProton_vars добавлена переменная PW_MANGOHUD=1 что включает HUD для монитроринга FPS, нагрузку на CPU, GPU и т.п (при условии что в системе предустановлен пакет mangohud) * в /data/scripts/vars/PortProton_vars добавлена переменная PW_MANGOHUD=1 что включает HUD для монитроринга FPS, нагрузку на CPU, GPU и т.п (при условии что в системе предустановлен пакет mangohud)

View File

@ -24,19 +24,18 @@
# #
# Supported values: Any four-digit hex number. # Supported values: Any four-digit hex number.
# dxgi.customDeviceId = 0000 dxgi.customDeviceId = 222F
# dxgi.customVendorId = 0000 dxgi.customVendorId = 10de
# d3d9.customDeviceId = 0000
# d3d9.customVendorId = 0000
# d3d9.customDeviceId = 222F
# d3d9.customVendorId = 10de
# Report Nvidia GPUs as AMD GPUs by default. This is enabled by default # Report Nvidia GPUs as AMD GPUs by default. This is enabled by default
# to work around issues with NVAPI, but may cause issues in some games. # to work around issues with NVAPI, but may cause issues in some games.
# #
# Supported values: True, False # Supported values: True, False
# dxgi.nvapiHack = False dxgi.nvapiHack = False
# Override maximum amount of device memory and shared system memory # Override maximum amount of device memory and shared system memory
# reported to the application. This may fix texture streaming issues # reported to the application. This may fix texture streaming issues
@ -311,13 +310,13 @@
# Force enable/disable floating point quirk emulation # Force enable/disable floating point quirk emulation
# #
# Force toggle anything * 0 emulation # Force toggle anything * 0 emulation
# Tristate # Tristate
# Supported values: # Supported values:
# - True/False # - True/False
# d3d9.floatEmulation = # d3d9.floatEmulation =
# Enable dialog box mode # Enable dialog box mode
@ -331,7 +330,7 @@
# d3d9.enableDialogMode = False # d3d9.enableDialogMode = False
# Overrides the application's MSAA level on the swapchain # Overrides the application's MSAA level on the swapchain
# #
# Supported values: -1 (application) and 0 to 16 (user override) # Supported values: -1 (application) and 0 to 16 (user override)
# d3d9.forceSwapchainMSAA = -1 # d3d9.forceSwapchainMSAA = -1

View File

@ -0,0 +1,453 @@
#!/usr/bin/env python3
import os
import re
import shlex
import shutil
from configparser import RawConfigParser
from pathlib import Path
from subprocess import run
from types import SimpleNamespace
try:
from PyQt6.QtCore import * # type: ignore
from PyQt6.QtGui import * # type: ignore
from PyQt6.QtWidgets import * # type: ignore
except ModuleNotFoundError:
from PyQt5.QtCore import * # type: ignore
from PyQt5.QtGui import * # type: ignore
from PyQt5.QtWidgets import * # type: ignore
settings = QSettings('PPGL', 'PortProtonGamesLib')
g = SimpleNamespace(locale = '')
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.resize(QSize(800, 600))
geometry = settings.value('geometry_main')
if geometry:
self.restoreGeometry(geometry)
shortcut = RawConfigParser()
shortcut.read(os.getenv('HOME') + '/.local/share/applications/PortProton.desktop')
scripts_dir = shortcut.get('Desktop Entry', 'Path', fallback=os.getenv('HOME') + '/.local/share/PortWINE/PortProton/data/scripts')
if not scripts_dir or not Path(scripts_dir).is_dir():
QMessageBox.critical(self, 'Error', 'Can not find installed PortProton')
exit(1)
g.scripts_dir = scripts_dir.rstrip('/')
g.pw_icon = shortcut.get('Desktop Entry', 'Icon', fallback='/usr/share/pixmaps/portproton.png')
pw_icon = QIcon(g.pw_icon)
self.setWindowIcon(pw_icon)
self.setWindowTitle('PortProton games library')
g.base_dir = str(Path(scripts_dir + '/../..').resolve())
g.install_pfx = g.base_dir + '/data/prefixes/INSTALL'
g.shortcuts_dir = g.base_dir + '/shortcuts'
g.games_dir = g.base_dir + '/games'
loc_path = Path(g.base_dir + '/data/tmp/PortProton_loc')
if loc_path.exists():
g.locale = loc_path.read_text().strip()
Path(g.shortcuts_dir).mkdir(parents=True, exist_ok=True)
Path(g.games_dir).mkdir(parents=True, exist_ok=True)
sep = QFrame(self)
sep.setFrameShape(QFrame.Shape.VLine)
sep.setFrameShadow(QFrame.Shadow.Sunken)
self._status_size = QLabel(self)
self._status_dir = QLabel(self)
self.statusBar().setVisible(False)
self.statusBar().addWidget(self._status_dir, 1)
self.statusBar().addWidget(sep)
self.statusBar().addWidget(self._status_size)
self.game_list = GameList(self)
self.setCentralWidget(self.game_list)
self.toolbar = self.addToolBar('Main')
self.toolbar.setIconSize(QSize(32, 32))
self.toolbar.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
self.toolbar.setMovable(False)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogNewFolder), _tr('Install new game'), self)
action.triggered.connect(self.install_game)
self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileLinkIcon), _tr('Add game entry'), self)
action.triggered.connect(self.add_game)
self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_BrowserReload), _tr('Reload list'), self)
action.triggered.connect(self.reload_list)
self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Drop install prefix'), self)
action.triggered.connect(self.drop_prefix)
self.toolbar.addAction(action)
spacer = QWidget(self)
spacer.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
self.toolbar.addWidget(spacer)
action = QAction(pw_icon, 'PortProton', self)
action.triggered.connect(self.run_pp)
self.toolbar.addAction(action)
def install_game(self):
InstallGame(self)
def add_game(self):
InstallGame(self, False)
def reload_list(self):
self.game_list.reload()
def drop_prefix(self):
res = QMessageBox.question(self, _tr('Are you shure ?'), _tr('Do you really want to remove<br/><b>{0}</b> ?', g.install_pfx))
if res == QMessageBox.StandardButton.Yes:
shutil.rmtree(g.install_pfx, True)
def run_pp(self):
self.setDisabled(True)
app.processEvents()
run([g.scripts_dir + '/start.sh'])
self.setDisabled(False)
def set_status(self, item):
self.statusBar().setVisible(bool(item))
if item:
self._status_size.setText('Size: ' + item.dir_size_human)
self._status_dir.setText(' ' + item.game_dir)
def closeEvent(self, event):
geometry = self.saveGeometry()
settings.setValue('geometry_main', geometry)
super().closeEvent(event)
class LoadListThread(QThread):
completed = pyqtSignal(list)
def __init__(self, parent, install_dir):
super().__init__(parent)
self.install_dir = install_dir
def run(self):
exe_list = list(Path(self.install_dir).glob('**/*.exe'))
self.completed.emit(exe_list)
class InstallGame(QDialog):
def __init__(self, parent, installing=True):
super().__init__(parent)
self._installing = installing
self.install_dir = g.install_pfx + '/drive_c/Games' if installing else g.games_dir
self._exe_list_widget = QListWidget(self)
self._exe_list_widget.setIconSize(QSize(16, 16))
self._exe_list_widget.itemDoubleClicked.connect(self._handleDoubleClick)
layout = QVBoxLayout()
layout.addWidget(self._exe_list_widget)
self._pbar = QProgressBar(self)
self._pbar.setMaximum(0)
layout.addWidget(self._pbar)
thread = LoadListThread(self, self.install_dir)
thread.completed.connect(self.load)
thread.start()
if self._installing:
setup_btn = QPushButton(self)
setup_btn.setIcon(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogStart))
setup_btn.setText(_tr('Run another setup'))
setup_btn.clicked.connect(self._runSetup)
layout.addWidget(setup_btn)
self.setLayout(layout)
self.resize(400, 300)
self.setModal(True)
self.setWindowTitle(_tr('Select game exe file'))
geometry = settings.value('geometry_install')
if geometry:
self.restoreGeometry(geometry)
self.show()
def load(self, exe_list):
if self._installing and len(exe_list) == 0:
self._runSetup()
exe_list = list(Path(self.install_dir).glob('**/*.exe'))
if len(exe_list) == 0:
return self.close()
def render_list():
pixmap = QPixmap(16, 16)
pixmap.fill(Qt.GlobalColor.transparent)
empty_icon = QIcon(pixmap)
for exe in sorted(exe_list):
ico_file = str(exe) + '.ico'
item = QListWidgetItem(self._exe_list_widget)
item.setText(str(exe)[len(self.install_dir)+1:])
try:
if not Path(ico_file).exists():
run(['wrestool', '-x', '-t14', '-o', ico_file, exe], capture_output=True)
item.setIcon(QIcon(ico_file))
except Exception:
pass
if item.icon().pixmap(16, 16).isNull():
item.setIcon(empty_icon)
self._exe_list_widget.addItem(item)
self._pbar.setVisible(False)
thread = QThread(self)
thread.run = render_list
thread.start()
def _runSetup(self):
downloads_dir = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DownloadLocation)
exe_file, _ = QFileDialog.getOpenFileName(self, caption=_tr('Choose setup file'), filter='Exe files (*.exe)', directory=downloads_dir)
if not exe_file:
return
ppdb = shlex.quote(exe_file + '.ppdb')
script = f"""
mkdir -p {shlex.quote(g.install_pfx + '/drive_c/Games')}
echo '
export PW_VULKAN_USE=1
export PW_GUI_DISABLED_CS=1
export PW_PREFIX_NAME=INSTALL
export PW_DLL_INSTALL=mfc42
' > {ppdb}
{shlex.quote(g.scripts_dir + '/start.sh')} {shlex.quote(exe_file)}
rm -f {ppdb}
"""
self.setDisabled(True)
app.processEvents()
run(['bash', '-c', script])
self.setDisabled(False)
def _handleDoubleClick(self, item):
game_dir = item.text().split('/')[0]
dlg = QInputDialog(self)
dlg.setWindowTitle(_tr('Please enter game entry name'))
dlg.setLabelText(_tr('New game entry'))
dlg.setTextValue(game_dir)
dlg.resize(300, 0)
ok = dlg.exec()
shortcut_name = dlg.textValue()
if not ok or not shortcut_name:
return
file_name = re.sub(r'[<>:/\\|?*]', '_', shortcut_name)
shortcut = f"{g.shortcuts_dir}/{file_name}.desktop"
if Path(shortcut).exists():
res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', file_name))
if res != QMessageBox.StandardButton.Yes:
return
src_dir = self.install_dir + '/' + game_dir
dst_dir = g.games_dir + '/' + game_dir
exe_file = shlex.quote(g.games_dir + '/' + item.text())
ppdb = shlex.quote(g.games_dir + '/' + item.text()) + '.ppdb'
self.setDisabled(True)
if self._installing and Path(dst_dir).exists():
res = QMessageBox.question(self, _tr('Dir already exists'), _tr('Dir <b>{0}</b> already exists. Overwrite ?', game_dir))
if res != QMessageBox.StandardButton.Yes:
return
if self._installing:
os.rename(src_dir, dst_dir)
script = f"""
export INSTALLING_PORT=1
export portwine_exe={exe_file}
cd {shlex.quote(g.scripts_dir)}
. {shlex.quote(g.scripts_dir + '/runlib')}
pw_create_gui_png
pw_init_db
[ -f {ppdb} ] && . {ppdb}
echo -e "export PW_VULKAN_USE=${{PW_VULKAN_USE:-1}}\nexport PW_GUI_DISABLED_CS=1" >> {ppdb}
"""
run(['bash', '-c', script])
icon_path = g.base_dir + '/data/img/' + Path(item.text()).stem + '.png'
if not Path(icon_path).exists():
icon_path = g.pw_icon
Path(shortcut).write_text(f"""[Desktop Entry]
Name={shortcut_name}
Exec=env {shlex.quote(g.scripts_dir + '/start.sh')} {exe_file}
Type=Application
Categories=Game
StartupNotify=true
Path={shlex.quote(g.scripts_dir)}
Icon={icon_path}
""", encoding='utf-8')
os.chmod(shortcut, 0o755)
win.reload_list()
self.close()
def closeEvent(self, event):
geometry = self.saveGeometry()
settings.setValue('geometry_install', geometry)
super().closeEvent(event)
class GameList(QListWidget):
def __init__(self, parent):
super().__init__(parent)
self.itemActivated.connect(self.runGame)
self.currentItemChanged.connect(self.selectItem)
self.setViewMode(QListWidget.ViewMode.IconMode)
self.setResizeMode(QListWidget.ResizeMode.Adjust)
self.setIconSize(QSize(64, 64))
self.setWordWrap(True)
self.setSpacing(3)
self.reload()
def reload(self):
self.clear()
shortcuts = list(Path(g.shortcuts_dir).glob('*.desktop'))
shortcuts += list(Path(g.base_dir).glob('*.desktop'))
for shortcut in shortcuts:
try:
item = GameItem(self, shortcut)
self.addItem(item)
except Exception:
pass
self.sortItems()
self.setCurrentIndex(QModelIndex())
def runGame(self, item):
win.setDisabled(True)
app.processEvents()
run(['bash', '-c', item.get('Exec')])
win.setDisabled(False)
def selectItem(self, item):
win.set_status(item)
def contextMenuEvent(self, event):
selected = self.selectedItems()
if len(selected) == 0:
return
selected = selected[0]
menu = QMenu(self)
desktop = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DesktopIcon), _tr('Add to desktop'))
restore_gui = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogResetButton), _tr('Restore PortProton GUI'))
remove = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Remove game entry'))
uninstall = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogCloseButton), _tr('Uninstall game'))
if not selected.game_dir.startswith(g.games_dir):
uninstall.setVisible(False)
action = menu.exec(self.mapToGlobal(event.pos()))
desktop_shortcut = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DesktopLocation) + '/' + Path(selected.desktop_file).name
if action == desktop:
if Path(desktop_shortcut).exists():
res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', desktop_shortcut))
if res != QMessageBox.StandardButton.Yes:
return
shutil.copy(selected.desktop_file, desktop_shortcut)
if action == restore_gui:
ppdb = shlex.split(selected.get('Exec'))[-1] + '.ppdb'
if not Path(ppdb).exists():
return
with open(ppdb, 'r') as read:
with open(ppdb + '.new', 'w') as write:
while (line := read.readline()):
if 'PW_GUI_DISABLED_CS' not in line:
write.write(line)
os.rename(ppdb + '.new', ppdb)
if action == remove:
Path(desktop_shortcut).unlink(True)
Path(selected.desktop_file).unlink(True)
Path(selected.get('Icon')).unlink(True)
self.reload()
if action == uninstall:
res = QMessageBox.question(self,
_tr('Are you shure ?'),
_tr('Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?', selected.get('Name'), selected.game_dir)
)
if res != QMessageBox.StandardButton.Yes:
return
Path(desktop_shortcut).unlink(True)
Path(selected.desktop_file).unlink(True)
Path(selected.get('Icon')).unlink(True)
if selected.game_dir.startswith(g.games_dir):
shutil.rmtree(selected.game_dir, True)
self.reload()
def human_size(num):
if not num:
return "-"
for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
if abs(num) < 1024.0:
return f"{num:.2f} {unit}B"
num /= 1024.0
return f"{num:.2f} YiB"
class GameItem(QListWidgetItem):
def __init__(self, parent, desktop_file):
self.desktop_file = desktop_file
self.config = RawConfigParser()
self.config.read(desktop_file)
text = self.get('Name', Path(desktop_file).stem)
if not self.get('Exec') or text == 'PortProton':
raise Exception('Validation fail')
self.game_dir = shlex.split(self.get('Exec'))[-1]
if self.game_dir.startswith(g.games_dir):
self.game_dir = g.games_dir + '/' + self.game_dir[len(g.games_dir)+1:].split('/')[0]
else:
self.game_dir = str(Path(self.game_dir).parent)
if self.game_dir == '.':
raise Exception('Can not determine game dir')
super().__init__(parent)
self.setToolTip(text)
self.setText(text)
icon_path = self.get('Icon') if Path(self.get('Icon')).exists() else g.pw_icon
qicon = QIcon(icon_path)
self.setIcon(qicon)
self.setTextAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop)
self.setSizeHint(QSize(100, 105))
self._set_dir_size(None)
dir_size_cache = self.game_dir + '/.size'
if Path(dir_size_cache).exists():
self._set_dir_size(int(Path(dir_size_cache).read_text()))
else:
def calc_dir_size():
if not Path(self.game_dir).exists():
return
dir_size = sum(p.stat(follow_symlinks=False).st_size for p in Path(self.game_dir).rglob('*'))
self._set_dir_size(dir_size)
Path(dir_size_cache).write_text(str(dir_size))
thread = QThread(parent)
thread.run = calc_dir_size
thread.start()
def get(self, name, fallback=None):
return self.config.get('Desktop Entry', name, fallback=fallback)
def _set_dir_size(self, size):
self.dir_size = size
self.dir_size_human = human_size(size)
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
lang = {
'RUS': {
'Install new game': 'Установить игру',
'Add game entry': 'Добавить в список',
'Reload list': 'Обновить список',
'Drop install prefix': 'Удалить установочный префикс',
'Are you shure ?': 'Вы уверены ?',
'Do you really want to remove<br/><b>{0}</b> ?': 'Вы действительно хотите удалить<br/><b>{0}</b> ?',
'Run another setup': 'Запустить установку',
'Select game exe file': 'Выберите exe файл игры',
'Choose setup file': 'Выберите установочный файл',
'Please enter game entry name': 'Введите название игры',
'New game entry': 'Название игры',
'Shortcut already exists': 'Ярлык уже существует',
'Shortcut <b>{0}</b> already exists. Overwrite ?': 'Ярлык <b>{0}</b> уже существует. Перезаписать ?',
'Dir already exists': 'Директория уже существует',
'Dir <b>{0}</b> already exists. Overwrite ?': 'Директория <b>{0}</b> уже существует. Перезаписать ?',
'Add to desktop': 'Добавить на рабочий стол',
'Restore PortProton GUI': 'Восстановить PortProton GUI',
'Remove game entry': 'Убрать из списка',
'Uninstall game': 'Удалить игру',
'Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?': 'Вы действительно хотите удалить <b>{0}</b><br/>расположеную в "<b>{1}</b>" ?'
}
}
def _tr(text, *fmt):
res = lang.get(g.locale, {}).get(text, text)
if fmt:
res = res.format(*fmt)
return res
app = QApplication([])
win = MainWindow()
win.show()
app.exec()

724
data_from_portwine/scripts/credits Executable file → Normal file
View File

@ -1,14 +1,314 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: chal55rus, Castro-Fidel (linux-gaming.ru)
KEY_CREDITS=$RANDOM ########################################################################
if [ "${update_loc}" = "RUS" ]
then
KEY_CREDITS=$RANDOM
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
--text-align=center --scroll --text="PortProton v.${install_ver} --image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
--text-align=center --scroll --text="PortProton v. ${install_ver}
scripts v. ${scripts_install_ver} scripts v. ${scripts_install_ver}
https://portwine-linux.ru https://linux-gaming.ru
Copyright © 2022 Castro-Fidel (PortWINE-Linux.ru) Авторские права © 2022 Castro-Fidel (linux-gaming.ru)
Эта программа поставляется без каких-либо гарантий.
Подробнее см. в Лицензия." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Автор: Casro-Fidel (Михаил Тергоев)
Помощники разработчика и тестировщики:
Cefeiko
Dezert1r
Taz_mania
Anton_Famillianov
RidBowt
chal55rus
UserDiscord
Survolog
gavr
RusNor
aldiserg
an9949an
andrey4korop
zorn
" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< " Лицензия Массачусетского технологического института (MIT License)
Авторские права (©) 2022 Castro-Fidel (linux-gaming.ru)
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного
программного обеспечения и связанных с ним файлов документации (Программное
обеспечение), для в Программном обеспечении без ограничений, включая, помимо прочего,
права использовать, копировать, изменять, объединять, публиковать, распространять,
сублицензировать и/или продавать копий Программного обеспечения, а также разрешить
лицам, которым Программное обеспечение предоставляется для этого при соблюдении
следующих условий:
Вышеприведенное уведомление об авторских правах и это уведомление о разрешении должны
быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ (КАК ЕСТЬ), БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ
ПОДРАЗУМЕВАЕТСЯ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ,
ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЕ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ
АВТОРЫ ИЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ
ДРУГОЕ. ОТВЕТСТВЕННОСТЬ, БУДУЩАЯ ПО ДОГОВОРУ, ДЕЛИКТУ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩАЯ ИЗ
ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' Проект поддержали:
https://boosty.to/linux-gaming.ru
1 1
A B
AdamArclight666
Akai
Aleks
Alexsei Cherniavskiy
Alex Sh
Allegra_g
AlxChkln
amikha1lov
Andrei K
anisan_sg
Another games
Apofis Smab
apolon
Aule Mahal
Azartiny Mor
BELIJJAaL
benya
Bunny Sword
CanBoo
chal55rus
Coin Hunt
Cruze
Dadenard
Dallasss
Daniil Go
Dencher12
Denis
Dezert1r
Dima Manshin
DIO
d.kostroma
Dmitriy Tokarev
Drakorgaur
dunkanMcLoud
dupster mailbox
Eliot
El Mago
Ethan Winters
Evgen Buiko
EvilDevolver
fight fox
funti2f
fusiok
GaiverX
Gekko
Geomant17
gg_harper
Happy Husky
haravara
Homyakin
Ivan Vlasov
ivboss
ksandr4370
LeGi0neR
Lexa XLS
Linux Vumtut
Lonely Lonely
Maksami Cordyceps
Maktub
Melord
MICROFARAT
MLogaut
Monti Roquefort
MrBatonio
Nesterik
Nikola P.
Nuclearsun
Nurik
Oleg55Rus
onix
Optimus
Ottakvot
paulscathedral
penguin4ek
Pependos
PLAFON
PlagueEvgeny
Rojok56
Ruslan Vlasov
Rustam
Saireg
sanelasan
sashman
Seeropoonya
sendependa_dio
shecspir
Soma
sship
StGdG
Subscript
Sudo Connect
sugoyako
Taras Zagibalov
The End
tima
Tykva
ua3dko
V1ktr
VanBugel
VAtiB
Vikthor Prieto
vlad petrov
Vosarat
VUMtut
Windchester
wrager
Xpamych
Yurec
Yuri Emelyanov
Zillah Giovanni
Zloy Ivan
Zorit
zorn
Александр
Александр Абдулов
Александр Кладов
Александр Лобанов
Алексей Ultralin
Алексей Войтенко
Алексей Галаш
Алексей Зубрийчук
Алексей Ивушкин
Алексей Кравчук
Алексей Чугунов
Андрей Гусаков
Андрей Карпенцов
Антоний Дамикан
Антон Рудковский
Антон Фамилианов
Артём К.
Валерий Толмачёв
Виктор Шварц
Виктор Щетинин
Виндэта(рог)
Виталий Нуров
Влад Блинов
Владимир Бильдюкевич
Владимир Дарвин
Влад Кладиев
Вячеслав Шитюков
Вячеслав Шустров
Георгий Гурский
Данил Павлов
Дед Мазай
Денис Мальцев
Денис Матій
Денис Олефиренко
Дмитрий Круглов
Дмитрий Мазанка
Дмитрий Сидоров
Евгений Бебин
Евгений Долгополов
Евгений Хирвонен
Евгений Храмов
Егор Кречун
Женя Рябушкин
Иван Белекеев
Коляныч Королёв
Константин __
Константин Абадонна
Леонид
Максим Хмара-Миронов
Маленькая сосна
Марат
Марат Рахимов
Неизвестый Дмитрий
Никита Булавин
Николай Гинтов
Павел Иванов
Павел Пашенцев
Равич Ревес
Рамиль
Рома Б.
Роман Игнатьев
Роман Паженский
Ростислав Кузнецов
Росляков Виталий
Саша
Семён Клишин
Семён Ярополов
Сергей Казёнкин
Сергей Круглов
Серёга Сапрыкин
Стас Толкачёв
Тима Суеубаев
Тимофей Ковалев
Тимур Сафонов
Удалить Аккаунт
Хоттабыч
Список будет дополняться...' &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \
--title=JOIN --window-icon=group --image=system-config-users --uri-color=red --show-uri \
--text-info --scroll <<< \
"Website: https://linux-gaming.ru/
Discord: http://discord.gg/yJSEFjF
VK: https://vk.com/linuxgamingru
-------------------------------------------
Стать платным подписчиком:
boosty: https://boosty.to/linux-gaming.ru
patreon: https://www.patreon.com/portproton
Кошельки WebMoney: WMZ-Z135951244401 WME-E325631629973
Yandex кошелек: 410012267513818
-------------------------------------------
Задонатить на стрим:
https://www.donationalerts.com/r/portwine_linux" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--fontname="Serif bold italic 10" --text-info <<< " Сторонние библиотеки, которые используются в PortProton
PortProton собран на основе бесплатных библиотек программного обеспечения:
WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
YAD: https://github.com/v1cont/yad
ZENITY: https://github.com/GNOME/zenity" &
"${pw_yad_new}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--center --notebook --no-buttons --tab-pos=bottom \
--tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \
--tab="БИБЛИОТЕКИ"
echo "Exit from credits"
/usr/bin/env bash -c ${pw_full_command_line[*]}
else
KEY_CREDITS=$RANDOM
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
--text-align=center --scroll --text="PortProton v. ${install_ver}
scripts v. ${scripts_install_ver}
https://linux-gaming.ru
Copyright © 2022 Castro-Fidel (linux-gaming.ru)
This program comes with absolutely no warranty. This program comes with absolutely no warranty.
See the License for details." & See the License for details." &
@ -31,11 +331,12 @@ RusNor
aldiserg aldiserg
an9949an an9949an
andrey4korop andrey4korop
zorn
" & " &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License
Copyright (©) 2022 Castro-Fidel (PortWINE-Linux.ru) Copyright (©) 2022 Castro-Fidel (linux-gaming.ru)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -56,229 +357,236 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE." & SOFTWARE." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --show-uri --scroll <<< 'https://boosty.to/portwine-linux.ru: --text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' The project was supported:
https://boosty.to/linux-gaming.ru:
1 1 1 1
A B A B
AdamArclight666 AdamArclight666
Akai Akai
Aleks Aleks
Alex Sh Alex Sh
Alexsei Cherniavskiy Alexsei Cherniavskiy
Allegra_g Allegra_g
AlxChkln AlxChkln
Andrei K Andrei K
Another games Another games
Apofis Smab Apofis Smab
Aule Mahal Aule Mahal
Azartiny Mor Azartiny Mor
BELIJJAaL BELIJJAaL
CanBoo CanBoo
Coin Hunt Coin Hunt
Cruze Cruze
DIO DIO
Dadenard Dadenard
Dallasss Dallasss
Daniil Go Daniil Go
Dencher12 Dencher12
Denis Denis
Dezert1r Dezert1r
Dima Manshin Dima Manshin
Dmitriy Tokarev Dmitriy Tokarev
Drakorgaur Drakorgaur
El Mago El Mago
Eliot Eliot
Ethan Winters Ethan Winters
Evgen Buiko Evgen Buiko
EvilDevolver EvilDevolver
GaiverX GaiverX
Gekko Gekko
Geomant17 Geomant17
Happy Husky Happy Husky
Homyakin Homyakin
Ivan Vlasov Ivan Vlasov
LeGi0neR LeGi0neR
Lexa XLS Lexa XLS
Linux Vumtut Linux Vumtut
Lonely Lonely Lonely Lonely
MICROFARAT MICROFARAT
MLogaut MLogaut
Maksami Cordyceps Maksami Cordyceps
Maktub Maktub
Melord Melord
Monti Roquefort Monti Roquefort
MrBatonio MrBatonio
Nesterik Nesterik
Nikola P. Nikola P.
Nuclearsun Nuclearsun
Nurik Nurik
Oleg55Rus Oleg55Rus
Optimus Optimus
Ottakvot Ottakvot
PLAFON PLAFON
Pependos Pependos
PlagueEvgeny PlagueEvgeny
Rojok56 Rojok56
Ruslan Vlasov Ruslan Vlasov
Rustam Rustam
Saireg Saireg
Seeropoonya Seeropoonya
Soma Soma
StGdG StGdG
Subscript Subscript
Sudo Connect Sudo Connect
Taras Zagibalov Taras Zagibalov
The End The End
Tykva Tykva
V1ktr V1ktr
VAtiB VAtiB
VUMtut VUMtut
VanBugel VanBugel
Vikthor Prieto Vikthor Prieto
Vosarat Vosarat
Windchester Windchester
Xpamych Xpamych
Yurec Yurec
Yuri Emelyanov Yuri Emelyanov
Zillah Giovanni Zillah Giovanni
Zloy Ivan Zloy Ivan
Zorit Zorit
amikha1lov amikha1lov
anisan_sg anisan_sg
apolon apolon
benya benya
chal55rus(Sergey P.) chal55rus
d.kostroma d.kostroma
dunkanMcLoud dunkanMcLoud
dupster mailbox dupster mailbox
fight fox fight fox
funti2f funti2f
fusiok fusiok
gg_harper gg_harper
haravara haravara
ivboss ivboss
ksandr4370 ksandr4370
onix onix
paulscathedral paulscathedral
penguin4ek penguin4ek
sanelasan sanelasan
sashman sashman
sendependa_dio sendependa_dio
shecspir shecspir
sship sship
sugoyako sugoyako
tima tima
ua3dko ua3dko
vlad petrov vlad petrov
wrager wrager
xpamych xpamych
Александр zorn
Александр Абдулов Alexander
Александр Кладов Alexander Abdulov
Александр Лобанов Alexander Kladov
Алексей Ultralin Alexander Lobanov
Алексей Войтенко Alexey Ultralin
Алексей Галаш Alexey Voitenko
Алексей Зубрийчук Alexey Galash
Алексей Ивушкин Alexey Zubriychuk
Алексей Кравчук Alexey Ivushkin
Алексей Чугунов Alexey Kravchuk
Андрей Гусаков Alexey Chugunov
Андрей Карпенцов Andrey Gusakov
Антон Рудковский Andrey Karpentsov
Антон Фамилианов Anton Rudkovsky
Антоний Дамикан Anton Surnames
Артём К. Antony Damikan
Валерий Толмачёв Artyom K.
Виктор Шварц Valery Tolmachev
Виктор Щетинин Victor Schwartz
Виндэта(рог) Victor Shchetinin
Виталий Нуров Vindeta (horn)
Влад Блинов Vitaly Nurov
Влад Кладиев Vlad Blinov
Владимир Бильдюкевич Vlad Kladiev
Владимир Дарвин Vladimir Bildyukevich
Вячеслав Шитюков Vladimir Darwin
Вячеслав Шустров Vyacheslav Shityukov
Георгий Гурский Vyacheslav Shustrov
Данил Павлов George Gursky
Дед Мазай Danil Pavlov
Денис Мальцев Grandfather Mazai
Денис Матій Denis Maltsev
Денис Олефиренко Denis Matiy
Дмитрий Круглов Denis Olefirenko
Дмитрий Мазанка Dmitry Kruglov
Дмитрий Сидоров Dmitry Mazanka
Евгений Бебин Dmitry Sidorov
Евгений Долгополов Evgeny Bebin
Евгений Хирвонен Evgeny Dolgopolov
Евгений Храмов Evgeny Hirvonen
Егор Кречун Evgeny Khramov
Женя Рябушкин Egor Krechun
Иван Белекеев Zhenya Ryabushkin
Коляныч Королёв Ivan Belekeyev
Константин __ Kolyanich Korolev
Константин Абадонна Konstantin __
Леонид Konstantin Abadonna
Максим Хмара-Миронов Leonid
Маленькая сосна Maxim Khmara-Mironov
Марат Little Pine
Марат Рахимов Marat
Неизвестый Дмитрий Marat Rakhimov
Никита Булавин Unknown Dmitry
Павел Иванов Nikita Bulavin
Павел Пашенцев Pavel Ivanov
Равич Ревес Pavel Pashentsev
Рамиль Ravich Reves
Рома Б. Ramil
Роман Игнатьев Roma B.
Роман Паженский Roman Ignatiev
Саша Roman Pazhensky
Семён Клишин Sasha
Семён Ярополов Semyon Klishin
Сергей Казёнкин Semyon Yaropolov
Сергей Круглов Sergey Kazenkin
Серёга Сапрыкин Sergey Kruglov
Стас Толкачёв Serega Saprykin
Тима Суеубаев Stas Tolkachev
Тимофей Ковалев Tima Sueubaev
Тимур Сафонов Timofey Kovalev
Удалить Аккаунт Timur Safonov
Хоттабыч Delete Account
Николай Гинтов Hottabych
Nikolai Gintov
Список будет дополняться...' & The list will be updated...' &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Do you want to join and help in the development of the project:" \
--title=JOIN --window-icon=group --image=system-config-users --uri-color=red --show-uri \ --title=JOIN --window-icon=group --image=system-config-users --uri-color=red --show-uri \
--text-info --scroll <<< \ --text-info --scroll <<< \
"Website: http://portwine-linux.ru "Website: http://linux-gaming.ru
Discord: http://discord.gg/yJSEFjF Discord: http://discord.gg/yJSEFjF
VK: https://vk.com/portwinelinux VK: https://vk.com/portwinelinux
------------------------------------------- -------------------------------------------
Стать платным подписчиком: Become a paid subscriber:
boosty: https://boosty.to/portwine-linux.ru boosty: https://boosty.to/linux-gaming.ru
patreon: https://www.patreon.com/portproton patreon: https://www.patreon.com/portproton
Кошельки WebMoney: WMZ-Z135951244401 WME-E325631629973 WebMoney wallets: WMZ-Z135951244401 WME-E325631629973
Yandex кошельк: 410012267513818 Yandex wallet: 410012267513818
------------------------------------------- -------------------------------------------
Задонатить на стрим: Donat on stream:
https://www.donationalerts.com/r/portwine_linux" & https://www.donationalerts.com/r/portwine_linux" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--text-info <<< "Сторонние библиотеки, которые используются в PortProton --fontname="Serif bold italic 10" --text-info <<< " Third-party libraries that are used in PortProton
PortProton собран на основе следующих бесплатных библиотек программного обеспечения: PortProton is built on the basis of the following free software libraries:
WINE-PROTON: https://github.com/ValveSoftware/Proton WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/ WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
YAD: https://github.com/v1cont/"${pw_yad_new}" Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
YAD: https://github.com/v1cont/yad
ZENITY: https://github.com/GNOME/zenity" & ZENITY: https://github.com/GNOME/zenity" &
"${pw_yad_new}" --title "ABOUT US" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ "${pw_yad_new}" --title "ABOUT US" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--center --notebook --no-buttons --tab-pos=bottom \ --center --notebook --no-buttons --tab-pos=bottom \
--tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \ --tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \
--tab="THIRD PARTY LIBRARIES" --tab="THIRD PARTY LIBRARIES"
/usr/bin/env bash -c ${pw_full_command_line[*]} echo "Exit from credits"
/usr/bin/env bash -c ${pw_full_command_line[*]}
fi

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
pw_ping_test () { pw_ping_test () {
ping -w3 -c1 github.com &> /dev/null ping -w3 -c1 github.com &> /dev/null
@ -16,7 +16,6 @@ print_info () {
} }
export -f print_info export -f print_info
print_var () { print_var () {
for vp in $@ ; do echo "${vp}=${!vp}" ; done for vp in $@ ; do echo "${vp}=${!vp}" ; done
} }
@ -251,14 +250,14 @@ check_user_conf () {
init_wine_ver () { init_wine_ver () {
if [[ -z `ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}"` ]] ; then if [[ -z `ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}"` ]] ; then
if [[ ! -z `echo "${PW_WINE_USE}" | grep "PROTON_STEAM"` ]] ; then if [[ ! -z `echo "${PW_WINE_USE}" | grep "PROTON_LG"` ]] ; then
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
else else
export PW_WINE_USE=PROTON_GE export PW_WINE_USE=PROTON_GE
fi fi
fi fi
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_LG$"` ]]
then export PW_WINE_USE="${PW_PROTON_STEAM_VER}" then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]] elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]]
then export PW_WINE_USE="${PW_PROTON_GE_VER}" then export PW_WINE_USE="${PW_PROTON_GE_VER}"
fi fi
@ -307,8 +306,8 @@ init_wine_ver () {
for copy_proton_dll in "dxvk" "vkd3d-proton" ; do for copy_proton_dll in "dxvk" "vkd3d-proton" ; do
if [[ ! -d "${WINEDIR}/lib/wine/${copy_proton_dll}/" || ! -d "${WINEDIR}/lib64/wine/${copy_proton_dll}/" ]] ; then if [[ ! -d "${WINEDIR}/lib/wine/${copy_proton_dll}/" || ! -d "${WINEDIR}/lib64/wine/${copy_proton_dll}/" ]] ; then
try_copy_dir "${PORT_WINE_PATH}/data/dist/${PW_PROTON_GE_VER}/lib/wine/${copy_proton_dll}" "${WINEDIR}/lib/wine/" try_copy_dir "${PORT_WINE_PATH}/data/dist/${PW_PROTON_LG_VER}/lib/wine/${copy_proton_dll}" "${WINEDIR}/lib/wine/"
try_copy_dir "${PORT_WINE_PATH}/data/dist/${PW_PROTON_GE_VER}/lib64/wine/${copy_proton_dll}" "${WINEDIR}/lib64/wine/" try_copy_dir "${PORT_WINE_PATH}/data/dist/${PW_PROTON_LG_VER}/lib64/wine/${copy_proton_dll}" "${WINEDIR}/lib64/wine/"
fi fi
done done
@ -326,6 +325,14 @@ init_wine_ver () {
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is broken symlink. Repair... OK." echo "${WINEDIR}/share/wine/${mono_gecko_chk} is broken symlink. Repair... OK."
fi fi
done done
grep 'Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" != "0" ]] ; then
echo 'HKLM,Software\NVIDIA Corporation\Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf"
fi
grep 'nvlddmkm,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" != "0" ]] ; then
echo 'HKLM,System\ControlSet001\Services\nvlddmkm,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf"
fi
fi fi
return 0 return 0
} }
@ -334,6 +341,8 @@ pw_init_runtime () {
if [[ -n "$(grep "ROSA Fresh" "/etc/os-release")" ]] ; then if [[ -n "$(grep "ROSA Fresh" "/etc/os-release")" ]] ; then
export LOCPATH="/run/host/usr/share/locale/" export LOCPATH="/run/host/usr/share/locale/"
elif [[ -n "$(grep "altlinux" "/etc/os-release")" ]] ; then
export LIBGL_DRIVERS_PATH="/usr/lib/X11/modules/dri:/usr/lib64/X11/modules/dri"
fi fi
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
@ -352,6 +361,7 @@ pw_init_runtime () {
then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin" then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin"
else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin" else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin"
fi fi
if [ "${PW_USE_GSTREAMER}" = 1 ] ; then if [ "${PW_USE_GSTREAMER}" = 1 ] ; then
if [ -d "${WINEDIR}/lib64/gstreamer-1.0" ] ; then if [ -d "${WINEDIR}/lib64/gstreamer-1.0" ] ; then
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0" export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0"
@ -369,16 +379,16 @@ pw_init_runtime () {
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--unshare-home \ --unshare-home \
--home="${PW_SANDBOX_HOME_PATH}" \ --home="${PW_SANDBOX_HOME_PATH}" \
--no-gc-legacy-runtimes \
--no-gc-runtimes \ --no-gc-runtimes \
--gc-legacy-runtimes \
--copy-runtime \ --copy-runtime \
--remove-game-overlay \ --remove-game-overlay \
${PW_ADD_TO_ARGS_IN_RUNTIME} --" ${PW_ADD_TO_ARGS_IN_RUNTIME} --"
else else
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--share-home \ --share-home \
--no-gc-legacy-runtimes \
--no-gc-runtimes \ --no-gc-runtimes \
--gc-legacy-runtimes \
--copy-runtime \ --copy-runtime \
--remove-game-overlay \ --remove-game-overlay \
${PW_ADD_TO_ARGS_IN_RUNTIME} --" ${PW_ADD_TO_ARGS_IN_RUNTIME} --"
@ -471,7 +481,12 @@ regdlloverrides () {
esac esac
grep 'HKCU,Software\\Wine\\AppDefaults\\'"${PW_DLL_EXE}"'\\DllOverrides,'\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\" "${WINEDIR}/share/wine/wine.inf" grep 'HKCU,Software\\Wine\\AppDefaults\\'"${PW_DLL_EXE}"'\\DllOverrides,'\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\" "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" != "0" ]] ; then if [[ "$?" != "0" ]] ; then
sed -i "/\[SteamClient.ntamd64\]/a HKCU,Software\\\Wine\\\AppDefaults\\\\${PW_DLL_EXE}\\\DllOverrides,\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\"" "${WINEDIR}/share/wine/wine.inf" grep "ProtonOverrides" "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" == "0" ]] ; then
sed -i "/\[ProtonOverrides\]/a HKCU,Software\\\Wine\\\AppDefaults\\\\${PW_DLL_EXE}\\\DllOverrides,\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\"" "${WINEDIR}/share/wine/wine.inf"
else
sed -i "/\[SteamClient.ntamd64\]/a HKCU,Software\\\Wine\\\AppDefaults\\\\${PW_DLL_EXE}\\\DllOverrides,\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\"" "${WINEDIR}/share/wine/wine.inf"
fi
fi fi
} }
@ -589,8 +604,8 @@ pw_check_and_download_wine () {
if [[ "${PW_WINE_USE}" == "GET-OTHER-WINE" ]] ; then if [[ "${PW_WINE_USE}" == "GET-OTHER-WINE" ]] ; then
gui_proton_downloader gui_proton_downloader
fi fi
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_LG$"` ]]
then export PW_WINE_USE="${PW_PROTON_STEAM_VER}" then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]] elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]]
then export PW_WINE_USE="${PW_PROTON_GE_VER}" then export PW_WINE_USE="${PW_PROTON_GE_VER}"
fi fi
@ -646,6 +661,7 @@ pw_init_db () {
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi` export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
if [[ -f "${portwine_exe}".ppdb ]] && [[ "${PORTWINE_DB}" != "RiotClientServices" ]] ; then if [[ -f "${portwine_exe}".ppdb ]] && [[ "${PORTWINE_DB}" != "RiotClientServices" ]] ; then
export PORTWINE_DB_FILE="${portwine_exe}".ppdb export PORTWINE_DB_FILE="${portwine_exe}".ppdb
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
. "${PORTWINE_DB_FILE}" . "${PORTWINE_DB_FILE}"
if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'` export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
@ -668,8 +684,10 @@ pw_init_db () {
--title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \ --title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \
--field="DB FILE: :CB" "${ADD_CB_DBFILE}"` --field="DB FILE: :CB" "${ADD_CB_DBFILE}"`
if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then
PORTWINE_DB_FILE="${PW_FIND_DB_FILE}" PORTWINE_DB_FILE="${PW_FIND_DB_FILE}"
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
fi fi
IFS="$orig_IFS" IFS="$orig_IFS"
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then
@ -745,8 +763,8 @@ pw_port_update () {
if [[ -z "${pw_yad_new}" ]] ; then if [[ -z "${pw_yad_new}" ]] ; then
zenity --title="Changelog" --text-info --width=1200 --height=550 \ zenity --title="Changelog" --text-info --width=1200 --height=550 \
--filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}" --filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}"
fi fi
[ "$?" == 0 ] && /usr/bin/env bash -c ${pw_full_command_line[*]} & [ "$?" == 0 ] && echo "Restarting PP after update..." && /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
fi fi
else else

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: PortWINE-Linux.ru # Author: linux-gaming.ru
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc" read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc} export update_loc=${update_loc}
@ -34,7 +34,7 @@ then
export inst_succ="Установка завершена успешно!" export inst_succ="Установка завершена успешно!"
export port_upd1="Обновление PortWINE" export port_upd1="Обновление PortWINE"
export port_upd2="На сайте portwine-linux.ru вышло обновление для ${portname}\n" export port_upd2="На сайте linux-gaming.ru вышло обновление для ${portname}\n"
export port_upd3="Действие:" export port_upd3="Действие:"
export port_upd4="Перейти на сайт" export port_upd4="Перейти на сайт"
export port_upd5="Напомнить позже" export port_upd5="Напомнить позже"
@ -163,7 +163,7 @@ then
export inst_succ="The installation was successful." export inst_succ="The installation was successful."
export port_upd1="New update PortWINE" export port_upd1="New update PortWINE"
export port_upd2="On portwine-linux.ru site published an update to the ${portname}\n" export port_upd2="On linux-gaming.ru site published an update to the ${portname}\n"
export port_upd3="Action:" export port_upd3="Action:"
export port_upd4="Go to the website" export port_upd4="Go to the website"
export port_upd5="Remind me later" export port_upd5="Remind me later"

View File

@ -8,7 +8,7 @@
export PW_DLL_INSTALL="d3dx10 d3dx11_42 d3dx11_43" # Install DDL in port prefix (used winetricks) export PW_DLL_INSTALL="d3dx10 d3dx11_42 d3dx11_43" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
export PW_USE_DXR10=0 export PW_USE_DXR10=0
export PW_VULKAN_NO_ASYNC=0 export PW_VULKAN_NO_ASYNC=0

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=dxvk export PW_VULKAN_USE=dxvk
##export PW_DXR_ON=1 ##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN ##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN

View File

@ -7,7 +7,7 @@ export PW_VULKAN_USE=dxvk
##export PW_MANGOHUD=1 ##export PW_MANGOHUD=1
export PW_COMMENT_DB="Control (DX11)" export PW_COMMENT_DB="Control (DX11)"
export PW_DLL_INSTALL="physx" export PW_DLL_INSTALL="physx"
##export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,app_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n" ##export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,apw_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
#####################examples########################### #####################examples###########################
##export PW_COMMENT_DB="blablabla" ##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP

View File

@ -8,7 +8,7 @@ export PW_COMMENT_DB="Control (DX12)"
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
##export PW_MANGOHUD=1 ##export PW_MANGOHUD=1
export PW_DLL_INSTALL="physx" export PW_DLL_INSTALL="physx"
export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,app_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n" export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,apw_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
#####################examples########################### #####################examples###########################
##export PW_COMMENT_DB="blablabla" ##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#DOOMEternalx64vk.exe #DOOMEternalx64vk.exe
#Rating=? #Rating=?
################################################ ################################################

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM_6.3-7 export PW_WINE_USE=PROTON_LG_6.3-7
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#FarCry.exe #FarCry.exe
#Rating=5 #Rating=5
################################# #################################

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM_6.3-8C_PW2 export PW_WINE_USE=PROTON_LG_6.3-8C_PW2
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#Hades.exe #Hades.exe
#Rating=1-5 #Rating=1-5
#export PW_COMMENT_DB="blablabla" #export PW_COMMENT_DB="blablabla"

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
##export PW_DXR_ON=1 ##export PW_DXR_ON=1
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -12,8 +12,8 @@ export TEXT_OPSSL=""
[[ -z `which openssl` ]] && export TEXT_OPSSL="Install openssl in your system!!!\n" [[ -z `which openssl` ]] && export TEXT_OPSSL="Install openssl in your system!!!\n"
export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time" export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time"
export WINEDLLOVERRIDES="mscoree,mshtml=" export WINEDLLOVERRIDES="mscoree,mshtml="
# export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options
export PW_WINE_USE=WINE_LOL_GE_7.0-2 export PW_WINE_USE=WINE_LOL_GE_7.0-4
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
export PW_MUST_HAVE_DLL="" export PW_MUST_HAVE_DLL=""
export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS" export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS"
@ -42,7 +42,7 @@ check_download_wine_ver_for_lol
# check_port_for_lol () { # check_port_for_lol () {
# "${pw_yad}" --progress --progress-text="Loading and start League of Legends. Please wait. It can take a long time!" \ # "${pw_yad}" --progress --progress-text="Loading and start League of Legends. Please wait. It can take a long time!" \
# --pulsate --no-buttons --undecorated --center --skip-taskbar --image="${PW_GUI_ICON_PATH}/covers/lol_cover.jpg" --image-on-top > /dev/null 2>&1 & # --pulsate --no-buttons --undecorated --center --skip-taskbar --image="${PW_GUI_ICON_PATH}/covers/lol_cover.jpg" --image-on-top > /dev/null 4>&1 &
# PW_YAD_PID_LOL="$!" # PW_YAD_PID_LOL="$!"
# process=LeagueClientUx.exe # process=LeagueClientUx.exe
# while [[ -z `pidof ${process}` ]] ; do # while [[ -z `pidof ${process}` ]] ; do
@ -67,12 +67,13 @@ check_download_wine_ver_for_lol
# } # }
add_in_start_portwine () { add_in_start_portwine () {
if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ] ; then echo ""
pw_stop_progress_bar # if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ] ; then
zenity --question --title="Fix for LoL anti-cheat" \ # pw_stop_progress_bar
--text='Root rights are required to execute the command: \n"sysctl -w abi.vsyscall32=0"' --no-wrap # zenity --question --title="Fix for LoL anti-cheat" \
[ "$?" = 1 ] && exit 0 # --text='Root rights are required to execute the command: \n"sysctl -w abi.vsyscall32=0"' --no-wrap
pkexec /usr/bin/env bash -c 'sysctl -w abi.vsyscall32=0' # [ "$?" = 1 ] && exit 0
fi # pkexec /usr/bin/env bash -c 'sysctl -w abi.vsyscall32=0'
# fi
# check_port_for_lol & # check_port_for_lol &
} }

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#mafiadefinitiveedition.exe #mafiadefinitiveedition.exe
#Rating=4 #Rating=4
################################################ ################################################

View File

@ -3,76 +3,24 @@
#Origin.exe #Origin.exe
#Rating=? #Rating=?
#####################examples########################### #####################examples###########################
##export PW_COMMENT_DB="blablabla" export PW_DLL_INSTALL="vcrun2012 vcrun2019" # Install DDL in port prefix (used winetricks)
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2012 vcrun2019 d3dcompiler_43 d3dcompiler_47 d3dx9" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_VULKAN_USE=1 # dxvk, vkd3d or 0 for OpenGL export PW_VULKAN_USE=1 # dxvk, vkd3d or 0 for OpenGL
##export PW_DXVK_VER=1.8.1 ###WINE_KRON4EK###
##export PW_VKD3D_VER=2.2 export PW_WINE_USE="WINE-7.13-STAGING-AMD64"
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=0
##export PW_HIDE_NVIDIA_GPU=0
##export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VKD3D_FEATURE_LEVEL=0
##export PW_DXGI_FROM_DXVK=0
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_USE_GAMEMODE=0 # Force disabele gamemod
##export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
##export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
export STAGING_SHARED_MEMORY=0
#add_in_start_portwine () {
# export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp"
# if try_download "download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_USER_TEMP}/OriginSetup.exe" ; then
# pw_start_progress_bar_block "Extracting files for update the Origin..."
# unzip "${PW_USER_TEMP}/OriginSetup.exe" 'update/*.zip' -d "${PW_USER_TEMP}/"
# unzip -o "${PW_USER_TEMP}/update/"*.zip -d "$WINEPREFIX/drive_c/Program Files (x86)/Origin/"
# try_remove_dir "${PW_USER_TEMP}/update"
# try_remove_file "${PW_USER_TEMP}/OriginSetup.exe"
# pw_stop_progress_bar
# pw_start_progress_bar_cs "Starting the Origin..."
# check_origin_update () {
# while :
# do
# sleep 3
# if [ ! -z `pgrep Origin.exe | head -n 1` ] ; then
# sleep 1
# else
# if [ ! -z `pgrep OriginSetup* | head -n 1` ] ; then
# kill -n 9 `pgrep OriginSetup* | head -n 1`
# fi
# if [ ! -z `pgrep OriginThin* | head -n 1` ] ; then
# kill -n 9 `pgrep OriginThin* | head -n 1`
# fi
# break
# fi
# done
# }
# check_origin_update &
# fi
#}
check_download_wine_ver_for_origin () {
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
if try_download "https://github.com/Kron4ek/Wine-Builds/releases/download/7.13/wine-7.13-staging-amd64.tar.xz" \
"${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then
if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
UNPACK_STATUS=0
else
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
fi
fi
[[ "${UNPACK_STATUS}" != 0 ]] && exit 1
fi
}
check_download_wine_ver_for_origin

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#Sirus Launcher.exe #Sirus Launcher.exe
#Rating=4 #Rating=4
#####################examples########################### #####################examples###########################

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM_6.3-7 export PW_WINE_USE=PROTON_LG_6.3-7
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#Rating=5 #Rating=5
#Terminator.exe #Terminator.exe
################################################ ################################################

View File

@ -14,7 +14,7 @@ export PW_VKBASALT_FFX_CAS="1"
##export PW_DLL_INSTALL="" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_WINE_USE=PROTON_GE # PROTON_STEAM or PROTON_GE ##export PW_WINE_USE=PROTON_GE # PROTON_LG or PROTON_GE
##export PW_VULKAN_USE=vkd3d # dxvk, vkd3d or 0 for OpenGL ##export PW_VULKAN_USE=vkd3d # dxvk, vkd3d or 0 for OpenGL
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN ##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
##export PW_DXR_ON=1 ##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN ##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#name_exe_file.exe #name_exe_file.exe
#Rating=1-5 #Rating=1-5
#####################examples########################### #####################examples###########################
@ -10,7 +10,7 @@
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="+com_skipIntroVideo 1 +com_skipSignInManager 1" # Additional launch options ##export LAUNCH_PARAMETERS="+com_skipIntroVideo 1 +com_skipSignInManager 1" # Additional launch options
##export PW_WINE_USE=PROTON_GE # PROTON_STEAM or PROTON_GE ##export PW_WINE_USE=PROTON_GE # PROTON_LG or PROTON_GE
##export PW_VULKAN_USE=1 # 1 ,dxvk or 0 for OpenGL ##export PW_VULKAN_USE=1 # 1 ,dxvk or 0 for OpenGL
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#eve.exe #eve.exe
#evelauncher.exe #evelauncher.exe
#Rating=5 #Rating=5

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=dxvk export PW_VULKAN_USE=dxvk
export PW_DXR_ON=0 export PW_DXR_ON=0
export PW_VULKAN_NO_ASYNC=0 export PW_VULKAN_NO_ASYNC=0

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
##export PW_DXR_ON=1 ##export PW_DXR_ON=1
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=dxvk export PW_VULKAN_USE=dxvk
export PW_DXR_ON=0 export PW_DXR_ON=0
##export PW_DLSS_ON=1 ##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: PortWINE-Linux.ru #Author: linux-gaming.ru
#setup.exe #setup.exe
#Setup.exe #Setup.exe
#SETUP.exe #SETUP.exe
@ -11,7 +11,7 @@ export PW_DISABLED_CREATE_DB=1
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png" export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png"
export PW_VULKAN_USE=0 #dxvk or vkd3d export PW_VULKAN_USE=0 #dxvk or vkd3d
export PW_MANGOHUD=0 export PW_MANGOHUD=0
#export PW_WINE_USE=PROTON_STEAM #export PW_WINE_USE=PROTON_LG
#export WINEDLLOVERRIDES="blabla=n,b" #export WINEDLLOVERRIDES="blabla=n,b"
#export PW_LOG=0 # Enable debug mode fo terminal #export PW_LOG=0 # Enable debug mode fo terminal
export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support. export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
@ -28,6 +28,6 @@ export PW_WINEDBG_DISABLE=1
export PW_USE_GAMEMODE=0 # Force disabele gamemod export PW_USE_GAMEMODE=0 # Force disabele gamemod
#export PW_FORCE_LARGE_ADDRESS_AWARE=0 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. #export PW_FORCE_LARGE_ADDRESS_AWARE=0 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export PULSE_LATENCY_MSEC=60 #export PULSE_LATENCY_MSEC=60
export PW_DLL_INSTALL="mfc42 vcrun2012 mfc120 vcrun2013" export PW_DLL_INSTALL="mfc42 vcrun6sp6 vcrun2012 mfc120 mfc140 vcrun2013"
#export LAUNCH_PARAMETERS="-d3d9" #export LAUNCH_PARAMETERS="-d3d9"
#export PW_WINDOWS_VER=XP # Set windows version 10, 7 or XP #export PW_WINDOWS_VER=XP # Set windows version 10, 7 or XP

View File

@ -9,4 +9,4 @@ export PW_DLL_INSTALL="vcrun2019 d3dcompiler_46"
export WINEDLLOVERRIDES="libglesv2,lsteamclient=" export WINEDLLOVERRIDES="libglesv2,lsteamclient="
export LAUNCH_PARAMETERS="-no-cef-sandbox" export LAUNCH_PARAMETERS="-no-cef-sandbox"
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
export PW_WINE_USE=PROTON_GE export PW_WINE_USE=PROTON_LG

View File

@ -7,7 +7,7 @@ export PW_COMMENT_DB="Wargaming Game Center"
################################################ ################################################
export PW_WINE_USE=PROTON_GE export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=1 #dxvk, vkd3d or 0 for OpenGL export PW_VULKAN_USE=1 #dxvk, vkd3d or 0 for OpenGL
export LAUNCH_PARAMETERS="--disable-gpu" # Additional launch options export LAUNCH_PARAMETERS="" # Additional launch options
#export PW_USE_TERMINAL=1 #export PW_USE_TERMINAL=1
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
#export PW_USE_NVAPI_AND_DLSS=0 #export PW_USE_NVAPI_AND_DLSS=0
@ -21,4 +21,7 @@ add_in_start_portwine () {
if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then
sed -i 's%<igbHardwareAccelerationEnabled> true </igbHardwareAccelerationEnabled>%<igbHardwareAccelerationEnabled> false </igbHardwareAccelerationEnabled>%' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" sed -i 's%<igbHardwareAccelerationEnabled> true </igbHardwareAccelerationEnabled>%<igbHardwareAccelerationEnabled> false </igbHardwareAccelerationEnabled>%' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml"
fi fi
if [[ "${PW_VULKAN_USE}" == "0" || "${PW_VULKAN_USE}" == "3" ]] ; then
export LAUNCH_PARAMETERS="--disable-gpu"
fi
} }

View File

@ -1,12 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
[ "${update_loc}" = "RUS" ] && export BN_LOC=ruRU || export BN_LOC=enUS [ "${update_loc}" = "RUS" ] && export BN_LOC=ruRU || export BN_LOC=enUS
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe"
start_portwine start_portwine
if try_download "dist.blizzard.com/downloads/bna-installers/322d5bb9ae0318de3d4cde7641c96425/retail.1/Battle.net-Setup-${BN_LOC}.exe" "${PW_AUTOINSTALL_EXE}" if try_download "dist.blizzard.com/downloads/bna-installers/322d5bb9ae0318de3d4cde7641c96425/retail.1/Battle.net-Setup-${BN_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
then then
PW_START_PROGRESS_BAR "Installing the Battle Net. Please wait..." # PW_START_PROGRESS_BAR "Installing the Battle Net. Please wait..."
pw_kill_autostart Battle.net.exe & pw_kill_autostart Battle.net.exe &
pw_run "${PW_AUTOINSTALL_EXE}" pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"` portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"`

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: PortWINE-Linux.ru # Author: linux-gaming.ru
######################################################################## ########################################################################
export PW_URL_CEMU=($(curl -s "https://cemu.info" | grep "zip" | cut -d \" -f 2)) export PW_URL_CEMU=($(curl -s "https://cemu.info" | grep "zip" | cut -d \" -f 2))
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/`echo ${PW_URL_CEMU} | awk -F/ '{print $5}'`" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/`echo ${PW_URL_CEMU} | awk -F/ '{print $5}'`"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
export LAUNCH_PARAMETERS=("/q" ) export LAUNCH_PARAMETERS=("/q" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: chal55rus (Sergey P.), cefeiko, Castro-Fidel (PortWINE-Linux.ru) # Author: chal55rus (Sergey P.), cefeiko, Castro-Fidel (linux-gaming.ru)
########################################################################## ##########################################################################
pw_shutdown_please () { pw_shutdown_please () {
if [ "$PW_USE_RUNTIME" != 1 ] if [ "$PW_USE_RUNTIME" != 1 ]

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT") export LAUNCH_PARAMETERS=("/VERYSILENT")
export GOG_VER=2.0.48.63 export GOG_VER=2.0.48.63

View File

@ -1,12 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS" export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/live.na.exe" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/live.na.exe"
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live"
export PW_MUST_HAVE_DLL="" export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
export PW_WINE_USE=WINE_LOL_GE_7.0-2 export PW_WINE_USE=WINE_LOL_GE_7.0-4
export WINEDLLOVERRIDES="mscoree,mshtml=" export WINEDLLOVERRIDES="mscoree,mshtml="
export PW_USE_D3D_EXTRAS=1 export PW_USE_D3D_EXTRAS=1

View File

@ -1,13 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
export LAUNCH_PARAMETERS=("/silent" ) export LAUNCH_PARAMETERS=("/silent" "/NoLaunch" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
start_portwine start_portwine
if try_download "download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_AUTOINSTALL_EXE}" if try_download "origin-a.akamaihd.net/Origin-Client-Download/origin/live/OriginThinSetup.exe" "${PW_AUTOINSTALL_EXE}"
then then
pw_start_progress_bar_block "Installing the Origin. Please wait..." pw_start_progress_bar_block "Installing the Origin. Please wait..."
pw_kill_autostart Origin.exe & # pw_kill_autostart Origin.exe &
pw_run "${PW_AUTOINSTALL_EXE}" pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe" portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe"
pw_stop_progress_bar pw_stop_progress_bar

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam") export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher") export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"

View File

@ -19,8 +19,7 @@ then
pw_start_progress_bar_block "Starting WGC installation..." pw_start_progress_bar_block "Starting WGC installation..."
pw_kill_autostart wgc.exe & pw_kill_autostart wgc.exe &
pw_run "${PW_AUTOINSTALL_EXE}" pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/ProgramData/Wargaming.net/GameCenter/wgc_api/wgc_api.exe" portwine_exe="$WINEPREFIX/drive_c/ProgramData/Wargaming.net/GameCenter/api/wgc_api.exe"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
export PORTWINE_CREATE_SHORTCUT_NAME="Wargaming Game Center" export PORTWINE_CREATE_SHORTCUT_NAME="Wargaming Game Center"
try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine kill_portwine

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord # Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord
######################################################################## ########################################################################
echo ' echo '
@ -17,7 +17,7 @@ if [[ $(id -u) = 0 ]] ; then
fi fi
if [[ "${s_install}" != "1" && ! -x "`which "zenity" 2>/dev/null`" ]] ; then if [[ "${s_install}" != "1" && ! -x "`which "zenity" 2>/dev/null`" ]] ; then
echo "You will need to install: zenity, and restart the port." echo "You will need to install: zenity, and restart the port."
xdg-open "portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0 xdg-open "https://linux-gaming.ru/portproton/" > /dev/null 2>&1 & exit 0
fi fi
. "$(dirname $(readlink -f "$0"))/functions_helper" . "$(dirname $(readlink -f "$0"))/functions_helper"
@ -27,7 +27,7 @@ start_portwine () {
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/"
export WINEARCH="win64" export WINEARCH="win64"
if [[ "${PW_VULKAN_USE}" == 3 ]] ; then if [[ "${PW_VULKAN_USE}" == 3 ]] ; then
export PW_WINE_USE="${PW_PROTON_PW_VER}" export PW_WINE_USE="${PW_PROTON_LG_VER}"
echo "Force to use $PW_WINE_USE" echo "Force to use $PW_WINE_USE"
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \ if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \
@ -70,9 +70,11 @@ start_portwine () {
if [[ ! -z "${PW_LOG}" && "${PW_LOG}" != 0 ]] ; then if [[ ! -z "${PW_LOG}" && "${PW_LOG}" != 0 ]] ; then
export WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg" export WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg"
export DXVK_LOG_LEVEL="info" export DXVK_LOG_LEVEL="warn"
export VKD3D_DEBUG="warn" export VKD3D_DEBUG="warn"
export WINE_MONO_TRACE="E:System.NotImplementedException" export WINE_MONO_TRACE="E:System.NotImplementedException"
export VK_LOADER_DEBUG="warn"
export VKBASALT_LOG_LEVEL="warn"
else else
export WINEDEBUG="-all" export WINEDEBUG="-all"
export DXVK_LOG_LEVEL="none" export DXVK_LOG_LEVEL="none"
@ -113,10 +115,23 @@ start_portwine () {
export RADV_DEBUG="llvm" export RADV_DEBUG="llvm"
var_vkd3d_config_update single_queue var_vkd3d_config_update single_queue
fi fi
if [[ ! -z "${PW_USE_NVAPI_AND_DLSS}" && "${PW_USE_NVAPI_AND_DLSS}" == 1 && -d "${WINEDIR}/lib/wine/nvapi/" ]]
if ! try_force_link_file "${WINEDIR}"/lib64/wine/fakedlls/winmm.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
then try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/winmm.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
fi
if [[ ! -z "${PW_USE_FAKE_DLSS}" && "${PW_USE_FAKE_DLSS}" == 1 && -d "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/" ]]
then
try_force_link_file "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
try_force_link_file "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.ini" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.nvapiHack =/c dxgi.nvapiHack = False' "${DXVK_CONFIG_FILE}"
export DXVK_NVAPIHACK=0
elif [[ ! -z "${PW_USE_NVAPI_AND_DLSS}" && "${PW_USE_NVAPI_AND_DLSS}" == 1 && -d "${WINEDIR}/lib/wine/nvapi/" ]]
then then
try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/" try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/"
try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/" try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvngx.ini"
var_winedlloverride_update "nvapi,nvapi64,nvml=n;nvcuda=b" var_winedlloverride_update "nvapi,nvapi64,nvml=n;nvcuda=b"
if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvngx.dll" || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/_nvngx.dll" ]] ; then if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvngx.dll" || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/_nvngx.dll" ]] ; then
try_copy_file `find /usr/* -type f -name "nvngx.dll" 2>/dev/null | awk '{print $1}' | grep '/lib/'` "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/" try_copy_file `find /usr/* -type f -name "nvngx.dll" 2>/dev/null | awk '{print $1}' | grep '/lib/'` "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
@ -126,14 +141,24 @@ start_portwine () {
try_force_link_file "${PW_PLUGINS_PATH}"/nvml/lib/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/nvml.dll" try_force_link_file "${PW_PLUGINS_PATH}"/nvml/lib/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/nvml.dll"
try_force_link_file "${PW_PLUGINS_PATH}"/nvml/lib64/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvml.dll" try_force_link_file "${PW_PLUGINS_PATH}"/nvml/lib64/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvml.dll"
export DXVK_NVAPIHACK=0 export DXVK_NVAPIHACK=0
sed -i /'dxgi.customDeviceId =/c # dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c # dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.nvapiHack =/c # dxgi.nvapiHack = False' "${DXVK_CONFIG_FILE}"
else else
var_winedlloverride_update "nvapi,nvapi64,nvml,nvcuda=" var_winedlloverride_update "nvapi,nvapi64,nvml,nvngx,nvcuda="
sed -i /'dxgi.customDeviceId =/c # dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c # dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.nvapiHack =/c # dxgi.nvapiHack = False' "${DXVK_CONFIG_FILE}"
fi fi
if [[ ! -z "${PW_WINEDBG_DISABLE}" && "${PW_WINEDBG_DISABLE}" != 0 ]] ; then if [[ ! -z "${PW_WINEDBG_DISABLE}" && "${PW_WINEDBG_DISABLE}" != 0 ]] ; then
var_winedlloverride_update "winedbg.exe=" var_winedlloverride_update "winedbg.exe="
fi fi
if [[ ! -z "${PW_HIDE_NVIDIA_GPU}" && "${PW_HIDE_NVIDIA_GPU}" != 0 ]] ; then if [[ ! -z "${PW_HIDE_NVIDIA_GPU}" && "${PW_HIDE_NVIDIA_GPU}" != 0 ]] ; then
export WINE_HIDE_NVIDIA_GPU="1" export WINE_HIDE_NVIDIA_GPU="1"
export DXVK_NVAPIHACK=1
sed -i /'dxgi.customDeviceId =/c # dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c # dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.nvapiHack =/c dxgi.nvapiHack = True' "${DXVK_CONFIG_FILE}"
fi fi
if [[ ! -z "${PW_PRIME_RENDER_OFFLOAD}" && "${PW_PRIME_RENDER_OFFLOAD}" != 0 ]] ; then if [[ ! -z "${PW_PRIME_RENDER_OFFLOAD}" && "${PW_PRIME_RENDER_OFFLOAD}" != 0 ]] ; then
export __NV_PRIME_RENDER_OFFLOAD=1 export __NV_PRIME_RENDER_OFFLOAD=1
@ -194,7 +219,6 @@ start_portwine () {
export __GL_SYNC_TO_VBLANK=1 ;; export __GL_SYNC_TO_VBLANK=1 ;;
esac esac
create_new_dir "${PORT_WINE_TMP_PATH}"/gl_shader_cache create_new_dir "${PORT_WINE_TMP_PATH}"/gl_shader_cache
export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf"
export int_xneur=0 export int_xneur=0
if [[ ! -z "`pgrep xneur`" ]]; then if [[ ! -z "`pgrep xneur`" ]]; then
killall xneur killall xneur
@ -242,9 +266,7 @@ start_portwine () {
try_force_link_file "${WINEDIR}/share/wine/fonts/"tahoma.ttf "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/Fonts/"tahoma.ttf try_force_link_file "${WINEDIR}/share/wine/fonts/"tahoma.ttf "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/Fonts/"tahoma.ttf
} }
export DOTPFX_VER="48v1"
DOTPFX_URL="github.com/Castro-Fidel/PortWINE/releases/download/dotpfx${DOTPFX_VER}/dotpfx${DOTPFX_VER}.tar.xz" DOTPFX_URL="github.com/Castro-Fidel/PortWINE/releases/download/dotpfx${DOTPFX_VER}/dotpfx${DOTPFX_VER}.tar.xz"
if [[ "${update_loc}" == "RUS" && "${PW_PREFIX_NAME}" == "DOTNET" && ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/.dotnet48 ]] ; then if [[ "${update_loc}" == "RUS" && "${PW_PREFIX_NAME}" == "DOTNET" && ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/.dotnet48 ]] ; then
print_info "Download and install DOTNET..." print_info "Download and install DOTNET..."
if try_download "${DOTPFX_URL}" "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" ; then if try_download "${DOTPFX_URL}" "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" ; then
@ -288,10 +310,9 @@ start_portwine () {
then try_force_link_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Documents" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/My Documents" then try_force_link_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Documents" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/My Documents"
fi fi
#enabled BattleEye_Runtime and EasyAntiCheat_Runtime #enabled BattleEye_Runtime and EasyAntiCheat_Runtime
export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/BattlEye_Runtime" export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/BattlEye_Runtime"
export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/EasyAntiCheat_Runtime" export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/EasyAntiCheat_Runtime"
export PROTON_EASYANTICHEAT_RUNTIME="${PROTON_EAC_RUNTIME}" var_winedlloverride_update "beclient,beclient_x64=b,n"
var_winedlloverride_update "beclient,beclient_x64=b"
#try link d3d extras libs #try link d3d extras libs
for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \ for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \
d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \ d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \
@ -323,26 +344,27 @@ start_portwine () {
# export TOTAL_VRAM=`"${PW_WINELIB}/runtime/files/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'` # export TOTAL_VRAM=`"${PW_WINELIB}/runtime/files/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'`
# echo "TOTAL_VRAM=${TOTAL_VRAM}" # echo "TOTAL_VRAM=${TOTAL_VRAM}"
echo "Try link wine DXGI by default..."
if ! try_force_link_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/dxgi.dll"
then try_force_link_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/dxgi.dll"
fi
if ! try_force_link_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/dxgi.dll"
then try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/dxgi.dll"
fi
echo "Try link wine d3d filese by default..."
for wine_build_dll in d3d12 d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi ; do
if ! try_force_link_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_build_dll}.dll"
then try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_build_dll}.dll"
fi
if ! try_force_link_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_build_dll}.dll"
then try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_build_dll}.dll"
fi
done
if [[ "${PW_VULKAN_USE}" == "0" ]] ; then if [[ "${PW_VULKAN_USE}" == "0" ]] ; then
echo "Use OpenGL" echo "Use OpenGL"
export GL_YIELD="NOTHING" export GL_YIELD="NOTHING"
export mesa_glthread=true export mesa_glthread=true
echo "Try link wine DXGI..."
if ! try_force_link_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/dxgi.dll"
then try_force_link_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/dxgi.dll"
fi
if ! try_force_link_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/dxgi.dll"
then try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/dxgi.dll"
fi
echo "Try link wine d3d filese..."
for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi ; do
if ! try_force_link_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_build_dll}.dll"
then try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_build_dll}.dll"
fi
if ! try_force_link_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_build_dll}.dll"
then try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_build_dll}.dll"
fi
done
var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12=" var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12="
elif [[ "${PW_VULKAN_USE}" == "3" ]] ; then elif [[ "${PW_VULKAN_USE}" == "3" ]] ; then
echo "Use GALLIUM-NINE (Native DX9 on MESA drivers)" echo "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
@ -350,7 +372,7 @@ start_portwine () {
export PW_GALLIUM_NINE_PATH="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}" export PW_GALLIUM_NINE_PATH="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib32/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/d3d9.dll" try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib32/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/d3d9.dll"
try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/d3d9.dll" try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/d3d9.dll"
var_winedlloverride_update "d3d9=n;wined3d=b;d3d10,d3d11,dxvk_config,vulkan-1,winevulkan=" var_winedlloverride_update "d3d9=n;wined3d=b;dxvk_config,vulkan-1,winevulkan="
unset FIND_D3D_MODULE D3D_MODULE_PATH unset FIND_D3D_MODULE D3D_MODULE_PATH
FIND_D3D_MODULE=`dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null` FIND_D3D_MODULE=`dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null`
if [[ ! -z "$FIND_D3D_MODULE" ]] ; then if [[ ! -z "$FIND_D3D_MODULE" ]] ; then
@ -376,36 +398,30 @@ start_portwine () {
export WINE_FULLSCREEN_FSR=0 export WINE_FULLSCREEN_FSR=0
else else
echo "Use VKD3D-PROTON and DXVK (DX 9-12 to vulkan)" echo "Use VKD3D-PROTON and DXVK (DX 9-12 to vulkan)"
if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" ]] && [[ "${PW_USE_AMDVLK_DRIVER}" != 0 ]] ; then # if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" ]] && [[ "${PW_USE_AMDVLK_DRIVER}" != 0 ]] ; then
export AMD_VULKAN_ICD=AMDVLK # export AMD_VULKAN_ICD=AMDVLK
unset DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1 # unset DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1
print_info "Try to use AMDVLK driver (only with MESA)" # print_info "Try to use AMDVLK driver (only with MESA)"
else # else
export AMD_VULKAN_ICD=RADV # export AMD_VULKAN_ICD=RADV
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 # export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
print_info "Try to use RADV driver (only with MESA)" # print_info "Try to use RADV driver (only with MESA)"
# fi
# export VKD3D_FEATURE_LEVEL="12_0"
# export __GL_DXVK_OPTIMIZATIONS=1
# var_vkd3d_config_update no_upload_hvv
if [[ "${PW_USE_WINE_DXGI}" == 1 ]] || [[ "${PW_VULKAN_USE}" == 2 ]]; then
export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxvk_config openvr_api_dxvk"
var_winedlloverride_update "d3d11,d3d10core,d3d9=n"
else
export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi dxvk_config openvr_api_dxvk"
var_winedlloverride_update "d3d11,d3d10core,d3d9,dxgi=n"
fi fi
export VKD3D_FEATURE_LEVEL="12_0"
export __GL_DXVK_OPTIMIZATIONS=1
var_vkd3d_config_update no_upload_hvv
export CP_DXVK_FILES="d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi dxvk_config openvr_api_dxvk"
echo "Try link native DXVK files..." echo "Try link native DXVK files..."
for wine_dxvk_dll in ${CP_DXVK_FILES} ; do for wine_dxvk_dll in ${CP_DXVK_FILES} ; do
try_force_link_file "${WINEDIR}/lib/wine/dxvk/${wine_dxvk_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll" try_force_link_file "${WINEDIR}/lib/wine/dxvk/${wine_dxvk_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_dxvk_dll}.dll" try_force_link_file "${WINEDIR}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_dxvk_dll}.dll"
done done
if [[ "${PW_USE_WINE_DXGI}" == 1 ]] || [[ "${PW_VULKAN_USE}" == 2 ]]; then
echo "Try link wine DXGI..."
if ! try_force_link_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/dxgi.dll"
then try_force_link_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/dxgi.dll"
fi
if ! try_force_link_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/dxgi.dll"
then try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/dxgi.dll"
fi
var_winedlloverride_update "d3d11,d3d10core,d3d9,dxvk_config=n;dxgi=b"
else
var_winedlloverride_update "d3d11,d3d10core,d3d9,dxgi,dxvk_config=n"
fi
echo "Try link native VKD3D files..." echo "Try link native VKD3D files..."
try_force_link_file "${WINEDIR}/lib/vkd3d/libvkd3d-shader-1.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/libvkd3d-shader-1.dll" try_force_link_file "${WINEDIR}/lib/vkd3d/libvkd3d-shader-1.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/libvkd3d-shader-1.dll"
try_force_link_file "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/libvkd3d-shader-1.dll" try_force_link_file "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/libvkd3d-shader-1.dll"
@ -414,6 +430,7 @@ start_portwine () {
try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
done done
fi fi
if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]] if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]]
then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12=" then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12="
else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n" else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n"
@ -440,7 +457,7 @@ start_portwine () {
export DXVK_STATE_CACHE=1 export DXVK_STATE_CACHE=1
create_new_dir "${PORT_WINE_TMP_PATH}/vkd3d_cache" create_new_dir "${PORT_WINE_TMP_PATH}/vkd3d_cache"
export VKD3D_SHADER_CACHE_PATH="${PORT_WINE_TMP_PATH}/vkd3d_cache" export VKD3D_SHADER_CACHE_PATH="${PORT_WINE_TMP_PATH}/vkd3d_cache"
var_vkd3d_config_update pipeline_library_app_cache # var_vkd3d_config_update pipeline_library_apw_cache
else else
export __GL_SHADER_DISK_CACHE=0 export __GL_SHADER_DISK_CACHE=0
export DXVK_STATE_CACHE=0 export DXVK_STATE_CACHE=0
@ -450,9 +467,8 @@ start_portwine () {
if [[ "${PW_WINE_FULLSCREEN_FSR}" == 1 ]] || [[ "${WINE_FULLSCREEN_FSR}" == 1 ]] ; then if [[ "${PW_WINE_FULLSCREEN_FSR}" == 1 ]] || [[ "${WINE_FULLSCREEN_FSR}" == 1 ]] ; then
export WINE_FULLSCREEN_FSR=1 export WINE_FULLSCREEN_FSR=1
export WINE_FULLSCREEN_FSR_STRENGTH=0 export WINE_FULLSCREEN_FSR_STRENGTH=1
export WINE_FULLSCREEN_INTEGER_SCALING=0 export WINE_FULLSCREEN_INTEGER_SCALING=0
# export WINE_FULLSCREEN_FAKE_CURRENT_RES=1920x1080
else else
export WINE_FULLSCREEN_FSR=0 export WINE_FULLSCREEN_FSR=0
unset WINE_FULLSCREEN_FAKE_CURRENT_RES WINE_FULLSCREEN_FSR_STRENGTH WINE_FULLSCREEN_INTEGER_SCALING unset WINE_FULLSCREEN_FAKE_CURRENT_RES WINE_FULLSCREEN_FSR_STRENGTH WINE_FULLSCREEN_INTEGER_SCALING
@ -520,11 +536,15 @@ start_portwine () {
echo "Disable EAC" echo "Disable EAC"
[[ -z "${LAUNCH_PARAMETERS}" ]] && export LAUNCH_PARAMETERS+="-eac-nop-loaded " [[ -z "${LAUNCH_PARAMETERS}" ]] && export LAUNCH_PARAMETERS+="-eac-nop-loaded "
fi fi
sleep 1
pw_stop_progress_bar && pw_stop_progress_bar &&
pw_tray_icon && pw_tray_icon &&
if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then
pw_start_progress_bar_cover "${PW_GUI_ICON_PATH}/covers/pw_loading_cover.gif" pw_start_progress_bar_cover "${PW_GUI_ICON_PATH}/covers/pw_loading_cover.gif"
fi fi
if [[ "${PW_PREFIX_NAME}" == "DOTNET" ]] && [[ "${PW_VULKAN_USE}" == "1" || "${PW_VULKAN_USE}" == "2" ]] ; then
var_winedlloverride_update "libglesv2=d"
fi
add_in_start_portwine add_in_start_portwine
} }
@ -634,7 +654,7 @@ fi
. "${PORT_SCRIPTS_PATH}"/lang . "${PORT_SCRIPTS_PATH}"/lang
. "${PORT_SCRIPTS_PATH}"/zen_yad_gui . "${PORT_SCRIPTS_PATH}"/zen_yad_gui
export urlg="https://portwine-linux.ru/portwine-faq/" export urlg="https://https://linux-gaming.ru/portproton/"
export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}" export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
try_remove_dir "${PW_WINELIB}/var" try_remove_dir "${PW_WINELIB}/var"
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui" export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
@ -646,12 +666,16 @@ fi
export WINETRICKS_DOWNLOADER="curl" export WINETRICKS_DOWNLOADER="curl"
export USER_CONF="${PORT_WINE_PATH}/data/user.conf" export USER_CONF="${PORT_WINE_PATH}/data/user.conf"
check_user_conf check_user_conf
sed -i 's/ PP_/ PW_/g' "${USER_CONF}"
if [[ ! -d "${HOME}/PortWINE" ]] && [[ -d "${HOME}/.local/share/PortWINE/PortProton/" ]] ; then
ln -s "${HOME}/.local/share/PortWINE/" "${HOME}"
fi
if [[ -z "${INSTALLING_PORT}" ]] ; then if [[ -z "${INSTALLING_PORT}" ]] ; then
. "${USER_CONF}" . "${USER_CONF}"
pw_port_update pw_port_update
pw_download_libs pw_download_libs
pw_check_and_download_wine ${PW_PROTON_STEAM_VER} pw_check_and_download_wine ${PW_PROTON_LG_VER}
pw_check_and_download_plugins pw_check_and_download_plugins
pw_init_db pw_init_db
. "${USER_CONF}" . "${USER_CONF}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: PortWINE-Linux.ru # Author: linux-gaming.ru
. "$(dirname $(readlink -f "$0"))/runlib" . "$(dirname $(readlink -f "$0"))/runlib"
name_desktop="PortProton" name_desktop="PortProton"
@ -54,6 +54,7 @@ if [ "${PW_SILENT_INSTALL}" = "1" ] ; then
fi fi
fi fi
ln -s "${XDG_DATA_HOME}/PortWINE" "${HOME}/" ln -s "${XDG_DATA_HOME}/PortWINE" "${HOME}/"
echo "Restarting PP after installing..."
/usr/bin/env bash -c "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" $@ & /usr/bin/env bash -c "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" $@ &
exit 0 exit 0
else else
@ -61,6 +62,6 @@ if [ "${PW_SILENT_INSTALL}" = "1" ] ; then
fi fi
else else
`zenity --info --title "${inst_set_top}" --text "${inst_succ}" --no-wrap ` > /dev/null 2>&1 `zenity --info --title "${inst_set_top}" --text "${inst_succ}" --no-wrap ` > /dev/null 2>&1
xdg-open "portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0 xdg-open "https://linux-gaming.ru/portproton/" > /dev/null 2>&1 & exit 0
fi fi
unset INSTALLING_PORT unset INSTALLING_PORT

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: PortWINE-Linux.ru # Author: linux-gaming.ru
export NO_AT_BRIDGE=1 export NO_AT_BRIDGE=1
export pw_full_command_line=("$0" $*) export pw_full_command_line=("$0" $*)
if [ -f "$1" ]; then if [ -f "$1" ]; then
@ -138,7 +138,7 @@ portwine_start_debug () {
"${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log" "${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log"
echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log" echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log"
"${PW_WINELIB}/portable/bin/vulkaninfo" | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log" [[ `which vulkaninfo` ]] && vulkaninfo | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log"
"${PW_WINELIB}/portable/bin/vkcube" --c 50 "${PW_WINELIB}/portable/bin/vkcube" --c 50
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log" echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log"
@ -355,6 +355,14 @@ pw_winetricks () {
stop_portwine stop_portwine
} }
pw_start_cont_xterm () {
cd "$HOME"
unset PW_SANDBOX_HOME_PATH
# export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
pw_init_runtime
${pw_runtime} xterm
}
pw_create_prefix_backup () { pw_create_prefix_backup () {
cd "$HOME" cd "$HOME"
PW_PREFIX_TO_BACKUP=$("${pw_yad_new}" --file --directory --borders=5 --width=650 --height=500 --auto-close --center \ PW_PREFIX_TO_BACKUP=$("${pw_yad_new}" --file --directory --borders=5 --width=650 --height=500 --auto-close --center \
@ -396,11 +404,12 @@ pw_create_prefix_backup () {
pw_edit_db () { pw_edit_db () {
pw_gui_for_edit_db \ pw_gui_for_edit_db \
PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \ PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \
PW_USE_NVAPI_AND_DLSS PW_WINE_FULLSCREEN_FSR PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP \ PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP \
PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER \ PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER \
PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER \ PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER \
PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
if [ "$?" == 0 ] ; then if [ "$?" == 0 ] ; then
echo "Restarting PP after update ppdb file..."
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
fi fi
@ -449,7 +458,7 @@ done
IFS=$IFS_OLD IFS=$IFS_OLD
export PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME^^}${PW_ADD_PREFIXES_TO_GUI}" export PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME^^}${PW_ADD_PREFIXES_TO_GUI}"
PW_ALL_DIST=$(ls "${PORT_WINE_PATH}/data/dist/" | sed -e s/"${PW_PROTON_GE_VER}$//g" | sed -e s/"${PW_PROTON_STEAM_VER}$//g") PW_ALL_DIST=$(ls "${PORT_WINE_PATH}/data/dist/" | sed -e s/"${PW_PROTON_GE_VER}$//g" | sed -e s/"${PW_PROTON_LG_VER}$//g")
unset DIST_ADD_TO_GUI unset DIST_ADD_TO_GUI
for DAIG in ${PW_ALL_DIST} for DAIG in ${PW_ALL_DIST}
do do
@ -467,34 +476,34 @@ if [[ -n "${PORTWINE_DB_FILE}" ]] ; then
"3") export PW_DEFAULT_VULKAN_USE='GALLIUM_NINE (native DX9 on MESA)!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' ;; "3") export PW_DEFAULT_VULKAN_USE='GALLIUM_NINE (native DX9 on MESA)!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' ;;
*) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;; *) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;;
esac esac
if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$") ]] ; then if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_LG$") ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_PROTON_LG_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
elif [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_GE$") ]] ; then elif [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_GE$") ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_PROTON_GE_VER}!${PW_PROTON_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
else else
if [[ "${PW_WINE_USE}" == "${PW_PROTON_STEAM_VER}" ]] ; then if [[ "${PW_WINE_USE}" == "${PW_PROTON_LG_VER}" ]] ; then
export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
elif [[ "${PW_WINE_USE}" == "${PW_PROTON_GE_VER}" ]] ; then elif [[ "${PW_WINE_USE}" == "${PW_PROTON_GE_VER}" ]] ; then
export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
else else
export DIST_ADD_TO_GUI=$(echo "${DIST_ADD_TO_GUI}" | sed -e s/"\!${PW_WINE_USE}$//g") export DIST_ADD_TO_GUI=$(echo "${DIST_ADD_TO_GUI}" | sed -e s/"\!${PW_WINE_USE}$//g")
export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}!${PW_PROTON_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
fi fi
fi fi
else else
export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)'
if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$") ]] ; then if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_LG$") ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_PROTON_LG_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
elif [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_GE$") ]] ; then elif [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_GE$") ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_PROTON_GE_VER}!${PW_PROTON_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
else else
if [[ "${PW_WINE_USE}" == "${PW_PROTON_STEAM_VER}" ]] ; then if [[ "${PW_WINE_USE}" == "${PW_PROTON_LG_VER}" ]] ; then
export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
elif [[ "${PW_WINE_USE}" == "${PW_PROTON_GE_VER}" ]] ; then elif [[ "${PW_WINE_USE}" == "${PW_PROTON_GE_VER}" ]] ; then
export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
else else
export DIST_ADD_TO_GUI=$(echo "${DIST_ADD_TO_GUI}" | sed -e s/"\!${PW_WINE_USE}$//g") export DIST_ADD_TO_GUI=$(echo "${DIST_ADD_TO_GUI}" | sed -e s/"\!${PW_WINE_USE}$//g")
export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}!${PW_PROTON_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
fi fi
fi fi
unset PW_GUI_DISABLED_CS unset PW_GUI_DISABLED_CS
@ -545,6 +554,7 @@ else
gui_clear_pfx () { gui_clear_pfx () {
if gui_question "${port_clear_pfx}" ; then if gui_question "${port_clear_pfx}" ; then
pw_clear_pfx pw_clear_pfx
echo "Restarting PP after clearing prefix..."
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
fi fi
@ -565,6 +575,7 @@ else
gui_pw_update () { gui_pw_update () {
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier" try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
echo "Restarting PP for check update..."
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
} }
@ -588,6 +599,7 @@ else
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
unpack_tar_gz "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/" unpack_tar_gz "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/"
echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
echo "Restarting PP after backup..."
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
} }
@ -600,6 +612,7 @@ else
--field=" $loc_gui_changelog"!""!"":"FBTN" '@bash -c "button_click open_changelog"' \ --field=" $loc_gui_changelog"!""!"":"FBTN" '@bash -c "button_click open_changelog"' \
--field=" $loc_gui_edit_usc"!""!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \ --field=" $loc_gui_edit_usc"!""!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \
--field=" $loc_gui_scripts_fb"!""!"":"FBTN" '@bash -c "button_click gui_open_scripts_from_backup"' \ --field=" $loc_gui_scripts_fb"!""!"":"FBTN" '@bash -c "button_click gui_open_scripts_from_backup"' \
--field=" Xterm"!""!"":"FBTN" '@bash -c "button_click pw_start_cont_xterm"' \
--field=" $loc_gui_credits"!""!"":"FBTN" '@bash -c "button_click gui_credits"' & --field=" $loc_gui_credits"!""!"":"FBTN" '@bash -c "button_click gui_credits"' &
"${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=3 --align-buttons --form --separator=";" \ "${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=3 --align-buttons --form --separator=";" \
@ -724,6 +737,7 @@ case "$PW_YAD_SET" in
120) gui_vkBasalt ;; 120) gui_vkBasalt ;;
pw_create_prefix_backup) pw_create_prefix_backup ;; pw_create_prefix_backup) pw_create_prefix_backup ;;
gui_credits) gui_credits ;; gui_credits) gui_credits ;;
pw_start_cont_xterm) pw_start_cont_xterm ;;
PW_*) pw_autoinstall_from_db ;; PW_*) pw_autoinstall_from_db ;;
esac esac

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: Castro-Fidel (PortWINE-Linux.ru) #Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2119 #SCRIPTS_NEXT_VERSION=2132
######################################################################## ########################################################################
export PW_MANGOHUD=0 export PW_MANGOHUD=0
export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt
@ -21,8 +21,8 @@ export PW_USE_TERMINAL="0"
export PW_WINEDBG_DISABLE="1" export PW_WINEDBG_DISABLE="1"
export PW_WINDOWS_VER="10" export PW_WINDOWS_VER="10"
export WINEARCH="win64" export WINEARCH="win64"
export PW_LIBS_VER="_v31" export PW_LIBS_VER="_v32"
export PORTWINE_URL="https://portwine-linux.ru/" export LG_SITE_URL="https://linux-gaming.ru/"
export GDK_BACKEND="x11" export GDK_BACKEND="x11"
export PW_USE_GSTREAMER="1" export PW_USE_GSTREAMER="1"
export PW_USE_D3D_EXTRAS="1" export PW_USE_D3D_EXTRAS="1"
@ -32,18 +32,21 @@ export PW_USE_SHADER_CACHE="1"
export STAGING_SHARED_MEMORY="1" export STAGING_SHARED_MEMORY="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1" export PW_FORCE_LARGE_ADDRESS_AWARE="1"
###DEFAULT_WINE### ###DEFAULT_WINE###
export PW_WINE_USE="PROTON_GE" export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v5" export PW_PLUGINS_VER="_v7"
###WINE_PROTON_STEAM### export PW_FAKE_DLSS_VER="2.1-3001-0-7-5-1662667880"
export PW_STEAM_VER="7.0-3" ###WINE_PROTON_LG###
export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" export PW_LG_VER="7-29"
export PW_PROTON_LG_VER="PROTON_LG_${PW_LG_VER}"
###WINE_PROTON_GE### ###WINE_PROTON_GE###
export PW_GE_VER="7-20" export PW_GE_VER="7-33"
export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}" export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}"
export PW_WINE_FULLSCREEN_FSR="0" export PW_WINE_FULLSCREEN_FSR="0"
###WINE_PROTON_PW_FOR_GALLIUM_NINE### ###PREFIX_VERSION###
export PW_PW_VER="7.5" export DOTPFX_VER="48v1"
export PW_PROTON_PW_VER="PROTON_PW_${PW_PW_VER}" export DEFPFX_VER="v1"
#################################################################
export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf"
################################################################# #################################################################
pw_install_dll_in_prefix () pw_install_dll_in_prefix ()
{ {

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru) # Author: Castro-Fidel (linux-gaming.ru)
######################################################################## ########################################################################
zenity_info () { zenity_info () {
echo "INFO: $@" echo "INFO: $@"
@ -218,6 +218,7 @@ pw_gui_for_edit_db () {
if [ "${FPS_LIMIT}" != 0 ] ; then if [ "${FPS_LIMIT}" != 0 ] ; then
export MANGOHUD_CONFIG=${MANGOHUD_CONFIG},fps_limit=${FPS_LIMIT} export MANGOHUD_CONFIG=${MANGOHUD_CONFIG},fps_limit=${FPS_LIMIT}
export PW_MANGOHUD=1
fi fi
echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE" echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES
@ -238,7 +239,18 @@ gui_proton_downloader () {
sed -i '/github-action/d' "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" sed -i '/github-action/d' "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
fi fi
#PROTON_PW #WINE_KRON4EK
export WINE_KRON4EK=($(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4))
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
if [[ ! -z "${WINE_KRON4EK}" ]] ; then
for PGEGIT in ${WINE_KRON4EK[@]} ; do
echo ${PGEGIT} | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
done
sed -i '/6.3/,$d' "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
sed -i '/-x86/d' "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
fi
#PROTON_LG
export PROTON_PW_GIT=($(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)) export PROTON_PW_GIT=($(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4))
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
if [[ ! -z "${PROTON_PW_GIT}" ]] ; then if [[ ! -z "${PROTON_PW_GIT}" ]] ; then
@ -257,6 +269,7 @@ gui_proton_downloader () {
for INSTALLING_VERSION_IN_DIST in `ls "${PORT_WINE_PATH}/data/dist/"` ; do for INSTALLING_VERSION_IN_DIST in `ls "${PORT_WINE_PATH}/data/dist/"` ; do
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
done done
#Installed wine #Installed wine
ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed '/^$/d' > ${PORT_WINE_TMP_PATH}/tmp_installed_wine ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed '/^$/d' > ${PORT_WINE_TMP_PATH}/tmp_installed_wine
@ -265,36 +278,41 @@ gui_proton_downloader () {
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_set"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"
`"${pw_yad}" --plug=$KEY_WINE --tabnum=2 --list --separator="" --listen \
--column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"` &
`"${pw_yad}" --plug=$KEY_WINE --tabnum=1 --list --separator="" --listen \ `"${pw_yad}" --plug=$KEY_WINE --tabnum=1 --list --separator="" --listen \
--column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"` &
`"${pw_yad}" --plug=$KEY_WINE --tabnum=2 --list --separator="" --listen \
--column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git" 1> "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set"` &
`"${pw_yad}" --plug=$KEY_WINE --tabnum=3 --list --separator="" --listen \
--column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_set"` & --column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_set"` &
`"${pw_yad}" --plug=$KEY_WINE --tabnum=3 --list --separator="" --listen \ `"${pw_yad}" --plug=$KEY_WINE --tabnum=4 --list --separator="" --listen \
--column "Select installed WINE for delete:" < "${PORT_WINE_TMP_PATH}/tmp_installed_wine" 1> "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"` & --column "Select installed WINE for delete:" < "${PORT_WINE_TMP_PATH}/tmp_installed_wine" 1> "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"` &
`"${pw_yad}" --key=$KEY_WINE --notebook --width=500 --height=600 --text-align=center --center \ `"${pw_yad}" --key=$KEY_WINE --notebook --width=500 --height=600 --text-align=center --center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "Download..." --separator="" \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "Download..." --separator="" \
--tab-pos=top --tab="PROTON-GE" --tab="PROTON-PW" --tab="INSTALLED"` --tab-pos=top --tab="PROTON-LG" --tab="KRON4EK" --tab="PROTON-GE" --tab="INSTALLED"`
YAD_WINE_STATUS="$?" YAD_WINE_STATUS="$?"
if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
fi fi
if [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_set" | awk '{print $1}'` ] ; then if [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_set"`" export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" | awk '{print $1}'` ] ; then elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"`" export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set" | awk '{print $1}'` ] ; then elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set" | awk '{print $1}'` ] ; then
export VERSION_INSTALLED_WINE="`cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"`" export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set" | awk '{print $1}'` ] ; then
export VERSION_INSTALLED_WINE="`cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"`"
fi fi
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_set"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_installed_wine" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_installed_wine"
for GIVE_WINE_URL in ${PROTON_GE_GIT[@]} ${PROTON_PW_GIT[@]} ; do for GIVE_WINE_URL in ${PROTON_GE_GIT[@]} ${PROTON_PW_GIT[@]} ${WINE_KRON4EK[@]}; do
if [ ! -z `echo ${GIVE_WINE_URL} | grep "$VERSION_WINE_GIT"` ] ; then if [ ! -z `echo ${GIVE_WINE_URL} | grep -i "$VERSION_WINE_GIT"` ] ; then
export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}"
fi fi
done done
@ -401,6 +419,7 @@ gui_vkBasalt () {
portwine_create_shortcut () { portwine_create_shortcut () {
pw_create_gui_png pw_create_gui_png
name_desktop="${PORTPROTON_NAME}" name_desktop="${PORTPROTON_NAME}"
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
if [ -z "${PW_CHECK_AUTOINSTAL}" ] if [ -z "${PW_CHECK_AUTOINSTAL}" ]

0
portwine_install_script/PortProton_1.0 Normal file → Executable file
View File