Compare commits

...

36 Commits

Author SHA1 Message Date
f869816cb4 ###Scripts version 2011### 2021-09-11 14:39:33 +03:00
03deeaa361 ###Scripts version 2010### 2021-09-05 22:00:33 +02:00
7eec1f9086 ###Scripts version 2009### 2021-09-05 14:47:21 +02:00
cb7ad7ec30 ###Scripts version 2008### 2021-09-04 12:49:27 +02:00
718af5eb05 ###Scripts version 2007### 2021-09-04 12:31:09 +02:00
e291a2e90d ###Scripts version 2006### 2021-09-03 18:17:42 +02:00
ea518e5f21 ###Scripts version 2005### 2021-09-01 13:11:49 +02:00
06e3953b19 ###Scripts version 2004-2### 2021-08-28 00:12:54 +03:00
5032d95a77 ###Scripts version 2004### 2021-08-28 00:11:48 +03:00
9bcb235657 ###Scripts version 2003### 2021-08-26 11:45:10 +03:00
73d12c0f39 ###Scripts version 2002-2### 2021-08-25 23:50:07 +03:00
8700a2c88d ###Scripts version 2002### 2021-08-25 23:47:59 +03:00
7415dcbc01 ###Scripts version 2001### 2021-08-25 23:33:45 +03:00
00c9d5d926 ###Scripts version 2000### 2021-08-25 11:12:22 +03:00
4e59d4b2f4 ###Scripts version 1123-2### 2021-07-31 11:54:36 +03:00
580c5d901a ###Scripts version 1123### 2021-07-31 11:54:00 +03:00
0bf4fe7816 ###Scripts version 1122### 2021-07-23 19:26:31 +03:00
9f0ad22d37 ###Scripts version 1121### 2021-07-22 17:20:40 +03:00
3e40e1bff5 ###Scripts version 1120### 2021-07-21 20:54:19 +03:00
088cdecda3 ###Scripts version 1119### 2021-07-16 20:31:05 +03:00
d88bf7fb38 ###Scripts version 1118### 2021-07-13 21:03:33 +03:00
9933accd7f ###Scripts version 1117### 2021-07-12 21:14:06 +03:00
0282a77a3c ###Scripts version 1116_3### 2021-07-12 20:37:27 +03:00
5bd52d7a36 ###Scripts version 1116_2### 2021-07-12 20:32:22 +03:00
59826da654 ###Scripts version 1116### 2021-07-12 20:19:54 +03:00
603d0d8821 ###Scripts version 1115### 2021-07-12 20:08:21 +03:00
f4d3684556 ###Scripts version 1114 and 1115### 2021-07-12 20:06:00 +03:00
0391f33674 ###Scripts version 1114### 2021-07-12 19:38:55 +03:00
df9128143c ###Scripts version 1113###
2
2021-07-09 12:33:43 +03:00
83a18e538a ###Scripts version 1113### 2021-07-06 12:42:49 +03:00
ebbdaed92d ###Scripts version 1110### 2021-06-26 19:32:54 +03:00
d32f5b1cc5 ###Scripts version 1109### 2021-06-25 19:59:35 +03:00
78552187f0 ###Scripts version 1107### 2021-06-20 21:02:53 +03:00
62651c1d93 ###Scripts version 1105### 2021-06-16 17:58:02 +03:00
295d028ba7 ###Scripts version 1104### 2021-06-14 22:22:00 +03:00
1c9f91675f ###Scripts version 1101### 2021-06-09 14:44:12 +03:00
106 changed files with 2554 additions and 24627 deletions

View File

