From 0449899d6f476e8e03c9d7fc7061ef24f705b787 Mon Sep 17 00:00:00 2001 From: castro-fidel Date: Tue, 5 Oct 2021 13:16:27 +0300 Subject: [PATCH] ###Scripts version 2015### --- data_from_portwine/changelog | 9 ++++++- data_from_portwine/scripts/functions_helper | 26 ++++++++++++++++++- .../scripts/portwine_db/default | 2 +- .../scripts/portwine_db/witcher3 | 2 +- data_from_portwine/scripts/runlib | 25 ++++++++---------- data_from_portwine/scripts/start.sh | 2 +- data_from_portwine/scripts/var | 6 ++--- 7 files changed, 50 insertions(+), 22 deletions(-) diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog index a1be14f..0e6bf48 100755 --- a/data_from_portwine/changelog +++ b/data_from_portwine/changelog @@ -1,10 +1,17 @@ История изменений и дальнейшие планы: ----------------------------------------- -В планах: +В планах: * добавить проверку количества db файлов на один exe +* добавить GUI для выбора версии WINE из интернета * добавить комментарии описывающие функционал скриптов и db файлов * заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru ----------------------------------------- +###Scripts version 2015### +* расширty функционал проверки существования mono и gecko +* добавлена новая функция check_symlink +* временно возвращено использование libs_v17 +* в EDIT_DB добавлена возможность отключения winegstreamer + ###Scripts version 2014### * обновлен WINE PROTON_STEAM до версии 6.3-7 совместно с DXVK и VKD3D * реализован запуск League Of Legends (необходимо запускать с версией wine: https://github.com/Castro-Fidel/wine_builds/releases/download/WINE_LOL_GE_6.16-2/WINE_LOL_GE_6.16-2.tar.xz ) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a6ae7c0..ca7da29 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -66,6 +66,20 @@ try_force_link_file () { return 1 } +check_symlink () { + if [ ! -z `file "$1" | grep "symbolic link to" | grep -v "broken"` ] ; then + `file "$1"` + return 0 + elif [ ! -z `file "$1" | grep "broken symbolic link to"` ] ; then + `file "$1"` + print_info "remove broken symlink: $1" + rm -fr "$1" + return 1 + else + return 1 + fi +} + try_force_link_dir () { if [ ! -d "$1" ] ; then print_info "directory $1 not found for link" elif [ -z "$2" ] ; then print_error "no way to link directory $1" @@ -216,7 +230,6 @@ init_wine_ver () { [ ! -z "${PW_WINE_USE}" ] && export PW_WINE_USE=`echo "${PW_WINE_USE}" | tr [[:lower:]] [[:upper:]]` unset PW_WINE_VER export WINEDIR="${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" - export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0" export WINE="${WINEDIR}/bin/wine" export WINELOADER="${WINEDIR}/bin/wine" export WINESERVER="${WINEDIR}/bin/wineserver" @@ -259,6 +272,17 @@ init_wine_ver () { try_copy_dir "${PORT_WINE_PATH}/data/dist/PROTON_STEAM/lib64/wine/${copy_proton_dll}" "${WINEDIR}/lib64/wine/" fi done + + for mono_gecko_chk in "mono" "gecko" ; do + if [ ! -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ] ; then + try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" + try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/ + elif [ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ] && [ ! `check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}"` ] ; then + cp -fr "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" + rm -fr "${WINEDIR}/share/wine/${mono_gecko_chk}" + try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/ + fi + done } cabextract_fix () { diff --git a/data_from_portwine/scripts/portwine_db/default b/data_from_portwine/scripts/portwine_db/default index e20e42d..5fd6d8b 100755 --- a/data_from_portwine/scripts/portwine_db/default +++ b/data_from_portwine/scripts/portwine_db/default @@ -27,7 +27,7 @@ ##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support. ##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives - +##export PW_USE_GSTREAMER=1 # 0 - disabled use winegstreamer ##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games ##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). diff --git a/data_from_portwine/scripts/portwine_db/witcher3 b/data_from_portwine/scripts/portwine_db/witcher3 index 19e8430..de0e61e 100755 --- a/data_from_portwine/scripts/portwine_db/witcher3 +++ b/data_from_portwine/scripts/portwine_db/witcher3 @@ -19,7 +19,7 @@ export PW_HIDE_NVIDIA_GPU=0 export PW_FORCE_USE_VSYNC=0 export PW_VIRTUAL_DESKTOP=0 ##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue -export ENABLE_VKBASALT=1 +##export ENABLE_VKBASALT=1 export PW_VKBASALT_FFX_CAS="0.5" export PW_NO_FSYNC=0 export PW_NO_ESYNC=1 diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 3b7f961..bc775f4 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -33,20 +33,19 @@ start_portwine () { pw_start_progress_bar_cs "Start ${portname}... Please wait..." - export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}" - export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz - export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz - export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz - export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz + if [ "${PW_USE_GSTREAMER}" = 1 ] ; then + export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0" + export GST_DEBUG="WARNING:0" + export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}" + export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz + export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz + export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz + export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz + else + var_winedlloverride_update "winegstreamer=" + fi export STAGING_SHARED_MEMORY=1 export PW_FORCE_LARGE_ADDRESS_AWARE=1 - export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" - - create_new_dir "${WINEDIR}/share/wine/" - try_remove_dir "${WINEDIR}"/share/wine/gecko - try_remove_dir "${WINEDIR}"/share/wine/mono - try_force_link_dir "${PORT_WINE_TMP_PATH}/gecko" "${WINEDIR}"/share/wine/ - try_force_link_dir "${PORT_WINE_TMP_PATH}/mono" "${WINEDIR}"/share/wine/ if [ "${PW_USE_RUNTIME}" = 0 ] ; then export pw_runtime="" @@ -103,7 +102,6 @@ start_portwine () { export VKD3D_DEBUG="none" export DXVK_LOG_PATH="none" fi - export GST_DEBUG="WARNING:0" #default wine-mono override for FNA games export WINE_MONO_OVERRIDES="Microsoft.Xna.Framework.*,Gac=n" @@ -466,7 +464,6 @@ fi . "${PORT_SCRIPTS_PATH}"/lang export urlg="https://portwine-linux.ru/portwine-faq/" -export PW_FTP_URL="https://portwine-linux.ru/ftp" export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}" export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui" export install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1` diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 0483c5a..1fbffc0 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -204,7 +204,7 @@ pw_winetricks () { pw_edit_db () { pw_gui_for_edit_db ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_DXR_ON PW_VULKAN_NO_ASYNC PW_USE_NVAPI \ 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_NO_WRITE_WATCH PW_GUI_DISABLED_CS + PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_NO_WRITE_WATCH PW_GUI_DISABLED_CS PW_USE_GSTREAMER if [ "$?" == 0 ] ; then /bin/bash -c ${pw_full_command_line[*]} & exit 0 diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index df21887..23a432a 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/bin/bash #Author: Castro-Fidel (PortWINE-Linux.ru) -#SCRIPTS_NEXT_VERSION=2014 +#SCRIPTS_NEXT_VERSION=2015 #PORT_NEXT_VERSION=97 ######################################################################## export PW_MANGOHUD=1 @@ -25,10 +25,10 @@ export PW_MUST_HAVE_DLL="d3dx9_43 physx mfc42 vcrun2019 d3dcompiler_42 d3dcompil export PW_WINEDBG_DISABLE=1 export PW_WINDOWS_VER="10" export WINEARCH="win64" -export PW_LIBS_VER="_v18" +export PW_LIBS_VER="_v17" export PORTWINE_URL="http://portwine-linux.ru/" export GDK_BACKEND="x11" - +export PW_USE_GSTREAMER="1" export PW_PROTON_STEAM_VER="PROTON_STEAM_6.3-7" export PW_PROTON_GE_VER="PROTON_GE_6.16-1" export PW_MONO_VER="6.3.0"