Compare commits

...

50 Commits

Author SHA1 Message Date
69ec71e564 Scripts version 2438 2025-07-26 11:57:07 +03:00
e1a47bdb0e updated OPTISCALER to v02-0.7.7-pre12 2025-07-26 11:40:52 +03:00
c1b7c33444 Merge branch 'Htylol-fixes_locale_list' into devel
9
2025-07-26 10:50:06 +03:00
9c3d3e37e1 pw_skip_get_info: Fixed the operation of LOCALE_LIST
If the system uses utf8 instead of just utf, the list will not work
2025-07-25 23:23:01 +05:00
c33d9ba3f5 Scripts version 2437 2025-07-25 15:56:55 +03:00
ca9c63711d fixed launch epic games from desktop files 2025-07-25 15:43:21 +03:00
9064faf36f dropped Steam* var. 2025-07-25 15:41:56 +03:00
88c5d78713 fixed set WINE if not found and use WINE_LG for Sony games 2025-07-25 14:31:02 +03:00
7c573daca5 disabled *SYNC by default 2025-07-25 13:30:45 +03:00
e9a13ae5d8 dropped check libc for flatpak 2025-07-25 13:27:35 +03:00
e2f1476d90 gui_edit_db lock and disabled lsfg if libc 2.37-
GLIBC version 2.38+ is required for use Lossless Scaling frame generation
2025-07-25 12:32:05 +03:00
ccd9b166d1 do not force change mirror to github for devel 2025-07-25 12:20:44 +03:00
4e18752e5c Merge branch 'Htylol-fixes_for_3d_api_1' into devel 2025-07-25 12:07:30 +03:00
0a277c430e Merge branch 'fixes_for_3d_api_1' of github.com:Htylol/PortWINE into Htylol-fixes_for_3d_api_1 2025-07-25 12:07:21 +03:00
4b72da7abf Merge branch 'Htylol-update_start_sh_1' into devel 2025-07-25 11:59:44 +03:00
90df03eec7 3D api: fixed stable and newest work, libvkd3d is always used from new versions 2025-07-25 11:41:56 +05:00
f67d2c27f4 start.sh: Optimized and removed unnecessary code 2025-07-25 00:27:14 +05:00
e9dc5604d4 Scripts version 2436 2025-07-24 20:19:37 +03:00
a2acf29a37 always auto set PW_VULKAN_USE if empty 2025-07-24 20:09:58 +03:00
a8f0badcd1 Merge branch 'Htylol-added_dxvk_stable-3' into devel 2025-07-24 19:48:13 +03:00
085220ea94 Refactoring 3D api: Interface acceleration 2025-07-24 21:43:30 +05:00
252ed89e4e Ooops. Hotfix for run pw_check_glxinfo again. 2025-07-24 17:15:33 +03:00
d44749fbeb added update meter 2025-07-24 17:13:45 +03:00
1b007ee3cb hotfix for run pw_check_glxinfo 2025-07-24 17:07:06 +03:00
779fc18eb5 updated locales 2025-07-24 16:56:23 +03:00
b5564b32c5 refactored 3D Api 2025-07-24 16:56:08 +03:00
812cadac41 Merge branch 'Htylol-added_dxvk_stable-2' into devel 2025-07-24 15:08:00 +03:00
6bee5b77f1 Merge branch 'added_dxvk_stable-2' of github.com:Htylol/PortWINE into Htylol-added_dxvk_stable-2 2025-07-24 15:07:53 +03:00
a480074dc8 Refactoring 3D api number 2 (Added stable 1.3+ dvxk,vkd3d) 2025-07-24 17:07:28 +05:00
a841a3a72c Merge branch 'Boria138-cachy-v3' into devel 2025-07-24 12:54:16 +03:00
cf9f9c4561 Merge branch 'cachy-v3' of github.com:Boria138/PortWINE into Boria138-cachy-v3 2025-07-24 12:54:06 +03:00
152c8191af updated PROTON_LG to 10-10 (with ntsync support) 2025-07-24 12:39:59 +03:00
b41bf42d2a feat: added cachy v3 to get_other_wine if supported
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-24 12:49:36 +05:00
df88eac63c Merge branch 'Htylol-added_dxvk_sarek' into devel 2025-07-24 00:40:37 +03:00
c28c08122b Merge branch 'added_dxvk_sarek' of github.com:Htylol/PortWINE into Htylol-added_dxvk_sarek 2025-07-24 00:40:27 +03:00
407657891a Merge branch 'Htylol-rm_from_array_1' into devel 2025-07-24 00:33:58 +03:00
e4d2edd889 Merge branch 'rm_from_array_1' of github.com:Htylol/PortWINE into Htylol-rm_from_array_1 2025-07-24 00:33:50 +03:00
19996e4331 Merge branch 'Boria138-wine-metadata' into devel 2025-07-24 00:27:10 +03:00
5d5fa65008 Merge branch 'wine-metadata' of github.com:Boria138/PortWINE into Boria138-wine-metadata 2025-07-24 00:27:03 +03:00
0ff029f335 check for stable scripts only 2025-07-24 00:20:16 +03:00
1b0683772e VULKAN_VERSION_CHECK: refactor driver version detect 2025-07-23 23:45:31 +05:00
c2ff9aea0a Improved for dxvk-sarek and new 3d api 2025-07-23 23:22:03 +05:00
ee108295f4 STABLE DXVK and VKD3D changed to SAREK 2025-07-23 21:58:43 +05:00
3a57d159dd SORT_STABLE changed to SORT_SAREK 2025-07-23 21:47:26 +05:00
bdb90516a6 Improved vulkan driver detection condition for PW_VULKAN_USE 2025-07-23 21:39:36 +05:00
90110f1d26 chore(gui_proton_downloader): use metadata from my repo instead of gh api
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-23 20:57:56 +05:00
7c6ecdd518 Refactoring 3D api, added dxvk, vkd3d sarek for stable 2025-07-23 18:38:11 +05:00
9c1cd17ea4 Added NUDA_CPU_CB for hide the setting when it is not useful 2025-07-22 11:48:23 +05:00
89539538a8 AMD_VULKAN_CB: Instead of off, the state is now not displayed 2025-07-22 09:23:06 +05:00
1cd0b569b8 gui_edit_db: Instead of disabling, used hiding settings 2025-07-22 08:11:07 +05:00
9 changed files with 482 additions and 319 deletions

View File

@ -2,6 +2,27 @@ You can help us in the development of the project on the website: https://linux-
---------------------------------------- ----------------------------------------
Changelog: Changelog:
###Scripts version 2438### / Date: 26.07.2025 / Download update size: 4 megabytes
* fixed locale detection for flatpak version of PortProton (thanks to Htylol)
* updated OPTISCALER to v02-0.7.7-pre12 (thanks to @eljeyna)
* more games working with OPTISCALER
###Scripts version 2437### / Date: 25.07.2025 / Download update size: 4 megabytes
* FSYNC and ESYNC are disabled by default
* WINE_LG is used by default for all Sony games
* added a block on enabling USE_LS_FRAME_GEN if the GLIBC version in the system is lower than 2.38
* additional interface optimizations were made (thanks to Htylol)
* work continued on improving the 3D Api selection functions (thanks to Htylol)
###Scripts version 2436### / Date: 24.07.2025 / Download update size: 230 megabytes
* changed DXVK and VKD3D versions for DirectX to Vulkan translation (thanks to Htylol):
- The newest ones work only with "MESA 25+" or "NVIDIA 550.54.14+" drivers
- Stable ones work with any drivers, provided that the video card supports Vulkan version "1.3+"
- Sarek works with any video card that supports Vulkan version "1.1+"
* PROTON_LG updated to version "10-10" (with NTSYNC support)
* accelerated opening of the list of third-party WINE versions (thanks to Boria138)
* added to the lists of third-party WINE all WOW64 versions from Kron4ek and x86_64_v3 builds from CachyOS (thanks to Boria138)
###Scripts version 2435### / stable / Date: 23.07.2025 / Download update size: 380 megabytes ###Scripts version 2435### / stable / Date: 23.07.2025 / Download update size: 380 megabytes
* cumulative update of stable version of PortProton scripts * cumulative update of stable version of PortProton scripts
* removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE) * removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE)

