forked from CastroFidel/PortWINE
		
	###Scripts version 2000###
This commit is contained in:
		| @@ -1,99 +1,86 @@ | ||||
| #!/bin/bash | ||||
| # Author: Castro-Fidel (PortWINE-Linux.ru) | ||||
| ######################################################################## | ||||
| KILL_PORTWINE | ||||
| kill_portwine | ||||
| sleep 3 | ||||
| export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp" | ||||
| export PW_FORCE_LARGE_ADDRESS_AWARE=0 | ||||
| export PW_USE_GAMEMODE=0 | ||||
| export PW_CHECK_AUTOINSTAL=1 | ||||
| export PW_GUI_DISABLED_CS=1 | ||||
| export PW_WINEDBG_DISABLE=1 | ||||
| export PW_NO_WRITE_WATCH=0 | ||||
| export PW_VULKAN_USE=0 | ||||
| unset PW_WINE_VER | ||||
| export PW_WINE_USE=proton_steam | ||||
| export PW_NO_FSYNC=1 | ||||
| export PW_NO_ESYNC=1 | ||||
| unset PORTWINE_CREATE_SHORTCUT_NAME | ||||
|  | ||||
| pw_kill_autostart () { | ||||
|     if [ "$PW_USE_RUNTIME" != 1 ] | ||||
|     then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`" | ||||
|     else | ||||
|         sleep 10 | ||||
|         while true ; do | ||||
|             if  [ -z `pgrep "$1" | head -n 1` ] && [ ! -z `pgrep wrap | head -n 1` ]; then | ||||
|                 echo -e "PID "$1" not found" | ||||
|                 sleep 1 | ||||
|             else | ||||
|                 KILL_PORTWINE | ||||
|                 break | ||||
|             fi | ||||
|         done | ||||
|     fi | ||||
| } | ||||
| export PW_DISABLED_CREAT_DB=1 | ||||
|  | ||||
| PW_WGC () { | ||||
|     export LAUNCH_PARAMETERS=("/VERYSILENT") | ||||
|     [ "${update_loc}" = "RUS" ] && export WGC_LOC=RU || export WGC_LOC=EU | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     if try_download "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}" | ||||
|     then | ||||
|         PW_START_PROGRESS_BAR_BLOCK "Starting WGC installation..." | ||||
|         pw_start_progress_bar_block "Starting WGC installation..." | ||||
|         pw_kill_autostart wgc.exe & | ||||
|         PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
|         pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|         portwine_exe="$WINEPREFIX/drive_c/ProgramData/Wargaming.net/GameCenter/wgc_api/wgc_api.exe" | ||||
|         export PORTWINE_CREATE_SHORTCUT_NAME="Wargaming Game Center" | ||||
|         try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|         KILL_PORTWINE | ||||
|         PORTWINE_CREATE_SHORTCUT | ||||
|         kill_portwine | ||||
|         portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_ORIGIN () { | ||||
|     export LAUNCH_PARAMETERS=("/silent" ) | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe" | ||||
|     START_PORTWINE | ||||
|     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_start_progress_bar_block "Installing the Origin. Please wait..." | ||||
|         pw_kill_autostart Origin.exe & | ||||
|         PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
|         pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|         portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe" | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         pw_stop_progress_bar | ||||
|         try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|         KILL_PORTWINE | ||||
|         PORTWINE_CREATE_SHORTCUT | ||||
|         kill_portwine | ||||
|         portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     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 | ||||
|     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_kill_autostart Battle.net.exe & | ||||
|         PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
|         pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|         portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"` | ||||
|         PW_STOP_PROGRESS | ||||
|         PORTWINE_CREATE_SHORTCUT | ||||
|         portwine_create_shortcut | ||||
|         try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_EPIC () { | ||||
|     export LAUNCH_PARAMETERS=("/q" ) | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi" | ||||
|     START_PORTWINE | ||||
|     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_start_progress_bar_block "Installing Epic Games Launcher. Please wait..." | ||||
|         pw_kill_autostart EpicGamesLauncher.exe & | ||||
|         PW_RUN msiexec /i "${PW_AUTOINSTALL_EXE}" & | ||||
|         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` ] || [ ! -z `pgrep -a wrap | grep ${portname} | head -n 1` ] | ||||
| @@ -104,39 +91,39 @@ PW_EPIC () { | ||||
|         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 | ||||
|         kill_portwine | ||||
|         pw_stop_progress_bar | ||||
|         portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_GOG () { | ||||
|     export LAUNCH_PARAMETERS=("/VERYSILENT") | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_2.0.37.384.exe" | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.37.384/setup_galaxy_2.0.37.384.exe" "${PW_AUTOINSTALL_EXE}" | ||||
|     then | ||||
|         PW_START_PROGRESS_BAR_BLOCK "Installing the GOG Galaxy. Please wait..." | ||||
|         pw_start_progress_bar_block "Installing the GOG Galaxy. Please wait..." | ||||
|         pw_kill_autostart GalaxyClient.* & | ||||
|         PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
|         pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|         portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/GOG Galaxy/GalaxyClient.exe" | ||||
|         try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|         KILL_PORTWINE | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         PORTWINE_CREATE_SHORTCUT | ||||
|         kill_portwine | ||||
|         pw_stop_progress_bar | ||||
|         portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_EVE () { | ||||
|     export PW_WINDOWS_VER=10 | ||||
|     export PW_DLL_INSTALL="vcrun2017" | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EveLauncher-1892908.exe" | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     if try_download "https://binaries.eveonline.com/EveLauncher-1892908.exe" "${PW_AUTOINSTALL_EXE}" | ||||
|     then | ||||
|         PW_START_PROGRESS_BAR_BLOCK "Installing the EVE Launcher. Please wait..." | ||||
|         pw_start_progress_bar_block "Installing the EVE Launcher. Please wait..." | ||||
|         if [ ! -f "$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe" ] ; then | ||||
|             try_remove_dir "$WINEPREFIX/drive_c/Games/EVE Online" | ||||
|             dd if="${PW_AUTOINSTALL_EXE}" of="${PW_AUTOINSTALL_EXE}".7z bs=1M skip=31646603 count=196171208 iflag=skip_bytes,count_bytes | ||||
| @@ -145,50 +132,50 @@ PW_EVE () { | ||||
|             try_remove_file "${PW_AUTOINSTALL_EXE}".7z | ||||
|         fi | ||||
|         portwine_exe="$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe" | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         PORTWINE_CREATE_SHORTCUT | ||||
|         pw_stop_progress_bar | ||||
|         portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_UBC () { | ||||
| 	export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher") | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe" | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     if try_download "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}" | ||||
|     then | ||||
| 		PW_START_PROGRESS_BAR_CS "Installing the Ubisoft Connect. Please wait..." | ||||
| 		pw_start_progress_bar_cs "Installing the Ubisoft Connect. Please wait..." | ||||
|         pw_kill_autostart UbisoftConnect.exe & | ||||
| 		PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
| 		pw_run "${PW_AUTOINSTALL_EXE}" | ||||
| 		portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Ubisoft Game Launcher/UbisoftConnect.exe" | ||||
| 		try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
| 		KILL_PORTWINE | ||||
| 		PW_STOP_PROGRESS_BAR | ||||
| 		PORTWINE_CREATE_SHORTCUT | ||||
| 		kill_portwine | ||||
| 		pw_stop_progress_bar | ||||
| 		portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_STEAM () { | ||||
| 	export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam") | ||||
|     export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe" | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     if try_download "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}" | ||||
|     then | ||||
| 		PW_START_PROGRESS_BAR_CS "Installing the Steam. Please wait..." | ||||
| 		pw_start_progress_bar_cs "Installing the Steam. Please wait..." | ||||
|         pw_kill_autostart steam.exe & | ||||
| 		PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
| 		pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|         if [ -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" ] | ||||
|         then mv -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" "$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe" | ||||
|         fi | ||||
| 		portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe" | ||||
| 		try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
| 		KILL_PORTWINE | ||||
| 		PW_STOP_PROGRESS_BAR | ||||
| 		kill_portwine | ||||
| 		pw_stop_progress_bar | ||||
|         export PORTWINE_CREATE_SHORTCUT_NAME="STEAM_PP" | ||||
| 		PORTWINE_CREATE_SHORTCUT | ||||
| 		portwine_create_shortcut | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
|  | ||||
| PW_OSU () { | ||||
| @@ -196,18 +183,18 @@ PW_OSU () { | ||||
|     export PW_DLL_INSTALL="dotnet40" | ||||
|     mkdir -p "${WINEPREFIX}/drive_c/Program Files (x86)/OSU/" | ||||
|     export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.exe" | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     if try_download "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}" | ||||
|     then | ||||
|         PW_START_PROGRESS_BAR_BLOCK "Installing the OSU!. Please wait..." | ||||
|         pw_start_progress_bar_block "Installing the OSU!. Please wait..." | ||||
|         if  [ -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" ]; then | ||||
|             mv -f  "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!.exe" | ||||
|         fi | ||||
|         portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/OSU/osu!.exe" | ||||
|         PORTWINE_CREATE_SHORTCUT | ||||
| 		PW_RUN "${PW_AUTOINSTALL_EXE}" | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         KILL_PORTWINE | ||||
|         portwine_create_shortcut | ||||
| 		pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|         pw_stop_progress_bar | ||||
|         kill_portwine | ||||
|     fi | ||||
|     STOP_PORTWINE | ||||
|     stop_portwine | ||||
| } | ||||
							
								
								
									
										633
									
								
								data_from_portwine/scripts/functions_helper
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										633
									
								
								data_from_portwine/scripts/functions_helper
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,633 @@ | ||||
| #!/bin/bash | ||||
| # Author: Castro-Fidel (PortWINE-Linux.ru) | ||||
| ######################################################################## | ||||
| pw_ping_test () { | ||||
|     ping -w3 -c1 github.com &> /dev/null | ||||
|     [ "$?" == "0" ] && return 0 || return 1 | ||||
| } | ||||
|  | ||||
| print_error () { | ||||
|     echo "ERROR: $@" | ||||
| } | ||||
|  | ||||
| print_info () { | ||||
|     echo "INFO: $@" | ||||
| } | ||||
|  | ||||
| print_var () { | ||||
|     for vp in $@ ; do echo "${vp}=${!vp}" ; done | ||||
| } | ||||
|  | ||||
| try_copy_file () { | ||||
|     if [ ! -f "$1" ] ; then	print_info "file $1 not found for copy" && return 1 | ||||
|     elif [ -z "$2" ] ; then	print_error "no way to copy file $1" && return 1 | ||||
|     else | ||||
|         cp -f "$1" "$2" | ||||
|         if [ "$?" != 0 ] | ||||
|         then print_error "failed to copy file $1 to $2" || return 1 | ||||
|         else print_info "copy file $1 to $2 was successful" || return 0 | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| try_copy_dir () { | ||||
|     if [ ! -d "$1" ] ; then	print_info "directory $1 not found for copy" | ||||
|     elif [ -z "$2" ] ; then	print_error "no way to copy directory $1" | ||||
|     else | ||||
|         cp -fr "$1" "$2" | ||||
|         [ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| try_remove_file () { | ||||
|     if [ -f "$1" ] ; then | ||||
|         rm -f "$1" | ||||
|         [ "$?" != 0 ] && print_error "failed to remove file $1" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| try_remove_dir () { | ||||
|     if [ -d "$1" ] ; then | ||||
|         rm -fr "$1" | ||||
|         [ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| try_force_link_file () { | ||||
|     if [ ! -f "$1" ] ; then	print_info "file $1 not found for link" | ||||
|     elif [ -z "$2" ] ; then	print_error "no way to link file $1" | ||||
|     else | ||||
|         ln -sf "$1" "$2" | ||||
|         [ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| 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" | ||||
|     else | ||||
|         ln -sf "$1" "$2" | ||||
|         [ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| try_download () { | ||||
|     set -o pipefail | ||||
|     wget -c -t 5 -T 2 "$1" --output-document="$2" 2>&1 | \ | ||||
|     sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; 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 | ||||
| } | ||||
|  | ||||
| try_download_silent () { | ||||
|     wget -c -t 5 -T 2 "$1" --output-document="$2" | ||||
|     [ "$?" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0 | ||||
| } | ||||
|  | ||||
| zenity_error_download () { | ||||
|     `zenity --error --title "Error..." --text "You will need to check internet connettion,\nand press OK for repeet download" --no-wrap ` > /dev/null 2>&1 | ||||
| } | ||||
|  | ||||
| create_new_dir () { | ||||
|     if [ ! -d "$1" ] ; then | ||||
|         mkdir -p "$1" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| var_winedlloverride_update () { | ||||
|     if [ ! -z "${WINEDLLOVERRIDES}" ] | ||||
|     then export WINEDLLOVERRIDES="${1};${WINEDLLOVERRIDES}" | ||||
|     else export WINEDLLOVERRIDES="${1}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| var_vkd3d_config_update () { | ||||
|     if [ ! -z "${VKD3D_CONFIG}" ] | ||||
|     then export VKD3D_CONFIG="${1};${VKD3D_CONFIG}" | ||||
|     else export VKD3D_CONFIG="${1}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| unpack_tar_xz () { | ||||
|     set -o pipefail | ||||
|     tar -Jxvf "$1" -C "$2" | sszen | ||||
|     [ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0 | ||||
| } | ||||
|  | ||||
| unpack_tar_gz () { | ||||
|     set -o pipefail | ||||
|     tar -xzvf "$1" -C "$2" | sszen | ||||
|     [ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0 | ||||
| } | ||||
|  | ||||
| pw_mangohud_check () { | ||||
|     export RUN_MANGOHUD="" | ||||
|     if [ "${PW_MANGOHUD}" == "1" ] ; then | ||||
|         if [ "${PW_VULKAN_USE}" = "0" ] | ||||
|         then export RUN_MANGOHUD="mangohud --dlsym" | ||||
|         else export RUN_MANGOHUD="mangohud" | ||||
|         fi | ||||
|     else | ||||
|         export DISABLE_MANGOHUD=1 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_vkbasalt_check () { | ||||
|     if [ ! -z "${ENABLE_VKBASALT}" ] && [ "${ENABLE_VKBASALT}" == 1 ] ; then | ||||
|         if [ -z "${PW_VKBASALT_EFFECTS}" ] ; then | ||||
|             export PW_VKBASALT_EFFECTS="FakeHDR:cas"  | ||||
|         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" | ||||
|     else  | ||||
|         export DISABLE_VKBASALT=1 | ||||
|     fi | ||||
|  | ||||
| }  | ||||
|  | ||||
| gui_question () { | ||||
|     `zenity --question --title "${inst_set}." --text "$1" --no-wrap ` &> /dev/null | ||||
|      [ $? -eq "0" ] && return 0 || return 1 | ||||
| } | ||||
|  | ||||
| pw_clear_pfx () { | ||||
|     try_remove_file "${WINEPREFIX}/system.reg" | ||||
|     try_remove_file "${WINEPREFIX}/user.reg" | ||||
|     try_remove_file "${WINEPREFIX}/userdef.reg" | ||||
|     try_remove_file "${WINEPREFIX}/winetricks.log" | ||||
|     try_remove_file "${WINEPREFIX}/.update-timestamp" | ||||
|     try_remove_file "${WINEPREFIX}/drive_c/.windows-serial" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/windows/" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Setup" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Windows" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/WindowsTask" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Package Cache" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Temporary Internet Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/wine_gecko" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Temporary Internet Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/wine_gecko" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Internet Explorer" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows Media Player" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows NT" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Common Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Internet Explorer" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Common Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows Media Player" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows NT" | ||||
|     try_remove_dir "${PORT_WINE_TMP_PATH}/mesa_shader_cache" | ||||
|     rm -f "${PORT_WINE_TMP_PATH}"/*.bin | ||||
|     rm -f "${PORT_WINE_TMP_PATH}"/*.foz | ||||
| } | ||||
|  | ||||
| check_user_conf () { | ||||
|     if [ ! -f "${USER_CONF}" ]; then | ||||
|         echo "#!/bin/bash" > "${USER_CONF}" | ||||
|         echo "# User overides db and var settings..." >> "${USER_CONF}" | ||||
|         chmod u+x "${USER_CONF}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| init_wine_ver () { | ||||
|     if [ ! -z "${PW_WINE_VER}" ] && [ `echo "${PW_WINE_VER}" | grep "PROTON_GE"` ]  | ||||
|     then export PW_WINE_USE=proton_ge | ||||
|     elif [ ! -z "${PW_WINE_VER}" ] && [ `echo "${PW_WINE_VER}" | grep "PROTON_STEAM"` ]  | ||||
|     then export PW_WINE_USE=proton_steam | ||||
|     fi | ||||
|     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" | ||||
|     export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" | ||||
|  | ||||
|     if [ ! -z ${LD_LIBRARY_PATH_TMP} ] | ||||
|     then export LD_LIBRARY_PATH="${LD_LIBRARY_PATH_TMP}" | ||||
|     else export LD_LIBRARY_PATH_TMP=${LD_LIBRARY_PATH} | ||||
|     fi | ||||
|     if [ ! -z "${LD_LIBRARY_PATH}" ] | ||||
|     then export LD_LIBRARY_PATH="${WINEDIR}/lib64/:${WINEDIR}/lib/:${LD_LIBRARY_PATH}" | ||||
|     else export LD_LIBRARY_PATH="${WINEDIR}/lib64/:${WINEDIR}/lib/" | ||||
|     fi | ||||
|     if [ ! -z ${PATH_TMP} ] | ||||
|     then export PATH="${PATH_TMP}" | ||||
|     else export PATH_TMP="${PATH}" | ||||
|     fi | ||||
|     if [ ! -z "${PATH}" ] | ||||
|     then export PATH="${WINEDIR}/bin:${PATH}" | ||||
|     else export PATH="${WINEDIR}/bin" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| cabextract_fix () { | ||||
|     [ ! -f "${WINEDIR}/bin/cabextract" ] && try_copy_file "${PW_WINELIB}/runtime/bin/cabextract" "${WINEDIR}/bin/cabextract" | ||||
|     [ ! -f "${WINEDIR}/lib64/libmspack.so.0" ] && try_copy_file "${PW_WINELIB}/runtime/lib/x86_64-linux-gnu/libmspack.so.0" "${WINEDIR}/lib64/libmspack.so.0" | ||||
|     [ ! -f "${WINEDIR}/lib64/libmspack.so.0.1.0" ] && try_copy_file "${WINEDIR}/lib64/libmspack.so.0" "${WINEDIR}/lib64/libmspack.so.0.1.0" | ||||
| } | ||||
|  | ||||
| sszen() { | ||||
|     zenity --progress --title="Settings..." --text="Updating parameters" --pulsate --auto-close --width=500 --height=90 --no-cancel | ||||
| } | ||||
|  | ||||
| pw_start_progress_bar_cs () { | ||||
|     "${pw_yad}" --progress --progress-text="$@" --pulsate --close-on-unfocus \ | ||||
|     --no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 & | ||||
|     echo "" | ||||
| } | ||||
|  | ||||
| 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 -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` &> /dev/null | ||||
|     done | ||||
| } | ||||
|  | ||||
| pw_download_libs () { | ||||
|     if [ ! -e "${PW_WINELIB}/runtime/bin/yad" ] || [ ! -e "${PW_WINELIB}/runtime/lib/p7zip/7z" ] \ | ||||
|     || [ ! -e "${PW_WINELIB}/runtime/bin/vkcube" ] || [ ! -e "${PW_WINELIB}/runtime/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 install runtime libraries.\nCheck internet connection and press OK" \ | ||||
|                 --no-wrap ` > /dev/null 2>&1 && pw_download_libs | ||||
|             fi | ||||
|         else | ||||
|             `zenity --error --title "Error..." \ | ||||
|             --text "Failed to download runtime libraries.\nCheck internet connection and press OK" \ | ||||
|             --no-wrap ` > /dev/null 2>&1 && pw_download_libs | ||||
|         fi | ||||
|     fi | ||||
|     export pw_yad="${PW_WINELIB}/runtime/bin/yad" | ||||
|     export pw_yad_new="${PW_WINELIB}/runtime/bin/yad_new" | ||||
|     export pw_zstd="${PW_WINELIB}/runtime/bin/zstd" | ||||
|     export pw_7z="${PW_WINELIB}/runtime/lib/p7zip/7z" | ||||
|     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="${PW_WINELIB}/runtime/bin/xterm -geometry 159x37 -e" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_download_mono () { | ||||
|     if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${PW_MONO_VER}" ] ; then | ||||
|         export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${PW_MONO_VER}/wine-mono-${PW_MONO_VER}-x86.tar.xz" | ||||
|         echo "######################################################" | ||||
|         print_info "Download and install wine mono..." | ||||
|         if try_download "${url_mono}" "${HOME}/.PortWINE/tmp/wine-mono-${PW_MONO_VER}-x86.tar.xz" ; then | ||||
|             create_new_dir "${HOME}/.PortWINE/mono" | ||||
|             if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-mono-${PW_MONO_VER}-x86.tar.xz" "${HOME}/.PortWINE/mono/" | ||||
|             then | ||||
|                 try_remove_dir "${HOME}/.PortWINE/mono/wine-mono-${PW_MONO_VER}-x86" | ||||
|                 zenity_error_download && pw_download_mono | ||||
|             fi | ||||
|             try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${PW_MONO_VER}-x86.tar.xz" | ||||
|         else | ||||
|             zenity_error_download && pw_download_mono | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_download_gecko () { | ||||
|     if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86" ] ; then | ||||
|         export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${PW_GECKO_VER}/wine-gecko-${PW_GECKO_VER}-x86.tar.xz" | ||||
|         echo "######################################################" | ||||
|         echo "Download and install wine gecko x86..." | ||||
|         if try_download "${url_gecko_x86}" "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86.tar.xz" ; then | ||||
|             create_new_dir "${HOME}/.PortWINE/gecko" | ||||
|             if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86.tar.xz" "${HOME}/.PortWINE/gecko/" | ||||
|             then | ||||
|                 try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86" | ||||
|                 zenity_error_download && pw_download_gecko | ||||
|             fi | ||||
|             try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86.tar.xz" | ||||
|         else | ||||
|             zenity_error_download && pw_download_gecko | ||||
|         fi | ||||
|     fi | ||||
|     if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86_64" ] ; then | ||||
|         export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${PW_GECKO_VER}/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz" | ||||
|         echo "######################################################" | ||||
|         echo "Download and install wine gecko x86_64..." | ||||
|         if try_download "${url_gecko_x86_64}" "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz" ; then | ||||
|             create_new_dir "${HOME}/.PortWINE/gecko" | ||||
|             if ! unpack_tar_xz "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz" "${HOME}/.PortWINE/gecko/" | ||||
|             then | ||||
|                 try_remove_dir "${HOME}/.PortWINE/gecko/wine-gecko-${PW_GECKO_VER}-x86_64" | ||||
|                 zenity_error_download && pw_download_gecko | ||||
|             fi | ||||
|             try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${PW_GECKO_VER}-x86_64.tar.xz" | ||||
|         else | ||||
|             zenity_error_download && pw_download_gecko | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| update_winetricks () { | ||||
|     W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks" | ||||
|     W_TRX_EXT_VER="$(curl -s --list-only ${W_TRX_URL} | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" | ||||
|     print_info "Version winetricks on server: ${W_TRX_EXT_VER}" | ||||
|     W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" | ||||
|     print_info "Version winetricks in port: ${W_TRX_INT_VER}" | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/winetricks" ] && [ ! -z "$W_TRX_EXT_VER" ] || [ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" ] && [ ! -z "$W_TRX_EXT_VER" ]; then | ||||
|         if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then | ||||
|             mv -f "${PORT_WINE_TMP_PATH}/winetricks_new" "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|             W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" && print_info "Winetricks version in port has been updated (${W_TRX_INT_VER})"  | ||||
|             chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|         fi | ||||
|     fi | ||||
|     if  [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then | ||||
|         sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|         sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|     fi | ||||
| } | ||||
| wait_wineserver () { | ||||
|     sleep 3 | ||||
|     while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do | ||||
|         sleep 1 | ||||
|     done | ||||
| } | ||||
|  | ||||
| kill_portwine () { | ||||
|     wine_pids=`ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader| ' | awk -F/ '{print $3}'` | ||||
|     if  [ ! -z "${wine_pids}" ] ; then | ||||
|         for pw_kill_pids in ${wine_pids} ; do | ||||
|             if [ "`ps cax | grep ${pw_kill_pids}`" ] ; then | ||||
|                 kill -n 9 ${pw_kill_pids} | ||||
|             fi | ||||
|         done | ||||
|     fi | ||||
|     if [ ! -z `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'` ] ; then | ||||
|         kill -n 9 `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'` | ||||
|     fi | ||||
| } | ||||
| export -f kill_portwine | ||||
|  | ||||
| stop_portwine () { | ||||
|     wait_wineserver | ||||
|     add_in_stop_portwine | ||||
|     if [ "$int_xneur" = "1"  ]; then | ||||
|         xneur & | ||||
|     fi | ||||
|     if [ ! -z ${PW_XKBD} ]; then | ||||
|         setxkbmap ${PW_XKBD} | ||||
|     fi | ||||
|     pw_stop_progress_bar | ||||
|     try_remove_file "${PORT_SCRIPTS_PATH}/0" | ||||
|     try_remove_file "${PORT_SCRIPTS_PATH}/1" | ||||
|     kill_portwine | ||||
|     if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ]  | ||||
|     then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" | ||||
|     fi | ||||
|     if [  ! -z "`ls "${WINEPREFIX}"/drive_c/users/steamuser/Temp/ | head -n 1`" ]  | ||||
|     then  | ||||
|         chmod -R 755 "${WINEPREFIX}"/drive_c/users/steamuser/Temp/ | ||||
|         rm -fr "${WINEPREFIX}"/drive_c/users/steamuser/Temp/* | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_tray_icon () { | ||||
|     if [ -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then | ||||
|         tray_icon_click() { | ||||
|             echo "" | ||||
|         } | ||||
|         export -f tray_icon_click | ||||
|         tray_icon_click_exit() { | ||||
|             kill_portwine | ||||
|             if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ]  | ||||
|             then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" | ||||
|             fi | ||||
|             killall start.sh | ||||
|         } | ||||
|         export -f tray_icon_click_exit | ||||
|  | ||||
|         "${pw_yad_new}" --notification --no-middle --text="PortProton" \ | ||||
|         --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ | ||||
|         --image="$PW_GUI_ICON_PATH/port_proton.png" \ | ||||
|         --command="bash -c tray_icon_click" \ | ||||
|         --tooltip="PortProton" \ | ||||
|         --menu="| \ | ||||
| <<< 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"|" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_init_db () { | ||||
|     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 | ||||
|     init_wine_ver | ||||
| } | ||||
|  | ||||
| pw_update_notifier () { | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then | ||||
|         echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver" | ||||
|     fi | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/update_notifier" ] ; then | ||||
|         echo "1" > "${PORT_WINE_TMP_PATH}/update_notifier" | ||||
|     fi | ||||
|     read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier" | ||||
|     if [ "${update_not}" = "1" ] ; then | ||||
|         if try_download_silent "${PW_FTP_URL}/current_version/${portname}_ver" "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" ; then | ||||
|             read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" | ||||
|             try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" | ||||
|             if  [ ! -z "${current_ver}" ] && [ "${current_ver}" -gt "${install_ver}" ] ; then | ||||
|                 xsd=`zenity --title  "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=230 --column="${inst_set}" --column "${port_upd3}" \ | ||||
|                 TRUE "${port_upd4}" \ | ||||
|                 FALSE "${port_upd5}" \ | ||||
|                 FALSE "${port_upd6}" ` | ||||
|                 case $xsd in | ||||
|                     "${port_upd4}") | ||||
|                         kill_portwine | ||||
|                         xdg-open $PORTWINE_URL | ||||
|                         exit 0 ;; | ||||
|                     "${port_upd5}") | ||||
|                         echo " " ;; | ||||
|                     "${port_upd6}") | ||||
|                     echo "0" > "${PORT_WINE_TMP_PATH}/update_notifier" ;; | ||||
|                 esac | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
|     if [ ! -f "${HOME}/.config/.PortTime" ] ; then | ||||
|         echo "10" > "${HOME}/.config/.PortTime" | ||||
|     fi | ||||
|     read "port_time" < "${HOME}/.config/.PortTime" | ||||
|     if [ "${port_time}" -gt "1" ] ; then | ||||
|         port_time=$((${port_time}-1)) | ||||
|         echo "${port_time}" > "${HOME}/.config/.PortTime" | ||||
|     else | ||||
|         xsd2=`zenity --title  "${port_time1}" --text "${port_time2}" --list --radiolist --height=230 --column="${inst_set3}" --column "${port_time3}" \ | ||||
|         TRUE "${port_time4}" \ | ||||
|         FALSE "${port_time5}" \ | ||||
|         FALSE "${port_time6}" ` | ||||
|         if [ $? = 1 ] ; then | ||||
|             echo "1" > "${HOME}/.config/.PortTime" | ||||
|         else | ||||
|             case $xsd2 in | ||||
|                 "${port_time4}") | ||||
|                     xdg-open "$urlg" & | ||||
|                     echo "300" > "${HOME}/.config/.PortTime" | ||||
|                     exit 0 ;; | ||||
|                 "${port_time5}") | ||||
|                     echo "75" > "${HOME}/.config/.PortTime" ;; | ||||
|                 "${port_time6}") | ||||
|                     echo "150" > "${HOME}/.config/.PortTime" ;; | ||||
|             esac | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_scripts_update () { | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then | ||||
|         echo "2000" > "${PORT_WINE_TMP_PATH}/scripts_ver" | ||||
|     fi | ||||
|     export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1` | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ] ; then | ||||
|             echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" | ||||
|     fi | ||||
|     read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier" | ||||
|     if [ "${scripts_update_not}" = "1" ] ; then | ||||
|         if try_download_silent "https://github.com/Castro-Fidel/PortWINE/raw/master/data_from_portwine/scripts/var" "${PORT_WINE_TMP_PATH}/scripts_cur_ver" ; then          | ||||
|             export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_cur_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'` | ||||
|             try_remove_file "${PORT_WINE_TMP_PATH}/scripts_cur_ver" | ||||
|             echo "Scripts version in github = ${scripts_current_ver}" | ||||
|             echo "Scripts version local = ${scripts_install_ver}" | ||||
|             if [ ! -z "${scripts_current_ver}" ] && [ "${scripts_current_ver}" -gt "${scripts_install_ver}" ] ; then | ||||
|                 xcsd=`zenity --title  "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=230 --column="${inst_set}" --column "${scripts_upd3}" \ | ||||
|                 TRUE "${scripts_upd4}" \ | ||||
|                 FALSE "${scripts_upd5}" \ | ||||
|                 FALSE "${scripts_upd6}"` | ||||
|                 case $xcsd in | ||||
|                     "${scripts_upd4}") | ||||
|                         echo "######################################################" | ||||
|                         echo "Update scripts..." | ||||
|                         try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" | ||||
|                         if try_download "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then | ||||
|                             tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}"  | ||||
|                             if [ "$?" == "0" ] ; then | ||||
|                                 cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/" | ||||
|                                 try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" | ||||
|                                 try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/" | ||||
|                                 echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" | ||||
|                                 "${pw_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" --uri-color=red                                | ||||
|                                 [ "$?" == 0 ] && /bin/bash -c ${pw_full_command_line[*]} & | ||||
|                                 exit 0 | ||||
|                             fi | ||||
|                         else | ||||
|                             zenity_error_download && pw_scripts_update | ||||
|                         fi ;; | ||||
|                     "${scripts_upd5}") | ||||
|                         echo " " ;; | ||||
|                     "${scripts_upd6}") | ||||
|                     echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;; | ||||
|                 esac | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_kill_autostart () { | ||||
|     if [ "$PW_USE_RUNTIME" != 1 ] | ||||
|     then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`" | ||||
|     else | ||||
|         sleep 10 | ||||
|         while true ; do | ||||
|             if  [ -z `pgrep "$1" | head -n 1` ] && [ ! -z `pgrep wrap | head -n 1` ]; then | ||||
|                 echo -e "PID "$1" not found" | ||||
|                 sleep 1 | ||||
|             else | ||||
|                 kill_portwine | ||||
|                 break | ||||
|             fi | ||||
|         done | ||||
|     fi | ||||
| } | ||||
|  | ||||
| edit_db_from_gui () { | ||||
|     if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}="`" ] ; then | ||||
|         echo "export ${1}=${!1}" >> "${PORTWINE_DB_FILE}" | ||||
|     elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}=" | grep -v "#"`" ] ; then | ||||
|         if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}=" | grep -v "#"`" != "export ${1}=${!1}" ] ; then | ||||
|             sed -ri "s/^export ${1}=.*/export ${1}=${!1}/" "${PORTWINE_DB_FILE}" | ||||
|         fi | ||||
|     elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}="`" != "export ${1}=${!1}" ] ; then | ||||
|         sed -ri "s/.*export ${1}=.*/export ${1}=${!1}/g" "${PORTWINE_DB_FILE}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_check_and_download_wine () { | ||||
|     if [ "${1}" == "proton_ge" ] ; then | ||||
|         if [ "`cat "${PORT_WINE_PATH}"/data/dist/proton_ge/version | head -n 1`" != "${PW_PROTON_GE_VER}" ] | ||||
|         then try_remove_dir "${PORT_WINE_PATH}/data/dist/proton_ge/" | ||||
|         fi | ||||
|         if [ ! -d "${PORT_WINE_PATH}/data/dist/proton_ge" ] ; then | ||||
|             print_info "Download and install proton_ge..." | ||||
|             if try_download "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${PW_PROTON_GE_VER}/Proton-${PW_PROTON_GE_VER}.tar.gz" "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz" ; then | ||||
|                 if unpack_tar_gz "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz" "${PORT_WINE_PATH}/data/tmp/" ; then | ||||
|                     mv -f "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}/files" "${PORT_WINE_PATH}/data/dist/proton_ge" | ||||
|                     echo "${PW_PROTON_GE_VER}" > "${PORT_WINE_PATH}/data/dist/proton_ge/version" | ||||
|                     try_remove_file "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz" | ||||
|                     try_remove_dir "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}" | ||||
|                     try_remove_dir "${PORT_WINE_PATH}/data/dist/proton_ge/share/default_pfx/" | ||||
|                 else | ||||
|                     try_remove_file "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}.tar.gz" | ||||
|                     try_remove_dir "${PORT_WINE_PATH}/data/tmp/Proton-${PW_PROTON_GE_VER}" | ||||
|                     try_remove_dir "${PORT_WINE_PATH}/data/dist/proton_ge" | ||||
|                  | ||||
|                     `zenity --error --title "Error..." \ | ||||
|                     --text "Failed to download WINE: proton_ge.\nCheck internet connection and press OK" \ | ||||
|                     --no-wrap ` > /dev/null 2>&1 && pw_check_and_download_wine | ||||
|                 fi | ||||
|             else | ||||
|                 `zenity --error --title "Error..." \ | ||||
|                 --text "Failed to download WINE: proton_ge.\nCheck internet connection and press OK" \ | ||||
|                 --no-wrap ` > /dev/null 2>&1 && pw_check_and_download_wine | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|    | ||||
| @@ -36,4 +36,4 @@ export WINEDLLOVERRIDES="xinput1_3,d3dcompiler_43=n,b" | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -38,4 +38,4 @@ export PULSE_LATENCY_MSEC=90                    # Fix crackling audio in games | ||||
| ##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 ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -12,7 +12,7 @@ export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43" | ||||
| export PW_WINDOWS_VER=10 | ||||
| export PW_USE_NVAPI=0 | ||||
|  | ||||
| ADD_IN_START_PORTWINE () { | ||||
| 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/${USER}/Blizzard Entertainment/Battle.net/Cache" | ||||
|     rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache" | ||||
|   | ||||
| @@ -30,4 +30,4 @@ export PW_DLL_INSTALL="vcrun2019"               # Install DDL in port prefix (us | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -35,4 +35,4 @@ export PW_DLL_INSTALL="physx" | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -35,4 +35,4 @@ export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,app_rmdwin10_f | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -32,4 +32,4 @@ export PW_HEAP_DELAY_FREE=0 | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| #ADD_IN_START_PORTWINE () { "${PW_RUNTIME}" "$WINESERVER" -w } | ||||
| #add_in_start_portwine () { "${pw_runtime}" "$WINESERVER" -w } | ||||
|   | ||||
| @@ -30,4 +30,4 @@ export PW_NO_ESYNC=0                            # Do not use eventfd-based in-pr | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -7,7 +7,7 @@ export PW_VULKAN_USE=0 | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -28,4 +28,4 @@ export PW_VULKAN_USE=0 | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer | ||||
| ##export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -6,9 +6,3 @@ | ||||
| export PW_VULKAN_USE=dxvk | ||||
| export LAUNCH_PARAMETERS="" | ||||
| export PW_DLL_INSTALL="" | ||||
|  | ||||
| ADD_IN_START_PORTWINE () | ||||
| { | ||||
| ${PW_XTERM} wget -c -T 3 --output-document="${PORT_WINE_TMP_PATH}/wine-mono-5.1.1.2_ED-x86.msi" "https://github.com/redmcg/wine-mono/releases/download/wine-mono-5.1.1.2_ED/wine-mono-5.1.1.2_ED-x86.msi" | ||||
| ${PW_XTERM} "${WINELOADER}" msiexec /i "${PORT_WINE_TMP_PATH}/wine-mono-5.1.1.2_ED-x86.msi" | ||||
| } | ||||
| @@ -29,4 +29,4 @@ export PW_WINDOWS_VER=7                        # Set windows version 10, 7 or XP | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -36,4 +36,4 @@ export PW_FORCE_DISABLED_GAMEMOD=1              # Force disabele gamemod | ||||
| ##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 ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -31,4 +31,4 @@ | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
| ##export PW_HEAP_DELAY_FREE=0 | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -33,4 +33,4 @@ export PW_DLL_INSTALL="d3dx11_42 d3dx11_43" | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -33,4 +33,4 @@ export PW_VULKAN_USE=0 | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -31,4 +31,4 @@ export PW_DLL_INSTALL="d3dcompiler_43 d3dcompiler_47"               # Install DD | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -3,6 +3,5 @@ | ||||
| #ForzaHorizon4.exe  | ||||
| #Rating=5 | ||||
| ################################################ | ||||
| export PW_DLL_INSTALL="dotnet472 vcrun2019"  | ||||
| export PW_VULKAN_USE=vkd3d | ||||
| export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet" | ||||
| export PW_DLL_INSTALL="vcrun2019"  | ||||
| export PW_VULKAN_USE=vkd3d | ||||
| @@ -6,8 +6,8 @@ | ||||
| ################################################ | ||||
| export WINEDLLOVERRIDES="galaxycommunication.exe=n;libglesv2=" | ||||
| export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated" | ||||
| export PW_DLL_INSTALL="vcrun2017 vcrun6 mfc140" | ||||
| ADD_IN_START_PORTWINE () | ||||
| export PW_DLL_INSTALL="vcrun2017 mfc140" | ||||
| add_in_start_portwine () | ||||
| { | ||||
| 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" | ||||
|   | ||||
| @@ -7,7 +7,7 @@ export PW_VULKAN_USE=dxvk | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -28,4 +28,4 @@ export PULSE_LATENCY_MSEC=120                    # Fix crackling audio in games | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer | ||||
| ##export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| ##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 vcrun6"        # 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 | ||||
| @@ -34,4 +34,4 @@ export PW_HEAP_DELAY_FREE=1 | ||||
| ##export PW_DXGI_FROM_DXVK=1 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -29,4 +29,4 @@ export PW_DLL_INSTALL="physx d3dx9"                  # Install DDL in port prefi | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
| ##export PW_HEAP_DELAY_FREE=0 | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -29,4 +29,4 @@ export PW_DLL_INSTALL="physx d3dx9"                  # Install DDL in port prefi | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
| ##export PW_HEAP_DELAY_FREE=0 | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -29,4 +29,4 @@ | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| ##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 vcrun6"        # 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 | ||||
| @@ -34,4 +34,4 @@ | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -40,4 +40,4 @@ export PW_DLL_INSTALL="d3dcompiler_42 d3dcompiler_43 d3dx9" | ||||
| ##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 ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -44,16 +44,16 @@ export PW_USE_NVAPI=0 | ||||
|  | ||||
| export STAGING_SHARED_MEMORY=0 | ||||
|  | ||||
| #ADD_IN_START_PORTWINE () { | ||||
| #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..." | ||||
| #         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..." | ||||
| #         pw_stop_progress_bar | ||||
| #         pw_start_progress_bar_cs "Starting the Origin..." | ||||
|          | ||||
| #         check_origin_update () { | ||||
| #             while :  | ||||
|   | ||||
| @@ -6,5 +6,5 @@ | ||||
| #Rating=? | ||||
| ################################################ | ||||
| export PW_VULKAN_USE=dxvk | ||||
| export PW_DLL_INSTALL="vcrun2017" | ||||
| export PW_DLL_INSTALL="vcrun2019" | ||||
| export PW_WINDOWS_VER=10 | ||||
| @@ -32,4 +32,4 @@ | ||||
| ##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 ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -39,4 +39,4 @@ export PULSE_LATENCY_MSEC=150 | ||||
| ##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 ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export PW_WINDOWS_VER=7                      # Set windows version 10, 7 or XP | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -29,4 +29,4 @@ export PW_WINDOWS_VER=7                      # Set windows version 10, 7 or XP | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer | ||||
| ##export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| ##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 vcrun6"        # 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 | ||||
| @@ -34,4 +34,4 @@ | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -29,5 +29,5 @@ export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
| ##export PW_HEAP_DELAY_FREE=0 | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
| export PW_VULKAN_USE=0 | ||||
|   | ||||
							
								
								
									
										39
									
								
								data_from_portwine/scripts/portwine_db/Torchlight
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										39
									
								
								data_from_portwine/scripts/portwine_db/Torchlight
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/bin/bash | ||||
| #Author: xuser | ||||
| #Torchlight.exe | ||||
| #Rating=1-5 | ||||
| ######################################################## | ||||
| export PW_WINE_USE=proton_ge | ||||
| export PW_VULKAN_USE=dxvk | ||||
| export ENABLE_VKBASALT=1 | ||||
| export PW_VKBASALT_EFFECTS="FakeHDR:cas:FilmGrain2"        | ||||
| export PW_VKBASALT_FFX_CAS="1" | ||||
| #####################examples########################### | ||||
| ##export PW_COMMENT_DB="blablabla" | ||||
| ##export PW_WINDOWS_VER=10                        # Set windows version 10, 7 or XP | ||||
| ##export PW_DLL_INSTALL=""                        # Install DDL in port prefix (used winetricks)  | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')"                # Additional launch options | ||||
| ##export PW_WINE_USE=proton_ge                    # proton_steam or proton_ge | ||||
| ##export PW_VULKAN_USE=vkd3d                      # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export PW_DXR_ON=1 | ||||
| ##export PW_VULKAN_NO_ASYNC=1                     # Disabled ASYNC for VULKAN | ||||
| ##export PW_USE_NVAPI=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_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=0                            # Do not use eventfd-based in-process synchronization primitives | ||||
| ##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). | ||||
| ##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=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI | ||||
| ##add_in_start_portwine () { commands ; } | ||||
| @@ -9,7 +9,7 @@ | ||||
| ##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 vcrun6"        # 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 | ||||
| @@ -33,4 +33,4 @@ | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
| ##export PW_HEAP_DELAY_FREE=0 | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -31,4 +31,4 @@ | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
| ##export PW_HEAP_DELAY_FREE=0 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -6,7 +6,7 @@ | ||||
|     export PW_VULKAN_USE=dxvk | ||||
|     export PW_USE_TERMINAL=0 | ||||
|     export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet/" | ||||
|     export PW_DLL_INSTALL="vcrun2017 vcrun6 mfc42 vb6run physx dotnet40 "        # Install DDL in port prefix (used winetricks)  | ||||
|     export PW_DLL_INSTALL="vcrun2017  mfc42 vb6run physx dotnet40 "        # Install DDL in port prefix (used winetricks)  | ||||
|     export PW_COMMENT_DB="World Of Tanks EnCore" | ||||
|     ## export DXVK_HUD=fps,devinfo | ||||
|     ## export PW_MANGOHUD=1 | ||||
|   | ||||
| @@ -6,4 +6,4 @@ | ||||
| export PW_VULKAN_USE=dxvk | ||||
| export LAUNCH_PARAMETERS="-nointro -noprefetch" # -nointro command line option to skip intro movies | ||||
|                                                 # -noprefetch command line option to shorten load times | ||||
| #export PW_DLL_INSTALL="vcrun2019 vcrun6 vcrun6sp6 mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9 | ||||
| #export PW_DLL_INSTALL="vcrun2019 mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9 | ||||
| @@ -32,4 +32,4 @@ export PW_WINDOWS_VER=7                        # Set windows version 10, 7 or XP | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -28,5 +28,5 @@ | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer | ||||
| ##export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
| ##export DXVK_HUD=fps,devinfo | ||||
|   | ||||
| @@ -10,7 +10,8 @@ | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')"                # Additional launch options | ||||
|  | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export PW_WINE_USE=proton_ge                    # proton_steam or proton_ge | ||||
| ##export PW_VULKAN_USE=vkd3d                      # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export PW_DXR_ON=1 | ||||
| ##export PW_VULKAN_NO_ASYNC=1                     # Disabled ASYNC for VULKAN | ||||
| ##export PW_USE_NVAPI=0 | ||||
| @@ -19,7 +20,10 @@ | ||||
| ##export PW_FORCE_USE_VSYNC=0                     # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue | ||||
|  | ||||
| ##export ENABLE_VKBASALT=1 | ||||
| ##export PW_VKBASALT_EFFECTS="FakeHDR:cas"        # Use Reshade in others games (dx9-12 to vulkan only) | ||||
| ##export PW_VKBASALT_FFX_CAS="0.75"               # FidelityFX Contrast Adaptive Sharpening (min 0 - max 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=0                            # Do not use eventfd-based in-process synchronization primitives | ||||
| @@ -37,6 +41,4 @@ | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI | ||||
|  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
|  | ||||
| export PW_DLL_INSTALL="vcrun6sp6 vcrun6 mfc42 vcrun2019 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9" | ||||
| ##add_in_start_portwine () { commands ; } | ||||
| @@ -34,4 +34,4 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43"        # Install DDL in port prefix | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -5,23 +5,13 @@ | ||||
| #Rating=5 | ||||
| #####################examples########################### | ||||
| ##export PW_COMMENT_DB="blablabla" | ||||
| export PW_WINE_USE=proton_ge | ||||
| export PW_VULKAN_USE=dxvk | ||||
| export PW_WINDOWS_VER=7                        # Set windows version 10, 7 or XP | ||||
| export PW_DLL_INSTALL="vcrun2019 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_USE_NVAPI=0 | ||||
| ##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. | ||||
| @@ -42,4 +32,4 @@ export WINEDLLOVERRIDES="concrt140,msvcp140,msvcp140_1,msvcp140_2,d3dcompiler_47 | ||||
| ##export PW_LOG=0                                 # Enable debug mode fo terminal  | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
|  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -13,7 +13,7 @@ | ||||
| ##export PW_DXVK_VER=1.8.1  | ||||
| ##export PW_VKD3D_VER=2.2 | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -39,4 +39,4 @@ | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -41,4 +41,4 @@ | ||||
| ##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 ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -11,7 +11,7 @@ export PW_VULKAN_USE=0 | ||||
| export LAUNCH_PARAMETERS="" | ||||
| export MESA_EXTENSION_MAX_YEAR=2002 | ||||
| export __GL_ExtensionStringVersion=17700 | ||||
| ADD_IN_START_PORTWINE () | ||||
| add_in_start_portwine () | ||||
| { | ||||
| if [ ! -e "$PATH_TO_GAME/0_Proton_PW_MoHAA" ] ; then | ||||
|     touch "$PATH_TO_GAME/0_Proton_PW_MoHAA" && mv "$PATH_TO_GAME/main/newconfig.cfg" "$PATH_TO_GAME/main/newconfig.cfg.bak" && mv "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/mainta/newconfig.cfg" "$PATH_TO_GAME/mainta/newconfig.cfg.bak" && mv "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/maintt/newconfig.cfg" "$PATH_TO_GAME/maintt/newconfig.cfg.bak" && mv "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg.bak" && | ||||
|   | ||||
| @@ -32,4 +32,4 @@ export PW_COMMENT_DB="OSU!" | ||||
| ##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG | ||||
| ##export PW_USE_TERMINAL=1                        # Force run in terminal | ||||
| ##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI  | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -26,4 +26,4 @@ export PW_DLL_INSTALL="physx d3dx9"        # Install DDL in port prefix (used wi | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer | ||||
| ##export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| #export PW_VIRTUAL_DESKTOP=1 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -13,7 +13,7 @@ | ||||
| ##export PW_DXVK_VER=1.8.1  | ||||
| ##export PW_VKD3D_VER=2.2 | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -39,4 +39,4 @@ | ||||
| ##export PW_DXGI_FROM_DXVK=0 | ||||
| ##export WINEARCH=win32                           # defaut = win64 | ||||
| ##export WINEPREFIX= | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -24,7 +24,7 @@ export PW_WINEDBG_DISABLE=1 | ||||
| export PW_USE_GAMEMODE=0             # Force disabele gamemod | ||||
| #export PW_FORCE_LARGE_ADDRESS_AWARE=0          # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. | ||||
| #export PULSE_LATENCY_MSEC=60 | ||||
| export PW_DLL_INSTALL="vcrun6sp6 mfc42 vcrun6 vcrun2012 mfc120 vcrun2013" | ||||
| export PW_DLL_INSTALL="mfc42 vcrun2012 mfc120 vcrun2013" | ||||
| #export LAUNCH_PARAMETERS="-d3d9" | ||||
| export PW_GUI_DISABLED_CS=1 | ||||
| #export PW_WINDOWS_VER=XP                      # Set windows version 10, 7 or XP | ||||
| @@ -6,7 +6,7 @@ | ||||
|     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_DLL_INSTALL="dotnet40 vcrun2017  mfc42 vb6run physx" | ||||
|     export PW_COMMENT_DB="World Of Tanks EnCore Installer" | ||||
|     ## export DXVK_HUD=fps,devinfo | ||||
|     ## export PW_MANGOHUD=1 | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export PW_DLL_INSTALL="vcrun2013 vcrun2017 dotnet472" | ||||
| #####################examples########################### | ||||
| ##export PW_VULKAN_USE=dxvk                       # dxvk, vkd3d or 0 for OpenGL | ||||
| ##export WINEDLLOVERRIDES="blabla=n,b" | ||||
| ##export PW_DLL_INSTALL="vcrun2019 vcrun6"        # 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 | ||||
| @@ -29,4 +29,4 @@ export PW_DLL_INSTALL="vcrun2013 vcrun2017 dotnet472" | ||||
| ##export VKD3D_CONFIG=force_bindless_texel_buffer | ||||
| ##export PW_WINDOWS_VER=10                      # Set windows version 10, 7 or XP | ||||
| ##export PW_VIRTUAL_DESKTOP=1 | ||||
| ##ADD_IN_START_PORTWINE () { commands ; } | ||||
| ##add_in_start_portwine () { commands ; } | ||||
|   | ||||
| @@ -15,300 +15,11 @@ if [ "${s_install}" != "1" ] && [ ! -x "`which "zenity" 2>/dev/null`" ];then | ||||
|     echo "You will need to install: zenity, and restart the port." | ||||
|     xdg-open "http://portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0 | ||||
| fi | ||||
| pw_ping_test () { | ||||
|     ping -w3 -c1 github.com &> /dev/null | ||||
|     [ "$?" == "0" ] && return 0 || return 1 | ||||
| } | ||||
| print_error () { | ||||
|     echo "ERROR: $@" | ||||
| } | ||||
| print_info () { | ||||
|     echo "INFO: $@" | ||||
| } | ||||
| print_var () { | ||||
|     for vp in $@ ; do echo "${vp}=${!vp}" ; done | ||||
| } | ||||
| try_copy_file () { | ||||
|     if [ ! -f "$1" ] ; then	print_info "file $1 not found for copy" && return 1 | ||||
|     elif [ -z "$2" ] ; then	print_error "no way to copy file $1" && return 1 | ||||
|     else | ||||
|         cp -f "$1" "$2" | ||||
|         if [ "$?" != 0 ] | ||||
|         then print_error "failed to copy file $1 to $2" || return 1 | ||||
|         else print_info "copy file $1 to $2 was successful" || return 0 | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
| try_copy_dir () { | ||||
|     if [ ! -d "$1" ] ; then	print_info "directory $1 not found for copy" | ||||
|     elif [ -z "$2" ] ; then	print_error "no way to copy directory $1" | ||||
|     else | ||||
|         cp -fr "$1" "$2" | ||||
|         [ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
| try_remove_file () { | ||||
|     if [ -f "$1" ] ; then | ||||
|         rm -f "$1" | ||||
|         [ "$?" != 0 ] && print_error "failed to remove file $1" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
| try_remove_dir () { | ||||
|     if [ -d "$1" ] ; then | ||||
|         rm -fr "$1" | ||||
|         [ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
| try_force_link_file () { | ||||
|     if [ ! -f "$1" ] ; then	print_info "file $1 not found for link" | ||||
|     elif [ -z "$2" ] ; then	print_error "no way to link file $1" | ||||
|     else | ||||
|         ln -sf "$1" "$2" | ||||
|         [ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
| 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" | ||||
|     else | ||||
|         ln -sf "$1" "$2" | ||||
|         [ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
| try_download () { | ||||
|     set -o pipefail | ||||
|     wget -c -t 5 -T 2 "$1" --output-document="$2" 2>&1 | \ | ||||
|     sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; 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 | ||||
| } | ||||
| try_download_silent () { | ||||
|     wget -c -t 5 -T 2 "$1" --output-document="$2" | ||||
|     [ "$?" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0 | ||||
| } | ||||
| zenity_error_download () { | ||||
|     `zenity --error --title "Error..." --text "You will need to check internet connettion,\nand press OK for repeet download" --no-wrap ` > /dev/null 2>&1 | ||||
| } | ||||
| create_new_dir () { | ||||
|     if [ ! -d "$1" ] ; then | ||||
|         mkdir -p "$1" | ||||
|     fi | ||||
| } | ||||
| var_winedlloverride_update () { | ||||
|     if [ ! -z "${WINEDLLOVERRIDES}" ] | ||||
|     then export WINEDLLOVERRIDES="${1};${WINEDLLOVERRIDES}" | ||||
|     else export WINEDLLOVERRIDES="${1}" | ||||
|     fi | ||||
| } | ||||
| var_vkd3d_config_update () { | ||||
|     if [ ! -z "${VKD3D_CONFIG}" ] | ||||
|     then export VKD3D_CONFIG="${1};${VKD3D_CONFIG}" | ||||
|     else export VKD3D_CONFIG="${1}" | ||||
|     fi | ||||
| } | ||||
| unpack_tar_xz () { | ||||
|     set -o pipefail | ||||
|     tar -Jxvf "$1" -C "$2" | sszen | ||||
|     [ "${PIPESTATUS[0]}" != 0 ] && print_error "File unpacking error." && return 1 || return 0 | ||||
| } | ||||
| pw_mangohud_check () { | ||||
|     export RUN_MANGOHUD="" | ||||
|     if [ "${PW_MANGOHUD}" == "1" ] ; then | ||||
|         if [ "${PW_VULKAN_USE}" = "0" ] | ||||
|         then export RUN_MANGOHUD="mangohud --dlsym" | ||||
|         else export RUN_MANGOHUD="mangohud" | ||||
|         fi | ||||
|     else | ||||
|         export DISABLE_MANGOHUD=1 | ||||
|     fi | ||||
| } | ||||
| pw_vkbasalt_check () { | ||||
|     if [ ! -z "${ENABLE_VKBASALT}" ] && [ "${ENABLE_VKBASALT}" == 1 ] | ||||
|     then export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf" | ||||
|     else export DISABLE_VKBASALT=1 | ||||
|     fi | ||||
| }  | ||||
| gui_question () { | ||||
|     `zenity --question --title "${inst_set}." --text "$1" --no-wrap ` &> /dev/null | ||||
|      [ $? -eq "0" ] && return 0 || return 1 | ||||
| } | ||||
| pw_clear_pfx () { | ||||
|     try_remove_file "${WINEPREFIX}/system.reg" | ||||
|     try_remove_file "${WINEPREFIX}/user.reg" | ||||
|     try_remove_file "${WINEPREFIX}/userdef.reg" | ||||
|     try_remove_file "${WINEPREFIX}/winetricks.log" | ||||
|     try_remove_file "${WINEPREFIX}/.update-timestamp" | ||||
|     try_remove_file "${WINEPREFIX}/drive_c/.windows-serial" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/windows/" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Setup" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Windows" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/WindowsTask" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Package Cache" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Temporary Internet Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/wine_gecko" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Temporary Internet Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Microsoft" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/wine_gecko" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Temp" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Internet Explorer" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows Media Player" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows NT" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Common Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Internet Explorer" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Common Files" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows Media Player" | ||||
|     try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows NT" | ||||
|     try_remove_dir "${PORT_WINE_TMP_PATH}/mesa_shader_cache" | ||||
|     rm -f "${PORT_WINE_TMP_PATH}"/*.bin | ||||
|     rm -f "${PORT_WINE_TMP_PATH}"/*.foz | ||||
| } | ||||
| check_user_conf () { | ||||
|     if [ ! -f "${USER_CONF}" ]; then | ||||
|         echo "#!/bin/bash" > "${USER_CONF}" | ||||
|         echo "# User overides db and var settings..." >> "${USER_CONF}" | ||||
|         chmod u+x "${USER_CONF}" | ||||
|     fi | ||||
| } | ||||
| sszen() { | ||||
|     zenity --progress --title="Settings..." --text="Updating parameters" --pulsate --auto-close --width=500 --height=90 --no-cancel | ||||
| } | ||||
| PW_START_PROGRESS_BAR_CS () { | ||||
|     "${pw_yad}" --progress --progress-text="$@" --pulsate --close-on-unfocus \ | ||||
|     --no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 & | ||||
|     echo "" | ||||
| } | ||||
| 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 -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` &> /dev/null | ||||
|     done | ||||
| } | ||||
| PW_LOAD_LIBS () { | ||||
|     if [ ! -e "${PW_WINELIB}/runtime/bin/yad" ] || [ ! -e "${PW_WINELIB}/runtime/lib/p7zip/7z" ] \ | ||||
|     || [ ! -e "${PW_WINELIB}/runtime/bin/vkcube" ] || [ ! -e "${PW_WINELIB}/runtime/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 install runtime libraries.\nCheck internet connection and press OK" \ | ||||
|                 --no-wrap ` > /dev/null 2>&1 && PW_LOAD_LIBS | ||||
|             fi | ||||
|         else | ||||
|             `zenity --error --title "Error..." \ | ||||
|             --text "Failed to download runtime libraries.\nCheck internet connection and press OK" \ | ||||
|             --no-wrap ` > /dev/null 2>&1 && PW_LOAD_LIBS | ||||
|         fi | ||||
|     fi | ||||
|     export pw_yad="${PW_WINELIB}/runtime/bin/yad" | ||||
|     export pw_yad_new="${PW_WINELIB}/runtime/bin/yad_new" | ||||
|     export pw_zstd="${PW_WINELIB}/runtime/bin/zstd" | ||||
|     export pw_7z="${PW_WINELIB}/runtime/lib/p7zip/7z" | ||||
|     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="${PW_WINELIB}/runtime/bin/xterm -geometry 159x37 -e" | ||||
|     fi | ||||
| } | ||||
| . "$(dirname $(readlink -f "$0"))/functions_helper" | ||||
|  | ||||
| PW_DOWNLOAD_MONO () { | ||||
|     if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}" ] ; then | ||||
|         export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${mono_ver}/wine-mono-${mono_ver}-x86.tar.xz" | ||||
|         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" | ||||
|                 zenity_error_download && PW_DOWNLOAD_MONO | ||||
|             fi | ||||
|             try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" | ||||
|         else | ||||
|             zenity_error_download && PW_DOWNLOAD_MONO | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
| PW_DOWNLOAD_GECKO () { | ||||
|     if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" ] ; then | ||||
|         export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86.tar.xz" | ||||
|         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" | ||||
|                 zenity_error_download && PW_DOWNLOAD_GECKO | ||||
|             fi | ||||
|             try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" | ||||
|         else | ||||
|             zenity_error_download && PW_DOWNLOAD_GECKO | ||||
|         fi | ||||
|     fi | ||||
|     if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" ] ; then | ||||
|         export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86_64.tar.xz" | ||||
|         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" | ||||
|                 zenity_error_download && PW_DOWNLOAD_GECKO | ||||
|             fi | ||||
|             try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" | ||||
|         else | ||||
|             zenity_error_download && PW_DOWNLOAD_GECKO | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
| PW_TRAY_ICON () { | ||||
|     if [ -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then | ||||
|         tray_icon_click() { | ||||
|             echo "" | ||||
|         } | ||||
|         export -f tray_icon_click | ||||
|         tray_icon_click_exit() { | ||||
|             KILL_PORTWINE | ||||
|             if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ]  | ||||
|             then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" | ||||
|             fi | ||||
|         } | ||||
|         export -f tray_icon_click_exit | ||||
|  | ||||
|         "${pw_yad_new}" --notification --no-middle --text="PortProton" \ | ||||
|         --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ | ||||
|         --image="$PW_GUI_ICON_PATH/port_proton.png" \ | ||||
|         --command="bash -c tray_icon_click" \ | ||||
|         --tooltip="PortProton" \ | ||||
|         --menu="| \ | ||||
| <<< 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"|" | ||||
|     fi | ||||
| } | ||||
| START_PORTWINE () { | ||||
|     PW_TRAY_ICON & | ||||
| start_portwine () { | ||||
|     pw_check_and_download_wine "${PW_WINE_USE}"  | ||||
|     pw_tray_icon & | ||||
|     if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e" | ||||
| #    elif [ -x "`which gnome-terminal 2>/dev/null`" ]; then export PW_TERM="gnome-terminal -- /bin/bash" ??? | ||||
|     elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e" | ||||
| @@ -320,48 +31,34 @@ START_PORTWINE () { | ||||
|         xrdb -merge "${HOME}/.Xresources" | ||||
|     fi | ||||
|  | ||||
|     PW_START_PROGRESS_BAR_CS "Start ${portname}... Please wait..." | ||||
|     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 | ||||
|     export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0" | ||||
|     export STAGING_SHARED_MEMORY=1 | ||||
|     export PW_FORCE_LARGE_ADDRESS_AWARE=1 | ||||
|     export WINE="${WINEDIR}/bin/wine" | ||||
|     export WINELOADER="${WINEDIR}/bin/wine" | ||||
|     export WINESERVER="${WINEDIR}/bin/wineserver" | ||||
|     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 "${HOME}/.PortWINE/gecko" "${WINEDIR}"/share/wine/ | ||||
|     try_force_link_dir "${HOME}/.PortWINE/mono" "${WINEDIR}"/share/wine/ | ||||
|  | ||||
|     if [ ! -z "${LD_LIBRARY_PATH}" ] | ||||
|     then export LD_LIBRARY_PATH="${WINEDIR}/lib64/:${WINEDIR}/lib/:${LD_LIBRARY_PATH}" | ||||
|     else export LD_LIBRARY_PATH="${WINEDIR}/lib64/:${WINEDIR}/lib/" | ||||
|     fi | ||||
|     if [ ! -z "${PATH}" ] | ||||
|     then export PATH="${WINEDIR}/bin:${PATH}" | ||||
|     else export PATH="${WINEDIR}/bin" | ||||
|     fi | ||||
|     if [ "${PW_USE_RUNTIME}" = 0 ] ; then | ||||
|         export PW_RUNTIME="" | ||||
|         export pw_runtime="" | ||||
|         echo "RUNTIME is disabled" | ||||
|     else | ||||
|         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 \ | ||||
|             export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ | ||||
|             --unshare-home \ | ||||
|             --home="${PW_SANDBOX_HOME_PATH}" \ | ||||
|             --runtime=${PW_WINELIB}/runtime \ | ||||
|             --" | ||||
|         else | ||||
|             export PW_RUNTIME="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ | ||||
|             export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ | ||||
|             --share-home \ | ||||
|             --runtime=${PW_WINELIB}/runtime \ | ||||
|             --" | ||||
| @@ -387,6 +84,9 @@ START_PORTWINE () { | ||||
|             else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}" | ||||
|             fi | ||||
|         done | ||||
|         if [ ! -f "${PW_WINELIB}/runtime/etc/os-release" ] | ||||
|         then try_force_link_file "${PW_WINELIB}/runtime/lib/os-release" "${PW_WINELIB}/runtime/etc/os-release" | ||||
|         fi | ||||
|         echo "RUNTIME is enabled" | ||||
|     fi | ||||
|  | ||||
| @@ -401,6 +101,7 @@ 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" | ||||
| @@ -456,9 +157,6 @@ START_PORTWINE () { | ||||
|     if [ ! -z "${PW_DXR_ON}" ] && [ "${PW_DXR_ON}" != 0 ] ; then | ||||
|         var_vkd3d_config_update dxr | ||||
|     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 optirun_on="" | ||||
|     export check_optimus_manager= | ||||
|     export PW_NVIDIA="$(lspci | grep NVIDIA)" | ||||
| @@ -483,10 +181,6 @@ START_PORTWINE () { | ||||
|         if [ ! -d "${PORT_WINE_TMP_PATH}"/gl_shader_cache ] ; then | ||||
|             mkdir -p "${PORT_WINE_TMP_PATH}"/gl_shader_cache | ||||
|         fi | ||||
|         export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}/gl_shader_cache" | ||||
|         export __GL_SHADER_DISK_CACHE=1 | ||||
|         export __GL_SHADER_DISK_CACHE_SIZE=1000000000 | ||||
|         export __GL_DXVK_OPTIMIZATIONS=1 | ||||
|     else | ||||
|         export DRI_PRIME=1 | ||||
|     fi | ||||
| @@ -517,210 +211,13 @@ START_PORTWINE () { | ||||
|         export PW_GAMEMODERUN=0 | ||||
|         echo "Gamemod is not installed or disabled in vars script: PW_USE_GAMEMODE=$PW_USE_GAMEMODE" | ||||
|     fi | ||||
|     PW_INIT_PFX | ||||
|     RUN_WINETRICKS_FROM_DB | ||||
|     ADD_IN_START_PORTWINE | ||||
| } | ||||
|  | ||||
| WAIT_WINESERVER () { | ||||
|     sleep 3 | ||||
|     while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do | ||||
|         sleep 1 | ||||
|     done | ||||
| } | ||||
|  | ||||
| KILL_PORTWINE () { | ||||
|     wine_pids=`ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader| ' | awk -F/ '{print $3}'` | ||||
|     if  [ ! -z "${wine_pids}" ] ; then | ||||
|         for pw_kill_pids in ${wine_pids} ; do | ||||
|             if [ "`ps cax | grep ${pw_kill_pids}`" ] ; then | ||||
|                 kill -n 9 ${pw_kill_pids} | ||||
|             fi | ||||
|         done | ||||
|     fi | ||||
|     if [ ! -z `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'` ] ; then | ||||
|         kill -n 9 `pgrep -a bwrap | grep ${portname} | head -n 1 | awk '{print $1}'` | ||||
|     fi | ||||
| } | ||||
| export -f KILL_PORTWINE | ||||
|  | ||||
| STOP_PORTWINE () { | ||||
|     WAIT_WINESERVER | ||||
|     ADD_IN_STOP_PORTWINE | ||||
|     if [ "$int_xneur" = "1"  ]; then | ||||
|         xneur & | ||||
|     fi | ||||
|     if [ ! -z ${PW_XKBD} ]; then | ||||
|         setxkbmap ${PW_XKBD} | ||||
|     fi | ||||
|     PW_STOP_PROGRESS_BAR | ||||
|     try_remove_file "${PORT_SCRIPTS_PATH}/0" | ||||
|     try_remove_file "${PORT_SCRIPTS_PATH}/1" | ||||
|     KILL_PORTWINE | ||||
|     if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ]  | ||||
|     then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| UPDATE_WINETRICKS () { | ||||
|     W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks" | ||||
|     W_TRX_EXT_VER="$(curl -s --list-only ${W_TRX_URL} | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" | ||||
|     print_info "Version winetricks on server: ${W_TRX_EXT_VER}" | ||||
|     W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" | ||||
|     print_info "Version winetricks in port: ${W_TRX_INT_VER}" | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/winetricks" ] && [ ! -z "$W_TRX_EXT_VER" ] || [ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" ] && [ ! -z "$W_TRX_EXT_VER" ]; then | ||||
|         if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then | ||||
|             mv -f "${PORT_WINE_TMP_PATH}/winetricks_new" "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|             W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" && print_info "Winetricks version in port has been updated (${W_TRX_INT_VER})"  | ||||
|             chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|         fi | ||||
|     fi | ||||
|     if  [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then | ||||
|         sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|         sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| RUN_WINETRICKS_FROM_DB () { | ||||
|     UPDATE_WINETRICKS | ||||
|     if [ ! -z "${PW_MUST_HAVE_DLL}" ] | ||||
|     then export PW_DLL_INSTALL="${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | ||||
|     fi | ||||
|     if [ ! -z "${PW_DLL_INSTALL}" ]; then | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         export PW_DLL_NEED_INSTALL="" | ||||
|         export USE_WT_FROM_DB=0 | ||||
|         if [ ! -e "${WINEPREFIX}/winetricks.log" ] ; then | ||||
|             touch "${WINEPREFIX}/winetricks.log" | ||||
|         fi | ||||
|         for need_install_dll_to_pfx in ${PW_DLL_INSTALL} ; do | ||||
|             if [ "${need_install_dll_to_pfx}" == "vcrun2015" ] || [ "${need_install_dll_to_pfx}" == "vcrun2017" ] ; then | ||||
|                 need_install_dll_to_pfx="vcrun2019" | ||||
|                 sed -i '/vcrun2015/d' "${WINEPREFIX}/winetricks.log" | ||||
|                 sed -i '/vcrun2017/d' "${WINEPREFIX}/winetricks.log" | ||||
|             elif [ "${need_install_dll_to_pfx}" == "vcrun2019" ] ; then | ||||
|                 sed -i '/vcrun2015/d' "${WINEPREFIX}/winetricks.log" | ||||
|                 sed -i '/vcrun2017/d' "${WINEPREFIX}/winetricks.log" | ||||
|             fi | ||||
|             grep "${need_install_dll_to_pfx}" "${WINEPREFIX}/winetricks.log" | ||||
|             if [ "$?" == "1" ] ; then | ||||
|                 if [ -z "${PW_DLL_NEED_INSTALL}" ] | ||||
|                 then export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx}" | ||||
|                 else export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx} ${PW_DLL_NEED_INSTALL}" | ||||
|                 fi | ||||
|                 export USE_WT_FROM_DB=1 | ||||
|             fi | ||||
|         done | ||||
|         if [ "${USE_WT_FROM_DB}" == "1" ] ; then | ||||
|             PW_STOP_PROGRESS_BAR | ||||
|             print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" | ||||
|             chmod -R 775 "${HOME}/.cache/winetricks" | ||||
|             ${PW_RUNTIME} xterm -e env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${PORT_WINE_TMP_PATH}/winetricks" -q -f ${PW_DLL_NEED_INSTALL} | ||||
|         fi | ||||
|         PW_START_PROGRESS_BAR_CS "Start ${portname}... Please wait..." | ||||
|     fi | ||||
|     if [[ -z `cat "${WINEPREFIX}/system.reg" | grep "Windows $PW_WINDOWS_VER"` ]] ; then | ||||
|         if [ ! -z "${PW_WINDOWS_VER}" ] && [ `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ] ; then | ||||
|             export PW_WINDOWS_VER="xp64" | ||||
|         fi | ||||
|         ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'` | ||||
|         echo "Set to win${PW_WINDOWS_VER}" | ||||
|         WAIT_WINESERVER | ||||
|     fi | ||||
| } | ||||
| PW_INIT_DB () { | ||||
|     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 | ||||
| } | ||||
| PW_UPDATE () { | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then | ||||
|         echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver" | ||||
|     fi | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/update_notifier" ] ; then | ||||
|         echo "1" > "${PORT_WINE_TMP_PATH}/update_notifier" | ||||
|     fi | ||||
|     read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier" | ||||
|     if [ "${update_not}" = "1" ] ; then | ||||
|         if try_download_silent "${PW_FTP_URL}/current_version/${portname}_ver" "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" ; then | ||||
|             read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" | ||||
|             try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" | ||||
|             if  [ ! -z "${current_ver}" ] && [ "${current_ver}" -gt "${install_ver}" ] ; then | ||||
|                 xsd=`zenity --title  "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=230 --column="${inst_set}" --column "${port_upd3}" \ | ||||
|                 TRUE "${port_upd4}" \ | ||||
|                 FALSE "${port_upd5}" \ | ||||
|                 FALSE "${port_upd6}" ` | ||||
|                 case $xsd in | ||||
|                     "${port_upd4}") | ||||
|                         KILL_PORTWINE | ||||
|                         # if try_download https://portwine-linux.ru/ftp/portwine/PortProton-$current_ver "${HOME}/.PortWINE/tmp/PortProton-$current_ver" ; then | ||||
|                         #     sh "${HOME}/.PortWINE/tmp/PortProton-$current_ver" | ||||
|                         #     try_remove_file "${HOME}/.PortWINE/tmp/PortProton-$current_ver" | ||||
|                         # fi & | ||||
|                         xdg-open $porturl | ||||
|                         exit 0 ;; | ||||
|                     "${port_upd5}") | ||||
|                         echo " " ;; | ||||
|                     "${port_upd6}") | ||||
|                     echo "0" > "${PORT_WINE_TMP_PATH}/update_notifier" ;; | ||||
|                 esac | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
|     if [ ! -f "${HOME}/.config/.PortTime" ] ; then | ||||
|         echo "10" > "${HOME}/.config/.PortTime" | ||||
|     fi | ||||
|     read "port_time" < "${HOME}/.config/.PortTime" | ||||
|     if [ "${port_time}" -gt "1" ] ; then | ||||
|         port_time=$((${port_time}-1)) | ||||
|         echo "${port_time}" > "${HOME}/.config/.PortTime" | ||||
|     else | ||||
|         xsd2=`zenity --title  "${port_time1}" --text "${port_time2}" --list --radiolist --height=230 --column="${inst_set3}" --column "${port_time3}" \ | ||||
|         TRUE "${port_time4}" \ | ||||
|         FALSE "${port_time5}" \ | ||||
|         FALSE "${port_time6}" ` | ||||
|         if [ $? = 1 ] ; then | ||||
|             echo "1" > "${HOME}/.config/.PortTime" | ||||
|         else | ||||
|             case $xsd2 in | ||||
|                 "${port_time4}") | ||||
|                     xdg-open "$urlg" & | ||||
|                     echo "300" > "${HOME}/.config/.PortTime" | ||||
|                     exit 0 ;; | ||||
|                 "${port_time5}") | ||||
|                     echo "75" > "${HOME}/.config/.PortTime" ;; | ||||
|                 "${port_time6}") | ||||
|                     echo "150" > "${HOME}/.config/.PortTime" ;; | ||||
|             esac | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| PW_INIT_PFX () { | ||||
|     #init_pfx | ||||
|     if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || \ | ||||
|        [ ! -d "${WINEPREFIX}/dosdevices" ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || \ | ||||
|        [ ! -f "${WINEPREFIX}"/system.reg ] || [ ! -f "${WINEPREFIX}"/user.reg ] | ||||
|     then | ||||
|         rm -f  "${WINEDIR}"*/lib*/*steam* | ||||
|         rm -f  "${WINEDIR}"*/lib*/wine/*steam* | ||||
|         rm -f  "${WINEDIR}"*/lib*/wine/*/*steam* | ||||
|         pw_clear_pfx | ||||
|         create_new_dir "${WINEPREFIX}" | ||||
|         if [ -d "${WINEDIR}/share/default_pfx/" ] ; then | ||||
|             cp -fr "${WINEDIR}/share/default_pfx/"* "${WINEPREFIX}" | ||||
|         fi | ||||
|         create_new_dir "${WINEPREFIX}/drive_c" | ||||
|         create_new_dir "${WINEPREFIX}/dosdevices" | ||||
|         create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" | ||||
| @@ -733,14 +230,14 @@ PW_INIT_PFX () { | ||||
|         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 | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         PW_START_PROGRESS_BAR_BLOCK "Updating prefix... Please wait..." | ||||
|         KILL_PORTWINE | ||||
|         ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -u | ||||
|         WAIT_WINESERVER | ||||
|         KILL_PORTWINE | ||||
|         PW_STOP_PROGRESS_BAR | ||||
|         PW_START_PROGRESS_BAR_CS "Initialization prefix..." | ||||
|         pw_stop_progress_bar | ||||
|         pw_start_progress_bar_block "Updating prefix... Please wait..." | ||||
|         kill_portwine | ||||
|         ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -u | ||||
|         wait_wineserver | ||||
|         kill_portwine | ||||
|         pw_stop_progress_bar | ||||
|         pw_start_progress_bar_cs "Initialization prefix..." | ||||
|     fi | ||||
|     [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:" | ||||
|     [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:" | ||||
| @@ -786,6 +283,10 @@ PW_INIT_PFX () { | ||||
|             try_copy_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" | ||||
|             try_copy_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" | ||||
|             var_winedlloverride_update "${wine_vkd3d_dll}=n" | ||||
|             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 | ||||
|             export __GL_SHADER_DISK_CACHE_SIZE=1000000000 | ||||
|         done | ||||
|         var_winedlloverride_update "dxgi=b" | ||||
|         export VKD3D_FEATURE_LEVEL="12_0" | ||||
| @@ -798,73 +299,74 @@ PW_INIT_PFX () { | ||||
|             try_copy_file "${WINEDIR}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" | ||||
|             var_winedlloverride_update "${wine_dxvk_dll}=n" | ||||
|         done | ||||
|         # echo "Try copy native VKD3D files" | ||||
|         # for wine_vkd3d_dll in d3d12 libvkd3d-proton-utils-3 ; do | ||||
|         #     try_copy_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" | ||||
|         #     try_copy_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" | ||||
|         #     var_winedlloverride_update "${wine_vkd3d_dll}=n" | ||||
|         # done | ||||
|         # echo "Use DXVK + VKD3D-PROTON" | ||||
|         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 | ||||
|         var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3=" | ||||
|         echo "Use DXVK" | ||||
|     fi | ||||
|  | ||||
|     PW_OTHER_FIXES | ||||
| } | ||||
|  | ||||
| PW_SCRIPTS_UPDATE () { | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then | ||||
|         echo "1000" > "${PORT_WINE_TMP_PATH}/scripts_ver" | ||||
|     pw_other_fixes | ||||
|     #run_winetricks_from_db | ||||
|     update_winetricks | ||||
|     if [ ! -z "${PW_MUST_HAVE_DLL}" ] | ||||
|     then export PW_DLL_INSTALL="${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | ||||
|     fi | ||||
|     export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1` | ||||
|     if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ] ; then | ||||
|             echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" | ||||
|     fi | ||||
|     read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier" | ||||
|     if [ "${scripts_update_not}" = "1" ] ; then | ||||
|         if try_download_silent "https://github.com/Castro-Fidel/PortWINE/raw/master/data_from_portwine/scripts/var" "${PORT_WINE_TMP_PATH}/scripts_cur_ver" ; then          | ||||
|             export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_cur_ver" | grep SCRIPTS_VERSION | awk -F "=" '{print $2}'` | ||||
|             try_remove_file "${PORT_WINE_TMP_PATH}/scripts_cur_ver" | ||||
|             echo "Scripts version in github = ${scripts_current_ver}" | ||||
|             echo "Scripts version local = ${scripts_install_ver}" | ||||
|             if [ ! -z "${scripts_current_ver}" ] && [ "${scripts_current_ver}" -gt "${scripts_install_ver}" ] ; then | ||||
|                 xcsd=`zenity --title  "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=230 --column="${inst_set}" --column "${scripts_upd3}" \ | ||||
|                 TRUE "${scripts_upd4}" \ | ||||
|                 FALSE "${scripts_upd5}" \ | ||||
|                 FALSE "${scripts_upd6}"` | ||||
|                 case $xcsd in | ||||
|                     "${scripts_upd4}") | ||||
|                         echo "######################################################" | ||||
|                         echo "Update scripts..." | ||||
|                         try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" | ||||
|                         if try_download "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then | ||||
|                             tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}"  | ||||
|                             if [ "$?" == "0" ] ; then | ||||
|                                 cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/" | ||||
|                                 try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" | ||||
|                                 try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/" | ||||
|                                 echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" | ||||
|                                 "${pw_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" --uri-color=red | ||||
|                                 [ "$?" == 0 ] && /bin/bash -c ${pw_full_command_line[*]} & | ||||
|                                 exit 0 | ||||
|                             fi | ||||
|                         else | ||||
|                             zenity_error_download && PW_SCRIPTS_UPDATE | ||||
|                         fi ;; | ||||
|                     "${scripts_upd5}") | ||||
|                         echo " " ;; | ||||
|                     "${scripts_upd6}") | ||||
|                     echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;; | ||||
|                 esac | ||||
|     if [ ! -z "${PW_DLL_INSTALL}" ]; then | ||||
|         pw_stop_progress_bar | ||||
|         export PW_DLL_NEED_INSTALL="" | ||||
|         export USE_WT_FROM_DB=0 | ||||
|         if [ ! -e "${WINEPREFIX}/winetricks.log" ] ; then | ||||
|             touch "${WINEPREFIX}/winetricks.log" | ||||
|         fi | ||||
|         for need_install_dll_to_pfx in ${PW_DLL_INSTALL} ; do | ||||
|             if [ "${need_install_dll_to_pfx}" == "vcrun2015" ] || [ "${need_install_dll_to_pfx}" == "vcrun2017" ] ; then | ||||
|                 need_install_dll_to_pfx="vcrun2019" | ||||
|                 sed -i '/vcrun2015/d' "${WINEPREFIX}/winetricks.log" | ||||
|                 sed -i '/vcrun2017/d' "${WINEPREFIX}/winetricks.log" | ||||
|             elif [ "${need_install_dll_to_pfx}" == "vcrun2019" ] ; then | ||||
|                 sed -i '/vcrun2015/d' "${WINEPREFIX}/winetricks.log" | ||||
|                 sed -i '/vcrun2017/d' "${WINEPREFIX}/winetricks.log" | ||||
|             fi | ||||
|             grep "${need_install_dll_to_pfx}" "${WINEPREFIX}/winetricks.log" | ||||
|             if [ "$?" == "1" ] ; then | ||||
|                 if [ -z "${PW_DLL_NEED_INSTALL}" ] | ||||
|                 then export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx}" | ||||
|                 else export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx} ${PW_DLL_NEED_INSTALL}" | ||||
|                 fi | ||||
|                 export USE_WT_FROM_DB=1 | ||||
|             fi | ||||
|         done | ||||
|         if [ "${USE_WT_FROM_DB}" == "1" ] ; then | ||||
|             pw_stop_progress_bar | ||||
|             print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" | ||||
|             chmod -R 775 "${HOME}/.cache/winetricks" | ||||
|             if [ "${PW_WINE_VER}" != "PROTON_STEAM" ] ; then | ||||
|                 export PW_WINE_VER_FROM_DB="${PW_WINE_USE}" | ||||
|                 export PW_WINE_VER="PROTON_STEAM" | ||||
|                 init_wine_ver | ||||
|                 cabextract_fix | ||||
|             fi | ||||
|             ${pw_runtime} xterm -e env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${PORT_WINE_TMP_PATH}/winetricks" -q -f ${PW_DLL_NEED_INSTALL} | ||||
|             if [ "${PW_WINE_USE}" != "proton_steam" ] ; then | ||||
|                 /bin/bash -c ${pw_full_command_line[*]} & | ||||
|                 exit 0 | ||||
|             fi | ||||
|         fi | ||||
|         pw_start_progress_bar_cs "Start ${portname}... Please wait..." | ||||
|     fi | ||||
|     if [[ -z `cat "${WINEPREFIX}/system.reg" | grep "Windows $PW_WINDOWS_VER"` ]] ; then | ||||
|         if [ ! -z "${PW_WINDOWS_VER}" ] && [ `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ] ; then | ||||
|             export PW_WINDOWS_VER="xp64" | ||||
|         fi | ||||
|         ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'` | ||||
|         echo "Set to win${PW_WINDOWS_VER}" | ||||
|         wait_wineserver | ||||
|     fi | ||||
|     add_in_start_portwine | ||||
| } | ||||
|  | ||||
| PW_RUN () { | ||||
| pw_run () { | ||||
|     if [ ! -z "$portwine_exe" ] ; then | ||||
|         export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" | ||||
|         cd "${PATH_TO_GAME}" | ||||
| @@ -873,31 +375,30 @@ PW_RUN () { | ||||
|     fi | ||||
|     pw_mangohud_check | ||||
|     pw_vkbasalt_check | ||||
|     print_var "WINEDIR" "WINEARCH" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_VULKAN_USE" "VKD3D_CONFIG" | ||||
|     print_var "WINEDIR" "WINEARCH" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" "LD_LIBRARY_PATH" "PATH" | ||||
|     if [ "${PW_LOG}" == 1 ] ; then | ||||
|         export PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log" | ||||
|         if [ ! -z "${PW_GAMEMODERUN}" ] && [ "${PW_GAMEMODERUN}" != 0 ] ; then | ||||
|             echo "Full command line:  $PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" "&>>${PW_LOG_TO_FILE}" | ||||
|             ${optirun_on} gamemoderun ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}" | ||||
|             ${optirun_on} gamemoderun ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}" | ||||
|         else | ||||
|             echo "Full command line: $PW_TERM ${optirun_on} ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" "&>>${PW_LOG_TO_FILE}" | ||||
|             ${optirun_on} ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}" | ||||
|             ${optirun_on} ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}" | ||||
|         fi | ||||
|     else | ||||
|         [ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM="" | ||||
|         if [ ! -z "${PW_GAMEMODERUN}" ] && [ "${PW_GAMEMODERUN}" != 0 ] ; then | ||||
|             echo "Use gamemode without terminal" | ||||
|             echo "Full command line: $PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" | ||||
|             $PW_TERM ${optirun_on} gamemoderun ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} | ||||
|             $PW_TERM ${optirun_on} gamemoderun ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" \ | ||||
|             ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} | ||||
|         else | ||||
|             echo "Don\`t use gamemode without terminal" | ||||
|             echo "Full command line: $PW_TERM ${optirun_on} ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" | ||||
|             $PW_TERM ${optirun_on} ${PW_RUNTIME} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} | ||||
|             $PW_TERM ${optirun_on} ${pw_runtime} env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" \ | ||||
|             ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| ###MAIN### | ||||
| unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_CHECK_AUTOINSTAL | ||||
| unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH  | ||||
| unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREAT_DB | ||||
|  | ||||
| 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" | ||||
| @@ -917,7 +418,7 @@ fi | ||||
| var_winedlloverride_update "winemenubuilder.exe=" | ||||
| export urlg="https://portwine-linux.ru/portwine-faq/" | ||||
| export PW_FTP_URL="https://portwine-linux.ru/ftp" | ||||
| export PW_WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}" | ||||
| export PW_WINELIB="${HOME}/.PortWINE/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` | ||||
| export WINETRICKS_DOWNLOADER="curl" | ||||
| @@ -926,11 +427,11 @@ check_user_conf | ||||
|  | ||||
| if [ -z "${INSTALLING_PORT}" ] ; then | ||||
|     . "${USER_CONF}" | ||||
|     PW_LOAD_LIBS | ||||
|     PW_DOWNLOAD_MONO | ||||
|     PW_DOWNLOAD_GECKO | ||||
|     PW_UPDATE | ||||
|     PW_SCRIPTS_UPDATE | ||||
|     PW_INIT_DB | ||||
|     pw_download_libs | ||||
|     pw_download_mono | ||||
|     pw_download_gecko | ||||
|     pw_update_notifier | ||||
|     pw_scripts_update | ||||
|     pw_init_db | ||||
|     . "${USER_CONF}" | ||||
| fi | ||||
|   | ||||
| @@ -5,23 +5,25 @@ if [ -f "$1" ]; then | ||||
|     export portwine_exe="$(readlink -f "$1")" | ||||
| fi | ||||
| . "$(dirname $(readlink -f "$0"))/runlib" | ||||
| kill_portwine | ||||
|  | ||||
| PORTWINE_LAUNCH () { | ||||
|     START_PORTWINE | ||||
| portwine_launch () { | ||||
|     start_portwine | ||||
|     PORTWINE_MSI=`basename "${portwine_exe}" | grep .msi` | ||||
|     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}" "$portwine_exe" | ||||
|     elif [ ! -z "${PORTWINE_MSI}" ]; then | ||||
|         PW_RUN msiexec /i "$portwine_exe" | ||||
|         pw_run msiexec /i "$portwine_exe" | ||||
|     elif [ ! -z "${PORTWINE_BAT}" ] || [ ! -z "${portwine_exe}" ]; then | ||||
|         PW_RUN ${WINE_WIN_START} "$portwine_exe" | ||||
|         pw_run ${WINE_WIN_START} "$portwine_exe" | ||||
|     else | ||||
|         PW_RUN explorer | ||||
|         pw_run explorer | ||||
|     fi | ||||
| } | ||||
| PORTWINE_CREATE_SHORTCUT () { | ||||
|  | ||||
| portwine_create_shortcut () { | ||||
|     if [ ! -z "${portwine_exe}" ]; then | ||||
|         PORTPROTON_EXE="${portwine_exe}" | ||||
|     else | ||||
| @@ -44,21 +46,7 @@ PORTWINE_CREATE_SHORTCUT () { | ||||
|         rm -f "${PORTPROTON_PATH}/"*.ico | ||||
|         rm -f "${PORTPROTON_PATH}/"*.png | ||||
|     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 "`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"  > "${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}" ] | ||||
| @@ -79,8 +67,9 @@ name_desktop="${PORTPROTON_NAME}" | ||||
|     fi | ||||
|     xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & | ||||
| } | ||||
| PORTWINE_DEBUG () { | ||||
|     KILL_PORTWINE | ||||
|  | ||||
| portwine_start_debug () { | ||||
|     kill_portwine | ||||
|     export PW_LOG=1 | ||||
|     export PW_WINEDBG_DISABLE=0 | ||||
|     echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log" | ||||
| @@ -108,11 +97,15 @@ PORTWINE_DEBUG () { | ||||
|     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" | ||||
|     elif [ "${PW_VULKAN_USE}" = "dxvk" ]; then  echo "PW_VULKAN_USE=${PW_VULKAN_USE}_v."${PW_DXVK_VER}"" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     else echo "PW_VULKAN_USE=${PW_VULKAN_USE}_v."${PW_VKD3D_VER}"" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     elif [ "${PW_VULKAN_USE}" = "dxvk" ]; then  echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${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" | ||||
|     print_var PW_WINE_USE >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     [ -f "${WINEDIR}/version" ] && cat "${WINEDIR}/version" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "Date and time of start debug for ${portname}" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "Date and time of start debug for ${portname}:" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     date >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "-----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "The installation path of the ${portname}:" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
| @@ -150,12 +143,6 @@ PORTWINE_DEBUG () { | ||||
|         echo "---------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|         echo "!!!gamemod not found!!!"  >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     fi | ||||
|     echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "Version WINE in the Port" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     if [ -f "${WINEDIR}/version" ] | ||||
|     then cat "${WINEDIR}/version" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     else ${PW_RUNTIME} "$WINELOADER" --version 2>&1 | tee -a "${PORT_WINE_PATH}/${portname}.log" | ||||
|     fi | ||||
|     echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     echo "winetricks.log:" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
|     cat "${WINEPREFIX}/winetricks.log" >> "${PORT_WINE_PATH}/${portname}.log" | ||||
| @@ -172,97 +159,101 @@ PORTWINE_DEBUG () { | ||||
|  | ||||
|     export DXVK_HUD="full" | ||||
|  | ||||
|     PORTWINE_LAUNCH & | ||||
|     sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && KILL_PORTWINE | ||||
|     portwine_launch & | ||||
|     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" | ||||
|     "$pw_yad" --title="${portname}.log" --borders=10 --no-buttons --text-align=center \ | ||||
|     --text-info --show-uri --wrap --center --width=1200 --height=550  --uri-color=red \ | ||||
|     --filename="${PORT_WINE_PATH}/${portname}.log" | ||||
| } | ||||
| PW_WINECFG () { | ||||
|     START_PORTWINE | ||||
|     PW_RUN winecfg | ||||
|  | ||||
| pw_winecfg () { | ||||
|     start_portwine | ||||
|     pw_run winecfg | ||||
| } | ||||
| PW_WINEFILE () { | ||||
|     START_PORTWINE | ||||
|     PW_RUN explorer | ||||
|  | ||||
| pw_winefile () { | ||||
|     start_portwine | ||||
|     pw_run explorer | ||||
| } | ||||
| PW_WINECMD () { | ||||
|  | ||||
| pw_winecmd () { | ||||
|     export PW_USE_TERMINAL=1 | ||||
|     START_PORTWINE | ||||
|     start_portwine | ||||
|     cd "${WINEPREFIX}/drive_c" | ||||
|     ${PW_RUNTIME} xterm -e env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" cmd | ||||
|     ${pw_runtime} xterm -e env LD_LIBRARY_PATH="${PW_AND_RUNTIME_LIBRARY_PATH}${LD_LIBRARY_PATH}" "${WINELOADER}" cmd | ||||
| } | ||||
| PW_WINEREG () { | ||||
|     START_PORTWINE | ||||
|     PW_RUN regedit | ||||
|  | ||||
| pw_winereg () { | ||||
|     start_portwine | ||||
|     pw_run regedit | ||||
| } | ||||
| PW_WINETRICKS () { | ||||
|     UPDATE_WINETRICKS | ||||
|  | ||||
| pw_winetricks () { | ||||
|     update_winetricks | ||||
|     export PW_USE_TERMINAL=1 | ||||
|     START_PORTWINE | ||||
|     ${PW_TERM} "${PORT_WINE_TMP_PATH}/winetricks" -q | ||||
|     export PW_WINE_VER="PROTON_STEAM" | ||||
|     init_wine_ver | ||||
|     cabextract_fix | ||||
|     start_portwine | ||||
|     ${PW_TERM} "${PORT_WINE_TMP_PATH}/winetricks" -q -f | ||||
| } | ||||
| PW_EDIT_DB () { | ||||
|  | ||||
| pw_edit_db () { | ||||
|     xdg-open "${PORTWINE_DB_FILE}" | ||||
| } | ||||
| PW_AUTO_INSTALL_FROM_DB () { | ||||
|  | ||||
| pw_autoinstall_from_db () { | ||||
|     . "$PORT_SCRIPTS_PATH/autoinstall" | ||||
|     $PW_YAD_SET | ||||
| } | ||||
|  | ||||
| ###MAIN### | ||||
| 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 | ||||
|         [ -z "${PW_VULKAN_USE}" ] && export PW_VULKAN_USE=dxvk  | ||||
|         [ -z "${PW_WINE_USE}" ] && export PW_WINE_USE=proton_steam | ||||
|     fi | ||||
|     case "${PW_VULKAN_USE}" in       | ||||
|         "vkd3d") | ||||
|             export PW_DEFAULT_VULKAN_USE='VKD3D  (DX 12 to Vulkan)\!DXVK  (DX 9-11 to Vulkan)\!OPENGL ' ;; | ||||
|         "0") | ||||
|             export PW_DEFAULT_VULKAN_USE='OPENGL \!DXVK  (DX 9-11 to Vulkan)\!VKD3D  (DX 12 to Vulkan)' ;; | ||||
|         *) | ||||
|             export PW_DEFAULT_VULKAN_USE='DXVK  (DX 9-11 to Vulkan)\!VKD3D  (DX 12 to Vulkan)\!OPENGL ' ;; | ||||
|     esac | ||||
|     case "${PW_WINE_USE}" in | ||||
|         "proton_ge") | ||||
|             export PW_DEFAULT_WINE_USE='PROTON_GE   (FSR included)\!PROTON_STEAM' ;; | ||||
|         *) | ||||
|             export PW_DEFAULT_WINE_USE='PROTON_STEAM\!PROTON_GE   (FSR included)' ;; | ||||
|     esac | ||||
| else | ||||
|     export PW_DEFAULT_VULKAN_USE='DXVK  (DX 9-11 to Vulkan)\!VKD3D  (DX 12 to Vulkan)\!OPENGL ' | ||||
|     export PW_DEFAULT_WINE_USE='PROTON_STEAM\!PROTON_GE   (FSR included)' | ||||
|     unset PW_GUI_DISABLED_CS | ||||
| fi | ||||
| if [ ! -z "${portwine_exe}" ]; then | ||||
|     if [ -z "${PW_GUI_DISABLED_CS}" ] || [ "${PW_GUI_DISABLED_CS}" = 0 ] || [ -z "${PW_VULKAN_USE}" ]; then | ||||
|         if [ ! -z "${PORTWINE_DB_FILE}" ] && [ ! -z "${PW_VULKAN_USE}" ]; then | ||||
|             if [ -z "${PW_COMMENT_DB}" ] ; then | ||||
|                 PW_COMMENT_DB="PortWINE database file for "\"${PORTWINE_DB}"\" was found." | ||||
|             fi | ||||
|             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" \ | ||||
|             --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 ) | ||||
|             PW_YAD_SET="$?" | ||||
|         elif [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "${PW_VULKAN_USE}" ]; then | ||||
|             if [ -z "${PW_COMMENT_DB}" ] ; then | ||||
|                 PW_COMMENT_DB="PortWINE database file for "\"${PORTWINE_DB}"\" was found." | ||||
|             fi | ||||
|             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="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 ) | ||||
|             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="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 ) | ||||
|             PW_YAD_SET="$?" | ||||
|             export VULKAN_MOD=`echo "$OUTPUT_START" | awk '{print $1}'` | ||||
|         fi | ||||
|     elif [ ! -z "${PORTWINE_DB_FILE}" ]; then | ||||
|         PORTWINE_LAUNCH | ||||
|     else | ||||
|         OUTPUT_START=$("${pw_yad}" --wrap-width=250 --borders=15 --form --center  \ | ||||
|     if [ -z "${PW_GUI_DISABLED_CS}" ] || [ "${PW_GUI_DISABLED_CS}" = 0 ] ; 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="Run with :CB" "DXVK (DX 9-11 to Vulkan)"\!"VKD3D (DX 12 to Vulkan)"\!"OPENGL " \ | ||||
|         --field="Run with :CB" "${PW_DEFAULT_VULKAN_USE}" \ | ||||
|         --field="Run with :CB" "${PW_DEFAULT_WINE_USE}" \ | ||||
|         --field=":LBL" "" \ | ||||
|         "${YAD_EDIT_DB}" \ | ||||
|         --button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \ | ||||
|         --button='DEBUG'!!"${loc_debug}":102 \ | ||||
|         --button='LAUNCH'!!"${loc_launch}":106 ) | ||||
|         PW_YAD_SET="$?" | ||||
|         export VULKAN_MOD=`echo "$OUTPUT_START" | awk '{print $1}'` | ||||
|         export VULKAN_MOD=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $1}' | awk '{print $1}'` | ||||
|         export PW_WINE_VER=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $2}' | awk '{print $1}'` | ||||
|     elif [ ! -z "${PORTWINE_DB_FILE}" ]; then | ||||
|         portwine_launch | ||||
|     fi | ||||
| else | ||||
|     button_click () { | ||||
| @@ -298,8 +289,8 @@ else | ||||
|     export -f gui_rm_portproton | ||||
|  | ||||
|     gui_wine_uninstaller () { | ||||
|         START_PORTWINE | ||||
|         PW_RUN uninstaller | ||||
|         start_portwine | ||||
|         pw_run uninstaller | ||||
|     } | ||||
|     export -f gui_wine_uninstaller | ||||
|  | ||||
| @@ -328,15 +319,15 @@ else | ||||
|  | ||||
|     "${pw_yad}" --plug=${KEY} --tabnum=1 --columns=3 --form --separator=";" \ | ||||
|     --image "$PW_GUI_ICON_PATH/port_proton.png" \ | ||||
|     --field=":CB" "  DXVK (DX 9-11 to Vulkan)"\!"VKD3D (DX 12 to Vulkan)"\!"OPENGL " \ | ||||
|     --field=":CB" "  DXVK  (DX 9-11 to Vulkan)"\!"VKD3D  (DX 12 to Vulkan)"\!"OPENGL " \ | ||||
|     --field=":LBL" "" \ | ||||
|     --field='DEBUG'!!"${loc_debug}":"BTN" '@bash -c "button_click DEBUG"' \ | ||||
|     --field='WINECFG'!!"${loc_winecfg}":"BTN" '@bash -c "button_click WINECFG"' \ | ||||
|     --field="${portname}-${install_ver} (${scripts_install_ver})"!!"":"FBTN" '@bash -c "open_changelog"' \ | ||||
|     --field=":CB" "  PROTON_STEAM"\!"  PROTON_GE   (FSR included)" \ | ||||
|     --field=":LBL" "" \ | ||||
|     --field='WINEFILE'!!"${loc_winefile}":"BTN" '@bash -c "button_click WINEFILE"' \ | ||||
|     --field='WINECMD'!!"${loc_winecmd}":"BTN" '@bash -c "button_click WINECMD"' \ | ||||
|     --field="F.A.Q."!!"":"FBTN" '@bash -c "xdg-open https://portwine-linux.ru/portwine-faq/ ; button_click"' \ | ||||
|     --field="${portname}-${install_ver} (${scripts_install_ver})"!!"":"FBTN" '@bash -c "open_changelog"' \ | ||||
|     --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" & \ | ||||
| @@ -350,7 +341,9 @@ else | ||||
|         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}'` | ||||
|         cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | ||||
|         export VULKAN_MOD=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk '{print $1}' | awk -F";" '{print $1}'` | ||||
|         export PW_WINE_VER=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $5}' | awk '{print $1}'` | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | ||||
|     fi | ||||
| fi | ||||
| @@ -360,18 +353,40 @@ if [ ! -z "${VULKAN_MOD}" ] ; then | ||||
|     elif [ "${VULKAN_MOD}" = "OPENGL" ]; then export PW_VULKAN_USE="0" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| init_wine_ver  | ||||
| if [ -z "${PW_DISABLED_CREAT_DB}" ] ; then  | ||||
|     if [ ! -z "${PORTWINE_DB}" ] ; then | ||||
|         PORTWINE_DB_FILE=`grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*` | ||||
|         if [ -z "${PORTWINE_DB_FILE}" ] ; then | ||||
|             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" | ||||
|             cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" | ||||
|             export PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db/${PORTWINE_DB}" | ||||
|         fi | ||||
|  | ||||
|         edit_db_from_gui PW_VULKAN_USE | ||||
|         edit_db_from_gui PW_WINE_USE | ||||
|  | ||||
|         PW_DB_TMP=`cat "${PORTWINE_DB_FILE}"`  | ||||
|         echo "${PW_DB_TMP}" | awk '! a[$0]++' > "${PORTWINE_DB_FILE}" | ||||
|         unset PW_DB_TMP | ||||
|     fi | ||||
| fi | ||||
| case "$PW_YAD_SET" in | ||||
|     1|252) exit 0 ;; | ||||
|     100) PORTWINE_CREATE_SHORTCUT ;; | ||||
|     DEBUG|102) PORTWINE_DEBUG ;; | ||||
|     106) PORTWINE_LAUNCH ;; | ||||
|     WINECFG|108) PW_WINECFG ;; | ||||
|     WINEFILE|110) PW_WINEFILE ;; | ||||
|     WINECMD|112) PW_WINECMD ;; | ||||
|     WINEREG|114) PW_WINEREG ;; | ||||
|     WINETRICKS|116) PW_WINETRICKS ;; | ||||
|     118) PW_EDIT_DB ;; | ||||
|     *) PW_AUTO_INSTALL_FROM_DB ;; | ||||
|     100) portwine_create_shortcut ;; | ||||
|     DEBUG|102) portwine_start_debug ;; | ||||
|     106) portwine_launch ;; | ||||
|     WINECFG|108) pw_winecfg ;; | ||||
|     WINEFILE|110) pw_winefile ;; | ||||
|     WINECMD|112) pw_winecmd ;; | ||||
|     WINEREG|114) pw_winereg ;; | ||||
|     WINETRICKS|116) pw_winetricks ;; | ||||
|     118) pw_edit_db ;; | ||||
|     *) pw_autoinstall_from_db ;; | ||||
| esac | ||||
| ######################################################################## | ||||
| STOP_PORTWINE | ||||
|  | ||||
| stop_portwine | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| #!/bin/bash | ||||
| #Author: Castro-Fidel (PortWINE-Linux.ru) | ||||
| #SCRIPTS_VERSION=1123 | ||||
| #SCRIPTS_NEXT_VERSION=2000 | ||||
| ######################################################################## | ||||
| export PW_MANGOHUD=1 | ||||
| export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution | ||||
| export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt | ||||
| #export DXVK_HUD=fps,devinfo | ||||
| #export ENABLE_VKBASALT=1 | ||||
| #export PW_VIRTUAL_DESKTOP=1 | ||||
| @@ -20,41 +20,39 @@ export PW_FORCE_USE_VSYNC=2 | ||||
| export PW_LOG=0 | ||||
| export PW_TERM="" | ||||
| export PW_USE_TERMINAL=0 | ||||
| export PW_MUST_HAVE_DLL="" | ||||
| export PW_MUST_HAVE_DLL="mfc42 vcrun2019 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9" | ||||
| export PW_WINEDBG_DISABLE=1 | ||||
| export PW_WINDOWS_VER="10" | ||||
| export WINEARCH="win64" | ||||
| export pw_libs_ver="_v17" | ||||
| export porturl="http://portwine-linux.ru/" | ||||
| export PW_LIBS_VER="_v17" | ||||
| export PORTWINE_URL="http://portwine-linux.ru/" | ||||
| export GDK_BACKEND="x11" | ||||
|  | ||||
| export mono_ver=6.1.2 | ||||
| export gecko_ver=2.47.2 | ||||
| export WINEDIR="${PORT_WINE_PATH}/data/dist" | ||||
| export PW_PROTON_GE_VER="6.15-GE-2" | ||||
| export PW_MONO_VER="6.3.0" | ||||
| export PW_GECKO_VER="2.47.2" | ||||
| export WINEPREFIX="${PORT_WINE_PATH}/data/pfx" | ||||
| export WINE_WIN_START="start.exe /i /unix" | ||||
|  | ||||
| if [ ! -z "`cat "${PORT_WINE_PATH}/data/dist/version" | grep "GE"`" ] ; then  | ||||
|     export WINE_FULLSCREEN_FSR=1 | ||||
|     export WINE_FULLSCREEN_FSR_STRENGTH=1 | ||||
|     export mono_ver=6.2.2 | ||||
| fi | ||||
| export WINE_FULLSCREEN_FSR="1" | ||||
| export WINE_FULLSCREEN_FSR_STRENGTH="2" | ||||
|  | ||||
| ################################################################# | ||||
| ADD_IN_START_PORTWINE () | ||||
| add_in_start_portwine () | ||||
| { | ||||
| echo " " | ||||
| } | ||||
| ######################################################################## | ||||
| ADD_IN_STOP_PORTWINE () | ||||
| add_in_stop_portwine () | ||||
| { | ||||
| echo " " | ||||
| } | ||||
| ######################################################################## | ||||
| PW_OTHER_FIXES () { | ||||
| pw_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 | ||||
| } | ||||
| ###FOR_OLD_VERSION_PORTPROTON### | ||||
| #SCRIPTS_VERSION=1123 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user