From f7dab199218725b479639f0587f983f95a5bd21f Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 17:18:37 +0500 Subject: [PATCH 01/33] Added check for gallium nine --- data_from_portwine/scripts/functions_helper | 63 +++++++++++---------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b046d325..ffbe7162 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2737,6 +2737,28 @@ pw_get_tmp_files () { print_warning "use portable vulkaninfo" "$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp" fi + + # GALLIUM NINE + unset FIND_D3D_MODULE D3D_MODULE_PATH + if ! check_flatpak ; then + FIND_D3D_MODULE="$(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*" 2>/dev/null)" + if [[ -n "$FIND_D3D_MODULE" ]] ; then + FIND_D3D_MODULE="$(dirname "$FIND_D3D_MODULE")" + IFS=$'\n' + for D3D_MP in $FIND_D3D_MODULE ; do + if [[ -n "$D3D_MODULE_PATH" ]] + then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" + else export D3D_MODULE_PATH="/run/host${D3D_MP}" + fi + done + IFS="$orig_IFS" + fi + else + if [[ -d "/app/lib/i386-linux-gnu/GL/default/lib/d3d" && -d "/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d" ]] ; then + export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d" + fi + fi + [[ -n $D3D_MODULE_PATH ]] && echo "$D3D_MODULE_PATH" > "${PW_TMPFS_PATH}/gallium_nine.tmp" } pw_skip_get_info () { @@ -4038,7 +4060,8 @@ start_portwine () { export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache" fi - if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] ; then + # GALLIUM NINE + if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}" if [[ ! -d "$PATH_TO_GALLIUM_NINE_FILES" ]] ; then if try_download "github.com/Castro-Fidel/vulkan/releases/download/gallium_nine_v.${PW_GALLIUM_NINE_VER}/gallium_nine_v.${PW_GALLIUM_NINE_VER}.tar.xz" \ @@ -4052,28 +4075,8 @@ start_portwine () { print_info "Try create symlink GALLIUM_NINE files..." try_force_link_file "${PATH_TO_GALLIUM_NINE_FILES}/lib32/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll" try_force_link_file "${PATH_TO_GALLIUM_NINE_FILES}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll" - unset FIND_D3D_MODULE D3D_MODULE_PATH - if ! check_flatpak ; then - FIND_D3D_MODULE=$(dirname "$(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*" 2>/dev/null)") - if [[ -n "$FIND_D3D_MODULE" ]] ; then - IFS=$'\n' - for D3D_MP in $FIND_D3D_MODULE ; do - if [[ -n "$D3D_MODULE_PATH" ]] - then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" - else export D3D_MODULE_PATH="/run/host${D3D_MP}" - fi - done - IFS="$orig_IFS" - print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}" - else - pw_stop_progress_bar - yad_error "${translations[d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing package: d3dadapter9]}" - stop_portwine - fi - else - export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d" - print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}" - fi + export D3D_MODULE_PATH="$(<"${PW_TMPFS_PATH}/gallium_nine.tmp")" + print_info "D3D_MODULE_PATH=$D3D_MODULE_PATH" var_winedlloverride_update "d3d9=n" fi @@ -5193,15 +5196,15 @@ gui_edit_db () { PW_USE_DAMAVAND PW_USE_SUPPLIED_DXVK_VKD3D ) - if check_wayland_session ; then - rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT - else - rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND + if check_wayland_session + then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT + else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND fi - if check_flatpak ; then - rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME - fi + check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME + + # GALLIUM NINE + [[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]} PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]} From ea77d551368c00f55e834f00c85d194547ed0ef8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 23:29:20 +0500 Subject: [PATCH 02/33] Combined damavand with gallium zink. --- data_from_portwine/scripts/functions_helper | 163 +++++++++----------- data_from_portwine/scripts/start.sh | 4 +- data_from_portwine/scripts/var | 1 - 3 files changed, 79 insertions(+), 89 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ffbe7162..52452832 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3627,85 +3627,62 @@ start_portwine () { # 3D API unset CP_VKD3D_FILES CP_DXVK_FILES CP_DGV2_FILES CP_WINE_FILES PATH_TO_DXVK_FILES PATH_TO_VKD3D_FILES CP_GALLIUM_NINE_FILES - [[ "$PW_USE_GALLIUM_NINE" == "1" ]] && PW_VULKAN_USE="3" + case "${PW_VULKAN_USE}" in + 0) + # WINED3D OPENGL + print_info "Use WINED3D OpenGL" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=gl" + export PW_VKBASALT="0" + ;; + 1) + # STABLE DXVK AND VKD3D + print_info "DXVK v.${DXVK_STABLE_VER} in use" + print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" + CP_VKD3D_FILES="d3d12 libvkd3d-shader-1" + CP_WINE_FILES="d3d12core d3d8" + ;; + 2) + # NEWEST DXVK AND VKD3D + print_info "DXVK v.${DXVK_GIT_VER} in use" + print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" + [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" + CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d10_1 d3d10" + ;; + 3) + # LEGACY DXVK + print_info "DXVK v.${DXVK_LEGACY_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d8" + ;; + esac - if [[ $PW_USE_DAMAVAND == "1" ]] && [[ $PW_VULKAN_USE != "0" ]] ; then - # WINED3D VULKAN (DAMAVAND) + # GALLIUM ZINK + if [[ $PW_USE_GALLIUM_ZINK == "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_VULKAN_USE != "0" ]] ; then + print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" print_info "Use DAMAVAND (DirectX to wined3d vulkan)" + unset PATH_TO_DXVK_FILES CP_DXVK_FILES PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export WINE_D3D_CONFIG="renderer=vulkan" - else - case "${PW_VULKAN_USE}" in - 0) - # WINED3D OPENGL - print_info "Use WINED3D OpenGL" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" - export PW_VKBASALT="0" - export PW_USE_GALLIUM_ZINK="0" - ;; - 1) - # STABLE DXVK AND VKD3D - print_info "DXVK v.${DXVK_STABLE_VER} in use" - print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" - PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" - [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" - CP_VKD3D_FILES="d3d12 libvkd3d-shader-1" - CP_WINE_FILES="d3d12core d3d8" - ;; - 2) - # NEWEST DXVK AND VKD3D - print_info "DXVK v.${DXVK_GIT_VER} in use" - print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" - PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" - [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" - CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d10_1 d3d10" - ;; - 3) - # GALLIUM NINE - print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_GALLIUM_NINE_FILES="d3d9" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" - export PW_VKBASALT="0" - export PW_MANGOHUD="0" - export PW_WINE_FULLSCREEN_FSR="0" - export PW_USE_GALLIUM_ZINK="0" - export DXVK_ENABLE_NVAPI="0" - export PW_USE_VRCLIENT="0" - ;; - 5) - # LEGACY DXVK - print_info "DXVK v.${DXVK_LEGACY_VER} in use" - PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d8" - ;; - esac - fi - - if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then - # GALLIUM ZINK - print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" export __GL_YIELD="NOTHING" export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=vulkan" export __GLX_VENDOR_LIBRARY_NAME="mesa" export MESA_LOADER_DRIVER_OVERRIDE="zink" export GALLIUM_DRIVER="zink" @@ -3720,9 +3697,26 @@ start_portwine () { fi fi + # GALLIUM NINE + if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_GALLIUM_NINE_FILES="d3d9" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d8 dxgi" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=gl" + export PW_VKBASALT="0" + export PW_MANGOHUD="0" + export PW_WINE_FULLSCREEN_FSR="0" + export DXVK_ENABLE_NVAPI="0" + export PW_USE_VRCLIENT="0" + fi + if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ - && [[ ! $PW_VULKAN_USE =~ (0|3) ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != "0" ]] \ + && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] \ && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then export DXVK_ASYNC="1" if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then @@ -3773,6 +3767,9 @@ start_portwine () { if [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then rm_from_var CP_DXVK_FILES "d3d9" + elif [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + rm_from_var CP_GALLIUM_NINE_FILES "d3d9" + rm_from_var CP_WINE_FILES "d3d8" else case "${PW_VULKAN_USE}" in 0) @@ -3786,10 +3783,6 @@ start_portwine () { rm_from_var CP_DXVK_FILES "d3d9 d3d8" ;; 3) - rm_from_var CP_GALLIUM_NINE_FILES "d3d9" - rm_from_var CP_WINE_FILES "d3d8" - ;; - 5) rm_from_var CP_DXVK_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" ;; @@ -5193,7 +5186,7 @@ gui_edit_db () { PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE - PW_USE_DAMAVAND PW_USE_SUPPLIED_DXVK_VKD3D + PW_USE_SUPPLIED_DXVK_VKD3D ) if check_wayland_session @@ -5246,9 +5239,8 @@ gui_edit_db () { PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} - PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} + PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of dxvk WineD3D vulkan (Damavand) is used. This function does not work with Gallium Nine.]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} - PW_USE_DAMAVAND_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]} PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]} # PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]} @@ -5260,13 +5252,13 @@ gui_edit_db () { 0) # WineD3D OpenGL VKD3D_CB="DCB" - DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_DAMAVAND" + DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK" ;; 1|2) # Stable, Newest VKD3D_CB="CB" ;; - 5) + 3) # Legacy VKD3D_CB="DCB" DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING" @@ -5863,7 +5855,7 @@ gui_dgvoodoo2 () { [[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING case "${PW_VULKAN_USE}" in - 0|5) + 0|3) DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 " ;; @@ -6889,8 +6881,7 @@ portwine_start_debug () { 0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;; 1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; - 3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - Native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/PortProton.log" ;; - 5) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; + 3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; esac echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 5733e8ee..51f5ac31 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -516,8 +516,8 @@ SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}" case "$PW_VULKAN_USE" in 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;; 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;; - 5) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; + 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; esac if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -958,7 +958,7 @@ case "${VULKAN_MOD}" in "$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;; "$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; - "$SORT_LEGACY" ) export PW_VULKAN_USE="5" ;; + "$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;; esac init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 886b1b04..7d7cbb6a 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -40,7 +40,6 @@ export PW_USE_VRCLIENT="0" export STAGING_SHARED_MEMORY="1" export PW_USE_GALLIUM_ZINK="0" export PW_USE_GALLIUM_NINE="0" -export PW_USE_DAMAVAND="0" export PW_USE_SUPPLIED_DXVK_VKD3D="1" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" From 66223080dc500f498673710ede61d5882dab6c3d Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 23:35:39 +0500 Subject: [PATCH 03/33] Update locales and fix for dgvoodoo2 --- data_from_portwine/locales/PortProton.pot | 14 ++---- .../locales/es/LC_MESSAGES/PortProton.po | 42 +++++++++++------- .../locales/ru/LC_MESSAGES/PortProton.po | 44 ++++++++++++------- data_from_portwine/scripts/functions_helper | 2 + 4 files changed, 59 insertions(+), 43 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 780401ce..489aa7b1 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2025-05-09 02:05+0500\n" + "POT-Creation-Date: 2025-05-24 23:31+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -341,10 +341,6 @@ msgstr "" msgid "Launched" msgstr "" -msgid "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the " - "missing package: d3dadapter9" -msgstr "" - msgid "EXIT" msgstr "" @@ -524,16 +520,14 @@ msgid "Enable experemental native Wayland support (need special wine build " "to work)" msgstr "" -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also " + "instead of dxvk WineD3D vulkan (Damavand) is used. This function " + "does not work with Gallium Nine." msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" -msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental " - "function." -msgstr "" - msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not " "work with PROTON_LG and WINE_LG)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 9fde19d2..c4420299 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-09 02:05+0500\n" -"PO-Revision-Date: 2024-11-13 08:18+0500\n" +"POT-Creation-Date: 2025-05-24 23:31+0500\n" +"PO-Revision-Date: 2025-05-24 23:34+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -375,13 +375,6 @@ msgstr "¿Quieres instalar las bibliotecas recomendadas en el nuevo prefijo:" msgid "Launched" msgstr "Lanzado" -msgid "" -"d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " -"package: d3dadapter9" -msgstr "" -"d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n" -"Instala el paquete faltante:d3dadapter9" - msgid "EXIT" msgstr "SALIR" @@ -631,17 +624,18 @@ msgstr "" "Habilite el soporte experimental nativo de Wayland (necesita una compilación " "de vino especial para funcionar)" -#, fuzzy -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -msgstr "Gallium Zink (OpenGL a Vulkan)" +msgid "" +"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " +"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " +"Gallium Nine." +msgstr "" +"Utilice Gallium Zink (el controlador OpenGL se implementa mediante Vulkan). " +"En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta función no " +"funciona con Gallium Nine." msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" -#, fuzzy -msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -msgstr "WineD3D Vulkan (Damavand experimental)" - msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2177,6 +2171,22 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" +#~ msgid "" +#~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " +#~ "package: d3dadapter9" +#~ msgstr "" +#~ "d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n" +#~ "Instala el paquete faltante:d3dadapter9" + +#, fuzzy +#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +#~ msgstr "Gallium Zink (OpenGL a Vulkan)" + +#, fuzzy +#~ msgid "" +#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +#~ msgstr "WineD3D Vulkan (Damavand experimental)" + #~ msgid "Global settings" #~ msgstr "Configuraciones globales" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 06d99106..288be5bf 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-09 02:05+0500\n" -"PO-Revision-Date: 2025-04-21 21:59+0500\n" +"POT-Creation-Date: 2025-05-24 23:31+0500\n" +"PO-Revision-Date: 2025-05-24 23:33+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" -"X-Generator: Poedit 3.6\n" +"X-Generator: Poedit 3.4.4\n" msgid "" "A running PortProton session was detected.\\nDo you want to end the previous " @@ -385,13 +385,6 @@ msgstr "Хотите добавить рекомендуемые библиот msgid "Launched" msgstr "Запущено" -msgid "" -"d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " -"package: d3dadapter9" -msgstr "" -"d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий пакет: " -"d3dadapter9" - msgid "EXIT" msgstr "ВЫХОД" @@ -652,17 +645,18 @@ msgstr "" "Включить экспериментальную поддержку запуска игры/программы из-под нативной " "сессии Wayland, минуя XWayland (для работы требуется специальная сборка Wine)" -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" +msgid "" +"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " +"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " +"Gallium Nine." +msgstr "" +"Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо dxvk " +"используется WineD3D vulkan (Damavand). Данная функция не работает вместе с " +"Gallium Nine." msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" -msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -msgstr "" -"Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " -"функция." - msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2159,6 +2153,22 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "" +#~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " +#~ "package: d3dadapter9" +#~ msgstr "" +#~ "d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий " +#~ "пакет: d3dadapter9" + +#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +#~ msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" + +#~ msgid "" +#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +#~ msgstr "" +#~ "Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " +#~ "функция." + #~ msgid "Global settings" #~ msgstr "Глобальные настройки" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 52452832..36d08aae 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3770,6 +3770,8 @@ start_portwine () { elif [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" + elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then + rm_from_var CP_WINE_FILES "d3d9 d3d8" else case "${PW_VULKAN_USE}" in 0) From a0b8077fc0e557dc09b4373131025951d56722e3 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 23:49:51 +0500 Subject: [PATCH 04/33] Optimizations for PW_USE_SUPPLIED_DXVK_VKD3D --- data_from_portwine/scripts/functions_helper | 41 +++++++++++---------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 36d08aae..57137a5e 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3716,24 +3716,25 @@ start_portwine () { if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != "0" ]] \ - && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] \ && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then - export DXVK_ASYNC="1" - if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then - CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" - CP_WINE_FILES="" - else - CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" - CP_WINE_FILES="d3d10_1 d3d10" - fi - if [[ $PW_DGVOODOO2 != "1" ]] ; then - if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then - try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" - try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" - var_winedlloverride_update "d3d8=n" - elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] - then add_to_var CP_DXVK_FILES "d3d8" - else add_to_var CP_WINE_FILES "d3d8" + if [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] ; then + export DXVK_ASYNC="1" + if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then + CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + CP_WINE_FILES="" + else + CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" + CP_WINE_FILES="d3d10_1 d3d10" + fi + if [[ $PW_DGVOODOO2 != "1" ]] ; then + if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then + try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" + try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" + var_winedlloverride_update "d3d8=n" + elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] + then add_to_var CP_DXVK_FILES "d3d8" + else add_to_var CP_WINE_FILES "d3d8" + fi fi fi if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \ @@ -3765,13 +3766,13 @@ start_portwine () { try_remove_file "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf" try_force_link_file "${DGV2CONF}" "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf" - if [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then - rm_from_var CP_DXVK_FILES "d3d9" - elif [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then rm_from_var CP_WINE_FILES "d3d9 d3d8" + elif [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then + rm_from_var CP_DXVK_FILES "d3d9" else case "${PW_VULKAN_USE}" in 0) From 280b1b044dc8ef39713b192366fe800bdfed26c1 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 25 May 2025 01:38:10 +0500 Subject: [PATCH 05/33] Gallium zink and WineD3D vulkan moved to 3D api --- data_from_portwine/locales/PortProton.pot | 10 +- .../locales/es/LC_MESSAGES/PortProton.po | 23 ++-- .../locales/ru/LC_MESSAGES/PortProton.po | 28 ++--- data_from_portwine/scripts/functions_helper | 111 +++++++++--------- data_from_portwine/scripts/start.sh | 11 +- data_from_portwine/scripts/var | 1 - 6 files changed, 93 insertions(+), 91 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 489aa7b1..434bd350 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2025-05-24 23:31+0500\n" + "POT-Creation-Date: 2025-05-25 01:15+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,6 +76,9 @@ msgstr "" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "" +msgid "Gallium Zink and WineD3D Vulkan (Damavand)" +msgstr "" + msgid "GET-OTHER-WINE" msgstr "" @@ -520,11 +523,6 @@ msgid "Enable experemental native Wayland support (need special wine build " "to work)" msgstr "" -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also " - "instead of dxvk WineD3D vulkan (Damavand) is used. This function " - "does not work with Gallium Nine." -msgstr "" - msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index c4420299..bbbe3214 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-24 23:31+0500\n" +"POT-Creation-Date: 2025-05-25 01:15+0500\n" "PO-Revision-Date: 2025-05-24 23:34+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -87,6 +87,9 @@ msgstr "DXVK estable, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "Más nuevo DXVK, VKD3D, D8VK (Vulkan v1.3+)" +msgid "Gallium Zink and WineD3D Vulkan (Damavand)" +msgstr "" + msgid "GET-OTHER-WINE" msgstr "OBTENER OTRO WINE" @@ -624,15 +627,6 @@ msgstr "" "Habilite el soporte experimental nativo de Wayland (necesita una compilación " "de vino especial para funcionar)" -msgid "" -"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " -"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " -"Gallium Nine." -msgstr "" -"Utilice Gallium Zink (el controlador OpenGL se implementa mediante Vulkan). " -"En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta función no " -"funciona con Gallium Nine." - msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" @@ -2171,6 +2165,15 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" +#~ msgid "" +#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " +#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " +#~ "with Gallium Nine." +#~ msgstr "" +#~ "Utilice Gallium Zink (el controlador OpenGL se implementa mediante " +#~ "Vulkan). En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta " +#~ "función no funciona con Gallium Nine." + #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 288be5bf..f12f484b 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-24 23:31+0500\n" -"PO-Revision-Date: 2025-05-24 23:33+0500\n" +"POT-Creation-Date: 2025-05-25 01:15+0500\n" +"PO-Revision-Date: 2025-05-25 01:17+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -95,6 +95,9 @@ msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)" +msgid "Gallium Zink and WineD3D Vulkan (Damavand)" +msgstr "Gallium Zink и WineD3D Vulkan (Damavand)" + msgid "GET-OTHER-WINE" msgstr "Скачать другие версии wine" @@ -645,15 +648,6 @@ msgstr "" "Включить экспериментальную поддержку запуска игры/программы из-под нативной " "сессии Wayland, минуя XWayland (для работы требуется специальная сборка Wine)" -msgid "" -"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " -"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " -"Gallium Nine." -msgstr "" -"Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо dxvk " -"используется WineD3D vulkan (Damavand). Данная функция не работает вместе с " -"Gallium Nine." - msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" @@ -2153,6 +2147,15 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "" +#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " +#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " +#~ "with Gallium Nine." +#~ msgstr "" +#~ "Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо " +#~ "dxvk используется WineD3D vulkan (Damavand). Данная функция не работает " +#~ "вместе с Gallium Nine." + #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" @@ -2231,9 +2234,6 @@ msgstr "БИБЛИОТЕКИ" #~ msgid "Copyright © $%DATE% Castro-Fidel (linux-gaming.ru)" #~ msgstr "Авторские права © $%DATE% Castro-Fidel (linux-gaming.ru)" -#~ msgid "WineD3D Vulkan (Damavand experimental)" -#~ msgstr "WineD3D Vulkan (Damavand - экспериментальный)" - #~ msgid "Change the version of WINDOWS 10 to WINDOWS 7 in the prefix" #~ msgstr "Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 57137a5e..ae700047 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1814,10 +1814,8 @@ pw_mangohud_check () { export PW_MANGOHUD_SLR='MANGOHUD=1' fi # TODO: need to fix work for OpenGL without flatpak... - if [[ $PW_USE_GALLIUM_ZINK == "0" ]] ; then - MANGOHUD_LIB_NAME="libMangoHud_shim.so" - export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" - fi + MANGOHUD_LIB_NAME="libMangoHud_shim.so" + export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" else export PW_MANGOHUD_SLR='' print_info "MangoHud is disabled" @@ -3670,36 +3668,34 @@ start_portwine () { CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d8" ;; + 4) + # GALLIUM ZINK AND WINED3D VULKAN + print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" + print_info "Use DAMAVAND (DirectX to wined3d vulkan)" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=vulkan" + export __GLX_VENDOR_LIBRARY_NAME="mesa" + export MESA_LOADER_DRIVER_OVERRIDE="zink" + export GALLIUM_DRIVER="zink" + if ! check_wayland_session \ + && ! check_gamescope_session \ + && [[ "${PW_GAMESCOPE}" != "1" ]] + then + export LIBGL_KOPPER_DRI2="1" + fi + if [[ $(check_vendor_gpu) =~ nouveau ]] ; then + export NOUVEAU_USE_ZINK="1" + fi esac - # GALLIUM ZINK - if [[ $PW_USE_GALLIUM_ZINK == "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_VULKAN_USE != "0" ]] ; then - print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" - print_info "Use DAMAVAND (DirectX to wined3d vulkan)" - unset PATH_TO_DXVK_FILES CP_DXVK_FILES - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=vulkan" - export __GLX_VENDOR_LIBRARY_NAME="mesa" - export MESA_LOADER_DRIVER_OVERRIDE="zink" - export GALLIUM_DRIVER="zink" - if ! check_wayland_session \ - && ! check_gamescope_session \ - && [[ "${PW_GAMESCOPE}" != "1" ]] - then - export LIBGL_KOPPER_DRI2="1" - fi - if [[ $(check_vendor_gpu) =~ nouveau ]] ; then - export NOUVEAU_USE_ZINK="1" - fi - fi - # GALLIUM NINE if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + unset PATH_TO_DXVK_FILES CP_DXVK_FILES PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_GALLIUM_NINE_FILES="d3d9" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" @@ -3715,26 +3711,25 @@ start_portwine () { fi if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != "0" ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ + && [[ ! $PW_VULKAN_USE =~ (0|4) ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] \ && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then - if [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] ; then - export DXVK_ASYNC="1" - if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then - CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" - CP_WINE_FILES="" - else - CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" - CP_WINE_FILES="d3d10_1 d3d10" - fi - if [[ $PW_DGVOODOO2 != "1" ]] ; then - if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then - try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" - try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" - var_winedlloverride_update "d3d8=n" - elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] - then add_to_var CP_DXVK_FILES "d3d8" - else add_to_var CP_WINE_FILES "d3d8" - fi + export DXVK_ASYNC="1" + if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then + CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + CP_WINE_FILES="" + else + CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" + CP_WINE_FILES="d3d10_1 d3d10" + fi + if [[ $PW_DGVOODOO2 != "1" ]] ; then + if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then + try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" + try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" + var_winedlloverride_update "d3d8=n" + elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] + then add_to_var CP_DXVK_FILES "d3d8" + else add_to_var CP_WINE_FILES "d3d8" fi fi if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \ @@ -3769,10 +3764,11 @@ start_portwine () { if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" - elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then - rm_from_var CP_WINE_FILES "d3d9 d3d8" elif [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then - rm_from_var CP_DXVK_FILES "d3d9" + if [[ $PW_VULKAN_USE = "4" ]] + then rm_from_var CP_WINE_FILES "d3d9" + else rm_from_var CP_DXVK_FILES "d3d9" + fi else case "${PW_VULKAN_USE}" in 0) @@ -3789,6 +3785,9 @@ start_portwine () { rm_from_var CP_DXVK_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" ;; + 4) + rm_from_var CP_WINE_FILES "d3d9 d3d8" + ;; esac fi fi @@ -5188,7 +5187,7 @@ gui_edit_db () { PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE - PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE + PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_NINE PW_USE_SUPPLIED_DXVK_VKD3D ) @@ -5242,7 +5241,6 @@ gui_edit_db () { PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} - PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of dxvk WineD3D vulkan (Damavand) is used. This function does not work with Gallium Nine.]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]} @@ -5255,13 +5253,13 @@ gui_edit_db () { 0) # WineD3D OpenGL VKD3D_CB="DCB" - DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK" + DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE" ;; 1|2) # Stable, Newest VKD3D_CB="CB" ;; - 3) + 3|4) # Legacy VKD3D_CB="DCB" DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING" @@ -5858,7 +5856,7 @@ gui_dgvoodoo2 () { [[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING case "${PW_VULKAN_USE}" in - 0|3) + 0|3|4) DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 " ;; @@ -6885,6 +6883,7 @@ portwine_start_debug () { 1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; + 4) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - Gallium Zink and WineD3D Vulkan" >> "${PORT_WINE_PATH}/PortProton.log" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; esac echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 51f5ac31..aafa9fff 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -509,15 +509,17 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}" fi SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" +SORT_VULKAN="${translations[Gallium Zink and WineD3D Vulkan (Damavand)]}" SORT_LEGACY="${translations[Legacy DXVK (Vulkan v1.1)]}" SORT_STABLE="${translations[Stable DXVK, VKD3D (Vulkan v1.2)]}" SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}" case "$PW_VULKAN_USE" in - 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;; - 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;; - *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; - 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; + 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_VULKAN!$SORT_OPENGL" ;; + 4) PW_DEFAULT_VULKAN_USE="$SORT_VULKAN!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; esac if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -959,6 +961,7 @@ case "${VULKAN_MOD}" in "$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; "$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;; + "$SORT_VULKAN" ) export PW_VULKAN_USE="4" ;; esac init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 7d7cbb6a..d66d4598 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -38,7 +38,6 @@ export PW_LOCALE_SELECT="disabled" export PW_DINPUT_PROTOCOL="0" export PW_USE_VRCLIENT="0" export STAGING_SHARED_MEMORY="1" -export PW_USE_GALLIUM_ZINK="0" export PW_USE_GALLIUM_NINE="0" export PW_USE_SUPPLIED_DXVK_VKD3D="1" ###DEFAULT_WINE### From a9db4e3bbdc15bb650600759521daab0a4ab587d Mon Sep 17 00:00:00 2001 From: Htylol Date: Tue, 27 May 2025 04:13:08 +0500 Subject: [PATCH 06/33] Update DISABLE_EDIT_DB_LIST for PW_USE_SUPPLIED_DXVK_VKD3D --- data_from_portwine/scripts/functions_helper | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ae700047..42d1f253 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5266,7 +5266,10 @@ gui_edit_db () { ;; esac - [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" + if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ + || [[ $PW_VULKAN_USE =~ (0|4) ]] ; then + DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" + fi unset ADD_CHK_BOX_EDIT_DB for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do From c8288037b7bdd4d506fa61518e35bb3aab0feff6 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 29 May 2025 00:49:01 +0500 Subject: [PATCH 07/33] fix: Use cd/pwd for script path to correctly handle symlinks --- data_from_portwine/scripts/start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 5733e8ee..db0fadb2 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -34,8 +34,8 @@ then exit 1 fi -PORT_SCRIPTS_PATH="$(dirname "$(realpath "$0")")" -PORT_WINE_PATH="$(realpath "$PORT_SCRIPTS_PATH/../..")" +PORT_SCRIPTS_PATH="$(cd "$(dirname "$0")" && pwd)" +PORT_WINE_PATH="$(dirname "$(dirname "$PORT_SCRIPTS_PATH")")" export PORT_SCRIPTS_PATH PORT_WINE_PATH # shellcheck source=/dev/null From 1018c3b2fa12e346bc4e4e6f12b9114959157ab2 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 29 May 2025 01:08:56 +0500 Subject: [PATCH 08/33] fix: Take first PID from pgrep for EGS --- data_from_portwine/scripts/functions_helper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b046d325..92726a39 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -4593,11 +4593,11 @@ portwine_launch () { while true ; do sleep 5 if [[ -z "$GAMEPID" ]] ; then - GAMEPID="$(pgrep -fa 'EpicPortal|epicusername|epiclocale|AUTH_LOGIN' | awk '{print $1}')" + GAMEPID="$(pgrep -fa 'EpicPortal|epicusername|epiclocale|AUTH_LOGIN' | awk '{print $1}' | head -n 1)" else if waitpid "$GAMEPID" ; then sleep 1 - GAMEPID="$(pgrep -fa 'EpicPortal|epicusername|epiclocale|AUTH_LOGIN' | awk '{print $1}')" + GAMEPID="$(pgrep -fa 'EpicPortal|epicusername|epiclocale|AUTH_LOGIN' | awk '{print $1}' | head -n 1)" [[ -z "$GAMEPID" ]] && break || continue fi fi From 4eed47196e7091bdcf1c92290e4ae4f2819caf75 Mon Sep 17 00:00:00 2001 From: Boris Yumankulov Date: Thu, 29 May 2025 16:26:22 +0500 Subject: [PATCH 09/33] fix: inhibit only sleep and idle not shutdown Signed-off-by: Boris Yumankulov --- data_from_portwine/scripts/functions_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b046d325..f38a7b46 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3536,7 +3536,7 @@ start_portwine () { if command -v systemd-inhibit &>/dev/null \ && [[ "$GAMEMODERUN" != "1" ]] then - PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${translations[Launched]}" + PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${translations[Launched]} --what=idle:sleep" print_info "Screensaver will be inhibit" fi pw_other_fixes From 595363adbf23242734cb49bec5419c2ede8d59e1 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 01:30:29 +0500 Subject: [PATCH 10/33] Many changes for 3D api --- data_from_portwine/scripts/functions_helper | 89 +++++++++++---------- data_from_portwine/scripts/start.sh | 11 +-- data_from_portwine/scripts/var | 2 + 3 files changed, 54 insertions(+), 48 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 42d1f253..ed3b19e4 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3668,38 +3668,42 @@ start_portwine () { CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d8" ;; - 4) - # GALLIUM ZINK AND WINED3D VULKAN - print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" - print_info "Use DAMAVAND (DirectX to wined3d vulkan)" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=vulkan" - export __GLX_VENDOR_LIBRARY_NAME="mesa" - export MESA_LOADER_DRIVER_OVERRIDE="zink" - export GALLIUM_DRIVER="zink" - if ! check_wayland_session \ - && ! check_gamescope_session \ - && [[ "${PW_GAMESCOPE}" != "1" ]] - then - export LIBGL_KOPPER_DRI2="1" - fi - if [[ $(check_vendor_gpu) =~ nouveau ]] ; then - export NOUVEAU_USE_ZINK="1" - fi esac + if [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ + || [[ $PW_USE_GALLIUM_NINE == "1" ]] \ + || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then + unset PATH_TO_DXVK_FILES CP_DXVK_FILES + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" + fi + + # GALLIUM ZINK + if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then + print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=gl" + export __GLX_VENDOR_LIBRARY_NAME="mesa" + export MESA_LOADER_DRIVER_OVERRIDE="zink" + export GALLIUM_DRIVER="zink" + if ! check_wayland_session \ + && ! check_gamescope_session \ + && [[ "${PW_GAMESCOPE}" != "1" ]] + then + export LIBGL_KOPPER_DRI2="1" + fi + if [[ $(check_vendor_gpu) =~ nouveau ]] ; then + export NOUVEAU_USE_ZINK="1" + fi + fi + # GALLIUM NINE if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" - unset PATH_TO_DXVK_FILES CP_DXVK_FILES - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + rm_from_var CP_WINE_FILES "d3d9" CP_GALLIUM_NINE_FILES="d3d9" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d8 dxgi" export __GL_YIELD="NOTHING" export mesa_glthread="true" export WINE_D3D_CONFIG="renderer=gl" @@ -3710,9 +3714,15 @@ start_portwine () { export PW_USE_VRCLIENT="0" fi + # WINED3D VULKAN + if [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then + print_info "Use DAMAVAND (DirectX to wined3d vulkan)" + export WINE_D3D_CONFIG="renderer=vulkan" + fi + if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ - && [[ ! $PW_VULKAN_USE =~ (0|4) ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != 0 ]] \ + && [[ $PW_USE_GALLIUM_ZINK != "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] && [[ $PW_USE_WINED3D_VULKAN != "1" ]] \ && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then export DXVK_ASYNC="1" if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then @@ -3764,11 +3774,10 @@ start_portwine () { if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" + elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then + rm_from_var CP_WINE_FILES "d3d9 d3d8" elif [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then - if [[ $PW_VULKAN_USE = "4" ]] - then rm_from_var CP_WINE_FILES "d3d9" - else rm_from_var CP_DXVK_FILES "d3d9" - fi + rm_from_var CP_DXVK_FILES "d3d9" else case "${PW_VULKAN_USE}" in 0) @@ -3785,9 +3794,6 @@ start_portwine () { rm_from_var CP_DXVK_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" ;; - 4) - rm_from_var CP_WINE_FILES "d3d9 d3d8" - ;; esac fi fi @@ -5188,7 +5194,7 @@ gui_edit_db () { PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_NINE - PW_USE_SUPPLIED_DXVK_VKD3D + PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D ) if check_wayland_session @@ -5242,6 +5248,8 @@ gui_edit_db () { PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} + PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} + PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]} PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]} # PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]} @@ -5253,13 +5261,13 @@ gui_edit_db () { 0) # WineD3D OpenGL VKD3D_CB="DCB" - DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE" + DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN" ;; 1|2) # Stable, Newest VKD3D_CB="CB" ;; - 3|4) + 3) # Legacy VKD3D_CB="DCB" DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING" @@ -5267,7 +5275,7 @@ gui_edit_db () { esac if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ - || [[ $PW_VULKAN_USE =~ (0|4) ]] ; then + || [[ $PW_VULKAN_USE == "0" ]] ; then DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" fi @@ -5859,7 +5867,7 @@ gui_dgvoodoo2 () { [[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING case "${PW_VULKAN_USE}" in - 0|3|4) + 0|3) DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 " ;; @@ -6886,7 +6894,6 @@ portwine_start_debug () { 1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; - 4) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - Gallium Zink and WineD3D Vulkan" >> "${PORT_WINE_PATH}/PortProton.log" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; esac echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index aafa9fff..257290b6 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -509,17 +509,15 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}" fi SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" -SORT_VULKAN="${translations[Gallium Zink and WineD3D Vulkan (Damavand)]}" SORT_LEGACY="${translations[Legacy DXVK (Vulkan v1.1)]}" SORT_STABLE="${translations[Stable DXVK, VKD3D (Vulkan v1.2)]}" SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}" case "$PW_VULKAN_USE" in - 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN" ;; - 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; - 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_VULKAN!$SORT_OPENGL" ;; - 4) PW_DEFAULT_VULKAN_USE="$SORT_VULKAN!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; - *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;; + 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; esac if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -961,7 +959,6 @@ case "${VULKAN_MOD}" in "$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; "$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;; - "$SORT_VULKAN" ) export PW_VULKAN_USE="4" ;; esac init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index d66d4598..ba870a68 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -39,6 +39,8 @@ export PW_DINPUT_PROTOCOL="0" export PW_USE_VRCLIENT="0" export STAGING_SHARED_MEMORY="1" export PW_USE_GALLIUM_NINE="0" +export PW_USE_GALLIUM_ZINK="0" +export PW_USE_WINED3D_VULKAN="0" export PW_USE_SUPPLIED_DXVK_VKD3D="1" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" From d2dc2cb2de957b30058fe97f27f2330e69355ae8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 01:31:04 +0500 Subject: [PATCH 11/33] Update locales --- data_from_portwine/locales/PortProton.pot | 12 ++++-- .../locales/es/LC_MESSAGES/PortProton.po | 33 +++++----------- .../locales/ru/LC_MESSAGES/PortProton.po | 38 +++++++------------ 3 files changed, 32 insertions(+), 51 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 434bd350..cfacf4be 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2025-05-25 01:15+0500\n" + "POT-Creation-Date: 2025-05-30 01:28+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,9 +76,6 @@ msgstr "" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "" -msgid "Gallium Zink and WineD3D Vulkan (Damavand)" -msgstr "" - msgid "GET-OTHER-WINE" msgstr "" @@ -526,6 +523,13 @@ msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgstr "" + +msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental " + "function." +msgstr "" + msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not " "work with PROTON_LG and WINE_LG)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index bbbe3214..13c49515 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-25 01:15+0500\n" -"PO-Revision-Date: 2025-05-24 23:34+0500\n" +"POT-Creation-Date: 2025-05-30 01:28+0500\n" +"PO-Revision-Date: 2024-11-13 08:18+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -87,9 +87,6 @@ msgstr "DXVK estable, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "Más nuevo DXVK, VKD3D, D8VK (Vulkan v1.3+)" -msgid "Gallium Zink and WineD3D Vulkan (Damavand)" -msgstr "" - msgid "GET-OTHER-WINE" msgstr "OBTENER OTRO WINE" @@ -630,6 +627,14 @@ msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" +#, fuzzy +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgstr "Gallium Zink (OpenGL a Vulkan)" + +#, fuzzy +msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +msgstr "WineD3D Vulkan (Damavand experimental)" + msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2165,15 +2170,6 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" -#~ msgid "" -#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " -#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " -#~ "with Gallium Nine." -#~ msgstr "" -#~ "Utilice Gallium Zink (el controlador OpenGL se implementa mediante " -#~ "Vulkan). En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta " -#~ "función no funciona con Gallium Nine." - #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" @@ -2181,15 +2177,6 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ "d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n" #~ "Instala el paquete faltante:d3dadapter9" -#, fuzzy -#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -#~ msgstr "Gallium Zink (OpenGL a Vulkan)" - -#, fuzzy -#~ msgid "" -#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -#~ msgstr "WineD3D Vulkan (Damavand experimental)" - #~ msgid "Global settings" #~ msgstr "Configuraciones globales" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index f12f484b..08ed0abb 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-25 01:15+0500\n" -"PO-Revision-Date: 2025-05-25 01:17+0500\n" +"POT-Creation-Date: 2025-05-30 01:28+0500\n" +"PO-Revision-Date: 2025-04-21 21:59+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" -"X-Generator: Poedit 3.4.4\n" +"X-Generator: Poedit 3.6\n" msgid "" "A running PortProton session was detected.\\nDo you want to end the previous " @@ -95,9 +95,6 @@ msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)" -msgid "Gallium Zink and WineD3D Vulkan (Damavand)" -msgstr "Gallium Zink и WineD3D Vulkan (Damavand)" - msgid "GET-OTHER-WINE" msgstr "Скачать другие версии wine" @@ -651,6 +648,14 @@ msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" + +msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +msgstr "" +"Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " +"функция." + msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2147,15 +2152,6 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" -#~ msgid "" -#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " -#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " -#~ "with Gallium Nine." -#~ msgstr "" -#~ "Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо " -#~ "dxvk используется WineD3D vulkan (Damavand). Данная функция не работает " -#~ "вместе с Gallium Nine." - #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" @@ -2163,15 +2159,6 @@ msgstr "БИБЛИОТЕКИ" #~ "d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий " #~ "пакет: d3dadapter9" -#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -#~ msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" - -#~ msgid "" -#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -#~ msgstr "" -#~ "Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " -#~ "функция." - #~ msgid "Global settings" #~ msgstr "Глобальные настройки" @@ -2234,6 +2221,9 @@ msgstr "БИБЛИОТЕКИ" #~ msgid "Copyright © $%DATE% Castro-Fidel (linux-gaming.ru)" #~ msgstr "Авторские права © $%DATE% Castro-Fidel (linux-gaming.ru)" +#~ msgid "WineD3D Vulkan (Damavand experimental)" +#~ msgstr "WineD3D Vulkan (Damavand - экспериментальный)" + #~ msgid "Change the version of WINDOWS 10 to WINDOWS 7 in the prefix" #~ msgstr "Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе" From 5e39bf3ae3b44890af2439bfb3dc1ee6b49522b8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 01:49:42 +0500 Subject: [PATCH 12/33] Use WINE_D3D_CONFIG=renderer=gl for default --- data_from_portwine/scripts/functions_helper | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ed3b19e4..d1bc08e5 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1814,8 +1814,10 @@ pw_mangohud_check () { export PW_MANGOHUD_SLR='MANGOHUD=1' fi # TODO: need to fix work for OpenGL without flatpak... - MANGOHUD_LIB_NAME="libMangoHud_shim.so" - export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" + if [[ $PW_USE_GALLIUM_ZINK == "0" ]] ; then # без этого могут быть вылеты + MANGOHUD_LIB_NAME="libMangoHud_shim.so" + export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" + fi else export PW_MANGOHUD_SLR='' print_info "MangoHud is disabled" @@ -3632,9 +3634,6 @@ start_portwine () { PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" export PW_VKBASALT="0" ;; 1) @@ -3682,9 +3681,6 @@ start_portwine () { # GALLIUM ZINK if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" export __GLX_VENDOR_LIBRARY_NAME="mesa" export MESA_LOADER_DRIVER_OVERRIDE="zink" export GALLIUM_DRIVER="zink" @@ -3704,9 +3700,6 @@ start_portwine () { print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" rm_from_var CP_WINE_FILES "d3d9" CP_GALLIUM_NINE_FILES="d3d9" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" export PW_VKBASALT="0" export PW_MANGOHUD="0" export PW_WINE_FULLSCREEN_FSR="0" @@ -3718,8 +3711,13 @@ start_portwine () { if [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then print_info "Use DAMAVAND (DirectX to wined3d vulkan)" export WINE_D3D_CONFIG="renderer=vulkan" + else + export WINE_D3D_CONFIG="renderer=gl" fi + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != 0 ]] \ && [[ $PW_USE_GALLIUM_ZINK != "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] && [[ $PW_USE_WINED3D_VULKAN != "1" ]] \ From 7d3d0031f73835337c4e309cf9a6bd78ee49a1c5 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 02:10:03 +0500 Subject: [PATCH 13/33] Refactoring for 3D api --- data_from_portwine/scripts/functions_helper | 52 +++++++++------------ 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index d1bc08e5..c700e7fa 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1814,10 +1814,8 @@ pw_mangohud_check () { export PW_MANGOHUD_SLR='MANGOHUD=1' fi # TODO: need to fix work for OpenGL without flatpak... - if [[ $PW_USE_GALLIUM_ZINK == "0" ]] ; then # без этого могут быть вылеты - MANGOHUD_LIB_NAME="libMangoHud_shim.so" - export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" - fi + MANGOHUD_LIB_NAME="libMangoHud_shim.so" + export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" else export PW_MANGOHUD_SLR='' print_info "MangoHud is disabled" @@ -3631,10 +3629,10 @@ start_portwine () { 0) # WINED3D OPENGL print_info "Use WINED3D OpenGL" + unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export PW_VKBASALT="0" ;; 1) # STABLE DXVK AND VKD3D @@ -3669,15 +3667,23 @@ start_portwine () { ;; esac - if [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ - || [[ $PW_USE_GALLIUM_NINE == "1" ]] \ + if [[ $PW_USE_GALLIUM_NINE == "1" ]] \ + || [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then - unset PATH_TO_DXVK_FILES CP_DXVK_FILES + unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" fi + # GALLIUM NINE + if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + unset PW_VKBASALT PW_MANGOHUD PW_WINE_FULLSCREEN_FSR DXVK_ENABLE_NVAPI PW_USE_VRCLIENT + rm_from_var CP_WINE_FILES "d3d9" + CP_GALLIUM_NINE_FILES="d3d9" + fi + # GALLIUM ZINK if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" @@ -3690,21 +3696,7 @@ start_portwine () { then export LIBGL_KOPPER_DRI2="1" fi - if [[ $(check_vendor_gpu) =~ nouveau ]] ; then - export NOUVEAU_USE_ZINK="1" - fi - fi - - # GALLIUM NINE - if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then - print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" - rm_from_var CP_WINE_FILES "d3d9" - CP_GALLIUM_NINE_FILES="d3d9" - export PW_VKBASALT="0" - export PW_MANGOHUD="0" - export PW_WINE_FULLSCREEN_FSR="0" - export DXVK_ENABLE_NVAPI="0" - export PW_USE_VRCLIENT="0" + [[ $(check_vendor_gpu) =~ nouveau ]] && export NOUVEAU_USE_ZINK="1" fi # WINED3D VULKAN @@ -3712,15 +3704,17 @@ start_portwine () { print_info "Use DAMAVAND (DirectX to wined3d vulkan)" export WINE_D3D_CONFIG="renderer=vulkan" else - export WINE_D3D_CONFIG="renderer=gl" + if [[ $PW_VULKAN_USE == "0" ]] \ + || [[ $PW_USE_GALLIUM_NINE == "1" ]] || [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then + export WINE_D3D_CONFIG="renderer=gl" + fi fi export __GL_YIELD="NOTHING" export mesa_glthread="true" if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != 0 ]] \ - && [[ $PW_USE_GALLIUM_ZINK != "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] && [[ $PW_USE_WINED3D_VULKAN != "1" ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then export DXVK_ASYNC="1" if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then @@ -5191,8 +5185,8 @@ gui_edit_db () { PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE - PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_NINE - PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D + PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK + PW_USE_GALLIUM_NINE PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D ) if check_wayland_session @@ -5245,8 +5239,8 @@ gui_edit_db () { PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} - PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} + PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]} PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]} From d0d134ed51d694f8acd2fdb588f3fed35c0875ec Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Jun 2025 16:32:36 +0300 Subject: [PATCH 14/33] Updated icons --- data_from_portwine/img/gui/albiononline.png | Bin 7203 -> 6882 bytes .../img/gui/arizonagameslauncher.png | Bin 3813 -> 5291 bytes data_from_portwine/img/gui/bdo.png | Bin 10044 -> 6086 bytes data_from_portwine/img/gui/caliber.png | Bin 3327 -> 1938 bytes data_from_portwine/img/gui/celeste.png | Bin 4572 -> 4280 bytes data_from_portwine/img/gui/crossout.png | Bin 5859 -> 5398 bytes .../img/gui/dcuniverseonline.png | Bin 5095 -> 4364 bytes data_from_portwine/img/gui/eldevin.png | Bin 5586 -> 5587 bytes data_from_portwine/img/gui/elsword.png | Bin 5131 -> 5088 bytes data_from_portwine/img/gui/exotanks.png | Bin 5531 -> 5159 bytes data_from_portwine/img/gui/goosegooseduck.png | Bin 2094 -> 4223 bytes data_from_portwine/img/gui/itch.png | Bin 2181 -> 1609 bytes data_from_portwine/img/gui/lastchaos.png | Bin 6659 -> 5411 bytes data_from_portwine/img/gui/mame.png | Bin 1620 -> 1610 bytes data_from_portwine/img/gui/miniworld.png | Bin 6119 -> 5865 bytes data_from_portwine/img/gui/panzar.png | Bin 4190 -> 4069 bytes data_from_portwine/img/gui/pulseonline.png | Bin 8111 -> 3032 bytes .../img/gui/theworldofniftycraft.png | Bin 5482 -> 5135 bytes .../img/gui/toontownrewritten.png | Bin 3574 -> 3618 bytes data_from_portwine/img/gui/toribash.png | Bin 4323 -> 4620 bytes data_from_portwine/img/gui/wosb.png | Bin 7783 -> 3984 bytes 21 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 data_from_portwine/img/gui/itch.png diff --git a/data_from_portwine/img/gui/albiononline.png b/data_from_portwine/img/gui/albiononline.png index 2345d51106270131d15b35bca0186647aea6359f..192bc198c8c50739afd566c3bf18f1867a7b3063 100644 GIT binary patch literal 6882 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 literal 7203 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 bBX9o)?(svf<^#><00000NkvXXu0mjfORhUa diff --git a/data_from_portwine/img/gui/bdo.png b/data_from_portwine/img/gui/bdo.png index c5281d2e141869d655efea6028f17fc49934a04c..c317623f428a75e20d8e95227e5c9aaaaae929d1 100644 GIT binary patch literal 6086 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 M07*qoM6N<$f&?tdd;kCd literal 10044 zcmeHLcT`i$x28mz(yKHf^qx?Y08&El2vS7B5CViAYG~4%G^Hy=1VltoqzFitCS4Gu zcLfx@RO#gfZh!B$)?0V2_x`&lYtHPm=bLY4zS*;rlNbX%b#gLhGCVvya!n1D8@L*D zUPy>=cT<9cC|vasWu|GXsVRs@f_uOr@d0@F=NMeU|BFq4Pl!i|^F`tc4bDEtoEK*N zOBZz<&Sv?|PQlsyzhMY)HW;4(j~rKL;fgrUro+|6xPp%Qb*x65eSVQ#d^B*@IrHze zx~8rHhqx#hBq|||>kkr_gn=YrAQ=uY1STN?lLF(=__=@1=$z?JjDs4EB@7LR8)(Ae z9B%HewrD359v(I;@S(g$t0HT=mC-X`Dupc-CfXo-Ef1JbMW$Lrl9zkLuNY@KEd!q2bxo7Hb);fukn40 zPhgNI08Tcyd#M}k1^2MsUFkB=X-^H6jIgH0D&)I%~_9i zcybC@Hw4lV<;h`+lPA(oWtUU077lyOX-C{tF3y7zqJkSgmMsQbm6o;g!q$o&46^r&3 z2VN)RkaM@Oh22n5`;7wkBoDOr^mK!XiTU{Wi26u~y1LtmfuT^S7)V@9TwDZ)5b^MJ z@kC%nTs*kWDSqWpL3tqE(Qck-R~L?RPK33qm!~`sh->HgeSXevy1IYRyLkMj0!|Mx zEW%9;ED92Hb{6|<4-ZdOZyd>Q6Z(%mJdAzaP+~Vw9=hM?vkq4fS53_MaqHSOoCQTcMQkL*r9>oA zU~v%yN*o~~BOxInj)X!bA-1T$P-(h&cp_YosB6 z(_`R-@U+EskO%6ZUA(Y=HW;IwQAVDKb2Y&-ASgs!N?HOeEpdMT6J&yN_rOKsIp;;{ zyl6S!78q_ZIAIazaf&0j@Z;73gS(>;p04i3uC7k~+ z(y;OGX;|nyEB`wEb2?pD8?>$O|Asz4JREX3JZ{T1&>pz)eJ@u;!wa4$X}P>f$&DzT+9>4^=lK-9^qn#!ex)&!u5AQ`agsMQc@fw1C_E7k+PP8 zib#Sb5F!XETX7Kx2m-}L0Ycga3Hdv_hpVlp55gU#WQWrcrxh+dFTS8S_%Aj};O}T3 zd(`6S{VUf$Qs5tf|BbGH<@!eo{3Gzc(e-~O7ulb$Qz#eQ zuOJ`X%aTiR!}&Wnk+rtE3f|fIC%55wGR{NlreW@Zhj*Fwyx`+K&SJtji9I!SRf$&! zi77cHhMz0{f``X2p{b%|Y(G=_Sn~n*sPAl$Ygcdggx{=xTF#}_yPWt`x9`UA>UJ0K zed)rv+iDZF{^ZqzmT zJ>nt*Aa&crj@sY{1grAbHEfr8$0lF}le$Gh@S7|)DdnK1XrHu(ALMi)h?|3}eIK=v z*4!lUEbp~gzMfj2)?sQe)1*oZaVh&OdvROL}?dKtKK zY6sqX_PVpQ5l@LEM2NAebMJH?_>d;cJgz2i?nOy6Q3zc^<*brMS9V{L$KKDeDS=0~ zG8P+&_1rg?Wok}ZL@0=$LVMXAtO@&5v$C!JER!YK3hn)UUNGk{N4oXK`hnxx^!;Pg z9H8b6@0q5y8-58YMBNYb0vA4!aN=!hswy{2=fAECTfcR6;&~HOmES_Xo$k%e_uI2i zi^#77)Krzw%ua4h>-KR<-|jogQ1Ayvd`ydC&*EXRJ>IBO_*!K;i~Kgleey_@PhafD z_~Z1Tdoc*_=0r;@{m73pkLBQ+Pqx0^N&J~}d}rI__ja1ZBp_ys9aWrPu^RUliO0kV zIhCUG^%Gn<2fM<{z7I2289!`Pm-6;`>w8vZ%9I&w5P3o#%acnrhKK%ATY<{Ri8Z%e zd(&XGy<{OX4&|>sYoTx4jOZMzZ-^M(INr0gF3)uTR_eTTNZpTBTMXpovt_z7Zi{#q zp9T_@o4CnZANZ)tQki=~xPxUlY*HorMPfVc-W6rVVvSX<(SWra%31&P(w{Fi@E>kq zn=fhpkW=#O7ZvQ_b%X5I?`(-?H!jIMk?(qP+%7HQAtHLGQPqg4Kj+p$qlcr@4~mS; zOcdlphCT62z`C>@gHVB!;X6@5l5)dV8!=^cNDJ6dZD%X#q(>pYVh5!B!e2#>ofWQ4 zO8}r$z8n9wZ`ATBn1P3o_@*LJ%wD9oI!KltgW@WaDKdK`=(~T+oOpZ1!>_h)OS#MS z_%I#2Iz+BBk6sWB`pGC(2AcjFQV~0qYYSrD-gsd?)6~#ubE7QC3?x7DenQcNw zy;+Vk#swW3@r}Y#BV1>ky|A~h5A1(P@X255xqc4PxMl7;aj&TUM)rDB`*)r9TTYn` zVc-Un?jK>)pPUDNOh>lIWE7L$uKQ+|fv#w>Fk&G0GvR!8XkobWN*urPnpI?%x{^bs zNx;u>JKx1;jN>(1*K0|$EE8(qT6ze^A8Z*d`yQq%47~sLsq(qqAeyD1!+(JGiNICY z)ZRGOQOje2QSZoc3PZX{9UyizfCzIuB(yRm8ckgKe=}ooZ+Lv#m#>R@F zO+)j?T>4w7L5CLH=p#m*Yrm-FZO*d|ub=FmG`(JkFnha14PZ!5GxMLrr=XzFd>q%& zF_n&O^z*(S)wpq~KWIr}hapYl9c`OtEJQQfLLmE*udRuGdHvfC2bnVIk-`cLo9_u> zo7;zegr)-h?aAIT7=Oku4qA&$G6~&)EC~+zJ%wG4rUTb|QDSEmvj~^3z2MKSv+sJG znu*0ueDcG5YSze#t0NzfYLVoePT4{Icdt~7HuWq`GS+Seo#AnE|1cZ8LScw;w*fq( zA_=F`SO>RfIGhD<9um3Nw666^k|WtOT?{P-ay{ifryUO4Q;~gic%`LUp z=d-^w8kB0+crdBK79{LO5_|@TjFep+ZlxTYu?T2LoIaEud|$x}W=g^BcJ*Zc0uIlHo zXMMY+h4+!}`1r(ffPyUoXj@m@g^GE%!E*k!(NPwY9r zn|9@#>3ar!oy{vu!wW$(hwd4VUmvwPFcNLrv6CE${=~R6xF0NYX@y~*Is7_BMd-H? zed;a>hoGoJI$^QbWu6W>ebYTo#vz$LGxPJscTYg@E8e~fJA_{}wLa^8con1}rgG)^ zGGY%NAUhWZATVNU`Pt`{)}Kw7`6=_e88 zBR1=o^2XdBOBsBiIstUm~>eryY@xYNo{#p%Yj6Vh*=+39&jHGD>NUJWAJ3 z@^2aGA!oe))7&KXzQYlN5Z{1--POWZA7cmR%BBuCwR=_ZsdF(Dj;!cB4GYqn(+0*o z4Ua?(E$2Mo_SIBcb41s~12!pZ{jeXfM|ZxLxA|%#pT2PXUfgmk@vUzBbe(1r)@FxS z@D6WuG!?-?wqt=;OCzQrUdhK_I448BIJ~lCY^*WfIMn;G^@O~qYiN-SzA{ZXVd*3P zJ(}d3x!{}*n9h%nTIG@oEzkM_!&$}aJZYYC|Ad1)$1VzDfYafQwD@38C}f)7it7LjebaQg zV{Yf?lJL>Y6MoXRL}Ybyc#(SI67M9NsMS5)PeTc3MZljs2OwgUwC2ila?BX{>eC1-w_8Lpz~Sn+(eY z*MncJMmiZ=>%mcVfFN?Qey{t*Pje&ElXw-2*vwI!dS;Iup27rLBx}ms zD2etlAs$Hx+mD|=whT&AEGIIQ?y;}8ZhmH{L<`?E%&$~NM^q$e2o!7klx-NJ@-y7J71u$Xv@xDKArzM(hP z(sHWq=_oh1-#Nw-Ta1wKy{YQ-Q_7+DoP0pe+UV(7dbgx`KiG#A&YxTAHJl1pB`3g? z1S<-(yBW{PIxjKuUR`4^lX|E=wQDD6}2MCTV%-U0q5kXVG(GPHu?HGP!1YAVab ztq1l>UlpHIzu6Gx&XH^u;Y&;^-45w63r_-&iUNSkAfo%-_(+>!#KM|*@=xdc^}OY2 zjFxr1Q=_&SK|8{jYIPV?dup9FrGr`h4!zSaUw57}XdLBer&GiL3ee${Iqyk%7xH0I zD%MxH(eGP+iB>XMWL7Vc;v6b614|J)z<}4JcaVJ!oq1u3hi>6QEWkMG;rM)hkx753 zD!OR(aXB**Mk=(N_9#1(`yoMcqVMTf9|4xw?>kSYJ1)n7$?K|JFq>avxqq;utJQ~A z!Q+mD+SY|bB#ZLsya(bOKuu{Ew;M@`THd=J%&T3c&nxFrZQaXNvmD+zceUM!#loI7 z4OxpPsZ({6_1Ln1LJKj-aura0sZ~{P}tPHHAF_tAGVg z+rsB0%9t93=A}z~df5fCgPkT)`C;(l`n=>04!QWBD`wPHNTM(rB-;xg<7Yf1nu~;0 zm)E`~pnW7?eHuKIgzqDmp zZf0-q4tr81y!d>3;l+uhk+k|9Ni$e} zhaMsU1W54V4R)Un8rURZUO=y+M#_%x4)8m;GOlp+{)g|8m9zP>5@C8qabAGsqHdaQ zd@a(q66zLkC_i|i=q5VBA}z{1j5hRV>-`1{{PiWiLJ^5+_<{=8C5QlIEUY{dl#p?! z%zl{wg&Lg5FM&J8Y=?FSC(wz!h^da+FSf4U^{i6lNfIPUq3SIFOH5}NA~$Z$r^wwh z@``u9l0QwphE?PN78U|Mvk}>?_k-Q=7g<$3Y}$U*t99fI$WI`=`jb2X%3+LTjNH-y zhh-`Tt<{a8r}5isl&kqG`8*9SaUKSb6cxTbSfapxh-fROY*xF^@+}pzKJJ;B*`GN+cdL+`To2)^vRrhW-fwrJdrE zhItl!hT7fiPBZ)ZTbkG_d-Z;$4#3$}Vtwze{?IR>CY2T<1o*3Rjosiz&g>OL z3NTu+N+#Dy_?B-pH^!h>|JH3OTP!?zaM{g~II}=yLcCNs#sP$hE&ik?2xpe6;c&w* zAr@04Zm#8Oxx`TbDc&s)-0pxu`W+vs?_P-XFmsb=GaW?yOLbWqV76Phj>$uELRhVwRU8kG;;zCR+O z&E+jDqwbdRX~+$uZ2J*y!p!+h(LTOgxKM6FQk$DIq38jYGD->K=T5*S^{ON>nGN9h z<|h1`oLQonV`VwXI!I8>8-SY51*-EP-y`%~fLf1ecyd&RNv>@G4Wa>Pa#51{(K+UN zN6-yxm2ms1&HgKuLtuS*Oj6J(%W}=({Ponq-T}3M)yZ|Y{ZT{f{oD?kFh>&ch2vH}d({yBgcpvj?=|Bs zto_=xe7l3w>d5^GrE45^^C$~J(Am50rp>uFfIY7pz4UTVe`EdLDnQ?o3NX0w`cyN0q!z!yvuz^gv6$TVgEhOOxN=Uhdbi}3 zqPvo>Hf}~Z3c4kvTg_ObrI&h1yS{6w7)s0i{31!2?OFkPnvp#y7ZCJBPHd%GWIzrY zCPEzW^P7O>=|Qkx%A0#Hza*Y^(pv_e5M2+h{CxNEV}rOsUDfNaYATYq_Ybb?-a+1v z8zMWM|73LA&p&oRZg}a%<@+z*eyv^qv6&uJ(X-09w=x!b#HY6Jq%+MFxfnWu4FIc+ zMV6DssgWZp6WJ2YzYE&R=J?FaE*(3yGl~|FOoCV}`m=NF{Hu9ODSZQUF((bW6ua)q z*E?j$@fHyrcv~(<4T57eRegJn9uZBanVA9iM3ieEkIBgW+^2Ik+#Gc^v-Azj)GvjU zw^CDP>F)2qsS`zs%auB+@744u_~BkkmchIBFTZypozVQ`!u{wtauOttuxEsYxWrrX zY;{29>JL`Xq>b(J>m?i{bX&Rp$0 z+s9n$m&omuSf=Z<|KMLOOifLyvZ$|*4vw(f0EhBKk>7ki9Xw^W9(2knjh)U=abh0Y}IQ| zz1klic`U?2v(B~v=@Af6=*M>6{$Y4Xw9ZBo@*wp2wG^G_VB(17DV?ws=MM7vYUt9B zRdqHPh7wI3t{9$J9Gt&8l?2SzsM)a$8QSPwBo(^TQ{%F^P)8pH?`hf}P5c4_V7G7e zWtz5vIo(M}3Q_>;3B0uP8S(Ok0d1YbO(Z!~1O!SP!IZ~eoG%aK9Rol&9`_87XXONZZl<&>O`I9ne^rhLOR#~HWGAZ7bbe9WINc9d<_Jd$5eIz< z-TU&k7+eoT>&V<>^pz@VwoN5 zG%*|K_L?fRj!G%Kt|F2uf&Ox*%bC5n{(eL&&%D`0qNN98$dkFi#96L;^VLDb3de>m z2hFX?r|%usp>GbRWEd3cp@)gC4M7`HNH`GCaxL>%R5-!VA oNjNHV?|s>6+qN_HJDWelr>uA4N_|hTi-)^3RrOR}Dc=qKFP`eu6951J diff --git a/data_from_portwine/img/gui/caliber.png b/data_from_portwine/img/gui/caliber.png index 7fc88a6345cc4c6bf3da71bb0e097d3b7316aae8..4aee309c93b4706fa386ae21992dc8e20e1ca0ea 100644 GIT binary patch delta 1935 zcmV;A2XOfR8Ili>8Gi%-008|9F$@3z2U$r(K~#90otS%YlxG#jfBWrjvSAYlB%9r2 zH@lk)glo7&ZYdqDpg3de2-LQ~P%eTM!9sBAh#2kYA5Q7iPAWx9bvim#t2WSL>p-E> zaU@BprJ-DgS^|U+pp;yIO|nUL_wkP|%kJj3)90^m&vVXm-hZ?2`@P?JUlSw2R5;mG z**`x#6_2t_Hc-&iVQMu_S?g8Tat4hMJ{;-yg_rd$VY)rbMIi;`kO6el#uYB{3EctH z2iAS&y%(E5M}m^l;FkX7V{&G(khv6*mBinoiF)4V1h?DLU$H!Q;eW$dk^raOTkUL{ zsvSD1;Stes{eMuC*XS7j;DrhLFNI~AW!r5M_11XE& z!E2f=S9|e_WWA(0@Kpt$UTEHlJISqs^E7dd04B0 z{PN2$pFGOamI1y!S}$kFxBRZEB_=;JxckfIoum&){4lN9>8F#cTqA%PD<&-1nLEJO z#xvY7H|+MEZT=vEaM}xw%~$IP6B*Dc?a@;C<&sYYsvXp;NwZXNENRhttGzlntav2u z`Iy$JP=78}==`9*d*zY0I!?Z{#M$w9oWpUQjy`>&L;9s2)st%1BU+-z^pp4r1w;#BIPMhxpJyp z+jLepv`$%iNs@F@vo$O3FFvUWD%=&7FDcCH*nb|QLRzgn70M~6vQ?^Gx~5;NT)D9o z%M8;!nfALc%xi>!J|&g=Lr(V%XffUE)6oZ zgTcgYItdd3OawU}wHvs=ZBcek%=Ib}`dLCQLH>+6C3!H>Pml<`n1C=>W6U^|ZGV_- z88Jf_B9m_b2CErIB;^zqTIj(9m;aAK-d^VBN4&`=}Bso zEDCnVN?6QT%CG{pj3bAploEu=C4)MIi+MO$7-M=MXfbuR#S%0Yxyy4nClGw6X>c> zqU@w|odc|=IJP?uj(%qHMOyg-V+U|Y33lnIap@zY@o>_DJj6|`yv%5RhJP{aVvTT- zThx#TbS9-fg1NEftU)-f_BdzaLSA4SVbVFyKlvI}^bL9h5dHK}##2njOgBGf5pTwM z9_KXawS)~wdo|Gcr?>?FrWXS+@eBc~*g`KMf&}R&M2LQR=^;WHKW9G=V5NbF_#I7g zTQ$5)u+#Et^oM&_{73(SDu3jbUw-B3r;?;ynxhx>BQ4dJbg#amRobZrMI?n)uZ{A` zr2eVQH$Eutu9^ELH$Bsm0J$^ z)xbQ%2$C3<}k36n~FZa>yl*?$?_M_HM0_BcXjyOtIAwc`WGw(xZdgqy;*YV0~M2 zwN*!Ao#~y?uTfsaS2ct@fUn9C`c^{8pCORYT}u%K2Kb!Q{c?ncl?U*xaJ0`(Dm)eJ z)pX?zatIs*B^CJ%Zf(*>DT|-ddgZ5jj0GsSd#fF76ZC`{M}Lrx=)c;c5;=xEh!1&{ zP&A?M@!m%=b7rxK`4lrciN8q`bsVCR?zW7-q}4Q?8(e3k%aEnLOTsfpWxDX-A%{_j zZf?*@3)ktnZJbEoXRiHRmmx72C6oFq`{swI${iUSz0T=0E?Z7n>#cQ7BVOnHA9YP% VQChR|>i_@%00>D%PDHLkV1k?BwO9ZE literal 3327 zcmVpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H142(%c zK~!jgy_$PmlvV!6-_L;hGf=VJ3N+n@nn7p0f@r#_cux@w6%i3g-K}-E?blV)F!O%5 z>}HFKiU=YC-YajQsmV1{Kp9}LUn-z^*%a{A0B8Ted6d=bxG9obUBqzR%~J z8A%9%r`{-N1dXTOD5g(~z--C~kUup5!-n|rx4*v*Kz2?pW>Y?rR%cL|0YIxW2qA>H zaIsKmbp~{+b_PaJPIkKsdy$ljbmq=V#VRhl#V9fi`U zF@ZeSrMs*wJ)`gXk|d;5yRkHa*_1CS)=kWY_4o}Qq!1b(9Lm`r&dJZtwn^LO12FsD zw@67!P|ii;IXIJ%DPp$7iu;R3Zcj)|5?Y->$O>AWK_u?nC9D%^JE69pn#Bv}1K`%K z9q+yWfhy6N|M*|Uvu4o1KT}m*O>Wj{yCZY`=bx1d8#is?vDU2t@EbHxr7$frTrrWF z*tmEAx_0+Q(r6UIEn2j|f6R+yWM(xe0F;%LbK!h0Y3aww%{on3Xb1oniv>@;k$!!B z>FwLUVOX^~gRodELI@#DMa7~q-h5}aJZh>6VHFFq{fZgs#6Zv8*1c6-sQ95^yuR9r$E zS68xgbNTFxe_=8e0r2(y-RSi?g=|et4SGXQ`B|RVm<{V?{sW&pvZv-_p zHN4gKa$D7KkDn3}S7^vSwCFW9`ot+i)B58F7;icE})&5jj5Mchixl~tG zvvSQxc85wfAW6h;+sv7aEY^McIj4>v#lyp0wxt31c()sT*DKD>R(m2$Y-Pv>J zAxRPdW5-QU^g9FGym?!0u%>sltgK1nR=hUzRc6hJqUgdooSd8#eHwtNk<(R5`}QAH z6<2!*4GE@It5%pz`3mFZO`P-rqe*o}|^9XjaMvj@pL)`Z>W4OCNrIL13NdYE>hLfF>t7=y{C@IWSL>(I!&xZ?_*frXCBQ9RH zf|$**jvd(B>QMiVym8|OyZ7x^7_hg~gC|cVC--~#SuWShmn@WxS5;Tb0zdzJgY*;M za`N;UeEaxNQkX~jk*@(beB_wQLDG&mWkX}mSzIxMEmcvVGd z&YjN_KK))0LI|;7(NbaT;Un8PdMsVJli!~+iy6}*frj^ilamt#=W_5e_EJS@Mc9LG$a^Ly^-y)G4y}FpTdr$)ft3!EX&Hu`Sajm^7u9;#P%Rb5+#LsvaHNh{l`&M zRE&ZOEn2!9fSinzDw5_1j#x!RSSWzfK}JRvuCA`MZ{MD84j*Zj14r=j@m4#yb^A6e zmo3IzT8jUe7az&6bp^V(Jf?PFHs$l;s1fYhyPu(c&98m`+OUZ}KHiv3`7(3;>8Hzp z4TrZyafzA8@UUhX9~U^5)oa&Lbm5$${p&+V8ZxN3c1_Xg?BvWpUVn?g0RJW(goTEv zj00?s-_hV8a{4QBNBW6x*>~U|8JSspyk;e?uC6L&D1i+Wkn-oe1_oh%=SI4uSTDi?)vDmF!cHe02+O;Jo;}n`khbl+do{-4A z`3vp#J@BQk(>=%5m}uOeQolX{qBq8{eB~O4j)mZu^o-uHOcK1;tWX~kW>daob&%Nf+qwqcI;@LeBz0R(!F;5I{Wv3MN)EV)BMc= zB#E>piK8vrySee+thbpsA*e~d_plH`khCj>6|2^A>-O!Y74D;12~3<2#InT;>@qSd zO3bAkJ(fmhRyM`OC0w~$Mr~~^P)|=fcI<$cUPnJ)Uxp3!<4=F;?9f(iZ7p-6=Cdog z>6@$vCJ^*eAgfm_ZF00P7Md6n5Y(hITdZBRoR`K0JWxgm!JMf1>`Y2_C}TH)_HJ$* z*qdUPy*~;HE?i_=Tms3dyQ!(E0pR6`seBMMr&;=CW##w>j_3Bj|E=m%RpMSfdyt)R zQWbo1>K=Ui4E64qe2wC%HxeE> z1B=DNwk;bmoAOz)bPV+?S$SGLFtgA;A-gnmdaPn>O?L`e=F0Hw7mrC*FGFp9~*1l<>$IB=3x;W5*6$ zxLAmPVEyH=k9Tj?Awvkk=zt*kE(vUAK$0Z3ZjM$39~Lo95xkR=6YD-&MM+^EckbSy zd+)w{^4a=k2M_g|bk&-V88s%5sbQ1(>GBn7YHH}(#Y-l6Il12x7BNksCrJ`pW0WyE zwg1BtA3{Aj^B=7w(uqmC*b=*4ehwHrhJ*W3Y1y&`{Ra-^V&S9JZ(DqKCX?jU-DosU zJm1fko40OpEbTY|moHzz-Tf)L84a?$tBVUaZ{FnG`8>d821bq;t}q^9n{{hf zQB+*Q@KIy=_19m2bMUq}nwAcz&q<9>+W@0RHpD6?(5X{Lg-}gR4aFs9p#H9G`pXdj zTr4caQ~S*C5wil-RaF3FW@Rhdi%ZOM<+7r4=T7o>nU7XhRw{%v8V%N;2m<^^1NE1K zdHDql8u$Vw=F;CW{Q869k3aq&`}Q9MpkH5Kx_IgF@Nier*1LBbVwDrf$vumgUav@? z@ipC%V`=2&6_6MoOKe>HLv7p#!CI9jP70%K+cq57lS0Ri9URK%*c25xHS4b*4?;}`6y`FvL$;`b`mlrf_LA3gR|LZ9vFP%SmgvvrXn`RY;mZRnU&3n zZ%+X*H|j%LwroL8<|#UK@c2y$xVt|^=T1+PcK9m-#*X2q%a^%vVm^^8s%K4o4=c``x zMnhM2Y~PBDiwi;s&i-(YWh+)==-P#6pY`O)C!fIee&4Ozx4ClpDn%tFeD_@jKis~ z-YPqoKX0zXi>0U!7RW!1_;~l`FVkOUE?((GRn%z`RAK&lbd_CS@NpCIy48}yBT@?wZAiT$l%|6v=l;c^jJEdeD(!-`2`QF z{)?o2&KQU!_WY(OsK0}GzOOHOy$(<9Gq}0A;o?&N$CS#-N^ae{MQQ0J3X6)#$jDTb z!bgRK7%N%Hlc%m*fTR&`3V|;VIV1m%xGMyi8cD1zF%=vD_z%Sn0UORduEYQU002ov JPDHLkV1lf*dF%iH diff --git a/data_from_portwine/img/gui/celeste.png b/data_from_portwine/img/gui/celeste.png index aee04467db226a5ebdbcf66af2f2c823715c5bd0..f932de3665383db193d36d196ef463399c40eacc 100644 GIT binary patch literal 4280 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 JPDHLkV1i09=WhT2 diff --git a/data_from_portwine/img/gui/eldevin.png b/data_from_portwine/img/gui/eldevin.png index cb9a7ae9674560fdc019297afe7245566e41f6e3..ea3b04442c3ad8893964c4eba6ffc3e3721c7bb0 100644 GIT binary patch literal 5587 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 t@dICU9}#1q$GG2AwYNxrQ_wZA{|g4hy9ieb@t^ diff --git a/data_from_portwine/img/gui/exotanks.png b/data_from_portwine/img/gui/exotanks.png index ab304108224d7083b2cedbe31f7135cdb3324428..94cbc3b5d18a432dbe29fb358c06f6221b19f10e 100644 GIT binary patch literal 5159 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 diff --git a/data_from_portwine/img/gui/goosegooseduck.png b/data_from_portwine/img/gui/goosegooseduck.png index 1cb1fee7eb5173d7e3fcfde6f668b8c7fb09931e..4df3d2d4a0da531e08d5723f6286b31c846831a4 100644 GIT binary patch literal 4223 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 delta 2082 zcmV+-2;KMpAg&OQBYyx1a7bBm000id000id0mpBsWB>pM;7LS5RA>e5SZQn=MH>C8 zx@WrQbS8G}IKhxbR*W`lz##-eNH{`RHWG&rtTqU=0zyD291`M^A_NE!Aa21A{((Rs zKp=5!AV@?USuG*t2ge>_Ne~JlOu)=|uC%9*;#K>Yt9zzBV}J6?CHJ`ctE#Ww`|8!z zM005_0&@|Vi@;n2I*0)4pzU_BrAD^n zE`%sqmbE3BOupn%-qh3)f&A?(6;Z?uoalNu>YMIK;W$4i!02EEdYV`A zFGcWXo|F^~@_u@R^#Xhn?KKY{AR(lDS|rBUJXKYnD;A5lx2Wn_+!le@R`G9h1+BA} z(Tg-fWjX=AC5dXO%Y1AB=0Nq(cw&%74iXQ5#NT~u_9ZF?Fh=X^sv z9zP$3H>QnEGW9WQQnj%t#KkaHA>AcVqXyKKo}=9^F-hQyFaAeA{O}X?bf>7lzt@$~ z&VTNqVzETLZk|9(x9s1)Kit@3qotz};G9lzrGIl6j;jgC(NGwP$b6T8X_<89nJZ~Q zPl}E{W)a2XG5QW8qG@4@M09eT+Tp_ptxBa*XTi(%M##06wh6p*pURkGt#I`(_o-?E zvJVBzQe>V>Kx(`znV_|6R|2f#YQAU1u)9HPqzODVcyJqe6Pkc3g#fO^k2tAE=z0jAJOD#3OA1fJ~8v~?nV&?XKL;D0Vj0_{A@M$ge3NaoKL-mt;erkjs2I`nGQ(DyRGF}$U}(v ze2f?*!?Y-#2ys11g;0Vr1;gD3Y8=+RV7|PKz2QNaQ#hrbSXW&0>d|#gx#vrySAX?G2t%&8IMCsrTvU0bm&$d z3GZ??0$YqSa3tld-~n*UQ~*9nnM_w@UI^K~vR=FGX4kAGqU%OuASk8v2AF(f0SZdz(3@&Iq^2`Z-sC^vW- z74V2+fpSHIy643(nJXjY`kVZL_PduaKPiUSmc!MO0IrLR!c1JQFmV+WGUTo}$k>)b zg7m7c`v0%@ETz233 z_jC4Zw_Sd^miy@+%yE+38iyMskj&;w z{`x_~yJe&G%^kaM=8Qjv61f<;z*n6(NKsw$-4Afg_!}niD~;Z2Eq}fQYO8hr_STNi zpG9OhO9Cn)zv_fRibphGDPbSD8B6Jtt$LR0$Pr1lV?Bh9@^S~(aHZ73DyFc9eky4C zD_Q^C5hD;*l{CPQN+^F=+yfbbKok5Jt%d%uDu#1`zoL!%L5%fxh|fy`Tca zGZ%<}|0?9^vpr)zpMM|B7L11yQ9Txm${Sdq)2Q4BTBhHX0Dzy2uMyWk4j1=zYq%ie zbkxG>$n7dHXgT+7RToXoT&e=2BU{z)(E82hcsN)H{mY3 z1)z`f=qs=Z;IlZ1z8a*#tW9Dpi8vjIuOX4Ag>V8z&krDcJb!{u?cey7SKDW81Qt$w zN&5)jH*o~uebt@JB#$6`P%4!k4ccbbcH&$Iur1+pNN7Q zR45cKz#9K3qJKUZv@^eYkj~!m@$ofXU0nzL>iF4bJOY_awimahdl2=_a5@{SmpDd#yw~2mk;8 M07*qoM6N<$f+8R5>Hq)$ diff --git a/data_from_portwine/img/gui/itch.png b/data_from_portwine/img/gui/itch.png old mode 100755 new mode 100644 index ddc5e6b956c9724fb5dbb1613ba8be7a72631b68..2aeeb27f112b929f80b2399a7c23dc7a0cf2cf66 GIT binary patch delta 1593 zcmV-92FCe?5y=dYBYy@ENklAS9@P z2Ng7eCP)Y|#27Wc)n^l5eDK8wOe7i}2oVwuA?lk3KLUv%(KdV~h5%|cK!Gl;Alojx z_s;QQddn`|d-t{lS`+`tO?zkN&Yb@_|2b!-h5s?Rkf;ug>3^FH2xvrmIr6)9ZA}~V zns03z5g$zg#1qN-*6zz3I`m~(N9oJp&YiE+q*8~BF&@@FTobFo7_7Cy9cy>h9z6JY z*qjP~`SGczQXN<(QbU{|Wq0;J#o2(w#g4)eZMnTd+rtz_e-iiGV6ti`lvr^YY7O6U*a|W2`0k@I#n34Vf_mT3V1t9)U+6 zMcUfjdw*ji)YZ9rB5mw#!ZLLU+{20e9(V9y@6X@dX?1+=Bb zo!vzelaPfAU82b4B4t!P3k3nPc{4OMRn_eXeBTwNR0?WpoCH$Cz8V}%M!;HVZbs(M zkIiuL1coOu>((VRJoM7Nbs?QbySoYAdk=f`XyPJ;2(n^DtmEP(fRSY ze}DQ3J$1_IKUFfdG3XzEKzlph#*N9052sze+(j`WYSmp)QZ1`u_H69Qlg`-E2v`f# zr{lf;y3=&hjjW2yor|=#MmjK>fGSL%?uu2?#TGBd>+FPvhH~8&idjvO&|!6IdfbQO6oCdk>$(r-hX<_Nyu7PxmT{lJpcT-kImB2F^()`E%Ml7 zvHFYrZp|9Z?%mF7_4RnWce_k9UIO#yy9!<*da;{W#-jgHSc}=X5pLde3%9pNpInnv z=Gt1wWFVg()m52*D%97zLNWoEZQDv-hJ&5Yqc?BD_3Los2C{Bl^(gzkdny#c%6|lc zz#YU|TB>^|DyI()qJRGleSK(eFZA}JSFb`g>)MBgpisaJ4Pl;pE_NO5?S+5-ai`kE z1Qsp2yAh)x;taiU!x?(@>Rm(o`p{dqT-d`5BH{=eGjhbXhYus|?XFX}fQYxqm?2Jwams50w*tBDg>&xCtQ>sBt-Bb_j7;$ zov>+yz}{bfy?rsCKMasIhLp&ZdeXzy`rOdak;C2Hw?eziHu1CP&wujSf(6YTb#+^f zYJJpy#~(Hn#ERTLlgoYm#>I;tQ)1V>dJ*Q$YkFe#>?JMf^enwcZ!(hw5z)S4vA-*u rJ;$X>1H=$0ZJ%lx$}&Y1abNK-7))$eoHlA&00000NkvXXu0mjfuy`5b delta 2169 zcmV-<2!{8`422PpBYyx1a7bBm000id000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~ zcP?peYja~^aAhuUa%Y?FJQ@H12ogy|K~!jg)tXyxTU8dve`}v}94AiNG`FTosdFK% zD%vu=iHlmGqGcosQeT({G+$!A%DnLv7zu%dq5&QXMF_Q_Qhx<4y+IWZus(L)O> zI}-IC%4G-w1MWSjB0&JIIom!T0;&K=TN{jwAOizv6o0|W3e3);Po6-bU`25okNo!p zsvr!>&fKnmbaf#|k0K{eB11zEMd;I~@aPeG>lS+VEvPrhlH$IAm0zQbG3Z!@d5xfiIU0phzvW_U^^K^%g#g(9b?Y^LYq@hNZG80t!$r zBb}Y_^2@k0XOQ7xbNj=G_|HFw+qcnT(UepwmXO{XurP$SHppa>z zNiyEON4mRlr%vH#X3#IbfJ~-7YnW2B0isoJ9kV` zR~K}5Lth^~!k#^~T-r)^wJ>N$ z2XgQresa=oHBF#Wfpi*q5T{0zg+*(4T+CfA<~a^RT)KPo9|f_U(h7 zo=w+iC~a-X$cTkzsr1ZyjR}ar+8P`_jDH+EW=gjJ57ZJipGT*r(5qJ=ip-KLE9mN~ zb>2#))@_?0Az=uEgH~c6J*p*p6;I;=s|rzsJ8=RT97N(eyp_VZ6vpqXB2i?XNvEMu zK!5oKy>kbhpRYZ)De{D_&Q2H^sRO>Qw&BaA671cJjE^Ik%;riGqJ;uFKabALpnuED zMkuy;7{c^4{;RL>SFc*KHyc8#5QbKEt6`dyXF@2h`EGa^cJHor!OaxL9d>30ot(50 zU~bM_A6qL3%<5r?WV6Wd@YdGfC_#XXjlr&6Fh5^c1R8rl1V%^A^-YRoG8X^$@567u z)i8a% zZ`Yb#v1ncV>{%EZvgexJxNPhwLjKK#N9=7lP$rb#$w$$#bya)0Iwn$M$A zggbv8868EcWtDi{cwX8rA7cGOL-lz{qa=6ul-x^o-IW3i- zP_QmtD#5;ewfkEUb9Qu<^nX`90q1Po9U5wSPrBY*5=ynIjBM6&V0IQ?DAY!a4|s3!f8anZ z#x{aaF6KQvery}?Tn=4WfQ1G7{QY+WySi$G;`zrpTiZDU8bzoo{>l{?9K@YIjrR1^ zhg0m)r%%zzNn1A|;W{u8OSo)ybBnL@P?(#e^3g}=yI)S` zOSRGIC!gS#mT+g!qJM*f_1nzVRs1*Kpx3XP*AmUF<^ktm*DkC7w({l-3I+U?E9kGk zTCWJhXRFpGVbD;507@nN#0384P2AC=HbSS<=)wYe;|6-;M$Loefv zle0&U@DmfTxM(&150tn|Yo%gyRRZvO2j3voop}}9(h@p5TLYaq1JZIC|KI`s%P(#7 z-fW-PF$+PQv#UDDZ8dt-%Bc5NO|D-@_wTpuWc4M@<`>~e z5QPFdIf>uB8-F=)VEw#Or>4-GH_@pns{+Yc|2a#o3dJRBb{75gQ}aS9WzA@A4)S@c z04)R_HV$(l78d7V zL{ufLz?woyMB*W})lIKXM8*4(imZjXO69&2nd)?|KXP00000NkvXXu0mjfIV~MO diff --git a/data_from_portwine/img/gui/lastchaos.png b/data_from_portwine/img/gui/lastchaos.png index 3960bf4fe5bb1d34766e26fbacb1b8cd91ed52d7..c8c78dc3bb780e0db42e3e3a0462ef787a145e86 100644 GIT binary patch literal 5411 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

4%y2?j!p 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 delta 1611 zcmV-R2DJIg4Acye9De~I1<4Tr000SaNLh0L01m?d01m?e$8V@)0000PbVXQnQ*UN; zcVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$V;Ymb6RA_lTMg4 z8;H0h>ox|ReeuBxf^!>8q4hSz2L*Au;e+4`?X;kRovwSCpnpSVdkqr>?ZbkgB26hi z_%eKvG=H`=x#iE2LYLlpYm&RmeSJtTyCip)T-qqZeIO+HegA!apZosqcXtUxL@8=705nlZI2JIOO5fMRq2Y@aB z2Z#vz7t=5+Lx02GvtiQS%c-=%iio{u!=wml9{>b~J)N5IfW`{Irn;;eB2|rp7Z+&H zSm>Pgo#ps&yP0EhS%%(mKAm>~sHCKKl!UbJp{-9G)og)bPv@SoP@W;88pp_3|I0v0 zjli&{lZXlc(A9VBuI%WBWc2lVQLh7xSz+ zL+?yvP(hcu#u=zmiJgeL=NF}r-kD(ly^szw=fJRM8&Gl1+-LrG=s)sySDKVHk#psP(;M7q)w^8jP-Uj9}V&^}tR< z-GW4+o`0+~j$zMfLmw^{v0Xq*tUsmHCg#JTOx~p$wf6cF-;4w^xn26hTDQO;7xS#- z)nGlw!A#y|)Gwx8WW`vylkv4by8Wm@7{u`0&=z<97p4WQ7)wIhckS%+ZxYe%>ODye z&kgb1i3>zj(A&xq9rrG{va1LiG8WRl@LFPwReur^gZ?4jd-4Ji6)^dBg)KFG<_I$| z8EuGhwe86_zWRWlI`yTtW$4k>H+VREb^4d4mcCuAdnMPy{Xc{Mc>$K=lUDZEzKJ~E zbOCmfPX^QZZd1EA;k<*6P*Vk1j!yipS#QFb zD}T1dZ)PO`Hg`0ZE6HM&T+GP{ExD}%^^y-!{edY6@5#(7=pojDPg>64Bq)mWpFgkGW~`;oS#}l2cJ$ym!UV z-L%h~NHI+=7ZURy?mObR$2{k>mt0i>BfAY{A*B$XAKl+iL{Ud`vZ$t-tI}$G{-gc< zM6>{uF1>qUd3zSM75n%vh5_Ic=`K-O}`#mE>Ww|a)nxr2NPHi*nf$r z``Bdc{q^K%`YwMxIPOilR8{c{5;;?XG+sZV7OXenM6vkezdC_IF6ME7nGy2E?$ojj zLg^8)9kAYn6Kc^f7F1V!S+c$&+9Q*J1-eG}YQbSzB zhE8CO_>3TtvsvPL#S=>s)H+EvWC9zZc!{_&D;8*%mEzS{*QG?6c)s}_@9c1V|J1fk z&xnPhE#hlfYH9*&XO$TtUv%0cPLu<~Y}OBL?r0eYmaYN>IRXjh><@=c<#in03xMFyAc&8RjqIBo9uB#Nc+O) z50{BI6hx$mq1h4Md$LTtk$*7L-_9IhX6&9-Bq8m)W|uff7DN6Ke(Kb3c8HTwh^K%4 z?5)Zh`^zaeWZ7@GRhlLqoIPV#aZ;rCtt%hDlf60}0uXHn*3l|=GQRNmA)BpI+vAN9 zFT`(M`J_x-`%?h(>SXk#m0NsIgimZ$8zfG0p}_y}-tSmlz0tVhKt$KGukXwL`5o*K z2Y^RGf-FQP8rVjuB002ov JPDHLkV1mDL5f=ae diff --git a/data_from_portwine/img/gui/miniworld.png b/data_from_portwine/img/gui/miniworld.png index 11a8b36762260b630b7383d52b580edef9aa4cd5..40decb49ba8d6f3b3c03f9bde271096638209e99 100644 GIT binary patch literal 5865 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 literal 6119 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 XjmAFB`Cus700000NkvXXu0mjfV))?& literal 4190 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%0Dx#pEfb#Nkxh*$0m!O~^ZoBO^0Jd)3%Ccq45JK?c zi!TOVx^&5eV~=hzo6SBWBJj#9uK=U~;dZ;-mVck0@6+GkuSiWzrLL}y?(S~4{-vd* z+$+@@BmnK^SNCr+FIptZG?rluwg1_Pa)ouhW_*kK3kIFjeG z5fRAB%DNu-H^A}Z$GZy)3;hBE1DQ5$8as9jOvE;ujgF2E!o$NolDHbl$;liz@R=*h z0e@gL8ksd~78;F){QUgD#>U2Wr|30FlE!*Pz^U*>V0>R+pCvmxTMdqHcK`nUZU(PJ zNl6KJ+;N9j&d;4Ym%hF}>g)gO)^4-esHmvm>8GE@Znulgn>VYhR;vZL5m+;r?ZH;y zR^SPM^73*^O-+p|GBOgiTFs$Dhdesf-+$jvcXzjI^Sj|n!%C%+IdkUl?z`^}s;9WP zm%9-GAK+ zj0LiCcfE3;=~ zVd|?Ch%aAjKBuQ!< z8TaPXr%#&~ELflxLXel2M`mUweSdv@LmG8KtyYtil*BvlyyMocP$+oz*=O0jdGnyj z>}re~H;$KIewnA9dJ2t3W3Q~N?42}ek}q%+h!R3r!MOs?WqAs?*=n`gjYgx7&1Pfu z>ebZL)Oh8*Uax1_vSpafX8QX2xbemt-Q>y1$y8NU$<9YdM|00T_juH2GJlz9XlNiM zC57JJUd3B)y(J_`vIBPlkH{0_d`<+`0aRC4_wU`ica%=2L$B9UP*5@Y`>{*|M{my?l^0l=nBo0Jxd#R}+vwUQ*E03v~8fRd6D zdwqSqA}T5hAp}Q`9Py|;FE5V+2M&0YfBNaCEL^ydM;>{EW5v17+jD!sn{%LoYx;oP}%)YR0Bc&x=@k#j{rK!6-b z{QdnEN~O}ZcTGZ)q`w2-0%J-`OIfvQ6``S_q@<*fnVC6a!!9HxCDGpA&V&gQC@CqS zy}f<-K^|Z<8riU611&8r6c!c|6B7f_4&0&uegKRBv9Yn-eSi1eG&D5O-ri0^Lc%o} z)a&)!aKjChm6dVu;6WaE;DKv)-e55B^Upui($YdgLIQK=&UJ}i16mc%+s+2yyjrc6 zXFV@3kGQxve0)3}#Zf2}OrAV>Kzm|hBJaKT9sn&ZEhv>r{QUf6d1PcH>FMdiI+3r#f%NorDl04L@9!rqEsfC7P;eB# zo(ÐiP?FXcthUP$)=ANkOevvwiz^rca+vU|`^&27gQ@6I-`#mEUzb9l^oDl$4YJ z@WKl(ke;5-Pe1*HTCJ8NSyfdP+1c4cIzMH~6edobNKsJ{fq{V-3dVn?`YQ@sN&HS6B1ULk|tv zM+m`^B}*_Gjeuhno%`hyu>R^2%V0OMpMfm^F)=a3#>Udr)I?ib8%viiMF@exU?3?e zN&bu;ee_Xw@7_J6V*n>lp2W}3Z^%`6?6Jo*=y0g5t#!*UTCJ8fYt{hZ>+4HI zL;&9t&H* z$G{f~g@WYdWc>X6C@d^Quh*l~=>P}~4V6Qti;y>eSL*BQ-SPrBDuDq30hE-KpwsDC zzI?e$R|#;?lP-@0t_Z8vpr9bKva;j|l$MqTz}H`Y%@05PAdg8&N#XkIuOF7c(SM^y zX=!n<*`}nV$k))UtSrWl9}i##p1U$^dQHG(3n&0bm<$UGqpGS3A;f^{13*qr4i_(8 z9F~BKgbVlGcOP9{U7R>^f~cq{;^N|5qOCZN4Ibf5dHrv|NkCgsQGvl=VA7;XWMySh zSy}0ov%?`eI-0d>*V5J1MR9R4vwvpI0%*liUhf!c?66to+_`hDK|w*U0UPJdn@4IJ-I0oG1DxC}kum5vNlC%WaD@l_0;)^fn>FK#4GFlLXxBdf9@YvNs=V#qmiucNdMH|25cHB`H`3aQiTv_{zMyp;V)c?{{b`B VLeGU|7`6Za002ovPDHLkV1lT~;kEz( literal 8111 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 literal 5482 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 diff --git a/data_from_portwine/img/gui/toontownrewritten.png b/data_from_portwine/img/gui/toontownrewritten.png index 7fd08ab9386eeaab780b77725bd450871d372150..e6d97b9d39c6fe5268208967a79ad1e64655a7af 100644 GIT binary patch literal 3618 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 literal 4323 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 Date: Sat, 14 Jun 2025 17:53:44 +0300 Subject: [PATCH 15/33] fixed to get legacy vulkan version from ppdb --- data_from_portwine/scripts/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 257290b6..0c4aedfa 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -516,7 +516,7 @@ SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}" case "$PW_VULKAN_USE" in 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;; 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;; - 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + 3|5) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; esac From ad1f2db3275db48b6cf1bf7247ac342cffa0d163 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 14 Jun 2025 18:27:21 +0300 Subject: [PATCH 16/33] do not change inactive settings --- data_from_portwine/scripts/functions_helper | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index c700e7fa..baa0a8bb 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5285,7 +5285,7 @@ gui_edit_db () { for check_boole in $DISABLE_EDIT_DB_LIST ; do if [[ $check_boole == "$int_to_boole" ]] ; then CHECK_BOOLE_TRUE=1 - ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" + ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%FALSE%" fi done fi @@ -5433,8 +5433,12 @@ Binding a game to a single node reduces memory‑access latency and limits costl fi export PW_WINE_CPU_TOPOLOGY - edit_db_from_gui "${PW_EDIT_DB_LIST[@]}" LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY \ - PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR + for dont_touch_var in $DISABLE_EDIT_DB_LIST ; do + rm_from_array "PW_EDIT_DB_LIST" "$dont_touch_var" + done + edit_db_from_gui "${PW_EDIT_DB_LIST[@]}" LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL \ + WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL \ + PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR if [[ -z "$MANGOHUD_CONFIG" ]] ; then MONITOR_HEIGHT="$(echo "$PW_SCREEN_RESOLUTION" | awk -F'x' '{print $2}')" From cbc2edea6249742741a52841a748a10d82254a05 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 14 Jun 2025 19:30:17 +0300 Subject: [PATCH 17/33] added USE_ONLY_LG_RU=1 for use only linux-gaming.ru for all updates --- data_from_portwine/scripts/functions_helper | 31 ++++++++++++--------- data_from_portwine/scripts/start.sh | 14 ++++++---- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index dc58a671..c27d5ba7 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2477,7 +2477,7 @@ pw_port_update () { if [[ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ]] \ || [[ ! $BRANCH =~ (devel|master) ]]; then - echo "2024" > "${PORT_WINE_TMP_PATH}/scripts_ver" + echo "2025" > "${PORT_WINE_TMP_PATH}/scripts_ver" BRANCH_VERSION_UPDATE="SCRIPTS_STABLE_VERSION" BRANCH="master" fi @@ -2487,21 +2487,26 @@ pw_port_update () { URL_PP_GITEA="https://git.linux-gaming.ru/CastroFidel/PortWINE/raw/branch/${BRANCH}/data_from_portwine/scripts/var" pw_check_update () { - debug_timer --start -s "UPDATE_ETERFUND" - if ! timeout 2 curl -f -s --list-only "$URL_ETERFUND" > "${PORT_WINE_TMP_PATH}/curent_var_ver" - then - print_warning "https://gitlab.eterfund.ru/ broken. Skip it..." - UPDATE_SKIP_ETERFUND="1" - fi - debug_timer --end -s "UPDATE_ETERFUND" + if [[ $USE_ONLY_LG_RU != "1" ]] ; then + debug_timer --start -s "UPDATE_ETERFUND" + if ! timeout 2 curl -f -s --list-only "$URL_ETERFUND" > "${PORT_WINE_TMP_PATH}/curent_var_ver" + then + print_warning "https://gitlab.eterfund.ru/ broken. Skip it..." + UPDATE_SKIP_ETERFUND="1" + fi + debug_timer --end -s "UPDATE_ETERFUND" - debug_timer --start -s "UPDATE_GITHUB" - if ! timeout 2 curl -f -s --list-only "$URL_GITHUB" > "${PORT_WINE_TMP_PATH}/curent_var_ver" - then - print_warning "https://raw.githubusercontent.com/ broken. Skip it..." + debug_timer --start -s "UPDATE_GITHUB" + if ! timeout 2 curl -f -s --list-only "$URL_GITHUB" > "${PORT_WINE_TMP_PATH}/curent_var_ver" + then + print_warning "https://raw.githubusercontent.com/ broken. Skip it..." + UPDATE_SKIP_GITHUB="1" + fi + debug_timer --end -s "UPDATE_GITHUB" + else + UPDATE_SKIP_ETERFUND="1" UPDATE_SKIP_GITHUB="1" fi - debug_timer --end -s "UPDATE_GITHUB" debug_timer --start -s "UPDATE_PP_GITEA" if ! timeout 2 curl -f -s --list-only "$URL_PP_GITEA" > "${PORT_WINE_TMP_PATH}/curent_var_ver" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index d488ae63..4f08a7e8 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -233,16 +233,20 @@ fi # choose mirror if [[ -z "$MIRROR" ]] \ -&& [[ "$LANGUAGE" == "ru" ]] \ -&& [[ "$BRANCH" != "devel" ]] +&& [[ "$LANGUAGE" == "ru" ]] then echo 'export MIRROR="CLOUD"' >> "$USER_CONF" - MIRROR="CLOUD" + export MIRROR="CLOUD" elif [[ -z "$MIRROR" ]] ; then echo 'export MIRROR="GITHUB"' >> "$USER_CONF" - MIRROR="GITHUB" + export MIRROR="GITHUB" +fi + +if [[ $USE_ONLY_LG_RU == "1" ]] ; then + export MIRROR="CLOUD" + edit_user_conf_from_gui MIRROR USE_ONLY_LG_RU + print_info "Force used linux-gaming.ru for all updates.\n" fi -export MIRROR print_info "The first mirror in used: $MIRROR\n" # choose downloading covers from SteamGridDB or not From 7d037f957d9e9897bb81917a5b3b5f61920f01cf Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 14 Jun 2025 19:58:39 +0300 Subject: [PATCH 18/33] Scripts version 2420 --- data_from_portwine/changelog_en | 6 ++++++ data_from_portwine/changelog_ru | 6 ++++++ data_from_portwine/scripts/var | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index fc1421c5..ef9b41bb 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,12 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2420### / Date: 14.05.2025 / Download update size: 4 megabytes +* updated icons in the autoinstall section (thanks to if984) +* improved functions for selecting 3D Api and their additional settings (thanks to Htylol) +* when adding the variable USE_ONLY_LG_RU="1" to user.conf, PortProton updates only from linux-gaming.ru servers +* other small script improvements (thanks to Boria138, alex2844, Htylol) + ###Scripts version 2419### / stable / Дата: 24.05.2025 / Download update size: 185 megabytes * cumulative update to the stable version of PortProton scripts diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index d8c845aa..46406c27 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,12 @@ ----------------------------------------- История изменений: +###Scripts version 2420### / Дата: 14.06.2025 / Размер скачиваемого обновления: 4 мегабайта +* обновлены иконки в разделе автоустановки (спасибо if984) +* улучшены функции выбора 3D Api и их дополнительных настроек (спасибо Htylol) +* при добавлении переменной USE_ONLY_LG_RU="1" в user.conf, обновления PortProton происходят только с серверов linux-gaming.ru +* другие небольшие улучшения скриптов (спасибо Boria138, alex2844, Htylol) + ###Scripts version 2419### / stable / Дата: 24.05.2025 / Размер скачиваемого обновления: 185 мегабайт * кумулятивное обновление стабильной версии скриптов PortProton diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index ba870a68..57e949bf 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2419 +#SCRIPTS_NEXT_VERSION=2420 #SCRIPTS_STABLE_VERSION=2419 ######################################################################## export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" From 3578867657f5f56bd4bd6fb46f73195b30a65beb Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 13:19:54 +0300 Subject: [PATCH 19/33] updated DXVK, VKD3D, WINE_LG and PROTON_LG --- data_from_portwine/scripts/var | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 57e949bf..01a29846 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -49,8 +49,8 @@ export PW_FAKE_DLSS_VER="230506" export PW_FAKE_DLSS_3_VER="0.9.1-plus" export PW_GALLIUM_NINE_VER="0.10" ###WINE_AND_PROTON_LG### -export PW_PROTON_LG_VER="PROTON_LG_9-27" -export PW_WINE_LG_VER="WINE_LG_10-7" +export PW_PROTON_LG_VER="PROTON_LG_10-4" +export PW_WINE_LG_VER="WINE_LG_10-10-1" export PW_WINE_FULLSCREEN_FSR="1" export WINE_FULLSCREEN_FSR_MODE="ultra" ###DXVK_AND_VKD3D### @@ -58,9 +58,9 @@ export PW_VULKAN_USE="2" export VKD3D_LIMIT_TESS_FACTORS="64" export DXVK_LEGACY_VER="1.6.1" export DXVK_STABLE_VER="1.10.3-28" -export DXVK_GIT_VER="2.6-65" +export DXVK_GIT_VER="2.6.1-255" export VKD3D_STABLE_VER="1.1-2602" -export VKD3D_GIT_VER="1.1-4511" +export VKD3D_GIT_VER="1.1-4591" ###VKBASALT### export PW_VKBASALT_EFFECTS="Curves:cas" export PW_VKBASALT_FFX_CAS="0.50" From 5f3c969e6dd500f4ab008b55fb325e55964a0ee4 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 13:22:00 +0300 Subject: [PATCH 20/33] updated PW_USE_NATIVE_WAYLAND for new WINE-PROTON --- data_from_portwine/scripts/functions_helper | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index c27d5ba7..78a6cdbd 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -4226,11 +4226,10 @@ start_portwine () { fi if [[ $PW_USE_NATIVE_WAYLAND == "1" ]] ; then - export PW_DISPLAY="env DISPLAY=" - export PW_USE_RUNTIME="0" + export WINE_WAYLAND_HACKS="1" + var_winedlloverride_update "winex11.drv=d;winewayland.drv=b" get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user" else - unset PW_DISPLAY get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' fi @@ -4445,7 +4444,6 @@ pw_run () { VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} \ ${PW_GAMEMODERUN_SLR} \ ${PW_MANGOHUD_SLR} \ - ${PW_DISPLAY} \ "${WINELOADER}" "$@" ${proxy_launch_parameters} &>>"${PW_LOG_TO_FILE}" else if [[ "$PW_USE_TERMINAL" == 1 ]] ; then @@ -4465,7 +4463,6 @@ pw_run () { VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \ ${PW_GAMEMODERUN_SLR} \ ${PW_MANGOHUD_SLR} \ - ${PW_DISPLAY} \ "${WINELOADER}" "$@" ${proxy_launch_parameters} &>>"${PW_LOG_TO_FILE}" print_info "Update prefix log:" [[ -f "${PW_TMPFS_PATH}/update_pfx_log" ]] && cat "${PW_TMPFS_PATH}/update_pfx_log" @@ -4492,7 +4489,6 @@ pw_run () { ${PW_GAMEMODERUN_SLR} \ ${PW_POWERPROFILECTL_SLR} \ ${PW_MANGOHUD_SLR} \ - ${PW_DISPLAY} \ ${PW_INHIBIT_SLR} \ ${PW_TASKSET_SLR} \ "${WINELOADER}" "$@" ${proxy_launch_parameters} &>>"${PW_LOG_TO_FILE}" @@ -4512,7 +4508,6 @@ pw_run () { ${PW_GAMEMODERUN_SLR} \ ${PW_POWERPROFILECTL_SLR} \ ${PW_MANGOHUD_SLR} \ - ${PW_DISPLAY} \ ${PW_INHIBIT_SLR} \ ${PW_TASKSET_SLR} \ "${WINELOADER}" "$@" ${proxy_launch_parameters} From 94e64da15193ae15afc25d08f9966ee2c8de214f Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 14:43:24 +0300 Subject: [PATCH 21/33] added DXVK_HDR support for Wayland --- data_from_portwine/scripts/functions_helper | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 78a6cdbd..430fbc67 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -4225,11 +4225,15 @@ start_portwine () { fi fi - if [[ $PW_USE_NATIVE_WAYLAND == "1" ]] ; then + if check_wayland_session \ + && [[ $PW_USE_NATIVE_WAYLAND == "1" || $PW_USE_DXVK_HDR == "1" ]] + then + [[ $PW_USE_DXVK_HDR == "1" ]] && export DXVK_HDR="1" export WINE_WAYLAND_HACKS="1" var_winedlloverride_update "winex11.drv=d;winewayland.drv=b" get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user" else + unset WINE_WAYLAND_HACKS DXVK_HDR get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' fi @@ -5185,13 +5189,15 @@ gui_edit_db () { PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE - PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK - PW_USE_GALLIUM_NINE PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D + PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE + PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR ) if check_wayland_session then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT - else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND + else + rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND + rm_from_array "PW_EDIT_DB_LIST" PW_USE_DXVK_HDR fi check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME @@ -5238,7 +5244,8 @@ gui_edit_db () { PW_DISABLE_COMPOSITING_INFO=${translations[Disable desktop compositing (effects). It often improves performance.]} PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} - PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} + PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support]} + PW_USE_DXVK_HDR_INFO=${translations[Enable HDR settings in games with native Wayland]} PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]} From 51f6bf56d8847e158aae67000a9f5a4453ea96e4 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 14:44:51 +0300 Subject: [PATCH 22/33] updated pot file and RU locales --- data_from_portwine/locales/PortProton.pot | 10 +++++--- .../locales/es/LC_MESSAGES/PortProton.po | 15 +++++++----- .../locales/ru/LC_MESSAGES/PortProton.mo | Bin 0 -> 92063 bytes .../locales/ru/LC_MESSAGES/PortProton.po | 23 ++++++++++-------- 4 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index cfacf4be..d2d9d13b 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2025-05-30 01:28+0500\n" + "POT-Creation-Date: 2025-06-24 14:35+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -516,16 +516,18 @@ msgstr "" msgid "Force use DirectInput protocol instead of XInput" msgstr "" -msgid "Enable experemental native Wayland support (need special wine build " - "to work)" +msgid "Enable experemental native Wayland support" msgstr "" -msgid "Use Gallium Nine (native DirectX 9 for MESA)" +msgid "Enable HDR settings in games with native Wayland" msgstr "" msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" msgstr "" +msgid "Use Gallium Nine (native DirectX 9 for MESA)" +msgstr "" + msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental " "function." msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 13c49515..2b5dd090 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-30 01:28+0500\n" +"POT-Creation-Date: 2025-06-24 14:18+0300\n" "PO-Revision-Date: 2024-11-13 08:18+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -618,19 +618,22 @@ msgstr "" msgid "Force use DirectInput protocol instead of XInput" msgstr "Forzar el uso del protocolo DirectInput en lugar de XInput" -msgid "" -"Enable experemental native Wayland support (need special wine build to work)" +#, fuzzy +msgid "Enable experemental native Wayland support" msgstr "" "Habilite el soporte experimental nativo de Wayland (necesita una compilación " "de vino especial para funcionar)" -msgid "Use Gallium Nine (native DirectX 9 for MESA)" +msgid "Enable HDR settings in games with native Wayland" msgstr "" #, fuzzy msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" msgstr "Gallium Zink (OpenGL a Vulkan)" +msgid "Use Gallium Nine (native DirectX 9 for MESA)" +msgstr "" + #, fuzzy msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." msgstr "WineD3D Vulkan (Damavand experimental)" @@ -2208,8 +2211,8 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ msgid "" #~ "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" #~ msgstr "" -#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar." -#~ "\\n\\¿Quieres reiniciar STEAM ahora?" +#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n" +#~ "\\¿Quieres reiniciar STEAM ahora?" #~ msgid "Restarting STEAM... Please wait." #~ msgstr "Restarting STEAM... Please wait." diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo new file mode 100644 index 0000000000000000000000000000000000000000..13238699ce2cf40a3376ed92a27402defef0ab4e GIT binary patch literal 92063 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 && " -"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.6\n" msgid "" @@ -639,18 +639,21 @@ msgstr "" "протоколе XInput, также работают. Выключите эту опцию, если геймпад перестал " "опознаваться игрой" -msgid "" -"Enable experemental native Wayland support (need special wine build to work)" +msgid "Enable experemental native Wayland support" msgstr "" "Включить экспериментальную поддержку запуска игры/программы из-под нативной " -"сессии Wayland, минуя XWayland (для работы требуется специальная сборка Wine)" +"сессии Wayland, минуя XWayland" -msgid "Use Gallium Nine (native DirectX 9 for MESA)" -msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" +msgid "Enable HDR settings in games with native Wayland" +msgstr "" +"Включить настройки HDR в игре (автоматически включает USE_NATIVE_WAYLAND)" msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" +msgid "Use Gallium Nine (native DirectX 9 for MESA)" +msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" + msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." msgstr "" "Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " @@ -1687,8 +1690,8 @@ msgid "" "Gamescope is not detected on the system, to install it, run the command in " "the terminal" msgstr "" +"Gamescope не обнаружен, для установки воспользуйтесь командой в терминале" -#, fuzzy msgid "Can be selected and copied" msgstr "(можно выделить и скопировать)" From fe4327e39bd583a47dad36da3f6f883d3f8ccf67 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 15:29:28 +0300 Subject: [PATCH 23/33] silent create desktop files then START_FROM_STEAM = 1 --- data_from_portwine/scripts/functions_helper | 32 ++++++++++++++------- data_from_portwine/scripts/start.sh | 5 +++- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 430fbc67..fe3ae741 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -6462,19 +6462,29 @@ portwine_create_shortcut () { } portwine_output_yad_shortcut () { - if [[ "$PW_YAD_OUT" == "0" ]] ; then - name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed -e "s/\`//g" -e "s/\"//g" -e "s/'//g" -e "s/\!//g") - PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}') - PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}') - PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}') - - if [[ $PORTWINE_CHANGE_SHORTCUT != 1 ]] ; then - edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM + if [[ $PW_YAD_OUT == "0" ]] || [[ $1 == "--silent" ]] ; then + if [[ $1 == "--silent" ]] ; then + [[ ! -e ${portwine_exe} ]] && return 1 + pw_create_gui_png + unset name_desktop + PW_SHORTCUT_MENU="TRUE" + PW_SHORTCUT_DESKTOP="TRUE" + PW_SHORTCUT_STEAM="FALSE" + else + name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed -e "s/\`//g" -e "s/\"//g" -e "s/'//g" -e "s/\!//g") + PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}') + PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}') + PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}') + if [[ $PORTWINE_CHANGE_SHORTCUT != 1 ]] ; then + edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM + fi + portwine_delete_shortcut fi - portwine_delete_shortcut - - [[ -z $name_desktop ]] && create_name_desktop && export name_desktop="$PW_NAME_DESKTOP_PROXY" + if [[ -z $name_desktop ]] ; then + create_name_desktop + export name_desktop="$PW_NAME_DESKTOP_PROXY" + fi echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 4f08a7e8..e058e947 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -411,7 +411,10 @@ EOF while read -r line do export portwine_exe="$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/$line" - portwine_create_shortcut + if [[ $START_FROM_STEAM == "1" ]] + then portwine_output_yad_shortcut --silent + else portwine_create_shortcut + fi done < "$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/.create_shortcut" fi yad_info "${translations[Unpack is DONE for prefix:]} \"${PW_PREFIX_NAME}\"." From e0aef4473de2649927cbd4a41af80d80d429fd86 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 15:39:35 +0300 Subject: [PATCH 24/33] always show USE_NATIVE_WAYLAND and USE_DXVK_HDR in settings --- data_from_portwine/scripts/functions_helper | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index fe3ae741..7f050974 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5193,13 +5193,6 @@ gui_edit_db () { PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR ) - if check_wayland_session - then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT - else - rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND - rm_from_array "PW_EDIT_DB_LIST" PW_USE_DXVK_HDR - fi - check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME # GALLIUM NINE @@ -5278,6 +5271,11 @@ gui_edit_db () { DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" fi + if check_wayland_session + then DISABLE_EDIT_DB_LIST+=" PW_USE_US_LAYOUT" + else DISABLE_EDIT_DB_LIST+=" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR" + fi + unset ADD_CHK_BOX_EDIT_DB for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] From a0170d1bc39d95fed7a2f3d248de7cc28aca7ff7 Mon Sep 17 00:00:00 2001 From: zorn-v Date: Tue, 24 Jun 2025 22:46:30 +1000 Subject: [PATCH 25/33] Update lgc.ppdb --- data_from_portwine/scripts/portwine_db/lgc.ppdb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/portwine_db/lgc.ppdb b/data_from_portwine/scripts/portwine_db/lgc.ppdb index c18860bf..b8a4c648 100644 --- a/data_from_portwine/scripts/portwine_db/lgc.ppdb +++ b/data_from_portwine/scripts/portwine_db/lgc.ppdb @@ -5,7 +5,7 @@ #Rating=5 export PW_COMMENT_DB="Lesta Game Centers" ################################################ -export PW_VULKAN_USE=1 #dxvk, vkd3d or 0 for OpenGL +export PW_VULKAN_USE=2 #dxvk, vkd3d or 0 for OpenGL export LAUNCH_PARAMETERS="" # Additional launch options export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP export WINEDLLOVERRIDES="" From 04674915c47d77df265dd5db79c615bc351a80ca Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 15:55:12 +0300 Subject: [PATCH 26/33] PW_VULKAN_USE=2 for WGC too --- data_from_portwine/scripts/portwine_db/UbisoftConnect.ppdb | 2 +- data_from_portwine/scripts/portwine_db/lgc.ppdb | 4 ++-- data_from_portwine/scripts/portwine_db/wgc.ppdb | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/scripts/portwine_db/UbisoftConnect.ppdb b/data_from_portwine/scripts/portwine_db/UbisoftConnect.ppdb index bb2a36fc..990df049 100644 --- a/data_from_portwine/scripts/portwine_db/UbisoftConnect.ppdb +++ b/data_from_portwine/scripts/portwine_db/UbisoftConnect.ppdb @@ -6,5 +6,5 @@ #upc.exe #Rating=1-5 ################################################ -export PW_VULKAN_USE=2 +export PW_VULKAN_USE="2" export PW_DLL_INSTALL="" diff --git a/data_from_portwine/scripts/portwine_db/lgc.ppdb b/data_from_portwine/scripts/portwine_db/lgc.ppdb index b8a4c648..a78538d2 100644 --- a/data_from_portwine/scripts/portwine_db/lgc.ppdb +++ b/data_from_portwine/scripts/portwine_db/lgc.ppdb @@ -5,9 +5,9 @@ #Rating=5 export PW_COMMENT_DB="Lesta Game Centers" ################################################ -export PW_VULKAN_USE=2 #dxvk, vkd3d or 0 for OpenGL +export PW_VULKAN_USE="2" #dxvk, vkd3d or 0 for OpenGL export LAUNCH_PARAMETERS="" # Additional launch options -export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP +export PW_WINDOWS_VER="10" # Set windows version 10, 7 or XP export WINEDLLOVERRIDES="" export PW_DLL_INSTALL="lucida" # Install DLL in port prefix (used winetricks) export PW_USE_D3D_EXTRAS="1" diff --git a/data_from_portwine/scripts/portwine_db/wgc.ppdb b/data_from_portwine/scripts/portwine_db/wgc.ppdb index 6bfaa218..c9517b7e 100644 --- a/data_from_portwine/scripts/portwine_db/wgc.ppdb +++ b/data_from_portwine/scripts/portwine_db/wgc.ppdb @@ -5,9 +5,9 @@ #Rating=5 export PW_COMMENT_DB="Wargaming Game Centers" ################################################ -export PW_VULKAN_USE=1 #dxvk, vkd3d or 0 for OpenGL +export PW_VULKAN_USE="2" #dxvk, vkd3d or 0 for OpenGL export LAUNCH_PARAMETERS="" # Additional launch options -export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP +export PW_WINDOWS_VER="2" # Set windows version 10, 7 or XP export WINEDLLOVERRIDES="" export PW_DLL_INSTALL="lucida" # Install DLL in port prefix (used winetricks) export PW_USE_D3D_EXTRAS="1" From db47c53a480f0360f04afd64661f43bf827983eb Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 24 Jun 2025 16:11:01 +0300 Subject: [PATCH 27/33] Scripts version 2421 --- data_from_portwine/changelog_en | 12 +++++++++++- data_from_portwine/changelog_ru | 11 +++++++++++ data_from_portwine/scripts/var | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index ef9b41bb..4f87b463 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,7 +2,17 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: -###Scripts version 2420### / Date: 14.05.2025 / Download update size: 4 megabytes +###Scripts version 2421### / Date: 24.06.2025 / Download update size: 380 megabytes +* with new versions of WINE and PROTON, launch under native Wayland has been fixed +* WINE_LG has been updated to version "10-10-1" (added support for native Wayland) +* PROTON_LG has been updated to version "10-4" (repackaging from GE-Proton10-4) +* updated versions: + - DXVK_GIT "2.6.1-255" (together with dxvk-nvapi) + - VKD3D_GIT "1.1-4591" (together with vkd3d-shader) +* added a setting to enable HDR in the game (only for Wayland) +* added automatic creation of shortcuts when unpacking a prefix from a backup copy (only with the START_FROM_STEAM="1" variable) + +###Scripts version 2420### / Date: 14.06.2025 / Download update size: 4 megabytes * updated icons in the autoinstall section (thanks to if984) * improved functions for selecting 3D Api and their additional settings (thanks to Htylol) * when adding the variable USE_ONLY_LG_RU="1" to user.conf, PortProton updates only from linux-gaming.ru servers diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 46406c27..ac1645dd 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,17 @@ ----------------------------------------- История изменений: +###Scripts version 2421### / Дата: 24.06.2025 / Размер скачиваемого обновления: 380 мегабайт +* с новыми версиями WINE и PROTON исправлен запуск под нативным Wayland +* обновлен WINE_LG до версии "10-10-1" (добавлена поддержка нативного Wayland) +* обновлен PROTON_LG до версии "10-4" (перепаковка с GE-Proton10-4) +* обновлены версии: + - DXVK_GIT "2.6.1-255" (совместно с dxvk-nvapi) + - VKD3D_GIT "1.1-4591" (совместно vkd3d-shader) +* добавлена настройка для включения HDR в игре (только для Wayland) +* добавлено автоматическое создание ярлыков при распаковке префикса из резервной копии (только при переменной START_FROM_STEAM="1") +* исправлены возможные артефакты в играх от LGC и WGC (спасибо zorn-v) + ###Scripts version 2420### / Дата: 14.06.2025 / Размер скачиваемого обновления: 4 мегабайта * обновлены иконки в разделе автоустановки (спасибо if984) * улучшены функции выбора 3D Api и их дополнительных настроек (спасибо Htylol) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 01a29846..b21845e2 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2420 +#SCRIPTS_NEXT_VERSION=2421 #SCRIPTS_STABLE_VERSION=2419 ######################################################################## export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" From 081d2b9b1872a67189260b9543f9998fc52a4ed7 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Wed, 25 Jun 2025 18:34:00 +0300 Subject: [PATCH 28/33] wayland: fixed fullscreen and work with other wine --- data_from_portwine/scripts/functions_helper | 31 ++++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 7f050974..05056b13 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1696,7 +1696,7 @@ init_wine_ver () { WINE_LIBRARY_PATH="${WINEDIR}/lib" if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] then WINE_LIBRARY_PATH+=":${WINEDIR}/lib64" - elif [[ -d "${WINEDIR}/lib/x86_64-linux-gnu/gstreamer-1.0" ]] + elif [[ -d "${WINEDIR}/lib/x86_64-linux-gnu" ]] then WINE_LIBRARY_PATH+=":${WINEDIR}/lib/x86_64-linux-gnu:${WINEDIR}/lib/i386-linux-gnu" fi export WINE_LIBRARY_PATH @@ -4216,15 +4216,6 @@ start_portwine () { get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "1" "system" fi - if [[ $PW_WINE_DPI_VALUE != "disabled" ]] ; then - if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then - PW_RECOMMENDED_DPI=$(recommend_dpi "${PW_SCREEN_RESOLUTION:5:8}") - get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_RECOMMENDED_DPI" "user" - else - get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_WINE_DPI_VALUE" "user" - fi - fi - if check_wayland_session \ && [[ $PW_USE_NATIVE_WAYLAND == "1" || $PW_USE_DXVK_HDR == "1" ]] then @@ -4232,11 +4223,31 @@ start_portwine () { export WINE_WAYLAND_HACKS="1" var_winedlloverride_update "winex11.drv=d;winewayland.drv=b" get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user" + + print_warning "Wayland in use. Force dpi=96" + export PW_WINE_DPI_VALUE="96" + + if [[ -f "$WINEDIR/lib/libxkbregistry.so" ]] \ + || [[ -f "$WINEDIR/lib/x86_64-linux-gnu/libxkbregistry.so" ]] + then print_info "runtime in use with native wayland." + else + print_warning "Wine is not support native wayland with runtime! Force disabled SLR." + export PW_USE_RUNTIME="0" + fi else unset WINE_WAYLAND_HACKS DXVK_HDR get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' fi + if [[ $PW_WINE_DPI_VALUE != "disabled" ]] ; then + if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then + PW_RECOMMENDED_DPI=$(recommend_dpi "${PW_SCREEN_RESOLUTION:5:8}") + get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_RECOMMENDED_DPI" "user" + else + get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_WINE_DPI_VALUE" "user" + fi + fi + case "$PW_SOUND_DRIVER_USE" in pulse) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "pulse" "user" ;; alsa) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "alsa" "user" ;; From 8d63f8d6de105f4b7fc54bed0e2b221e6148627b Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Wed, 25 Jun 2025 18:56:10 +0300 Subject: [PATCH 29/33] force restart PP if START_FROM_STEAM = 1 --- data_from_portwine/scripts/start.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index e058e947..ea2a54fb 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -315,7 +315,9 @@ fi if ! check_flatpak ; then if [[ -f "${PW_TMPFS_PATH}/portproton.lock" ]] ; then print_warning "Found lock file: ${PW_TMPFS_PATH}/portproton.lock" - yad_question "${translations[A running PortProton session was detected.\\nDo you want to end the previous session?]}" || exit 0 + if [[ $START_FROM_STEAM != "1" ]] + then yad_question "${translations[A running PortProton session was detected.\\nDo you want to end the previous session?]}" || exit 0 + fi fi touch "${PW_TMPFS_PATH}/portproton.lock" rm_lock_file () { @@ -417,7 +419,9 @@ EOF fi done < "$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/.create_shortcut" fi - yad_info "${translations[Unpack is DONE for prefix:]} \"${PW_PREFIX_NAME}\"." + if [[ $START_FROM_STEAM != "1" ]] + then yad_info "${translations[Unpack is DONE for prefix:]} \"${PW_PREFIX_NAME}\"." + fi exit 0 fi fi From ca040ffcf616b229768d6b16965b785c523996db Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Wed, 25 Jun 2025 19:03:55 +0300 Subject: [PATCH 30/33] Scripts version 2422 --- data_from_portwine/changelog_en | 5 +++++ data_from_portwine/changelog_ru | 5 +++++ data_from_portwine/scripts/var | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 4f87b463..8ddf04c2 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,11 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2422### / Date: 25.06.2025 / Download update size: 4 megabytes +* fixed work of games in full screen when using native wayland +* fixed work of third-party versions of WINE when using native wayland +* quieter mode when using the variable START_FROM_STEAM="1" + ###Scripts version 2421### / Date: 24.06.2025 / Download update size: 380 megabytes * with new versions of WINE and PROTON, launch under native Wayland has been fixed * WINE_LG has been updated to version "10-10-1" (added support for native Wayland) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index ac1645dd..3aa76067 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,11 @@ ----------------------------------------- История изменений: +###Scripts version 2422### / Дата: 25.06.2025 / Размер скачиваемого обновления: 4 мегабайта +* исправлена работа игр в полном экране при использовании нативного wayland +* исправлена работа сторонних версий WINE при использовании нативного wayland +* более "тихий" режим при использовании переменной START_FROM_STEAM="1" + ###Scripts version 2421### / Дата: 24.06.2025 / Размер скачиваемого обновления: 380 мегабайт * с новыми версиями WINE и PROTON исправлен запуск под нативным Wayland * обновлен WINE_LG до версии "10-10-1" (добавлена поддержка нативного Wayland) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index b21845e2..380031d6 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2421 +#SCRIPTS_NEXT_VERSION=2422 #SCRIPTS_STABLE_VERSION=2419 ######################################################################## export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" From 89354ddb8de2426bd5f0b52e04c37daec5a5854e Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 1 Jul 2025 13:06:17 +0300 Subject: [PATCH 31/33] used WINE_HYP_10-10 for HoYoPlay --- data_from_portwine/scripts/portwine_db/Genshin Impact.ppdb | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/portwine_db/Genshin Impact.ppdb b/data_from_portwine/scripts/portwine_db/Genshin Impact.ppdb index 409bfbd6..a565549e 100644 --- a/data_from_portwine/scripts/portwine_db/Genshin Impact.ppdb +++ b/data_from_portwine/scripts/portwine_db/Genshin Impact.ppdb @@ -8,5 +8,5 @@ export PW_WINDOWS_VER="10" export PW_VULKAN_USE="2" export PW_PREFIX_NAME="HO_YO_PLAY" -export PW_WINE_USE="WINE_LG" +export PW_WINE_USE="WINE_HYP_10-10" export LAUNCH_PARAMETERS="-platform_type CLOUD_THIRD_PARTY_PC" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY b/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY index 96704bf9..aa75dbf6 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY +++ b/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY @@ -10,6 +10,7 @@ export PW_VULKAN_USE=2 export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Hoyolauncher_installer.exe" export PW_PREFIX_NAME="HO_YO_PLAY" export PORTWINE_CREATE_SHORTCUT_NAME="HoYoPlay" +export PW_WINE_USE="WINE_HYP_10-10" start_portwine From a954a23821351a3077f4d20d8b433f270fbe4464 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 1 Jul 2025 13:06:45 +0300 Subject: [PATCH 32/33] Scripts version 2423 --- data_from_portwine/changelog_en | 4 ++++ data_from_portwine/changelog_ru | 4 ++++ data_from_portwine/scripts/var | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 8ddf04c2..331fe1cd 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,10 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2423### / Date: 01.07.2025 / Download update size: 4 megabytes +* added new version "WINE_HYP_10-10" to fix launch of game "Genshin Impact" +(to apply fix just use autoinstall HoYoPlay again) + ###Scripts version 2422### / Date: 25.06.2025 / Download update size: 4 megabytes * fixed work of games in full screen when using native wayland * fixed work of third-party versions of WINE when using native wayland diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 3aa76067..c2041a53 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,10 @@ ----------------------------------------- История изменений: +###Scripts version 2423### / Дата: 01.07.2025 / Размер скачиваемого обновления: 4 мегабайта +* добавлена новая версия "WINE_HYP_10-10" для исправления запуска игры "Genshin Impact" +(для применения исправления просто воспользуйтесь повторно автоустановкой HoYoPlay) + ###Scripts version 2422### / Дата: 25.06.2025 / Размер скачиваемого обновления: 4 мегабайта * исправлена работа игр в полном экране при использовании нативного wayland * исправлена работа сторонних версий WINE при использовании нативного wayland diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 380031d6..f4096777 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2422 +#SCRIPTS_NEXT_VERSION=2423 #SCRIPTS_STABLE_VERSION=2419 ######################################################################## export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" From e36de1a1a0ee6eec66888ace396ff32daf4d3cba Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 1 Jul 2025 13:09:31 +0300 Subject: [PATCH 33/33] STABLE: Scripts version 2424 --- data_from_portwine/changelog_en | 3 +++ data_from_portwine/changelog_ru | 3 +++ data_from_portwine/scripts/var | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 331fe1cd..41660169 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,9 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2424### / stable / Дата: 01.07.2025 / Download update size: 380 megabytes +* cumulative update to the stable version of PortProton scripts + ###Scripts version 2423### / Date: 01.07.2025 / Download update size: 4 megabytes * added new version "WINE_HYP_10-10" to fix launch of game "Genshin Impact" (to apply fix just use autoinstall HoYoPlay again) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index c2041a53..6b302a04 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,9 @@ ----------------------------------------- История изменений: +###Scripts version 2424### / stable / Дата: 01.07.2025 / Размер скачиваемого обновления: 380 мегабайт +* кумулятивное обновление стабильной версии скриптов PortProton + ###Scripts version 2423### / Дата: 01.07.2025 / Размер скачиваемого обновления: 4 мегабайта * добавлена новая версия "WINE_HYP_10-10" для исправления запуска игры "Genshin Impact" (для применения исправления просто воспользуйтесь повторно автоустановкой HoYoPlay) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index f4096777..bbf6b82b 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,7 +1,7 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2423 -#SCRIPTS_STABLE_VERSION=2419 +#SCRIPTS_NEXT_VERSION=2424 +#SCRIPTS_STABLE_VERSION=2424 ######################################################################## export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" export PROTON_USE_XALIA="0"