diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng
index 0e40bbb4..753173af 100644
--- a/data_from_portwine/changelog_eng
+++ b/data_from_portwine/changelog_eng
@@ -2,6 +2,19 @@ You can help us in the development of the project on the website: https://boosty
-----------------------------------------
Changelog:
+###Scripts version 2097###
+* accelerated launch of all applications in PortProton up to 200% depending on the system
+* updated additional libraries "plugins_v4" (added support for GALLIUM_NINE)
+* added "GALLIUM_NINE" mode selection (support for native DirectX9 on video card with MESA driver)
+* new interface for WINETRICKS added settings tab
+* added variable PW_USE_AMDVLK_DRIVER to EDIT_DB (use AMDVLK driver instead of RADV on AMD video cards)
+* added label archiving when creating a prefix image
+* added restoration of shortcuts after unpacking the prefix image (the path to the .exe file is corrected automatically)
+* improved virtual desktop performance
+* explorer changed to winefile (free disk space detection fixed)
+* disabled loading of mono and gecko for League of Legends (speeds up the first launch)
+* to force the use of AMD graphics cards instead of NVIDIA, you can add "export DRI_PRIME=1" to user.conf
+
###Scripts version 2096###
* added check for LANG variable for PortProton to work on STEAM-DECK
* added new interface for WINETRICKS
diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus
index 7562028b..6732e7bc 100755
--- a/data_from_portwine/changelog_rus
+++ b/data_from_portwine/changelog_rus
@@ -2,6 +2,19 @@
-----------------------------------------
История изменений:
+###Scripts version 2097###
+* ускорен запуск всех приложений в PortProton до 200% в зависимости от системы
+* обновлены дополнительные библиотеки "plugins_v4" (добавлена поддержка GALLIUM_NINE)
+* добавлен выбор режима "GALLIUM_NINE" (поддержка нитивного DirectX9 на видеокарте с MESA драйвером)
+* в новый интерфейс для WINETRICKS добавлена вкладка settings
+* в EDIT_DB добавлена переменная PW_USE_AMDVLK_DRIVER (использовать драйвер AMDVLK вместо RADV на видеокартах от AMD)
+* добавлено архивация ярлыков при создании образа префикса
+* добавлено востановление ярлыков после распаковки образа префикса (путь до .exe файла корректируется автоматически)
+* улучшена работа виртуального рабочего стола
+* explorer изменен на winefile (исправлено определение свободного дискового пространства)
+* отключена загрузка mono и gecko для League of Legends (ускоряет первый запуск)
+* для принудительного использования AMD видеокарты, вместо NVIDIA, можно добавить "export DRI_PRIME=1" в user.conf
+
###Scripts version 2096###
* добавлена проверка на переменную LANG для работы PortProton на STEAM-DECK
* добавлен новый интерфейс для WINETRICKS
diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index 28251d1f..ef468f06 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -186,45 +186,6 @@ unpack_tar () {
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
}
-pw_mangohud_check () {
- export RUN_MANGOHUD_IN_SLR=""
- if [[ "${PW_MANGOHUD}" == "1" ]] ; then
- if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
- export RUN_MANGOHUD_IN_SLR="mangohud --dlsym"
- else
- export RUN_MANGOHUD_IN_SLR="mangohud"
- fi
- else
- export DISABLE_MANGOHUD=1
- fi
- return 0
-}
-export -f pw_mangohud_check
-
-pw_vkbasalt_check () {
- if [[ ! -z "${ENABLE_VKBASALT}" && "${ENABLE_VKBASALT}" == 1 ]] ; then
- if [ -z "${PW_VKBASALT_EFFECTS}" ] ; then
- export PW_VKBASALT_EFFECTS="cas:FilmGrain2"
- fi
- sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
- if [ -z "${PW_VKBASALT_FFX_CAS}" ] ; then
- export PW_VKBASALT_FFX_CAS="0.7"
- fi
- sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
- export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
- sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx"
- sed -i s/'> = 0.65;'/'> = 0.4;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Curves.fx"
- sed -i s/'> = 0.8;'/'> = 0.9;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Bloom.fx"
- if [ ! -z "${VK_INSTANCE_LAYERS}" ]
- then export VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing:${VK_INSTANCE_LAYERS}"
- else export VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing"
- fi
- else
- export DISABLE_VKBASALT=1
- fi
- return 0
-}
-
pw_clear_pfx () {
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
@@ -338,7 +299,7 @@ init_wine_ver () {
if check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" ; then
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is symlink. OK."
elif [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then
- try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}"
+ try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" | sszen
try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/
echo "Copy ${WINEDIR}/share/wine/${mono_gecko_chk} to tmp and create symlink to ${WINEDIR}/share/wine/. OK."
@@ -374,17 +335,13 @@ pw_init_runtime () {
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then
- if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then
- export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}"
- fi
+ export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}"
else
export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases"
fi
- if [[ ! -z "${VK_LAYER_PATH}" ]]
- then export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/:${VK_LAYER_PATH}"
- else export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/"
- fi
+ export PW_VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/"
+
if [ ! -z ${PATH_TMP} ]
then export PATH="${PATH_TMP}"
else export PATH_TMP="${PATH}"
@@ -405,8 +362,6 @@ pw_init_runtime () {
else
var_winedlloverride_update "winegstreamer="
fi
- # export STAGING_SHARED_MEMORY=1
- # export PW_FORCE_LARGE_ADDRESS_AWARE=1
if [ "${PW_USE_RUNTIME}" = 0 ] ; then
export pw_runtime=""
@@ -447,7 +402,56 @@ pw_init_runtime () {
fi
}
-check_vk_icd_file () {
+pw_mangohud_check () {
+ if [[ "${PW_MANGOHUD}" == "1" ]] ; then
+ export MANGOHUD=1
+ MANGOHUD_LIB_NAME="libMangoHud.so"
+ if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
+ MANGOHUD_LIB_NAME="libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
+ fi
+ if [[ ! -z "${PW_LD_PRELOAD}" ]]
+ then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
+ else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}"
+ fi
+ if [[ ! -z "${PW_VK_INSTANCE_LAYERS}" ]]
+ then export PW_VK_INSTANCE_LAYERS="VK_LAYER_MANGOHUD_overlay:${PW_VK_INSTANCE_LAYERS}"
+ else export PW_VK_INSTANCE_LAYERS="VK_LAYER_MANGOHUD_overlay"
+ fi
+ print_info "MANGOHUD is enabled"
+ else
+ export DISABLE_MANGOHUD=1
+ print_info "MANGOHUD is disabled"
+ fi
+ return 0
+}
+
+pw_vkbasalt_check () {
+ if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then
+ if [[ -z "${PW_VKBASALT_EFFECTS}" ]] ; then
+ export PW_VKBASALT_EFFECTS="cas:FilmGrain2"
+ fi
+ sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
+ if [[ -z "${PW_VKBASALT_FFX_CAS}" ]] ; then
+ export PW_VKBASALT_FFX_CAS="0.7"
+ fi
+ sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
+ export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
+ sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx"
+ sed -i s/'> = 0.65;'/'> = 0.4;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Curves.fx"
+ sed -i s/'> = 0.8;'/'> = 0.9;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Bloom.fx"
+ if [[ ! -z "${PW_VK_INSTANCE_LAYERS}" ]]
+ then export PW_VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing:${PW_VK_INSTANCE_LAYERS}"
+ else export PW_VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing"
+ fi
+ print_info "vkBasalt is enabled"
+ else
+ export DISABLE_VKBASALT=1
+ print_info "vkBasalt is disabled"
+ fi
+ return 0
+}
+
+check_nvidia_vk_icd_file () {
if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] ; then
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"
elif [[ -f "/etc/vulkan/icd.d/nvidia_icd.json" ]] ; then
@@ -643,6 +647,11 @@ pw_init_db () {
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
if [[ -f "${portwine_exe}".ppdb ]] ; then
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
+ . "${PORTWINE_DB_FILE}"
+ if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then
+ export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
+ edit_db_from_gui PW_PREFIX_NAME
+ fi
else
orig_IFS="$IFS"
IFS=$'\n'
@@ -666,13 +675,13 @@ pw_init_db () {
IFS="$orig_IFS"
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then
try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb
- export PORTWINE_DB_FILE="${portwine_exe}".ppdb
- if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
- [[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT"` ]]
- then
- export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
- edit_db_from_gui PW_PREFIX_NAME
- fi
+ fi
+ export PORTWINE_DB_FILE="${portwine_exe}".ppdb
+ if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
+ [[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/"` ]]
+ then
+ export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
+ edit_db_from_gui PW_PREFIX_NAME
fi
fi
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang
index b664ca54..0e6cf132 100755
--- a/data_from_portwine/scripts/lang
+++ b/data_from_portwine/scripts/lang
@@ -11,7 +11,7 @@ then
export inst_set="Выбор"
export inst_set_top="Установка PortWINE"
- export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?"
+ export ss_done="Ярлык создан в корневом каталоге порта.\n Добавить его в МЕНЮ -> ИГРЫ?"
export inst_succ="Установка завершена успешно!"
@@ -88,6 +88,7 @@ then
export PW_D3D_EXTRAS_DISABLE_INFO='Отключить принудительное использование сторонних библиотек DirectX'
export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)'
export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе'
+ export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD'
export PW_3DFX_INFO='Имитация старого графического ускорителя 3dfx (добавляет горизонтальные полосы)'
export PW_AdaptiveSharpen_INFO='Увеличение резкости, можно использовать совместо с CAS'
@@ -118,7 +119,7 @@ then
export inst_set="Sett..."
export inst_set_top="PortWINE setting"
- export ss_done="The shortcut was created in the ${portname} directory.\nAdd it to MENU -> GAMES?"
+ export ss_done="The shortcut was created in the ${portname} directory.\n Add it to MENU -> GAMES?"
export inst_succ="The installation was successful."
export port_upd1="New update PortWINE"
diff --git a/data_from_portwine/scripts/portwine_db/League of Legends b/data_from_portwine/scripts/portwine_db/League of Legends
index 2a115a76..8aed332a 100755
--- a/data_from_portwine/scripts/portwine_db/League of Legends
+++ b/data_from_portwine/scripts/portwine_db/League of Legends
@@ -13,7 +13,7 @@ export TEXT_OPSSL=""
export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
-##export WINEDLLOVERRIDES="blabla=n,b"
+export WINEDLLOVERRIDES="mscoree,mshtml="
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options
export PW_WINE_USE=WINE_LOL_GE_7.0-1
export PW_VULKAN_USE=1
diff --git a/data_from_portwine/scripts/portwine_db/alanwake b/data_from_portwine/scripts/portwine_db/alanwake
index c2f7b5b6..15fce26e 100755
--- a/data_from_portwine/scripts/portwine_db/alanwake
+++ b/data_from_portwine/scripts/portwine_db/alanwake
@@ -25,7 +25,7 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # Install DDL in port prefix
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
-export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
+export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
diff --git a/data_from_portwine/scripts/portwine_db/wgc b/data_from_portwine/scripts/portwine_db/wgc
index a2e6d2d1..68d91665 100755
--- a/data_from_portwine/scripts/portwine_db/wgc
+++ b/data_from_portwine/scripts/portwine_db/wgc
@@ -15,3 +15,7 @@ export WINEDLLOVERRIDES="ucrtbase,xaudio2_7,xaudio2_8=n,b"
export PW_DLL_INSTALL="lucida vcrun2019" # Install DDL in port prefix (used winetricks)
##export PW_GUI_DISABLED_CS=1
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
+
+add_in_start_portwine () {
+ sed -i 's% true % false %' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml"
+}
diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_LOL b/data_from_portwine/scripts/pw_autoinstall/PW_LOL
index 11326014..57b0d695 100644
--- a/data_from_portwine/scripts/pw_autoinstall/PW_LOL
+++ b/data_from_portwine/scripts/pw_autoinstall/PW_LOL
@@ -7,6 +7,7 @@ export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=
export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE=1
export PW_WINE_USE=WINE_LOL_GE_7.0-1
+export WINEDLLOVERRIDES="mscoree,mshtml="
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \
diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib
index 472e7e77..56f5a06b 100755
--- a/data_from_portwine/scripts/runlib
+++ b/data_from_portwine/scripts/runlib
@@ -26,11 +26,36 @@ start_portwine () {
create_new_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/"
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/"
export WINEARCH="win64"
- pw_install_dll_in_prefix
- pw_check_and_download_wine "${PW_WINE_USE}"
+ if [[ "${PW_VULKAN_USE}" == 3 ]] ; then
+ export PW_WINE_USE="${PW_PROTON_PW_VER}"
+ echo "Force to use $PW_WINE_USE"
+ if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
+ if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \
+ "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then
+ if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then
+ try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
+ UNPACK_STATUS=0
+ else
+ try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
+ try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
+ fi
+ fi
+ [[ "${UNPACK_STATUS}" != 0 ]] && exit 1
+ fi
+ edit_db_from_gui PW_WINE_USE
+ else
+ pw_check_and_download_wine "${PW_WINE_USE}"
+ fi
+ pw_install_dll_in_prefix
init_wine_ver
- sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
- sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
+ grep 'Steam.exe' "${WINEDIR}/share/wine/wine.inf"
+ if [[ "$?" == "0" ]] ; then
+ sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
+ fi
+ grep '\\Valve\\Steam' "${WINEDIR}/share/wine/wine.inf"
+ if [[ "$?" == "0" ]] ; then
+ sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
+ fi
if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e"
elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e"
elif [ -x "`which xterm 2>/dev/null`" ]; then export PW_TERM="${PW_XTERM}"
@@ -57,8 +82,6 @@ start_portwine () {
export DXVK_LOG_PATH="none"
fi
- export VKD3D_FEATURE_LEVEL="12_0"
-
#default wine-mono override for FNA games
export WINE_MONO_OVERRIDES="Microsoft.Xna.Framework.*,Gac=n"
@@ -114,7 +137,7 @@ start_portwine () {
fi
if [[ ! -z "${PW_PRIME_RENDER_OFFLOAD}" && "${PW_PRIME_RENDER_OFFLOAD}" != 0 ]] ; then
export __NV_PRIME_RENDER_OFFLOAD=1
- check_vk_icd_file
+ check_nvidia_vk_icd_file
fi
if [[ ! -z "${PW_HEAP_DELAY_FREE}" && "${PW_HEAP_DELAY_FREE}" != 0 ]]
then export WINE_HEAP_DELAY_FREE="1"
@@ -141,21 +164,21 @@ start_portwine () {
if [ -x "`which optimus-manager 2>/dev/null`" ]; then
export check_optimus_manager=`optimus-manager --status | grep Current | cut -f 2 -d':' | sed -e 's/^[[:space:]]*//'`
fi
- if [[ ! -z "${PW_NVIDIA}" && "${check_optimus_manager}" != "intel" ]] ; then
+ if [[ ! -z "${PW_NVIDIA}" ]] && [[ "${check_optimus_manager}" != "intel" ]] && [[ "${DRI_PRIME}" != 1 ]] ; then
if [ "${check_optimus_manager}" = "nvidia" ]; then
- check_vk_icd_file
+ check_nvidia_vk_icd_file
elif [ -x "`which primusrun 2>/dev/null`" ]; then
export optirun_on="primusrun"
- check_vk_icd_file
+ check_nvidia_vk_icd_file
elif [ -x "`which optirun 2>/dev/null`" ]; then
export optirun_on="optirun -b primus"
- check_vk_icd_file
+ check_nvidia_vk_icd_file
elif [ -x "`which prime-run 2>/dev/null`" ]; then
export optirun_on="prime-run"
- check_vk_icd_file
+ check_nvidia_vk_icd_file
elif [[ -x "`which nvidia-settings 2>/dev/null`" ]] ; then
export __GLX_VENDOR_LIBRARY_NAME=nvidia
- check_vk_icd_file
+ check_nvidia_vk_icd_file
fi
else
export DRI_PRIME=1
@@ -185,17 +208,17 @@ start_portwine () {
[[ -z "`cat /etc/os-release | grep -i "red hat"`" ]] && \
[[ -z "`cat /etc/os-release | grep -i "centos"`" ]] ; then
export PW_GAMEMODERUN=1
- if [[ ! -z "${LD_PRELOAD}" ]] ; then
- export PW_LD_PRELOAD="$LD_PRELOAD:libgamemodeauto.so.0"
+ if [[ ! -z "${PW_LD_PRELOAD}" ]] ; then
+ export PW_LD_PRELOAD="$PW_LD_PRELOAD:libgamemodeauto.so.0"
else
export PW_LD_PRELOAD="libgamemodeauto.so.0"
fi
+ PW_GAMEMODERUN_SLR="gamemoderun"
echo "Gamemod will be launched."
else
export PW_GAMEMODERUN=0
echo "Gamemod is not installed or disabled in vars script or db file: PW_USE_GAMEMODE=$PW_USE_GAMEMODE"
fi
- pw_vkbasalt_check
pw_other_fixes
check_dirs_and_files_in_pfx () {
@@ -300,8 +323,31 @@ start_portwine () {
fi
done
var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12="
+ elif [[ "${PW_VULKAN_USE}" == 3 ]] ; then
+ echo "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
+ echo "Try link wine DXGI..."
+ export PW_GALLIUM_NINE_VER="0.8"
+ export PW_GALLIUM_NINE_PATH="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
+ try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib32/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/d3d9.dll"
+ try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/d3d9.dll"
+ var_winedlloverride_update "d3d9=n;d3d10,d3d11,dxvk_config,vulkan-1,winevulkan="
+ export D3D_MODULE_PATH="${PW_GALLIUM_NINE_PATH}/lib32:${PW_GALLIUM_NINE_PATH}/lib64"
+ export PW_DX12_DISABLE=1
+ export ENABLE_VKBASALT=0
+ export PW_MANGOHUD=0
+ export WINE_FULLSCREEN_FSR=0
else
echo "Use VKD3D-PROTON and DXVK (DX 9-12 to vulkan)"
+ if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" && "${PW_USE_AMDVLK_DRIVER}" != 0 ]]
+ then export AMD_VULKAN_ICD=AMDVLK
+ else export AMD_VULKAN_ICD=RADV
+ fi
+ export VKD3D_FEATURE_LEVEL="12_0"
+ create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache"
+ export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache
+ export DXVK_STATE_CACHE=1
+ export __GL_DXVK_OPTIMIZATIONS=1
+
export CP_DXVK_FILES="d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi dxvk_config"
echo "Try link native DXVK files..."
for wine_dxvk_dll in ${CP_DXVK_FILES} ; do
@@ -327,15 +373,12 @@ start_portwine () {
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
done
- if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]]
- then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12="
- else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n"
- fi
fi
- create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache"
- export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache
- export DXVK_STATE_CACHE=1
- export __GL_DXVK_OPTIMIZATIONS=1
+ if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]]
+ then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12="
+ else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n"
+ fi
+
create_new_dir "${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE=1
@@ -409,6 +452,7 @@ pw_run () {
cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c"
fi
pw_mangohud_check
+ pw_vkbasalt_check
PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" \
"PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
@@ -416,22 +460,14 @@ pw_run () {
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
- if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then
- ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \
- LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
- else
- ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
- ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
- fi
+ ${optirun_on} ${PW_GAMEMODERUN_SLR} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" \
+ PATH="${PATH}" VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
+ VK_LAYER_PATH="${PW_VK_LAYER_PATH}" "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
else
[ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM=""
- if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then
- $PW_TERM ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \
- LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
- else
- $PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
- ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
- fi
+ $PW_TERM ${optirun_on} ${PW_GAMEMODERUN_SLR} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" \
+ PATH="${PATH}" VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
+ VK_LAYER_PATH="${PW_VK_LAYER_PATH}" "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
fi
}
export -f pw_run
@@ -453,7 +489,7 @@ fi
unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD
unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB
unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME
-unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME
+unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR
export portname=PortProton
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index a2f8bafa..86c4cd28 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -22,7 +22,17 @@ if [[ -n `basename "${portwine_exe}" | grep .ppack` ]] ; then
export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
unset PW_SANDBOX_HOME_PATH
pw_init_runtime
- ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/$(basename $1 | awk -F'.' '{print $1}')" "$1"
+ export PW_PREFIX_NAME=`basename "$1" | awk -F'.' '{print $1}'`
+ ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1"
+ if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then
+ orig_IFS="$IFS"
+ IFS=$'\n'
+ for crfb in `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"` ; do
+ export portwine_exe="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}"
+ portwine_create_shortcut "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}"
+ done
+ IFS="$orig_IFS"
+ fi
exit 0
fi
@@ -32,45 +42,16 @@ portwine_launch () {
PORTWINE_BAT=`basename "${portwine_exe}" | grep .bat`
if [[ ! -z "${PW_VIRTUAL_DESKTOP}" && "${PW_VIRTUAL_DESKTOP}" == "1" ]] ; then
pw_screen_resolution=`xrandr --current | grep "*" | awk '{print $1;}' | head -1`
- pw_run explorer "/desktop=portwine,${pw_screen_resolution}" "$portwine_exe"
+ pw_run explorer "/desktop=portwine,${pw_screen_resolution}" ${WINE_WIN_START} "$portwine_exe"
elif [ ! -z "${PORTWINE_MSI}" ]; then
pw_run msiexec /i "$portwine_exe"
elif [[ ! -z "${PORTWINE_BAT}" || ! -z "${portwine_exe}" ]] ; then
pw_run ${WINE_WIN_START} "$portwine_exe"
else
- pw_run explorer
+ pw_run winefile
fi
}
-portwine_create_shortcut () {
- pw_create_gui_png
- name_desktop="${PORTPROTON_NAME}"
- echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
- echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- if [ -z "${PW_CHECK_AUTOINSTAL}" ]
- then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
- >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
- >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- fi
- echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
- chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
- `zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` &> /dev/null
- if [ $? -eq "0" ]; then
- cp -fu "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
- fi
- xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
-}
-
-portwine_delete_shortcut () {
- rm -f "`grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop`"
- rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`"
-}
-
portwine_start_debug () {
kill_portwine
export PW_LOG=1
@@ -99,9 +80,12 @@ portwine_start_debug () {
echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log"
echo `ldd --version | grep -m1 ldd | awk '{print $NF}'` >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
- if [ "${PW_VULKAN_USE}" = "0" ]
- then echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log"
- else echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log"
+ if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
+ echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log"
+ elif [[ "${PW_VULKAN_USE}" = "3" ]] ; then
+ echo "PW_VULKAN_USE=${PW_VULKAN_USE} - native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/${portname}.log"
+ else
+ echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log"
fi
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Version WINE in the Port:" >> "${PORT_WINE_PATH}/${portname}.log"
@@ -212,7 +196,7 @@ pw_winecfg () {
pw_winefile () {
start_portwine
- pw_run explorer
+ pw_run winefile
}
pw_winecmd () {
@@ -233,7 +217,7 @@ pw_prefix_manager () {
start_portwine
[[ ! -f "${PORT_WINE_TMP_PATH}/dll_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" dlls list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/dll_list"
[[ ! -f "${PORT_WINE_TMP_PATH}/fonts_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" fonts list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/fonts_list"
- # [[ ! -f "${PORT_WINE_TMP_PATH}/settings_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" settings list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/settings_list"
+ [[ ! -f "${PORT_WINE_TMP_PATH}/settings_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" settings list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/settings_list"
gui_prefix_manager () {
pw_start_progress_bar_block "Starting prefix manager..."
@@ -242,7 +226,7 @@ pw_prefix_manager () {
IFS=$'\n'
try_remove_file "${PORT_WINE_TMP_PATH}/dll_list_tmp"
while read PW_BOOL_IN_DLL_LIST ; do
- if [[ -z `echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'dont_use|dxvk|vkd3d|galliumnine|faudio1'` ]] ; then
+ if [[ -z `echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'd3d|directx9|dont_use|dxvk|vkd3d|galliumnine|faudio1'` ]] ; then
if grep "^`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then
echo -e "true\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/dll_list_tmp"
else
@@ -260,6 +244,16 @@ pw_prefix_manager () {
fi
fi
done < "${PORT_WINE_TMP_PATH}/fonts_list"
+ try_remove_file "${PORT_WINE_TMP_PATH}/settings_list_tmp"
+ while read PW_BOOL_IN_FONTS_LIST ; do
+ if [[ -z `echo "${PW_BOOL_IN_FONTS_LIST}" | grep -E 'vista|alldlls|autostart_|bad|good|win|videomemory|vd=|isolate_home'` ]] ; then
+ if grep "^`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then
+ echo -e "true\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp"
+ else
+ echo -e "false\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp"
+ fi
+ fi
+ done < "${PORT_WINE_TMP_PATH}/settings_list"
pw_stop_progress_bar
KEY_EDIT_MANAGER_GUI=$RANDOM
@@ -271,8 +265,12 @@ pw_prefix_manager () {
--text="Select fonts to install in prefix: \"${PW_PREFIX_NAME}\", using wine: \"${PW_WINE_USE}\"" \
--column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/fonts_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" &
+ "${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=3 --list --checklist \
+ --text="Change config for prefix: \"${PW_PREFIX_NAME}\"" \
+ --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/settings_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" &
+
"${pw_yad_new}" --key=$KEY_EDIT_MANAGER_GUI --notebook --borders=5 --width=700 --height=600 --center \
- --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONST"
+ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONTS" --tab="SETTINGS"
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
stop_portwine
@@ -337,6 +335,11 @@ pw_create_prefix_backup () {
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "BACKUP PREFIX TO..."`
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
+ if [[ ! -z "`grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop `" ]] ; then
+ try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
+ grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \
+ | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
+ fi
unset PW_SANDBOX_HOME_PATH
export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
pw_init_runtime
@@ -361,10 +364,12 @@ pw_create_prefix_backup () {
}
pw_edit_db () {
- pw_gui_for_edit_db PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \
+ pw_gui_for_edit_db \
+ PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \
PW_VULKAN_NO_ASYNC PW_USE_NVAPI_AND_DLSS PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP \
PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER \
- PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_D3D_EXTRAS_DISABLE PW_FIX_VIDEO_IN_GAME
+ PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_D3D_EXTRAS_DISABLE PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER \
+ PW_FORCE_LARGE_ADDRESS_AWARE
if [ "$?" == 0 ] ; then
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
@@ -434,9 +439,10 @@ if [ ! -z "${PORTWINE_DB_FILE}" ] ; then
[ -z "${PW_VULKAN_USE}" ] && export PW_VULKAN_USE=1
fi
case "${PW_VULKAN_USE}" in
- "0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)' ;;
- "2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL' ;;
- *) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' ;;
+ "0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!GALLIUM_NINE (native DX9 on MESA)' ;;
+ "2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;;
+ "3") export PW_DEFAULT_VULKAN_USE='GALLIUM_NINE (native DX9 on MESA)!VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL' ;;
+ *) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;;
esac
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
@@ -453,7 +459,7 @@ if [ ! -z "${PORTWINE_DB_FILE}" ] ; then
fi
fi
else
- export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL'
+ export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)'
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]] ; then
@@ -574,7 +580,7 @@ else
# --field=" ABOUT PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_about_portproton"' &
"${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=3 --align-buttons --form --separator=";" \
- --field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \
+ --field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)" \
--field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \
--field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \
--field=" DOWNLOAD OTHER WINE "!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \
@@ -649,6 +655,8 @@ elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (DXVK and VKD3D)" ]]
then export PW_VULKAN_USE="1"
elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (WINE DXGI)" ]]
then export PW_VULKAN_USE="2"
+elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "GALLIUM_NINE (native DX9 on MESA)" ]]
+then export PW_VULKAN_USE="3"
fi
init_wine_ver
diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var
index d13e7b56..98205bb0 100755
--- a/data_from_portwine/scripts/var
+++ b/data_from_portwine/scripts/var
@@ -1,11 +1,12 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (PortWINE-Linux.ru)
-#SCRIPTS_NEXT_VERSION=2096
+#SCRIPTS_NEXT_VERSION=2097
#PORT_NEXT_VERSION=97
########################################################################
export PW_MANGOHUD=1
-export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,gpu_name,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,fps,frametime,arch,frame_timing,time,font_size=24,position=top-left,vram,version,wine,no_display,resolution,background_alpha=0.5,toggle_hud=Shift_R+F12,vkbasalt
+export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt,gamemode,no_display
#export DXVK_HUD=compiler
+#export GALLIUM_HUD=fps
#export ENABLE_VKBASALT=1
#export PW_VIRTUAL_DESKTOP=1
#export PW_XKBD_RU_HACK=1
@@ -28,9 +29,11 @@ export GDK_BACKEND="x11"
export PW_USE_GSTREAMER="1"
export PW_PREFIX_NAME="DEFAULT"
export WINE_WIN_START="start.exe /i /unix"
+export STAGING_SHARED_MEMORY=1
+export PW_FORCE_LARGE_ADDRESS_AWARE=1
###DEFAULT_WINE###
export PW_WINE_USE=PROTON_GE
-export PW_PLUGINS_VER="_v3"
+export PW_PLUGINS_VER="_v4"
###WINE_PROTON_STEAM###
export PW_STEAM_VER="7.0-1B"
export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}"
@@ -39,6 +42,9 @@ export PW_GE_VER="7-9"
export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}"
export WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_STRENGTH="2"
+###WINE_PROTON_PW_FOR_GALLIUM_NINE###
+export PW_PW_VER="7.5"
+export PW_PROTON_PW_VER="PROTON_PW_${PW_PW_VER}"
#################################################################
pw_install_dll_in_prefix ()
{
diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui
index da05cf2c..2e0c81f2 100644
--- a/data_from_portwine/scripts/zen_yad_gui
+++ b/data_from_portwine/scripts/zen_yad_gui
@@ -118,10 +118,15 @@ pw_tray_icon () {
export -f tray_icon_click
pw_tray_winefile () {
- pw_run explorer
+ pw_run winefile "C:\\users\\${USER}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\"
}
export -f pw_tray_winefile
+ pw_tray_taskmgr () {
+ pw_run taskmgr
+ }
+ export -f pw_tray_taskmgr
+
tray_icon_click_exit () {
pw_stop_progress_bar
stop_portwine
@@ -135,6 +140,7 @@ pw_tray_icon () {
--tooltip="PortProton" \
--menu="| \
<<< WINEFILE >>>!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/port_winefile.png"| \
+<<< TASKMNR >>>!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/port_winefile.png"| \
<<< CHANGE LOG >>>!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"| \
<<< FORCE EXIT >>>!bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"|" &
return 0
@@ -181,7 +187,7 @@ pw_gui_for_edit_db () {
--field=":LBL" "" \
--field="MANGOHUD FPS LIMIT (0-disabled):SCL" ${FPS_LIMIT_VAR} 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" &
- "${pw_yad_new}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="520" \
+ "${pw_yad_new}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="550" \
--text "Change settings in database file for ${PORTWINE_DB}\n" --separator=" " --borders=10 --center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --button="CANCEL":1 --button="OPEN DB FILE":150 --button="SAVE CHANGES":0
YAD_STATUS="$?"
@@ -392,3 +398,39 @@ gui_vkBasalt () {
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
}
+
+portwine_create_shortcut () {
+ pw_create_gui_png
+ name_desktop="${PORTPROTON_NAME}"
+ echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ if [ -z "${PW_CHECK_AUTOINSTAL}" ]
+ then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
+ >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
+ >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ fi
+ echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
+ "${pw_yad}" --title="${inst_set}." --form --center --borders=5 \
+ --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \
+ --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \
+ --field=" ${name_desktop}.desktop:LBL" "" \
+ --field=" ${ss_done}:LBL" "" \
+ --button='CANCEL'!!"":1 \
+ --button='OK'!!"":0
+ if [ $? -eq "0" ]; then
+ try_remove_file "${HOME}/.local/share/applications/${name_desktop}.desktop"
+ cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
+ fi
+ xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
+}
+
+portwine_delete_shortcut () {
+ rm -f "`grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop`"
+ rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`"
+}