forked from CastroFidel/PortWINE
		
	added legacy DXVK
This commit is contained in:
		| @@ -2,6 +2,10 @@ | |||||||
| ----------------------------------------- | ----------------------------------------- | ||||||
| История изменений: | История изменений: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | * исправлено переключение языка при отсутствии переменной "$LANG" в системе (некоторые версии Steam Deck) | ||||||
|  | *  | ||||||
|  |  | ||||||
| ###Scripts version 2285### Дата: 25.04.2024 / Размер скачиваемого обновления: 3 мегабайта | ###Scripts version 2285### Дата: 25.04.2024 / Размер скачиваемого обновления: 3 мегабайта | ||||||
| * добавлено включение "DGVOODOO2" в "3D API" что дает возможность трансляции старых игр в Vulkan c использованием улучшения графики с помощью vkBasalt (спасибо Htylol) | * добавлено включение "DGVOODOO2" в "3D API" что дает возможность трансляции старых игр в Vulkan c использованием улучшения графики с помощью vkBasalt (спасибо Htylol) | ||||||
| * улучшена функция распаковки архивов (спасибо Boria138) | * улучшена функция распаковки архивов (спасибо Boria138) | ||||||
|   | |||||||
| @@ -910,7 +910,7 @@ pw_check_and_download_wine () { | |||||||
|  |  | ||||||
| pw_check_and_download_dxvk_and_vkd3d () { | pw_check_and_download_dxvk_and_vkd3d () { | ||||||
|     #Download stable and git version DXVK |     #Download stable and git version DXVK | ||||||
|     for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" ; do |     for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do | ||||||
|         if [ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ] ; then |         if [ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ] ; then | ||||||
|             print_info "Download and install DXVK v.${DXVK_VAR_VER}" |             print_info "Download and install DXVK v.${DXVK_VAR_VER}" | ||||||
|             if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \ |             if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \ | ||||||
| @@ -1919,6 +1919,7 @@ start_portwine () { | |||||||
|     try_force_link_file "${PHYSX_PATH}/cudart32_65.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" |     try_force_link_file "${PHYSX_PATH}/cudart32_65.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" | ||||||
|     try_force_link_file "${PHYSX_PATH}/cudart64_65.dll" "${WINEPREFIX}/drive_c/windows/system32/" |     try_force_link_file "${PHYSX_PATH}/cudart64_65.dll" "${WINEPREFIX}/drive_c/windows/system32/" | ||||||
|  |  | ||||||
|  |     unset DONT_USE_VKD3D | ||||||
|     create_new_dir "${PW_VULKAN_DIR}/opengl" |     create_new_dir "${PW_VULKAN_DIR}/opengl" | ||||||
|     PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/opengl" |     PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/opengl" | ||||||
|     PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/opengl" |     PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/opengl" | ||||||
| @@ -1943,8 +1944,8 @@ start_portwine () { | |||||||
|                 IFS=$'\n' |                 IFS=$'\n' | ||||||
|                 for D3D_MP in $FIND_D3D_MODULE ; do |                 for D3D_MP in $FIND_D3D_MODULE ; do | ||||||
|                     if [[ ! -z "$D3D_MODULE_PATH" ]] |                     if [[ ! -z "$D3D_MODULE_PATH" ]] | ||||||
|                     then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" |                     then D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" | ||||||
|                     else export D3D_MODULE_PATH="/run/host${D3D_MP}" |                     else D3D_MODULE_PATH="/run/host${D3D_MP}" | ||||||
|                     fi |                     fi | ||||||
|                 done |                 done | ||||||
|                 IFS=$old_IFS |                 IFS=$old_IFS | ||||||
| @@ -1976,35 +1977,26 @@ start_portwine () { | |||||||
|         print_info "Use DAMAVAND (DirectX to wined3d vulkan)" |         print_info "Use DAMAVAND (DirectX to wined3d vulkan)" | ||||||
|         export WINE_D3D_CONFIG='renderer=vulkan' |         export WINE_D3D_CONFIG='renderer=vulkan' | ||||||
|     else |     else | ||||||
|         print_info "Use VKD3D-PROTON, DXVK and D8VK (DirectX 8-12 to vulkan)" |  | ||||||
|         if [[ "${PW_USE_WINE_DXGI}" == 1 ]] ; then |  | ||||||
|             export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxvk_config" # openvr_api_dxvk |  | ||||||
|             export CP_WINE_FILES="d3d10_1 d3d10 dxgi" |  | ||||||
|         elif [[ "${USE_ALL_DXVK_DLLS}" == 1 ]] ; then |  | ||||||
|             export CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi dxvk_config" # openvr_api_dxvk |  | ||||||
|         else |  | ||||||
|             export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi dxvk_config" # openvr_api_dxvk |  | ||||||
|             export CP_WINE_FILES="d3d10_1 d3d10" |  | ||||||
|         fi |  | ||||||
|  |  | ||||||
|         check_variables VKD3D_FEATURE_LEVEL "12_1" |         check_variables VKD3D_FEATURE_LEVEL "12_1" | ||||||
|         check_variables DXVK_HDR |         check_variables DXVK_HDR | ||||||
|  |  | ||||||
|         print_info "D8VK v.${D8VK_VER} in use" |         print_info "D8VK v.${D8VK_VER} in use" | ||||||
|  |  | ||||||
|         if [[ "${PW_VULKAN_USE}" == "1" ]] ; then |         if [[ "${PW_VULKAN_USE}" == "1" ]] ; then | ||||||
|             export PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" |             PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" | ||||||
|             export PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" |             PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" | ||||||
|             print_info "DXVK v.${DXVK_STABLE_VER} in use" |             print_info "DXVK v.${DXVK_STABLE_VER} in use" | ||||||
|             print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" |             print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" | ||||||
|         elif [[ "${PW_VULKAN_USE}" == "2" ]] ; then |         elif [[ "${PW_VULKAN_USE}" == "2" ]] ; then | ||||||
|             export PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" |             PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" | ||||||
|             export PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" |             PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" | ||||||
|             print_info "DXVK v.${DXVK_GIT_VER} in use" |             print_info "DXVK v.${DXVK_GIT_VER} in use" | ||||||
|             print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" |             print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" | ||||||
|         elif [[ "${PW_VULKAN_USE}" == "5" ]] ; then |         elif [[ "${PW_VULKAN_USE}" == "5" ]] ; then | ||||||
|             export PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" |             PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}" | ||||||
|             export PATH_TO_DGV2_FILES="${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}" |             PATH_TO_DGV2_FILES="${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}" | ||||||
|  |             USE_ALL_DXVK_DLLS=1 | ||||||
|  |             DONT_USE_VKD3D=1 | ||||||
|             print_info "DXVK v.${DXVK_STABLE_VER} in use" |             print_info "DXVK v.${DXVK_STABLE_VER} in use" | ||||||
|             print_info "DGVOODOO2 ${DGV2_VER} in use" |             print_info "DGVOODOO2 ${DGV2_VER} in use" | ||||||
|             for DGV2_DLL in d3dimm ddraw glide glide2x glide3x ; do |             for DGV2_DLL in d3dimm ddraw glide glide2x glide3x ; do | ||||||
| @@ -2021,6 +2013,20 @@ OutputAPI                            = d3d11_fl11_0 | |||||||
| dgVoodooWatermark                   = false" > "${PATH_TO_GAME}/dgVoodoo.conf" | dgVoodooWatermark                   = false" > "${PATH_TO_GAME}/dgVoodoo.conf" | ||||||
|             fi |             fi | ||||||
|             var_winedlloverride_update ddraw=n |             var_winedlloverride_update ddraw=n | ||||||
|  |         elif [[ "${PW_VULKAN_USE}" == "7" ]] ; then | ||||||
|  |             PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}" | ||||||
|  |             DONT_USE_VKD3D=1 | ||||||
|  |         fi | ||||||
|  |  | ||||||
|  |         print_info "Use VKD3D-PROTON, DXVK and D8VK (DirectX 8-12 to vulkan)" | ||||||
|  |         if [[ "${PW_USE_WINE_DXGI}" == 1 ]] ; then | ||||||
|  |             CP_DXVK_FILES="d3d11 d3d10core d3d9 dxvk_config" # openvr_api_dxvk | ||||||
|  |             CP_WINE_FILES="d3d10_1 d3d10 dxgi" | ||||||
|  |         elif [[ "${USE_ALL_DXVK_DLLS}" == 1 ]] ; then | ||||||
|  |             CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi dxvk_config" # openvr_api_dxvk | ||||||
|  |         else | ||||||
|  |             CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi dxvk_config" # openvr_api_dxvk | ||||||
|  |             CP_WINE_FILES="d3d10_1 d3d10" | ||||||
|         fi |         fi | ||||||
|  |  | ||||||
|         print_info "Try copy WINE files..." |         print_info "Try copy WINE files..." | ||||||
| @@ -2038,20 +2044,22 @@ dgVoodooWatermark                   = false" > "${PATH_TO_GAME}/dgVoodoo.conf" | |||||||
|             fi |             fi | ||||||
|         done |         done | ||||||
|  |  | ||||||
|         print_info "Try copy NVAPI files..." |         if [[ "$DONT_USE_VKD3D" != 1 ]] ; then | ||||||
|         try_copy_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" || \ |             print_info "Try copy NVAPI files..." | ||||||
|         try_copy_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" |             try_copy_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" || \ | ||||||
|         try_copy_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" || \ |             try_copy_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" | ||||||
|         try_copy_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" |             try_copy_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" || \ | ||||||
|  |             try_copy_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" | ||||||
|  |  | ||||||
|         print_info "Try copy native VKD3D files..." |             print_info "Try copy native VKD3D files..." | ||||||
|         for wine_vkd3d_dll in d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1 ; do |             for wine_vkd3d_dll in d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1 ; do | ||||||
|             if [[ -f "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" ]] ; then |                 if [[ -f "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" ]] ; then | ||||||
|                 try_copy_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" |                     try_copy_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" | ||||||
|                 try_copy_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" |                     try_copy_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" | ||||||
|                 var_winedlloverride_update "${wine_vkd3d_dll}=n" |                     var_winedlloverride_update "${wine_vkd3d_dll}=n" | ||||||
|             fi |                 fi | ||||||
|         done |             done | ||||||
|  |         fi | ||||||
|  |  | ||||||
|         PATH_TO_D8VK_FILES="${PW_VULKAN_DIR}/d8vk-${D8VK_VER}" |         PATH_TO_D8VK_FILES="${PW_VULKAN_DIR}/d8vk-${D8VK_VER}" | ||||||
|         print_info "Try link native D8VK file..." |         print_info "Try link native D8VK file..." | ||||||
|   | |||||||
| @@ -344,6 +344,7 @@ popd 1>/dev/null || fatal | |||||||
| check_nvidia_rtx && check_variables PW_VULKAN_USE "2" | check_nvidia_rtx && check_variables PW_VULKAN_USE "2" | ||||||
|  |  | ||||||
| SORT_OPENGL="$(eval_gettext "OPENGL (For video cards without VULKAN)")" | SORT_OPENGL="$(eval_gettext "OPENGL (For video cards without VULKAN)")" | ||||||
|  | SORT_LEGACY="$(eval_gettext "Legacy") DXVK ${DXVK_LEGACY_VER}" | ||||||
| SORT_STABLE="$(eval_gettext "Stable") DXVK ${DXVK_STABLE_VER}, VKD3D ${VKD3D_STABLE_VER}" | SORT_STABLE="$(eval_gettext "Stable") DXVK ${DXVK_STABLE_VER}, VKD3D ${VKD3D_STABLE_VER}" | ||||||
| SORT_NEWEST="$(eval_gettext "Newest") DXVK ${DXVK_GIT_VER}, VKD3D ${VKD3D_GIT_VER}" | SORT_NEWEST="$(eval_gettext "Newest") DXVK ${DXVK_GIT_VER}, VKD3D ${VKD3D_GIT_VER}" | ||||||
| SORT_G_NINE="$(eval_gettext "GALLIUM_NINE (DX9 for MESA)")" | SORT_G_NINE="$(eval_gettext "GALLIUM_NINE (DX9 for MESA)")" | ||||||
| @@ -351,12 +352,13 @@ SORT_G_ZINK="$(eval_gettext "GALLIUM_ZINK (OpenGL for VULKAN)")" | |||||||
| SORT_DGV2="$(eval_gettext "DGVOODOO2 (DirectX 1-7, Glide 3dfx wrapper)")" | SORT_DGV2="$(eval_gettext "DGVOODOO2 (DirectX 1-7, Glide 3dfx wrapper)")" | ||||||
|  |  | ||||||
| case "${PW_VULKAN_USE}" in | case "${PW_VULKAN_USE}" in | ||||||
|     0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_STABLE!$SORT_NEWEST!$SORT_G_NINE!$SORT_G_ZINK!$SORT_DGV2" ;; |     0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_LEGACY!$SORT_STABLE!$SORT_NEWEST!$SORT_G_NINE!$SORT_G_ZINK!$SORT_DGV2" ;; | ||||||
|     1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK!$SORT_DGV2" ;; |     1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK!$SORT_DGV2" ;; | ||||||
|     3) PW_DEFAULT_VULKAN_USE="$SORT_G_NINE!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_ZINK!$SORT_DGV2" ;; |     3) PW_DEFAULT_VULKAN_USE="$SORT_G_NINE!$SORT_LEGACY!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_ZINK!$SORT_DGV2" ;; | ||||||
|     4) PW_DEFAULT_VULKAN_USE="$SORT_G_ZINK!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_NINE!$SORT_DGV2" ;; |     4) PW_DEFAULT_VULKAN_USE="$SORT_G_ZINK!$SORT_LEGACY!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_NINE!$SORT_DGV2" ;; | ||||||
|     5) PW_DEFAULT_VULKAN_USE="$SORT_DGV2!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK" ;; |     5) PW_DEFAULT_VULKAN_USE="$SORT_DGV2!$SORT_LEGACY!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK" ;; | ||||||
|     *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK!$SORT_DGV2" ;; |     7) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_DGV2!$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK" ;; | ||||||
|  |     *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL!$SORT_G_NINE!$SORT_G_ZINK!$SORT_DGV2" ;; | ||||||
| esac | esac | ||||||
|  |  | ||||||
| if [[ ! -z "${PORTWINE_DB_FILE}" ]] ; then | if [[ ! -z "${PORTWINE_DB_FILE}" ]] ; then | ||||||
| @@ -595,6 +597,7 @@ fi | |||||||
|  |  | ||||||
| case "${VULKAN_MOD}" in | case "${VULKAN_MOD}" in | ||||||
|     "$SORT_OPENGL" )     export PW_VULKAN_USE="0" ;; |     "$SORT_OPENGL" )     export PW_VULKAN_USE="0" ;; | ||||||
|  |     "$SORT_LEGACY" )     export PW_VULKAN_USE="7" ;; | ||||||
|     "$SORT_STABLE" )     export PW_VULKAN_USE="1" ;; |     "$SORT_STABLE" )     export PW_VULKAN_USE="1" ;; | ||||||
|     "$SORT_NEWEST" )     export PW_VULKAN_USE="2" ;; |     "$SORT_NEWEST" )     export PW_VULKAN_USE="2" ;; | ||||||
|     "$SORT_G_NINE" )     export PW_VULKAN_USE="3" ;; |     "$SORT_G_NINE" )     export PW_VULKAN_USE="3" ;; | ||||||
|   | |||||||
| @@ -51,6 +51,7 @@ export PW_WINE_FULLSCREEN_FSR="1" | |||||||
| export VKD3D_LIMIT_TESS_FACTORS="64" | export VKD3D_LIMIT_TESS_FACTORS="64" | ||||||
| export D8VK_VER="1.7.1-2367" | export D8VK_VER="1.7.1-2367" | ||||||
| export DGV2_VER="2.8.2" | export DGV2_VER="2.8.2" | ||||||
|  | export DXVK_LEGACY_VER="1.6.1" | ||||||
| export DXVK_STABLE_VER="1.10.3-28" | export DXVK_STABLE_VER="1.10.3-28" | ||||||
| export DXVK_GIT_VER="2.3.1-9" | export DXVK_GIT_VER="2.3.1-9" | ||||||
| export VKD3D_STABLE_VER="1.1-2602" | export VKD3D_STABLE_VER="1.1-2602" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user