From c7b3a08bef31493e6d687c1234d5198e4f1c9bdc Mon Sep 17 00:00:00 2001 From: castro-fidel Date: Fri, 22 Oct 2021 12:36:12 +0300 Subject: [PATCH] ###Scripts version 2028### --- data_from_portwine/changelog | 6 ++ data_from_portwine/scripts/functions_helper | 66 ++++++++++++- data_from_portwine/scripts/lang | 92 +------------------ .../scripts/portwine_db/UbisoftConnect | 14 +-- data_from_portwine/scripts/runlib | 2 +- data_from_portwine/scripts/setup.sh | 4 +- data_from_portwine/scripts/start.sh | 11 ++- data_from_portwine/scripts/var | 2 +- portwine_install_script/PortProton-97 | 2 +- 9 files changed, 88 insertions(+), 111 deletions(-) diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog index 11f9f6e7..0ecd8007 100755 --- a/data_from_portwine/changelog +++ b/data_from_portwine/changelog @@ -2,10 +2,16 @@ ----------------------------------------- В планах: * добавить inxi в runtime и его вывод с аргументом -G в log +* добавить 32-битный mangohud_dlsym в runtime * добавить cs_block при запуске порта * добавить проверку количества db файлов на один exe * заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru ----------------------------------------- +###Scripts version 2028### +* добавлена поддержка UBUNTU 21.10 +* добавлен графический интерфейс для настройки vkBasalt под каждую игру +* добавлено автоматическое создание db файла при первом запуске *.exe + ###Scripts version 2027### * в редакторе db файлов (EDIT_DB) добавлены всплывающие описания к каждому параметру. * возващены libs_v17 diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 7a44b847..6b188918 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -660,8 +660,6 @@ pw_gui_for_edit_db () { fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" ADD_CHK_BOX_EDIT_DB+="--field=${int_to_boole}!${!TMP_HELP_FOR_GUI}:CHK%${!int_to_boole}%" - echo "$ADD_CHK_BOX_EDIT_DB" - echo "${int_to_boole}=${!int_to_boole}" done } edit_db_field_add $@ @@ -677,7 +675,6 @@ pw_gui_for_edit_db () { exit 0 fi export IFS=$old_IFS - echo "$output_yad_edit_db" export output_yad_edit_db=($output_yad_edit_db) export bool_from_yad=0 edit_db_field_read () { @@ -824,3 +821,66 @@ gui_proton_downloader () { exit 0 } export -f gui_proton_downloader + +gui_vkBasalt () { + KEY_FX_GUI=$RANDOM + FILE_VKBASALT_CONF="${PORT_WINE_PATH}/data/vkBasalt.conf" + LIST_FX=(`grep ".fx$" "${FILE_VKBASALT_CONF}" | awk '{print $1}'`) + GET_FX_IN_FILE=(`echo ${PW_VKBASALT_EFFECTS} | sed s/"cas:"// | sed s/":"/" "/g`) + unset ADD_GUI_FX GUI_FX_RESULT + for add_list_fx in ${LIST_FX[@]} ; do + if [[ ! -z `echo " ${GET_FX_IN_FILE[@]} " | grep " ${add_list_fx} "` ]] ; then + ADD_GUI_FX+=("--field $add_list_fx:CHK TRUE") + else + ADD_GUI_FX+=("--field $add_list_fx:CHK FALSE") + fi + done + if [[ ! -z "${PW_VKBASALT_FFX_CAS}" ]] ; then + VKBASALT_FFX_CAS_GUI=`bc -s <<< "${PW_VKBASALT_FFX_CAS}*100" | sed 's/\..*//'` + else + VKBASALT_FFX_CAS_GUI=75 + fi + "${pw_yad_new}" --plug=$KEY_FX_GUI --tabnum="1" --form --columns=5 --separator=" " \ + ${ADD_GUI_FX[@]} 1> "${PORT_WINE_TMP_PATH}/tmp_yad_basalt_set" & + + "${pw_yad_new}" --plug=$KEY_FX_GUI --tabnum="2" --separator=" " --form \ + --field="AMD FidelityFX - Contrast Adaptive Sharpening":SCL "${VKBASALT_FFX_CAS_GUI}" \ + 1> "${PORT_WINE_TMP_PATH}/tmp_yad_cas_set" & + + "${pw_yad_new}" --paned --key="$KEY_FX_GUI" --height="600" --title="vkBasalt" --center --borders=10 \ + --button="CANCEL":1 --button="DISABLED VKBASALT":180 --button="ENABLED VKBASALT":182 + YAD_VKBASALT_STATUS="$?" + case "${YAD_VKBASALT_STATUS}" in + 1|252) + /bin/bash -c ${pw_full_command_line[*]} & + exit 0 ;; + 180) + export ENABLE_VKBASALT=0 ;; + 182) + export ENABLE_VKBASALT=1 ;; + esac + + YAD_BASALT_SET=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_basalt_set"` + YAD_CAS_SET=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_cas_set" | sed s/" "//g` + + INT_COUNT_FX=0 + for read_list_fx in ${YAD_BASALT_SET} ; do + if [[ "$read_list_fx" == "TRUE" ]] ; then + export GUI_FX_RESULT+=":${LIST_FX[$INT_COUNT_FX]}" + fi + export INT_COUNT_FX=$(( ${INT_COUNT_FX} + 1 )) + done + GUI_FX_RESULT="cas${GUI_FX_RESULT}" + export PW_VKBASALT_EFFECTS="${GUI_FX_RESULT}" + + if [[ "$YAD_CAS_SET" == "0" ]] ; then + export PW_VKBASALT_FFX_CAS="0" + elif [[ "$YAD_CAS_SET" == "100" ]] ; then + export PW_VKBASALT_FFX_CAS="1" + else + export PW_VKBASALT_FFX_CAS="0`bc -s <<< "scale=2; $YAD_CAS_SET/100"`" + fi + edit_db_from_gui PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS ENABLE_VKBASALT + /bin/bash -c ${pw_full_command_line[*]} & + exit 0 +} diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index c909b0dd..6f145f97 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -9,15 +9,6 @@ then export inst_set="Выбор" export inst_set_top="Установка PortWINE" - - export ss_title="Опции запуска:" - export ss_text="Выберите желаемый вариант запуска ${portname}. Вы всегда можете изменить свой выбор, \nзапустив ярлык reset из каталога: "${PORT_WINE_PATH}"/" - export ss_ver="Версия?" - export ss_default_1="Cтандартный запуск" - export ss_default_2="Старый запуск, с вопросами и логами" - export ss_ogl_1="Использовать OpenGL. (DirectX в OpenGL)" - export ss_ogl_2="Использовать VKD3D. ( DX12 в vulkan)" - export ss_ogl_3="Использовать DXVK и D9VK. (DX9-DX11 в Vulkan и выключить DX12)" export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?" export inst_succ="Установка завершена успешно!" @@ -40,10 +31,6 @@ then export port_del1="Удаление $portname" export port_del2="Вы действительно хотите полностью удалить PortProton?" - export port_del3="Удалить?!" - export port_del4="Нет, не удалять!" - export port_del5="Да, удалить!" - export port_del6="был удален." export port_deb1="PortWINE был запущен в режиме создания ${portname}.log и он успешно сохранен в корне каталога порта" export port_deb2="Для диагностики проблемы, скопируйте ВЕСЬ лог в соответствующий канал у нас на сервере дискорда: https://discord.gg/FTaheP99wE" @@ -57,37 +44,8 @@ then export port_start7="Запустить winetricks" export port_start8="DXVK" - export port_time1="Информация" - export port_time2="Ты думаешь что помочь автору развивать проект это сложно? Нет!\nДостаточно, что бы именно ты пожертвовал сколько считаешь нужным,\nну или хотя бы 50 рублей." - export port_time3="Действие:" - export port_time4="Перейти на сайт и помочь развитию проекта." - export port_time5="Сейчас не могу, может быть в другой раз." - export port_time6="Я уже сделал вклад в будущее проекта." - export port_debug="Не торопитесь!\nПосле окончания работы ${portname}, нажмите ОК." - export hud_text="Выберите вывод необходимой информации на экран:" - export hud_info="Отображать:" - export hud_fps="частоту кадров" - export hud_devinfo="название графического процессора и версию драйвера" - export hud_frametimes="график времени кадра" - export hud_submissions="количество командных буферов, представленных на кадр" - export hud_drawcalls="количество вызовов отрисовки и отрисовки пропусков на кадр" - export hud_pipelines="общее количество графических и вычислительных конвейеров" - export hud_memory="объем памяти устройства, выделенной и использованной" - export hud_gpuload="предполагаемую загрузку графического процессора (может быть неточна)" - export hud_version="используемую версию DXVK" - export hud_api="уровень функций D3D, используемый приложением" - export hud_compiler="активность шейдерного компилятора" - export hud_samplers="текущее количество используемых пар сэмплеров (только для D3D9)" - - export sc_name="Введите название будущего ярлыка:" - export sc_path="Создаем ярлык. Выберите файл запуска..." - export sc_img="Создаем ярлык. Выберите иконку ICO, или PNG формата..." - export sc_cmd="Введите дополнительные параметры запуска, или оставьте полепустым." - - export debug_path="Выберите ярлык для создания .log файла..." - export loc_creat_shortcut="Создать ярлык для запускаемого файла." export loc_debug="Запуск c созданием .log файла в корне ${portname}" export loc_launch="Запустить файл..." @@ -96,9 +54,6 @@ then export loc_winecmd="Запустить командную строку wine" export loc_winereg="Запустить редактор реестра префикса ${portname}" export loc_winetricks="Запустить winetricks для установки доп. библиотек в префикс ${portname}" - - export loc_scripts_update=" Обновление базы данных для игр\n и программ успешно завершено.\n\n Перезапустите ${portname}." - export loc_edit_db="Изменить файл настроек для" export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)' @@ -119,23 +74,14 @@ then export PW_GUI_DISABLED_CS_INFO='Отключить окно выбора режимов запуска и версии WINE' export PW_USE_GSTREAMER_INFO='Использовать Gstreamer для вывода роликов в играх (поддержка WMF)' export PW_USE_RUNTIME_INFO='Использовать контейнерный режим запуска (Рекомендуется не изменять значение)' + export PW_MANGOHUD_INFO='Использование мониторинга FPS и нагрузки системы (Включается и выключается сочитанием клавиш - правый Shift + F12)' elif [ "${update_loc}" = "ENG" ] then export inst_set="Sett..." export inst_set_top="PortWINE setting" - - export ss_title="Settings::" - export ss_text="Choose your preferred ${portname} launch option. You can always change your choice by unsetting\nthe reset shortcut from the directory: "${PORT_WINE_PATH}"/" - export ss_ver="Version:" - export ss_default_1="Standard start" - export ss_default_2="Old startup, with questions and logs" - export ss_ogl_1="Use OpenGL. (DirectX to OpenGL)" - export ss_ogl_2="Use VKD3D. (DX12 to vulkan)" - export ss_ogl_3="Use DXVK and D9VK. (DX9-DX11 to Vulkan)" export ss_done="The shortcut was created in the ${portname} directory.\nAdd it to MENU -> GAMES?" - export inst_succ="The installation was successful." export port_upd1="New update PortWINE" @@ -156,10 +102,6 @@ then export port_del1="Remove $portname" export port_del2="Are you sure you want to delete the PortProton" - export port_del3="Remove?!" - export port_del4="No!" - export port_del5="Yes!" - export port_del6="was deleted." export port_deb1="PortWINE was launched in creation mode ${portname}.log and it is successfully stored in the root directory of the port" export port_deb2="To diagnose the problem, copy ALL of the log to discord server: https://discord.gg/FTaheP99wE" @@ -173,37 +115,8 @@ then export port_start7="Run winetricks" export port_start8="DXVK" - export port_time1="Information" - export port_time2="Do you think that it is difficult to help the author develop the project?\nNo! It is enough that you would sacrifice what you think is necessary, well, or at least 1$." - export port_time3="Action:" - export port_time4="Go to the site and help develop the project" - export port_time5="I do not want to help the project" - export port_time6="I'm well done and have already contributed to the future of the project" - export port_debug="Please wait!\nAfter finishing the ${portname}, click OK." - export hud_text="The DXVK_HUD environment variable controls a HUD which can display the framerate\nand some stat counters. It accepts a comma-separated list of the following options:" - export hud_info="Description:" - export hud_fps="Shows the current frame rate." - export hud_devinfo="Displays the name of the GPU and the driver version." - export hud_frametimes="Shows a frame time graph." - export hud_submissions="Shows the number of command buffers submitted per frame." - export hud_drawcalls="Shows the number of draw calls and render passes per frame." - export hud_pipelines="Shows the total number of graphics and compute pipelines." - export hud_memory="Shows the amount of device memory allocated and used." - export hud_gpuload="Shows estimated GPU load. May be inaccurate." - export hud_version="Shows DXVK version." - export hud_api="Shows the D3D feature level used by the application." - export hud_compiler="Shows shader compiler activity" - export hud_samplers="Shows the current number of sampler pairs used [D3D9 Only]" - - export sc_name="Name shortcut:" - export sc_path="Select the .exe file..." - export sc_img="Select the .ICO or .PNG file..." - export sc_cmd="Add command line" - - export debug_path="Select the .desktop file for create the log" - #Helped in translation: ConTI1NuEsZZZ export loc_creat_shortcut="Create shortcut for select file..." export loc_debug="Launch with the creation of a .log file at the root ${portname}" @@ -213,8 +126,5 @@ then export loc_winecmd="Run wine command line" export loc_winereg="Run Registry Prefix Editor ${portname}" export loc_winetricks="Run winetricks to install additional libraries to the prefix ${portname}" - - export loc_scripts_update="Updating scripts and database of games\n and programs completed successfully.\n\n Restart ${portname}." - export loc_edit_db="Edit database file for" fi diff --git a/data_from_portwine/scripts/portwine_db/UbisoftConnect b/data_from_portwine/scripts/portwine_db/UbisoftConnect index 0c8df1ab..c6cb7a7f 100755 --- a/data_from_portwine/scripts/portwine_db/UbisoftConnect +++ b/data_from_portwine/scripts/portwine_db/UbisoftConnect @@ -1,15 +1,15 @@ #!/bin/bash - #Author: chal55rus - #UbisoftConnect.exe - #Rating=1-5 - ################################################ - #export PW_VULKAN_USE=dxvk - export PW_DLL_INSTALL="arial corefonts d3dcompiler_43 d3dcompiler_47 d3dx9" +#Author: chal55rus +#UbisoftConnect.exe +#Rating=1-5 +################################################ +export PW_VULKAN_USE=1 +export PW_DLL_INSTALL="arial corefonts d3dcompiler_43 d3dcompiler_47 d3dx9 d3dx11_42 d3dx11_43" #####################examples########################### ##export PW_COMMENT_DB="blablabla" ##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL ##export WINEDLLOVERRIDES="blabla=n,b" -##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks) +##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks) ##export PW_LOG=0 # Enable debug mode fo terminal ##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=1 # Do not use eventfd-based in-process synchronization primitives diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index bf88eac3..045dca1f 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -69,7 +69,7 @@ start_portwine () { container_args+=("--ld-preload=$word") fi done - export PW_AND_RUNTIME_LIBRARY_PATH="/overrides/lib/x86_64-linux-gnu:/overrides/lib/i386-linux-gnu:" + export PW_AND_RUNTIME_LIBRARY_PATH="/overrides/lib/x86_64-linux-gnu/:/overrides/lib/x86_64-linux-gnu/aliases/:/overrides/lib/i386-linux-gnu/:/overrides/lib/i386-linux-gnu/aliases/:" if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]]; then export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ --unshare-home \ diff --git a/data_from_portwine/scripts/setup.sh b/data_from_portwine/scripts/setup.sh index b009eab1..4b5824e7 100755 --- a/data_from_portwine/scripts/setup.sh +++ b/data_from_portwine/scripts/setup.sh @@ -4,7 +4,7 @@ try_remove_file "${PORT_WINE_TMP_PATH}/update_notifier" try_remove_dir "${PORT_SCRIPTS_PATH}/vars" -create_new_dir "/home/${USER}/.local/share/applications" +create_new_dir "${HOME}/.local/share/applications" name_desktop="PortProton" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" @@ -17,7 +17,7 @@ echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp; echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Icon="${PORT_WINE_PATH}/data/img/w.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" -cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ +cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ update-desktop-database -q "${HOME}/.local/share/applications" xdg-mime default PortProton.desktop "application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 6fabf45c..7df236d7 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -61,7 +61,7 @@ portwine_create_shortcut () { 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 -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ + cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ fi xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & } @@ -204,9 +204,9 @@ 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_AND_DLSS \ + pw_gui_for_edit_db PW_MANGOHUD ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_DXR_ON 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_NO_WRITE_WATCH PW_GUI_DISABLED_CS PW_USE_GSTREAMER PW_USE_RUNTIME + PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_NO_WRITE_WATCH PW_GUI_DISABLED_CS PW_USE_GSTREAMER PW_USE_RUNTIME if [ "$?" == 0 ] ; then /bin/bash -c ${pw_full_command_line[*]} & exit 0 @@ -241,7 +241,6 @@ do export DIST_ADD_TO_GUI="${DIST_ADD_TO_GUI}\!${DAIG}" done if [ ! -z "${PORTWINE_DB_FILE}" ] ; then - export YAD_EDIT_DB="--button=EDIT DB!!${loc_edit_db} ${PORTWINE_DB}:118" [ -z "${PW_COMMENT_DB}" ] && PW_COMMENT_DB="PortWINE database file for "\"${PORTWINE_DB}"\" was found." if [[ -z "${PW_VULKAN_USE}" || -z "${PW_WINE_USE}" ]] ; then unset PW_GUI_DISABLED_CS @@ -273,7 +272,8 @@ if [ ! -z "${portwine_exe}" ]; then --field="Run with :CB" "${PW_DEFAULT_VULKAN_USE}" \ --field="Run with :CB" "${PW_DEFAULT_WINE_USE}" \ --field=":LBL" "" \ - "${YAD_EDIT_DB}" \ + --button='VKBASALT'!!"${ENABLE_VKBASALT_INFO}":120 \ + --button='EDIT DB'!!"${loc_edit_db} ${PORTWINE_DB}":118 \ --button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \ --button='DEBUG'!!"${loc_debug}":102 \ --button='LAUNCH'!!"${loc_launch}":106 ) @@ -426,6 +426,7 @@ case "$PW_YAD_SET" in gui_wine_uninstaller) gui_wine_uninstaller ;; gui_rm_portproton) gui_rm_portproton ;; gui_proton_downloader) gui_proton_downloader ;; + 120) gui_vkBasalt ;; *) pw_autoinstall_from_db ;; esac diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 0eb83f3b..799474b6 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=2027 +#SCRIPTS_NEXT_VERSION=2028 #PORT_NEXT_VERSION=97 ######################################################################## export PW_MANGOHUD=1 diff --git a/portwine_install_script/PortProton-97 b/portwine_install_script/PortProton-97 index 59a1d6b0..2540d73f 100755 --- a/portwine_install_script/PortProton-97 +++ b/portwine_install_script/PortProton-97 @@ -29,7 +29,7 @@ fi ######################################################################## cd "$(dirname "`readlink -f "$0"`")" links="$(pwd)" -deflink="/home/${USER}/PortWINE/${portname}" +deflink="${HOME}/PortWINE/${portname}" [ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1 ######################################################################## if [ "$1" = "-rus" ] ; then