From a6b83f41816d1d5b408c5bf4af73a3c2602556ee Mon Sep 17 00:00:00 2001 From: Boria138 Date: Thu, 12 Oct 2023 17:45:49 +0600 Subject: [PATCH 1/8] Added select needed amd vulkan implementation --- data_from_portwine/scripts/lang | 8 +++++-- data_from_portwine/scripts/start.sh | 2 +- data_from_portwine/scripts/zen_yad_gui | 29 ++++++++++++++++++++++++-- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index fc2214bf..9e571312 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -126,7 +126,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' @@ -243,6 +242,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 для загрузки:" @@ -381,7 +383,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' @@ -499,6 +500,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..5fe8af11 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -438,7 +438,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 () { diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 87c609e4..63b20966 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -154,7 +154,6 @@ pw_gui_for_edit_db () { else FPS_LIMIT_VAR="disabled" fi - if [[ ! -z "${PW_WINE_CPU_TOPOLOGY}" ]] && [[ "${PW_WINE_CPU_TOPOLOGY}" != "disabled" ]] ; then CPU_LIMIT_VAR="`echo ${PW_WINE_CPU_TOPOLOGY%%:*}`" else @@ -202,6 +201,7 @@ pw_gui_for_edit_db () { --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_amd_vulkan_select}!${loc_gui_amd_vulkan_select} :CB" "${AMD_VUKAN_VAR}!default!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ --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 & "${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 \ @@ -233,7 +233,8 @@ 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}'`" + AMD_VUKAN="`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 export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/fps_limit=${FPS_LIMIT_VAR}/fps_limit=${FPS_LIMIT}/")" @@ -249,6 +250,30 @@ pw_gui_for_edit_db () { else export PW_WINE_CPU_TOPOLOGY="disabled" fi + if [[ "${AMD_VUKAN}" == "amdvlk" ]] ; then + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json" + elif [[ "${AMD_VUKAN}" == "amdgpupro" ]] ; then + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 + export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_pro_icd32.json:/usr/share/vulkan/icd.d/amd_pro_icd64.json" + elif [[ "${AMD_VUKAN}" == "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 [[ "${AMD_VUKAN}" == "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 [[ "${AMD_VUKAN}" == "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 + # Debug echo (nedded delete) + echo $VK_ICD_FILENAMES + echo $RADV_PERFTEST + echo $AMD_VUKAN 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 return 0 From 1b3831f0b4c0e753b6614a6d1ce34375a0070fdd Mon Sep 17 00:00:00 2001 From: Boria138 Date: Thu, 12 Oct 2023 18:25:21 +0600 Subject: [PATCH 2/8] Added Nobara support --- data_from_portwine/scripts/zen_yad_gui | 27 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 63b20966..214f7255 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -233,7 +233,7 @@ 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}'`" - AMD_VUKAN="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`" + AMD_VULKAN="`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 @@ -250,21 +250,30 @@ pw_gui_for_edit_db () { else export PW_WINE_CPU_TOPOLOGY="disabled" fi - if [[ "${AMD_VUKAN}" == "amdvlk" ]] ; then + if [[ "${AMD_VULKAN}" == "amdvlk" ]] ; then export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json" - elif [[ "${AMD_VUKAN}" == "amdgpupro" ]] ; then + if [[ $(cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+') == "Nobara" ]] ; 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 [[ "${AMD_VULKAN}" == "amdgpupro" ]] ; then export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_pro_icd32.json:/usr/share/vulkan/icd.d/amd_pro_icd64.json" - elif [[ "${AMD_VUKAN}" == "radv" ]] ; then + if [[ $(cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+') == "Nobara" ]] ; 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" + export LD_LIBRARY_PATH="/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32:$LD_LIBRARY_PATH" + 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 [[ "${AMD_VULKAN}" == "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 [[ "${AMD_VUKAN}" == "radv_aco" ]] ; then + elif [[ "${AMD_VULKAN}" == "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 [[ "${AMD_VUKAN}" == "radv_gpl" ]] ; then + elif [[ "${AMD_VULKAN}" == "radv_gpl" ]] ; then unset RADV_PERFTEST export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 export RADV_PERFTEST=gpl @@ -273,7 +282,7 @@ pw_gui_for_edit_db () { # Debug echo (nedded delete) echo $VK_ICD_FILENAMES echo $RADV_PERFTEST - echo $AMD_VUKAN + echo $AMD_VULKAN 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 return 0 From 7a4496622167175e5151679ea002c89284feb585 Mon Sep 17 00:00:00 2001 From: Boria138 Date: Thu, 12 Oct 2023 18:37:31 +0600 Subject: [PATCH 3/8] Optimized the code a tiny bit --- data_from_portwine/scripts/zen_yad_gui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 214f7255..65d037be 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -252,14 +252,14 @@ pw_gui_for_edit_db () { fi if [[ "${AMD_VULKAN}" == "amdvlk" ]] ; then export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - if [[ $(cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+') == "Nobara" ]] ; then + if [[ $(cat /etc/os-release | grep -i nobara) ]] ; 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 [[ "${AMD_VULKAN}" == "amdgpupro" ]] ; then export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - if [[ $(cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+') == "Nobara" ]] ; then + if [[ $(cat /etc/os-release | grep -i nobara) ]] ; 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" export LD_LIBRARY_PATH="/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32:$LD_LIBRARY_PATH" else From 8c0415225e5cc9dccaeada1cf3b184cb24dc03d0 Mon Sep 17 00:00:00 2001 From: Boria138 Date: Thu, 12 Oct 2023 19:25:05 +0600 Subject: [PATCH 4/8] Added all officially supported AMD distributions and all distributions based on them --- data_from_portwine/scripts/zen_yad_gui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 65d037be..70d161e1 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -252,14 +252,14 @@ pw_gui_for_edit_db () { fi if [[ "${AMD_VULKAN}" == "amdvlk" ]] ; then export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - if [[ $(cat /etc/os-release | grep -i nobara) ]] ; then + 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 [[ "${AMD_VULKAN}" == "amdgpupro" ]] ; then export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - if [[ $(cat /etc/os-release | grep -i nobara) ]] ; then + 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" export LD_LIBRARY_PATH="/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32:$LD_LIBRARY_PATH" else From 9e6d3008db0b61927cd7d46a1339e64cb3e51505 Mon Sep 17 00:00:00 2001 From: Boria138 Date: Fri, 13 Oct 2023 12:57:52 +0600 Subject: [PATCH 5/8] Completely finished the job --- data_from_portwine/scripts/functions_helper | 13 +++++- data_from_portwine/scripts/zen_yad_gui | 51 +++++++++++---------- 2 files changed, 37 insertions(+), 27 deletions(-) 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/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 70d161e1..64fc82be 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -142,11 +142,11 @@ 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 @@ -159,6 +159,11 @@ pw_gui_for_edit_db () { else CPU_LIMIT_VAR="disabled" fi + if [[ ! -z "${PW_AMD_VULKAN_USE}" ]] && [[ "${PW_AMD_VULKAN_USE}" != "default" ]] ; then + AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}" + else + AMD_VULKAN_VAR="default" + fi GET_REFRASH_RATE="30!45!60!75!120!144!165!240" @@ -183,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,7 +206,7 @@ pw_gui_for_edit_db () { --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_amd_vulkan_select}!${loc_gui_amd_vulkan_select} :CB" "${AMD_VUKAN_VAR}!default!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ + --field="${loc_gui_amd_vulkan_select}!${loc_gui_amd_vulkan_select} :CB" "${AMD_VULKAN_VAR}!default!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ --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 & "${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 \ @@ -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,7 +238,7 @@ 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}'`" - AMD_VULKAN="`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 @@ -250,41 +255,37 @@ pw_gui_for_edit_db () { else export PW_WINE_CPU_TOPOLOGY="disabled" fi - if [[ "${AMD_VULKAN}" == "amdvlk" ]] ; then + 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 [[ "${AMD_VULKAN}" == "amdgpupro" ]] ; then + 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" - export LD_LIBRARY_PATH="/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32:$LD_LIBRARY_PATH" + 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 [[ "${AMD_VULKAN}" == "radv" ]] ; then + 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 [[ "${AMD_VULKAN}" == "radv_aco" ]] ; then + 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 [[ "${AMD_VULKAN}" == "radv_gpl" ]] ; then + 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 - # Debug echo (nedded delete) - echo $VK_ICD_FILENAMES - echo $RADV_PERFTEST - echo $AMD_VULKAN 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 } @@ -377,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 @@ -410,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 @@ -469,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}" \ @@ -505,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" @@ -534,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" From 61e56a08e350d5146c13887b78ddd14862b747be Mon Sep 17 00:00:00 2001 From: Boria138 Date: Fri, 13 Oct 2023 22:20:11 +0600 Subject: [PATCH 6/8] Fixed typo --- data_from_portwine/scripts/zen_yad_gui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 64fc82be..b610f63d 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -206,7 +206,7 @@ pw_gui_for_edit_db () { --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_amd_vulkan_select}!${loc_gui_amd_vulkan_select} :CB" "${AMD_VULKAN_VAR}!default!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ + --field="${loc_gui_amd_vulkan_select}!${loc_gui_amd_vulkan_select_help} :CB" "${AMD_VULKAN_VAR}!default!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ --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 & "${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 \ From bd2bbee60fbaaba66cc9b17200248dbb504034cd Mon Sep 17 00:00:00 2001 From: Boria138 Date: Mon, 16 Oct 2023 12:16:50 +0600 Subject: [PATCH 7/8] Combined two pull requests into one to avoid conflicts --- README-RU.md | 203 +++++++++++++++++++++++++ README.md | 5 +- data_from_portwine/scripts/lang | 38 +++++ data_from_portwine/scripts/start.sh | 28 ++-- data_from_portwine/scripts/var | 1 + data_from_portwine/scripts/zen_yad_gui | 26 ++-- 6 files changed, 275 insertions(+), 26 deletions(-) create mode 100755 README-RU.md 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/lang b/data_from_portwine/scripts/lang index 9e571312..94aecada 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -30,6 +30,16 @@ 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_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 +106,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 поддержки) (Рекомендуется не изменять значение)' @@ -194,6 +207,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" @@ -209,6 +226,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 в системном текстовом редакторе для просмотра и изменений переменных вручную." @@ -287,6 +306,16 @@ 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_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" @@ -353,10 +382,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)' @@ -451,6 +483,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" @@ -466,6 +502,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." diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 5fe8af11..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 } @@ -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 b610f63d..e8e1a288 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -152,17 +152,17 @@ pw_gui_for_edit_db () { 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}" != "default" ]] ; then + if [[ ! -z "${PW_AMD_VULKAN_USE}" ]] && [[ "${PW_AMD_VULKAN_USE}" != "$loc_disabled" ]] ; then AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}" else - AMD_VULKAN_VAR="default" + AMD_VULKAN_VAR="$loc_disabled" fi GET_REFRASH_RATE="30!45!60!75!120!144!165!240" @@ -205,9 +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_amd_vulkan_select}!${loc_gui_amd_vulkan_select_help} :CB" "${AMD_VULKAN_VAR}!default!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \ - --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" \ @@ -241,19 +241,19 @@ pw_gui_for_edit_db () { 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 From bef62e1b8798788654a972ec79817c165a2cde5d Mon Sep 17 00:00:00 2001 From: Boria138 Date: Wed, 18 Oct 2023 10:18:09 +0600 Subject: [PATCH 8/8] Added missing loc_create_pfx_backup_path --- data_from_portwine/scripts/lang | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index 94aecada..fc7d3275 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -34,6 +34,8 @@ if [[ "${update_loc}" == "RUS" ]] ; then 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="Файловый менеджер" @@ -310,6 +312,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then 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"