diff --git a/README-RU.md b/README-RU.md new file mode 100755 index 00000000..2b10f3f8 --- /dev/null +++ b/README-RU.md @@ -0,0 +1,203 @@ +
+ +

PortProton

+

Проект, призванный сделать запуск Windows-игр в Linux простым и удобным как для начинающих, так и для опытных пользователей. +Проект стремится сделать запуск игр (и другого программного обеспечения) максимально простым, но в то же время предоставляет гибкие настройки для опытных пользователей.

+
+ +# **Язык README** +**Русский** - [English](README.md) + +## Внимание +**Официальный сайт проекта** с сентября 2022 года: https://linux-gaming.ru. **Любой другой сайт - фальшивка!** + +## Особенности + +- Основан на версии WINE от Valve (Proton) и ее модификациях (Proton GE). +Включает набор скриптов, объединенных с самим wine-proton, контейнер Steam Runtime Sniper с добавлением портированных версий MANGOHUD (вывод полезной информации в окно игры: FPS, FrameTime, CPU, GPU и т.д.) и vkBasalt (улучшение графики в играх, очень хорош в связке с FSR, DLSS) + множество уже настроенных оптимизаций для максимальной производительности. + +- Реализована автоматическая установка одним щелчком мыши (на вкладке АВТОУСТАНОВКА) популярных лаунчеров, таких как: WGC, Epic Games, Battle.net, Origin, EVE Online, RockStar, Ubisoft connect , League of Legends и многие другие. + +- Для любителей консольных игр предлагается множество эмуляторов консолей (на вкладке ЭМУЛЯТОРЫ ): PPSSPP, Citra, Cemu, ePSXe, MAME и многие другие.. + +**ПОЖАЛУЙСТА, НЕ СООБЩАЙТЕ О НАЙДЕННЫХ ОШИБКАХ В WINEHQ ИЛИ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ VALVE!** + +## **Ссылка на исходный код версий wine используемых в PortProton:** + +* WINE-PROTON: https://github.com/ValveSoftware/Proton + +* WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/ + +## Установка с помощью пакетов + +* **Ubuntu 20.04** (Kubuntu, Xubuntu, Lubuntu, и т.д.), **Linux Mint 20.x** : +[portproton_1.0-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.0-2_amd64/portproton_1.0-2_amd64.deb) +* **Arch Linux** и производные (Manjaro, Garuda, и т.д.) : +[AUR](https://aur.archlinux.org/packages/portproton) +* **ROSA Linux** устанавливается с помощью этой команды: + +```sh +sudo urpmi portproton +``` + +* **Fedora 37+** and **Nobara**: + +```sh +sudo dnf copr enable boria138/portproton + +sudo dnf install portproton +``` + +* [**openSUSE Leap 15.4**](https://software.opensuse.org/ymp/home:Boria138/15.4/portproton.ymp?base=openSUSE%3ALeap%3A15.4&query=portproton) +* [**openSUSE Leap 15.5**](https://software.opensuse.org/ymp/home:Boria138/15.5/portproton.ymp?base=openSUSE%3ALeap%3A15.5&query=portproton) +* [**openSUSE Tumbleweed**](https://software.opensuse.org/ymp/home:Boria138/openSUSE_Tumbleweed/portproton.ymp?base=openSUSE%3AFactory&query=portproton) + +* **Alt Linux** устанавливается с помощью этой команды: + +```sh +su - + +epm ei + +epm full-upgrade + +epm play portproton + +exit +``` + +## Универсальный (ручной) метод установки + +**ВНИМАНИЕ** : при универсальном способе установки PortProton зависимости должны быть установлены вручную! + +Нормальная установка: + +```sh +wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 +``` + +Тихая установка (ENG): + +```sh +wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -eng +``` + +Тихая установка (RUS): + +```sh +wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -rus +``` + +## Зависимости + +* **Пользователи карт NVIDIA** + +Если у вас видеокарта от NVIDIA и установлен проприетарный драйвер, то необходимо проверить, установлена ли lib32-nvidia-utils (без нее ни одна 32-битная игра не будет работать) + +* **Ubuntu / Linux Mint / Pop!_OS** + +```sh +sudo dpkg --add-architecture i386 + +sudo add-apt-repository multiverse + +sudo apt update + +sudo apt upgrade + +sudo apt install curl file libc6 libnss3 policykit-1 xz-utils zenity bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386 wget zenity zstd cabextract xdg-utils openssl bc libgl1-mesa-glx libgl1-mesa-glx:i386 +``` + +* **Arch Linux / Manjaro** + +Сперва проверьте включён ли **multilib** репозиторий + +```sh +/etc/pacman.conf +=================================== +[multilib] +Include = /etc/pacman.d/mirrorlist +==================================== +``` + +```sh +sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl gamemode desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font zenity gzip nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-gamemode lib32-openssl +``` + +Если у вас видеокарта от **NVIDIA**, обязательно проверьте, установлен ли пакет **lib32-nvidia-utils**. + +```sh +sudo pacman -Syu lib32-nvidia-utils +``` + +* **Debian/Deepin** + +```sh +sudo apt install software-properties-common -y + +sudo apt-add-repository non-free + +sudo dpkg --add-architecture i386 + +sudo apt update + +sudo apt upgrade + +sudo apt install bubblewrap curl gamemode icoutils tar wget zenity zstd libvulkan1 libvulkan1:i386 steam cabextract +``` + +* **openSUSE** + +```sh +sudo zypper install curl icoutils wget zenity bubblewrap zstd cabextract tar steam zenity zenity-lang gamemoded libgamemode0 libgamemodeauto0 +``` + +* **Fedora** + +```sh +sudo dnf update + +sudo dnf upgrade --refresh + +sudo dnf install curl gamemode gamemode.i686 icoutils wget zenity bubblewrap zstd cabextract tar openssl mesa-dri-drivers.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-loader vulkan-loader.i686 nss.i686 alsa-lib.i686 mesa-libGL.i686 mesa-libEGL.i686 wmctrl ImageMagick +``` + +* **Alt Linux** + +```sh +sudo apt-get update + +sudo apt-get dist-upgrade -y + +sudo apt-get install bubblewrap cabextract curl gamemode icoutils i586-libvulkan1 libvulkan1 steam vulkan-tools wget zenity zstd +``` + +* **ROSA DESKTOP FRESH R12** + +```sh +sudo dnf update + +sudo dnf upgrade --refresh + +sudo dnf install sysvinit-tools curl libcurl4 icoutils wget zenity bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl bc libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686 +``` + +* **RED OS** + +```sh +sudo -E dnf install curl icoutils libcurl wget zenity bubblewrap zstd cabextract tar goverlay openssl steam +``` + +* **Solus 4.x** + +```sh +sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cabextract xdg-utils openssl bc vulkan vulkan-32bit mesalib-32bit samba +``` + +## Контакты + +

