From 907923d20f462a4ebb9d1046be3c58a27aa27c2d Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Dec 2023 19:23:43 +0300 Subject: [PATCH] gamescope, vkbasalt, update prefix --- data_from_portwine/changelog_rus | 6 +++++ ...e (ENG).png => World of Sea Battle EN.png} | Bin ...le (RU).png => World of Sea Battle RU.png} | Bin data_from_portwine/scripts/credits | 4 ++-- data_from_portwine/scripts/functions_helper | 18 +++++++++----- data_from_portwine/scripts/lang | 7 ++++++ .../scripts/portwine_db/EALauncher | 5 ---- .../scripts/portwine_db/Horizon Zero Dawn | 1 + .../WORLD OF SEA BATTLE (TEXT 2 RU) | 3 ++- data_from_portwine/scripts/portwine_db/lgc | 1 + data_from_portwine/scripts/portwine_db/wgc | 2 +- .../scripts/pw_autoinstall/PW_EAAPP | 6 +---- data_from_portwine/scripts/runlib | 22 ++++++++++-------- data_from_portwine/scripts/start.sh | 2 ++ data_from_portwine/scripts/zen_yad_gui | 13 +++++++---- 15 files changed, 55 insertions(+), 35 deletions(-) rename data_from_portwine/img/{World of Sea Battle (ENG).png => World of Sea Battle EN.png} (100%) rename data_from_portwine/img/{World of Sea Battle (RU).png => World of Sea Battle RU.png} (100%) diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index c1f9b16b..2e34dbbd 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,12 @@ ----------------------------------------- История изменений: +* исправлена совмеcтная работа GAMESCOPE и vkBasalt +* оптимизировано создание и обновление префикса +* исправлено отключение MANGOHUD в настройках +* добавлена кнопка сброса в настройках при запуске exe (для востановления настроек по умолчанию) +* добавлено принудительное отображение настроек запуска exe файла при запуске ярлыка из интерфейса PortProton + ###Scripts version 2237### Дата: 08.12.2023 / Размер скачиваемого обновления: 8 мегабайт * объединено включение MANGOHUD в настройках (32-х и 64-х битные) * исправлена работа vkBasalt совместно с gamescope diff --git a/data_from_portwine/img/World of Sea Battle (ENG).png b/data_from_portwine/img/World of Sea Battle EN.png similarity index 100% rename from data_from_portwine/img/World of Sea Battle (ENG).png rename to data_from_portwine/img/World of Sea Battle EN.png diff --git a/data_from_portwine/img/World of Sea Battle (RU).png b/data_from_portwine/img/World of Sea Battle RU.png similarity index 100% rename from data_from_portwine/img/World of Sea Battle (RU).png rename to data_from_portwine/img/World of Sea Battle RU.png diff --git a/data_from_portwine/scripts/credits b/data_from_portwine/scripts/credits index d1887443..85db4b7d 100755 --- a/data_from_portwine/scripts/credits +++ b/data_from_portwine/scripts/credits @@ -12,7 +12,7 @@ scripts v. ${scripts_install_ver} https://linux-gaming.ru -Авторские права © 2022 Castro-Fidel (linux-gaming.ru) +Авторские права © $(date +'%Y') Castro-Fidel (linux-gaming.ru) Эта программа поставляется без каких-либо гарантий. Подробнее см. в Лицензия." 2>/dev/null & @@ -46,7 +46,7 @@ Akai "${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< " Лицензия Массачусетского технологического института (MIT License) - Авторские права (©) 2022 Castro-Fidel (linux-gaming.ru) + Авторские права © $(date +'%Y') Castro-Fidel (linux-gaming.ru) Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного программного обеспечения и связанных с ним файлов документации (Программное diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 5f1d76b0..7a99265e 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -239,9 +239,13 @@ unpack_tar_zst () { } unpack_tar_xz () { - set -o pipefail - tar -Jxhvf "$1" -C "$2" | sszen - [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0 + if [[ "$3" == "silent" ]] ; then + tar -Jxhvf "$1" -C "$2" && return 0 || return 1 + else + set -o pipefail + tar -Jxhvf "$1" -C "$2" | sszen + [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0 + fi } unpack_tar_gz () { @@ -527,15 +531,16 @@ pw_mangohud_check () { pw_vkbasalt_check () { if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then + export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf" if [[ -z "${PW_VKBASALT_EFFECTS}" ]] ; then export PW_VKBASALT_EFFECTS="Curves:cas" fi - sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf" + sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${VKBASALT_CONFIG_FILE}" if [[ -z "${PW_VKBASALT_FFX_CAS}" ]] ; then export PW_VKBASALT_FFX_CAS="0.7" fi - sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf" - export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf" + sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${VKBASALT_CONFIG_FILE}" + sed -ri "s|= .*/reshade|= \"${PW_WINELIB}/pressure-vessel/reshade\"|g" "${VKBASALT_CONFIG_FILE}" var_vk_istance_layers_config_update "VK_LAYER_VKBASALT_post_processing64:VK_LAYER_VKBASALT_post_processing32" print_info "vkBasalt is enabled" else @@ -913,6 +918,7 @@ pw_init_db () { fi fi [[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1 + [[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI [[ -z "$GAMESCOPE_ARGS" ]] && export GAMESCOPE_ARGS="-F fsr" return 0 diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index bf6d2cba..347b69a6 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -230,6 +230,9 @@ if [[ "${update_loc}" == "RUS" ]] ; then export loc_gui_cancel="ОТМЕНИТЬ ИЗМЕНЕНИЯ" export loc_gui_cancel_help="Отменить текущие изменения и вернутся в предыдущее меню." + export loc_gui_reset_db="СБРОСИТЬ НАСТРОЙКИ" + export loc_gui_reset_db_help="Востановить все настройки по умолчанию." + export loc_disabled="Отключено" export loc_gui_open_db="ОТКРЫТЬ ФАЙЛ НАСТРОЕК" @@ -538,6 +541,10 @@ 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_gui_reset_db="RESET SETTINGS" + export loc_gui_reset_db_help="Restore default settings." + export loc_disabled="Disabled" export loc_gui_open_db="OPEN THE SETTINGS FILE" diff --git a/data_from_portwine/scripts/portwine_db/EALauncher b/data_from_portwine/scripts/portwine_db/EALauncher index b48a54aa..ed861bb9 100755 --- a/data_from_portwine/scripts/portwine_db/EALauncher +++ b/data_from_portwine/scripts/portwine_db/EALauncher @@ -4,9 +4,4 @@ #EADesktop.exe #Rating=5 #####################examples########################### -# export PW_DLL_INSTALL="vcrun2019" # Install DDL in port prefix (used winetricks) -export PW_VULKAN_USE=1 # dxvk, vkd3d or 0 for OpenGL export PW_USE_TERMINAL="1" -export PW_PREFIX_NAME="EA_APP" -# export PW_WINE_USE="WINE-8.8-STAGING-TKG-AMD64" -# gui_proton_downloader silent "WINE-8.8-STAGING-TKG-AMD64" diff --git a/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn b/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn index ef9899f4..3c15686b 100755 --- a/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn +++ b/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn @@ -5,3 +5,4 @@ ################################################ export PW_DLL_INSTALL="vcrun2019" export LAUNCH_PARAMETERS="-EpicPortal" +export PW_USE_SHADER_CACHE="0" diff --git a/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) b/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) index ef3e0446..18cd27c6 100755 --- a/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) +++ b/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) @@ -4,7 +4,7 @@ #Rating=? ################################################ export PW_COMMENT_DB="С этим ДБ файлом писать на АНГЛИЙСКОМ не получится. -Для входа в игру используйте ярлык World of Sea Battle (EN)" +Для входа в игру используйте ярлык World of Sea Battle EN" export PW_PREFIX_NAME="DOTNET" export PW_WINDOWS_VER="10" export PW_VULKAN_USE="2" @@ -15,3 +15,4 @@ export PW_USE_GSTREAMER="1" export PW_FORCE_LARGE_ADDRESS_AWARE="1" export PW_USE_SHADER_CACHE="1" export LAUNCH_PARAMETERS="" + diff --git a/data_from_portwine/scripts/portwine_db/lgc b/data_from_portwine/scripts/portwine_db/lgc index 8277d209..a2edfb36 100755 --- a/data_from_portwine/scripts/portwine_db/lgc +++ b/data_from_portwine/scripts/portwine_db/lgc @@ -13,6 +13,7 @@ export PW_DLL_INSTALL="lucida" # Install DLL in port prefix (used winetricks export PW_USE_D3D_EXTRAS="1" export PW_USE_EAC_AND_BE="0" export PW_PREFIX_NAME="LGC" +export PW_USE_SHADER_CACHE="0" add_in_start_portwine () { if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then diff --git a/data_from_portwine/scripts/portwine_db/wgc b/data_from_portwine/scripts/portwine_db/wgc index 861aeb18..a7d613ab 100755 --- a/data_from_portwine/scripts/portwine_db/wgc +++ b/data_from_portwine/scripts/portwine_db/wgc @@ -13,7 +13,7 @@ export PW_DLL_INSTALL="lucida" # Install DLL in port prefix (used winetricks export PW_USE_D3D_EXTRAS="1" export PW_USE_EAC_AND_BE="0" export PW_PREFIX_NAME="WGC" - +export PW_USE_SHADER_CACHE="0" add_in_start_portwine () { if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP b/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP index 776cd1f5..874e236e 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP +++ b/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP @@ -4,16 +4,12 @@ export LAUNCH_PARAMETERS=("/silent" "/repair" ) export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EAappInstaller.exe" export PW_VULKAN_USE=1 -export PW_PREFIX_NAME="EA_APP" -# export DISABLE_CP_DEFPFX=1 -# export PW_WINE_USE="WINE-8.8-STAGING-TKG-AMD64" -# gui_proton_downloader silent "WINE-8.8-STAGING-TKG-AMD64" start_portwine if try_download_game "https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe" "${PW_AUTOINSTALL_EXE}" then pw_start_progress_bar_block "${loc_gui_installing_the} EA Launcher. ${loc_gui_please_wait} " - pw_kill_autostart EABackgroundService.exe & + # pw_kill_autostart EABackgroundService.exe & # pw_kill_autostart EALocalHostSvc.exe & mkdir -p "$WINEPREFIX/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop" pw_run "${PW_AUTOINSTALL_EXE}" diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 7e2c5938..c92eb4d7 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -27,7 +27,11 @@ fi start_portwine () { var_winedlloverride_update "${PW_MUST_WINEDLLOVERRIDES}" - export WINEPREFIX="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" + export WINEPREFIX="$(readlink -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}")" + if [[ "$WINEPREFIX" != "${PORT_WINE_PATH}/data/prefixes/"* ]] && [[ ! -d "$WINEPREFIX" ]] ; then + zenity_error "Path to PREFIX not found:\n$WINEPREFIX" + exit 1 + fi create_new_dir "${WINEPREFIX}/drive_c/windows/system32/" create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${WINEPREFIX}/drive_c/" @@ -128,9 +132,10 @@ start_portwine () { fi export PW_RUN_GAMESCOPE="gamescope -o 30 ${PW_ID_VIDEO} ${GAMESCOPE_ARGS} --" export PW_WINE_FULLSCREEN_FSR=0 + export vk_xwayland_wait_ready=false else export PW_USE_GAMESCOPE=0 - unset PW_RUN_GAMESCOPE INTEL_DEBUG + unset PW_RUN_GAMESCOPE INTEL_DEBUG vk_xwayland_wait_ready fi enabled_fake_nvidia_videocard () @@ -324,21 +329,16 @@ start_portwine () { pw_clear_pfx check_dirs_and_files_in_pfx if [[ -f "${PW_WINELIB}/default_pfx.tar.xz" ]] && [[ "${DISABLE_CP_DEFPFX}" != 1 ]] ; then - unpack_tar_xz "${PW_WINELIB}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" 2>/dev/null + unpack_tar_xz "${PW_WINELIB}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent fi - ${pw_runtime} env WINEDLLOVERRIDES="winegstreamer=" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ - "${WINELOADER}" wineboot -u &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" - wait_wineserver && echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" elif [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" ]] \ || [[ -z "`cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" | grep ${PW_WINE_USE}`" ]] \ || [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices" ]] ; then check_dirs_and_files_in_pfx - ${pw_runtime} env WINEDLLOVERRIDES="winegstreamer=" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ - "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" - wait_wineserver && echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" fi + [ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices/c:" [ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices/z:" ] && try_force_link_dir "/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/dosdevices/z:" create_new_dir "${WINEPREFIX}/drive_c/users/steamuser" @@ -381,7 +381,9 @@ start_portwine () { fi if [[ "${PW_USE_D3D_EXTRAS}" == 1 ]] ; then - if [[ -z "`grep d3dx9 "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"`" ]] ; then + if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ]] \ + || [[ -z "`grep d3dx9 "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"`" ]] + then echo "d3dx9" >> "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" fi if [[ -d "${PW_PLUGINS_PATH}/d3d_extras" ]] diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 5cca226e..697fa44e 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -838,6 +838,8 @@ else done fi & + export START_FROM_PP_GUI=1 + if [[ -z "${PW_ALL_DF}" ]] ; then "${pw_yad_v12_3}" --key=$KEY --notebook --borders=3 --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons --auto-close \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \ diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 9d951702..08942e3e 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -2,13 +2,13 @@ # Author: Castro-Fidel (linux-gaming.ru) ######################################################################## zenity_info () { - echo "INFO: $@" + print_info "$@" zenity --info --no-wrap --text "$@" 2> /dev/null } export -f zenity_info zenity_error () { - echo "ERROR: $@" + print_error "$@" zenity --error --no-wrap --text "$@" 2> /dev/null } export -f zenity_error @@ -148,7 +148,7 @@ pw_tray_icon () { pw_gui_for_edit_db () { KEY_EDIT_DB_GUI=$RANDOM - if echo "${MANGOHUD_CONFIG}" | grep "fps_limit" ; then + if [[ "${MANGOHUD_CONFIG}" == *fps_limit=[0-9]* ]] ; then FPS_LIMIT_VAR="$(echo ${MANGOHUD_CONFIG} | sed 's/.*fps_limit=//' | awk -F, '{print $1}')" else FPS_LIMIT_VAR="disabled" @@ -224,11 +224,14 @@ pw_gui_for_edit_db () { --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" \ --button="${loc_gui_cancel}"!!"${loc_gui_cancel_help}":1 \ + --button="${loc_gui_reset_db}"!!"${loc_gui_reset_db_help}":2 \ --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 1) /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 ;; + 2) try_remove_file "$portwine_exe".ppdb + /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 ;; 150) xdg-open "${PORTWINE_DB_FILE}" & exit 0 ;; 252) exit 0 ;; esac @@ -261,8 +264,8 @@ pw_gui_for_edit_db () { elif [[ "${FPS_LIMIT}" != "disabled" ]] && [[ "${FPS_LIMIT_VAR}" == "disabled" ]] ; then export MANGOHUD_CONFIG=${MANGOHUD_CONFIG},fps_limit=${FPS_LIMIT} export PW_MANGOHUD=1 - elif [[ "${FPS_LIMIT}" == "disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "disabled" ]] ; then - export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/,fps_limit=${FPS_LIMIT_VAR}//")" + elif [[ "${FPS_LIMIT}" == "disabled" ]] ; then + export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/,fps_limit=${FPS_LIMIT_VAR}//" | sed "s/,fps_limit=//")" fi if [[ "${CPU_LIMIT}" != "disabled" ]] ; then export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))"