@ -1,221 +0,0 @@
Copyright (c) 2018-2020, Valve Corporation
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Browse the source code for more information
https://github.com/ValveSoftware/Proton
---- ---- ---- ----
This software contains a modified version of Wine licensed under the LGPL 2.1. Wine is
Copyright (c) 1993-2020 the Wine project authors
Visit Wine at
https://winehq.org
View our modifications at
https://github.com/ValveSoftware/wine
---- ---- ---- ----
This software contains a modified version of DXVK licensed under the zlib/libpng license. DXVK is
Copyright (c) 2017-2020 Philip Rebohle
Copyright (c) 2019-2020 Joshua Ashton
Visit DXVK at
https://github.com/doitsujin/dxvk
View our modifications at
https://github.com/ValveSoftware/dxvk
---- ---- ---- ----
This software contains FAudio licensed under the zlib license. FAudio is
Copyright (c) 2011-2020 Ethan Lee, Luigi Auriemma, and the MonoGame Team
Visit FAudio at
https://github.com/FNA-XNA/FAudio
---- ---- ---- ----
This software contains some Liberation Fonts licensed under the SIL Open Font License, available at LICENSE.OFL. These fonts are
Copyright (c) 2010 Google Corporation
Copyright (c) 2012 Red Hat, Inc.
Visit Liberation Fonts at
https://github.com/liberationfonts/liberation-fonts
---- ---- ---- ----
This software contains Source Han Sans licensed under the SIL Open Font License, available at LICENSE.OFL. This font is
Copyright 2014-2019 Adobe (http://www.adobe.com/)
Visit Source Han Sans at
https://github.com/adobe-fonts/source-han-sans
---- ---- ---- ----
This software contains wine-mono, parts of which are included under a variety of licenses.
Parts of Mono (mono/) are variously licensed under the GPL, LGPL, and MIT X11 licenses. All parts are available as LGPL or MIT X11 except for the following:
* The ICSharpCode.SharpZipLib library is available as GPL with an exception (see mono/mcs/class/ICSharpCode.SharpZipLib/README).
* mcs/jay is BSD-licensed.
The Visual Basic class libraries (mono-basic/) are MIT X11. The compiler is LGPL v2.
FNA is a mix of MSPL and MIT. It has the following library dependencies:
* FAudio, MojoShader, Theorafile, SDL2, SDL_image_compact, and SDL2-CS are zlib-licensed. SDL2-CS is built into FNA.dll.
* FNA.NetStub is MSPL.
The winforms and wpf libraries are MIT.
wine-mono itself is included under the MIT license. wine-mono is
Copyright (c) 2012 Vincent Povirk for CodeWeavers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
Visit wine-mono at
https://github.com/madewokherd/wine-mono
View wine-mono's complete license at
https://github.com/madewokherd/wine-mono/blob/master/COPYING
---- ---- ---- ----
This software contains wine-gecko, parts of which are included under a variety of licenses.
wine-gecko itself is included under the Mozilla Public License 2.0.
wine-gecko is available in Source Code form at
https://sourceforge.net/p/wine/wine-gecko
---- ---- ---- ----
This software contains a modified version of Vkd3d licensed under the LGPL 2.1. Vkd3d is
Copyright 2016-2019 the Vkd3d project authors
Visit Vkd3d at
https://source.winehq.org/git/vkd3d.git
View our modifications at
https://github.com/ValveSoftware/vkd3d
---- ---- ---- ----
Parts of this software are based on the OpenVR SDK, which is
Copyright (c) 2015, Valve Corporation
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Visit OpenVR at
https://github.com/ValveSoftware/openvr
---- ---- ---- ----
Parts of this software are based on the AMD AGS library, which is
Copyright (c) 2017 Advanced Micro Devices, Inc. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.

View File

@ -1,30 +1,202 @@
История изменений и дальнейшие планы:
-----------------------------------------
В планах:
* создать ветку beta на github и сделать выбор версии внутри порта
* перенести reset в GUI PortProton
* добавить фикс установки dotnet
* добавить кнопку очистки префикса в PortProton
* проверка версий и обновления скриптов из https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.zip
* EDIT DB открывается не у всех
* пересоздать удаление PortProton (чистка ярлыков в меню с помощью grep "путь до порта")
* проверить windows steam и под PortProton работают только с Proton GE
* создать defaut префикс и сделать авто симлинки в другие префиксы (games, programm files, users)
* иконка в трей для PortProton
* добавить контроль за окнами для правильного отключения прогресс бара
* добавлено отображение скорости интернета и примерный остаток времени при скачивании библиотек libs, gecko, mono
* зарабатывать на жизнь развитием проекта с помощью вашей подписки на https://boosty.to/portwine-linux.ru
* добавить проверку количества db файлов на один exe
* перенести скрипты установки порта на github
* добавить комментарии описывающие функционал скриптов и db файлов
* заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru
-----------------------------------------
###Scripts version 1097###
* HOTFIX - исправлена ошибка в скрипте при монтировании
###Scripts version 2011###
* в GUI AUTOINSTALL добавлены лаунчеры GAMEFORGE (TEST), ANKAMA и GLYPH - Спасибо chal55rus (Sergey P.)!
* удален скрипт autoinstall и создан каталог pw_autoinstall (для удобного добавления новых автоустановщиков)
* в AUTOINSTALL обновлена версия скачиваемого GOG
* в GUI редактора db файлов добавлена кнопка "OPEN DB FILE" для внесение изменений в текстовом редакторе
* в функцию pw_other_fixes добавлен поиск и выключение автозапуска PunkBuster в реестре префикса
###Scripts version 1096###
* HOTFIX - определение переменной PW_RUNTIME возвращено в скрипт runlib
###Scripts version 2010###
* FIX - исправлено управление мышкой в Overwatch и рекомендованы пар-ры запуска DXVK + PROTON_GE
* добавлены все предустановленные шейдеры в vkBasalt.conf
###Scripts version 1095###
* для систем основанных на Arch добавлен автоматический проброс /run/media
* все основные настройки контейнера перенесены в скрипт var: PW_RT_MOUNT_RO - только для чтения; PW_RT_MOUNT_RW - чтение и запись (пути писать в ковычках и разделять пробелом) Пример: PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}")
* vcrun2019 снова устанавливается в штатном режиме за счет использования версии winetricks от GE (https://raw.githubusercontent.com/GloriousEggroll/protonfixes/master/winetricks)
###Scripts version 2009###
* FIX - исправлен перезапуск редактора db файлов при первом включении PW_GUI_DISABLED_CS (отключение запуска GUI)
###Scripts version 2008###
* HOTFIX - исправление функции pw_kill_autostart
###Scripts version 2007###
* HOTFIX - установки WGC
###Scripts version 2006###
* HOTFIX - для AUTOINSTALL
* в AUTOINSTALL добавлен MY.GAMES
###PortProton-95### 02.09.2021 ###Scripts version 2005###
* обновлен db файл для steam (под ProtonGE связь с интернетом снова есть) - Спасибо Cefeiko!
* обновлен WINE PROTON_GE 6.16-GE1
* переменная PW_GUI_DISABLED_CS сбрасывается при запуске порта (для совместимости со старыми ярлыками которые были созданы на предыдущих версиях порта)
* добавлена возможность создавать 32-х битный префикс (необходимо для будущей автоустановки League of Legends)
* в GUI AUTOINSTALL добавлены лаунчеры Bethesda.net Launcher и Rockstar-Games-Launcher - Спасибо chal55rus (Sergey P.)!
* улучшена функция pw_kill_autostart
###Scripts version 2004###
* HOTFIX - использование и редактирование db файла Battle.NET
###Scripts version 2003###
* HOTFIX - отключение новых обновлений для старых версий PortProton
###Scripts version 2002###
* HOTFIX для настройки db файлов
###Scripts version 2001###
* добавлен графический интерфейс для настройки db файлов
###PortProton-94### 25.08.2021 ###Scripts version 2000###
* добавлено автоматическое скачивание и обновление Proton GE
* db файлы создаются автоматически при запуске любого *.exe
* последние выбранные режимы запуска сохраняются автоматически в db файлы
* добавлены переменные для более точной настройки vkBasalt под каждую игру с помощью db файлов:
export PW_VKBASALT_EFFECTS="FakeHDR:cas" - можно изменять на любые эффекты из путь_до_порта/data/vkBasalt.conf
export PW_VKBASALT_FFX_CAS="0.7" - изменение резкости в играх (от 0 до 1 с шагом 0.01)
так же можно настроить эти пар-ры глобально и для всех игр с помощью: путь_до_порта/data/user.conf
PS: не забывает для активации добавить переменную: export ENABLE_VKBASALT=1 в db файл, или для глобального включения в user.conf
* добавлены условия для правильного определения переменных LD_LIBRARY_PATH и LD_PRELOAD при автоматическом перезапуске скриптов
* запуск нескольких приложений можно запустить только через один и тот же протон
* добавлена автоматическая очиста каталога Temp в префиксе порта
* создан новый скрипт functions_helper, в который перенесены все вспомогательные функции из runlib
* создана новая ветка обновлений скриптов v.2XXX
* упрощена структура скрипта runlib
###Scripts version 1125###
* PROTON_STEAM обновлен до v6.3-6b
* FIX winetricks и cabextract
* множество маленьких изменений и исправлений
###Scripts version 1124###
* выбор версии WINE (PROTON_STEAM v6.3-6rc4; PROTON_GE v6.15.2)
* добавлено отображение версии WINE в MANGOHUD
* переработан скрипт start.sh (уменьшен код при увеличении удобства использования)
###Scripts version 1123###
* в MANGOHUD по умолчанию добавлен вывод разрешения экрана
* добавлен db файл для игры DaysGone (значительно увеличивает FPS)
###Scripts version 1122###
* обновление скриптов для поддержки нового тестового 91 порта включенным FSR по умолчанию (FSR работает только с играми dx9-12 запущеными под vulkan и при выборе разрешения в игре ниже чем поддерживает монитор)
###Scripts version 1121###
* HOTFIX - перенос PW_NO_ESYNC=1 из default db в скрипт var
* HOTFIX - для успешного запуска игр WGC на системах где не работали игры WoWS и WoT
###Scripts version 1120###
* перенос unset переменных в разделе main скрипта runlib
* после автоустановки windows steam, не перезаписывается ярлык нативного steam в меню.
* перед автоустановкой игр добавлена функция kill_portwine
###Scripts version 1119###
* ESYNC отключен по умолчанию из за частой ошибки CXX на некоторых системах.
* при включении vkBasalt вместо эффекта Curves используется FakeHDR (минимальное затемнение при увеличении глубины цветопередачи)
* при включении vkBasalt уменьшена резкость casSharpness с 0.8 до 0.75
###Scripts version 1118###
* обновлены libs_v17 с интеграцией MANGOHUD, vkBasalt + reshade
* MANGOHUD и vkBasalt польностью интегрированы в контейнер
* MANGOHUD снова работает под всеми режимами запуска (OpenGL и Vulkan) включая 32-ух битные игры.
* HOTFIX - user.conf корректно переопределяет все переменные
###Scripts version 1117###
* доработка определение месторасполажения установленных шейдеров для vkBasalt
* добавлена переменная "PW_SANDBOX_HOME_PATH" при существовании которой закрывается доступ к домашнему каталогу
###Scripts version 1115 and 1116###
* тест обновления скриптов с github
###Scripts version 1114###
* добавлен пользовательский файл конфигурации (путь_до_PortProton/data/user.conf") который при наполнениии замещает настройки скрипта var и db файлов, но при обновлении скриптов остается неизменным, для сохранения ваших настроек.
* автоматическое изменение раскладки клавиатуры работает только при установке значении переменной export PW_XKBD_RU_HACK=1 (можно прописывать как в скрипт var, так и в user.conf)
* HOTFIX - определение месторасполажения установленных шейдеров для vkBasalt (для работы под Arch и Manjaro)
* проверка и обновления скриптов из https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz
###Scripts version 1113###
* обновлен dxvk до v1.9-51
* обновлен vkd3d до v2.4
* начальная поддержка нативной версии nvapi при условии, что wine его поддерживает
* тест vkBasalt (в каталог data добавлен vkBasalt.conf и добавлены переменные в скрипт var)
###PortProton-90### 28.06.2021
* обновлен Proton 6.3-5 (RELEASE)
###Scripts version 1112###
* mangohud влючаеться по клавишам: правый_шифт+F12 (Shift_R+F12)
* HOTFIX - включение vkd3d (dxgi=b)
###Scripts version 1111###
* обновлен DXVK и VKD3D из Proton 6.3-5 (RELEASE)
* обновлены библиотеки kerberos и wldap32 (исправляет ошибки подключения к интернету в некоторых играх, например World of Tanks)
###Scripts version 1110###
* mangohud включаеться по клавише F12 при условии, что он установлен в системе
* добавлена кнопка очистки префикса в раздел GUI -> SETTINGS
* добавлена кнопка удаления порта в раздел GUI -> SETTINGS
* добавлена кнопка удаления программ (WINE UNINSTALLER) в раздел GUI -> SETTINGS
* добавлена кнопка редактирования скрипта var в раздел GUI -> SETTINGS
* обновление winetricks отключенно (опять) и используется доработаная версия от ProtonGE
* изменены иконки внутри gui в трее
###PortProton-89### 25.06.2021 ###Scripts version 1109###
* обновлен wine до версии Proton 6.3-5-rc3
* обновлен DXVK и VKD3D из Proton 6.3-5-rc3
###Scripts version 1108###
* обновлен DXVK и VKD3D из Proton 6.3-5-rc1
###Scripts version 1107###
* добавлены db: OSU!; FarCry{3,4}; Control; Biomutant; ForzaHorizon4
* включено обновление winetricks (снова отремонтировано скачиваие vcrun20XX)
###Scripts version 1106###
* возвращен VKD3D из Proton 6.3-4b
###Scripts version 1105###
* для распаковки exe файлов при автоматических установках лаунчеров используется 7z вместо 7zr
* обновлен DXVK до версии 1.9
* исправлена автоматическая установка GOG
* автоматическое создание символьной ссылки users/steamuser/Documents в users/steamuser/My Documents
* добавлена иконка в трей для PortProton (завершение всех процессов по ПКМ --> "FORCE EXIT")
* добавлена возможность запуска нескольких приложений одновременно и закрывать всё одним нажатием ПКМ --> EXIT
###Scripts version 1104###
* крупное обновлеение контейнера (libs_v16):
- добавлен /bin/yad_new версии 10.1 скомпилированный специально для будущего меню в трее)
- обновлен MANGOHUD (требуется проверка под OpenGL)
- обновлен 7z необходимый для будущей автоматической установки Rockstar Game Launcher
* для тестовой поддержки wayland добавлена переменная в скрипт var: GDK_BACKEND="x11"
* обновлены DXVK и VKD3D до актуального состояния на 12.06.2021
###Scripts version 1103###
* HOTFIX - исправление функции pw_kill_autostart
###Scripts version 1102###
* фикс создания ярлыка после автоматической установки STEAM
* в AUTOINSTALL добавлена функция pw_kill_autostart для запрета автозапуска лаунчера после автоматической установки
* добавлены настройки в ~/.Xresources для корректного отображения текста в xterm, если данного файла нет в корне домашнего каталога
###PortProton-87### - RELEASE
* cтабильная версия wine proton 6.3-4
* стабильные версии новых скриптов 1101
###Scripts version 1101###
* переделан запуск контейнера (исправлены проблемы с правильной подгрузкой библиотек)
* автоматическая установка DLL в префикс выполняется под контейнером
* winecmd запускается из под xterm установленного в контейнер, что избавляет xterm как зависимость.
* vcrun2019 снова устанавливается в штатном режиме
* исправлена ошибка в скрипте при монтировании в контейнер
* добавлено отображение скорости интернета и примерный остаток времени при скачивании libs, gecko, mono
###PortProton-86###
* обновлен wine до версии GE 2
* обновлены либы до версии libs_v15
### Скрипты с версии 1095 по 1100 - эксперементальные ###
###Scripts version 1094###
* немного ускорена инициализация префикса
@ -32,6 +204,10 @@
* исправлено определение использования RUNTIME в логах
* ${HOME}/.PortWINE под контейнетом всегда доступен, но только для чтения
* добавлен автоматический проброс /media и /mnt в контейнер порта что позволяет запускать игры и программы установленные не в домашнем каталоге, как если бы порт работал без контейнера
* в AUTOINSTALL добавлены лаунчены UPLAY и STEAM
* тестовый фикс пропадания текстур под DXVK на некоторых системах
* для систем основанных на Arch добавлен автоматический проброс /run/media
* все основные настройки контейнера перенесены в скрипт var: PW_RT_MOUNT_RO - только для чтения; PW_RT_MOUNT_RW - чтение и запись (пути писать в ковычках и разделять пробелом) Пример: PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}")
###Scripts version 1093###
* возвращена переменная в скрипте var: WINE_WIN_START="start.exe /i /unix" что возвращает запуск .bat файлов и решает проблему с запуском игры WoT из WGC
@ -40,19 +216,15 @@
* исправлена автоустановка WGC под запуском в контейнерном режиме
* добавлен фикс работы старых версий порта с новыми скриптами
* частичный откат кода со скриптов от PortProton-78
* Установка xact_x64 совместно c xact по умолчанию с любым db файлом
* контейнерный режим включен по умолчанию и отключается в скрипте "каталог_порта/data/scripts/var" переменной PW_USE_RUNTIME=(1 - включен; 0 - выключен)
###Scripts version 1091###
* Установка xact по умолчанию с любым db файлом
###PortProton-85### 27.05.2021 ###Scripts version 1090###
* для подготовки к релизу используется стабилная версия wine: Proton 6.3-4
* до 4-x прибавка в ФПС в играх DX12 (на моем железе: HZD - x4; Graven - x2; Cyberpunk2077 - x1,25)
* глобальное изменение использование переменных (системных, wine и vulkan)
* в лог файл добавлена информация о текущей версии скриптов и используется ли RUNTIME
* возврат оригинальных значений системных переменных: PATH, LD_LIBRARY_PATH после окончания использования порта
* HOTFIX - убрано повторное исполнение функции START_PORTWINE во время запуска debug
* HOTFIX - убрано повторное исполнение функции start_portwine во время запуска debug
* HOTFIX - исправлены возможные проблемы старых игр использующие WMF
* HOTFIX - ошибки скачивания vcrun2019 на чистом префиксе
@ -74,7 +246,7 @@
* HOTFIX - изменена переменная export WINE_WIN_START="start.exe /b"
###Scripts version 1085###
* в скрипт var добавлена и временно включена переменная export PW_USE_RUNTIME=1 (требуется рашение проблемы с загрузкой faudio)
* в скрипт var добавлена и временно включена переменная export PW_USE_RUNTIME=0 (требуется рашение проблемы с загрузкой faudio)
* добавлено автоматическое создание каталога "${WINEPREFIX}/drive_c/users/Public/Documents/Steam"
* HOTFIX - обновление скриптов после установки происходило только при повторном запуске порта
@ -143,7 +315,7 @@
###Scripts version 1067###
* HOTFIX - удален аргумент /b при запуске приложений (fix для WGC)
* фикс запуска функции PW_OTHER_FIXES
* фикс запуска функции pw_other_fixes
* добавлена проверка повторной установки EVE Online из AUTOINSTALL
###Scripts version 1066###
@ -189,7 +361,7 @@
###Scripts version 1053###
* HOTFIX - перенос всех функций в скрипте runlib (наверх)
* добавлена переменная в default ##export PW_WINE_ALLOW_XIM=1, которая отключает XIM (X input manager)
* в функции PW_INIT_PFX добавлено копирование всех dll из библиотек wine/lib(64) в префикс (если префикса не существует)
* в функции pw_init_pfx добавлено копирование всех dll из библиотек wine/lib(64) в префикс (если префикса не существует)
###Scripts version 1052###
* отключена автоотчистка ~/.PortWINE
@ -263,7 +435,7 @@
* добавлена проверка связи с серверами для автономной работы порта
* ускорена работа reset скрипта останавливающая все процессы порта
* исправлены ошибки связанные с остановкой отсутствующих pid-оф yad и процессов wine.
* удалено использование wineserver -k в функции KILL_PORTWINE (влияло на инициализацию префикса)
* удалено использование wineserver -k в функции kill_portwine (влияло на инициализацию префикса)
* добавлена отчистка ~/.PortWINE, при условии установки новой версии порта
* добавлена вся информация из db файла и winetricks.log в debug
* удален каталог vars (из за db файлоа больше в нем нет необходимости)
@ -274,7 +446,7 @@
###PortProton-74### 20.04.2021 ###Scripts version 1037###
* обновлен wine до версии Proton 6.3-2 next
* в setup db изменен список библиотек (фикс для "xatab") "vcrun6 mfc42 vcrun6sp6 mfc120 vcrun2013"
* в setup db изменен список библиотек (фикс для "xatab") " mfc42 mfc120 vcrun2013"
* добавить выбор версий dxvk и vkd3d в db файле, с последующей закачкой с github при отсутствии в ~/.PortWINE/vulkan
* обновлены libs до v9 (добавлен пакет zstd для реализация функции смены vkd3d)
* произведена частичная чистка и оптимизация кода
@ -284,9 +456,9 @@
* фикс для StarCraft (db)
* фикс работы порта в solus (отключение xterm)
* фикс создания циклической ссылки drive_c внутри drive_c
* удален &>>/dev/null из PW_RUN (ломает запуск неторорых игр и приложений)
* очистищен код функции PW_RUN (убрано условие optirun_on за ненадобностью)
* исправлен минимальный набор библиотек в default db (vcrun6 vcrun6sp6 mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9)
* удален &>>/dev/null из pw_run (ломает запуск неторорых игр и приложений)
* очистищен код функции pw_run (убрано условие optirun_on за ненадобностью)
* исправлен минимальный набор библиотек в default db ( mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9)
###PortProton-72### 17.04.2021 ###Scripts version 1035###
@ -301,7 +473,7 @@
* добавлена кнопка редактирования найденного db файла
* ТЕСТ: автоудаление PINNED_LIBS и отключение setup.sh --force
* изменение сравнения версий скриптов и портов "$(curl -s --list-only "https://portwine-linux.ru/ftp/current_version/blabla_ver")"
* автоматическая установка в префикс порта PW_DLL_INSTALL="vcrun2017 vcrun6 vcrun6sp6 mfc42"
* автоматическая установка в префикс порта PW_DLL_INSTALL="vcrun2017 mfc42"
* исправлено создание db файла при создании ярлыков, в именах которых присутствует одниковвые названия запускаемого файла
* исправили создания префикса на некоторых системах при использования встроенного xterm из ~/PortWINE/libs

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1017 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,85 @@
xterm*faceSize: 12
xterm*vt100*geometry: 120x20
xterm*saveLines: 16384
xterm*loginShell: true
xterm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
xterm*termName: xterm-color
xterm*eightBitInput: false
!BLK Cursor
#define _color0 #000d18
#define _color8 #000d18
!RED Tag
#define _color1 #e89393
#define _color9 #e89393
!GRN SpecialKey
#define _color2 #9ece13
#define _color10 #9ece13
!YEL Keyword
#define _color3 #f0dfaf
#define _color11 #f0dfaf
!BLU Number
#define _color4 #8cd0d3
#define _color12 #8cd0d3
!MAG Precondit
#define _color5 #c0bed1
#define _color13 #c0bed1
!CYN Float
#define _color6 #dfaf8f
#define _color14 #dfaf8f
!WHT Search
#define _color7 #efefef
#define _color15 #efefef
!FMT Include, StatusLine, ErrorMsg
#define _colorBD #ffcfaf
#define _colorUL #ccdc90
#define _colorIT #80d4aa
!TXT Normal, Normal, Cursor
#define _foreground #dcdccc
#define _background #1f1f1f
#define _cursorColor #8faf9f
URxvt*color0 : _color0
URxvt*color1 : _color1
URxvt*color2 : _color2
URxvt*color3 : _color3
URxvt*color4 : _color4
URxvt*color5 : _color5
URxvt*color6 : _color6
URxvt*color7 : _color7
URxvt*color8 : _color8
URxvt*color9 : _color9
URxvt*color10 : _color10
URxvt*color11 : _color11
URxvt*color12 : _color12
URxvt*color13 : _color13
URxvt*color14 : _color14
URxvt*color15 : _color15
URxvt*colorBD : _colorBD
URxvt*colorIT : _colorIT
URxvt*colorUL : _colorUL
URxvt*foreground : _foreground
URxvt*background : _background
URxvt*cursorColor : _cursorColor
XTerm*color0 : _color0
XTerm*color1 : _color1
XTerm*color2 : _color2
XTerm*color3 : _color3
XTerm*color4 : _color4
XTerm*color5 : _color5
XTerm*color6 : _color6
XTerm*color7 : _color7
XTerm*color8 : _color8
XTerm*color9 : _color9
XTerm*color10 : _color10
XTerm*color11 : _color11
XTerm*color12 : _color12
XTerm*color13 : _color13
XTerm*color14 : _color14
XTerm*color15 : _color15
XTerm*colorBD : _colorBD
XTerm*colorIT : _colorIT
XTerm*colorUL : _colorUL
XTerm*foreground : _foreground
XTerm*background : _background
XTerm*cursorColor : _cursorColor

View File

