diff --git a/data_from_portwine/port_on b/data_from_portwine/port_on index 6066e8ec..72e05f0d 100755 --- a/data_from_portwine/port_on +++ b/data_from_portwine/port_on @@ -88,14 +88,13 @@ def getmtimestr(*path_fragments): class Proton: def __init__(self, base_dir): self.base_dir = os.environ["PW_COMPAT_DATA_PATH"] - self.dist_dir = self.path("dist/") - self.bin_dir = self.path("dist/bin/") - self.lib_dir = self.path("dist/lib/") - self.lib64_dir = self.path("dist/lib64/") - self.fonts_dir = self.path("dist/share/fonts/") - self.version_file = self.path("version") - self.wine_bin = self.bin_dir + "wine" - self.wineserver_bin = self.bin_dir + "wineserver" + self.dist_dir = os.environ["WINEDIR"] + self.bin_dir = self.dist_dir + "/bin/" + self.lib_dir = self.dist_dir + "/lib/" + self.lib64_dir = self.dist_dir + "/lib64/" + self.fonts_dir = self.dist_dir + "/share/fonts/" + self.wine_bin = self.bin_dir + "/wine" + self.wineserver_bin = self.bin_dir + "/wineserver" self.gamemoderun = "gamemoderun" def path(self, d): @@ -105,7 +104,6 @@ class CompatData: def __init__(self, compatdata): self.base_dir = os.environ["PW_COMPAT_DATA_PATH"] self.prefix_dir = self.path("pfx/") - self.version_file = self.path("version") def path(self, d): return self.base_dir + d diff --git a/data_from_portwine/scripts/debug b/data_from_portwine/scripts/debug index ce0a9a40..818c6eac 100755 --- a/data_from_portwine/scripts/debug +++ b/data_from_portwine/scripts/debug @@ -39,14 +39,7 @@ echo "RAM" >> "${PORT_WINE_PATH}/${portname}.log" free -m >> "${PORT_WINE_PATH}/${portname}.log" echo "-----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "Graphic cards and drivers" >> "${PORT_WINE_PATH}/${portname}.log" -lspci | grep VGA >> "${PORT_WINE_PATH}/${portname}.log" -lspci | grep 3D >> "${PORT_WINE_PATH}/${portname}.log" -if [ -x "`which glxinfo 2>/dev/null`" ] -then - glxinfo | grep OpenGL >> "${PORT_WINE_PATH}/${portname}.log" -else - echo "!!!glxinfo not found!!!" >> "${PORT_WINE_PATH}/${portname}.log" -fi +"${WINELIB}/amd64/usr/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log" echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log" "${WINELIB}/amd64/usr/bin/vulkaninfo" | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log" diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index b2c36787..86c46f45 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -156,21 +156,35 @@ fi export DXVK_HUD="${var_dxvk_on}" echo "DXVK_HUD=${DXVK_HUD}" -cp -f "${WINEDIR}/lib/wine/fakedlls/dxgi.dll" "${WINEDIR}/lib/wine/dxgi.dll" -cp -f "${WINEDIR}/lib64/wine/fakedlls/dxgi.dll" "${WINEDIR}/lib64/wine/dxgi.dll" - if [ "${var_dxvk_on}" != "off" ]; then export PW_USE_WINED3D=0 export PW_DXGI_FROM_DXVK=1 + if [ -d "${WINEDIR}_dxvk" ]; then + export WINEDIR="${WINEDIR}_dxvk" + export WINELOADER="${WINEDIR}/bin/wine" + export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" + export WINESERVER="${WINEDIR}/bin/wineserver" + export PATH="${WINEDIR}/bin:${PATH}" + fi echo "Use DXVK and D9VK (DX9-DX11 to Vulkan)" else export PW_USE_WINED3D=1 export PW_VKD3D_FEATURE_LEVEL=1 export VKD3D_CONFIG=force_bindless_texel_buffer + if [ -d "${WINEDIR}_vkd3d" ]; then + export WINEDIR="${WINEDIR}_vkd3d" + export WINELOADER="${WINEDIR}/bin/wine" + export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" + export WINESERVER="${WINEDIR}/bin/wineserver" + export PATH="${WINEDIR}/bin:${PATH}" + fi echo "Use OpenGL and VKD3D (DX9-DX11 to OpenGL and DX12 to vulkan)" fi +cp -f "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEDIR}"/lib/wine/dxgi.dll +cp -f "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEDIR}"/lib64/wine/dxgi.dll + export DXVK_STATE_CACHE_PATH="${PATH_TO_GAME}" export DXVK_STATE_CACHE=1 export STAGING_SHARED_MEMORY=1 @@ -238,11 +252,11 @@ else fi echo "######################################################" ######################################################################## -sed -i '/HKCU,Software\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" && -sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" && -sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" && -sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}/share/wine/wine.inf" && -rm -f "${WINEDIR}"/lib*/wine/*steam* +sed -i '/HKCU,Software\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf && +sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf && +sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf && +sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf && +rm -f "${WINEDIR}"*/lib*/wine/*steam* if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/dosdevices ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || [ ! -f "${WINEPREFIX}"/system.reg ] || [ ! -f "${WINEPREFIX}"/user.reg ] || [ ! -f "${WINEPREFIX}"/userdef.reg ]; then $PW_TERM "${PW_RUNTIME}" "${WINELOADER}" wineboot -u fi diff --git a/data_from_portwine/scripts/vars/PortBattleNET_vars b/data_from_portwine/scripts/vars/PortBattleNET_vars index 982b738c..732a2bb7 100755 --- a/data_from_portwine/scripts/vars/PortBattleNET_vars +++ b/data_from_portwine/scripts/vars/PortBattleNET_vars @@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU export PW_WINEDBG_DISABLE=0 export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/data_from_portwine/scripts/vars/PortEpic_vars b/data_from_portwine/scripts/vars/PortEpic_vars index c9574f6b..bd1c4d5f 100755 --- a/data_from_portwine/scripts/vars/PortEpic_vars +++ b/data_from_portwine/scripts/vars/PortEpic_vars @@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU export PW_WINEDBG_DISABLE=1 export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/data_from_portwine/scripts/vars/PortGOG_vars b/data_from_portwine/scripts/vars/PortGOG_vars index cd80b2b6..dc5532f0 100755 --- a/data_from_portwine/scripts/vars/PortGOG_vars +++ b/data_from_portwine/scripts/vars/PortGOG_vars @@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU export PW_WINEDBG_DISABLE=1 export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +#export MANGOHUD=1 ######################################################################## GalaxyCommunication () { diff --git a/data_from_portwine/scripts/vars/PortLoL_vars b/data_from_portwine/scripts/vars/PortLoL_vars index 9ac059cb..6f2b2f2f 100755 --- a/data_from_portwine/scripts/vars/PortLoL_vars +++ b/data_from_portwine/scripts/vars/PortLoL_vars @@ -24,6 +24,7 @@ export PW_NVAPI_DISABLE=1 export PW_NO_WRITE_WATCH=1 export PW_WINEDBG_DISABLE=1 export PW_FORCE_LARGE_ADDRESS_AWARE=0 +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/data_from_portwine/scripts/vars/PortMailRu_vars b/data_from_portwine/scripts/vars/PortMailRu_vars index 417bd42f..1851cc6b 100755 --- a/data_from_portwine/scripts/vars/PortMailRu_vars +++ b/data_from_portwine/scripts/vars/PortMailRu_vars @@ -22,6 +22,7 @@ export PW_NVAPI_DISABLE=1 export PW_NO_WRITE_WATCH=1 export PW_WINEDBG_DISABLE=1 export PW_FORCE_LARGE_ADDRESS_AWARE=1 +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/data_from_portwine/scripts/vars/PortOrigin_vars b/data_from_portwine/scripts/vars/PortOrigin_vars index 5843428b..34463b23 100755 --- a/data_from_portwine/scripts/vars/PortOrigin_vars +++ b/data_from_portwine/scripts/vars/PortOrigin_vars @@ -27,6 +27,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU export PW_WINEDBG_DISABLE=1 export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/data_from_portwine/scripts/vars/PortUplay_vars b/data_from_portwine/scripts/vars/PortUplay_vars index 42715fa8..17bb108c 100755 --- a/data_from_portwine/scripts/vars/PortUplay_vars +++ b/data_from_portwine/scripts/vars/PortUplay_vars @@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU export PW_WINEDBG_DISABLE=1 export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/data_from_portwine/scripts/vars/PortWGC_vars b/data_from_portwine/scripts/vars/PortWGC_vars index 5a5612c0..b3c93fc2 100755 --- a/data_from_portwine/scripts/vars/PortWGC_vars +++ b/data_from_portwine/scripts/vars/PortWGC_vars @@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU export PW_WINEDBG_DISABLE=1 export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +#export MANGOHUD=1 ######################################################################## ADD_IN_START_PORTWINE () { diff --git a/portwine_install_script/PortNAME-XX b/portwine_install_script/PortNAME-XX index ad462b6a..3bea60c7 100644 --- a/portwine_install_script/PortNAME-XX +++ b/portwine_install_script/PortNAME-XX @@ -17,7 +17,7 @@ export port_ver=XX ######################################################################## export PROGS_INST="" export vexit=0 -for PROGS in "wget" "curl" "zenity" "tar" +for PROGS in "wget" "curl" "tar" do if [ ! -x "`which "${PROGS}" 2>/dev/null`" ];then PROGS_INST="${PROGS_INST} ${PROGS}" @@ -36,61 +36,76 @@ ARCH_NAME="${setup_script}.tar.xz" deflink="/home/${USER}/PortWINE/${portname}" [ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1 ######################################################################## -SET_LANG=`zenity --title "Install $portname" --text "Select the installation language" --list --radiolist \ +if [ "$1" = "-rus" ]; then + SET_LANG="Russian" + export s_install="1" +elif [ "$1" = "-eng" ]; then + SET_LANG="English" + export s_install="1" +else + SET_LANG=`zenity --title "Install $portname" --text "Select the installation language" --list --radiolist \ --column="Set:" --column "Language:" \ -TRUE "Russian" \ -FALSE "English" ` 2> /dev/null -if [ $? -eq 1 ];then exit 1; fi -case $SET_LANG in - "Russian") - INFO_TEXT="Вы запустили установщик PortWINE ${gamename} версии ${port_ver}. \n\nЭто не коммерческий продукт и развивается исключительно за идею и Ваши пожертвования. \nВсе права сторонего програмного обеспечения принадлежат их владельцам! \nПродолжая установку вы автоматически соглашаетесь с данными условиями." ;; - "English") - INFO_TEXT="You run the installer PortWINE ${gamename} v. ${port_ver}. \n\nThis is not a commercial product and developed exclusively for the idea and donate. \nAll rights to third-party software belong to their respective owners! \nContinuing the installation of you agree to these terms." ;; -esac -`zenity --info --title "INFO" --text "$INFO_TEXT" --no-wrap ` 2> /dev/null -if [ $? -eq 1 ];then echo "error" && exit 1; fi + TRUE "Russian" \ + FALSE "English" ` 2> /dev/null + if [ $? -eq 1 ];then exit 1; fi + case $SET_LANG in + "Russian") + INFO_TEXT="Вы запустили установщик PortWINE ${gamename} версии ${port_ver}. \n\nЭто не коммерческий продукт и развивается исключительно за идею и Ваши пожертвования. \nВсе права сторонего програмного обеспечения принадлежат их владельцам! \nПродолжая установку вы автоматически соглашаетесь с данными условиями." > /dev/null 2>&1 ;; + "English") + INFO_TEXT="You run the installer PortWINE ${gamename} v. ${port_ver}. \n\nThis is not a commercial product and developed exclusively for the idea and donate. \nAll rights to third-party software belong to their respective owners! \nContinuing the installation of you agree to these terms." > /dev/null 2>&1 ;; + esac + `zenity --info --title "INFO" --text "$INFO_TEXT" --no-wrap ` 2> /dev/null + if [ $? -eq 1 ];then echo "error" && exit 1; fi +fi ######################################################################## -case $SET_LANG in - "Russian") - inst1=`zenity --title "Install ${portname}" --text "Выберите путь для установки (обновления) порта,\nили оставьте его по умолчанию." --list --radiolist --width=350 --height=220 \ - --column="Выбор" --column "Путь:" \ - TRUE "${deflink}" \ - FALSE "Другой путь..." ` 2> /dev/null - if [ $? -eq 1 ];then exit 1; fi - case $inst1 in - "${deflink}") - D_PATH="${deflink}" ;; - "Другой путь...") - D_PATH=`zenity --file-selection --directory --title="Выберите путь..." ` - D_PATH="${D_PATH}/${portname}" ;; - esac ;; - "English") - inst1=`zenity --title "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=350 --height=220 \ - --column="Set..." --column "Path:" \ - TRUE "${deflink}" \ - FALSE "Other path..." ` 2> /dev/null - if [ $? -eq 1 ];then exit 1; fi - case $inst1 in - "${deflink}") - D_PATH="${deflink}" ;; - "Other path...") - D_PATH=`zenity --file-selection --directory --title="Select the path..." ` - D_PATH="${D_PATH}/${portname}" ;; - esac ;; -esac -if [ $? -eq 1 ];then echo "error" && exit 1; fi +if [ "${s_install}" = "1" ]; then + echo "${portname} is installed in ${deflink}" + D_PATH="${deflink}" +else + case $SET_LANG in + "Russian") + inst1=`zenity --title "Install ${portname}" --text "Выберите путь для установки (обновления) порта,\nили оставьте его по умолчанию." --list --radiolist --width=350 --height=220 \ + --column="Выбор" --column "Путь:" \ + TRUE "${deflink}" \ + FALSE "Другой путь..." ` 2> /dev/null + if [ $? -eq 1 ];then exit 1; fi + case $inst1 in + "${deflink}") + D_PATH="${deflink}" ;; + "Другой путь...") + D_PATH=`zenity --file-selection --directory --title="Выберите путь..." ` + D_PATH="${D_PATH}/${portname}" ;; + esac ;; + "English") + inst1=`zenity --title "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=350 --height=220 \ + --column="Set..." --column "Path:" \ + TRUE "${deflink}" \ + FALSE "Other path..." ` 2> /dev/null + if [ $? -eq 1 ];then exit 1; fi + case $inst1 in + "${deflink}") + D_PATH="${deflink}" ;; + "Other path...") + D_PATH=`zenity --file-selection --directory --title="Select the path..." ` + D_PATH="${D_PATH}/${portname}" ;; + esac ;; + esac + if [ $? -eq 1 ];then echo "error" && exit 1; fi +fi ######################################################################## -case $SET_LANG in - "Russian") - zen() { - zenity --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1 - } ;; - "English") - zen() { - zenity --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1 - } ;; -esac -if [ $? -eq 1 ];then echo "error" && exit 1; fi +if [ "${s_install}" != "1" ]; then + case $SET_LANG in + "Russian") + zen() { + zenity --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1 + } ;; + "English") + zen() { + zenity --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1 + } ;; + esac + if [ $? -eq 1 ];then echo "error" && exit 1; fi +fi ######################################################################## export PORT_WINE_PATH="${D_PATH}" if [ ! -d "${PORT_WINE_PATH}" ];then @@ -128,11 +143,15 @@ read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc" export update_loc=${update_loc} ######################################################################## cd "${PORT_WINE_PATH}" -tail -n +168 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}" -tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" | zen +tail -n +187 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}" +if [ "${s_install}" = "1" ]; then + tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" +else + tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" | zen +fi chmod 755 -R "${PORT_WINE_PATH}" mv -f "${PORT_WINE_PATH}/${ARCH_NAME}" "${PORT_WINE_PATH}/data/tmp" -sed -n 1,167p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}" +sed -n 1,186p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}" ######################################################################## if [ -d "${PORT_GAMEDIR}_old" ];then rm -fR "${PORT_GAMEDIR}"