View File

@ -2,6 +2,27 @@
----------------------------------------- -----------------------------------------
История изменений: История изменений:
###Scripts version 2438### / Дата: 26.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлено определение локалей для flatpak версии PortProton (спасибо Htylol)
* обновлен OPTISCALER до версии v02-0.7.7-pre12 (спасибо @eljeyna)
* расширено количество игр работающих с OPTISCALER
###Scripts version 2437### / Дата: 25.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* FSYNC и ESYNC по умолчанию выключены
* для всех игр от Sony по умолчанию используется WINE_LG
* добавлена блокировка включения USE_LS_FRAME_GEN если версия GLIBC в системе ниже чем 2.38
* произведены дополнительные оптимизации интерфейса (спасибо Htylol)
* продолжены работы по улучшению функций выбора 3D Api (спасибо Htylol)
###Scripts version 2436### / Дата: 24.07.2025 / Размер скачиваемого обновления: 230 мегабайт
* изменены версии DXVK и VKD3D для трансляции DirectX в Vulkan (спасибо Htylol):
- Новейшие работают только с драйверами "MESA 25+", или "NVIDIA 550.54.14+"
- Стабильные работают с любыми драйверами при условии что видеокарта поддерживает Vulkan версии "1.3+"
- Sarek работает с любой видеокартой поддерживающей Vulkan версии "1.1+"
* обновлен PROTON_LG до версии "10-10" (с поддержкой NTSYNC)
* ускорено открытие списка сторонних версий WINE (спасибо Boria138)
* добавлены в списки сторонних WINE все WOW64 версии от Kron4ek и сборки x86_64_v3 от CachyOS (спасибо Boria138)
###Scripts version 2435### / stable / Дата: 23.07.2025 / Размер скачиваемого обновления: 380 мегабайт ###Scripts version 2435### / stable / Дата: 23.07.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton * кумулятивное обновление стабильной версии скриптов PortProton
* удалена вкладка скачивания сторонних версий WINE-GE-GUSTOM (устаревшие версии WINE) * удалена вкладка скачивания сторонних версий WINE-GE-GUSTOM (устаревшие версии WINE)

View File

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-21 16:53+0300\n" "POT-Creation-Date: 2025-07-24 16:50+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -61,19 +61,36 @@ msgid "--autoinstall and the name of what needs to be installed is given in "
"the list below:" "the list below:"
msgstr "" msgstr ""
msgid "Select DXVK and VKD3D versions for DirectX to Vulkan translation:\n"
" - The newest ones work only with MESA 25+ drivers, or NVIDIA "
"550.54.14+\n"
" - Stable ones work with any drivers, provided that the video card "
"supports Vulkan version 1.3+\n"
" - Sarek works with almost any video card that supports Vulkan\n"
" - WineD3D OpenGL works on any PC, but with low performance and "
"old games"
msgstr ""
msgid "Selecting a WINE version."
msgstr ""
msgid "Select a prefix to launch the game/application (if you enter a non-"
"existent name, a new prefix will be created)."
msgstr ""
msgid "USE_SYSTEM_WINE" msgid "USE_SYSTEM_WINE"
msgstr "" msgstr ""
msgid "WineD3D OpenGL (For video cards without Vulkan)" msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "" msgstr ""
msgid "Legacy DXVK (Vulkan v1.1)" msgid "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgstr "" msgstr ""
msgid "Stable DXVK, VKD3D (Vulkan v1.2)" msgid "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgstr "" msgstr ""
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgid "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgstr "" msgstr ""
msgid "GET-OTHER-WINE" msgid "GET-OTHER-WINE"
@ -384,6 +401,9 @@ msgstr ""
msgid "Check new version WINE..." msgid "Check new version WINE..."
msgstr "" msgstr ""
msgid "Error: failed to fetch metadata."
msgstr ""
msgid "Error: check wine." msgid "Error: check wine."
msgstr "" msgstr ""
@ -543,6 +563,9 @@ msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not "
"work with PROTON_LG and WINE_LG)" "work with PROTON_LG and WINE_LG)"
msgstr "" msgstr ""
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes" msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "" msgstr ""
@ -1073,7 +1096,7 @@ msgid "Disable MangoHud and go to the previous menu"
msgstr "" msgstr ""
msgid "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working " msgid "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working "
"only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" "only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr "" msgstr ""
msgid "Force the vertical sync to avoid tearing or prevent the GPU from " msgid "Force the vertical sync to avoid tearing or prevent the GPU from "