@ -1,146 +0,0 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp"
export PW_FORCE_LARGE_ADDRESS_AWARE=0
export PW_USE_GAMEMODE=0
export PW_CHECK_AUTOINSTAL=1
export PW_WINEDBG_DISABLE=1
export PW_NO_WRITE_WATCH=0
export PW_VULKAN_USE=0
export PW_NO_FSYNC=1
export PW_NO_ESYNC=1
unset PORTWINE_CREATE_SHORTCUT_NAME
PW_WGC () {
export LAUNCH_PARAMETERS=("/SILENT" "/SP-")
[ "${update_loc}" = "RUS" ] && export WGC_LOC=RU || export WGC_LOC=EU
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Wargaming_Game_Center_Install_WoT_RU.exe"
START_PORTWINE
if try_download "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
then
while true ; do
if [ "${PW_USE_RUNTIME}" = 0 ]
then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`" & break
fi
if [ -z `pgrep wgc.exe` ] ; then
echo -e "PID WGC not found"
sleep 2
else
echo -e "PID WGC: `pgrep wgc.exe` \nPID Cont: `pidof -s bwrap`"
while [ ! -z `pgrep wgc.exe` ]; do
echo -e "PID WGC found: `pgrep wgc.exe` \nPID_Status: `echo $?`"
sleep 2
KILL_PORTWINE
done
break
fi
done &
PW_START_PROGRESS_BAR_CS "Starting WGC installation..."
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/ProgramData/Wargaming.net/GameCenter/wgc_api/wgc_api.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Wargaming Game Center"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_ORIGIN () {
export LAUNCH_PARAMETERS=("/silent" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
START_PORTWINE
if try_download "https://download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing the Origin. Please wait..."
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe"
PW_STOP_PROGRESS_BAR
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_BATTLE_NET () {
[ "${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 "http://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_RUN "${PW_AUTOINSTALL_EXE}"
while [ ! -z `pgrep Battle.net* | head -n 1` ] && [ -z `pgrep Battle.net.exe | head -n 1` ] ; do sleep 2 ; done
KILL_PORTWINE
portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"`
PW_STOP_PROGRESS
PORTWINE_CREATE_SHORTCUT
try_remove_file "${PW_AUTOINSTALL_EXE}"
fi
STOP_PORTWINE
}
PW_EPIC () {
export LAUNCH_PARAMETERS=("/q" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
START_PORTWINE
if try_download "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing Epic Games Launcher. Please wait..."
PW_RUN msiexec /i "${PW_AUTOINSTALL_EXE}" &
sleep 10
if [ ! -z `pgrep msiexec* | head -n 1` ] ; then
while [ ! -z `pgrep msiexec* | head -n 1` ] || [ ! -z `pgrep rundll32* | head -n 1` ] ; do
[ ! -z `pgrep rundll32* | head -n 1` ] && kill -n 9 `pgrep rundll32* | head -n 1` && echo "Kill rundll32.exe"
sleep 5
done
fi
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Epic Games/Launcher/Portal/Binaries/Win32/EpicGamesLauncher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_GOG () {
export LAUNCH_PARAMETERS=("/runWithoutUpdating" "/deelevated" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
START_PORTWINE
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.35.19/setup_galaxy_2.0.35.19a.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_CS "Installing the GOG Galaxy. Please wait..."
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "GalaxyClient.exe"`
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_EVE () {
export PW_WINDOWS_VER=10
export PW_DLL_INSTALL="vcrun2017"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EveLauncher-1892908.exe"
START_PORTWINE
if try_download "https://binaries.eveonline.com/EveLauncher-1892908.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing the EVE Launcher. Please wait..."
if [ ! -f "$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe" ] ; then
try_remove_dir "$WINEPREFIX/drive_c/Games/EVE Online"
dd if="${PW_AUTOINSTALL_EXE}" of="${PW_AUTOINSTALL_EXE}".7z bs=1M skip=31646603 count=196171208 iflag=skip_bytes,count_bytes
"$pw_7z" x "${PW_AUTOINSTALL_EXE}".7z -o"$WINEPREFIX/drive_c/Games/EVE Online"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${PW_AUTOINSTALL_EXE}".7z
fi
portwine_exe="$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe"
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}

View File

@ -0,0 +1,681 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
pw_ping_test () {
ping -w3 -c1 github.com &> /dev/null
[ "$?" == "0" ] && return 0 || return 1
}
print_error () {
echo "ERROR: $@"
}
print_info () {
echo "INFO: $@"
}
print_var () {
for vp in $@ ; do echo "${vp}=${!vp}" ; done
}
try_copy_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for copy" && return 1
elif [ -z "$2" ] ; then print_error "no way to copy file $1" && return 1
else
cp -f "$1" "$2"
if [ "$?" != 0 ]
then print_error "failed to copy file $1 to $2" || return 1
else print_info "copy file $1 to $2 was successful" || return 0
fi
fi
}
try_copy_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy"
elif [ -z "$2" ] ; then print_error "no way to copy directory $1"
else
cp -fr "$1" "$2"
[ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0
fi
return 1
}
try_remove_file () {
if [ -f "$1" ] ; then
rm -f "$1"
[ "$?" != 0 ] && print_error "failed to remove file $1" || return 0
fi
return 1
}
try_remove_dir () {
if [ -d "$1" ] ; then
rm -fr "$1"
[ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0
fi
return 1
}
try_force_link_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link file $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0
fi
return 1
}
try_force_link_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link directory $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0
fi
return 1
}
try_download () {
set -o pipefail
wget -c -t 5 -T 2 "$1" --output-document="$2" 2>&1 | \
sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90
[ "${PIPESTATUS[0]}" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0
}
try_download_silent () {
wget -c -t 5 -T 2 "$1" --output-document="$2"
[ "$?" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0
}
zenity_error_download () {
`zenity --error --title "Error..." --text "You will need to check internet connettion,\nand press OK for repeet download" --no-wrap ` > /dev/null 2>&1
}
create_new_dir () {
if [ ! -d "$1" ] ; then
mkdir -p "$1"
fi
}
var_winedlloverride_update () {
if [ ! -z "${WINEDLLOVERRIDES}" ]
then export WINEDLLOVERRIDES="${1};${WINEDLLOVERRIDES}"
else export WINEDLLOVERRIDES="${1}"
fi
}
var_vkd3d_config_update () {
if [ ! -z "${VKD3D_CONFIG}" ]
then export VKD3D_CONFIG="${1};${VKD3D_CONFIG}"
else export VKD3D_CONFIG="${1}"
fi
}
unpack_tar_xz () {
set -o pipefail
tar -Jxvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0
}
unpack_tar_gz () {
set -o pipefail
tar -xzvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0
}
pw_mangohud_check () {
export RUN_MANGOHUD=""
if [ "${PW_MANGOHUD}" == "1" ] ; then
if [ "${PW_VULKAN_USE}" = "0" ]
then export RUN_MANGOHUD="mangohud --dlsym"
else export RUN_MANGOHUD="mangohud"
fi
else
export DISABLE_MANGOHUD=1
fi
}
pw_vkbasalt_check () {
if [ ! -z "${ENABLE_VKBASALT}" ] && [ "${ENABLE_VKBASALT}" == 1 ] ; then
if [ -z "${PW_VKBASALT_EFFECTS}" ] ; then
export PW_VKBASALT_EFFECTS="FakeHDR:cas"
fi
sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
if [ -z "${PW_VKBASALT_FFX_CAS}" ] ; then
export PW_VKBASALT_FFX_CAS="0.7"
fi
sed -ri "s/casSharpness = .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
else
export DISABLE_VKBASALT=1
fi
}
gui_question () {
`zenity --question --title "${inst_set}." --text "$1" --no-wrap ` &> /dev/null
[ $? -eq "0" ] && return 0 || return 1
}
pw_clear_pfx () {
try_remove_file "${WINEPREFIX}/system.reg"
try_remove_file "${WINEPREFIX}/user.reg"
try_remove_file "${WINEPREFIX}/userdef.reg"
try_remove_file "${WINEPREFIX}/winetricks.log"
try_remove_file "${WINEPREFIX}/.update-timestamp"
try_remove_file "${WINEPREFIX}/drive_c/.windows-serial"
try_remove_dir "${WINEPREFIX}/drive_c/windows/"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Setup"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Windows"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/WindowsTask"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Package Cache"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Temporary Internet Files"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/wine_gecko"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Temporary Internet Files"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/wine_gecko"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Internet Explorer"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows Media Player"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows NT"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Common Files"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Internet Explorer"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Common Files"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows Media Player"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows NT"
try_remove_dir "${PORT_WINE_TMP_PATH}/mesa_shader_cache"
rm -f "${PORT_WINE_TMP_PATH}"/*.bin
rm -f "${PORT_WINE_TMP_PATH}"/*.foz
}
check_user_conf () {
if [ ! -f "${USER_CONF}" ]; then
echo "#!/bin/bash" > "${USER_CONF}"
echo "# User overides db and var settings..." >> "${USER_CONF}"
chmod u+x "${USER_CONF}"
fi
}
init_wine_ver () {
if [ ! -z "${PW_WINE_VER}" ] && [ `echo "${PW_WINE_VER}" | grep "PROTON_GE"` ]
then export PW_WINE_USE=proton_ge
elif [ ! -z "${PW_WINE_VER}" ] && [ `echo "${PW_WINE_VER}" | grep "PROTON_STEAM"` ]
then export PW_WINE_USE=proton_steam
fi
unset PW_WINE_VER
export WINEDIR="${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0"
export WINE="${WINEDIR}/bin/wine"
export WINELOADER="${WINEDIR}/bin/wine"
export WINESERVER="${WINEDIR}/bin/wineserver"
export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
if [ ! -z ${LD_LIBRARY_PATH_TMP} ]
then export LD_LIBRARY_PATH="${LD_LIBRARY_PATH_TMP}"
else export LD_LIBRARY_PATH_TMP=${LD_LIBRARY_PATH}
fi
if [ ! -z "${LD_LIBRARY_PATH}" ]
then export LD_LIBRARY_PATH="${WINEDIR}/lib64/:${WINEDIR}/lib/:${LD_LIBRARY_PATH}"
else export LD_LIBRARY_PATH="${WINEDIR}/lib64/:${WINEDIR}/lib/"
fi
if [ ! -z ${PATH_TMP} ]
then export PATH="${PATH_TMP}"
else export PATH_TMP="${PATH}"
fi
if [ ! -z "${PATH}" ]
then export PATH="${WINEDIR}/bin:${PATH}"
else export PATH="${WINEDIR}/bin"
fi
}
cabextract_fix () {
[ ! -f "${WINEDIR}/bin/cabextract" ] && try_copy_file "${PW_WINELIB}/runtime/bin/cabextract" "${WINEDIR}/bin/cabextract"
[ ! -f "${WINEDIR}/lib64/libmspack.so.0" ] && try_copy_file "${PW_WINELIB}/runtime/lib/x86_64-linux-gnu/libmspack.so.0" "${WINEDIR}/lib64/libmspack.so.0"
[ ! -f "${WINEDIR}/lib64/libmspack.so.0.1.0" ] && try_copy_file "${WINEDIR}/lib64/libmspack.so.0" "${WINEDIR}/lib64/libmspack.so.0.1.0"
}
sszen() {
zenity --progress --title="Settings..." --text="Updating parameters" --pulsate --auto-close --width=500 --height=90 --no-cancel
}
pw_start_progress_bar_cs () {
"${pw_yad}" --progress --progress-text="$@" --pulsate --close-on-unfocus \
--no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 &
echo ""
}
pw_start_progress_bar_block () {
"${pw_yad}" --progress --progress-text="$@" --pulsate \
--no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 &
echo ""
}
pw_stop_progress_bar () {
while [ ! -z "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ]
do kill -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` &> /dev/null
done
}
pw_download_libs () {
if [ ! -e "${PW_WINELIB}/runtime/bin/yad" ] || [ ! -e "${PW_WINELIB}/runtime/lib/p7zip/7z" ] \
|| [ ! -e "${PW_WINELIB}/runtime/bin/vkcube" ] || [ ! -e "${PW_WINELIB}/runtime/bin/xterm" ] || \
[ -e "${HOME}/.PortWINE/tmp/libs${PW_LIBS_VER}.tar.xz" ] ; then
print_info "Download and install libraries..."
if try_download "https://github.com/Castro-Fidel/PortWINE/releases/download/libs${PW_LIBS_VER}/libs${PW_LIBS_VER}.tar.xz" "${HOME}/.PortWINE/tmp/libs${PW_LIBS_VER}.tar.xz" ; then
if unpack_tar_xz "${HOME}/.PortWINE/tmp/libs${PW_LIBS_VER}.tar.xz" "${HOME}/.PortWINE/" ; then
try_remove_file "${HOME}/.PortWINE/tmp/libs${PW_LIBS_VER}.tar.xz"
else
try_remove_dir "${HOME}/.PortWINE/libs${PW_LIBS_VER}"
try_remove_file "${HOME}/.PortWINE/tmp/libs${PW_LIBS_VER}.tar.xz"
`zenity --error --title "Error..." \
--text "Failed to install runtime libraries.\nCheck internet connection and press OK" \
--no-wrap ` > /dev/null 2>&1 && pw_download_libs
fi
else
`zenity --error --title "Error..." \
--text "Failed to download runtime libraries.\nCheck internet connection and press OK" \
--no-wrap ` > /dev/null 2>&1 && pw_download_libs
fi
fi
export pw_yad="${PW_WINELIB}/runtime/bin/yad"
export pw_yad_new="${PW_WINELIB}/runtime/bin/yad_new"
export pw_zstd="${PW_WINELIB}/runtime/bin/zstd"
export pw_7z="${PW_WINELIB}/runtime/lib/p7zip/7z"
if [ -x "`which xterm 2>/dev/null`" ]; then
export SYS_XTERM=`which xterm`
export PW_XTERM="${SYS_XTERM} -geometry 159x37 -e"
else
export PW_XTERM="${PW_WINELIB}/runtime/bin/xterm -geometry 159x37 -e"
fi
}
pw_download_mono () {
if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${PW_MONO_VER}" ] ; then
export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${PW_MONO_VER}/wine-mono-${PW_MONO_VER}-x86.tar.xz"
echo "######################################################"
print_info "Download and install wine mono..."
if try_download "${url_mono}" "${HOME}/.PortWINE/tmp/wine-mono-${PW_MONO_VER}-x86.tar.xz" ; then
create_new_dir "${HOME}/.PortWINE/mono"
if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-mono-${PW_MONO_VER}-x86.tar.xz" "${HOME}/.PortWINE/mono/"
then
try_remove_dir "${HOME}/.PortWINE/mono/wine-mono-${PW_MONO_VER}-x86"
zenity_error_download && pw_download_mono
fi
try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${PW_MONO_VER}-x86.tar.xz"
else
zenity_error_download && pw_download_mono
fi
fi
}
pw_download_gecko () {
if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86" ] ; then
export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${PW_GECKO_VER}/wine-gecko-${PW_GECKO_VER}-x86.tar.xz"
echo "######################################################"
echo "Download and install wine gecko x86..."
if try_download "${url_gecko_x86}" "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86.tar.xz" ; then
create_new_dir "${HOME}/.PortWINE/gecko"
if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86.tar.xz" "${HOME}/.PortWINE/gecko/"
then
try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86"
zenity_error_download && pw_download_gecko
fi
try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86.tar.xz"
else
zenity_error_download && pw_download_gecko
fi
fi
if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86_64" ] ; then
export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${PW_GECKO_VER}/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz"
echo "######################################################"
echo "Download and install wine gecko x86_64..."
if try_download "${url_gecko_x86_64}" "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz" ; then
create_new_dir "${HOME}/.PortWINE/gecko"
if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz" "${HOME}/.PortWINE/gecko/"
then
try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86_64"
zenity_error_download && pw_download_gecko
fi
try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz"
else
zenity_error_download && pw_download_gecko
fi
fi
}
update_winetricks () {
W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
W_TRX_EXT_VER="$(curl -s --list-only ${W_TRX_URL} | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
print_info "Version winetricks on server: ${W_TRX_EXT_VER}"
W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
print_info "Version winetricks in port: ${W_TRX_INT_VER}"
if [ ! -f "${PORT_WINE_TMP_PATH}/winetricks" ] && [ ! -z "$W_TRX_EXT_VER" ] || [ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" ] && [ ! -z "$W_TRX_EXT_VER" ]; then
if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then
mv -f "${PORT_WINE_TMP_PATH}/winetricks_new" "${PORT_WINE_TMP_PATH}/winetricks"
W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" && print_info "Winetricks version in port has been updated (${W_TRX_INT_VER})"
chmod u+x "${PORT_WINE_TMP_PATH}/winetricks"
fi
fi
if [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then
sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks"
sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks"
fi
}
wait_wineserver () {
sleep 3
while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do
sleep 1
done
}
kill_portwine () {
wine_pids=`ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader| ' | awk -F/ '{print $3}'`
if [ ! -z "${wine_pids}" ] ; then
for pw_kill_pids in ${wine_pids} ; do
if [ "`ps cax | grep ${pw_kill_pids}`" ] ; then
kill -n 9 ${pw_kill_pids}
fi
done
fi
if [ ! -z `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'` ] ; then
kill -n 9 `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'`
fi
}
export -f kill_portwine
stop_portwine () {
wait_wineserver
add_in_stop_portwine
if [ "$int_xneur" = "1" ]; then
xneur &
fi
if [ ! -z ${PW_XKBD} ]; then
setxkbmap ${PW_XKBD}
fi
pw_stop_progress_bar
try_remove_file "${PORT_SCRIPTS_PATH}/0"
try_remove_file "${PORT_SCRIPTS_PATH}/1"
kill_portwine
if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ]
then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`"
fi
if [ ! -z "`ls "${WINEPREFIX}"/drive_c/users/steamuser/Temp/ | head -n 1`" ] ; then
chmod -R 755 "${WINEPREFIX}"/drive_c/users/steamuser/Temp/
rm -fr "${WINEPREFIX}"/drive_c/users/steamuser/Temp/*
fi
if [ ! -z "`ls "${WINEPREFIX}"/drive_c/ | grep -m 1 ".tmp"`" ] ; then
rm -f "${WINEPREFIX}"/drive_c/*.tmp
fi
}
pw_tray_icon () {
if [ -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then
tray_icon_click() {
echo ""
}
export -f tray_icon_click
tray_icon_click_exit() {
kill_portwine
if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ]
then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`"
fi
killall start.sh
}
export -f tray_icon_click_exit
"${pw_yad_new}" --notification --no-middle --text="PortProton" \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--image="$PW_GUI_ICON_PATH/port_proton.png" \
--command="bash -c tray_icon_click" \
--tooltip="PortProton" \
--menu="| \
<<< CHANGE LOG >>>!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"| \
<<< FORCE EXIT >>>!bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"|"
fi
}
pw_init_db () {
if [ ! -z "${portwine_exe}" ]; then
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
# export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
# export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'`
fi
if [ ! -z "${PORTWINE_DB}" ]; then
PORTWINE_DB_FILE=`grep -ilw "#${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
. "${PORTWINE_DB_FILE}"
echo "Use ${PORTWINE_DB_FILE} db file."
else
. "${PORT_SCRIPTS_PATH}/portwine_db/default"
echo "Use default db file."
fi
fi
init_wine_ver
}
pw_update_notifier () {
if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then
echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver"
fi
if [ ! -f "${PORT_WINE_TMP_PATH}/update_notifier" ] ; then
echo "1" > "${PORT_WINE_TMP_PATH}/update_notifier"
fi
read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier"
if [ "${update_not}" = "1" ] ; then
if try_download_silent "${PW_FTP_URL}/current_version/${portname}_ver" "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" ; then
read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
if [ ! -z "${current_ver}" ] && [ "${current_ver}" -gt "${install_ver}" ] ; then
xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${port_upd3}" \
TRUE "${port_upd4}" \
FALSE "${port_upd5}" \
FALSE "${port_upd6}" `
case $xsd in
"${port_upd4}")
kill_portwine
xdg-open $PORTWINE_URL
exit 0 ;;
"${port_upd5}")
echo " " ;;
"${port_upd6}")
echo "0" > "${PORT_WINE_TMP_PATH}/update_notifier" ;;
esac
fi
fi
fi
if [ ! -f "${HOME}/.config/.PortTime" ] ; then
echo "10" > "${HOME}/.config/.PortTime"
fi
read "port_time" < "${HOME}/.config/.PortTime"
if [ "${port_time}" -gt "1" ] ; then
port_time=$((${port_time}-1))
echo "${port_time}" > "${HOME}/.config/.PortTime"
else
xsd2=`zenity --title "${port_time1}" --text "${port_time2}" --list --radiolist --height=230 --column="${inst_set3}" --column "${port_time3}" \
TRUE "${port_time4}" \
FALSE "${port_time5}" \
FALSE "${port_time6}" `
if [ $? = 1 ] ; then
echo "1" > "${HOME}/.config/.PortTime"
else
case $xsd2 in
"${port_time4}")
xdg-open "$urlg" &
echo "300" > "${HOME}/.config/.PortTime"
exit 0 ;;
"${port_time5}")
echo "75" > "${HOME}/.config/.PortTime" ;;
"${port_time6}")
echo "150" > "${HOME}/.config/.PortTime" ;;
esac
fi
fi
}
pw_scripts_update () {
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
echo "2000" > "${PORT_WINE_TMP_PATH}/scripts_ver"
fi
export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1`
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ] ; then
echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
fi
read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
if [ "${scripts_update_not}" = "1" ] ; then
if try_download_silent "https://github.com/Castro-Fidel/PortWINE/raw/master/data_from_portwine/scripts/var" "${PORT_WINE_TMP_PATH}/scripts_cur_ver" ; then
export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_cur_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'`
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
echo "Scripts version in github = ${scripts_current_ver}"
echo "Scripts version local = ${scripts_install_ver}"
if [ ! -z "${scripts_current_ver}" ] && [ "${scripts_current_ver}" -gt "${scripts_install_ver}" ] ; then
xcsd=`zenity --title "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${scripts_upd3}" \
TRUE "${scripts_upd4}" \
FALSE "${scripts_upd5}" \
FALSE "${scripts_upd6}"`
case $xcsd in
"${scripts_upd4}")
echo "######################################################"
echo "Update scripts..."
try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
if try_download "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then
tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}"
if [ "$?" == "0" ] ; then
cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/"
try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
"${pw_yad}" --title="Changelog" --borders=10 \
--text="Скрипты были успешно обновлены.\nДля продолжения запуска порта нажмите ОК." \
--text-align=center --text-info --show-uri --wrap --center --width=1200 --height=550 \
--filename="${PORT_WINE_PATH}/data/changelog" --uri-color=red
[ "$?" == 0 ] && /bin/bash -c ${pw_full_command_line[*]} &
exit 0
fi
else
zenity_error_download && pw_scripts_update
fi ;;
"${scripts_upd5}")
echo " " ;;
"${scripts_upd6}")
echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;;
esac
fi
fi
fi
}
pw_kill_autostart () {
if [ "$PW_USE_RUNTIME" != 1 ]
then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`"
else
sleep 10
while true ; do
if [ -z "`ps aux | grep -m 1 "$1" | grep -v grep | awk '{print $2}'`" ] && [ ! -z "`pgrep wrap | head -n 1`" ]; then
echo -e "PID "$1" not found"
sleep 1
else
kill_portwine
break
fi
done
fi
if [ ! -z "`ls "${WINEPREFIX}"/drive_c/ | grep -m 1 ".tmp"`" ] ; then
rm -f "${WINEPREFIX}"/drive_c/*.tmp
fi
}
edit_db_from_gui () {
for mod_db in $@ ; do
echo "${mod_db}=${!mod_db}"
if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" ] ; then
echo "export ${mod_db}=${!mod_db}" >> "${PORTWINE_DB_FILE}"
elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" ] ; then
if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=${!mod_db}" ] ; then
sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=${!mod_db}/" "${PORTWINE_DB_FILE}"
fi
elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" != "export ${mod_db}=${!mod_db}" ] ; then
sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=${!mod_db}/g" "${PORTWINE_DB_FILE}"
fi
done
}
pw_gui_for_edit_db () {
unset ADD_CHK_BOX_EDIT_DB
edit_db_field_add () {
for int_to_boole in $@ ; do
if [ "${!int_to_boole}" == "1" ]
then export ${int_to_boole}="TRUE"
else export ${int_to_boole}="FALSE"
fi
ADD_CHK_BOX_EDIT_DB="${ADD_CHK_BOX_EDIT_DB} --field="${int_to_boole}:CHK" "${!int_to_boole}""
done
}
edit_db_field_add $@
output_yad_edit_db=`"${pw_yad}" --title "EDIT_DB" --text-align=center --text "Change settings in database file for ${PORTWINE_DB}\n" \
--columns=4 --form --separator=" " --borders=10 --center ${ADD_CHK_BOX_EDIT_DB} \
--button="CANCEL":1 --button="OPEN DB FILE":150 --button="SAVE CHANGES":0 `
YAD_STATUS="$?"
if [ "$YAD_STATUS" == "1" ] || [ "$YAD_STATUS" == "252" ] ; then exit 0
elif [ "$YAD_STATUS" == "150" ] ; then
xdg-open "${PORTWINE_DB_FILE}" &
exit 0
fi
export output_yad_edit_db=($output_yad_edit_db)
export bool_from_yad=0
edit_db_field_read () {
for boole_to_int in $@ ; do
export ${boole_to_int}=${output_yad_edit_db[$bool_from_yad]}
if [ "${!boole_to_int}" == "TRUE" ]
then export ${boole_to_int}="1"
else export ${boole_to_int}="0"
fi
export bool_from_yad=$(( ${bool_from_yad} + 1 ))
done
}
edit_db_field_read $@
edit_db_from_gui $@
PW_DB_TMP=`cat "${PORTWINE_DB_FILE}"`
echo "${PW_DB_TMP}" | awk '! a[$0]++' > "${PORTWINE_DB_FILE}"
unset PW_DB_TMP
return 0
}
pw_check_and_download_wine () {
if [ "${1}" == "proton_ge" ] ; then
if [ "`cat "${PORT_WINE_PATH}"/data/dist/proton_ge/version | head -n 1`" != "${PW_PROTON_GE_VER}" ]
then try_remove_dir "${PORT_WINE_PATH}/data/dist/proton_ge/"
fi
if [ ! -d "${PORT_WINE_PATH}/data/dist/proton_ge" ] ; then
print_info "Download and install proton_ge..."
if try_download "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${PW_PROTON_GE_VER}/Proton-${PW_PROTON_GE_VER}.tar.gz" "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz" ; then
if unpack_tar_gz "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz" "${PORT_WINE_PATH}/data/tmp/" ; then
mv -f "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}/files" "${PORT_WINE_PATH}/data/dist/proton_ge"
echo "${PW_PROTON_GE_VER}" > "${PORT_WINE_PATH}/data/dist/proton_ge/version"
try_remove_file "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz"
try_remove_dir "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}"
try_remove_dir "${PORT_WINE_PATH}/data/dist/proton_ge/share/default_pfx/"
else
try_remove_file "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz"
try_remove_dir "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}"
try_remove_dir "${PORT_WINE_PATH}/data/dist/proton_ge"
`zenity --error --title "Error..." \
--text "Failed to download WINE: proton_ge.\nCheck internet connection and press OK" \
--no-wrap ` > /dev/null 2>&1 && pw_check_and_download_wine
fi
else
`zenity --error --title "Error..." \
--text "Failed to download WINE: proton_ge.\nCheck internet connection and press OK" \
--no-wrap ` > /dev/null 2>&1 && pw_check_and_download_wine
fi
fi
fi
}

View File

@ -4,7 +4,7 @@
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc}
if [ "${update_loc}" = "RUS" ]
if [ "${update_loc}" = "RUS" ]
then
export inst_set="Выбор"
@ -18,7 +18,7 @@ then
export ss_ogl_1="Использовать OpenGL. (DirectX в OpenGL)"
export ss_ogl_2="Использовать VKD3D. ( DX12 в vulkan)"
export ss_ogl_3="Использовать DXVK и D9VK. (DX9-DX11 в Vulkan и выключить DX12)"
export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?"
export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?"
export inst_succ="Установка завершена успешно!"
@ -36,8 +36,10 @@ then
export scripts_upd5="Напомнить позже"
export scripts_upd6="Больше не напоминать"
export port_clear_pfx="Вы действительно хотите очистить префикс PortProton?"
export port_del1="Удаление $portname"
export port_del2="Вы действительно хотите удалить $portname,\nс установленным в него клиентом?\n"
export port_del2="Вы действительно хотите полностью удалить PortProton?"
export port_del3="Удалить?!"
export port_del4="Нет, не удалять!"
export port_del5="Да, удалить!"
@ -98,7 +100,7 @@ then
export loc_scripts_update=" Обновление базы данных для игр\n и программ успешно завершено.\n\n Перезапустите ${portname}."
export loc_edit_db="Изменить файл настроек для"
elif [ "${update_loc}" = "ENG" ]
elif [ "${update_loc}" = "ENG" ]
then
export inst_set="Sett..."
@ -130,8 +132,10 @@ then
export scripts_upd5="Remind me later"
export scripts_upd6="Do not remind me"
export port_clear_pfx="Do you want to clear prefix in PortProton?"
export port_del1="Remove $portname"
export port_del2="Are you sure you want to delete the ${portname}?\n"
export port_del2="Are you sure you want to delete the PortProton"
export port_del3="Remove?!"
export port_del4="No!"
export port_del5="Yes!"

View File

@ -17,7 +17,7 @@ export WINEDLLOVERRIDES="xinput1_3,d3dcompiler_43=n,b"
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -36,4 +36,4 @@ export WINEDLLOVERRIDES="xinput1_3,d3dcompiler_43=n,b"
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -15,7 +15,7 @@ export PW_VULKAN_USE=dxvk
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -38,4 +38,4 @@ export PULSE_LATENCY_MSEC=90 # Fix crackling audio in games
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_LOG=1 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -5,16 +5,19 @@
#Battle.net.exe
#Rating=5
################################################
##export PW_VULKAN_USE=dxvk
export PW_COMMENT_DB="We recommend using PROTON_GE + DXVK!"
export PW_WINE_USE=proton_ge
export PW_VULKAN_USE=dxvk
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="locationapi="
export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43"
export PW_WINDOWS_VER=10
export PW_NVAPI_DISABLE=1
export PW_USE_NVAPI=0
ADD_IN_START_PORTWINE () {
add_in_start_portwine () {
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/ProgramData/Agent/data"
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache"
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
try_remove_file "${PORT_WINE_PATH}/data/pfx/drive_c/windows/Fonts/sourcehansans.ttc"
}
sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${WINEPREFIX}/user.reg"
}

View File

@ -0,0 +1,33 @@
#!/bin/bash
#Author: kosta
#Biomutant.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=vkd3d
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019" # 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_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,38 @@
#!/bin/bash
#Author: user
#Control_DX11.exe
#Rating=1-5
########################################################
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"
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##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_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,38 @@
#!/bin/bash
#Author: user
#Control_DX12.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=vkd3d
export PW_COMMENT_DB="Control (DX12)"
##export PW_DXR_ON=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"
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -13,7 +13,7 @@ export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe="
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=1
##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_HIDE_NVIDIA_GPU=0
@ -32,4 +32,4 @@ export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
#ADD_IN_START_PORTWINE () { "${PW_RUNTIME}" "$WINESERVER" -w }
#add_in_start_portwine () { "${pw_runtime}" "$WINESERVER" -w }

View File

@ -11,7 +11,7 @@ export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronizatio
#export PW_VULKAN_NO_ASYNC=1
#export PW_USE_TERMINAL=1
#export PW_OLD_GL_STRING=0
#export PW_NVAPI_DISABLE=1
#export PW_USE_NVAPI=0
#export PW_VKD3D_FEATURE_LEVEL=0
#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_HIDE_NVIDIA_GPU=0

View File

@ -0,0 +1,33 @@
#!/bin/bash
#Author: xuser
#DaysGone.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019" # 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_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
export PW_NO_FSYNC=0 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -7,14 +7,14 @@ export PW_VULKAN_USE=0
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -28,4 +28,4 @@ export PW_VULKAN_USE=0
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -6,9 +6,3 @@
export PW_VULKAN_USE=dxvk
export LAUNCH_PARAMETERS=""
export PW_DLL_INSTALL=""
ADD_IN_START_PORTWINE ()
{
${PW_XTERM} wget -c -T 3 --output-document="${PORT_WINE_TMP_PATH}/wine-mono-5.1.1.2_ED-x86.msi" "https://github.com/redmcg/wine-mono/releases/download/wine-mono-5.1.1.2_ED/wine-mono-5.1.1.2_ED-x86.msi"
${PW_XTERM} "${WINELOADER}" msiexec /i "${PORT_WINE_TMP_PATH}/wine-mono-5.1.1.2_ED-x86.msi"
}

View File

@ -0,0 +1,32 @@
#!/bin/bash
#Author: fff555w
#Esprit Games.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
##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_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,39 @@
#!/bin/bash
#Author: xuser
#FL.exe
#FL64.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=0
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
export WINEDLLOVERRIDES="FLEngine,FLEngine_x64=n"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_DXVK_VER=1.8.1
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=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_FORCE_DISABLED_GAMEMOD=1 # 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
##add_in_start_portwine () { commands ; }

View File

@ -11,7 +11,7 @@ export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronizatio
export PW_DXVK_ASYNC=0
#export PW_USE_TERMINAL=0
export PW_OLD_GL_STRING=1
#export PW_NVAPI_DISABLE=1
#export PW_USE_NVAPI=0
#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_HIDE_NVIDIA_GPU=0
#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT

View File

@ -7,14 +7,14 @@
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -31,4 +31,4 @@
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,36 @@
#!/bin/bash
#Author: nixon
#farcry3_d3d11.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
#export PW_MANGOHUD=1
export PW_DLL_INSTALL="d3dx11_42 d3dx11_43"
#export WINEDLLOVERRIDES="blabla=n,b"
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,36 @@
#!/bin/bash
#Author: nixon
#farcry3.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=0
#export PW_DLL_INSTALL=""
#export PW_MANGOHUD_DLSYM=1
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##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_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,34 @@
#!/bin/bash
#Author: nixon
#FarCry4.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
export PW_DLL_INSTALL="d3dcompiler_43 d3dcompiler_47" # Install DDL in port prefix (used winetricks)
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,7 @@
#!/bin/bash
#Author: garrett
#ForzaHorizon4.exe
#Rating=5
################################################
export PW_DLL_INSTALL="vcrun2019"
export PW_VULKAN_USE=vkd3d

View File

@ -6,6 +6,5 @@
export PW_VULKAN_USE=dxvk
export PW_NO_ESYNC=1
export PW_NO_FSYNC=1
export LAUNCH_PARAMETERS="-nomemrestrict -norestrictions -percentvidmem 100 -availablevidmem 2048 -novblank" # Change -availablevidmem 2048 if you have less than 2 Gb video memory
##export RADV_DEBUG=nodcc # Enable if you have Big Navi videocard (Radeon RX 60xx)
export LAUNCH_PARAMETERS="('"-nomemrestrict"' '"-norestrictions"' '"-percentvidmem 100"' '"-availablevidmem 2048"' '"-noprecache"' '"-novblank"' '"-heapsize 2097152"')" # Additional launch options

View File

@ -6,8 +6,8 @@
################################################
export WINEDLLOVERRIDES="galaxycommunication.exe=n;libglesv2="
export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated"
export PW_DLL_INSTALL="vcrun2017 vcrun6 mfc140"
ADD_IN_START_PORTWINE ()
export PW_DLL_INSTALL="vcrun2019 mfc140"
add_in_start_portwine ()
{
if [ -e "${WINEPREFIX}/drive_c/users/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" ] ; then
sed -i 's/"featureOverlay" : true,/"featureOverlay" : false,/' "${WINEPREFIX}/drive_c/${USER}/steamuser/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json"

View File

@ -0,0 +1,7 @@
#!/bin/bash
#Author:
#Game-TS3.exe
#Rating=5
################################################
export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""

View File

@ -7,4 +7,4 @@ export PW_VULKAN_USE=vkd3d
export LAUNCH_PARAMETERS=""
export PW_DXGI_FROM_DXVK=1
#export MANGOHUD=1
#export PW_NVAPI_DISABLE=1 # for nvidia gpu
#export PW_USE_NVAPI=0 # for nvidia gpu

View File

@ -12,7 +12,7 @@ export PW_VULKAN_USE=dxvk #dxvk or vkd3d
#export PW_VULKAN_NO_ASYNC=1
#export PW_USE_TERMINAL=0
#export PW_OLD_GL_STRING=0
#export PW_NVAPI_DISABLE=1
#export PW_USE_NVAPI=0
#export PW_VKD3D_FEATURE_LEVEL=0
#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_HIDE_NVIDIA_GPU=0

View File

@ -7,14 +7,14 @@ export PW_VULKAN_USE=dxvk
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -28,4 +28,4 @@ export PULSE_LATENCY_MSEC=120 # Fix crackling audio in games
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -1,15 +1,42 @@
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live"
cd "${PATH_TO_GAME}"
if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ]
then
zenity --question --title="Fix for LoL anti-cheat" \
--text='Root rights are required to execute the command: \n"sysctl -w abi.vsyscall32=0" and "sysctl -p"' --no-wrap
if [ "$?" = 1 ]
then
exit 0
#!/bin/bash
#Author: xuser
#LeagueClient.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
export LAUNCH_PARAMETERS="('--launch-product=league_of_legends' '--launch-patchline=live')" # Additional launch options
export PW_WINE_USE=proton_ge
export PW_VULKAN_USE=dxvk
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##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=0 # Do not use eventfd-based in-process synchronization primitives
##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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
export WINEARCH=win32 # defaut = win64
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_x86"
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
add_in_start_portwine () {
if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ] ; then
zenity --question --title="Fix for LoL anti-cheat" \
--text='Root rights are required to execute the command: \n"sysctl -w abi.vsyscall32=0" and "sysctl -p"' --no-wrap
[ "$?" = 1 ] && exit 0
pkexec sh -c 'sysctl -w abi.vsyscall32=0 && sysctl -p'
fi
pkexec sh -c 'sysctl -w abi.vsyscall32=0 && sysctl -p'
fi
sh "${PORT_SCRIPTS_PATH}"/fix_start_lol.sh | zenity --progress --title="Start PortLoL" --text="Please wait, launch is in progress, it may take few minutes" --pulsate --auto-close --auto-kill --width=450 &
}

View File

@ -8,14 +8,14 @@
##export PW_COMMENT_DB="blablabla"
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
export PW_NVAPI_DISABLE=1
export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -34,4 +34,4 @@ export PW_HEAP_DELAY_FREE=1
##export PW_DXGI_FROM_DXVK=1
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -12,7 +12,7 @@ export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefi
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -29,4 +29,4 @@ export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefi
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -12,7 +12,7 @@ export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefi
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -29,4 +29,4 @@ export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefi
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -1,9 +1,7 @@
#!/bin/bash
#Author: test
#Author: vellyn
#MikuMikuDance.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
@ -13,19 +11,16 @@ export PW_VULKAN_USE=dxvk
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_USE_BUILD_IN_DXGI=1
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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=1 # 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=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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
@ -33,6 +28,5 @@ export PW_VULKAN_USE=dxvk
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_LOG=1 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -8,14 +8,14 @@
##export PW_COMMENT_DB="blablabla"
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -34,4 +34,4 @@
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -17,7 +17,7 @@ export PW_DLL_INSTALL="d3dcompiler_42 d3dcompiler_43 d3dx9"
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -40,4 +40,4 @@ export PW_DLL_INSTALL="d3dcompiler_42 d3dcompiler_43 d3dx9"
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_LOG=1 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -15,7 +15,7 @@ export PW_DLL_INSTALL="vcrun2010 vcrun2012 vcrun2017 d3dcompiler_43 d3dcompiler_
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
export PW_NVAPI_DISABLE=1
export PW_USE_NVAPI=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
@ -44,16 +44,16 @@ export PW_NVAPI_DISABLE=1
export STAGING_SHARED_MEMORY=0
#ADD_IN_START_PORTWINE () {
#add_in_start_portwine () {
# export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp"
# if try_download "https://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..."
# 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..."
# pw_stop_progress_bar
# pw_start_progress_bar_cs "Starting the Origin..."
# check_origin_update () {
# while :

View File

@ -6,5 +6,5 @@
#Rating=?
################################################
export PW_VULKAN_USE=dxvk
export PW_DLL_INSTALL="vcrun2017"
export PW_WINDOWS_VER=10
export PW_DLL_INSTALL="vcrun2019"
export PW_WINDOWS_VER=10

View File

@ -10,7 +10,7 @@
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -32,4 +32,4 @@
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_LOG=1 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -16,7 +16,7 @@ export PULSE_LATENCY_MSEC=150
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -39,4 +39,4 @@ export PULSE_LATENCY_MSEC=150
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_LOG=1 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -5,4 +5,3 @@
################################################
export PW_VULKAN_USE=dxvk
export LAUNCH_PARAMETERS=""

View File

@ -0,0 +1,6 @@
#!/bin/bash
#Author: esa
#Singularity.exe
#Rating=1-5
################################################
export PW_DLL_INSTALL="physx"

View File

@ -8,14 +8,14 @@ export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -29,4 +29,4 @@ export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -8,14 +8,14 @@
##export PW_COMMENT_DB="blablabla"
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -34,4 +34,4 @@
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -12,7 +12,7 @@ export PW_DLL_INSTALL="corefonts" # Install DDL in port prefix (used wine
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -29,5 +29,5 @@ export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }
export PW_VULKAN_USE=0

View File

@ -0,0 +1,39 @@
#!/bin/bash
#Author: xuser
#Torchlight.exe
#Rating=1-5
########################################################
export PW_WINE_USE=proton_ge
export PW_VULKAN_USE=dxvk
export ENABLE_VKBASALT=1
export PW_VKBASALT_EFFECTS="FakeHDR:cas:FilmGrain2"
export PW_VKBASALT_FFX_CAS="1"
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##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_VULKAN_USE=vkd3d # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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=0 # Do not use eventfd-based in-process synchronization primitives
##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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -9,14 +9,14 @@
##export PW_COMMENT_DB="blablabla"
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -33,4 +33,4 @@
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -8,14 +8,14 @@
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -31,4 +31,4 @@
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,23 @@
#!/bin/bash
#Author: cefeiko
#WorldOfTanksEnCoreLauncher.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=dxvk
export PW_USE_TERMINAL=0
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet/"
export PW_DLL_INSTALL="vcrun2017 mfc42 vb6run physx dotnet40 " # Install DDL in port prefix (used winetricks)
export PW_COMMENT_DB="World Of Tanks EnCore"
## export DXVK_HUD=fps,devinfo
## export PW_MANGOHUD=1
#####################examples###########################
while [ `pidof -s dotNetFx40_Full_x86_x64.exe` ] ; do
if [ $? -eq 0 ] ; then
sleep 1
elif
export dotnet_pids=`ps -ax | grep mscorsvw.exe | awk '{print $1}' | uniq`
[ ! -z $dotnet_pids ]
kill -n 9 $dotnet_pids
sleep 1
fi
done

View File

@ -3,6 +3,7 @@
#XR_3DA.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=0
export PW_VULKAN_USE=dxvk
export LAUNCH_PARAMETERS="-nointro -noprefetch" # -nointro command line option to skip intro movies
# -noprefetch command line option to shorten load times
#export PW_DLL_INSTALL="vcrun2019 mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9

View File

@ -13,7 +13,7 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # Install DDL in port prefix
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -32,4 +32,4 @@ export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -7,14 +7,14 @@
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -28,5 +28,5 @@
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }
##export DXVK_HUD=fps,devinfo

View File

@ -10,19 +10,23 @@
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_WINE_USE=proton_ge # proton_steam or proton_ge
##export PW_VULKAN_USE=vkd3d # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##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 PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
@ -35,8 +39,6 @@
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
export PW_DLL_INSTALL="vcrun2019 vcrun6 vcrun6sp6 mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9"
##add_in_start_portwine () { commands ; }

View File

@ -15,7 +15,7 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # Install DDL in port prefix
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -34,4 +34,4 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # Install DDL in port prefix
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -5,24 +5,13 @@
#Rating=5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2017 d3dcompiler_47" # Install DDL in port prefix (used winetricks)
export PW_WINE_USE=proton_ge
export PW_VULKAN_USE=dxvk
export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019 d3dcompiler_47" # Install DDL in port prefix (used winetricks)
export WINEDLLOVERRIDES="concrt140,msvcp140,msvcp140_1,msvcp140_2,d3dcompiler_47=n"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_DXVK_VER=1.8.1
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##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 ENABLE_VKBASALT=1
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
@ -43,4 +32,4 @@ export WINEDLLOVERRIDES="concrt140,msvcp140,msvcp140_1,msvcp140_2,d3dcompiler_47
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,27 @@
#!/bin/bash
#Author: xuser
#gfclient.exe
#Rating=1-5
#####################examples###########################
export PW_COMMENT_DB="GameForge\nClient"
export PW_VULKAN_USE=dxvk
export PW_WINE_USE=proton_ge
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019 d3dcompiler_43 d3dcompiler_47" # Install DDL in port prefix (used winetricks)
export WINEDLLOVERRIDES="gfclient0_msvc140=n;ucrtbase=b"
########################################################
#add_in_start_portwine () {
#
#while true; do
# if [ -z "`pgrep GameforgeClient`" ]; then
# sleep 1
# else
# while [ ! -z "`pgrep GameforgeClient`" ] ; do
# killall -s KILL gfservice.exe
# done
# sleep 1
# killall -s KILL gfclient.exe
# break & exit 0
# fi
#done &
#}

View File

@ -13,14 +13,14 @@
##export PW_DXVK_VER=1.8.1
##export PW_VKD3D_VER=2.2
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_DXVK_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -39,4 +39,4 @@
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -20,7 +20,7 @@
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=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
@ -41,4 +41,4 @@
##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
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -11,7 +11,7 @@ export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""
export MESA_EXTENSION_MAX_YEAR=2002
export __GL_ExtensionStringVersion=17700
ADD_IN_START_PORTWINE ()
add_in_start_portwine ()
{
if [ ! -e "$PATH_TO_GAME/0_Proton_PW_MoHAA" ] ; then
touch "$PATH_TO_GAME/0_Proton_PW_MoHAA" && mv "$PATH_TO_GAME/main/newconfig.cfg" "$PATH_TO_GAME/main/newconfig.cfg.bak" && mv "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/mainta/newconfig.cfg" "$PATH_TO_GAME/mainta/newconfig.cfg.bak" && mv "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/maintt/newconfig.cfg" "$PATH_TO_GAME/maintt/newconfig.cfg.bak" && mv "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg.bak" &&

View File

@ -0,0 +1,35 @@
#!/bin/bash
#Author: xuser
#osu!.exe
#osu!install.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=0
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet"
export PW_DLL_INSTALL="dotnet40"
export PW_COMMENT_DB="OSU!"
#####################examples###########################
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_NVAPI_DISABLE=1
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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_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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -12,7 +12,7 @@ export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefix (used wi
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -26,4 +26,4 @@ export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefix (used wi
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
#export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -13,14 +13,14 @@
##export PW_DXVK_VER=1.8.1
##export PW_VKD3D_VER=2.2
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_DXVK_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -39,4 +39,4 @@
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -8,23 +8,24 @@
#export PW_COMMENT_DB="blablabla"
################################################
export PW_VULKAN_USE=0 #dxvk or vkd3d
export PW_WINE_USE=proton_steam
#export WINEDLLOVERRIDES="blabla=n,b"
#export PW_LOG=0 # Enable debug mode fo terminal
#export PW_LOG=0 # Enable debug mode fo terminal
export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
#export PW_VULKAN_NO_ASYNC=1
#export PW_USE_TERMINAL=0
#export PW_OLD_GL_STRING=0
#export PW_NVAPI_DISABLE=1
#export PW_USE_NVAPI=0
#export PW_VKD3D_FEATURE_LEVEL=0
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_HIDE_NVIDIA_GPU=0
#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
export PW_WINEDBG_DISABLE=1
export PW_USE_GAMEMODE=1 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=0 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
export PW_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="vcrun6 mfc42 vcrun6sp6 mfc120 vcrun2013"
export PW_DLL_INSTALL="mfc42 vcrun2012 mfc120 vcrun2013"
#export LAUNCH_PARAMETERS="-d3d9"
export PW_GUI_DISABLED_CS=1
#export PW_WINDOWS_VER=XP # Set windows version 10, 7 or XP
#export PW_WINDOWS_VER=XP # Set windows version 10, 7 or XP

View File

@ -1,8 +1,12 @@
#!/bin/bash
#Author: MrM0der
#steam.exe
#Author: Cefeiko
#steam.exe
#Rating=5
################################################
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="libglesv2="
export LAUNCH_PARAMETERS"-no-cef-sandbox"
export PW_COMMENT_DB="Steam"
export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019 d3dcompiler_46"
export WINEDLLOVERRIDES="libglesv2,lsteamclient="
export LAUNCH_PARAMETERS="-no-cef-sandbox"
export PW_VULKAN_USE=dxvk
export PW_WINE_USE=proton_ge

View File

@ -0,0 +1,32 @@
#!/bin/bash
#Author: xuser
#trine.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="physx" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##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=0 # Do not use eventfd-based in-process synchronization primitives
##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=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }

View File

@ -9,8 +9,8 @@ export PW_COMMENT_DB="Wargaming Game Center"
export LAUNCH_PARAMETERS="--disable-gpu" # Additional launch options
#export PW_USE_TERMINAL=1
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
#export PW_NVAPI_DISABLE=1
#export WINEDLLOVERRIDES="ucrtbase,xaudio2_7,xaudio2_8=n"
export PW_DLL_INSTALL="lucida" # Install DDL in port prefix (used winetricks)
#export PW_USE_NVAPI=0
export WINEDLLOVERRIDES="ucrtbase,xaudio2_7,xaudio2_8=n,b"
export PW_DLL_INSTALL="lucida vcrun2019" # Install DDL in port prefix (used winetricks)
##export PW_GUI_DISABLED_CS=1
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG

View File

@ -0,0 +1,37 @@
#!/bin/bash
#Author: xuser
#witcher3.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##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_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
export PW_DXR_ON=0
export PW_VULKAN_NO_ASYNC=0
##export PW_NVAPI_DISABLE=1
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_FFX_CAS="0.5"
export PW_NO_FSYNC=0
export PW_NO_ESYNC=1
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
export PW_NO_WRITE_WATCH=0
export PW_HEAP_DELAY_FREE=0
export PW_WINE_ALLOW_XIM=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE=0
export PW_USE_TERMINAL=0
##ADD_IN_START_PORTWINE () { commands ; }
export PW_WINE_USE=proton_ge
export PW_USE_NVAPI=0
export PW_GUI_DISABLED_CS=0

View File

@ -6,7 +6,7 @@
export PW_VULKAN_USE=dxvk
export PW_USE_TERMINAL=1
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet"
export PW_DLL_INSTALL="dotnet40 vcrun2017 vcrun6 mfc42 vb6run physx"
export PW_DLL_INSTALL="dotnet40 vcrun2017 mfc42 vb6run physx"
export PW_COMMENT_DB="World Of Tanks EnCore Installer"
## export DXVK_HUD=fps,devinfo
## export PW_MANGOHUD=1
@ -38,4 +38,3 @@ PW_INSTALL_DOTNET40 () {
done
}
PW_INSTALL_DOTNET40 &

View File

@ -8,14 +8,14 @@ export PW_DLL_INSTALL="vcrun2013 vcrun2017 dotnet472"
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_NVAPI_DISABLE=1
##export PW_USE_NVAPI=0
##export PW_VKD3D_FEATURE_LEVEL=0
##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_HIDE_NVIDIA_GPU=0
@ -29,4 +29,4 @@ export PW_DLL_INSTALL="vcrun2013 vcrun2017 dotnet472"
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,18 @@
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama Launcher-Setup.exe"
start_portwine
if try_download "https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the Ankama Launcher. Please wait..."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files/Ankama/Ankama Launcher/Ankama Launcher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="AnkamaLauncher"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,17 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.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 "http://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_kill_autostart Battle.net.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"`
PW_STOP_PROGRESS
portwine_create_shortcut
try_remove_file "${PW_AUTOINSTALL_EXE}"
fi
stop_portwine

View File

@ -0,0 +1,19 @@
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BethesdaNetLauncher_Setup.exe"
start_portwine
if try_download "https://download.cdp.bethesda.net/BethesdaNetLauncher_Setup.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the BethesdaNetLauncher. Please wait..."
pw_kill_autostart BethesdaNetLauncher.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Bethesda.net Launcher/BethesdaNetLauncher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Bethesda.net"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,26 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/q" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
start_portwine
if try_download "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing Epic Games Launcher. Please wait..."
pw_kill_autostart EpicGamesLauncher.exe &
pw_run msiexec /i "${PW_AUTOINSTALL_EXE}" &
sleep 10
if [ ! -z `pgrep msiexec* | head -n 1` ] ; then
while [ ! -z `pgrep msiexec* | head -n 1` ] || [ ! -z `pgrep rundll32* | head -n 1` ] || [ ! -z `pgrep -a wrap | grep ${portname} | head -n 1` ]
do
[ ! -z `pgrep rundll32* | head -n 1` ] && kill -n 9 `pgrep rundll32* | head -n 1` && echo "Kill rundll32.exe"
sleep 5
done
fi
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Epic Games/Launcher/Portal/Binaries/Win32/EpicGamesLauncher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,22 @@
#!/bin/bash
# Author: cefeiko
########################################################################
export PW_WINDOWS_VER=10
export PW_DLL_INSTALL="vcrun2017"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EveLauncher-1892908.exe"
start_portwine
if try_download "https://binaries.eveonline.com/EveLauncher-1892908.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the EVE Launcher. Please wait..."
if [ ! -f "$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe" ] ; then
try_remove_dir "$WINEPREFIX/drive_c/Games/EVE Online"
dd if="${PW_AUTOINSTALL_EXE}" of="${PW_AUTOINSTALL_EXE}".7z bs=1M skip=31646603 count=196171208 iflag=skip_bytes,count_bytes
"$pw_7z" x "${PW_AUTOINSTALL_EXE}".7z -o"$WINEPREFIX/drive_c/Games/EVE Online"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${PW_AUTOINSTALL_EXE}".7z
fi
portwine_exe="$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe"
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,37 @@
#!/bin/bash
# Author: chal55rus (Sergey P.), cefeiko, Castro-Fidel (PortWINE-Linux.ru)
##########################################################################
pw_shutdown_please () {
if [ "$PW_USE_RUNTIME" != 1 ]
then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`"
else
sleep 10
while true ; do
if [ -z "`ps aux | grep -v grep | grep -wm 1 "$1" | awk '{print $2}'`" ] && [ ! -z "`pgrep wrap | head -n 1`" ]; then
echo -e "PID "$1" not found"
sleep 1
else
killall -s TERM gfclient.exe
killall -s TERM GameforgeInstaller.exe
break
fi
done
fi
}
export LAUNCH_PARAMETERS=("")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GameforgeInstaller.exe"
start_portwine
if try_download "https://raw.githubusercontent.com/WarfaceZ/lutris-clients/master/GameforgeInstaller.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Gameforge-Client. Please wait..."
pw_shutdown_please SparkWebHelper.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/GameforgeClient/gfclient.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="GameforgeClient"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,19 @@
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export LAUNCH_PARAMETERS=("/S" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GlyphInstall.exe"
start_portwine
if try_download "http://download.dyn.triongames.com/GlyphInstall.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the GlyphClient. Please wait..."
pw_kill_autostart GlyphClient.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Glyph/GlyphClient.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="GlyphClient"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,18 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_2.0.41.150.exe"
start_portwine
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.41.150/setup_galaxy_2.0.41.150.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the GOG Galaxy. Please wait..."
pw_kill_autostart GalaxyClient.* &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/GOG Galaxy/GalaxyClient.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,19 @@
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export LAUNCH_PARAMETERS=("")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/MyGamesLoader.exe"
start_portwine
if try_download "https://static.gc.my.games/MyGamesLoader.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the My.Games. Please wait..."
pw_kill_autostart GameCenter.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/GameCenter/GameCenter.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="MY.GAMES"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,18 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/silent" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
start_portwine
if try_download "https://download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the Origin. Please wait..."
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
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,21 @@
#!/bin/bash
# Author: cefeiko
########################################################################
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet"
export PW_DLL_INSTALL="dotnet40"
mkdir -p "${WINEPREFIX}/drive_c/Program Files (x86)/OSU/"
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.exe"
start_portwine
if try_download "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the OSU!. Please wait..."
if [ -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" ]; then
mv -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!.exe"
fi
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/OSU/osu!.exe"
portwine_create_shortcut
pw_run "${PW_AUTOINSTALL_EXE}"
pw_stop_progress_bar
kill_portwine
fi
stop_portwine

View File

@ -0,0 +1,17 @@
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Rockstar-Games-Launcher.exe"
start_portwine
if try_download "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Rockstar-Games-Launcher. Please wait..."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files/Rockstar Games/Launcher"
portwine_exe="$WINEPREFIX/drive_c/Program Files/Rockstar Games/Launcher/Launcher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Rockstar"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,22 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"
start_portwine
if try_download "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_cs "Installing the Steam. Please wait..."
pw_kill_autostart steam.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
if [ -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" ]
then mv -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" "$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe"
fi
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="STEAM_PP"
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,18 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"
start_portwine
if try_download "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_cs "Installing the Ubisoft Connect. Please wait..."
pw_kill_autostart UbisoftConnect.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Ubisoft Game Launcher/UbisoftConnect.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

View File

@ -0,0 +1,19 @@
#!/bin/bash
# Author: cefeiko
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
[ "${update_loc}" = "RUS" ] && export WGC_LOC=RU || export WGC_LOC=EU
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe"
start_portwine
if try_download "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
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"
export PORTWINE_CREATE_SHORTCUT_NAME="Wargaming Game Center"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
portwine_create_shortcut
fi
stop_portwine

View File

@ -1,7 +0,0 @@
#!/bin/bash
# Author: PortWINE-Linux.ru
. "$(dirname $(readlink -f "$0"))/runlib"
KILL_PORTWINE
if [ -e "${PORT_WINE_TMP_PATH}/pw_vulkan" ]; then
rm -f "${PORT_WINE_TMP_PATH}/pw_vulkan"
fi

View File

@ -1,6 +1,6 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
# Development assistants: Cefeiko; Rus_Nor; gavr; RidBowt; Dezert1r
# Development assistants: Cefeiko; Rus_Nor; gavr; RidBowt; Dezert1r; Taz_mania; Anton_Famillianov
########################################################################
echo '
████─████─████─███─█───█─███─█──█─███
@ -15,292 +15,61 @@ if [ "${s_install}" != "1" ] && [ ! -x "`which "zenity" 2>/dev/null`" ];then
echo "You will need to install: zenity, and restart the port."
xdg-open "http://portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0
fi
pw_ping_test () {
ping -w3 -c1 github.com &> /dev/null
[ "$?" == "0" ] && return 0 || return 1
}
print_error () {
echo "ERROR: $@"
}
print_info () {
echo "INFO: $@"
}
print_var () {
for vp in $@ ; do echo "${vp}=${!vp}" ; done
}
try_copy_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for copy" && return 1
elif [ -z "$2" ] ; then print_error "no way to copy file $1" && return 1
else
cp -f "$1" "$2"
if [ "$?" != 0 ]
then print_error "failed to copy file $1 to $2" || return 1
else print_info "copy file $1 to $2 was successful" || return 0
fi
fi
}
try_copy_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy"
elif [ -z "$2" ] ; then print_error "no way to copy directory $1"
else
cp -fr "$1" "$2"
[ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0
fi
return 1
}
try_remove_file () {
if [ -f "$1" ] ; then
rm -f "$1"
[ "$?" != 0 ] && print_error "failed to remove file $1" || return 0
fi
return 1
}
try_remove_dir () {
if [ -d "$1" ] ; then
rm -fr "$1"
[ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0
fi
return 1
}
try_force_link_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link file $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0
fi
return 1
}
try_force_link_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link directory $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0
fi
return 1
}
try_download () {
set -o pipefail
wget -c -t 5 -T 2 "$1" --output-document="$2" 2>&1 | \
sed -u 's/^[a-zA-Z\-].*//; s/.* \{1,2\}\([0-9]\{1,3\}\)%.*/\1\n#Downloading... \1%/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90
[ "${PIPESTATUS[0]}" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0
}
try_download_silent () {
wget -c -t 5 -T 2 "$1" --output-document="$2"
[ "$?" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0
}
zenity_error_download () {
`zenity --error --title "Error..." --text "You will need to check internet connettion,\nand press OK for repeet download" --no-wrap ` > /dev/null 2>&1
}
create_new_dir () {
if [ ! -d "$1" ] ; then
mkdir -p "$1"
fi
}
var_winedlloverride_update () {
if [ ! -z "${WINEDLLOVERRIDES}" ]
then export WINEDLLOVERRIDES="${1};${WINEDLLOVERRIDES}"
else export WINEDLLOVERRIDES="${1}"
fi
}
var_vkd3d_config_update () {
if [ ! -z "${VKD3D_CONFIG}" ]
then export VKD3D_CONFIG="${1};${VKD3D_CONFIG}"
else export VKD3D_CONFIG="${1}"
fi
}
unpack_tar_xz () {
set -o pipefail
tar -Jxvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0
}
pw_mangohud_check () {
export RUN_MANGOHUD=""
unset MANGOHUD
unset MANGOHUD_DLSYM
if [ -x "`which mangohud 2>/dev/null`" ] && [ "${PW_MANGOHUD}" == "1" ] ; then
if [ "${PW_VULKAN_USE}" = "0" ]; then
export MANGOHUD_DLSYM=1
export RUN_MANGOHUD=mangohud
else
export MANGOHUD=1
fi
else
export DISABLE_MANGOHUD=1
fi
}
pw_clear_pfx () {
try_remove_file "${WINEPREFIX}/system.reg"
try_remove_file "${WINEPREFIX}/user.reg"
try_remove_file "${WINEPREFIX}/userdef.reg"
try_remove_file "${WINEPREFIX}/winetricks.log"
try_remove_file "${WINEPREFIX}/.update-timestamp"
try_remove_file "${WINEPREFIX}/drive_c/.windows-serial"
try_remove_dir "${WINEPREFIX}/drive_c/windows/"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Setup"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Windows"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/WindowsTask"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Package Cache"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Temporary Internet Files"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/wine_gecko"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Temporary Internet Files"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/wine_gecko"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Internet Explorer"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows Media Player"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows NT"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Common Files"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Internet Explorer"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Common Files"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows Media Player"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows NT"
try_remove_dir "${PORT_WINE_TMP_PATH}/mesa_shader_cache"
rm -f "${PORT_WINE_TMP_PATH}"/*.bin
rm -f "${PORT_WINE_TMP_PATH}"/*.foz
}
sszen() {
zenity --progress --title="Settings..." --text="Updating parameters" --pulsate --auto-close --width=500 --height=90 --no-cancel
}
PW_START_PROGRESS_BAR_CS () {
"${pw_yad}" --progress --progress-text="$@" --pulsate --close-on-unfocus \
--no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 &
echo ""
}
PW_START_PROGRESS_BAR_BLOCK () {
"${pw_yad}" --progress --progress-text="$@" --pulsate \
--no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 &
echo ""
}
PW_STOP_PROGRESS_BAR () {
while [ ! -z "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ]
do kill -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1`
done
}
PW_LOAD_LIBS () {
if [ ! -e "${PW_WINELIB}/run-in-soldier" ] || [ ! -e "${PW_WINELIB}/runtime/bin/yad" ] || [ ! -e "${PW_WINELIB}/runtime/lib/p7zip/7zr" ] \
|| [ ! -e "${PW_WINELIB}/runtime/bin/vkcube" ] || [ ! -e "${PW_WINELIB}/runtime/bin/xterm" ] || \
[ -e "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ] ; then
print_info "Download and install libraries..."
if try_download "https://github.com/Castro-Fidel/PortWINE/releases/download/libs${pw_libs_ver}/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ; then
if unpack_tar_xz "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/" ; then
try_remove_file "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz"
else
try_remove_dir "${HOME}/.PortWINE/libs${pw_libs_ver}"
try_remove_file "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz"
`zenity --error --title "Error..." \
--text "Failed to install runtime libraries.\nCheck internet connection and press OK" \
--no-wrap ` > /dev/null 2>&1 && PW_LOAD_LIBS
fi
else
`zenity --error --title "Error..." \
--text "Failed to download runtime libraries.\nCheck internet connection and press OK" \
--no-wrap ` > /dev/null 2>&1 && PW_LOAD_LIBS
fi
fi
export pw_yad="${PW_WINELIB}/runtime/bin/yad"
export pw_zstd="${PW_WINELIB}/runtime/bin/zstd"
export pw_7z="${PW_WINELIB}/runtime/lib/p7zip/7zr"
if [ -x "`which xterm 2>/dev/null`" ]; then
export SYS_XTERM=`which xterm`
export PW_XTERM="${SYS_XTERM} -geometry 159x37 -e"
else
export PW_XTERM="${PW_WINELIB}/runtime/bin/xterm -geometry 159x37 -e"
fi
}
. "$(dirname $(readlink -f "$0"))/functions_helper"
PW_DOWNLOAD_MONO () {
if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}" ] ; then
export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${mono_ver}/wine-mono-${mono_ver}-x86.tar.xz"
echo "######################################################"
print_info "Download and install wine mono..."
if try_download "${url_mono}" "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" ; then
create_new_dir "${HOME}/.PortWINE/mono"
if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" "${HOME}/.PortWINE/mono/"
then
try_remove_dir "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}-x86"
zenity_error_download && PW_DOWNLOAD_MONO
fi
try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz"
else
zenity_error_download && PW_DOWNLOAD_MONO
fi
fi
}
PW_DOWNLOAD_GECKO () {
if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" ] ; then
export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86.tar.xz"
echo "######################################################"
echo "Download and install wine gecko x86..."
if try_download "${url_gecko_x86}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" ; then
create_new_dir "${HOME}/.PortWINE/gecko"
if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" "${HOME}/.PortWINE/gecko/"
then
try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86"
zenity_error_download && PW_DOWNLOAD_GECKO
fi
try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz"
else
zenity_error_download && PW_DOWNLOAD_GECKO
fi
fi
if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" ] ; then
export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86_64.tar.xz"
echo "######################################################"
echo "Download and install wine gecko x86_64..."
if try_download "${url_gecko_x86_64}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" ; then
create_new_dir "${HOME}/.PortWINE/gecko"
if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" "${HOME}/.PortWINE/gecko/"
then
try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64"
zenity_error_download && PW_DOWNLOAD_GECKO
fi
try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz"
else
zenity_error_download && PW_DOWNLOAD_GECKO
fi
fi
}
START_PORTWINE ()
{
start_portwine () {
pw_check_and_download_wine "${PW_WINE_USE}"
pw_tray_icon &
if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e"
# elif [ -x "`which gnome-terminal 2>/dev/null`" ]; then export PW_TERM="gnome-terminal -- /bin/bash" ???
elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e"
elif [ -x "`which xterm 2>/dev/null`" ]; then export PW_TERM="${PW_XTERM}"
else export PW_TERM="${PW_XTERM}"
fi
PW_START_PROGRESS_BAR_CS "Start ${portname}... Please wait..."
if [ ! -f "${HOME}/.Xresources" ]; then
cp -f "${PORT_SCRIPTS_PATH}/.Xresources" "${HOME}"
xrdb -merge "${HOME}/.Xresources"
fi
export WINELOADER="${WINEDIR}/bin/wine"
export WINESERVER="${WINEDIR}/bin/wineserver"
export WINEDLLPATH="${WINEDIR}/lib/wine"
pw_start_progress_bar_cs "Start ${portname}... Please wait..."
export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz
export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz
export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz
export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz
export STAGING_SHARED_MEMORY=1
export PW_FORCE_LARGE_ADDRESS_AWARE=1
create_new_dir "${WINEDIR}/share/wine/"
try_remove_dir"${WINEDIR}"/share/wine/gecko
try_remove_dir"${WINEDIR}"/share/wine/mono
try_remove_dir "${WINEDIR}"/share/wine/gecko
try_remove_dir "${WINEDIR}"/share/wine/mono
try_force_link_dir "${HOME}/.PortWINE/gecko" "${WINEDIR}"/share/wine/
try_force_link_dir "${HOME}/.PortWINE/mono" "${WINEDIR}"/share/wine/
if [ -d ${PATH_TO_GAME} ]
then export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine:${PATH_TO_GAME}"
else export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
fi
if [ ! -z "${PATH}" ]
then export PATH="${WINEDIR}/bin:${PATH}"
else export PATH="${WINEDIR}/bin"
fi
export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib"
if [ "${PW_USE_RUNTIME}" = 0 ] ; then
export PW_RUNTIME=""
export pw_runtime=""
echo "RUNTIME is disabled"
else
export PW_RUNTIME="${PW_WINELIB}/run-in-soldier --share-home --filesystem="${PORT_WINE_PATH}" --runtime=runtime --"
export PW_AND_RUNTIME_LIBRARY_PATH="/overrides/lib/x86_64-linux-gnu/:/overrides/lib/x86_64-linux-gnu/aliases/:/overrides/lib/i386-linux-gnu/:/overrides/lib/i386-linux-gnu/aliases/:"
if [ ! -z "${PW_SANDBOX_HOME_PATH}" ] && [ -d "${PW_SANDBOX_HOME_PATH}" ]; then
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--unshare-home \
--home="${PW_SANDBOX_HOME_PATH}" \
--runtime=${PW_WINELIB}/runtime \
--"
else
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--share-home \
--runtime=${PW_WINELIB}/runtime \
--"
fi
export PRESSURE_VESSEL_VARIABLE_DIR="${PW_WINELIB}/runtime"
export PRESSURE_VESSEL_REMOVE_GAME_OVERLAY=0
export PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=1
export PRESSURE_VESSEL_GC_RUNTIMES=0
export PRESSURE_VESSEL_GC_LEGACY_RUNTIMES=0
export PRESSURE_VESSEL_RUNTIME_BASE="${PW_WINELIB}"
export PRESSURE_VESSEL_PREFIX="${PW_WINELIB}/pressure-vessel"
unset PRESSURE_VESSEL_FILESYSTEMS_RO
unset PRESSURE_VESSEL_FILESYSTEMS_RW
for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do
@ -315,22 +84,14 @@ START_PORTWINE ()
else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}"
fi
done
ln -sf "${WINEDIR}"/lib64/*so* "${PW_WINELIB}/runtime/lib/x86_64-linux-gnu/"
ln -sf "${WINEDIR}"/lib/*so* "${PW_WINELIB}/runtime/lib/i386-linux-gnu/"
if [ ! -f "${PW_WINELIB}/runtime/etc/os-release" ]
then try_force_link_file "${PW_WINELIB}/runtime/lib/os-release" "${PW_WINELIB}/runtime/etc/os-release"
fi
echo "RUNTIME is enabled"
fi
export WINE="${WINELOADER}"
export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz
export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz
export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz
export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz
export GST_PLUGIN_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0"
export STAGING_SHARED_MEMORY=1
export PW_FORCE_LARGE_ADDRESS_AWARE=1
if [ ! -z "${PW_LOG}" ] && [ "${PW_LOG}" != 0 ] ; then
export WINEDEBUG="fixme+all,err+loaddll,err+dll,err+file,err+reg"
export WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg"
export DXVK_LOG_LEVEL="info"
export VKD3D_DEBUG="warn"
export WINE_MONO_TRACE="E:System.NotImplementedException"
@ -340,6 +101,7 @@ START_PORTWINE ()
export VKD3D_DEBUG="none"
export DXVK_LOG_PATH="none"
fi
export GST_DEBUG="WARNING:0"
#default wine-mono override for FNA games
export WINE_MONO_OVERRIDES="Microsoft.Xna.Framework.*,Gac=n"
@ -370,7 +132,16 @@ START_PORTWINE ()
export RADV_DEBUG="llvm"
var_vkd3d_config_update single_queue
fi
if [ ! -z "${PW_NVAPI_DISABLE}" ] && [ "${PW_NVAPI_DISABLE}" != 0 ] ; then
if [ ! -z "${PW_USE_NVAPI}" ] && [ "${PW_USE_NVAPI}" == 1 ] && [ -d "${WINEDIR}/lib/wine/nvapi/" ]
then
if [ "${WINEARCH}" != "win32" ] ; then
try_copy_file "${WINEDIR}/lib/wine/nvapi/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/"
else
try_copy_file "${WINEDIR}/lib/wine/nvapi/nvapi.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
var_winedlloverride_update "nvapi,nvapi64=n"
else
var_winedlloverride_update "nvapi,nvapi64="
fi
if [ ! -z "${PW_WINEDBG_DISABLE}" ] && [ "${PW_WINEDBG_DISABLE}" != 0 ] ; then
@ -390,9 +161,6 @@ START_PORTWINE ()
if [ ! -z "${PW_DXR_ON}" ] && [ "${PW_DXR_ON}" != 0 ] ; then
var_vkd3d_config_update dxr
fi
create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache"
export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache
export DXVK_STATE_CACHE=1
export optirun_on=""
export check_optimus_manager=
export PW_NVIDIA="$(lspci | grep NVIDIA)"
@ -417,10 +185,6 @@ START_PORTWINE ()
if [ ! -d "${PORT_WINE_TMP_PATH}"/gl_shader_cache ] ; then
mkdir -p "${PORT_WINE_TMP_PATH}"/gl_shader_cache
fi
export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE=1
export __GL_SHADER_DISK_CACHE_SIZE=1000000000
export __GL_DXVK_OPTIMIZATIONS=1
else
export DRI_PRIME=1
fi
@ -438,9 +202,11 @@ START_PORTWINE ()
killall xneur
export int_xneur=1
fi
export PW_XKBD="$(setxkbmap -query | grep -w ru | awk '{print($2)}')"
if [ ! -z ${PW_XKBD} ]; then
setxkbmap us,ru
if [ ! -z "${PW_XKBD_RU_HACK}" ] && [ "${PW_XKBD_RU_HACK}" == 1 ]; then
export PW_XKBD="$(setxkbmap -query | grep -w ru | awk '{print($2)}')"
if [ ! -z ${PW_XKBD} ]; then
setxkbmap us,ru
fi
fi
if [ -x "`which "gamemoderun" 2>/dev/null`" ] && [ "$PW_USE_GAMEMODE" = "1" ]; then
export PW_GAMEMODERUN=1
@ -449,72 +215,130 @@ START_PORTWINE ()
export PW_GAMEMODERUN=0
echo "Gamemod is not installed or disabled in vars script: PW_USE_GAMEMODE=$PW_USE_GAMEMODE"
fi
PW_INIT_PFX
RUN_WINETRICKS_FROM_DB
ADD_IN_START_PORTWINE
}
#init_pfx
if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || \
[ ! -d "${WINEPREFIX}/dosdevices" ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || \
[ ! -f "${WINEPREFIX}"/system.reg ] || [ ! -f "${WINEPREFIX}"/user.reg ]
then
pw_clear_pfx
create_new_dir "${WINEPREFIX}"
create_new_dir "${WINEPREFIX}/drive_c"
create_new_dir "${WINEPREFIX}/dosdevices"
create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/"
create_new_dir "${WINEPREFIX}/drive_c/windows/system32/"
[ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
[ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/"
try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arial.ttf
try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Bold.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arialbd.ttf
try_copy_file "${WINEDIR}/share/fonts/"LiberationSerif-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"times.ttf
try_copy_file "${WINEDIR}/share/fonts/"LiberationMono-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"cour.ttf
try_copy_file "${WINEDIR}/share/fonts/"SourceHanSansSCRegular.otf "${WINEPREFIX}/drive_c/windows/Fonts/"msyh.ttf
pw_stop_progress_bar
pw_start_progress_bar_block "Updating prefix... Please wait..."
kill_portwine
${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -u
wait_wineserver
kill_portwine
pw_stop_progress_bar
pw_start_progress_bar_cs "Initialization prefix..."
fi
[ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
[ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then
try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}"
fi
[ ! -d "${PORT_WINE_PATH}/drive_c" ] && try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/"
create_new_dir "${WINEPREFIX}/drive_c/users/Public/Documents/Steam"
create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents/Steam"
if [ ! -d "${WINEPREFIX}/drive_c/users/steamuser/My Documents" ]
then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents" "${WINEPREFIX}/drive_c/users/steamuser/My Documents"
fi
var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n"
WAIT_WINESERVER () {
sleep 3
while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do
sleep 1
done
}
KILL_PORTWINE () {
wine_pids=`ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader| ' | awk -F/ '{print $3}'`
if [ ! -z "${wine_pids}" ] ; then
for pw_kill_pids in ${wine_pids} ; do
if [ "`ps cax | grep ${pw_kill_pids}`" ] ; then
kill -n 9 ${pw_kill_pids}
# export TOTAL_VRAM=`"${PW_WINELIB}/runtime/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'`
# echo "TOTAL_VRAM=${TOTAL_VRAM}"
echo "Try copy native DXGI"
if [ "${WINEARCH}" != "win32" ] ; then
if ! try_copy_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
then try_copy_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
fi
try_copy_file "${WINEDIR}/lib/wine/dxvk/dxvk_config.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/dxvk/dxvk_config.dll" "${WINEPREFIX}/drive_c/windows/system32/"
else
if ! try_copy_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
fi
try_copy_file "${WINEDIR}/lib/wine/dxvk/dxvk_config.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
if [ "${PW_VULKAN_USE}" = "0" ] ; then
export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}"
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export GL_YIELD="NOTHING"
for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do
if [ "${WINEARCH}" != "win32" ] ; then
if ! try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
then try_copy_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
else
if ! try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
fi
done
var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12="
echo "Use OpenGL"
elif [ "${PW_VULKAN_USE}" = "vkd3d" ] ; then
echo "Try copy native VKD3D files"
for wine_vkd3d_dll in d3d12 libvkd3d-proton-utils-3 ; do
if [ "${WINEARCH}" != "win32" ] ; then
try_copy_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
else
try_copy_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
var_winedlloverride_update "${wine_vkd3d_dll}=n"
create_new_dir "${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE=1
export __GL_SHADER_DISK_CACHE_SIZE=1000000000
done
var_winedlloverride_update "dxgi=b"
export VKD3D_FEATURE_LEVEL="12_0"
echo "Use VKD3D-PROTON only (DX12 to vulkan)"
else
export CP_DXVK_FILES="d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi"
echo "Try copy native DXVK files"
for wine_dxvk_dll in ${CP_DXVK_FILES} ; do
if [ "${WINEARCH}" != "win32" ] ; then
try_copy_file "${WINEDIR}/lib/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
else
try_copy_file "${WINEDIR}/lib/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
var_winedlloverride_update "${wine_dxvk_dll}=n"
done
create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache"
export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache
export DXVK_STATE_CACHE=1
export __GL_DXVK_OPTIMIZATIONS=1
var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3="
echo "Use DXVK"
fi
if [ ! -z `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'` ] ; then
kill -n 9 `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'`
fi
}
STOP_PORTWINE () {
WAIT_WINESERVER
ADD_IN_STOP_PORTWINE
if [ "$int_xneur" = "1" ]; then
xneur &
fi
if [ ! -z ${PW_XKBD} ]; then
setxkbmap ${PW_XKBD}
fi
PW_STOP_PROGRESS_BAR
try_remove_file "${PORT_SCRIPTS_PATH}/0"
try_remove_file "${PORT_SCRIPTS_PATH}/1"
}
UPDATE_WINETRICKS () {
W_TRX_URL="https://raw.githubusercontent.com/GloriousEggroll/protonfixes/master/winetricks"
W_TRX_EXT_VER="$(curl -s --list-only ${W_TRX_URL} | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
print_info "Version winetricks on server: ${W_TRX_EXT_VER}"
W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
print_info "Version winetricks in port: ${W_TRX_INT_VER}"
if [ ! -f "${PORT_WINE_TMP_PATH}/winetricks" ] && [ ! -z "$W_TRX_EXT_VER" ] || [ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" ] && [ ! -z "$W_TRX_EXT_VER" ]; then
if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then
mv -f "${PORT_WINE_TMP_PATH}/winetricks_new" "${PORT_WINE_TMP_PATH}/winetricks"
W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" && print_info "Winetricks version in port has been updated (${W_TRX_INT_VER})"
chmod u+x "${PORT_WINE_TMP_PATH}/winetricks"
fi
fi
if [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then
sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks"
sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks"
fi
}
RUN_WINETRICKS_FROM_DB () {
UPDATE_WINETRICKS
pw_other_fixes
#run_winetricks_from_db
update_winetricks
if [ ! -z "${PW_MUST_HAVE_DLL}" ]
then export PW_DLL_INSTALL="${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}"
fi
if [ ! -z "${PW_DLL_INSTALL}" ]; then
PW_STOP_PROGRESS_BAR
pw_stop_progress_bar
export PW_DLL_NEED_INSTALL=""
export USE_WT_FROM_DB=0
if [ ! -e "${WINEPREFIX}/winetricks.log" ] ; then
@ -539,250 +363,39 @@ RUN_WINETRICKS_FROM_DB () {
fi
done
if [ "${USE_WT_FROM_DB}" == "1" ] ; then
UPDATE_WINETRICKS
PW_STOP_PROGRESS_BAR
print_info "Need to install DLL in prefix: ${PW_DLL_NEED_INSTALL}"
${PW_TERM} "${PORT_WINE_TMP_PATH}/winetricks" -q --force ${PW_DLL_NEED_INSTALL}
pw_stop_progress_bar
print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}"
chmod -R 775 "${HOME}/.cache/winetricks"
if [ "${PW_WINE_VER}" != "PROTON_STEAM" ] ; then
export PW_WINE_VER_FROM_DB="${PW_WINE_USE}"
export PW_WINE_VER="PROTON_STEAM"
init_wine_ver
cabextract_fix
fi
${pw_runtime} xterm -e env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${PORT_WINE_TMP_PATH}/winetricks" -q -f ${PW_DLL_NEED_INSTALL}
if [ "${PW_WINE_USE}" != "proton_steam" ] ; then
/bin/bash -c ${pw_full_command_line[*]} &
exit 0
fi
fi
PW_START_PROGRESS_BAR_CS "Start ${portname}... Please wait..."
pw_start_progress_bar_cs "Start ${portname}... Please wait..."
fi
if [[ -z `cat "${WINEPREFIX}/system.reg" | grep "Windows $PW_WINDOWS_VER"` ]] ; then
if [ ! -z "${PW_WINDOWS_VER}" ] && [ `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ] ; then
export PW_WINDOWS_VER="xp64"
if [ "${WINEARCH}" != "win32" ] ; then
export PW_WINDOWS_VER="xp64"
else
export PW_WINDOWS_VER="xp"
fi
fi
${PW_RUNTIME} "${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'`
${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'`
echo "Set to win${PW_WINDOWS_VER}"
wait_wineserver
fi
}
PW_INIT_DB () {
if [ ! -z "${portwine_exe}" ]; then
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'`
fi
if [ ! -z "${PORTWINE_DB}" ]; then
PORTWINE_DB_FILE=`grep -ilw "#${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
. "${PORTWINE_DB_FILE}"
echo "Use ${PORTWINE_DB_FILE} db file."
else
. "${PORT_SCRIPTS_PATH}/portwine_db/default"
echo "Use default db file."
fi
fi
}
PW_UPDATE () {
if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then
echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver"
fi
if [ ! -f "${PORT_WINE_TMP_PATH}/update_notifier" ] ; then
echo "1" > "${PORT_WINE_TMP_PATH}/update_notifier"
fi
read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier"
if [ "${update_not}" = "1" ] ; then
if try_download_silent "${PW_FTP_URL}/current_version/${portname}_ver" "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" ; then
read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
if [ ! -z "${current_ver}" ] && [ "${current_ver}" -gt "${install_ver}" ] ; then
xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=230 --column="${inst_set}" --column "${port_upd3}" \
TRUE "${port_upd4}" \
FALSE "${port_upd5}" \
FALSE "${port_upd6}" `
case $xsd in
"${port_upd4}")
KILL_PORTWINE
# if try_download https://portwine-linux.ru/ftp/portwine/PortProton-$current_ver "${HOME}/.PortWINE/tmp/PortProton-$current_ver" ; then
# sh "${HOME}/.PortWINE/tmp/PortProton-$current_ver"
# try_remove_file "${HOME}/.PortWINE/tmp/PortProton-$current_ver"
# fi &
xdg-open $porturl
exit 0 ;;
"${port_upd5}")
echo " " ;;
"${port_upd6}")
echo "0" > "${PORT_WINE_TMP_PATH}/update_notifier" ;;
esac
fi
fi
fi
if [ ! -f "${HOME}/.config/.PortTime" ] ; then
echo "10" > "${HOME}/.config/.PortTime"
fi
read "port_time" < "${HOME}/.config/.PortTime"
if [ "${port_time}" -gt "1" ] ; then
port_time=$((${port_time}-1))
echo "${port_time}" > "${HOME}/.config/.PortTime"
else
xsd2=`zenity --title "${port_time1}" --text "${port_time2}" --list --radiolist --height=230 --column="${inst_set3}" --column "${port_time3}" \
TRUE "${port_time4}" \
FALSE "${port_time5}" \
FALSE "${port_time6}" `
if [ $? = 1 ] ; then
echo "1" > "${HOME}/.config/.PortTime"
else
case $xsd2 in
"${port_time4}")
xdg-open "$urlg" &
echo "300" > "${HOME}/.config/.PortTime"
exit 0 ;;
"${port_time5}")
echo "75" > "${HOME}/.config/.PortTime" ;;
"${port_time6}")
echo "150" > "${HOME}/.config/.PortTime" ;;
esac
fi
fi
add_in_start_portwine
}
PW_INIT_PFX () {
if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || \
[ ! -d "${WINEPREFIX}/dosdevices" ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || \
[ ! -f "${WINEPREFIX}"/system.reg ] || [ ! -f "${WINEPREFIX}"/user.reg ]
then
rm -f "${WINEDIR}"*/lib*/*steam*
rm -f "${WINEDIR}"*/lib*/wine/*steam*
rm -f "${WINEDIR}"*/lib*/wine/*/*steam*
pw_clear_pfx
create_new_dir "${WINEPREFIX}"
if [ -d "${WINEDIR}/share/default_pfx/" ] ; then
cp -fr "${WINEDIR}/share/default_pfx/"* "${WINEPREFIX}"
fi
create_new_dir "${WINEPREFIX}/drive_c"
create_new_dir "${WINEPREFIX}/dosdevices"
create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/"
create_new_dir "${WINEPREFIX}/drive_c/windows/system32/"
[ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
[ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
PW_STOP_PROGRESS_BAR
PW_START_PROGRESS_BAR_BLOCK "Updating prefix... Please wait..."
KILL_PORTWINE
${PW_RUNTIME} "${WINELOADER}" wineboot -u
WAIT_WINESERVER
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PW_START_PROGRESS_BAR_CS "Initialization prefix..."
create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/"
try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arial.ttf
try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Bold.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arialbd.ttf
try_copy_file "${WINEDIR}/share/fonts/"LiberationSerif-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"times.ttf
try_copy_file "${WINEDIR}/share/fonts/"LiberationMono-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"cour.ttf
try_copy_file "${WINEDIR}/share/fonts/"SourceHanSansSCRegular.otf "${WINEPREFIX}/drive_c/windows/Fonts/"msyh.ttf
fi
[ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
[ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then
try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}"
fi
if [ ! -d "${PORT_WINE_PATH}/drive_c" ]; then
try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/"
fi
create_new_dir "${WINEPREFIX}/drive_c/users/Public/Documents/Steam"
create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents/Steam"
var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n"
# export TOTAL_VRAM=`"${PW_WINELIB}/runtime/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'`
# echo "TOTAL_VRAM=${TOTAL_VRAM}"
echo "Try copy native DXGI"
if ! try_copy_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
then try_copy_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
fi
if [ "${PW_VULKAN_USE}" = "0" ] ; then
export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}"
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export GL_NO_DSO_FINALIZER=1
export GL_YIELD="NOTHING"
for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do
if ! try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
then try_copy_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
done
var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12="
echo "Use OpenGL"
elif [ "${PW_VULKAN_USE}" = "vkd3d" ] ; then
echo "Try copy native VKD3D files"
for wine_vkd3d_dll in d3d12 libvkd3d-proton-utils-3 ; do
try_copy_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
var_winedlloverride_update "${wine_vkd3d_dll}=n"
var_winedlloverride_update="dxgi=b"
done
export VKD3D_FEATURE_LEVEL="12_0"
echo "Use VKD3D-PROTON only (DX12 to vulkan)"
else
export CP_DXVK_FILES="d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi dxvk_config"
echo "Try copy native DXVK files"
for wine_dxvk_dll in ${CP_DXVK_FILES} ; do
try_copy_file "${WINEDIR}/lib/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
var_winedlloverride_update "${wine_dxvk_dll}=n"
done
echo "Try copy native VKD3D files"
for wine_vkd3d_dll in d3d12 libvkd3d-proton-utils-3 ; do
try_copy_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
var_winedlloverride_update "${wine_vkd3d_dll}=n"
done
echo "Use DXVK + VKD3D-PROTON"
fi
PW_OTHER_FIXES
}
PW_SCRIPTS_UPDATE () {
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
echo "1000" > "${PORT_WINE_TMP_PATH}/scripts_ver"
fi
export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1`
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ] ; then
echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
fi
read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
if [ "${scripts_update_not}" = "1" ] ; then
if try_download_silent "${PW_FTP_URL}/current_version/scripts_ver" "${PORT_WINE_TMP_PATH}/scripts_cur_ver" ; then
read scripts_current_ver < "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
if [ ! -z "${scripts_current_ver}" ] && [ "${scripts_current_ver}" -gt "${scripts_install_ver}" ] ; then
xcsd=`zenity --title "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=230 --column="${inst_set}" --column "${scripts_upd3}" \
TRUE "${scripts_upd4}" \
FALSE "${scripts_upd5}" \
FALSE "${scripts_upd6}"`
case $xcsd in
"${scripts_upd4}")
echo "######################################################"
echo "Update scripts..."
try_remove_file "${PORT_WINE_TMP_PATH}/scripts.tar.xz"
if try_download_silent "${PW_FTP_URL}/dist/scripts.tar.xz" "${PORT_WINE_TMP_PATH}/scripts.tar.xz" ; then
tar -Jxvf "${PORT_WINE_TMP_PATH}/scripts.tar.xz" -C "${PORT_WINE_PATH}/data/"
if [ "$?" == "0" ] ; then
try_remove_file "${PORT_WINE_TMP_PATH}/scripts.tar.xz"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
"${pw_yad}" --title="Changelog" --borders=10 \
--text="Скрипты были успешно обновлены.\nДля продолжения запуска порта нажмите ОК." \
--text-align=center --text-info --show-uri --wrap --center --width=1200 --height=550 \
--filename="${PORT_WINE_PATH}/data/changelog" --uri-color=red
[ "$?" == 0 ] && /bin/bash -c ${pw_full_command_line[*]} &
exit 0
fi
else
zenity_error_download && PW_SCRIPTS_UPDATE
fi ;;
"${scripts_upd5}")
echo " " ;;
"${scripts_upd6}")
echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;;
esac
fi
fi
fi
}
PW_RUN () {
pw_run () {
if [ ! -z "$portwine_exe" ] ; then
export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
cd "${PATH_TO_GAME}"
@ -790,33 +403,31 @@ PW_RUN () {
cd "${WINEPREFIX}/drive_c"
fi
pw_mangohud_check
print_var "WINEDIR" "WINEARCH" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_VULKAN_USE" "VKD3D_CONFIG"
pw_vkbasalt_check
print_var "WINEDIR" "WINEARCH" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" "LD_LIBRARY_PATH" "PATH"
if [ "${PW_LOG}" == 1 ] ; then
export PW_TERM=""
export PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
if [ ! -z "${PW_GAMEMODERUN}" ] && [ "${PW_GAMEMODERUN}" != 0 ] ; then
echo "Use logging with gamemode"
echo "Full command line: $PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" "&>>${PW_LOG_TO_FILE}"
$PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
${optirun_on} gamemoderun ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
else
echo "Use logging without gamemode"
echo "Full command line: $PW_TERM ${optirun_on} ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" "&>>${PW_LOG_TO_FILE}"
$PW_TERM ${optirun_on} ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
${optirun_on} ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
fi
else
[ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM=""
if [ ! -z "${PW_GAMEMODERUN}" ] && [ "${PW_GAMEMODERUN}" != 0 ] ; then
echo "Use gamemode without terminal"
echo "Full command line: $PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}"
$PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}
$PW_TERM ${optirun_on} gamemoderun ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" \
${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}
else
echo "Don\`t use gamemode without terminal"
echo "Full command line: $PW_TERM ${optirun_on} ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}"
$PW_TERM ${optirun_on} ${PW_RUNTIME} ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}
$PW_TERM ${optirun_on} ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" \
${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}
fi
fi
}
#####MAIN#####
###MAIN###
unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_GUI_DISABLED_CS
unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREAT_DB PW_YAD_SET
cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
@ -826,6 +437,8 @@ read "portname" < "${PORT_WINE_TMP_PATH}/portname" && export portname
cd "${PORT_SCRIPTS_PATH}"
. "${PORT_SCRIPTS_PATH}/var"
[ -f "${PORT_SCRIPTS_PATH}/autoinstall" ] && try_remove_file "${PORT_SCRIPTS_PATH}/autoinstall"
if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ] ; then
SET_LANG=`zenity --title "Install $portname" --text "Select the language" --list --radiolist \
--column="Set:" --column "Language:" TRUE "RUS" FALSE "ENG" `
@ -833,19 +446,23 @@ if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ] ; then
fi
. "${PORT_SCRIPTS_PATH}"/lang
unset MANGOHUD PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_CHECK_AUTOINSTAL
var_winedlloverride_update "winemenubuilder.exe="
export urlg="https://portwine-linux.ru/portwine-faq/"
export PW_FTP_URL="https://portwine-linux.ru/ftp"
export PW_WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}"
export PW_WINELIB="${HOME}/.PortWINE/libs${PW_LIBS_VER}"
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
export install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1`
export WINETRICKS_DOWNLOADER="curl"
export USER_CONF="${PORT_WINE_PATH}/data/user.conf"
check_user_conf
if [ -z "${INSTALLING_PORT}" ] ; then
PW_LOAD_LIBS
PW_DOWNLOAD_MONO
PW_DOWNLOAD_GECKO
PW_UPDATE
PW_SCRIPTS_UPDATE
PW_INIT_DB
. "${USER_CONF}"
pw_download_libs
pw_download_mono
pw_download_gecko
pw_update_notifier
pw_scripts_update
pw_init_db
. "${USER_CONF}"
fi

Some files were not shown because too many files have changed in this diff Show More