+ + chat on Discord +

diff --git a/README.md b/README.md index 279aebb7..ec68caeb 100755 --- a/README.md +++ b/README.md @@ -5,6 +5,9 @@ The project strives to make launching games (and other software) as simple as possible, but at the same time provides flexible settings for advanced users.

+# **Readme Language** +**English** - [Русский](README-RU.md) + ## Attention The **official website of the project** since September 2022: https://linux-gaming.ru. **Any other site is fake!** @@ -195,6 +198,6 @@ sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cab

- chat on Discord

diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 8de2e074..5763bfad 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -202,6 +202,15 @@ var_vk_istance_layers_config_update () { return 0 } +var_ld_library_path_update() { + if [ ! -z "${LD_LIBRARY_PATH}" ]; then + export LD_LIBRARY_PATH="$1:$LD_LIBRARY_PATH" + else + export LD_LIBRARY_PATH="$1" + fi + return 0 +} + unpack_tar_zst () { set -o pipefail unset PW_ZSTD_PORT @@ -818,7 +827,7 @@ pw_check_and_download_plugins () { } check_nvidia_rtx () { - if echo "$LSPCI_VGA" | grep -i "nvidia" ; then + if [[ $(echo "$LSPCI_VGA" | grep -i "nvidia") ]] ; then # Turing (without nvidia 16XX) [[ "$LSPCI_VGA" == *TU[0-9]* ]] && [[ "$LSPCI_VGA" != *TU11[6-7]* ]] && return 0 # Ampere @@ -830,7 +839,7 @@ check_nvidia_rtx () { } check_hybrid_graphicks () { - if echo "$LSPCI_VGA" | grep -i nvidia | grep -iE '(intel|amd)' + if [[ $(echo "$LSPCI_VGA" | grep -i nvidia | grep -i -E '(intel|amd)') ]] then return 0 else return 1 fi diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index fc2214bf..fc7d3275 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -30,6 +30,18 @@ if [[ "${update_loc}" == "RUS" ]] ; then export loc_gui_scripts_fb="Откатить версию скриптов" export loc_gui_credits="Авторы и спасибы =)" + export loc_gui_clear_pfx="Очистить префикс" + export loc_gui_download_other_wine="Скачать другую версию wine" + export loc_gui_create_pfx_backup="Создать резервную копию префикса" + + export loc_create_pfx_backup_path="РЕЗЕРВНОЕ КОПИРОВАНИЕ ПРЕФИКСА В..." + + export loc_gui_wine_uninstaller="Удаление программм" + export loc_gui_wine_cfg="Настройка префикса" + export loc_gui_wine_file="Файловый менеджер" + export loc_gui_wine_cmd="Коммандная строка" + export loc_gui_wine_reg="Редактор реестра" + export loc_tray_winefile="Файловый менеджер WINE" export loc_tray_tascmng="Диспетчер задач WINE" export loc_tray_cangelog="История изменений" @@ -96,10 +108,13 @@ if [[ "${update_loc}" == "RUS" ]] ; then export loc_winefile="Запустить файловый менеждер встроенный в wine" export loc_winecmd="Запустить командную строку wine" export loc_winereg="Запустить редактор реестра выбранного префикса" + export loc_wineuninstaller="Запустить средство удаление программ встроенное в wine" export loc_winetricks="Запустить префикс менеджер для установки доп. библиотек в выбранный префикс" export loc_edit_db="Изменить файл настроек для" export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON" + export loc_clear_pfx="Очистить префикс для исправления проблем" + export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)' export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)' export PW_NO_FSYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе фьютексов. (Автоматически отключается в системах без FUTEX_WAIT_MULTIPLE поддержки) (Рекомендуется не изменять значение)' @@ -126,7 +141,6 @@ if [[ "${update_loc}" == "RUS" ]] ; then export PW_USE_D3D_EXTRAS_INFO='Включить принудительное использование сторонних библиотек DirectX' export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)' export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе' - export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD' export PW_USE_SHADER_CACHE_INFO='Использовать кеширование шейдеров средствами WINE (отключать только при наличии микрофризов в игре)' export PW_WINE_FULLSCREEN_FSR_INFO='Работает во время использования любой версии ProtonGE в полноэкранном режиме при разрешении ниже стандартного для экрана' export PW_USE_FAKE_DLSS_INFO='Включить транслятор DLSS в FSR 2 в играх DirectX 12' @@ -195,6 +209,10 @@ if [[ "${update_loc}" == "RUS" ]] ; then export PW_WAYLAND_INFO="Внимание! Вы запускаете ${portname} в сессии Wayland, некоторые функции могут быть недоступны!\nРекомендуется перезапустить сессию в X11!" + export PW_PFX_BACKUP_INFO="Внимание! Не передавайте резевную копию третьим лицам, есть риск потери аккаунтов" + export PW_PFX_BACKUP_SUCCESS="Резервная копия префикса: \"${PW_PREFIX_NAME}\" успешно создана" + export PW_PFX_BACKUP_ERROR="Во время создания резервной копии префикса: \"${PW_PREFIX_NAME}\" произошла ошибка" + export loc_find_d3dadapter9_error="не найден в системе.\nУстановите недостающий пакет: d3dadapter9" export loc_gui_create_shortcut_for_exe="Выберите .exe файл для которого необходимо создать ярлык и нажмите ОК.\n" @@ -210,6 +228,8 @@ if [[ "${update_loc}" == "RUS" ]] ; then export loc_gui_cancel="ОТМЕНИТЬ ИЗМЕНЕНИЯ" export loc_gui_cancel_help="Отменить текущие изменения и вернутся в предыдущее меню." + export loc_disabled="Отключено" + export loc_gui_open_db="ОТКРЫТЬ ФАЙЛ НАСТРОЕК" export loc_gui_open_db_help="Открыть файл настроек .ppdb в системном текстовом редакторе для просмотра и изменений переменных вручную." @@ -243,6 +263,9 @@ if [[ "${update_loc}" == "RUS" ]] ; then export loc_gui_cpu_limit="Ограничить использование ядер процессора" export loc_gui_cpu_limit_help="Ограничения количества ядер процессора полезно для игр на движке Unity (Рекомендуется выставить значение равное 8)" + export loc_gui_amd_vulkan_select="Изменить используемый драйвер vulkan для AMD" + export loc_gui_amd_vulkan_select_help="Выбор какая реализация vulkan будет использоваться для запуска игры" + export loc_gui_check_new_wine="Проверяем новые версии WINE на GitHub" export loc_gui_check_new_wine_error="Не удается установить соединение с GitHub\nдля проверки новых версии WINE." export loc_gui_set_new_wine="Выберите версию WINE для загрузки:" @@ -285,6 +308,18 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export loc_gui_scripts_fb="SCRIPTS FROM BACKUP" export loc_gui_credits="CREDITS" + export loc_gui_clear_pfx="Clear prefix" + export loc_gui_download_other_wine="Get other Wine" + export loc_gui_create_pfx_backup="Create prefix backup" + + export loc_create_pfx_backup_path="BACKUP PREFIX TO..." + + export loc_gui_wine_uninstaller="Uninstaller" + export loc_gui_wine_cfg="Prefix configuration" + export loc_gui_wine_file="File manager" + export loc_gui_wine_cmd="CMD" + export loc_gui_wine_reg="Reg edit" + export loc_tray_winefile="WINEFILE" export loc_tray_tascmng="TASKMNR" export loc_tray_cangelog="CHANGE LOG" @@ -351,10 +386,13 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export loc_winefile="Run wine file manager" export loc_winecmd="Run wine cmd" export loc_winereg="Run wine regedit" + export loc_wineuninstaller="Run the program uninstaller built into wine" export loc_winetricks="Run winetricks to install additional libraries to the selected prefix" export loc_edit_db="Edit database file for" export loc_download_other_wine="Open the menu to download other versions of WINE-PROTON " + export loc_clear_pfx="Clear the prefix to fix problems" + export ENABLE_VKBASALT_INFO='Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)' export PW_NO_ESYNC_INFO='Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)' export PW_NO_FSYNC_INFO='Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems without FUTEX_WAIT_MULTIPLE support) (It is recommended not to change the value)' @@ -381,7 +419,6 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export PW_USE_D3D_EXTRAS_INFO='Enable forced use of third-party DirectX libraries' export PW_PRIME_RENDER_OFFLOAD_INFO='Enable NVIDIA discrete graphics card for notebooks with hybrid graphics (if supported by the installed driver in the OS)' export PW_USE_WINDOWS_7_INFO='Change the version of WINDOWS 10 to WINDOWS 7 in the prefix' - export PW_USE_AMDVLK_DRIVER_INFO='Use AMDVLK driver instead of RADV on AMD graphics cards' export PW_USE_SHADER_CACHE_INFO='Use WINE shader caching (disable only if there are microfreezes in the game)' export PW_WINE_FULLSCREEN_FSR_INFO='Works while using any version of ProtonGE in full screen mode at a resolution below the standard screen' export PW_USE_FAKE_DLSS_INFO='Enable DLSS translator in FSR 2 in DirectX 12 games' @@ -450,6 +487,10 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!" + export PW_PFX_BACKUP_INFO="Attention! Do not pass the resev copy to third parties, there is a risk of losing accounts" + export PW_PFX_BACKUP_SUCCESS="Prefix backup: \"${PW_PREFIX_NAME}\" has been successfully created" + export PW_PFX_BACKUP_ERROR="An error occurred while backing up the prefix: \"${PW_PREFIX_NAME}\" error occurred" + export loc_find_d3dadapter9_error="Not found in the system.\nInstall the missing package: d3dadapter9" export loc_gui_create_shortcut_for_exe="Choose the .exe file for which you need to create a shortcut and click OK.\n" @@ -465,6 +506,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export loc_gui_cancel="CANCEL THE CHANGES" export loc_gui_cancel_help="Cancel the current changes and return to the previous menu." + export loc_disabled="Disabled" + export loc_gui_open_db="OPEN THE SETTINGS FILE" export loc_gui_open_db_help="Open the .ppdb settings file in a system text editor to view and change variables manually." @@ -499,6 +542,9 @@ A brief instruction: export loc_gui_cpu_limit="Limit the use of processor cores" export loc_gui_cpu_limit_help="Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)" + export loc_gui_amd_vulkan_select="Select needed AMD vulkan implementation" + export loc_gui_amd_vulkan_select_help="Choosing which implementation of vulkan will be used to run the game" + export loc_gui_check_new_wine="Check new version WINE from GitHub" export loc_gui_check_new_wine_error="Error: check wine from github." export loc_gui_set_new_wine="Select WINE for download:" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 21a68831..aaea1012 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -391,7 +391,7 @@ pw_start_cont_xterm () { pw_create_prefix_backup () { cd "$HOME" PW_PREFIX_TO_BACKUP=$("${pw_yad_v12_3}" --file --directory --borders=3 --width=650 --height=500 --auto-close \ - --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "BACKUP PREFIX TO..." 2>/dev/null ) + --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "$loc_create_pfx_backup_path" 2>/dev/null ) YAD_STATUS="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi if [[ ! -z "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then @@ -419,9 +419,13 @@ pw_create_prefix_backup () { done if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack" - zenity_info "Backup for prefix \"${PW_PREFIX_NAME}\" successfully created." + zenity_info "$PW_PFX_BACKUP_SUCCESS" else - zenity_error "An error occurred while creating a backup for prefix: \"${PW_PREFIX_NAME}\" !" + zenity_error "$PW_PFX_BACKUP_ERROR" + fi + if [[ ! -f "${PORT_WINE_TMP_PATH}/pfx_backup_info" ]]; then + zenity_info "$PW_PFX_BACKUP_INFO" + echo "1" > "${PORT_WINE_TMP_PATH}/pfx_backup_info" fi return 0 } @@ -438,7 +442,7 @@ pw_edit_db () { /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 fi - # PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE PW_USE_AMDVLK_DRIVER HEAP_DELAY_FREE + # PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE HEAP_DELAY_FREE } pw_autoinstall_from_db () { @@ -725,15 +729,15 @@ else --field=" 3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \ - --field=" CREATE PFX BACKUP"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' \ - --field=' WINETRICKS'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \ - --field=" CLEAR PREFIX"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ - --field=" DOWNLOAD OTHER WINE"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ - --field=" WINE UNINSTALLER"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \ - --field=' WINECFG'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \ - --field=' WINEFILE'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \ - --field=' WINECMD'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \ - --field=' WINEREG'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & + --field=" $loc_gui_create_pfx_backup"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' \ + --field=" WINETRICKS"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \ + --field=" $loc_gui_clear_pfx"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_clear_pfx}":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ + --field=" $loc_gui_download_other_wine"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ + --field=" $loc_gui_wine_uninstaller"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_wineuninstaller}":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \ + --field=" $loc_gui_wine_cfg"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \ + --field=" $loc_gui_wine_file"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \ + --field=" $loc_gui_wine_cmd"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \ + --field=" $loc_gui_wine_reg"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & "${pw_yad_v12_3}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[1]} --form --columns=3 --align-buttons --keep-icon-size --scroll \ --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \ diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 1c5bd5d7..ada35a77 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -66,6 +66,7 @@ pw_install_dll_in_prefix () case $PW_PREFIX_NAME in DEFAULT) export PW_MUST_HAVE_DLL="d3dx9 d3dcompiler_43 physx mfc42 vcrun2022 sandbox" ;; DOTNET) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019 faudio dotnet48" ;; + PROGRAMS) export PW_MUST_HAVE_DLL="d3dx9 d3dcompiler_43 physx mfc42 vcrun2019 riched20 corefonts msxml3 msxml4 msxml6" ;; *) export PW_MUST_HAVE_DLL="" ;; esac } diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 87c609e4..e8e1a288 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -142,23 +142,27 @@ pw_tray_icon () { ${loc_tray_winefile}!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/port_winefile.png"|| \ ${loc_tray_tascmng}!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/port_winefile.png"|| \ ${loc_tray_cangelog}!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"|| \ - ${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"||" 2>/dev/null & + ${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"||" 2>/dev/null & return 0 } - + pw_gui_for_edit_db () { KEY_EDIT_DB_GUI=$RANDOM if echo "${MANGOHUD_CONFIG}" | grep "fps_limit" ; then FPS_LIMIT_VAR="$(echo ${MANGOHUD_CONFIG} | sed 's/.*fps_limit=//' | awk -F, '{print $1}')" else - FPS_LIMIT_VAR="disabled" + FPS_LIMIT_VAR="$loc_disabled" fi - - if [[ ! -z "${PW_WINE_CPU_TOPOLOGY}" ]] && [[ "${PW_WINE_CPU_TOPOLOGY}" != "disabled" ]] ; then + if [[ ! -z "${PW_WINE_CPU_TOPOLOGY}" ]] && [[ "${PW_WINE_CPU_TOPOLOGY}" != "$loc_disabled" ]] ; then CPU_LIMIT_VAR="`echo ${PW_WINE_CPU_TOPOLOGY%%:*}`" else - CPU_LIMIT_VAR="disabled" + CPU_LIMIT_VAR="$loc_disabled" + fi + if [[ ! -z "${PW_AMD_VULKAN_USE}" ]] && [[ "${PW_AMD_VULKAN_USE}" != "$loc_disabled" ]] ; then + AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}" + else + AMD_VULKAN_VAR="$loc_disabled" fi GET_REFRASH_RATE="30!45!60!75!120!144!165!240" @@ -184,9 +188,9 @@ pw_gui_for_edit_db () { } edit_db_field_add $@ old_IFS=$IFS - IFS="%" + IFS="%" "${pw_yad_v12_3}" --plug=$KEY_EDIT_DB_GUI --tabnum="1" --form --separator=" " --columns=4 ${ADD_CHK_BOX_EDIT_DB} \ - 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db" 2>/dev/null & + 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db" 2>/dev/null & IFS=$old_IFS case ${PW_WINDOWS_VER} in @@ -201,8 +205,9 @@ pw_gui_for_edit_db () { --field=":LBL" "" \ --field="${loc_gui_arg_exe}!${loc_gui_arg_exe_help} :CBE" "\\${LAUNCH_PARAMETERS[@]}!-dx11 -skipintro 1" \ --field=":LBL" "" \ - --field="${loc_gui_cpu_limit}!${loc_gui_cpu_limit_help} :CB" "${CPU_LIMIT_VAR}!disabled!${GET_LOGICAL_CORE}" \ - --field="${loc_gui_mango_fps}!${loc_gui_mango_fps_help} :CB" "${FPS_LIMIT_VAR}!disabled!${GET_REFRASH_RATE}" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null & + --field="${loc_gui_cpu_limit}!${loc_gui_cpu_limit_help} :CB" "${CPU_LIMIT_VAR}!${loc_disabled}!${GET_LOGICAL_CORE}" \ + --field="${loc_gui_amd_vulkan_select}!${loc_gui_amd_vulkan_select_help} :CB" "${AMD_VULKAN_VAR}!${loc_disabled}!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ + --field="${loc_gui_mango_fps}!${loc_gui_mango_fps_help} :CB" "${FPS_LIMIT_VAR}!${loc_disabled}!${GET_REFRASH_RATE}" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null & "${pw_yad_v12_3}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="650" \ --text "${loc_gui_edit_db} ${PORTWINE_DB}\n ${loc_gui_edit_db_help}" --separator=" " --borders=3 \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ @@ -210,7 +215,7 @@ pw_gui_for_edit_db () { --button="${loc_gui_open_db}"!!"${loc_gui_open_db_help}":150 \ --button="${loc_gui_save_changes}"!!"${loc_gui_save_changes_help}":0 2>/dev/null YAD_STATUS="$?" - case "$YAD_STATUS" in + case "$YAD_STATUS" in 1) /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 ;; 150) xdg-open "${PORTWINE_DB_FILE}" & exit 0 ;; 252) exit 0 ;; @@ -233,24 +238,54 @@ pw_gui_for_edit_db () { WINEDLLOVERRIDES=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'` LAUNCH_PARAMETERS=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'` CPU_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $7}'`" - FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`" + PW_AMD_VULKAN_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`" + FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $9}'`" - if [[ "${FPS_LIMIT}" != "disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "disabled" ]] ; then + if [[ "${FPS_LIMIT}" != "$loc_disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "$loc_disabled" ]] ; then export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/fps_limit=${FPS_LIMIT_VAR}/fps_limit=${FPS_LIMIT}/")" export PW_MANGOHUD=1 - elif [[ "${FPS_LIMIT}" != "disabled" ]] && [[ "${FPS_LIMIT_VAR}" == "disabled" ]] ; then + elif [[ "${FPS_LIMIT}" != "$loc_disabled" ]] && [[ "${FPS_LIMIT_VAR}" == "$loc_disabled" ]] ; then export MANGOHUD_CONFIG=${MANGOHUD_CONFIG},fps_limit=${FPS_LIMIT} export PW_MANGOHUD=1 - elif [[ "${FPS_LIMIT}" == "disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "disabled" ]] ; then + elif [[ "${FPS_LIMIT}" == "$loc_disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "$loc_disabled" ]] ; then export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/,fps_limit=${FPS_LIMIT_VAR}//")" fi - if [[ "${CPU_LIMIT}" != "disabled" ]] ; then + if [[ "${CPU_LIMIT}" != "$loc_disabled" ]] ; then export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))" else - export PW_WINE_CPU_TOPOLOGY="disabled" + export PW_WINE_CPU_TOPOLOGY="$loc_disabled" + fi + if [[ "${PW_AMD_VULKAN_USE}" == "amdvlk" ]] ; then + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + if [[ $(grep -i -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release") ]] ; then + export VK_ICD_FILENAMES="/opt/amdgpu/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu/etc/vulkan/icd.d/amd_icd64.json" + else + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json" + fi + elif [[ "${PW_AMD_VULKAN_USE}" == "amdgpupro" ]] ; then + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + if [[ $(grep -i -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release") ]] ; then + export VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" + var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" + else + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_pro_icd32.json:/usr/share/vulkan/icd.d/amd_pro_icd64.json" + fi + elif [[ "${PW_AMD_VULKAN_USE}" == "radv" ]] ; then + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" + elif [[ "${PW_AMD_VULKAN_USE}" == "radv_aco" ]] ; then + unset RADV_PERFTEST + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + export RADV_PERFTEST=aco + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" + elif [[ "${PW_AMD_VULKAN_USE}" == "radv_gpl" ]] ; then + unset RADV_PERFTEST + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + export RADV_PERFTEST=gpl + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" fi echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE" - edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY + edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_AMD_VULKAN_USE return 0 } @@ -343,7 +378,7 @@ gui_proton_downloader () { /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 fi - + if [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_set" | awk '{print $1}'` ] ; then export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_set"`" elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" | awk '{print $1}'` ] ; then @@ -376,14 +411,14 @@ gui_proton_downloader () { break fi done - + if [[ ! -z "${VERSION_INSTALLED_WINE}" ]]; then try_remove_dir "${PORT_WINE_PATH}/data/dist/${VERSION_INSTALLED_WINE}" unset VERSION_INSTALLED_WINE /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 fi - + print_info "Download and install ${VERSION_WINE_GIT}..." PW_WINE_ARCHIVE="$(echo ${URL_VERSION_PROTON_GIT} | awk -F'/' '{print $NF}' | awk -F'.tar' '{print $1}')" if try_download_to_path "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/" ; then @@ -435,11 +470,11 @@ gui_vkBasalt () { VKBASALT_FFX_CAS_GUI=75 fi export old_IFS=$IFS - export IFS="%" + export IFS="%" "${pw_yad_v12_3}" --plug=$KEY_FX_GUI --tabnum="1" --form --columns=5 --separator=" " \ --text-align=center --text="$loc_gui_vkbasalt_top" \ ${ADD_GUI_FX} 1> "${PORT_WINE_TMP_PATH}/tmp_yad_basalt_set" 2>/dev/null & - export IFS="${old_IFS}" + export IFS="${old_IFS}" "${pw_yad_v12_3}" --plug=$KEY_FX_GUI --tabnum="2" --separator=" " --form \ --field="AMD FidelityFX - Contrast Adaptive Sharpening"!"$loc_gui_ffx_cas":SCL "${VKBASALT_FFX_CAS_GUI}" \ @@ -471,7 +506,7 @@ gui_vkBasalt () { export INT_COUNT_FX=$(( ${INT_COUNT_FX} + 1 )) done GUI_FX_RESULT="${GUI_FX_RESULT}cas" - export PW_VKBASALT_EFFECTS="${GUI_FX_RESULT}" + export PW_VKBASALT_EFFECTS="${GUI_FX_RESULT}" if [[ "$YAD_CAS_SET" == "0" ]] ; then export PW_VKBASALT_FFX_CAS="0" @@ -500,7 +535,7 @@ portwine_create_shortcut () { create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{ print $3 }') try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop" - + mv -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${name_desktop}.png" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"