View File

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-21 16:53+0300\n" "POT-Creation-Date: 2025-07-24 16:50+0300\n"
"PO-Revision-Date: 2025-07-01 20:00+0300\n" "PO-Revision-Date: 2025-07-24 15:26+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: es_ES\n" "Language: es_ES\n"
@ -81,20 +81,38 @@ msgstr ""
"--autoinstall y el nombre de lo que se debe instalar se indica en la lista a " "--autoinstall y el nombre de lo que se debe instalar se indica en la lista a "
"continuación:" "continuación:"
msgid ""
"Select DXVK and VKD3D versions for DirectX to Vulkan translation:\n"
" - The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+\n"
" - Stable ones work with any drivers, provided that the video card "
"supports Vulkan version 1.3+\n"
" - Sarek works with almost any video card that supports Vulkan\n"
" - WineD3D OpenGL works on any PC, but with low performance and old games"
msgstr ""
#, fuzzy
msgid "Selecting a WINE version."
msgstr "Seleccionar WINE para descargar:"
msgid ""
"Select a prefix to launch the game/application (if you enter a non-existent "
"name, a new prefix will be created)."
msgstr ""
msgid "USE_SYSTEM_WINE" msgid "USE_SYSTEM_WINE"
msgstr "Usar Wine del sistema" msgstr "Usar Wine del sistema"
msgid "WineD3D OpenGL (For video cards without Vulkan)" msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "WineD3D OpenGL (Para tarjetas de video sin Vulkan)" msgstr "WineD3D OpenGL (Para tarjetas de video sin Vulkan)"
msgid "Legacy DXVK (Vulkan v1.1)" msgid "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgstr "DXVK heredado (Vulkan v1.1)" msgstr "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgid "Stable DXVK, VKD3D (Vulkan v1.2)" msgid "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgstr "DXVK estable, VKD3D (Vulkan v1.2)" msgstr "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgid "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgstr "Más nuevo DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgid "GET-OTHER-WINE" msgid "GET-OTHER-WINE"
msgstr "OBTENER OTRO WINE" msgstr "OBTENER OTRO WINE"
@ -430,6 +448,9 @@ msgstr "FORZAR SALIDA"
msgid "Check new version WINE..." msgid "Check new version WINE..."
msgstr "Comprobar nueva versión de WINE..." msgstr "Comprobar nueva versión de WINE..."
msgid "Error: failed to fetch metadata."
msgstr ""
msgid "Error: check wine." msgid "Error: check wine."
msgstr "Error: verificar wine." msgstr "Error: verificar wine."
@ -661,6 +682,9 @@ msgstr ""
"Utilice dxvk y vkd3d que vienen incluidos con wine o proton. (No funciona " "Utilice dxvk y vkd3d que vienen incluidos con wine o proton. (No funciona "
"con PROTON_LG y WINE_LG)" "con PROTON_LG y WINE_LG)"
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes" msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Desactivar llamadas asíncronas para los modos VULKAN y DXVK" msgstr "Desactivar llamadas asíncronas para los modos VULKAN y DXVK"
@ -1316,9 +1340,10 @@ msgstr "Iniciar vkcube para previsualizar los cambios"
msgid "Disable MangoHud and go to the previous menu" msgid "Disable MangoHud and go to the previous menu"
msgstr "Desactivar MangoHud y volver al menú anterior" msgstr "Desactivar MangoHud y volver al menú anterior"
#, fuzzy
msgid "" msgid ""
"Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on " "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on "
"newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" "newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr "" msgstr ""
"Usa DirectX 12 para dgVoodoo2. No siempre funciona mejor. (Funciona solo con " "Usa DirectX 12 para dgVoodoo2. No siempre funciona mejor. (Funciona solo con "
"dxvk/vkd3d más nuevos y estables) (Configuraciones de Direct3D y Glide)" "dxvk/vkd3d más nuevos y estables) (Configuraciones de Direct3D y Glide)"
@ -2193,6 +2218,9 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS" msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "DXVK heredado (Vulkan v1.1)"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)" #~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr "" #~ msgstr ""
#~ "Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)" #~ "Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-21 16:53+0300\n" "POT-Creation-Date: 2025-07-24 16:50+0300\n"
"PO-Revision-Date: 2025-07-21 16:55+0300\n" "PO-Revision-Date: 2025-07-24 16:51+0300\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: ru_RU\n" "Language: ru_RU\n"
@ -80,20 +80,46 @@ msgstr ""
"--autoinstall и название того, что необходимо установить, указано в списке " "--autoinstall и название того, что необходимо установить, указано в списке "
"ниже:" "ниже:"
msgid ""
"Select DXVK and VKD3D versions for DirectX to Vulkan translation:\n"
" - The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+\n"
" - Stable ones work with any drivers, provided that the video card "
"supports Vulkan version 1.3+\n"
" - Sarek works with almost any video card that supports Vulkan\n"
" - WineD3D OpenGL works on any PC, but with low performance and old games"
msgstr ""
"Выберите версии DXVK и VKD3D для трансляции DirectX в Vulkan:\n"
" - Новейшие работают только с драйверами MESA 25+, или NVIDIA 550.54.14+\n"
" - Стабильные работают с любыми драйверами при условии что видеокарта "
"поддерживает Vulkan версии 1.3+\n"
" - Sarek работает почти с любой видеокартой поддерживающей Vulkan\n"
" - WineD3D OpenGL работает на любом ПК, но с низкой производительностью и "
"старыми играми"
msgid "Selecting a WINE version."
msgstr "Выбор версии WINE."
msgid ""
"Select a prefix to launch the game/application (if you enter a non-existent "
"name, a new prefix will be created)."
msgstr ""
"Выбор префикса для запуска игры/приложения (при вводе не существующего "
"названия будет создан новый префикс)."
msgid "USE_SYSTEM_WINE" msgid "USE_SYSTEM_WINE"
msgstr "Использовать системную версию wine" msgstr "Использовать системную версию wine"
msgid "WineD3D OpenGL (For video cards without Vulkan)" msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "WineD3D OpenGL (для видеокарт без поддержки Vulkan)" msgstr "WineD3D OpenGL (для видеокарт без поддержки Vulkan)"
msgid "Legacy DXVK (Vulkan v1.1)" msgid "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgstr "Устаревший DXVK (Vulkan v1.1)" msgstr "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgid "Stable DXVK, VKD3D (Vulkan v1.2)" msgid "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" msgstr "DXVK, VKD3D (Стабильные) (Vulkan v1.3+)"
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgid "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "DXVK, VKD3D (Новейшие) (Vulkan v1.3+)"
msgid "GET-OTHER-WINE" msgid "GET-OTHER-WINE"
msgstr "Скачать другие версии wine" msgstr "Скачать другие версии wine"
@ -431,6 +457,9 @@ msgstr "ПРИНУДИТЕЛЬНЫЙ ВЫХОД"
msgid "Check new version WINE..." msgid "Check new version WINE..."
msgstr "Проверяем новые версии WINE..." msgstr "Проверяем новые версии WINE..."
msgid "Error: failed to fetch metadata."
msgstr "Ошибка: не удалось получить метаданные."
msgid "Error: check wine." msgid "Error: check wine."
msgstr "Ошибка во время проверки версии WINE." msgstr "Ошибка во время проверки версии WINE."
@ -676,6 +705,11 @@ msgstr ""
"Использовать dxvk и vkd3d, которые поставляются в комплекте с wine или " "Использовать dxvk и vkd3d, которые поставляются в комплекте с wine или "
"proton. (Не работает с PROTON_LG и WINE_LG)" "proton. (Не работает с PROTON_LG и WINE_LG)"
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
"Использовать асинхронную версию dxvk-sarek. (Может работать лучше, либо "
"наоборот)"
msgid "Disable asynchronous calls for VULKAN and DXVK modes" msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Отключить асинхронные вызовы для режимов VULKAN и DXVK" msgstr "Отключить асинхронные вызовы для режимов VULKAN и DXVK"
@ -1337,11 +1371,11 @@ msgstr "Отключить MangoHud и перейти в предыдущее м
msgid "" msgid ""
"Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on " "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on "
"newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" "newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr "" msgstr ""
"Принудительно транслировать dgVoodoo2 в DirectXD 12 (работает только с " "Принудительно транслировать dgVoodoo2 в DirectXD 12 (работает только с "
"новейшими и стабильными версиями dxvk и vkd3d. Может вызвать проблемы с " "новейшими и sarek версиями dxvk и vkd3d. Может вызвать проблемы с запуском "
"запуском игр) (Direct3D + Glide)" "игр) (Direct3D + Glide)"
msgid "" msgid ""
"Force the vertical sync to avoid tearing or prevent the GPU from rendering " "Force the vertical sync to avoid tearing or prevent the GPU from rendering "
@ -2168,6 +2202,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ" msgstr "БИБЛИОТЕКИ"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "Устаревший DXVK (Vulkan v1.1)"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)" #~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr "" #~ msgstr ""
#~ "Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). " #~ "Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). "

View File

