Compare commits

...

16 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
bab528078e Scripts version 2119 2022-06-21 21:12:10 +03:00
55 changed files with 1564 additions and 406 deletions

View File

@ -1,6 +1,6 @@
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
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.
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,67 @@
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:
###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###
* HOTFIX - for PW_USE_D3D_EXTRAS
* updated information about the project, developers and paid subscribers on boosty
* added optimization of games and applications when using a Wayland session (using direct launch, not using XWayland)
###Scripts version 2118###
* PW_USE_D3D_EXTRAS is back on by default (except WGC)
* updated "PROTON_STEAM" to version 7.0-3

View File

@ -1,11 +1,80 @@
Вы можете помочь развитию проекта: 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###
* исправлено и ускорено создание DOTNET префикса
* HOTFIX - для PW_USE_D3D_EXTRAS
* обновлена информация о проекте, разработчиках и платных подписчиков на boosty
* добавлена оптимизация игр и приложений при использовании сесcии Wayland (используется прямой запуск, не используя XWayland)
###Scripts version 2118###
* переменная PW_USE_D3D_EXTRAS снова включена по умолчанию (кроме WGC)
* обновлен "PROTON_STEAM" до версии 7.0-3
* добавлена информация о проекте, разработчиках и донатеров (тестовый режим)
* добавлена информация о проекте, разработчиках и платных подписчиков на boosty (тестовый режим)
###Scripts version 2117###
* исправлена установка и запуск World of Sea Battle
@ -418,7 +487,7 @@
###Scripts version 2022###
* добавлен фикc для работы EVE Online
* добавлен в GUI вывод версий WINE используемых по умолчанию
* в функцию "GET OTHER WINE" добавлена вкладка с версиями WINE от PortWINE-Linux.ru (тест)
* в функцию "GET OTHER WINE" добавлена вкладка с версиями WINE от linux-gaming.ru (тест)
* исправлено завершение тихого режима установки
###Scripts version 2021###
@ -863,7 +932,7 @@ PS: не забывает для активации добавить перем
* в AUTOINSTALL добавлены установки "Origin" и "Battle.net Launcher"
* увеличено время ожидания ответа при проверки связи с интернетом (ping -w5 -c1 github.com)
* увеличено количество попыток скачивания для неустойчивого интернет соединения (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###
* обновлена верси VKD3D используемая по умолчанию до версии 2.3.1 (скрипт var, переменная export PW_DEF_VKD3D_VER=2.3.1)
@ -894,7 +963,7 @@ PS: не забывает для активации добавить перем
###PortProton-75### 24.04.2021 ###Scripts version 1040###
* обновлен wine Proton experimental 6.3 от 23.04.2021
* добавлена функция pw_clear_pfx для отчистки префикса порта во время обновления без затрагивания игр и программ
* добавлена функция pw_clear_pfx для очистки префикса порта во время обновления без затрагивания игр и программ
* проверка и настройка переменных для MANGOHUD добавлены функцию pw_mangohud_check
* версия VKD3D по умолчанию = 2.3
* добавлена поддержка DXR (RTX) в режиме VKD3D, при условии использования переменной PW_USE_DXR10=1
@ -910,7 +979,7 @@ PS: не забывает для активации добавить перем
* ускорена работа reset скрипта останавливающая все процессы порта
* исправлены ошибки связанные с остановкой отсутствующих pid-оф yad и процессов wine.
* удалено использование wineserver -k в функции kill_portwine (влияло на инициализацию префикса)
* добавлена отчистка ~/.PortWINE, при условии установки новой версии порта
* добавлена очистка ~/.PortWINE, при условии установки новой версии порта
* добавлена вся информация из db файла и winetricks.log в debug
* удален каталог vars (из за db файлоа больше в нем нет необходимости)
* скрипт PortProton_vars перенесен в каталог scripts и переименован в var
@ -946,7 +1015,7 @@ PS: не забывает для активации добавить перем
* убран xterm из debug (иначе ломает шрифты)
* добавлена кнопка редактирования найденного db файла
* ТЕСТ: автоудаление 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"
* исправлено создание db файла при создании ярлыков, в именах которых присутствует одниковвые названия запускаемого файла
* исправили создания префикса на некоторых системах при использования встроенного xterm из ~/PortWINE/libs
@ -958,7 +1027,7 @@ PS: не забывает для активации добавить перем
* добавлен прогресс загрузки библиотек с интернета
* добавлен в debug полный путь до запускаемой игры/программы вместе с именем файла
* исправлено дублирование db файлов при создании ярлыков
* перенос libs с сервера PortWINE-Linux.ru на github.com/Castro-Fidel/PortWINE/releases/
* перенос libs с сервера linux-gaming.ru на github.com/Castro-Fidel/PortWINE/releases/
* скачивание mono оф. github mono
* скачивание gecko оф. ftp winehq
* в /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.
# dxgi.customDeviceId = 0000
# dxgi.customVendorId = 0000
# d3d9.customDeviceId = 0000
# d3d9.customVendorId = 0000
dxgi.customDeviceId = 222F
dxgi.customVendorId = 10de
# d3d9.customDeviceId = 222F
# d3d9.customVendorId = 10de
# 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.
#
# Supported values: True, False
# dxgi.nvapiHack = False
dxgi.nvapiHack = False
# Override maximum amount of device memory and shared system memory
# reported to the application. This may fix texture streaming issues
@ -311,13 +310,13 @@
# Force enable/disable floating point quirk emulation
#
#
# Force toggle anything * 0 emulation
# Tristate
# Supported values:
# - True/False
# d3d9.floatEmulation =
# d3d9.floatEmulation =
# Enable dialog box mode
@ -331,7 +330,7 @@
# d3d9.enableDialogMode = False
# Overrides the application's MSAA level on the swapchain
#
#
# Supported values: -1 (application) and 0 to 16 (user override)
# 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()

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

@ -1,36 +1,342 @@
#! /bin/sh
"${pw_yad_new}" --plug=10 --tabnum=1 --show-uri \
--text-align=center --text="PortProton v.${install_ver}
#!/usr/bin/env bash
# Author: chal55rus, Castro-Fidel (linux-gaming.ru)
########################################################################
if [ "${update_loc}" = "RUS" ]
then
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}
Программа для запуска Windows игр и приложений в GNU/Linux
https://linux-gaming.ru
https://portwine-linux.ru
Авторские права © 2022 Castro-Fidel (linux-gaming.ru)
Copyright © 2022 Castro-Fidel (PortWINE-Linux.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.
See the License for details." &
"${pw_yad_new}" --plug=10 --tabnum=2 \
--text-align=center --text="Author: Casro-Fidel
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Author: Casro-Fidel (Mikhail Tergoev)
Development assistants:
Developer assistants and testers:
Cefeiko
Dezert1r
Taz_mania
Anton_Famillianov
gavr
RidBowt
chal55rus
UserDiscord
survolog
gavr
RusNor
aldiserg
an9949an
andrey4korop
zorn
" &
Список будет дополнятся..." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License
"${pw_yad_new}" --plug=10 --tabnum=3 --text-info <<< "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
of this software and associated documentation files (the "Software"), to deal
@ -50,63 +356,237 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE." &
"${pw_yad_new}" --plug=10 --tabnum=4 \
--text-align=center \
--text="Sponsors:
Cefeiko
Dezert1r
Taz_mania
Anton_Famillianov
gavr
RidBowt
chal55rus
UserDiscord
Александр
Сергей 33(46)RUS
Aule Mahal
CyberBoar
Evgen
johny
Maksami
MRModer
Pependos
Phoenix55rus
Xpamych
Виндета(рот)
Ка6адОнНа
ХОЛО МУДРАЯ
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' The project was supported:
https://boosty.to/linux-gaming.ru:
Список будет дополнятся..." &
1 1
A B
AdamArclight666
Akai
Aleks
Alex Sh
Alexsei Cherniavskiy
Allegra_g
AlxChkln
Andrei K
Another games
Apofis Smab
Aule Mahal
Azartiny Mor
BELIJJAaL
CanBoo
Coin Hunt
Cruze
DIO
Dadenard
Dallasss
Daniil Go
Dencher12
Denis
Dezert1r
Dima Manshin
Dmitriy Tokarev
Drakorgaur
El Mago
Eliot
Ethan Winters
Evgen Buiko
EvilDevolver
GaiverX
Gekko
Geomant17
Happy Husky
Homyakin
Ivan Vlasov
LeGi0neR
Lexa XLS
Linux Vumtut
Lonely Lonely
MICROFARAT
MLogaut
Maksami Cordyceps
Maktub
Melord
Monti Roquefort
MrBatonio
Nesterik
Nikola P.
Nuclearsun
Nurik
Oleg55Rus
Optimus
Ottakvot
PLAFON
Pependos
PlagueEvgeny
Rojok56
Ruslan Vlasov
Rustam
Saireg
Seeropoonya
Soma
StGdG
Subscript
Sudo Connect
Taras Zagibalov
The End
Tykva
V1ktr
VAtiB
VUMtut
VanBugel
Vikthor Prieto
Vosarat
Windchester
Xpamych
Yurec
Yuri Emelyanov
Zillah Giovanni
Zloy Ivan
Zorit
amikha1lov
anisan_sg
apolon
benya
chal55rus
d.kostroma
dunkanMcLoud
dupster mailbox
fight fox
funti2f
fusiok
gg_harper
haravara
ivboss
ksandr4370
onix
paulscathedral
penguin4ek
sanelasan
sashman
sendependa_dio
shecspir
sship
sugoyako
tima
ua3dko
vlad petrov
wrager
xpamych
zorn
Alexander
Alexander Abdulov
Alexander Kladov
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
"${pw_yad_new}" --plug=10 --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \
The list will be updated...' &
"${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 \
--text-info <<< \
"Website: http://portwine-linux.ru
--text-info --scroll <<< \
"Website: http://linux-gaming.ru
Discord: http://discord.gg/yJSEFjF
VK: https://vk.com/portwinelinux
-------------------------------------------
Стать платным подписчиком:
boosty: https://boosty.to/portwine-linux.ru
Become a paid subscriber:
boosty: https://boosty.to/linux-gaming.ru
patreon: https://www.patreon.com/portproton
Кошельки WebMoney: WMZ-Z135951244401 WME-E325631629973
Yandex кошельк: 410012267513818
WebMoney wallets: WMZ-Z135951244401 WME-E325631629973
Yandex wallet: 410012267513818
-------------------------------------------
Задонатить на стрим:
Donat on stream:
https://www.donationalerts.com/r/portwine_linux" &
"${pw_yad_new}" --plug=10 --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--text-info <<< "Сторонние библиотеки, которые используются в PortProton
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--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-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" &
"${pw_yad_new}" --title "ABOUT US" --key=10 --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 \
--tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \
--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
# Author: Castro-Fidel (PortWINE-Linux.ru)
# Author: Castro-Fidel (linux-gaming.ru)
########################################################################
pw_ping_test () {
ping -w3 -c1 github.com &> /dev/null
@ -16,7 +16,6 @@ print_info () {
}
export -f print_info
print_var () {
for vp in $@ ; do echo "${vp}=${!vp}" ; done
}
@ -251,14 +250,14 @@ check_user_conf () {
init_wine_ver () {
if [[ -z `ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}"` ]] ; then
if [[ ! -z `echo "${PW_WINE_USE}" | grep "PROTON_STEAM"` ]] ; then
export PW_WINE_USE=PROTON_STEAM
if [[ ! -z `echo "${PW_WINE_USE}" | grep "PROTON_LG"` ]] ; then
export PW_WINE_USE=PROTON_LG
else
export PW_WINE_USE=PROTON_GE
fi
fi
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]]
then export PW_WINE_USE="${PW_PROTON_STEAM_VER}"
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_LG$"` ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]]
then export PW_WINE_USE="${PW_PROTON_GE_VER}"
fi
@ -307,8 +306,8 @@ init_wine_ver () {
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
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_GE_VER}/lib64/wine/${copy_proton_dll}" "${WINEDIR}/lib64/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_LG_VER}/lib64/wine/${copy_proton_dll}" "${WINEDIR}/lib64/wine/"
fi
done
@ -326,6 +325,14 @@ init_wine_ver () {
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is broken symlink. Repair... OK."
fi
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
return 0
}
@ -334,6 +341,8 @@ pw_init_runtime () {
if [[ -n "$(grep "ROSA Fresh" "/etc/os-release")" ]] ; then
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
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"
else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin"
fi
if [ "${PW_USE_GSTREAMER}" = 1 ] ; 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"
@ -369,16 +379,16 @@ pw_init_runtime () {
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--unshare-home \
--home="${PW_SANDBOX_HOME_PATH}" \
--no-gc-legacy-runtimes \
--no-gc-runtimes \
--gc-legacy-runtimes \
--copy-runtime \
--remove-game-overlay \
${PW_ADD_TO_ARGS_IN_RUNTIME} --"
else
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--share-home \
--no-gc-legacy-runtimes \
--no-gc-runtimes \
--gc-legacy-runtimes \
--copy-runtime \
--remove-game-overlay \
${PW_ADD_TO_ARGS_IN_RUNTIME} --"
@ -471,7 +481,12 @@ regdlloverrides () {
esac
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
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
}
@ -589,8 +604,8 @@ pw_check_and_download_wine () {
if [[ "${PW_WINE_USE}" == "GET-OTHER-WINE" ]] ; then
gui_proton_downloader
fi
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]]
then export PW_WINE_USE="${PW_PROTON_STEAM_VER}"
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_LG$"` ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]]
then export PW_WINE_USE="${PW_PROTON_GE_VER}"
fi
@ -646,6 +661,7 @@ pw_init_db () {
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
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
. "${PORTWINE_DB_FILE}"
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}'`
@ -668,8 +684,10 @@ pw_init_db () {
--title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \
--field="DB FILE: :CB" "${ADD_CB_DBFILE}"`
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
PORTWINE_DB_FILE="${PW_FIND_DB_FILE}"
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
fi
IFS="$orig_IFS"
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
zenity --title="Changelog" --text-info --width=1200 --height=550 \
--filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}"
fi
[ "$?" == 0 ] && /usr/bin/env bash -c ${pw_full_command_line[*]} &
fi
[ "$?" == 0 ] && echo "Restarting PP after update..." && /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
else

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Author: PortWINE-Linux.ru
# Author: linux-gaming.ru
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc}
@ -34,7 +34,7 @@ then
export inst_succ="Установка завершена успешно!"
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_upd4="Перейти на сайт"
export port_upd5="Напомнить позже"
@ -103,7 +103,7 @@ then
export PW_DX12_DISABLE_INFO='Принудительное отключение DirectX 12'
export PW_USE_WINE_DXGI_INFO='Принудительное использование встроенной библиотеки DXGI (в редких случаях решает проблемы с запуском игр под DX12)'
export PW_MANGOHUD_USER_CONF_INFO='Принудительное использование системных настроек MANGOHUD (GOverlay и т.п.)'
export PW_USE_D3D_EXTRAS='Включить принудительное использование сторонних библиотек DirectX'
export PW_USE_D3D_EXTRAS_INFO='Включить принудительное использование сторонних библиотек DirectX'
export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)'
export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе'
export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD'
@ -163,7 +163,7 @@ then
export inst_succ="The installation was successful."
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_upd4="Go to the website"
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 WINEDLLOVERRIDES="blabla=n,b"
##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_USE_DXR10=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 WINEDLLOVERRIDES="blabla=n,b"
##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_DXR_ON=1
##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_COMMENT_DB="Control (DX11)"
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###########################
##export PW_COMMENT_DB="blablabla"
##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_MANGOHUD=1
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###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP

View File

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

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # 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_WINE_USE=PROTON_STEAM_6.3-7
export PW_WINE_USE=PROTON_LG_6.3-7
export PW_VULKAN_USE=1
##export PW_USE_DXR10=1
##export PW_DLSS_ON=1

View File

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

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # 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_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_USE_DXR10=1
##export PW_DLSS_ON=1

View File

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

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # 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_WINE_USE=PROTON_STEAM
export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=1
##export PW_DXR_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"
export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time"
export WINEDLLOVERRIDES="mscoree,mshtml="
# 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 LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options
export PW_WINE_USE=WINE_LOL_GE_7.0-4
export PW_VULKAN_USE=1
export PW_MUST_HAVE_DLL=""
export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS"
@ -42,7 +42,7 @@ check_download_wine_ver_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!" \
# --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="$!"
# process=LeagueClientUx.exe
# while [[ -z `pidof ${process}` ]] ; do
@ -67,12 +67,13 @@ check_download_wine_ver_for_lol
# }
add_in_start_portwine () {
if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ] ; then
pw_stop_progress_bar
zenity --question --title="Fix for LoL anti-cheat" \
--text='Root rights are required to execute the command: \n"sysctl -w abi.vsyscall32=0"' --no-wrap
[ "$?" = 1 ] && exit 0
pkexec /usr/bin/env bash -c 'sysctl -w abi.vsyscall32=0'
fi
echo ""
# if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ] ; then
# pw_stop_progress_bar
# zenity --question --title="Fix for LoL anti-cheat" \
# --text='Root rights are required to execute the command: \n"sysctl -w abi.vsyscall32=0"' --no-wrap
# [ "$?" = 1 ] && exit 0
# pkexec /usr/bin/env bash -c 'sysctl -w abi.vsyscall32=0'
# fi
# check_port_for_lol &
}

View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
#Author: dez
#MWO Portal.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL=""
export WINEDLLOVERRIDES=""
export LAUNCH_PARAMETERS="-noprompt -anygpu"
export PW_WINE_USE="PROTON_GE"
export PW_VULKAN_USE="1"
export PW_USE_DXR10="0"
##export PW_DLSS_ON=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="0"
export PW_VIRTUAL_DESKTOP="0"
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT="1"
export PW_VKBASALT_EFFECTS="FakeHDR:cas"
export PW_VKBASALT_FFX_CAS="0.75"
export PW_NO_FSYNC="0"
export PW_NO_ESYNC="1"
export PW_USE_GSTREAMER="1"
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # 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 PW_WINE_ALLOW_XIM="0"
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE="1"
export PW_USE_TERMINAL="0"
export PW_GUI_DISABLED_CS="0"
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }
export PW_PREFIX_NAME="DOTNET"
export PW_MANGOHUD="1"
export PW_MANGOHUD_USER_CONF="1"
export PW_USE_DXR11="0"
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_GAMEMODE="1"
export PW_DX12_DISABLE="0"
export PW_PRIME_RENDER_OFFLOAD="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_USE_AMDVLK_DRIVER="0"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"

View File

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

View File

@ -3,76 +3,24 @@
#Origin.exe
#Rating=?
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##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_DLL_INSTALL="vcrun2012 vcrun2019" # Install DDL in port prefix (used winetricks)
export PW_VULKAN_USE=1 # dxvk, vkd3d or 0 for OpenGL
##export PW_DXVK_VER=1.8.1
##export PW_VKD3D_VER=2.2
##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
#}
###WINE_KRON4EK###
export PW_WINE_USE="WINE-7.13-STAGING-AMD64"
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
#Author: PortWINE-Linux.ru
#Author: linux-gaming.ru
#Sirus Launcher.exe
#Rating=4
#####################examples###########################

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # 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_WINE_USE=PROTON_STEAM_6.3-7
export PW_WINE_USE=PROTON_LG_6.3-7
export PW_VULKAN_USE=1
##export PW_USE_DXR10=1
##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#Author: PortWINE-Linux.ru
#Author: linux-gaming.ru
#Rating=5
#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 WINEDLLOVERRIDES="blabla=n,b"
##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_USE_DXR10=1
##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 WINEDLLOVERRIDES="blabla=n,b"
##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_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN

View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
#Author: spider
#WolfNewOrder_x64.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL=""
export WINEDLLOVERRIDES=""
export LAUNCH_PARAMETERS=""
export PW_WINE_USE="PROTON_GE"
export PW_VULKAN_USE="1"
export PW_USE_DXR10="0"
##export PW_DLSS_ON=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="0"
export PW_VIRTUAL_DESKTOP="0"
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT="0"
export PW_VKBASALT_EFFECTS="Curves:SMAA:cas"
export PW_VKBASALT_FFX_CAS="0.75"
export PW_NO_FSYNC="0"
export PW_NO_ESYNC="1"
export PW_USE_GSTREAMER="1"
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # 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 PW_WINE_ALLOW_XIM="0"
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE="1"
export PW_USE_TERMINAL="0"
export PW_GUI_DISABLED_CS="0"
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }
export PW_PREFIX_NAME="DEFAULT"
export PW_MANGOHUD="1"
export PW_MANGOHUD_USER_CONF="0"
export PW_USE_DXR11="0"
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_GAMEMODE="1"
export PW_DX12_DISABLE="0"
export PW_PRIME_RENDER_OFFLOAD="0"
export PW_USE_D3D_EXTRAS="0"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_USE_AMDVLK_DRIVER="0"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#Author: PortWINE-Linux.ru
#Author: linux-gaming.ru
#name_exe_file.exe
#Rating=1-5
#####################examples###########################
@ -10,7 +10,7 @@
##export WINEDLLOVERRIDES="blabla=n,b"
##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_USE_DXR10=1
##export PW_DLSS_ON=1

View File

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

View File

@ -8,7 +8,7 @@
##export PW_DLL_INSTALL="vcrun2017" # 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_WINE_USE=PROTON_STEAM
export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=dxvk
export PW_DXR_ON=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 WINEDLLOVERRIDES="blabla=n,b"
##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_DXR_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 WINEDLLOVERRIDES="blabla=n,b"
##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_DXR_ON=0
##export PW_DLSS_ON=1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#Author: PortWINE-Linux.ru
#Author: linux-gaming.ru
#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_VULKAN_USE=0 #dxvk or vkd3d
export PW_MANGOHUD=0
#export PW_WINE_USE=PROTON_STEAM
#export PW_WINE_USE=PROTON_LG
#export WINEDLLOVERRIDES="blabla=n,b"
#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.
@ -28,6 +28,6 @@ export PW_WINEDBG_DISABLE=1
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 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 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 LAUNCH_PARAMETERS="-no-cef-sandbox"
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_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_WINDOWS_VER=10 # Set windows version 10, 7 or XP
#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
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
if [[ "${PW_VULKAN_USE}" == "0" || "${PW_VULKAN_USE}" == "3" ]] ; then
export LAUNCH_PARAMETERS="--disable-gpu"
fi
}

View File

@ -1,41 +1,13 @@
#!/usr/bin/env bash
#Author: user
#wot_encore_install_ru.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=dxvk
export PW_USE_TERMINAL=1
export PW_PREFIX_NAME="DOTNET"
export PW_DLL_INSTALL="dotnet40 vcrun2017 mfc42 vb6run physx"
export PW_COMMENT_DB="World Of Tanks EnCore Installer"
export PW_USE_D3D_EXTRAS=0
## export DXVK_HUD=fps,devinfo
## export PW_MANGOHUD=1
#####################examples###########################
PW_INSTALL_DOTNET40 () {
export DN=dotNetFx40_Full_x86_x64.exe
export mscor=mscorsvw.exe
export KILL_MSCOR=0
export DN_INST_SUCC=0
while [ ! -z "`ps -ax | grep PortProton | grep -m1 'start.sh' | awk '{print $1}'`" ] ; do
echo "PID parrent start.sh was found"
sleep 5
while [ ! -z `pidof -s $DN` ] ; do
echo "$DN is runing.. Wait..."
sleep 5
export DN_INST_SUCC=1
done
while [ ! -z `pgrep "${mscor}" | head -n 1` ] && [ -z `pidof -s $DN` ] ; do
echo "$mscor was found. Kill it..."
kill -n 9 `pgrep "${mscor}" | head -n 1`
sleep 1
export KILL_MSCOR=1
done
if [ "$KILL_MSCOR" != 0 ] && [ "$DN_INST_SUCC" != 0 ] && [ -z `pidof -s $DN` ] && [ -z `pgrep "${mscor}" | head -n 1` ]; then
echo "All $mscor killed"
break
fi
done
}
PW_INSTALL_DOTNET40 &
#Author: user
#wot_encore_install_ru.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=dxvk
export PW_USE_TERMINAL=1
export PW_PREFIX_NAME="DOTNET"
export PW_DLL_INSTALL="dotnet40 vcrun2017 mfc42 vb6run physx"
export PW_COMMENT_DB="World Of Tanks EnCore Installer"
export PW_USE_D3D_EXTRAS=0
## export DXVK_HUD=fps,devinfo
## export PW_MANGOHUD=1

View File

@ -1,12 +1,12 @@
#!/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
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe"
start_portwine
if try_download "dist.blizzard.com/downloads/bna-installers/322d5bb9ae0318de3d4cde7641c96425/retail.1/Battle.net-Setup-${BN_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
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_run "${PW_AUTOINSTALL_EXE}"
portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"`

View File

@ -1,5 +1,5 @@
#!/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_AUTOINSTALL_EXE="${PW_USER_TEMP}/`echo ${PW_URL_CEMU} | awk -F/ '{print $5}'`"

View File

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

View File

@ -1,5 +1,5 @@
#!/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 () {
if [ "$PW_USE_RUNTIME" != 1 ]

View File

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

View File

@ -1,12 +1,12 @@
#!/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_AUTOINSTALL_EXE="${PW_USER_TEMP}/live.na.exe"
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live"
export PW_MUST_HAVE_DLL=""
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 PW_USE_D3D_EXTRAS=1

View File

@ -1,13 +1,13 @@
#!/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"
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
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}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe"
pw_stop_progress_bar

View File

@ -1,5 +1,5 @@
#!/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 PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"

View File

@ -1,5 +1,5 @@
#!/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 PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"

View File

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

View File

@ -4,7 +4,7 @@
export PW_PREFIX_NAME="DOTNET"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/wos_client.exe"
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_DLL_INSTALL="faudio dotnet48 dotnet20sp2"
export PW_DLL_INSTALL="faudio dotnet48"
export PW_VULKAN_USE=1
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then

View File

@ -1,5 +1,5 @@
#!/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
########################################################################
echo '
@ -17,18 +17,17 @@ if [[ $(id -u) = 0 ]] ; then
fi
if [[ "${s_install}" != "1" && ! -x "`which "zenity" 2>/dev/null`" ]] ; then
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
. "$(dirname $(readlink -f "$0"))/functions_helper"
start_portwine () {
pw_update_pfx_cover_gui
export WINEPREFIX="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"
create_new_dir "${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"
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"
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" \
@ -71,9 +70,11 @@ start_portwine () {
if [[ ! -z "${PW_LOG}" && "${PW_LOG}" != 0 ]] ; then
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 WINE_MONO_TRACE="E:System.NotImplementedException"
export VK_LOADER_DEBUG="warn"
export VKBASALT_LOG_LEVEL="warn"
else
export WINEDEBUG="-all"
export DXVK_LOG_LEVEL="none"
@ -114,10 +115,23 @@ start_portwine () {
export RADV_DEBUG="llvm"
var_vkd3d_config_update single_queue
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
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_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"
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/"
@ -127,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/lib64/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvml.dll"
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
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
if [[ ! -z "${PW_WINEDBG_DISABLE}" && "${PW_WINEDBG_DISABLE}" != 0 ]] ; then
var_winedlloverride_update "winedbg.exe="
fi
if [[ ! -z "${PW_HIDE_NVIDIA_GPU}" && "${PW_HIDE_NVIDIA_GPU}" != 0 ]] ; then
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
if [[ ! -z "${PW_PRIME_RENDER_OFFLOAD}" && "${PW_PRIME_RENDER_OFFLOAD}" != 0 ]] ; then
export __NV_PRIME_RENDER_OFFLOAD=1
@ -195,7 +219,6 @@ start_portwine () {
export __GL_SYNC_TO_VBLANK=1 ;;
esac
create_new_dir "${PORT_WINE_TMP_PATH}"/gl_shader_cache
export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf"
export int_xneur=0
if [[ ! -z "`pgrep xneur`" ]]; then
killall xneur
@ -242,8 +265,23 @@ 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
}
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
print_info "Download and install DOTNET..."
if try_download "${DOTPFX_URL}" "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" ; then
unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/"
try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz"
else
try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz"
zenity_error_download && exit 1
fi
fi
if [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" || ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/windows || ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices" || \
pw_update_pfx_cover_gui
if [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" || ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/windows || \
! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/userdef.reg || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/system.reg || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/user.reg ]]
then
pw_clear_pfx
@ -252,13 +290,11 @@ start_portwine () {
cp -frL "${PW_PLUGINS_PATH}/default_pfx/"* "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"
fi
${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -u &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
# ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINESERVER}" -w &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
elif [[ -z "`cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" | grep ${PW_WINE_USE}`" ]] ; then
elif [[ -z "`cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" | grep ${PW_WINE_USE}`" || ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices" ]] ; then
check_dirs_and_files_in_pfx
${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
# ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINESERVER}" -w &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
fi
@ -274,8 +310,8 @@ 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"
fi
#enabled BattleEye_Runtime and EasyAntiCheat_Runtime
export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/BattlEye_Runtime"
export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/EasyAntiCheat_Runtime"
export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/BattlEye_Runtime"
export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/EasyAntiCheat_Runtime"
var_winedlloverride_update "beclient,beclient_x64=b,n"
#try link d3d extras libs
for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \
@ -308,26 +344,27 @@ start_portwine () {
# 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 "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
echo "Use OpenGL"
export GL_YIELD="NOTHING"
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="
elif [[ "${PW_VULKAN_USE}" == "3" ]] ; then
echo "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
@ -335,7 +372,7 @@ start_portwine () {
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}/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
FIND_D3D_MODULE=`dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null`
if [[ ! -z "$FIND_D3D_MODULE" ]] ; then
@ -361,36 +398,30 @@ start_portwine () {
export WINE_FULLSCREEN_FSR=0
else
echo "Use VKD3D-PROTON and DXVK (DX 9-12 to vulkan)"
if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" ]] && [[ "${PW_USE_AMDVLK_DRIVER}" != 0 ]] ; then
export AMD_VULKAN_ICD=AMDVLK
unset DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1
print_info "Try to use AMDVLK driver (only with MESA)"
else
export AMD_VULKAN_ICD=RADV
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
print_info "Try to use RADV driver (only with MESA)"
# if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" ]] && [[ "${PW_USE_AMDVLK_DRIVER}" != 0 ]] ; then
# export AMD_VULKAN_ICD=AMDVLK
# unset DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1
# print_info "Try to use AMDVLK driver (only with MESA)"
# else
# export AMD_VULKAN_ICD=RADV
# export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
# 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
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..."
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}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_dxvk_dll}.dll"
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
done
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}/lib64/vkd3d/libvkd3d-shader-1.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/libvkd3d-shader-1.dll"
@ -399,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"
done
fi
if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]]
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"
@ -425,7 +457,7 @@ start_portwine () {
export DXVK_STATE_CACHE=1
create_new_dir "${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
export __GL_SHADER_DISK_CACHE=0
export DXVK_STATE_CACHE=0
@ -435,9 +467,8 @@ start_portwine () {
if [[ "${PW_WINE_FULLSCREEN_FSR}" == 1 ]] || [[ "${WINE_FULLSCREEN_FSR}" == 1 ]] ; then
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_FAKE_CURRENT_RES=1920x1080
else
export WINE_FULLSCREEN_FSR=0
unset WINE_FULLSCREEN_FAKE_CURRENT_RES WINE_FULLSCREEN_FSR_STRENGTH WINE_FULLSCREEN_INTEGER_SCALING
@ -505,15 +536,20 @@ start_portwine () {
echo "Disable EAC"
[[ -z "${LAUNCH_PARAMETERS}" ]] && export LAUNCH_PARAMETERS+="-eac-nop-loaded "
fi
sleep 1
pw_stop_progress_bar &&
pw_tray_icon &&
if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then
pw_start_progress_bar_cover "${PW_GUI_ICON_PATH}/covers/pw_loading_cover.gif"
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
}
pw_run () {
unset GDK_BACKEND
if [[ ! -z "$portwine_exe" ]] ; then
cd "${PATH_TO_GAME}"
else
@ -589,35 +625,8 @@ if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then
fi
create_new_dir "${PORT_WINE_PATH}/data/prefixes"
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}"
if [[ -d "${PORT_WINE_PATH}/data/pfx" ]] ; then
mv -f "${PORT_WINE_PATH}/data/pfx" "${PORT_WINE_PATH}/data/prefixes/DEFAULT"
orig_IFS="$IFS"
IFS=$'\n'
for change_path in `grep -il "/data/pfx/" "${HOME}/.local/share/applications"/*.desktop` ; do
sed -i 's%/data/pfx/%/data/prefixes/DEFAULT/%g' "${change_path}"
done
for change_path in `grep -il "/data/pfx/" "${PORT_WINE_PATH}"/*.desktop` ; do
sed -i 's%/data/pfx/%/data/prefixes/DEFAULT/%g' "${change_path}"
done
IFS="$orig_IFS"
rm -f "${PORT_WINE_PATH}/drive_c"
fi
if [[ -d "${PORT_WINE_PATH}/data/pfx_dotnet" ]] ; then
mv -f "${PORT_WINE_PATH}/data/pfx_dotnet" "${PORT_WINE_PATH}/data/prefixes/DOTNET"
orig_IFS="$IFS"
IFS=$'\n'
for change_path in `grep -il "/data/pfx_dotnet/" "${HOME}/.local/share/applications"/*.desktop` ; do
sed -i 's%/data/pfx_dotnet/%/data/prefixes/DOTNET/%g' "${change_path}"
done
for change_path in `grep -il "/data/pfx_dotnet/" "${PORT_WINE_PATH}"/*.desktop` ; do
sed -i 's%/data/pfx_dotnet/%/data/prefixes/DOTNET/%g' "${change_path}"
done
IFS="$orig_IFS"
fi
create_new_dir "${PORT_WINE_PATH}/data/prefixes/DOTNET"
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}"
orig_IFS="$IFS"
IFS=$'\n'
@ -645,7 +654,7 @@ fi
. "${PORT_SCRIPTS_PATH}"/lang
. "${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}"
try_remove_dir "${PW_WINELIB}/var"
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
@ -657,12 +666,16 @@ fi
export WINETRICKS_DOWNLOADER="curl"
export USER_CONF="${PORT_WINE_PATH}/data/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
. "${USER_CONF}"
pw_port_update
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_init_db
. "${USER_CONF}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Author: PortWINE-Linux.ru
# Author: linux-gaming.ru
. "$(dirname $(readlink -f "$0"))/runlib"
name_desktop="PortProton"
@ -54,6 +54,7 @@ if [ "${PW_SILENT_INSTALL}" = "1" ] ; then
fi
fi
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" $@ &
exit 0
else
@ -61,6 +62,6 @@ if [ "${PW_SILENT_INSTALL}" = "1" ] ; then
fi
else
`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
unset INSTALLING_PORT

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Author: PortWINE-Linux.ru
# Author: linux-gaming.ru
export NO_AT_BRIDGE=1
export pw_full_command_line=("$0" $*)
if [ -f "$1" ]; then
@ -138,7 +138,7 @@ portwine_start_debug () {
"${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log"
echo "----------------------------------------------" >> "${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
if [ $? -eq 0 ]; then
echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log"
@ -355,6 +355,14 @@ pw_winetricks () {
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 () {
cd "$HOME"
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_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_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_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
echo "Restarting PP after update ppdb file..."
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
@ -449,7 +458,7 @@ done
IFS=$IFS_OLD
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
for DAIG in ${PW_ALL_DIST}
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' ;;
*) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;;
esac
if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$") ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_LG$") ]] ; then
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
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
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"
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
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
else
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
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_LG$") ]] ; then
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
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
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"
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
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
unset PW_GUI_DISABLED_CS
@ -545,6 +554,7 @@ else
gui_clear_pfx () {
if gui_question "${port_clear_pfx}" ; then
pw_clear_pfx
echo "Restarting PP after clearing prefix..."
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
@ -565,6 +575,7 @@ else
gui_pw_update () {
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[*]} &
exit 0
}
@ -588,6 +599,7 @@ else
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
unpack_tar_gz "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/"
echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
echo "Restarting PP after backup..."
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
}
@ -600,6 +612,7 @@ else
--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_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"' &
"${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 ;;
pw_create_prefix_backup) pw_create_prefix_backup ;;
gui_credits) gui_credits ;;
pw_start_cont_xterm) pw_start_cont_xterm ;;
PW_*) pw_autoinstall_from_db ;;
esac

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (PortWINE-Linux.ru)
#SCRIPTS_NEXT_VERSION=2118
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2132
########################################################################
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
@ -12,47 +12,51 @@ export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,
export PW_RT_MOUNT_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
export PW_NO_ESYNC=1
export PW_USE_GAMEMODE=1
export PW_FORCE_USE_VSYNC=2
export PW_LOG=0
export PW_NO_ESYNC="1"
export PW_USE_GAMEMODE="1"
export PW_FORCE_USE_VSYNC="2"
export PW_LOG="0"
export PW_TERM=""
export PW_USE_TERMINAL=0
export PW_WINEDBG_DISABLE=1
export PW_USE_TERMINAL="0"
export PW_WINEDBG_DISABLE="1"
export PW_WINDOWS_VER="10"
export WINEARCH="win64"
export PW_LIBS_VER="_v31"
export PORTWINE_URL="https://portwine-linux.ru/"
export PW_LIBS_VER="_v32"
export LG_SITE_URL="https://linux-gaming.ru/"
export GDK_BACKEND="x11"
export PW_USE_GSTREAMER=1
export PW_USE_D3D_EXTRAS=1
export PW_USE_GSTREAMER="1"
export PW_USE_D3D_EXTRAS="1"
export PW_PREFIX_NAME="DEFAULT"
export WINE_WIN_START="start.exe /i /unix"
export PW_USE_SHADER_CACHE=1
export STAGING_SHARED_MEMORY=1
export PW_FORCE_LARGE_ADDRESS_AWARE=1
export PW_USE_SHADER_CACHE="1"
export STAGING_SHARED_MEMORY="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
###DEFAULT_WINE###
export PW_WINE_USE=PROTON_GE
export PW_PLUGINS_VER="_v5"
###WINE_PROTON_STEAM###
export PW_STEAM_VER="7.0-3"
export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}"
export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v7"
export PW_FAKE_DLSS_VER="2.1-3001-0-7-5-1662667880"
###WINE_PROTON_LG###
export PW_LG_VER="7-29"
export PW_PROTON_LG_VER="PROTON_LG_${PW_LG_VER}"
###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_WINE_FULLSCREEN_FSR=0
###WINE_PROTON_PW_FOR_GALLIUM_NINE###
export PW_PW_VER="7.5"
export PW_PROTON_PW_VER="PROTON_PW_${PW_PW_VER}"
export PW_WINE_FULLSCREEN_FSR="0"
###PREFIX_VERSION###
export DOTPFX_VER="48v1"
export DEFPFX_VER="v1"
#################################################################
export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf"
#################################################################
pw_install_dll_in_prefix ()
{
case $PW_PREFIX_NAME in
DEFAULT) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019" ;;
DOTNET) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019 faudio dotnet48 dotnet20sp2" ;;
DOTNET) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019 faudio dotnet48" ;;
*) export PW_MUST_HAVE_DLL="" ;;
esac
}
########################################################################
add_in_start_portwine ()
{
echo " "

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
# Author: Castro-Fidel (linux-gaming.ru)
########################################################################
zenity_info () {
echo "INFO: $@"
@ -143,6 +143,7 @@ pw_tray_icon () {
${loc_tray_tascmng}!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/port_winefile.png"|| \
${loc_tray_cangelog}!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"|| \
${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"||" &
return 0
}
@ -217,6 +218,7 @@ pw_gui_for_edit_db () {
if [ "${FPS_LIMIT}" != 0 ] ; then
export MANGOHUD_CONFIG=${MANGOHUD_CONFIG},fps_limit=${FPS_LIMIT}
export PW_MANGOHUD=1
fi
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
@ -237,7 +239,18 @@ gui_proton_downloader () {
sed -i '/github-action/d' "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
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))
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
if [[ ! -z "${PROTON_PW_GIT}" ]] ; then
@ -256,6 +269,7 @@ gui_proton_downloader () {
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_pw_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
done
#Installed wine
ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed '/^$/d' > ${PORT_WINE_TMP_PATH}/tmp_installed_wine
@ -264,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_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 \
--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"` &
`"${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"` &
`"${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="" \
--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="$?"
if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
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"`"
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"`"
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"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set" | awk '{print $1}'` ] ; then
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
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_wine_kron4ek_git"
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
if [ ! -z `echo ${GIVE_WINE_URL} | grep "$VERSION_WINE_GIT"` ] ; then
for GIVE_WINE_URL in ${PROTON_GE_GIT[@]} ${PROTON_PW_GIT[@]} ${WINE_KRON4EK[@]}; do
if [ ! -z `echo ${GIVE_WINE_URL} | grep -i "$VERSION_WINE_GIT"` ] ; then
export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}"
fi
done
@ -400,6 +419,7 @@ gui_vkBasalt () {
portwine_create_shortcut () {
pw_create_gui_png
name_desktop="${PORTPROTON_NAME}"
try_remove_file "${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"
if [ -z "${PW_CHECK_AUTOINSTAL}" ]

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