diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog index c6861c4..a7ff4c8 100644 --- a/data_from_portwine/changelog +++ b/data_from_portwine/changelog @@ -1,17 +1,60 @@ История изменений и дальнейшие планы: ----------------------------------------- В планах: -* добавть кнопку очистки префикса в PortProton +* добавить автоматическое обновление при выходе нового порта +* добавить вывод ошибки при скачивании файла при автоматической установки +* добавить фикс установки dotnet +* добавить кнопку очистки префикса в PortProton * проверка версий и обновления скриптов из https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.zip * добавить условие: если установлен vcrun2019, то не устанавливать vcrun2015-2017 * EDIT DB открывается не у всех +* пересоздать удаление PortProton (чистка ярлыков в меню с помощью grep "путь до порта") * проверить windows steam под PortProton * создать defaut префикс и сделать авто симлинки в другие префиксы (games, programm files, users) * иконка в трей для PortProton +* сменить цвет url +* добавить контроль за окнами для правильного отключения прогресс бара * проверка версий dxvk на github: curl -s https://github.com/doitsujin/dxvk/releases | grep Version | awk {'print $3'} | sed 's%%%g' * проверка версий vkd3d на github: curl -s https://github.com/HansKristian-Work/vkd3d-proton/releases | grep Version | awk {'print $3'} | sed 's%%%g' * зарабатывать на жизнь развитием проекта с помощью вашей подписки на https://boosty.to/portwine-linux.ru ----------------------------------------- +###Scripts version 1053### +* HOTFIX - перенос всех функций в скрипте runlib (наверх) +* добавлена переменная в default ##export PW_WINE_ALLOW_XIM=1, которая отключает XIM (X input manager) +* в функции PW_INIT_PFX добавлено копирование всех dll из библиотек wine/lib(64) в префикс (если префикса не существует) + +###Scripts version 1052### +* отключена автоотчистка ~/.PortWINE +* отключение сервиса OriginWebHelperService.exe (правкой реестра) перенесена в скрипт var +* в AUTOINSTALL добавлена установка EVE Online + +###Scripts version 1051### +* изменён db файл Origin для отключение сервиса OriginWebHelperService.exe (правкой реестра) + +###Scripts version 1050### +* добавлен фикc установки Epic Games Launcher +* принудительно отключен сервис OriginWebHelperService.exe +* в AUTOINSTALL добавлена установка GoG Galaxy + +###PortProton-76### 29.04.2021 ###Scripts version 1049### +* обновить Proton Experimental (2021/04/27) +* добавлен вывод changelog и debug во встроенном YAD (gui) +* в AUTOINSTALL добавлена установка Epic Games Launcher +* исправлена ошибка: 00bc:err:winediag:load_dxvk_config Couldn't load dxvk_config.dll + +###Scripts version 1048### +* реализовано обновление скриптов "налету" (без необходимости перезапускать порт) + +###Scripts version 1047### +* в AUTOINSTALL добавлены установки "Origin" и "Battle.net Launcher" +* увеличено время ожидания ответа при проверки связи с интернетом (ping -w5 -c1 github.com) +* увеличено количество попыток скачивания для неустойчивого интернет соединения (wget -c -t 10 -T 1) +* в GUI PortProton добавлена кнопка F.A.Q. для открытия справочной страницы portwine-linux.ru + +###Scripts version 1046### +* обновлена верси VKD3D используемая по умолчанию до версии 2.3.1 (скрипт var, переменная export PW_DEF_VKD3D_VER=2.3.1) +* HOTFIX сохранение выбраного режима запуска в существующий файл db при создании ярлыка + ###Scripts version 1045### * HOTFIX установка компонентов при отсутствии winetricks.log diff --git a/data_from_portwine/img/gui/battle_net.png b/data_from_portwine/img/gui/battle_net.png new file mode 100644 index 0000000..97dc0ed Binary files /dev/null and b/data_from_portwine/img/gui/battle_net.png differ diff --git a/data_from_portwine/img/gui/epicgames.png b/data_from_portwine/img/gui/epicgames.png new file mode 100644 index 0000000..8bbe5f2 Binary files /dev/null and b/data_from_portwine/img/gui/epicgames.png differ diff --git a/data_from_portwine/img/gui/eve.png b/data_from_portwine/img/gui/eve.png new file mode 100644 index 0000000..3eae5e4 Binary files /dev/null and b/data_from_portwine/img/gui/eve.png differ diff --git a/data_from_portwine/img/gui/gog.png b/data_from_portwine/img/gui/gog.png new file mode 100644 index 0000000..7b07eda Binary files /dev/null and b/data_from_portwine/img/gui/gog.png differ diff --git a/data_from_portwine/img/gui/origin.png b/data_from_portwine/img/gui/origin.png new file mode 100644 index 0000000..7f15645 Binary files /dev/null and b/data_from_portwine/img/gui/origin.png differ diff --git a/data_from_portwine/scripts/autoinstall b/data_from_portwine/scripts/autoinstall index b48de2e..fd7a3e9 100644 --- a/data_from_portwine/scripts/autoinstall +++ b/data_from_portwine/scripts/autoinstall @@ -1,14 +1,20 @@ #!/bin/bash # Author: Castro-Fidel (PortWINE-Linux.ru) ######################################################################## -export PW_FORCE_DISABLED_GAMEMOD=0 +export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp" +export PW_FORCE_LARGE_ADDRESS_AWARE=0 +export PW_FORCE_DISABLED_GAMEMOD=1 export PW_CHECK_AUTOINSTAL=1 -export PW_VULKAN_USE=0 +export PW_WINEDBG_DISABLE=1 +export PW_NO_WRITE_WATCH=0 +export PW_VULKAN_USE=0 +export PW_NO_FSYNC=1 +export PW_NO_ESYNC=1 PW_WGC () { export LAUNCH_PARAMETERS=("/SILENT" "/SP-") [ "${update_loc}" = "RUS" ] && export WGC_LOC=RU || export WGC_LOC=EU - export PW_AUTOINSTALL_EXE="$WINEPREFIX/drive_c/Wargaming_Game_Center_Install_WoT_RU.exe" + export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Wargaming_Game_Center_Install_WoT_RU.exe" START_PORTWINE if try_download "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}" then @@ -22,3 +28,96 @@ PW_WGC () { STOP_PORTWINE } +PW_ORIGIN () { + export LAUNCH_PARAMETERS=("/silent" ) + export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe" + START_PORTWINE + if try_download "https://download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_AUTOINSTALL_EXE}" + then + PW_START_PROGRESS_BAR_BLOCK "Installing the Origin. Please wait..." + PW_RUN "${PW_AUTOINSTALL_EXE}" + portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe" + PW_STOP_PROGRESS_BAR + try_remove_file "${PW_AUTOINSTALL_EXE}" + KILL_PORTWINE + PORTWINE_CREATE_SHORTCUT + fi + STOP_PORTWINE +} + +PW_BATTLE_NET () { + [ "${update_loc}" = "RUS" ] && export BN_LOC=ruRU || export BN_LOC=enUS + export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe" + START_PORTWINE + if try_download "http://dist.blizzard.com/downloads/bna-installers/322d5bb9ae0318de3d4cde7641c96425/retail.1/Battle.net-Setup-${BN_LOC}.exe" "${PW_AUTOINSTALL_EXE}" + then + PW_START_PROGRESS_BAR "Installing the Battle Net. Please wait..." + PW_RUN "${PW_AUTOINSTALL_EXE}" + while [ ! -z `pgrep Battle.net* | head -n 1` ] && [ -z `pgrep Battle.net.exe | head -n 1` ] ; do sleep 2 ; done + KILL_PORTWINE + portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"` + PW_STOP_PROGRESS + PORTWINE_CREATE_SHORTCUT + try_remove_file "${PW_AUTOINSTALL_EXE}" + fi + STOP_PORTWINE +} + +PW_EPIC () { + export LAUNCH_PARAMETERS=("/q" ) + export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi" + START_PORTWINE + if try_download "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}" + then + PW_START_PROGRESS_BAR_BLOCK "Installing Epic Games Launcher. Please wait..." + PW_RUN msiexec /i "${PW_AUTOINSTALL_EXE}" & + sleep 10 + if [ ! -z `pgrep msiexec* | head -n 1` ] ; then + while [ ! -z `pgrep msiexec* | head -n 1` ] || [ ! -z `pgrep rundll32* | head -n 1` ] ; do + [ ! -z `pgrep rundll32* | head -n 1` ] && kill -n 9 `pgrep rundll32* | head -n 1` && echo "Kill rundll32.exe" + sleep 5 + done + fi + portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Epic Games/Launcher/Portal/Binaries/Win32/EpicGamesLauncher.exe" + try_remove_file "${PW_AUTOINSTALL_EXE}" + KILL_PORTWINE + PW_STOP_PROGRESS_BAR + PORTWINE_CREATE_SHORTCUT + fi + STOP_PORTWINE +} + +PW_GOG () { + export LAUNCH_PARAMETERS=("/runWithoutUpdating" "/deelevated" ) + export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe" + START_PORTWINE + if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.35.19/setup_galaxy_2.0.35.19a.exe" "${PW_AUTOINSTALL_EXE}" + then + PW_START_PROGRESS_BAR_CS "Installing the GOG Galaxy. Please wait..." + PW_RUN "${PW_AUTOINSTALL_EXE}" + portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "GalaxyClient.exe"` + try_remove_file "${PW_AUTOINSTALL_EXE}" + KILL_PORTWINE + PW_STOP_PROGRESS_BAR + PORTWINE_CREATE_SHORTCUT + fi + STOP_PORTWINE +} + +PW_EVE () { + export PW_WINDOWS_VER=10 + export PW_DLL_INSTALL="vcrun2017" + export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EveLauncher-1602194.exe" + START_PORTWINE + if try_download "https://binaries.eveonline.com/EveLauncher-1602194.exe" "${PW_AUTOINSTALL_EXE}" + then + PW_START_PROGRESS_BAR_CS "Installing the EVE Launcher. Please wait..." + PW_RUN "${PW_AUTOINSTALL_EXE}" + portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "evelauncher.exe"` + try_remove_file "${PW_AUTOINSTALL_EXE}" + KILL_PORTWINE + PW_STOP_PROGRESS_BAR + PORTWINE_CREATE_SHORTCUT + fi + STOP_PORTWINE +} diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index b73d071..555d337 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -37,7 +37,7 @@ then export port_del6="был удален." export port_deb1="PortWINE был запущен в режиме создания ${portname}.log и он успешно сохранен в корне каталога порта" - export port_deb2="Для диагностики проблемы, скопируйте ВЕСЬ лог в соответствующий канал у нас на сервере дискорда: https://discord.gg/jfXkZW7F" + export port_deb2="Для диагностики проблемы, скопируйте ВЕСЬ лог в соответствующий канал у нас на сервере дискорда: https://discord.gg/FTaheP99wE" export port_start1="Запуск PortWINE" export port_start2="В каком режиме вы хотите запустить PortWINE?" @@ -124,7 +124,7 @@ then 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/jfXkZW7F" + export port_deb2="To diagnose the problem, copy ALL of the log to discord server: https://discord.gg/FTaheP99wE" export port_start1="Starting the PortWINE" export port_start2="In what mode you want to start the PortWINE?" diff --git a/data_from_portwine/scripts/portwine_db/Battle.net_Launcher b/data_from_portwine/scripts/portwine_db/Battle.net_Launcher index b204f46..aa1fd51 100644 --- a/data_from_portwine/scripts/portwine_db/Battle.net_Launcher +++ b/data_from_portwine/scripts/portwine_db/Battle.net_Launcher @@ -4,14 +4,16 @@ #Battle.net-Setup.exe #Rating=5 ################################################ -export PW_VULKAN_USE=dxvk +##export PW_VULKAN_USE=dxvk export LAUNCH_PARAMETERS="" +export WINEDLLOVERRIDES="locationapi=" export PW_DLL_INSTALL="vcrun2017 d3dx11_42 d3dx11_43" export PW_WINDOWS_VER=10 +export PW_NVAPI_DISABLE=1 ADD_IN_START_PORTWINE () { rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/ProgramData/Agent/data" - rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser/Blizzard Entertainment/Battle.net/Cache" + rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache" rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache" try_remove_file "${PORT_WINE_PATH}/data/pfx/drive_c/windows/Fonts/sourcehansans.ttc" } \ No newline at end of file diff --git a/data_from_portwine/scripts/portwine_db/Cyberpunk2077 b/data_from_portwine/scripts/portwine_db/Cyberpunk2077 index bdd65e0..a69cc63 100644 --- a/data_from_portwine/scripts/portwine_db/Cyberpunk2077 +++ b/data_from_portwine/scripts/portwine_db/Cyberpunk2077 @@ -1,11 +1,9 @@ #!/bin/bash - #Author: xuser - #Cyberpunk2077.exe - #Rating=1-5 - ################################################ - export PW_VULKAN_USE=vkd3d - export PW_VKD3D_VER=2.1 +#Author: xuser +#Cyberpunk2077.exe +#Rating=1-5 #####################examples########################### +export PW_VULKAN_USE=vkd3d ##export PW_COMMENT_DB="blablabla" export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe=" ##export PW_DLL_INSTALL="d3dcompiler_47" # Install DDL in port prefix (used winetricks) diff --git a/data_from_portwine/scripts/portwine_db/GalaxyClient b/data_from_portwine/scripts/portwine_db/GalaxyClient index fb49940..4a50031 100644 --- a/data_from_portwine/scripts/portwine_db/GalaxyClient +++ b/data_from_portwine/scripts/portwine_db/GalaxyClient @@ -7,10 +7,10 @@ export PW_VULKAN_USE=dxvk export WINEDLLOVERRIDES="galaxycommunication.exe=n" export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated" -export PW_DLL_INSTALL="vcrun2019 vcrun6 mfc140" +export PW_DLL_INSTALL="vcrun2017 vcrun6 mfc140" ADD_IN_START_PORTWINE () { -if [ -e "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" ] ; then - sed -i 's/"featureOverlay" : true,/"featureOverlay" : false,/' "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" +if [ -e "${WINEPREFIX}/drive_c/users/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" ] ; then + sed -i 's/"featureOverlay" : true,/"featureOverlay" : false,/' "${WINEPREFIX}/drive_c/${USER}/steamuser/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" fi } \ No newline at end of file diff --git a/data_from_portwine/scripts/portwine_db/Origin b/data_from_portwine/scripts/portwine_db/Origin index 5a7c8ad..99423fd 100644 --- a/data_from_portwine/scripts/portwine_db/Origin +++ b/data_from_portwine/scripts/portwine_db/Origin @@ -6,7 +6,7 @@ ##export PW_COMMENT_DB="blablabla" ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP -export PW_DLL_INSTALL="d3dcompiler_43 d3dcompiler_47 d3dx9" # Install DDL in port prefix (used winetricks) +export PW_DLL_INSTALL="vcrun2010 vcrun2012 vcrun2017 d3dcompiler_43 d3dcompiler_47 d3dx9" # Install DDL in port prefix (used winetricks) ##export WINEDLLOVERRIDES="blabla=n,b" ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options @@ -44,7 +44,35 @@ export PW_NVAPI_DISABLE=1 export STAGING_SHARED_MEMORY=0 -ADD_IN_START_PORTWINE () { - sed -i 's%key="EnableIgo" value="true"%key="EnableIgo" value="false"%g' "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Origin/local_"*".xml" -} +#ADD_IN_START_PORTWINE () { +# export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp" +# if try_download "https://download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_USER_TEMP}/OriginSetup.exe" ; then +# PW_START_PROGRESS_BAR_BLOCK "Extracting files for update the Origin..." +# unzip "${PW_USER_TEMP}/OriginSetup.exe" 'update/*.zip' -d "${PW_USER_TEMP}/" +# unzip -o "${PW_USER_TEMP}/update/"*.zip -d "$WINEPREFIX/drive_c/Program Files (x86)/Origin/" +# try_remove_dir "${PW_USER_TEMP}/update" +# try_remove_file "${PW_USER_TEMP}/OriginSetup.exe" +# PW_STOP_PROGRESS_BAR +# PW_START_PROGRESS_BAR_CS "Starting the Origin..." + +# check_origin_update () { +# while : +# do +# sleep 3 +# if [ ! -z `pgrep Origin.exe | head -n 1` ] ; then +# sleep 1 +# else +# if [ ! -z `pgrep OriginSetup* | head -n 1` ] ; then +# kill -n 9 `pgrep OriginSetup* | head -n 1` +# fi +# if [ ! -z `pgrep OriginThin* | head -n 1` ] ; then +# kill -n 9 `pgrep OriginThin* | head -n 1` +# fi +# break +# fi +# done +# } +# check_origin_update & +# fi +#} diff --git a/data_from_portwine/scripts/portwine_db/default b/data_from_portwine/scripts/portwine_db/default index d68680a..56f3476 100644 --- a/data_from_portwine/scripts/portwine_db/default +++ b/data_from_portwine/scripts/portwine_db/default @@ -16,11 +16,11 @@ ##export PW_DXR_ON=1 ##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN ##export PW_NVAPI_DISABLE=1 -##export PW_OLD_GL_STRING=0 -##export PW_HIDE_NVIDIA_GPU=0 -##export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT -##export PW_VKD3D_FEATURE_LEVEL=0 -##export PW_DXGI_FROM_DXVK=0 +##export PW_OLD_GL_STRING=1 +##export PW_HIDE_NVIDIA_GPU=1 +##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +##export PW_VKD3D_FEATURE_LEVEL=1 +##export PW_DXGI_FROM_DXVK=1 ##export PW_VIRTUAL_DESKTOP=1 ##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue ##export ENABLE_VKBASALT=1 @@ -30,17 +30,18 @@ ##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games -##export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod +##export PW_FORCE_DISABLED_GAMEMOD=1 # Force disabele gamemod ##export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. -##export PW_NO_WRITE_WATCH=0 # 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). -##export PW_HEAP_DELAY_FREE=0 +##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). +##export PW_HEAP_DELAY_FREE=1 +##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread ##export WINEARCH=win32 # defaut = win64 ##export WINEPREFIX= ##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG -##export PW_USE_TERMINAL=0 # Force run in terminal -##export PW_LOG=0 # Enable debug mode fo terminal +##export PW_USE_TERMINAL=1 # Force run in terminal +##export PW_LOG=1 # Enable debug mode fo terminal ##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI ##ADD_IN_START_PORTWINE () { commands ; } diff --git a/data_from_portwine/scripts/portwine_db/dontstarve b/data_from_portwine/scripts/portwine_db/dontstarve index 7be2773..f96be06 100644 --- a/data_from_portwine/scripts/portwine_db/dontstarve +++ b/data_from_portwine/scripts/portwine_db/dontstarve @@ -1,14 +1,14 @@ #!/bin/bash - #Author: xuser - #dontstarve.exe - #Rating=1-5 - ################################################ - export PW_VULKAN_USE=0 +#Author: xuser +#dontstarve.exe +#Rating=1-5 +################################################ +export PW_VULKAN_USE=0 #####################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="vcrun2017 d3dcompiler_43" # Install DDL in port prefix (used winetricks) +export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # 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/portwine_db/eve b/data_from_portwine/scripts/portwine_db/eve new file mode 100644 index 0000000..c1f3966 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/eve @@ -0,0 +1,46 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#eve.exe +#evelauncher.exe +#Rating=5 +#####################examples########################### +##export PW_COMMENT_DB="blablabla" + +export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP +export PW_DLL_INSTALL="vcrun2017 d3dcompiler_47" # Install DDL in port prefix (used winetricks) +export WINEDLLOVERRIDES="concrt140,msvcp140,msvcp140_1,msvcp140_2,d3dcompiler_47=n" +##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options + +##export PW_DXVK_VER=1.8.1 +##export PW_VKD3D_VER=2.2 +##export PW_DXR_ON=1 +##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN +##export PW_NVAPI_DISABLE=1 +##export PW_OLD_GL_STRING=0 +##export PW_HIDE_NVIDIA_GPU=0 +##export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +##export PW_VKD3D_FEATURE_LEVEL=0 +##export PW_DXGI_FROM_DXVK=0 +##export PW_VIRTUAL_DESKTOP=1 +##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue +##export ENABLE_VKBASALT=1 + +##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 + +##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games + +##export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod +##export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +##export PW_NO_WRITE_WATCH=0 # 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). +##export PW_HEAP_DELAY_FREE=0 + +##export WINEARCH=win32 # defaut = win64 +##export WINEPREFIX= + +##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG +##export PW_USE_TERMINAL=0 # Force run in terminal +##export PW_LOG=0 # Enable debug mode fo terminal +##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI + +##ADD_IN_START_PORTWINE () { commands ; } diff --git a/data_from_portwine/scripts/portwine_db/wgc b/data_from_portwine/scripts/portwine_db/wgc index ff65a89..6d988bc 100644 --- a/data_from_portwine/scripts/portwine_db/wgc +++ b/data_from_portwine/scripts/portwine_db/wgc @@ -3,7 +3,7 @@ #wgc.exe #Rating=5 ################################################ -export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL +#export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL export LAUNCH_PARAMETERS="--disable-gpu" # Additional launch options export PW_USE_TERMINAL=1 export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP diff --git a/data_from_portwine/scripts/portwine_db/wot_encore_install_ru b/data_from_portwine/scripts/portwine_db/wot_encore_install_ru new file mode 100644 index 0000000..dd13c58 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/wot_encore_install_ru @@ -0,0 +1,41 @@ +#!/bin/bash + #Author: user + #wot_encore_install_ru.exe + #Rating=1-5 + ################################################ + export PW_VULKAN_USE=dxvk + export PW_USE_TERMINAL=1 + export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet" + export PW_DLL_INSTALL="dotnet40 vcrun2017 vcrun6 mfc42 vb6run physx" + export PW_COMMENT_DB="World Of Tanks EnCore Installer" + ## export DXVK_HUD=fps,devinfo + ## export PW_MANGOHUD=1 +#####################examples########################### +PW_INSTALL_DOTNET40 () { + export DN=dotNetFx40_Full_x86_x64.exe + export mscor=mscorsvw.exe + export KILL_MSCOR=0 + export DN_INST_SUCC=0 + + while [ ! -z "`ps -ax | grep PortProton | grep -m1 'start.sh' | awk '{print $1}'`" ] ; do + echo "PID parrent start.sh was found" + sleep 5 + while [ ! -z `pidof -s $DN` ] ; do + echo "$DN is runing.. Wait..." + sleep 5 + export DN_INST_SUCC=1 + done + while [ ! -z `pgrep "${mscor}" | head -n 1` ] && [ -z `pidof -s $DN` ] ; do + echo "$mscor was found. Kill it..." + kill -n 9 `pgrep "${mscor}" | head -n 1` + sleep 1 + export KILL_MSCOR=1 + done + if [ "$KILL_MSCOR" != 0 ] && [ "$DN_INST_SUCC" != 0 ] && [ -z `pidof -s $DN` ] && [ -z `pgrep "${mscor}" | head -n 1` ]; then + echo "All $mscor killed" + break + fi + done +} +PW_INSTALL_DOTNET40 & + diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 8390042..1d0c900 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -16,7 +16,7 @@ if [ "${s_install}" != "1" ] && [ ! -x "`which "zenity" 2>/dev/null`" ];then xdg-open "http://portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0 fi pw_ping_test () { - ping -w1 -c1 github.com &> /dev/null + ping -w5 -c1 github.com &> /dev/null [ "$?" == "0" ] && return 0 || return 1 } print_error () { @@ -81,7 +81,7 @@ try_force_link_dir () { } try_download () { set -o pipefail - wget -c -t 3 -T 2 "$1" --output-document="$2" 2>&1 | \ + wget -c -t 10 -T 1 "$1" --output-document="$2" 2>&1 | \ sed -u 's/^[a-zA-Z\-].*//; s/.* \{1,2\}\([0-9]\{1,3\}\)%.*/\1\n#Downloading... \1%/; s/^20[0-9][0-9].*/#Done./' | \ zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90 [ "${PIPESTATUS[0]}" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0 @@ -108,10 +108,6 @@ unpack_tar_xz () { tar -Jxvf "$1" -C "$2" | sszen [ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0 } -#pw_restart () { -# exit 0 & -# /bin/bash -C $pw_full_start_command -#} pw_mangohud_check () { export RUN_MANGOHUD="" export MANGOHUD=0 @@ -140,145 +136,16 @@ PW_START_PROGRESS_BAR_CS () { --no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 & echo "" } -PW_START_PROGRESS_BAR_BLOK () { +PW_START_PROGRESS_BAR_BLOCK () { "${pw_yad}" --progress --progress-text="$@" --pulsate \ --no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 & echo "" } PW_STOP_PROGRESS_BAR () { while [ ! -z "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ] - do kill -9 [ "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ] + do kill -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` done } -cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)" -cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)" -export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" -read "portname" < "${PORT_WINE_TMP_PATH}/portname" && export portname -cd "${PORT_SCRIPTS_PATH}" -. "${PORT_SCRIPTS_PATH}/var" -create_new_dir "${PORT_WINE_TMP_PATH}" -create_new_dir "${HOME}/.PortWINE/tmp" -try_remove_dir "${PORT_SCRIPTS_PATH}/vars" - -if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_loc" ]; then - SET_LANG=`zenity --title "Install $portname" --text "Select the language" --list --radiolist \ - --column="Set:" --column "Language:" \ - TRUE "RUS" \ - FALSE "ENG" ` - echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/${portname}_loc" -fi - -. "${PORT_SCRIPTS_PATH}"/lang - -if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_ver" ]; then - echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver" -fi - -var_winedlloverride_update "winemenubuilder.exe=" -export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${mono_ver}/wine-mono-${mono_ver}-x86.tar.xz" -export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86.tar.xz" -export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86_64.tar.xz" -export urlg="https://portwine-linux.ru/portwine-faq/" -export PW_FTP_URL="https://portwine-linux.ru/ftp" -export WINEDIR="${PORT_WINE_PATH}"/data/dist -export WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}" -export WINEPREFIX="${PORT_WINE_PATH}/data/pfx" -export PW_COMPAT_MEDIA_PATH="${PORT_WINE_TMP_PATH}" -export PW_RUNTIME="$WINELIB/run.sh" -export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui" -export PW_VULKAN_DLL="${HOME}/.PortWINE/vulkan" -export PW_DXVK_VER="${PW_DEF_DXVK_VER}" -export PW_VKD3D_VER="${PW_DEF_VKD3D_VER}" -export install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1` -export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1` - -if [ -z "${INSTALLING_PORT}" ] ; then - if [ ! -e "${WINELIB}/run.sh" ] || [ ! -e "${WINELIB}/usr/bin/yad" ] || [ ! -e "${WINELIB}/amd64/usr/bin/vkcube" ] || [ ! -e "${WINELIB}/amd64/usr/bin/xterm" ] || [ -e "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ] ; then - print_info "Download and install libraries..." - if try_download "https://github.com/Castro-Fidel/PortWINE/releases/download/libs${pw_libs_ver}/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ; then - if unpack_tar_xz "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/" ; then - try_remove_file "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" - else - try_remove_dir "${HOME}/.PortWINE/libs${pw_libs_ver}" - try_remove_file "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" - `zenity --error --title "Error..." --text "Failed to download runtime libraries.\nCheck internet connection and restart PortProton" --no-wrap ` > /dev/null 2>&1 - exit 0 - fi - else - `zenity --error --title "Error..." --text "Failed to download runtime libraries.\nCheck internet connection and restart PortProton" --no-wrap ` > /dev/null 2>&1 - exit 1 - fi - fi - if [ -e "${WINELIB}/run.sh" ]; then - echo "######################################################" - echo "Runtime libraries is enabled" - try_remove_dir "${WINELIB}/pinned_libs_32" - try_remove_dir "${WINELIB}/pinned_libs_64" - export pw_yad="${WINELIB}/usr/bin/yad" - export pw_zstd="${WINELIB}/usr/bin/zstd" - if [ -x "`which xterm 2>/dev/null`" ]; then - export SYS_XTERM=`which xterm` - export PW_XTERM="${SYS_XTERM} -geometry 159x37 -e" - else - export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e" - fi - else - echo "######################################################" - echo "Runtime libraries is disabled" - fi - if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}" ] ; then - echo "######################################################" - print_info "Download and install wine mono..." - if try_download "${url_mono}" "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" ; then - create_new_dir "${HOME}/.PortWINE/mono" - if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" "${HOME}/.PortWINE/mono/" - then try_remove_dir "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}-x86" - fi - try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" - fi - fi - if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" ] ; then - echo "######################################################" - echo "Download and install wine gecko x86..." - if try_download "${url_gecko_x86}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" ; then - create_new_dir "${HOME}/.PortWINE/gecko" - if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" "${HOME}/.PortWINE/gecko/" - then try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" - fi - try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" - fi - fi - if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" ] ; then - echo "######################################################" - echo "Download and install wine gecko x86_64..." - if try_download "${url_gecko_x86_64}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" ; then - create_new_dir "${HOME}/.PortWINE/gecko" - if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" "${HOME}/.PortWINE/gecko/" - then try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" - fi - try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" - fi - fi - create_new_dir "${WINEDIR}/share/wine/" - try_force_link_dir "${HOME}/.PortWINE/gecko" "${WINEDIR}"/share/wine/ - try_force_link_dir "${HOME}/.PortWINE/mono" "${WINEDIR}"/share/wine/ - - if [ ! -z "${portwine_exe}" ]; then - export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi` - export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" - export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'` - fi - if [ ! -z "${PORTWINE_DB}" ]; then - PORTWINE_DB_FILE=`grep -ilw "#${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi` - if [ ! -z "${PORTWINE_DB_FILE}" ]; then - . "${PORTWINE_DB_FILE}" - echo "Use ${PORTWINE_DB_FILE} db file." - else - . "${PORT_SCRIPTS_PATH}/portwine_db/default" - echo "Use default db file." - fi - fi -fi START_PORTWINE () { if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e" @@ -288,8 +155,6 @@ START_PORTWINE () else export PW_TERM="${PW_XTERM}" fi - [ -z "${INSTALLING_PORT}" ] && PW_UPDATE - try_remove_dir "${PORT_WINE_PATH}/data/vulkan" create_new_dir "${PW_VULKAN_DLL}" @@ -395,8 +260,13 @@ START_PORTWINE () if [ ! -z "${PW_VKD3D_FEATURE_LEVEL}" ] && [ "${PW_VKD3D_FEATURE_LEVEL}" != 0 ] ; then export VKD3D_FEATURE_LEVEL="12_0" fi - if [ ! -z "${PW_HEAP_DELAY_FREE}" ] && [ "${PW_HEAP_DELAY_FREE}" != 0 ] ; then - export WINE_HEAP_DELAY_FREE="1" + if [ ! -z "${PW_HEAP_DELAY_FREE}" ] && [ "${PW_HEAP_DELAY_FREE}" != 0 ] + then export WINE_HEAP_DELAY_FREE="1" + else export WINE_HEAP_DELAY_FREE="0" + fi + if [ ! -z "${PW_WINE_ALLOW_XIM}" ] && [ "${PW_WINE_ALLOW_XIM}" != 0 ] + then export WINE_ALLOW_XIM="1" + else export WINE_ALLOW_XIM="0" fi if [ ! -z "${PW_DXR_ON}" ] && [ "${PW_DXR_ON}" != 0 ] ; then var_vkd3d_config_update dxr @@ -626,31 +496,39 @@ PW_INIT_PFX () { if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || [ ! -f "${WINEPREFIX}"/user.reg ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || [ ! -f "${WINEPREFIX}"/system.reg ] ; then sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf + create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" + create_new_dir "${WINEPREFIX}/drive_c/windows/system32/" + cp -f "${WINEDIR}/lib/wine/fakedlls/"*.* "${WINEPREFIX}/drive_c/windows/syswow64/" + cp -f "${WINEDIR}/lib/wine/"*.* "${WINEPREFIX}/drive_c/windows/syswow64/" + cp -f "${WINEDIR}/lib64/wine/fakedlls/"*.* "${WINEPREFIX}/drive_c/windows/system32/" + cp -f "${WINEDIR}/lib64/wine/"*.* "${WINEPREFIX}/drive_c/windows/system32/" + PW_STOP_PROGRESS_BAR - PW_START_PROGRESS_BAR_BLOK "Updating prefix... Please wait..." + PW_START_PROGRESS_BAR_BLOCK "Updating prefix... Please wait..." "${PW_RUNTIME}" "${WINELOADER}" wineboot -u PW_STOP_PROGRESS_BAR PW_START_PROGRESS_BAR_CS "Initialization prefix..." fi + if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then + try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" + fi rm -f "${WINEPREFIX}/drive_c/windows/system32"/steam* rm -f "${WINEPREFIX}/drive_c/windows/syswow64"/steam* + + create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/" try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arial.ttf try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Bold.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arialbd.ttf try_copy_file "${WINEDIR}/share/fonts/"LiberationSerif-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"times.ttf try_copy_file "${WINEDIR}/share/fonts/"LiberationMono-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"cour.ttf try_copy_file "${WINEDIR}/share/fonts/"SourceHanSansSCRegular.otf "${WINEPREFIX}/drive_c/windows/Fonts/"msyh.ttf - for wine_build_dll in ntdll mf mf3216 mferror mfmediaengine mfplat mfplay mfreadwrite vulkan-1 ; do #sqmapi msmpeg2vdec msmpeg2adec colorcnv - try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" - try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" - [ "$?" == 0 ] && var_winedlloverride_update "${wine_build_dll}=b" - done var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n" #sed -i '/steamclient/d' "${WINEPREFIX}"/*.reg #sed -i '/SteamPath/d' "${WINEPREFIX}"/*.reg export TOTAL_VRAM=`"${WINELIB}/amd64/usr/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'` echo "TOTAL_VRAM=${TOTAL_VRAM}" - + try_copy_file "${WINEDIR}/lib/wine/dxvk/dxvk_config.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" + try_copy_file "${WINEDIR}/lib64/wine/dxvk/dxvk_config.dll" "${WINEPREFIX}/drive_c/windows/system32/" if [ "${PW_VULKAN_USE}" = "0" ]; then export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}" export GL_NO_DSO_FINALIZER=1 @@ -700,7 +578,6 @@ PW_INIT_PFX () { echo "Use VKD3D-PROTON version ${PW_VKD3D_VER} (DX12 to vulkan)" fi } - PW_SCRIPTS_UPDATE () { if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then echo "1000" > "${PORT_WINE_TMP_PATH}/scripts_ver" @@ -717,8 +594,11 @@ PW_SCRIPTS_UPDATE () { if [ "$?" == "0" ] ; then try_remove_file "${PORT_WINE_TMP_PATH}/scripts.tar.xz" echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" - `zenity --info --title "Info..." --text "${loc_scripts_update}" --no-wrap ` > /dev/null 2>&1 - xdg-open "${PORT_WINE_PATH}/data/changelog" + yad --title="Changelog" --borders=10 \ + --text="Скрипты были успешно обновлены.\nДля продолжения запуска порта нажмите ОК." \ + --text-align=center --text-info --show-uri --wrap --center --width=1200 --height=550 \ + --filename="${PORT_WINE_PATH}/data/changelog" + [ "$?" == 0 ] && /bin/bash -c ${pw_full_command_line[*]} & exit 0 fi fi @@ -755,3 +635,135 @@ PW_RUN () { fi fi } + +cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)" +cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)" +export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" +read "portname" < "${PORT_WINE_TMP_PATH}/portname" && export portname +cd "${PORT_SCRIPTS_PATH}" +. "${PORT_SCRIPTS_PATH}/var" +create_new_dir "${PORT_WINE_TMP_PATH}" +create_new_dir "${HOME}/.PortWINE/tmp" +try_remove_dir "${PORT_SCRIPTS_PATH}/vars" + +if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_loc" ]; then + SET_LANG=`zenity --title "Install $portname" --text "Select the language" --list --radiolist \ + --column="Set:" --column "Language:" \ + TRUE "RUS" \ + FALSE "ENG" ` + echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/${portname}_loc" +fi + +. "${PORT_SCRIPTS_PATH}"/lang + +if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_ver" ]; then + echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver" +fi + +var_winedlloverride_update "winemenubuilder.exe=" +export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${mono_ver}/wine-mono-${mono_ver}-x86.tar.xz" +export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86.tar.xz" +export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86_64.tar.xz" +export urlg="https://portwine-linux.ru/portwine-faq/" +export PW_FTP_URL="https://portwine-linux.ru/ftp" +export WINEDIR="${PORT_WINE_PATH}"/data/dist +export WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}" +export WINEPREFIX="${PORT_WINE_PATH}/data/pfx" +export PW_COMPAT_MEDIA_PATH="${PORT_WINE_TMP_PATH}" +export PW_RUNTIME="$WINELIB/run.sh" +export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui" +export PW_VULKAN_DLL="${HOME}/.PortWINE/vulkan" +export PW_DXVK_VER="${PW_DEF_DXVK_VER}" +export PW_VKD3D_VER="${PW_DEF_VKD3D_VER}" +export install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1` +export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1` + +if [ -z "${INSTALLING_PORT}" ] ; then + if [ ! -e "${WINELIB}/run.sh" ] || [ ! -e "${WINELIB}/usr/bin/yad" ] || [ ! -e "${WINELIB}/amd64/usr/bin/vkcube" ] || [ ! -e "${WINELIB}/amd64/usr/bin/xterm" ] || [ -e "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ] ; then + print_info "Download and install libraries..." + if try_download "https://github.com/Castro-Fidel/PortWINE/releases/download/libs${pw_libs_ver}/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ; then + if unpack_tar_xz "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/" ; then + try_remove_file "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" + else + try_remove_dir "${HOME}/.PortWINE/libs${pw_libs_ver}" + try_remove_file "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" + `zenity --error --title "Error..." --text "Failed to download runtime libraries.\nCheck internet connection and restart PortProton" --no-wrap ` > /dev/null 2>&1 + exit 0 + fi + else + `zenity --error --title "Error..." --text "Failed to download runtime libraries.\nCheck internet connection and restart PortProton" --no-wrap ` > /dev/null 2>&1 + exit 1 + fi + fi + if [ -e "${WINELIB}/run.sh" ]; then + echo "######################################################" + echo "Runtime libraries is enabled" + try_remove_dir "${WINELIB}/pinned_libs_32" + try_remove_dir "${WINELIB}/pinned_libs_64" + export pw_yad="${WINELIB}/usr/bin/yad" + export pw_zstd="${WINELIB}/usr/bin/zstd" + if [ -x "`which xterm 2>/dev/null`" ]; then + export SYS_XTERM=`which xterm` + export PW_XTERM="${SYS_XTERM} -geometry 159x37 -e" + else + export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e" + fi + else + echo "######################################################" + echo "Runtime libraries is disabled" + fi + if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}" ] ; then + echo "######################################################" + print_info "Download and install wine mono..." + if try_download "${url_mono}" "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" ; then + create_new_dir "${HOME}/.PortWINE/mono" + if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" "${HOME}/.PortWINE/mono/" + then try_remove_dir "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}-x86" + fi + try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" + fi + fi + if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" ] ; then + echo "######################################################" + echo "Download and install wine gecko x86..." + if try_download "${url_gecko_x86}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" ; then + create_new_dir "${HOME}/.PortWINE/gecko" + if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" "${HOME}/.PortWINE/gecko/" + then try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" + fi + try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" + fi + fi + if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" ] ; then + echo "######################################################" + echo "Download and install wine gecko x86_64..." + if try_download "${url_gecko_x86_64}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" ; then + create_new_dir "${HOME}/.PortWINE/gecko" + if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" "${HOME}/.PortWINE/gecko/" + then try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" + fi + try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" + fi + fi + create_new_dir "${WINEDIR}/share/wine/" + try_force_link_dir "${HOME}/.PortWINE/gecko" "${WINEDIR}"/share/wine/ + try_force_link_dir "${HOME}/.PortWINE/mono" "${WINEDIR}"/share/wine/ + + if [ ! -z "${portwine_exe}" ]; then + export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi` + export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" + export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'` + fi + if [ ! -z "${PORTWINE_DB}" ]; then + PORTWINE_DB_FILE=`grep -ilw "#${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi` + if [ ! -z "${PORTWINE_DB_FILE}" ]; then + . "${PORTWINE_DB_FILE}" + echo "Use ${PORTWINE_DB_FILE} db file." + else + . "${PORT_SCRIPTS_PATH}/portwine_db/default" + echo "Use default db file." + fi + fi +fi + +[ -z "${INSTALLING_PORT}" ] && PW_UPDATE diff --git a/data_from_portwine/scripts/setup.sh b/data_from_portwine/scripts/setup.sh index 6a6916e..c8fa190 100755 --- a/data_from_portwine/scripts/setup.sh +++ b/data_from_portwine/scripts/setup.sh @@ -16,7 +16,7 @@ try_remove_file "${PORT_WINE_PATH}/restart.desktop" try_remove_dir "${PORT_WINE_PATH}/data/pfx/dosdevices" try_remove_dir "${PORT_WINE_PATH}/Settings" -try_remove_dir "$HOME/.PortWINE" +#try_remove_dir "$HOME/.PortWINE" create_new_dir "/home/${USER}/.local/share/applications" @@ -34,6 +34,7 @@ chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.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" name_desktop="readme" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" @@ -58,7 +59,6 @@ do done chmod u+x "${PORT_SCRIPTS_PATH}/"* -try_remove_dir "${PORT_WINE_PATH}/data/pfx/drive_c/drive_c" try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/" if [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public" ] && [ ! -L "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public" ]; then cp -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public"/* "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser/" @@ -67,9 +67,6 @@ elif [ -L "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public" ]; then rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public" fi ln -s "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public" -if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then - ln -s "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" -fi pw_clear_pfx if [ "${s_install}" = "1" ]; then echo "Installation completed successfully." diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 95d2de3..e8c8926 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -1,5 +1,6 @@ #!/bin/bash # Author: PortWINE-Linux.ru +export pw_full_command_line=("$0" $*) if [ -f "$1" ]; then export portwine_exe="$(readlink -f "$1")" fi @@ -45,22 +46,21 @@ PORTWINE_CREATE_SHORTCUT () { rm -f "${PORTPROTON_PATH}/"*.ico rm -f "${PORTPROTON_PATH}/"*.png fi - if [ $? -eq 1 ] ; then exit 1 ; fi if [ ! -z "${PORTWINE_DB}" ]; then PORTWINE_DB_FILE=`grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*` - if [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "${PW_VULKAN_USE}" ]; then + if [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export PW_VULKAN_USE=" | grep -v "#"`" ] ; then echo "export PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORTWINE_DB_FILE}" elif [ -z "${PORTWINE_DB_FILE}" ]; then - echo "#!/bin/bash - #Author: "${USER}" - #"${PORTWINE_DB}.exe" - #Rating=1-5 - ################################################ - export PW_VULKAN_USE=${PW_VULKAN_USE}" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" - cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + echo "#!/bin/bash" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + echo "#Author: "${USER}"" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + echo "#"${PORTWINE_DB}.exe"" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + echo "#Rating=1-5" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + echo "########################################################" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + echo "export PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" fi fi - name_desktop="${PORTPROTON_NAME}" +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}" ] @@ -167,7 +167,9 @@ PORTWINE_DEBUG () { sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && KILL_PORTWINE deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log" | awk '! a[$0]++') echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log" - xdg-open "${PORT_WINE_PATH}/${portname}.log" + yad --title="${portname}.log" --borders=10 --no-buttons --text-align=center \ + --text-info --show-uri --wrap --center --width=1200 --height=550 \ + --filename="${PORT_WINE_PATH}/${portname}.log" } PW_WINECFG () { START_PORTWINE @@ -213,7 +215,7 @@ if [ ! -z "${portwine_exe}" ]; then --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 &> /dev/null ) + --button='LAUNCH'!!"${loc_launch}":106 ) PW_YAD_SET="$?" elif [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "${PW_VULKAN_USE}" ]; then if [ -z "${PW_COMMENT_DB}" ] ; then @@ -222,21 +224,23 @@ if [ ! -z "${portwine_exe}" ]; then OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --wrap-width=150 --borders=15 --form --center \ --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ - --field="WINE:CB" "DXVK"!"VKD3D"!"OPENGL" \ + --field="Run with :CB" "DXVK (DX 9-11 to Vulkan)"\!"VKD3D (DX 12 to Vulkan)"\!"OPENGL " \ --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 &> /dev/null ) + --button='LAUNCH'!!"${loc_launch}":106 ) PW_YAD_SET="$?" + export VULKAN_MOD=`echo "$OUTPUT_START" | awk '{print $1}'` else OUTPUT_START=$("${pw_yad}" --wrap-width=250 --borders=15 --form --center \ --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ - --field="WINE:CB" "DXVK"!"VKD3D"!"OPENGL" \ + --field="Run with :CB" "DXVK (DX 9-11 to Vulkan)"\!"VKD3D (DX 12 to Vulkan)"\!"OPENGL " \ --button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \ --button='DEBUG'!!"${loc_debug}":102 \ - --button='LAUNCH'!!"${loc_launch}":106 &> /dev/null ) + --button='LAUNCH'!!"${loc_launch}":106 ) PW_YAD_SET="$?" + export VULKAN_MOD=`echo "$OUTPUT_START" | awk '{print $1}'` fi elif [ ! -z "${PORTWINE_DB_FILE}" ]; then PORTWINE_LAUNCH @@ -244,24 +248,37 @@ if [ ! -z "${portwine_exe}" ]; then OUTPUT_START=$("${pw_yad}" --wrap-width=250 --borders=15 --form --center \ --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ - --field="WINE:CB" "DXVK"!"VKD3D"!"OPENGL" \ + --field="Run with :CB" "DXVK (DX 9-11 to Vulkan)"\!"VKD3D (DX 12 to Vulkan)"\!"OPENGL " \ --button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \ --button='DEBUG'!!"${loc_debug}":102 \ - --button='LAUNCH'!!"${loc_launch}":106 &> /dev/null ) + --button='LAUNCH'!!"${loc_launch}":106 ) PW_YAD_SET="$?" + export VULKAN_MOD=`echo "$OUTPUT_START" | awk '{print $1}'` fi else button_click () { - echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form" + [ ! -z "$1" ] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form" if [ ! -z `pidof -s yad` ] ; then kill -s SIGUSR1 `pgrep -a yad | grep "\-\-key=${KEY} \-\-notebook" | awk '{print $1}'` fi } export -f button_click - export KEY=$RANDOM + open_changelog () { + yad --title="Changelog" --borders=10 --no-buttons --text-align=center \ + --text-info --show-uri --wrap --center --width=1200 --height=550 \ + --filename="${PORT_WINE_PATH}/data/changelog" + } + export -f open_changelog + + export KEY=$RANDOM "${pw_yad}" --plug=$KEY --tabnum=2 --form --columns=2 --scroll \ - --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png":"BTN" '@bash -c "button_click PW_WGC"' & \ + --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png":"BTN" '@bash -c "button_click PW_WGC"' \ + --field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png":"BTN" '@bash -c "button_click PW_BATTLE_NET"' \ + --field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png":"BTN" '@bash -c "button_click PW_EPIC"' \ + --field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png":"BTN" '@bash -c "button_click PW_GOG"' \ + --field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png":"BTN" '@bash -c "button_click PW_EVE"' \ + --field=" Origin Launcher"!"$PW_GUI_ICON_PATH/origin.png":"BTN" '@bash -c "button_click PW_ORIGIN"' & \ "${pw_yad}" --plug=${KEY} --tabnum=1 --columns=3 --form --separator=";" \ --image "$PW_GUI_ICON_PATH/port_proton.png" \ @@ -269,33 +286,36 @@ else --field=":LBL" "" \ --field='DEBUG'!!"${loc_debug}":"BTN" '@bash -c "button_click DEBUG"' \ --field='WINECFG'!!"${loc_winecfg}":"BTN" '@bash -c "button_click WINECFG"' \ - --field=":RO" " ${portname} ver.: ${install_ver}" \ + --field="${portname}-${install_ver} (${scripts_install_ver})"!!"":"FBTN" '@bash -c "open_changelog"' \ --field=":LBL" "" \ --field='WINEFILE'!!"${loc_winefile}":"BTN" '@bash -c "button_click WINEFILE"' \ --field='WINECMD'!!"${loc_winecmd}":"BTN" '@bash -c "button_click WINECMD"' \ - --field=":RO" " Scripts ver.: ${scripts_install_ver}" \ + --field="F.A.Q."!!"":"FBTN" '@bash -c "xdg-open https://portwine-linux.ru/portwine-faq/ ; button_click"' \ --field=":LBL" "" \ --field='WINEREG'!!"${loc_winereg}":"BTN" '@bash -c "button_click WINEREG"' \ --field='WINETRICKS'!!"${loc_winetricks}":"BTN" '@bash -c "button_click WINETRICKS"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & \ - "${pw_yad}" --key=$KEY --notebook --borders=10 --width=800 --height=50 --no-buttons --text-align=center \ - --on-top --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "$portname" --separator=";" \ + "${pw_yad}" --key=$KEY --notebook --borders=10 --width=1000 --height=168 --no-buttons --text-align=center \ + --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "$portname" --separator=";" \ --tab-pos=right --tab="PORT_PROTON" --tab="AUTOINSTALL" --center - export PW_YAD_SET=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form" | head -n 1 | awk '{print $1}'` - try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form" - echo "PW_YAD_SET=${PW_YAD_SET}" - export OUTPUT_START=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk '{print $1}'` - try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" - echo "OUTPUT_START=$OUTPUT_START" + if [ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form" ] ; then + export PW_YAD_SET=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form" | head -n 1 | awk '{print $1}'` + try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form" + fi + if [ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" ] ; then + export VULKAN_MOD=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk '{print $1}'` + try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" + fi fi - -export VULKAN_MOD=$(echo $OUTPUT_START | awk 'BEGIN {FS=";" } { print $1 }') -if [ "${VULKAN_MOD}" = "DXVK" ] ; then export PW_VULKAN_USE="dxvk" -elif [ "${VULKAN_MOD}" = "VKD3D" ]; then export PW_VULKAN_USE="vkd3d" -elif [ "${VULKAN_MOD}" = "OPENGL" ]; then export PW_VULKAN_USE="0" +if [ ! -z "${VULKAN_MOD}" ] ; then + if [ "${VULKAN_MOD}" = "DXVK" ] ; then export PW_VULKAN_USE="dxvk" + elif [ "${VULKAN_MOD}" = "VKD3D" ]; then export PW_VULKAN_USE="vkd3d" + elif [ "${VULKAN_MOD}" = "OPENGL" ]; then export PW_VULKAN_USE="0" + fi fi case "$PW_YAD_SET" in + 1|252) exit 0 ;; 100) PORTWINE_CREATE_SHORTCUT ;; DEBUG|102) PORTWINE_DEBUG ;; 106) PORTWINE_LAUNCH ;; diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index f6a5eca..47463a8 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -8,7 +8,7 @@ export PW_FORCE_DISABLED_GAMEMOD=0 export PW_DEF_DXVK_VER=1.8.1 -export PW_DEF_VKD3D_VER=2.3 +export PW_DEF_VKD3D_VER=2.3.1 export PW_FORCE_USE_VSYNC=2 export PW_LOG=0 @@ -35,3 +35,11 @@ ADD_IN_STOP_PORTWINE () { echo " " } +######################################################################## +OTHER_FIXES () { + #fix after installation Origin, for disabled OriginWebHelperService by default + if [ ! -z `cat "${WINEPREFIX}/system.reg" | grep Origin.exe | head -n 1 | awk '{print $1}'` ] ; then + sysreg_norig=$(((`cat -n "${WINEPREFIX}/system.reg" | grep OriginWebHelperService | awk '{print $1}'` + 3))) + sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${WINEPREFIX}/system.reg" + fi +}