@ -122,6 +122,7 @@ rm_from_array () {
if [[ \$rm_names =~ \$element ]] ; then if [[ \$rm_names =~ \$element ]] ; then
unset $array_name[\$count] unset $array_name[\$count]
$array_name=(\${$array_name[@]}) $array_name=(\${$array_name[@]})
((count--))
fi fi
((count++)) ((count++))
done" done"
@ -870,9 +871,7 @@ check_vendor_gpu () {
fi fi
if command -v glxinfo &>/dev/null ; then if command -v glxinfo &>/dev/null ; then
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then pw_check_glxinfo
glxinfo -B &> "${PW_TMPFS_PATH}/glxinfo.tmp"
fi
case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in
*nvidia*) *nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia") [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
@ -1657,12 +1656,7 @@ init_wine_ver () {
done done
IFS="$orig_IFS" IFS="$orig_IFS"
fi fi
if [[ -z $(lsbash "${PORT_WINE_PATH}/data/dist/" --grep "${PW_WINE_USE}") ]] ; then
if [[ "$PW_WINE_USE" =~ PROTON_LG* ]]
then export PW_WINE_USE=PROTON_LG
else export PW_WINE_USE=WINE_LG
fi
fi
if [[ "$PW_WINE_USE" == PROTON_LG ]] if [[ "$PW_WINE_USE" == PROTON_LG ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}" then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ "$PW_WINE_USE" == WINE_LG ]] elif [[ "$PW_WINE_USE" == WINE_LG ]]
@ -2160,8 +2154,8 @@ pw_check_and_download_wine () {
} }
pw_check_and_download_dxvk_and_vkd3d () { pw_check_and_download_dxvk_and_vkd3d () {
# Download stable and git version DXVK # Download DXVK versions
for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_OLD_VER}" "${DXVK_NEW_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then
print_info "Download and install DXVK v.${DXVK_VAR_VER}" print_info "Download and install DXVK v.${DXVK_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \ if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \
@ -2190,8 +2184,8 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi fi
done done
# Download stable and git version VKD3D # Download VKD3D versions
for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do for VKD3D_VAR_VER in "${VKD3D_SAREK_VER}" "${VKD3D_OLD_VER}" "${VKD3D_NEW_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}" print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \ if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \
@ -2450,13 +2444,16 @@ pw_init_db () {
if [[ -f "${PORTWINE_DB_FILE}" ]] ; then if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
# shellcheck source=/dev/null # shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}" source "${PORTWINE_DB_FILE}"
init_wine_ver && export PW_WINE_VER="$PW_WINE_USE"
init_wine_ver
print_info "Use $PORTWINE_DB_FILE db file." print_info "Use $PORTWINE_DB_FILE db file."
else else
if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then
if [[ -n "${PORTWINE_DB}" ]] ; then if [[ -n "${PORTWINE_DB}" ]] ; then
PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*) PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*)
export PORTWINE_DB_FILE export PORTWINE_DB_FILE
use_exiftool "$portwine_exe"
grep -q "Sony" "${PW_TMPFS_PATH}/exiftool.tmp" && PW_WINE_USE="WINE_LG"
if [[ -z "${PORTWINE_DB_FILE}" ]] ; then if [[ -z "${PORTWINE_DB_FILE}" ]] ; then
{ {
echo "#!/usr/bin/env bash" echo "#!/usr/bin/env bash"
@ -2474,7 +2471,7 @@ pw_init_db () {
# shellcheck source=/dev/null # shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}" source "${PORTWINE_DB_FILE}"
fi fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME edit_db_from_gui PW_WINE_USE PW_PREFIX_NAME
fi fi
fi fi
@ -2727,7 +2724,6 @@ pw_port_update () {
else else
curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" > "${PORT_WINE_TMP_PATH}/curent_var_ver" curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
sed -i "/Scripts version ${scripts_install_ver}/,$ d" "${PORT_WINE_TMP_PATH}/curent_var_ver" sed -i "/Scripts version ${scripts_install_ver}/,$ d" "${PORT_WINE_TMP_PATH}/curent_var_ver"
"${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \ "${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \
--button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \ --button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \
@ -2768,6 +2764,7 @@ pw_port_update () {
try_remove_dir "${PORT_WINE_TMP_PATH}/$PW_NAME_ARCHIVE/" try_remove_dir "${PORT_WINE_TMP_PATH}/$PW_NAME_ARCHIVE/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
unset SKIP_CHECK_UPDATES unset SKIP_CHECK_UPDATES
curl -X GET "http://cloud.linux-gaming.ru:8081/api/download/${scripts_current_ver}" &>/dev/null
echo "Restarting PP after update..." echo "Restarting PP after update..."
restart_pp restart_pp
fi fi
@ -2804,16 +2801,29 @@ pw_check_command () {
} }
export -f pw_check_command export -f pw_check_command
pw_check_vulkan () {
if [[ ! -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
TIMEOUT_CMD="5"
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
fi
}
pw_check_glxinfo () {
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
TIMEOUT_CMD="5"
pw_check_command glxinfo -B
fi
}
pw_get_tmp_files () { pw_get_tmp_files () {
for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a" for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a"
do pw_check_command "$f_cmd" do pw_check_command "$f_cmd"
done done
TIMEOUT_CMD="5" pw_check_vulkan
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
# GALLIUM NINE # GALLIUM NINE
unset FIND_D3D_MODULE D3D_MODULE_PATH unset FIND_D3D_MODULE D3D_MODULE_PATH
@ -2866,12 +2876,13 @@ pw_skip_get_info () {
if [[ -f "${PW_TMPFS_PATH}/locale.tmp" ]] ; then if [[ -f "${PW_TMPFS_PATH}/locale.tmp" ]] ; then
GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf" GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf"
unset LOCALE_LIST unset LOCALE_LIST LOCALE_UTF
[[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ utf8 ]] && LOCALE_UTF="8"
for LOCALE in $GET_LOCALE_LIST ; do for LOCALE in $GET_LOCALE_LIST ; do
if [[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ $LOCALE ]] ; then if [[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ $LOCALE ]] ; then
if [[ -n "$LOCALE_LIST" ]] if [[ -n "$LOCALE_LIST" ]]
then LOCALE_LIST+="!$LOCALE" then LOCALE_LIST+="!$LOCALE$LOCALE_UTF"
else LOCALE_LIST="$LOCALE" else LOCALE_LIST="$LOCALE$LOCALE_UTF"
fi fi
fi fi
done done
@ -2918,7 +2929,7 @@ pw_skip_get_info () {
export AMD_VULKAN_DRIVER_LIST export AMD_VULKAN_DRIVER_LIST
export AMD_VULKAN_CB=":CB" export AMD_VULKAN_CB=":CB"
else else
export AMD_VULKAN_CB=":DCB" export AMD_VULKAN_CB=":LBLH"
fi fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo) logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
@ -3016,6 +3027,22 @@ edit_user_conf_from_gui () {
return 0 return 0
} }
use_exiftool () {
if [[ ! -f "${PW_TMPFS_PATH}/exiftool.tmp" ]] \
|| ! grep -q "$1" "${PW_TMPFS_PATH}/exiftool.tmp"
then
echo "$1" > "${PW_TMPFS_PATH}/exiftool.tmp"
if ! command -v exiftool &>/dev/null \
|| ! timeout 3 exiftool "$1" &>> "${PW_TMPFS_PATH}/exiftool.tmp"
then
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" \
"${PW_PLUGINS_PATH}/portable/bin/exiftool" \
"$1" &>> "${PW_TMPFS_PATH}/exiftool.tmp"
fi
fi
}
pw_create_gui_png () { pw_create_gui_png () {
if [[ -z $name_desktop_png ]] ; then if [[ -z $name_desktop_png ]] ; then
basename_portwine_exe="$(basename "${portwine_exe}")" basename_portwine_exe="$(basename "${portwine_exe}")"
@ -3040,19 +3067,9 @@ pw_create_gui_png () {
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}" PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
else else
if command -v exiftool &>/dev/null ; then use_exiftool "$portwine_exe"
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp") FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
else
print_error "exiftool - broken!"
fi
else
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
fi
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]] if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
then then
@ -3491,17 +3508,17 @@ start_portwine () {
OPTISCALER_PATH="$PW_PLUGINS_PATH/fake_dlss/optiscaler-$PW_OPTISCALER_VER" OPTISCALER_PATH="$PW_PLUGINS_PATH/fake_dlss/optiscaler-$PW_OPTISCALER_VER"
OPTISCALER_FILES="dxgi.dll amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll \ OPTISCALER_FILES="dxgi.dll amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll \
libxess_dx11.dll dlssg_to_fsr3_amd_is_better.dll fakenvapi.ini \ libxess_dx11.dll dlssg_to_fsr3_amd_is_better.dll fakenvapi.ini \
nvapi64.dll OptiScaler.ini dxvk.conf" nvapi64.dll OptiScaler.ini dxvk.conf D3D12 D3D12_Optiscaler optiscaler_version"
ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll" ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll D3D12"
if [[ "${PW_USE_OPTISCALER}" != "1" ]] \ if [[ "${PW_USE_OPTISCALER}" != "1" ]] \
&& [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]] && [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]]
then then
for dll in $OPTISCALER_FILES ; do for dll in $OPTISCALER_FILES ; do
try_remove_file "$PATH_TO_GAME/$dll" rm -fr "$PATH_TO_GAME/$dll"
done done
for dll in $ORIGINAL_GAME_DLLS ; do for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/${dll}.b" ]] ; then if [[ -e "$PATH_TO_GAME/${dll}.b" ]] ; then
mv -f "$PATH_TO_GAME/${dll}.b" "$PATH_TO_GAME/${dll}" 2>/dev/null mv -f "$PATH_TO_GAME/${dll}.b" "$PATH_TO_GAME/${dll}" 2>/dev/null
fi fi
done done
@ -3518,7 +3535,7 @@ start_portwine () {
fi fi
fi fi
export PW_WINE_FULLSCREEN_FSR="0" export PW_USE_NVAPI_AND_DLSS="1"
set_to_dxvk_conf nvidia_new set_to_dxvk_conf nvidia_new
@ -3531,20 +3548,21 @@ start_portwine () {
fatal "Force exit..." fatal "Force exit..."
fi fi
for dll in $ORIGINAL_GAME_DLLS ; do for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/$dll" ]] \ if [[ -e "$PATH_TO_GAME/$dll" ]] \
&& [[ ! -f "$PATH_TO_GAME/${dll}.b" ]] && [[ ! -e "$PATH_TO_GAME/${dll}.b" ]]
then then
mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null
fi fi
done done
fi fi
for dll in $OPTISCALER_FILES ; do if [[ ! -f "$PATH_TO_GAME/optiscaler_version" ]] \
if [[ ! -f "$PATH_TO_GAME/$dll" ]] \ || ! grep -q "$PW_OPTISCALER_VER" "$PATH_TO_GAME/optiscaler_version"
|| [[ -L "$PATH_TO_GAME/$dll" ]] then
then try_copy_file "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll" for dll in $OPTISCALER_FILES ; do
fi cp -fr "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll" || print_error "$OPTISCALER_PATH/$dll not found for copy!"
done done
fi
fi fi
if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then
@ -3756,49 +3774,52 @@ fi
# WINED3D OPENGL # WINED3D OPENGL
print_info "Use WINED3D OpenGL" print_info "Use WINED3D OpenGL"
unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
;; ;;
1) 1)
# STABLE DXVK AND VKD3D # DXVK-Sarek AND VKD3D
print_info "DXVK v.${DXVK_STABLE_VER} in use" print_info "DXVK v.${DXVK_SAREK_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" print_info "VKD3D-PROTON v.${VKD3D_SAREK_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" if [[ $PW_USE_SAREK_ASYNC == "1" ]] ; then
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek-async"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" export ASYNC_DRAW_CALL_THRESHOLD="1"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" export DXVK_ALL_CORES="1"
CP_VKD3D_FILES="d3d12 libvkd3d-shader-1" else
CP_WINE_FILES="d3d12core d3d8" PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek"
fi
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12"
CP_WINE_FILES="d3d12core d3d10_1 d3d10"
;; ;;
2) 2)
# NEWEST DXVK AND VKD3D # STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_GIT_VER} in use" print_info "DXVK v.${DXVK_OLD_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" print_info "VKD3D-PROTON v.${VKD3D_OLD_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" CP_VKD3D_FILES="d3d12 d3d12core"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10" CP_WINE_FILES="d3d10_1 d3d10"
;; ;;
3) 6)
# LEGACY DXVK # NEWEST DXVK AND VKD3D
print_info "DXVK v.${DXVK_LEGACY_VER} in use" print_info "DXVK v.${DXVK_NEW_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}" print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_WINE_FILES="d3d12 d3d12core d3d8" CP_VKD3D_FILES="d3d12 d3d12core"
CP_WINE_FILES="d3d10_1 d3d10"
;; ;;
esac esac
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
if [[ $PW_USE_GALLIUM_NINE == "1" ]] \ if [[ $PW_USE_GALLIUM_NINE == "1" ]] \
|| [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ || [[ $PW_USE_GALLIUM_ZINK == "1" ]] \
|| [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then
unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
fi fi
@ -3842,7 +3863,6 @@ fi
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \
&& [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
&& [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then
export DXVK_ASYNC="1"
if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_WINE_FILES="" CP_WINE_FILES=""
@ -3860,14 +3880,13 @@ fi
else add_to_var CP_WINE_FILES "d3d8" else add_to_var CP_WINE_FILES "d3d8"
fi fi
fi fi
if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \ if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" ]] \
|| [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" && -f "${WINEDIR}/lib/vkd3d/x86_64-windows/libvkd3d-1.dll" ]] ; then || [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" ]] ; then
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12 d3d12core"
elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" ]] ; then elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" ]] ; then
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12"
add_to_var CP_WINE_FILES "d3d12core" add_to_var CP_WINE_FILES "d3d12core"
else else
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
add_to_var CP_WINE_FILES "d3d12 d3d12core" add_to_var CP_WINE_FILES "d3d12 d3d12core"
fi fi
[[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2" [[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2"
@ -3918,17 +3937,9 @@ fi
0) 0)
rm_from_var CP_WINE_FILES "d3d9 d3d8" rm_from_var CP_WINE_FILES "d3d9 d3d8"
;; ;;
1) 1|2|6)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
2)
rm_from_var CP_DXVK_FILES "d3d9 d3d8" rm_from_var CP_DXVK_FILES "d3d9 d3d8"
;; ;;
3)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
esac esac
fi fi
fi fi
@ -3945,7 +3956,7 @@ fi
done done
# DGVOODOO2 settings: # DGVOODOO2 settings:
if [[ "${PW_DGV2_USE_DX12}" == "1" ]] ; then if [[ "${PW_DGV2_USE_DX12}" == "1" ]] ; then
if [[ "${PW_VULKAN_USE}" == "1" ]] || [[ "${PW_VULKAN_USE}" == "2" ]] if [[ "${PW_VULKAN_USE}" =~ ^(1|2|6)$ ]]
then sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF" then sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF"
fi fi
fi fi
@ -4153,9 +4164,9 @@ fi
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll" try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll" try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
else else
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll" try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll" try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll" try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
fi fi
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b" var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
else else
@ -4172,30 +4183,29 @@ fi
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi
if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then
try_force_link_file "${WINEDIR}/lib/vkd3d/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib/vkd3d/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi ;; fi ;;
1) 1)
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi
if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then
try_force_link_file "${WINEDIR}/lib/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi ;; fi ;;
0) 0)
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" ;; try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" ;;
esac esac
[[ ! $wine_vkd3d_dll =~ libvkd3d ]] && var_winedlloverride_update "${wine_vkd3d_dll}=n" var_winedlloverride_update "${wine_vkd3d_dll}=n"
done done
create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache" create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache"
export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache" export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache"
fi fi
# некоторым играм для любых 3D api для правильной работы wined3d необходимо чтобы эти библиотеки всегда были
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" # используется git версия
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-shader-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-shader-1.dll"
# GALLIUM NINE # GALLIUM NINE
if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then
PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}" PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
@ -4577,9 +4587,6 @@ pw_run () {
export WINE_LARGE_ADDRESS_AWARE="1" export WINE_LARGE_ADDRESS_AWARE="1"
fi fi
check_variables SteamAppId "0"
check_variables SteamGameId "0"
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log" PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
@ -4758,6 +4765,7 @@ portwine_launch () {
[[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME" [[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME"
if [[ -n "${LAUNCH_URI}" ]] ; then if [[ -n "${LAUNCH_URI}" ]] ; then
export WINEFSYNC="1"
pw_run start /high /b "${LAUNCH_URI}" & pw_run start /high /b "${LAUNCH_URI}" &
unset GAMEPID unset GAMEPID
while true ; do while true ; do
@ -5114,57 +5122,77 @@ gui_proton_downloader () {
pw_start_progress_bar_block "${translations[Check new version WINE...]}" pw_start_progress_bar_block "${translations[Check new version WINE...]}"
METADATA_URL="https://git.linux-gaming.ru/Boria138/PortProton-Wine-Metadata/raw/branch/main/wine_metadata.json"
METADATA=$(curl -s "$METADATA_URL")
if [[ -z "$METADATA" ]] ; then
yad_error "${translations[Error: failed to fetch metadata.]}"
restart_pp
fi
# PROTON_GE # PROTON_GE
read -r -d '' -a PROTON_GE_GIT < <(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4) PROTON_GE_GIT=($(echo "$METADATA" | jq -r '.proton_ge[]?.name' 2>/dev/null))
if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_GE_GIT[@]}" ; do for PGEGIT in "${PROTON_GE_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_ge_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
done done
sed -i -e '/Proton-6.5-GE-2/,$d' -e '/github-action/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git"
fi fi
# WINE_KRON4EK # WINE_KRON4EK
read -r -d '' -a WINE_KRON4EK < <(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4) WINE_KRON4EK=($(echo "$METADATA" | jq -r '.wine_kron4ek[]?.name' 2>/dev/null))
if [[ -n "${WINE_KRON4EK[0]}" ]] ; then if [[ -n "${WINE_KRON4EK[0]}" ]] ; then
for PGEGIT in "${WINE_KRON4EK[@]}" ; do for PGEGIT in "${WINE_KRON4EK[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
done done
sed -i -e '/6.3/,$d' -e '/-x86/d' -e '/-wow64/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
fi fi
# PROTON_LG # PROTON_LG
read -r -d '' -a PROTON_PW_GIT < <(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r) PROTON_PW_GIT=($(echo "$METADATA" | jq -r '.proton_lg[]?.name' 2>/dev/null))
if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then
for PPWGIT in "${PROTON_PW_GIT[@]}" ; do for PPWGIT in "${PROTON_PW_GIT[@]}" ; do
echo "${PPWGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_pw_git" echo "${PPWGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
done
sed -i -e "/${PW_WINE_LG_VER}/d" -e '/plugins/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git"
fi
# PROTON_CACHYOS
read -r -d '' -a PROTON_CACHYOS_GIT < <(curl -s "https://api.github.com/repos/CachyOS/proton-cachyos/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | grep -v "v3" | grep -v "znver4")
if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
done done
fi fi
# PROTON_SAREK # PROTON_CACHYOS
read -r -d '' -a PROTON_SAREK_GIT < <(curl -s "https://api.github.com/repos/pythonlover02/Proton-Sarek/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4) PROTON_CACHYOS_GIT=($(echo "$METADATA" | jq -r '.proton_cachyos[]?.name' 2>/dev/null))
if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then
# The Pentium/Celeron don't have the full instruction set, but /lib/ld-linux-x86-64.so.2 --help | grep -B 3 -E “x86-64” says otherwise, so this is where checking all flags comes in (code from https://dl.xanmod.org/check_x86-64_psabi.sh)
CPU_LEVEL=$(awk '
BEGIN {
while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
if (level > 0) { print level; exit level + 1 }
exit 1
}' /proc/cpuinfo)
for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do
if [[ "$PGEGIT" =~ v3 ]] && [[ "$CPU_LEVEL" -lt 3 ]]; then
continue
else
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
fi
done
fi
# PROTON_SAREK
PROTON_SAREK_GIT=($(echo "$METADATA" | jq -r '.proton_sarek[]?.name' 2>/dev/null))
if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
done done
fi fi
# Proton-EM # PROTON_EM
read -r -d '' -a PROTON_EM_GIT < <(curl -s "https://api.github.com/repos/Etaash-mathamsetty/Proton/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4) PROTON_EM_GIT=($(echo "$METADATA" | jq -r '.proton_em[]?.name' 2>/dev/null))
if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_EM_GIT[@]}" ; do for PGEGIT in "${PROTON_EM_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_em_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
done done
fi fi
pw_stop_progress_bar pw_stop_progress_bar
if [[ -z "${PROTON_PW_GIT}" ]] ; then if [[ -z "${PROTON_PW_GIT}" ]] ; then
@ -5287,17 +5315,31 @@ gui_proton_downloader () {
fi fi
pw_download_get_wine () { pw_download_get_wine () {
print_info "Download and install ${VERSION_WINE_GIT}..." local VERSION="$1"
FILENAME="$(basename "${URL_VERSION_PROTON_GIT}")" print_info "Download and install ${VERSION}..."
if [[ "${URL_VERSION_PROTON_GIT}" =~ _LG ]] URL_VERSION_PROTON_GIT=$(echo "$METADATA" | jq -r --arg version "$VERSION" '[
then USE_MIRROR="" (.proton_ge[] | select(.name == $version) | .url),
else USE_MIRROR="no_mirror" (.wine_kron4ek[] | select(.name == $version) | .url),
(.proton_lg[] | select(.name == $version) | .url),
(.proton_cachyos[] | select(.name == $version) | .url),
(.proton_sarek[] | select(.name == $version) | .url),
(.proton_em[] | select(.name == $version) | .url)
] | .[]' | head -n 1)
if [[ -z "$URL_VERSION_PROTON_GIT" ]]; then
yad_error "${translations[Error: no URL found for version ${VERSION}.]}"
return 1
fi
FILENAME=$(echo "$URL_VERSION_PROTON_GIT" | awk -F/ '{print $NF}')
if [[ "$URL_VERSION_PROTON_GIT" =~ _LG ]]; then
USE_MIRROR=""
else
USE_MIRROR="no_mirror"
fi fi
if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" "$USE_MIRROR" ; then if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" "$USE_MIRROR" ; then
if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}" try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}"
if [[ -n "${portwine_exe}" ]] ; then if [[ -n "${portwine_exe}" ]] ; then
PW_WINE_USE=${VERSION_WINE_GIT^^} PW_WINE_USE=${VERSION^^}
edit_db_from_gui PW_WINE_USE edit_db_from_gui PW_WINE_USE
fi fi
else else
@ -5331,23 +5373,12 @@ gui_proton_downloader () {
if [[ "$1" != "silent" ]] ; then if [[ "$1" != "silent" ]] ; then
for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do pw_download_get_wine "$GIVE_ALL_WINE"
if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^}.TAR ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
done done
edit_db_from_gui edit_db_from_gui
restart_pp restart_pp
else else
print_error "$PW_WINE_USE" pw_download_get_wine "$VERSION_WINE_GIT"
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
fi fi
} }
export -f gui_proton_downloader export -f gui_proton_downloader
@ -5355,19 +5386,26 @@ export -f gui_proton_downloader
# GUI EDIT_DB # GUI EDIT_DB
gui_edit_db () { gui_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM KEY_EDIT_DB_GUI=$RANDOM
PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_GAMESCOPE PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2
PW_USE_ESYNC PW_USE_FSYNC PW_USE_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_OPTISCALER PW_USE_ESYNC PW_USE_FSYNC PW_USE_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_OPTISCALER
PW_USE_LS_FRAME_GEN PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_LS_FRAME_GEN PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS
PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER
PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE
PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR PW_GAMESCOPE
) )
if check_wayland_session
then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT
else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
fi
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] || [[ $PW_VULKAN_USE == "0" ]] ; then
rm_from_array "PW_EDIT_DB_LIST" PW_USE_SUPPLIED_DXVK_VKD3D
fi
check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME
# GALLIUM NINE # GALLIUM NINE
[[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE [[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE
[[ $PW_VULKAN_USE == "1" ]] && add_to_array "PW_EDIT_DB_LIST" PW_USE_SAREK_ASYNC
PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]} PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]}
PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]} PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]}
@ -5415,6 +5453,7 @@ gui_edit_db () {
PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]}
PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]} PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]}
PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]} PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]}
PW_USE_SAREK_ASYNC_INFO=${translations[Use async version of dxvk-sarek. (May work better or vice versa)]}
# PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]} # PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]}
# PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]} # PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]}
@ -5427,27 +5466,20 @@ gui_edit_db () {
VKD3D_CB="DCB" VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN" DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN"
;; ;;
1|2) 1|2|6)
# Stable, Newest # Sarek, Newest
VKD3D_CB="CB" VKD3D_CB="CB"
;; ;;
3)
# Legacy
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING"
;;
esac esac
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
|| [[ $PW_VULKAN_USE == "0" ]] ; then
DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D"
fi
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC" [[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC"
if check_wayland_session if ! check_flatpak \
then DISABLE_EDIT_DB_LIST+=" PW_USE_US_LAYOUT" && [[ $(ldd --version | head -n 1 | awk '{print $4}') < 2.38 ]]
else DISABLE_EDIT_DB_LIST+=" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR" then
DISABLE_EDIT_DB_LIST+=" PW_USE_LS_FRAME_GEN"
export PW_USE_LS_FRAME_GEN="0"
PW_USE_LS_FRAME_GEN_INFO=${translations[GLIBC version 2.38+ is required for use Lossless Scaling frame generation]}
fi fi
unset ADD_CHK_BOX_EDIT_DB unset ADD_CHK_BOX_EDIT_DB
@ -5518,6 +5550,14 @@ gui_edit_db () {
AMD_VULKAN_VAR="disabled" AMD_VULKAN_VAR="disabled"
fi fi
[[ $AMD_VULKAN_CB == ":LBLH" ]] && translations[Select needed AMD vulkan implementation]=""
if [[ $NUMA_NODE_LIST == "0" ]] ; then
NUDA_CPU_CB=":LBLH"
translations[NUMA node for CPU affinity]=""
else
NUDA_CPU_CB=":CB"
fi
"${pw_yad}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \ "${pw_yad}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \
--field="${translations[Change the version of <b>WINDOWS</b> emulation]}!${translations[Changing the <b>WINDOWS</b> emulation version may be required to run older games. <b>WINDOWS</b> versions below 10 do not support new games with DirectX 12]} :CB" "${ADD_WINVER_EDIT_DB}" \ --field="${translations[Change the version of <b>WINDOWS</b> emulation]}!${translations[Changing the <b>WINDOWS</b> emulation version may be required to run older games. <b>WINDOWS</b> versions below 10 do not support new games with DirectX 12]} :CB" "${ADD_WINVER_EDIT_DB}" \
--field="${translations[AUTOINSTALL WITH <b>WINETRICKS</b>]}!${translations[Automatically install with <b>WINETRICKS</b> additional libraries required to run the game/program. List of libraries separated by spaces]} :CBE" "$(combobox_fix --empty "${PW_DLL_INSTALL}" "vcrun2019 corefonts lucida")" \ --field="${translations[AUTOINSTALL WITH <b>WINETRICKS</b>]}!${translations[Automatically install with <b>WINETRICKS</b> additional libraries required to run the game/program. List of libraries separated by spaces]} :CBE" "$(combobox_fix --empty "${PW_DLL_INSTALL}" "vcrun2019 corefonts lucida")" \
@ -5542,7 +5582,7 @@ mailbox - Triple buffering. Unlimited frame rate + no tearing.
relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \
--field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \ --field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \
--field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores. --field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} :CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \ Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} $NUDA_CPU_CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null & 1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \ "${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \
@ -6021,7 +6061,7 @@ gui_dgvoodoo2 () {
PW_DGV2_INACTIVE_APP_STATE PW_DGV2_INACTIVE_APP_STATE
) )
PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)]} PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)]}
PW_DGV2_FORCE_VSYNC_INFO=${translations[Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)]} PW_DGV2_FORCE_VSYNC_INFO=${translations[Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)]}
PW_DGV2_DGVOODOO_WATERMARK_INFO=${translations[Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)]} PW_DGV2_DGVOODOO_WATERMARK_INFO=${translations[Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)]}
PW_DGV2_ENABLE_CRT_INFO=${translations[CRT-like blurred appearance. (Direct3D and Glide settings)]} PW_DGV2_ENABLE_CRT_INFO=${translations[CRT-like blurred appearance. (Direct3D and Glide settings)]}
@ -6046,7 +6086,7 @@ gui_dgvoodoo2 () {
[[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING [[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING
case "${PW_VULKAN_USE}" in case "${PW_VULKAN_USE}" in
0|3) 0)
DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 DISABLE_DGV2_LIST="PW_DGV2_USE_DX12
" "
;; ;;
@ -6490,7 +6530,6 @@ gui_userconf () {
if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then
if [[ ${PW_ADD_SETTINGS_UC[1]} == "DEVEL" ]] ; then if [[ ${PW_ADD_SETTINGS_UC[1]} == "DEVEL" ]] ; then
if yad_question "${translations[Do you actually want to change the scripts version to:]} <b>DEVEL?</b>" ; then if yad_question "${translations[Do you actually want to change the scripts version to:]} <b>DEVEL?</b>" ; then
export MIRROR="GITHUB"
pw_notify_send -i info \ pw_notify_send -i info \
"${translations[Branch changed to:]}" "<b>DEVEL</b>" "${translations[Branch changed to:]}" "<b>DEVEL</b>"
BRANCH="devel" BRANCH="devel"
@ -6729,20 +6768,6 @@ get_lnk_path () {
link_path=$(echo "$1" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/${prefix_name:-${PW_PREFIX_NAME:-DEFAULT}}/dosdevices/${link_drive}|g" | sed 's/\\/\//g') link_path=$(echo "$1" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/${prefix_name:-${PW_PREFIX_NAME:-DEFAULT}}/dosdevices/${link_drive}|g" | sed 's/\\/\//g')
} }
get_lnk () {
if command -v exiftool &>/dev/null ; then
if timeout 3 exiftool "$1" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
parse_lnk "$1"
else
print_error "exiftool - broken!"
fi
else
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$1" &> "${PW_TMPFS_PATH}/exiftool.tmp"
parse_lnk "$1"
fi
}
pw_auto_create_shortcut () { pw_auto_create_shortcut () {
if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \ if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \
|| [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \ || [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \
@ -6788,7 +6813,8 @@ pw_auto_create_shortcut () {
read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ') read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')
for link_file in "${SORTED_LINKS[@]//#@_@#/ }" ; do for link_file in "${SORTED_LINKS[@]//#@_@#/ }" ; do
get_lnk "${link_file}" use_exiftool "${link_file}"
parse_lnk "${link_file}"
if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then
print_warning "Link broken for: $link_name" print_warning "Link broken for: $link_name"
else else
@ -7080,9 +7106,9 @@ portwine_start_debug () {
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
case "$PW_VULKAN_USE" in case "$PW_VULKAN_USE" in
0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;; 0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;;
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_SAREK_VER}, VKD3D-PROTON v.${VKD3D_SAREK_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_NEW_VER}, VKD3D-PROTON v.${VKD3D_NEW_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 6) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_OLD_VER}, VKD3D-PROTON v.${VKD3D_OLD_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
*) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
esac esac
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"

View File

@ -277,14 +277,15 @@ if [[ -z $SORT_WITH_TIME ]] ; then
fi fi
# TODO:fixes_after_update (со временем можно будет дропнуть) # TODO:fixes_after_update (со временем можно будет дропнуть)
if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then # Оставил для примера
DESKTOP_WITH_TIME="posnumber1" # if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then
edit_user_conf_from_gui DESKTOP_WITH_TIME # DESKTOP_WITH_TIME="posnumber1"
fi # edit_user_conf_from_gui DESKTOP_WITH_TIME
if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then # fi
SORT_WITH_TIME="lastlaunch" # if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then
edit_user_conf_from_gui SORT_WITH_TIME # SORT_WITH_TIME="lastlaunch"
fi # edit_user_conf_from_gui SORT_WITH_TIME
# fi
# choose wine dpi default # choose wine dpi default
if [[ -z $PW_WINE_DPI_VALUE ]] ; then if [[ -z $PW_WINE_DPI_VALUE ]] ; then
@ -307,6 +308,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
export PW_FILESYSTEM export PW_FILESYSTEM
background_pid --start "pw_get_tmp_files" "1" background_pid --start "pw_get_tmp_files" "1"
background_pid --start "pw_check_glxinfo" "2"
fi fi
# create lock file # create lock file
@ -495,6 +497,14 @@ esac
### GUI ### ### GUI ###
INFO_3DAPI=${translations[Select DXVK and VKD3D versions for DirectX to Vulkan translation:
- The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+
- Stable ones work with any drivers, provided that the video card supports Vulkan version 1.3+
- Sarek works with almost any video card that supports Vulkan
- WineD3D OpenGL works on any PC, but with low performance and old games]}
INFO_WINE=${translations[Selecting a WINE version.]}
INFO_PREFIX=${translations[Select a prefix to launch the game/application (if you enter a non-existent name, a new prefix will be created).]}
unset PW_ADD_PREFIXES_TO_GUI unset PW_ADD_PREFIXES_TO_GUI
if [[ -d "${PORT_WINE_PATH}/data/prefixes/" ]] ; then if [[ -d "${PORT_WINE_PATH}/data/prefixes/" ]] ; then
for PAIG in "${PORT_WINE_PATH}"/data/prefixes/* ; do for PAIG in "${PORT_WINE_PATH}"/data/prefixes/* ; do
@ -520,16 +530,9 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}"
fi fi
SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}"
SORT_LEGACY="${translations[Legacy DXVK (Vulkan v1.1)]}" SORT_SAREK="${translations[DXVK, VKD3D (Sarek) (Vulkan v1.1+)]}"
SORT_STABLE="${translations[Stable DXVK, VKD3D (Vulkan v1.2)]}" SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}"
SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}" SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;;
3|5) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;;
esac
if [[ $PW_WINE_USE == PROTON_LG ]] ; then if [[ $PW_WINE_USE == PROTON_LG ]] ; then
PW_WINE_USE="${PW_PROTON_LG_VER}" PW_WINE_USE="${PW_PROTON_LG_VER}"
@ -556,6 +559,24 @@ if [[ -f "$portwine_exe" ]] ; then
unset RESTART_PP_USED unset RESTART_PP_USED
gui_userconf gui_userconf
fi fi
if [[ -z $PW_VULKAN_USE ]] \
|| [[ $PW_VULKAN_USE == [3-5] ]]
then
if [[ -e "/sys/module/nvidia/version" ]] ;then
if [[ $(</sys/module/nvidia/version) > 550.54.13 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
else
background_pid --stop "pw_check_glxinfo" "2"
if [[ $(grep "Version:" "$PW_TMPFS_PATH/glxinfo.tmp" | awk '{print $2}') > 24.9.9 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
fi
fi
if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then
pw_create_gui_png pw_create_gui_png
if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then
@ -575,27 +596,39 @@ if [[ -f "$portwine_exe" ]] ; then
fi fi
fi fi
export KEY_START="$RANDOM" case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
2) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
esac
KEY_START="$RANDOM"
"$pw_yad" --plug=$KEY_START --tabnum="1" --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "$PW_TMPFS_PATH/tmp_yad_form_vulkan" 2>/dev/null &
if [[ $PW_GUI_START == "NOTEBOOK" ]]
then PW_GUI_START_TABNUM2="--columns=$START_GUI_NOTEBOOK_COLUMNS --gui-type-layout=$START_GUI_TYPE_LAYOUT_NOTEBOOK"
elif [[ $PW_GUI_START == "PANED" ]]
then PW_GUI_START_TABNUM2="--columns=$START_GUI_PANED_COLUMNS --gui-type-layout=$START_GUI_TYPE_LAYOUT_PANED --homogeneous-row"
fi
"$pw_yad" --plug=$KEY_START --tabnum="2" --form --align-buttons --homogeneous-column $PW_GUI_START_TABNUM2 \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
"${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_NOTEBOOK_COLUMNS" --align-buttons --homogeneous-column \
--gui-type-layout="$START_GUI_TYPE_LAYOUT_NOTEBOOK" \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
if [[ "$PW_YAD_FORM_TAB" == "1" ]] \ if [[ "$PW_YAD_FORM_TAB" == "1" ]] \
&& [[ -n "$TAB_START" ]] && [[ -n "$TAB_START" ]]
then then
@ -604,53 +637,24 @@ if [[ -f "$portwine_exe" ]] ; then
else else
export TAB_START="1" export TAB_START="1"
fi fi
PW_GUI_START_TABNUM3="--notebook --active-tab=$TAB_START --gui-type=settings-notebook --expand"
"${pw_yad}" --key=$KEY_START --notebook --active-tab="$TAB_START" \
--gui-type="settings-notebook" \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" --expand \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
export PW_YAD_FORM_TAB="1"
elif [[ $PW_GUI_START == "PANED" ]] ; then elif [[ $PW_GUI_START == "PANED" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \ PW_GUI_START_TABNUM3="--paned --gui-type=settings-paned"
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
"${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_PANED_COLUMNS" \
--gui-type-layout="$START_GUI_TYPE_LAYOUT_PANED" \
--align-buttons --homogeneous-row --homogeneous-column \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
"${pw_yad}" --key=$KEY_START --paned \
--gui-type="settings-paned" \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
fi fi
"$pw_yad" --key=$KEY_START $PW_GUI_START_TABNUM3 \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
[[ $PW_GUI_START == "NOTEBOOK" ]] && export PW_YAD_FORM_TAB="1"
case "$PW_YAD_SET" in case "$PW_YAD_SET" in
128) 128)
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
@ -822,6 +826,8 @@ else
else export PW_GUI_SORT_TABS=(2 3 4 5 1) else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi fi
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL"
KEY_MENU="$RANDOM" KEY_MENU="$RANDOM"
IFS="%" IFS="%"
@ -845,9 +851,9 @@ else
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \ "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \
--gui-type-layout="$MAIN_MENU_GUI_TYPE_LAYOUT" \ --gui-type-layout="$MAIN_MENU_GUI_TYPE_LAYOUT" \
--field=" 3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \ --field=" 3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \ --field=" PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \ --field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="${translations[Create prefix backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \ --field="${translations[Create prefix backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \
--field=" Winetricks!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run winetricks to install additional libraries to the selected prefix]}":"FBTN" '@bash -c "button_click --normal WINETRICKS"' \ --field=" Winetricks!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run winetricks to install additional libraries to the selected prefix]}":"FBTN" '@bash -c "button_click --normal WINETRICKS"' \
--field=" ${translations[Clear prefix]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Clear the prefix to fix problems]}":"FBTN" '@bash -c "button_click --normal gui_clear_pfx"' \ --field=" ${translations[Clear prefix]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Clear the prefix to fix problems]}":"FBTN" '@bash -c "button_click --normal gui_clear_pfx"' \
@ -967,9 +973,9 @@ fi
case "${VULKAN_MOD}" in case "${VULKAN_MOD}" in
"$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;; "$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;;
"$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_SAREK" ) export PW_VULKAN_USE="1" ;;
"$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; "$SORT_STABLE" ) export PW_VULKAN_USE="2" ;;
"$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="6" ;;
esac esac
init_wine_ver init_wine_ver

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru) #Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2435 #SCRIPTS_NEXT_VERSION=2438
#SCRIPTS_STABLE_VERSION=2435 #SCRIPTS_STABLE_VERSION=2435
######################################################################## ########################################################################
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
@ -14,8 +14,8 @@ export PW_USE_RUNTIME="1"
export PW_RT_MOUNT_RO=("") export PW_RT_MOUNT_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}") export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}" #export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
export PW_USE_ESYNC="1" export PW_USE_ESYNC="0"
export PW_USE_FSYNC="1" export PW_USE_FSYNC="0"
export PW_USE_NTSYNC="0" export PW_USE_NTSYNC="0"
export PW_USE_GAMEMODE="0" export PW_USE_GAMEMODE="0"
export PW_USE_TERMINAL="0" export PW_USE_TERMINAL="0"
@ -43,26 +43,27 @@ export PW_USE_GALLIUM_NINE="0"
export PW_USE_GALLIUM_ZINK="0" export PW_USE_GALLIUM_ZINK="0"
export PW_USE_WINED3D_VULKAN="0" export PW_USE_WINED3D_VULKAN="0"
export PW_USE_SUPPLIED_DXVK_VKD3D="1" export PW_USE_SUPPLIED_DXVK_VKD3D="1"
export PW_USE_SAREK_ASYNC="0"
export WINEUSERNAME="steamuser" export WINEUSERNAME="steamuser"
###DEFAULT_WINE### ###DEFAULT_WINE###
export PW_WINE_USE="PROTON_LG" export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v20" export PW_PLUGINS_VER="_v20"
export PW_OPTISCALER_VER="v1" export PW_OPTISCALER_VER="v02-0.7.7-pre12"
export PW_GALLIUM_NINE_VER="0.10" export PW_GALLIUM_NINE_VER="0.10"
export PW_LSFG_VK_VER="3.1-p11-cebe5e2" export PW_LSFG_VK_VER="3.1-p11-cebe5e2"
###WINE_AND_PROTON_LG### ###WINE_AND_PROTON_LG###
export PW_PROTON_LG_VER="PROTON_LG_10-8" export PW_PROTON_LG_VER="PROTON_LG_10-10"
export PW_WINE_LG_VER="WINE_LG_10-12" export PW_WINE_LG_VER="WINE_LG_10-12"
export PW_WINE_FULLSCREEN_FSR="1" export PW_WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_MODE="ultra" export WINE_FULLSCREEN_FSR_MODE="ultra"
###DXVK_AND_VKD3D### ###DXVK_AND_VKD3D###
export PW_VULKAN_USE="2"
export VKD3D_LIMIT_TESS_FACTORS="64" export VKD3D_LIMIT_TESS_FACTORS="64"
export DXVK_LEGACY_VER="1.6.1" export DXVK_NEW_VER="2.7-5"
export DXVK_STABLE_VER="1.10.3-28" export DXVK_OLD_VER="2.6.2"
export DXVK_GIT_VER="2.6.1-368" export DXVK_SAREK_VER="sarek-1.11.0"
export VKD3D_STABLE_VER="1.1-2602" export VKD3D_NEW_VER="1.1-4666"
export VKD3D_GIT_VER="1.1-4655" export VKD3D_OLD_VER="2.14.1"
export VKD3D_SAREK_VER="sarek-2.6.0"
###VKBASALT### ###VKBASALT###
export PW_VKBASALT_EFFECTS="Curves:cas" export PW_VKBASALT_EFFECTS="Curves:cas"
export PW_VKBASALT_FFX_CAS="0.50" export PW_VKBASALT_FFX_CAS="0.50"