diff --git a/data_from_portwine/dxvk.conf b/data_from_portwine/dxvk.conf deleted file mode 100755 index 4d1861d4..00000000 --- a/data_from_portwine/dxvk.conf +++ /dev/null @@ -1,333 +0,0 @@ -# Create the VkSurface on the first call to IDXGISwapChain::Present, -# rather than when creating the swap chain. Some games that start -# rendering with a different graphics API may require this option, -# or otherwise the window may stay black. -# -# Supported values: True, False - -# dxgi.deferSurfaceCreation = False -# d3d9.deferSurfaceCreation = False - - -# Enforce a stricter maximum frame latency. Overrides the application -# setting specified by calling IDXGIDevice::SetMaximumFrameLatency. -# Setting this to 0 will have no effect. -# -# Supported values : 0 - 16 - -# dxgi.maxFrameLatency = 2 -# d3d9.maxFrameLatency = 2 - - -# Override PCI vendor and device IDs reported to the application. Can -# cause the app to adjust behaviour depending on the selected values. -# -# Supported values: Any four-digit hex number. - -# dxgi.customDeviceId = 10de -# dxgi.customVendorId = 10de - -# d3d9.customDeviceId = 10de -# d3d9.customVendorId = 10de - - -# Report Nvidia GPUs as AMD GPUs by default. This is enabled by default -# to work around issues with NVAPI, but may cause issues in some games. -# -# Supported values: True, False - -dxgi.nvapiHack = True - - -# Override maximum amount of device memory and shared system memory -# reported to the application. This may fix texture streaming issues -# in games that do not support cards with large amounts of VRAM. -# -# Supported values: Any number in Megabytes. - -# dxgi.maxDeviceMemory = 0 -# dxgi.maxSharedMemory = 0 - - -# Override back buffer count for the Vulkan swap chain. -# Setting this to 0 or less will have no effect. -# -# Supported values: Any number greater than or equal to 2. - -# dxgi.numBackBuffers = 0 - - -# Overrides synchronization interval (Vsync) for presentation. -# Setting this to 0 disables vertical synchronization entirely. -# A positive value 'n' will enable Vsync and repeat the same -# image n times, and a negative value will have no effect. -# -# Supported values: Any non-negative number - -# dxgi.syncInterval = -1 -# d3d9.presentInterval = -1 - - -# True enables the mailbox present mode in case regular Vsync is disabled. -# This should avoid tearing, but may be unsupported on some systems -# or require setting dxgi.numBackBuffers to a higher value in order -# to work properly. -# -# False enables the relaxed fifo present mode in case regular Vsync is enabled. -# This should result in tearing but reduce stutter if FPS are too low, -# but may be unsupported on some systems. -# -# Please do not report issues with this option. -# -# Supported values: Auto, True, False - -# dxgi.tearFree = Auto -# d3d9.tearFree = Auto - - -# Performs range check on dynamically indexed constant buffers in shaders. -# This may be needed to work around a certain type of game bug, but may -# also introduce incorrect behaviour. -# -# Supported values: True, False - -# d3d11.constantBufferRangeCheck = False - - -# Assume single-use mode for command lists created on deferred contexts. -# This may need to be disabled for some applications to avoid rendering -# issues, which may come at a significant performance cost. -# -# Supported values: True, False - -# d3d11.dcSingleUseMode = True - - -# Override the maximum feature level that a D3D11 device can be created -# with. Setting this to a higher value may allow some applications to run -# that would otherwise fail to create a D3D11 device. -# -# Supported values: 9_1, 9_2, 9_3, 10_0, 10_1, 11_0, 11_1 - -# d3d11.maxFeatureLevel = 11_1 - - -# Overrides the maximum allowed tessellation factor. This can be used to -# improve performance in titles which overuse tessellation. -# -# Supported values: Any number between 8 and 64 - -#d3d11.maxTessFactor = 8 - - -# Enables relaxed pipeline barriers around UAV writes. -# -# This may improve performance in some games, but may also introduce -# rendering issues. Please don't report bugs with the option enabled. -# -# Supported values: True, False - -# d3d11.relaxedBarriers = False - - -# Overrides anisotropic filtering for all samplers. Set this to a positive -# value to enable AF for all samplers in the game, or to 0 in order to -# disable AF entirely. Negative values will have no effect. -# -# Supported values: Any number between 0 and 16 - -#d3d11.samplerAnisotropy = 8 -#d3d9.samplerAnisotropy = 8 - - -# Declares vertex positions as invariant in order to solve -# potential Z-fighting issues at a small performance cost. -# -# Supported values: True, False - -# d3d11.invariantPosition = False -# d3d9.invariantPosition = False - - -# Replaces NaN outputs from fragment shaders with zeroes for floating -# point render target. Used in some games to prevent artifacting. -# -# Supported values: True, False - -# d3d11.enableRtOutputNanFixup = False - - -# Clears workgroup memory in compute shaders to zero. Some games don't do -# this and rely on undefined behaviour. Enabling may reduce performance. -# -# Supported values: True, False - -# d3d11.zeroWorkgroupMemory = False - - -# Sets number of pipeline compiler threads. -# -# Supported values: -# - 0 to automatically determine the number of threads to use -# - any positive number to enforce the thread count - -# dxvk.numCompilerThreads = 0 - - -# Toggles raw SSBO usage. -# -# Uses storage buffers to implement raw and structured buffer -# views. Enabled by default on hardware which has a storage -# buffer offset alignment requirement of 4 Bytes (e.g. AMD). -# Enabling this may improve performance, but is not safe on -# hardware with higher alignment requirements. -# -# Supported values: -# - Auto: Don't change the default -# - True, False: Always enable / disable - -# dxvk.useRawSsbo = Auto - - -# Toggles early discard. -# -# Uses subgroup operations to determine whether it is safe to -# discard fragments before the end of a fragment shader. This -# is enabled by default on all drivers except RADV and Nvidia. -# Enabling this may improve or degrade performance depending -# on the game and hardware, or cause other issues. -# -# Supported values: -# - Auto: Don't change the default -# - True, False: Always enable / disable - -# dxvk.useEarlyDiscard = Auto - - -# Sets enabled HUD elements -# -# Behaves like the DXVK_HUD environment variable if the -# environment variable is not set, otherwise it will be -# ignored. The syntax is identical. - -# dxvk.hud = - - -# Reported shader model -# -# The shader model to state that we support in the device -# capabilities that the applicatation queries. -# -# Supported values: -# - 1: Shader Model 1 -# - 2: Shader Model 2 -# - 3: Shader Model 3 - -# d3d9.shaderModel = 3 - - -# Evict Managed on Unlock -# -# Decides whether we should evict managed resources from -# system memory when they are unlocked entirely. -# -# Supported values: -# - True, False: Always enable / disable - -# d3d9.evictManagedOnUnlock = False - - -# DPI Awareness -# -# Decides whether we should call SetProcessDPIAware on device -# creation. Helps avoid upscaling blur in modern Windows on -# Hi-DPI screens/devices. -# -# Supported values: -# - True, False: Always enable / disable - -# d3d9.dpiAware = True - - -# Strict Constant Copies -# -# Decides whether we should always copy defined constants to -# the UBO when relative addresssing is used, or only when the -# relative addressing starts a defined constant. -# -# Supported values: -# - True, False: Always enable / disable - -# d3d9.strictConstantCopies = False - - -# Strict Pow -# -# Decides whether we have an opSelect for handling pow(0,0) = 0 -# otherwise it becomes undefined. -# -# Supported values: -# - True, False: Always enable / disable - -# d3d9.strictPow = True - - -# Lenient Clear -# -# Decides whether or not we fastpath clear anyway if we are close enough to -# clearing a full render target. -# -# Supported values: -# - True, False: Always enable / disable - -# d3d9.lenientClear = False - - -# Max available memory -# -# Changes the max initial value used in tracking and GetAvailableTextureMem -# Value in Megabytes -# -# Supported values: -# - Any int32_t - -# d3d9.maxAvailableMemory = 4096 - - -# Force enable/disable floating point quirk emulation -# -# Force toggle anything * 0 emulation -# Tristate -# Supported values: -# - True/False - -# d3d9.floatEmulation = - - -# Enable dialog box mode -# -# Changes the default state of dialog box mode. -# *Disables* exclusive fullscreen when enabled. -# -# Supported values: -# - True, False: Always enable / disable - -# d3d9.enableDialogMode = False - -# Overrides the application's MSAA level on the swapchain -# -# Supported values: -1 (application) and 0 to 16 (user override) - -# d3d9.forceSwapchainMSAA = -1 - - -# Long Mad -# -# Should we make our Mads a FFma or do it the long way with an FMul and an FAdd? -# This solves some rendering bugs in games that have z-pass shaders which -# don't match entirely to the regular vertex shader in this way. -# -# Supported values: -# - True/False - -# d3d9.longMad = False diff --git a/data_from_portwine/img/.ico b/data_from_portwine/img/.ico new file mode 100755 index 00000000..ba9901d9 Binary files /dev/null and b/data_from_portwine/img/.ico differ diff --git a/data_from_portwine/img/gui/port_proton.png b/data_from_portwine/img/gui/port_proton.png new file mode 100755 index 00000000..a044688b Binary files /dev/null and b/data_from_portwine/img/gui/port_proton.png differ diff --git a/data_from_portwine/img/readme.png b/data_from_portwine/img/readme.png new file mode 100755 index 00000000..13de10d1 Binary files /dev/null and b/data_from_portwine/img/readme.png differ diff --git a/data_from_portwine/img/rm.png b/data_from_portwine/img/rm.png new file mode 100755 index 00000000..7b88c10b Binary files /dev/null and b/data_from_portwine/img/rm.png differ diff --git a/data_from_portwine/img/s.png b/data_from_portwine/img/s.png new file mode 100755 index 00000000..6bf95765 Binary files /dev/null and b/data_from_portwine/img/s.png differ diff --git a/data_from_portwine/img/w.png b/data_from_portwine/img/w.png new file mode 100755 index 00000000..62cfc284 Binary files /dev/null and b/data_from_portwine/img/w.png differ diff --git a/data_from_portwine/scripts/create_shortcut b/data_from_portwine/scripts/create_shortcut deleted file mode 100755 index c377c5ef..00000000 --- a/data_from_portwine/scripts/create_shortcut +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# Author: PortWINE-Linux.ru -. "$(dirname $(readlink -f "$0"))/runlib" -######################################################################## -if [ ! -z "$1" ]; then - PORTPROTON_EXE="$1" -else - PORTPROTON_EXE=$(zenity --file-selection --file-filter=""*.exe" "*.bat"" \ - --title="${sc_path}" --filename="${PORT_WINE_PATH}/data/pfx/drive_c/") - if [ $? -eq 1 ];then exit 1; fi -fi -PORTPROTON_NAME="$(basename "${PORTPROTON_EXE}" | sed s/".exe"/""/g )" -PORTPROTON_PATH="$( cd "$( dirname "${PORTPROTON_EXE}" )" >/dev/null 2>&1 && pwd )" -if [ -x "`which wrestool 2>/dev/null`" ]; then - wrestool -x --output="${PORTPROTON_PATH}/" -t14 "${PORTPROTON_EXE}" - cp "$(ls -S -1 "${PORTPROTON_EXE}"*".ico" | head -n 1)" "${PORTPROTON_EXE}.ico" - cp -f "${PORTPROTON_EXE}.ico" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.ico" -fi -PORTPROTON_CMD="" -# PORTPROTON_CMD=$(zenity --entry --text "${sc_cmd}") -# if [ $? -eq 1 ];then exit 1; fi -start_settings=`zenity --title "${ss_title}" --text "${ss_text}" --list --radiolist \ ---column="${inst_set}" --column "${ss_ver}" --column "${ss_dr}" --width=500 --height=220 \ -TRUE "DXVK" "${ss_ogl_3}" \ -FALSE "VKD3D and OpenGL" "${ss_ogl_2}" ` -if [ $? -eq 1 ];then exit 1; fi -case $start_settings in -"VKD3D and OpenGL") - dxvk_ogl_var="off" ;; -"DXVK") - dxvk_ogl_var="0" ;; -esac -######################################################################## -name_desktop="${PORTPROTON_NAME}" -echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "Exec="env dxvk_ogl_var=$dxvk_ogl_var launch_parameters=\""${PORTPROTON_CMD}"\" PATH_TO_GAME=\""$PORTPROTON_PATH"\" sh \"${PORT_SCRIPTS_PATH}/start\" \"${PORTPROTON_EXE}\" "" \ ->> "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" -echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.ico"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" -chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" -######################################################################## -`zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` > /dev/null 2>&1 -if [ $? -eq "0" ]; then - cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ -fi diff --git a/data_from_portwine/scripts/debug b/data_from_portwine/scripts/debug deleted file mode 100755 index fbef3ed8..00000000 --- a/data_from_portwine/scripts/debug +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -# Author: PortWINE-Linux.ru -. "$(dirname $(readlink -f "$0"))/runlib" -KILL_PORTWINE -export PW_USE_TERMINAL=1 -START_PORTWINE -echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log" -echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log" -echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log" -echo "echo $(ldd --version)" | grep ldd >> "${PORT_WINE_PATH}/${portname}.log" -echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "PortWINE version:" >> "${PORT_WINE_PATH}/${portname}.log" -read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" -echo "${portname}-${install_ver}" >> "${PORT_WINE_PATH}/${portname}.log" -echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "var_dxvk_on = ${var_dxvk_on}" >> "${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" -date >> "${PORT_WINE_PATH}/${portname}.log" -echo "-----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "The installation path of the ${portname}:" >> "${PORT_WINE_PATH}/${portname}.log" -echo "$PORT_WINE_PATH" >> "${PORT_WINE_PATH}/${portname}.log" -echo "----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "Operating system" >> "${PORT_WINE_PATH}/${portname}.log" -lsb_release -d | sed s/Description/ОС/g >> "${PORT_WINE_PATH}/${portname}.log" -echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "Desktop Environment" >> "${PORT_WINE_PATH}/${portname}.log" -echo "$DESKTOP_SESSION" >> "${PORT_WINE_PATH}/${portname}.log" -echo "${XDG_CURRENT_DESKTOP}" >> "${PORT_WINE_PATH}/${portname}.log" -echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "Kernel" >> "${PORT_WINE_PATH}/${portname}.log" -uname -r >> "${PORT_WINE_PATH}/${portname}.log" -echo "-------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "CPU" >> "${PORT_WINE_PATH}/${portname}.log" -cat /proc/cpuinfo | grep "model name" >> "${PORT_WINE_PATH}/${portname}.log" -echo "------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -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" -"${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" -"${WINELIB}/amd64/usr/bin/vkcube" --c 50 -if [ $? -eq 0 ]; then - echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log" -else - echo "Vkcube test completed with error" >> "${PORT_WINE_PATH}/${portname}.log" -fi -echo "---------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -if [ ! -x "`which gamemoderun 2>/dev/null`" ] -then - 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" -"$WINELOADER" --version 2>&1 | tee -a "${PORT_WINE_PATH}/${portname}.log" -echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" -echo "log WINE:" >> "${PORT_WINE_PATH}/${portname}.log" - -export PW_LOG=1 -export DXVK_HUD="full" -export PW_WINEDBG_DISABLE=0 - -PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -l -lf ${PORT_WINE_PATH}/${portname}.log.wine -geometry 159x37 -e" - -if [ -f "${PORT_WINE_PATH}/${portname}.log.wine" ]; then - rm -f "${PORT_WINE_PATH}/${portname}.log.wine" -fi -if [ ! -z "${gamename}" ]; then - if [ ! -z ${optirun_on} ] - then - ${PW_XTERM} "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "${gamestart}" ${launch_parameters} 2>&1 & - else - ${PW_XTERM} "${PW_RUNTIME}" "${port_on_run}" "run" "${gamestart}" ${launch_parameters} 2>&1 & - fi -else - if [ ! -z ${optirun_on} ] - then - ${PW_XTERM} "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" explorer 2>&1 & - else - ${PW_XTERM} "${PW_RUNTIME}" "${port_on_run}" "run" explorer 2>&1 & - fi -fi -zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && "${WINESERVER}" -k -STOP_PORTWINE | sszen -cat "${PORT_WINE_PATH}/${portname}.log.wine" >> "${PORT_WINE_PATH}/${portname}.log" -rm -f "${PORT_WINE_PATH}/${portname}.log.wine" -deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log" | awk '! a[$0]++') -echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log" -echo "$deb_text" | zenity --text-info --editable \ ---width=800 --height=600 \ ---title="${portname}.log" diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index d00bae3a..efea20ea 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -15,7 +15,8 @@ then export ss_ver="Версия?" export ss_default_1="Cтандартный запуск" export ss_default_2="Старый запуск, с вопросами и логами" - export ss_ogl_2="Использовать OpenGL и VKD3D. (DX9-DX11 в OpenGL и DX12 в vulkan)" + export ss_ogl_1="Использовать OpenGL. (DirectX в OpenGL)" + export ss_ogl_2="Использовать VKD3D. ( DX12 в vulkan)" export ss_ogl_3="Использовать DXVK и D9VK. (DX9-DX11 в Vulkan и выключить DX12)" export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?" @@ -89,7 +90,8 @@ then export ss_ver="Version:" export ss_default_1="Standard start" export ss_default_2="Old startup, with questions and logs" - export ss_ogl_2="Use OpenGL and VKD3D. (DX9-DX11 to OpenGL and DX12 to vulkan)" + export ss_ogl_1="Use OpenGL. (DirectX to OpenGL)" + export ss_ogl_2="Use VKD3D. (DX12 to vulkan)" export ss_ogl_3="Use DXVK and D9VK. (DX9-DX11 to Vulkan)" export ss_done="The shortcut was created in the ${portname} directory.\nAdd it to MENU -> GAMES?" diff --git a/data_from_portwine/port_on b/data_from_portwine/scripts/port_on similarity index 76% rename from data_from_portwine/port_on rename to data_from_portwine/scripts/port_on index ccc0e38a..ebb02fb7 100755 --- a/data_from_portwine/port_on +++ b/data_from_portwine/scripts/port_on @@ -94,6 +94,7 @@ class Proton: self.wine_bin = self.bin_dir + "/wine" self.wineserver_bin = self.bin_dir + "/wineserver" self.gamemoderun = "gamemoderun" + self.pw_launch_parameters = os.environ["LAUNCH_PARAMETERS"] def path(self, d): return self.base_dir + d @@ -171,47 +172,51 @@ class CompatData: #create font files symlinks self.create_fonts_symlinks() + if "var_pw_vulkan" in os.environ and nonzero(os.environ["var_pw_vulkan"]): + #copy openvr files into place + if os.path.isfile(g_proton.lib_dir + "wine/fakedlls/vrclient.dll"): + dst = self.prefix_dir + "/drive_c/vrclient/bin/" + makedirs(dst) + try_copy(g_proton.lib_dir + "wine/fakedlls/vrclient.dll", dst) + try_copy(g_proton.lib64_dir + "wine/fakedlls/vrclient_x64.dll", dst) - #copy openvr files into place - if os.path.isfile(g_proton.lib_dir + "wine/fakedlls/vrclient.dll"): - dst = self.prefix_dir + "/drive_c/vrclient/bin/" - makedirs(dst) - try_copy(g_proton.lib_dir + "wine/fakedlls/vrclient.dll", dst) - try_copy(g_proton.lib64_dir + "wine/fakedlls/vrclient_x64.dll", dst) + if os.path.isfile(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll"): + try_copy(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/syswow64/") + try_copy(g_proton.lib64_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/system32/") - if os.path.isfile(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll"): - try_copy(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/syswow64/") - try_copy(g_proton.lib64_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/system32/") + if use_wined3d: + dxvkfiles = [] + wined3dfiles = ["d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"] + if os.path.isfile(g_proton.lib64_dir + "wine/dxvk/dxvk_config.dll"): + dxvkfiles.append("dxvk_config") + os.system("echo PW_VULKAN_USE=vkd3d") + else: + dxvkfiles = ["dxvk_config", "d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"] + wined3dfiles = [] + os.system("echo PW_VULKAN_USE=dxvk") - if use_wined3d: - dxvkfiles = [] - wined3dfiles = ["d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"] - if os.path.isfile(g_proton.lib64_dir + "wine/dxvk/dxvk_config.dll"): - dxvkfiles.append("dxvk_config") + #if the user asked for dxvk's dxgi (dxgi=n), then copy it into place + if "PW_DXGI_FROM_DXVK" in os.environ and nonzero(os.environ["PW_DXGI_FROM_DXVK"]): + dxvkfiles.append("dxgi") + else: + wined3dfiles.append("dxgi") + + for f in wined3dfiles: + try_copy(g_proton.lib64_dir + "wine/" + f + ".dll", self.prefix_dir + "drive_c/windows/system32/" + f + ".dll") + try_copy(g_proton.lib_dir + "wine/" + f + ".dll", self.prefix_dir + "drive_c/windows/syswow64/" + f + ".dll") + + for f in dxvkfiles: + if os.path.isfile(g_proton.lib64_dir + "wine/dxvk/" + f + ".dll"): + try_copy(g_proton.lib64_dir + "wine/dxvk/" + f + ".dll", self.prefix_dir + "drive_c/windows/system32/" + f + ".dll") + try_copy(g_proton.lib_dir + "wine/dxvk/" + f + ".dll", self.prefix_dir + "drive_c/windows/syswow64/" + f + ".dll") + g_session.dlloverrides[f] = "n" + + if os.path.isfile(g_proton.lib64_dir + "wine/vkd3d-proton/d3d12.dll"): + try_copy(g_proton.lib64_dir + "wine/vkd3d-proton/d3d12.dll", self.prefix_dir + "drive_c/windows/system32/d3d12.dll") + if os.path.isfile(g_proton.lib_dir + "wine/vkd3d-proton/d3d12.dll"): + try_copy(g_proton.lib_dir + "wine/vkd3d-proton/d3d12.dll", self.prefix_dir + "drive_c/windows/syswow64/d3d12.dll") else: - dxvkfiles = ["dxvk_config", "d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"] - wined3dfiles = [] - - #if the user asked for dxvk's dxgi (dxgi=n), then copy it into place - if "PW_DXGI_FROM_DXVK" in os.environ and nonzero(os.environ["PW_DXGI_FROM_DXVK"]): - dxvkfiles.append("dxgi") - else: - wined3dfiles.append("dxgi") - - for f in wined3dfiles: - try_copy(g_proton.lib64_dir + "wine/" + f + ".dll", self.prefix_dir + "drive_c/windows/system32/" + f + ".dll") - try_copy(g_proton.lib_dir + "wine/" + f + ".dll", self.prefix_dir + "drive_c/windows/syswow64/" + f + ".dll") - - for f in dxvkfiles: - if os.path.isfile(g_proton.lib64_dir + "wine/dxvk/" + f + ".dll"): - try_copy(g_proton.lib64_dir + "wine/dxvk/" + f + ".dll", self.prefix_dir + "drive_c/windows/system32/" + f + ".dll") - try_copy(g_proton.lib_dir + "wine/dxvk/" + f + ".dll", self.prefix_dir + "drive_c/windows/syswow64/" + f + ".dll") - g_session.dlloverrides[f] = "n" - - if os.path.isfile(g_proton.lib64_dir + "wine/vkd3d-proton/d3d12.dll"): - try_copy(g_proton.lib64_dir + "wine/vkd3d-proton/d3d12.dll", self.prefix_dir + "drive_c/windows/system32/d3d12.dll") - if os.path.isfile(g_proton.lib_dir + "wine/vkd3d-proton/d3d12.dll"): - try_copy(g_proton.lib_dir + "wine/vkd3d-proton/d3d12.dll", self.prefix_dir + "drive_c/windows/syswow64/d3d12.dll") + os.system("echo PW_VULKAN_USE=0 - Vulkan is disabled") def comma_escaped(s): escaped = False @@ -281,7 +286,7 @@ class Session: #load environment overrides if "PW_LOG" in os.environ and nonzero(os.environ["PW_LOG"]): - self.env.setdefault("WINEDEBUG", "+timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree") + self.env.setdefault("WINEDEBUG", "+timestamp,+pid,+tid,+seh,+debugstr,+mscoree") self.env.setdefault("DXVK_LOG_LEVEL", "info") self.env.setdefault("VKD3D_DEBUG", "warn") self.env.setdefault("WINE_MONO_TRACE", "E:System.NotImplementedException") @@ -305,7 +310,7 @@ class Session: self.check_environment("PW_OLD_GL_STRING", "oldglstr") self.check_environment("PW_NO_WINEMFPLAY", "nomfplay") self.check_environment("PW_NO_WRITE_WATCH", "nowritewatch") - self.check_environment("PW_DXVK_ASYNC", "dxvkasync") + self.check_environment("PW_DXVK_NO_ASYNC", "dxvknoasync") self.check_environment("PW_NVAPI_DISABLE", "nonvapi") self.check_environment("PW_WINEDBG_DISABLE", "nowinedbg") self.check_environment("PW_HIDE_NVIDIA_GPU", "hidenvgpu") @@ -322,6 +327,9 @@ class Session: else: self.env["WINEFSYNC"] = "1" + if "dxvknoasync" in self.compat_config: + self.env["RADV_DEBUG"] = "llvm" + if "nowritewatch" in self.compat_config: self.env["WINE_DISABLE_WRITE_WATCH"] = "1" @@ -347,14 +355,29 @@ class Session: self.env["WINE_DISABLE_WRITE_WATCH"] = "1" if "nonvapi" in self.compat_config: - self.dlloverrides["nvapi"] = "d" - self.dlloverrides["nvapi64"] = "d" + self.dlloverrides["nvapi"] = "" + self.dlloverrides["nvapi64"] = "" if "nowinedbg" in self.compat_config: - self.dlloverrides["winedbg.exe"] = "d" + self.dlloverrides["winedbg.exe"] = "" + + if "var_pw_vulkan" in os.environ and nonzero(os.environ["var_pw_vulkan"]): + os.system("echo Use vulkan") + else: + self.dlloverrides["vrclient"] = "" + self.dlloverrides["openvr_api_dxvk"] = "" + self.dlloverrides["dxvk_config"] = "" + self.dlloverrides["dxgi"] = "b" + self.dlloverrides["d3d11"] = "b" + self.dlloverrides["d3d10"] = "b" + self.dlloverrides["d3d10core"] = "b" + self.dlloverrides["d3d10_1"] = "b" + self.dlloverrides["d3d9"] = "b" + self.dlloverrides["d3d12"] = "b" + os.system("echo All d3d dll use as built-in") if "nod3d12" in self.compat_config: - self.dlloverrides["d3d12"] = "d" + self.dlloverrides["d3d12"] = "" s = "" for dll in self.dlloverrides: @@ -375,12 +398,9 @@ class Session: def run(self): if "PW_GAMEMODERUN" in os.environ and nonzero(os.environ["PW_GAMEMODERUN"]): - self.run_proc([g_proton.gamemoderun] + [g_proton.wine_bin] + sys.argv[2:] + sys.argv[3:] + sys.argv[4:]) + self.run_proc([g_proton.gamemoderun] + [g_proton.wine_bin] + sys.argv[2:] + [g_proton.pw_launch_parameters]) else: - self.run_proc([g_proton.wine_bin] + sys.argv[2:] + sys.argv[3:] + sys.argv[4:]) - - def init_run(self): - self.run_proc([g_proton.wine_bin] + " wineboot") + self.run_proc([g_proton.wine_bin] + sys.argv[2:] + [g_proton.pw_launch_parameters]) if __name__ == "__main__": if not "PW_COMPAT_DATA_PATH" in os.environ: @@ -401,9 +421,6 @@ if __name__ == "__main__": if sys.argv[1] == "run": #start target app g_session.run() - elif sys.argv[1] == "init_run": - #first start - g_session.init_run() elif sys.argv[1] == "waitforexitandrun": #wait for wineserver to shut down g_session.run_proc([g_proton.wineserver_bin, "-w"]) diff --git a/data_from_portwine/scripts/port_update b/data_from_portwine/scripts/port_update deleted file mode 100755 index 5ec98482..00000000 --- a/data_from_portwine/scripts/port_update +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -# Author: PortWINE-Linux.ru - -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 - wget -T 2 --output-document="${PORT_WINE_TMP_PATH}/${portname}_cur_ver" "http://portwine-linux.ru/current_version/${portname}_ver" - sleep 1 - if [ -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] - then - read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" - read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" - rm -f "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" - if [ "${current_ver}" -gt "${install_ver}" ] - then - xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=220 --column="${inst_set}" --column "${port_upd3}" \ - TRUE "${port_upd4}" \ - FALSE "${port_upd5}" \ - FALSE "${port_upd6}" ` - case $xsd in - "${port_upd4}") - "${WINESERVER}" -k - 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=240 --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}") - if [ ! -z "$(command -v sensible-browser)" ]; then - sensible-browser "$urlg" & - elif [ ! -z "$(command -v xdg-open)" ]; then - xdg-open "$urlg" & - elif [ ! -z "$(command -v gnome-open)" ]; then - gnome-open "$urlg" & - elif [ ! -z "$(command -v python)" ]; then - python -m webbrowser "$urlg" - fi & - echo "200" > "${HOME}/.config/.PortTime" - sleep 5 - exit 0 ;; - "${port_time5}") - echo "50" > "${HOME}/.config/.PortTime" ;; - "${port_time6}") - echo "100" > "${HOME}/.config/.PortTime" ;; - esac - fi -fi - diff --git a/data_from_portwine/scripts/portproton.sh b/data_from_portwine/scripts/portproton.sh deleted file mode 100755 index f1059a0d..00000000 --- a/data_from_portwine/scripts/portproton.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# Author: PortWINE-Linux.ru -. "$(dirname $(readlink -f "$0"))/runlib" -START_PORTWINE -if [ -f "$1" ]; then - export portwine_exe="$(readlink -f "$1")" - export PATH_TO_GAME="$( cd "$( dirname "$1" )" >/dev/null 2>&1 && pwd )" - cd "$PATH_TO_GAME" - if [ ! -z ${optirun_on} ]; then - $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "$portwine_exe" - else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "$portwine_exe" - fi -else - cd "${WINEPREFIX}/drive_c/" - if [ ! -z ${optirun_on} ] - then - $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "explorer" - else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "explorer" - fi -fi -STOP_PORTWINE diff --git a/data_from_portwine/scripts/portwine_db/AliceMadnessReturns b/data_from_portwine/scripts/portwine_db/AliceMadnessReturns new file mode 100644 index 00000000..06e3f9a4 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/AliceMadnessReturns @@ -0,0 +1,8 @@ +#!/bin/bash +#Author: +#AliceMadnessReturns.exe +#Rating=5 +################################################ +export PW_VULKAN_USE=dxvk +export LAUNCH_PARAMETERS="" +export PW_DLL_INSTALL="physx" diff --git a/data_from_portwine/scripts/portwine_db/Cyberpunk2077 b/data_from_portwine/scripts/portwine_db/Cyberpunk2077 new file mode 100644 index 00000000..3564ad7c --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Cyberpunk2077 @@ -0,0 +1,9 @@ +#!/bin/bash +#Author: PortWINE +#Cyberpunk2077.exe +#Rating=4 +################################################ +export PW_VULKAN_USE=vkd3d +export LAUNCH_PARAMETERS="" +export PULSE_LATENCY_MSEC=60 + diff --git a/data_from_portwine/scripts/portwine_db/DOOM Eternal b/data_from_portwine/scripts/portwine_db/DOOM Eternal new file mode 100644 index 00000000..5d0511c0 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/DOOM Eternal @@ -0,0 +1,26 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#DOOMEternalx64vk.exe +#Rating=1-5 +################################################ +#export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL +export WINEDLLOVERRIDES="amd_ags_x64=b,n" +#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 +export PW_DXVK_NO_ASYNC=1 +#export PW_USE_TERMINAL=1 +#export PW_OLD_GL_STRING=0 +#export PW_NVAPI_DISABLE=1 +#export PW_VKD3D_FEATURE_LEVEL=0 +#export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). +#export PW_HIDE_NVIDIA_GPU=0 +#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +#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 PULSE_LATENCY_MSEC=60 +#export PW_DLL_INSTALL="foo bar" +export LAUNCH_PARAMETERS="+com_skipIntroVideo 1 +com_skipSignInManager 1" +#export VK_ICD_FILENAMES="/home/xuser/.PortWINE/libs_v5/usr/lib/x86_64-linux-gnu/amd_icd64.json" +#export PW_GUI_DISABLED_CS=1 diff --git a/data_from_portwine/scripts/portwine_db/Death Stranding b/data_from_portwine/scripts/portwine_db/Death Stranding new file mode 100644 index 00000000..2b7401d9 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Death Stranding @@ -0,0 +1,8 @@ +#!/bin/bash +#Author: +#ds.exe +#Rating=5 +################################################ +export PW_VULKAN_USE=vkd3d +export LAUNCH_PARAMETERS="" +export WINEDLLOVERRIDES="d3dcompiler_47,dxcompiler=n,b" diff --git a/data_from_portwine/scripts/portwine_db/Epic Games Launcher b/data_from_portwine/scripts/portwine_db/Epic Games Launcher new file mode 100644 index 00000000..6b92c760 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Epic Games Launcher @@ -0,0 +1,8 @@ +#!/bin/bash +#Author: PortWINE +#EpicGamesLauncher.exe +#Rating=5 +################################################ +export PW_VULKAN_USE=dxvk +export LAUNCH_PARAMETERS="-opengl -SkipBuildPatchPrereq" +export PW_DLL_INSTALL="vcrun2013 vcrun2019 d3dcompiler_43 d3dcompiler_47" diff --git a/data_from_portwine/scripts/portwine_db/Far Cry 1 b/data_from_portwine/scripts/portwine_db/Far Cry 1 new file mode 100644 index 00000000..17f84479 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Far Cry 1 @@ -0,0 +1,23 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#FarCry.exe +#Rating=5 +################################# +export PW_VULKAN_USE=dxvk #dxvk or vkd3d +export WINEDLLOVERRIDES="cgD3D9,cgD3D9d=n" +#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 +export PW_DXVK_ASYNC=0 +#export PW_USE_TERMINAL=0 +export PW_OLD_GL_STRING=1 +#export PW_NVAPI_DISABLE=1 +#export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). +#export PW_HIDE_NVIDIA_GPU=0 +#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +#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 PULSE_LATENCY_MSEC=60 +#export PW_DLL_INSTALL="" +#export LAUNCH_PARAMETERS="-d3d9" diff --git a/data_from_portwine/scripts/portwine_db/Frozen Throne b/data_from_portwine/scripts/portwine_db/Frozen Throne new file mode 100644 index 00000000..8e5e6b45 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Frozen Throne @@ -0,0 +1,12 @@ +#!/bin/bash +#Author: +#Frozen Throne.exe +#Rating=4 - no video +################################################ +export PW_VULKAN_USE=0 +export LAUNCH_PARAMETERS="" +export PW_GUI_DISABLED_CS=1 +if [ -d "${PATH_TO_GAME}"/Movies ] ; then + mv "${PATH_TO_GAME}"/Movies "${PATH_TO_GAME}"/Movies_bak +fi + diff --git a/data_from_portwine/scripts/portwine_db/Game-TS3 b/data_from_portwine/scripts/portwine_db/Game-TS3 new file mode 100644 index 00000000..b92cdc06 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Game-TS3 @@ -0,0 +1,7 @@ +#!/bin/bash +#Author: +#Game-TS3.exe +#Rating=5 +################################################ +export PW_VULKAN_USE=0 +export LAUNCH_PARAMETERS="" diff --git a/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn b/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn new file mode 100755 index 00000000..30a56190 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Horizon Zero Dawn @@ -0,0 +1,24 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#HorizonZeroDawn.exe +#Rating=5 +################################################ +export PW_VULKAN_USE=vkd3d #dxvk or vkd3d +export WINEDLLOVERRIDES="nvngx_dlss=;amd_ags_x64=b,n;d3dcompiler_47=n" +#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 +#export PW_USE_TERMINAL=0 +#export PW_OLD_GL_STRING=0 +#export PW_NVAPI_DISABLE=1 +#export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). +#export PW_HIDE_NVIDIA_GPU=0 +#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +#export PW_WINEDBG_DISABLE=1 +#export PW_FORCE_DISABLED_GAMEMOD=1 # Force disabele gamemod +#export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. +export PW_DLL_INSTALL="d3dx9 d3dcompiler_47 vcrun2019" +export LAUNCH_PARAMETERS="-EpicPortal" +#export RADV_DEBUG=llvm +export PW_DXVK_NO_ASYNC=1 + diff --git a/data_from_portwine/scripts/portwine_db/Mafia DE b/data_from_portwine/scripts/portwine_db/Mafia DE new file mode 100755 index 00000000..558b2d50 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Mafia DE @@ -0,0 +1,7 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#mafiadefinitiveedition.exe +#Rating=4 +################################################ +export PW_VULKAN_USE=dxvk +export PULSE_LATENCY_MSEC=60 diff --git a/data_from_portwine/scripts/portwine_db/Origin b/data_from_portwine/scripts/portwine_db/Origin new file mode 100644 index 00000000..9ddab52f --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Origin @@ -0,0 +1,8 @@ +#!/bin/bash +#Author: PortWINE +#Origin.exe +#Rating= +################################################ +export PW_VULKAN_USE=vkd3d +export LAUNCH_PARAMETERS="" +sed -i 's%key="EnableIgo" value="true"%key="EnableIgo" value="false"%g' "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Origin/local_"*".xml" diff --git a/data_from_portwine/scripts/portwine_db/Terminator Resistance b/data_from_portwine/scripts/portwine_db/Terminator Resistance new file mode 100755 index 00000000..3137506f --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Terminator Resistance @@ -0,0 +1,6 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#Rating=5 +#Terminator.exe +################################################ +export PW_VULKAN_USE=dxvk diff --git a/data_from_portwine/scripts/portwine_db/This War of Mine b/data_from_portwine/scripts/portwine_db/This War of Mine new file mode 100644 index 00000000..9ba32ab8 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/This War of Mine @@ -0,0 +1,7 @@ +#!/bin/bash +#Author: +#This War of Mine.exe +#Rating=5 +################################################ +export PW_VULKAN_USE=0 +export LAUNCH_PARAMETERS="" diff --git a/data_from_portwine/scripts/portwine_db/avengers b/data_from_portwine/scripts/portwine_db/avengers new file mode 100644 index 00000000..3010495e --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/avengers @@ -0,0 +1,8 @@ +#!/bin/bash +#Author: +#avengers.exe +#Rating=1-5 +################################################ +export PW_VULKAN_USE=dxvk +export LAUNCH_PARAMETERS="" +export WINEDLLOVERRIDES="amd_ags_x64=b" diff --git a/data_from_portwine/scripts/portwine_db/default b/data_from_portwine/scripts/portwine_db/default new file mode 100644 index 00000000..8cd22afd --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/default @@ -0,0 +1,26 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#name_exe_file.exe +#Rating=1-5 +#export PW_COMMENT_DB="blablabla" +################################################ +#export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL +#export WINEDLLOVERRIDES="blabla=n,b" +#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 +#export PW_DXVK_NO_ASYNC=1 +#export PW_USE_TERMINAL=0 +#export PW_OLD_GL_STRING=0 +#export PW_NVAPI_DISABLE=1 +#export PW_VKD3D_FEATURE_LEVEL=0 +#export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). +#export PW_HIDE_NVIDIA_GPU=0 +#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +#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 PULSE_LATENCY_MSEC=60 +#export PW_DLL_INSTALL="foo bar" +#export LAUNCH_PARAMETERS="-d3d9" +#export PW_GUI_DISABLED_CS=1 diff --git a/data_from_portwine/scripts/portwine_db/setup b/data_from_portwine/scripts/portwine_db/setup new file mode 100644 index 00000000..ced523f6 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/setup @@ -0,0 +1,27 @@ +#!/bin/bash +#Author: PortWINE-Linux.ru +#setup.exe +#.msi +#Rating=5 +#export PW_COMMENT_DB="blablabla" +################################################ +export PW_VULKAN_USE=0 #dxvk or vkd3d +#export WINEDLLOVERRIDES="blabla=n,b" +#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 +#export PW_DXVK_NO_ASYNC=1 +#export PW_USE_TERMINAL=0 +#export PW_OLD_GL_STRING=0 +#export PW_NVAPI_DISABLE=1 +export PW_VKD3D_FEATURE_LEVEL=0 +export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). +#export PW_HIDE_NVIDIA_GPU=0 +#export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT +export PW_WINEDBG_DISABLE=0 +export PW_FORCE_DISABLED_GAMEMOD=1 # 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="vcrun6 mfc42 cmd" +#export LAUNCH_PARAMETERS="-d3d9" +export PW_GUI_DISABLED_CS=1 diff --git a/data_from_portwine/scripts/reset b/data_from_portwine/scripts/reset index 29de50e4..ecbb0a72 100755 --- a/data_from_portwine/scripts/reset +++ b/data_from_portwine/scripts/reset @@ -2,8 +2,8 @@ # Author: PortWINE-Linux.ru . "$(dirname $(readlink -f "$0"))/runlib" KILL_PORTWINE -if [ -e "${PORT_WINE_TMP_PATH}/dxvk_on" ]; then - rm -f "${PORT_WINE_TMP_PATH}/dxvk_on" +if [ -e "${PORT_WINE_TMP_PATH}/pw_vulkan" ]; then + rm -f "${PORT_WINE_TMP_PATH}/pw_vulkan" fi START_PORTWINE STOP_PORTWINE | sszen diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 5c840a7b..6c6db766 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -1,7 +1,7 @@ #!/bin/bash # Author: PortWINE-Linux.ru ######################################################################## -clear && echo ' +echo ' ████─████─████─███─█───█─███─█──█─███ █──█─█──█─█──█──█──█───█──█──██─█─█ ████─█──█─████──█──█─█─█──█──█─██─███ @@ -19,6 +19,18 @@ fi sszen() { zenity --progress --title="Settings..." --text="Updating parameters" --no-cancel --pulsate --auto-close --width 400 } +PW_START_PROGRESS_BAR () +{ +"${pw_yad}" --progress --progress-text="Start ${portname}... Please wait..." --pulsate --close-on-unfocus \ +--no-buttons --undecorated --center --skip-taskbar --width=600 --wrap-width=500 & +export start_progress_yad_pid=$(echo $!) +} +PW_STOP_PROGRESS_BAR () +{ +if [ ! -z "${start_progress_yad_pid}" ] ; then + kill "${start_progress_yad_pid}" +fi +} ######################################################################## cd "$(dirname "`readlink -f "$0"`")" export PORT_SCRIPTS_PATH="$(pwd)" @@ -44,8 +56,8 @@ if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_loc" ]; then echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/${portname}_loc" fi if [ "${portname}" = "PortProton" ]; then - if [ -e "${PORT_WINE_TMP_PATH}/dxvk_on" ]; then - rm -f "${PORT_WINE_TMP_PATH}/dxvk_on" + if [ -e "${PORT_WINE_TMP_PATH}/pw_vulkan" ]; then + rm -f "${PORT_WINE_TMP_PATH}/pw_vulkan" fi fi ######################################################################## @@ -54,8 +66,9 @@ if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_ver" ]; then echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver" fi ######################################################################## +export LAUNCH_PARAMETERS="" export pw_libs_ver="_v5" -export port_on_run="${PORT_WINE_PATH}/data/port_on" +export port_on_run="${PORT_SCRIPTS_PATH}/port_on" export WINEDIR="${PORT_WINE_PATH}"/data/dist export WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}" export WINEARCH=win64 @@ -63,14 +76,12 @@ export WINEPREFIX="${PORT_WINE_PATH}/data/pfx/" export PW_COMPAT_DATA_PATH="${PORT_WINE_PATH}/data/" export PW_COMPAT_MEDIA_PATH="${PORT_WINE_TMP_PATH}/" export PW_RUNTIME="$WINELIB/run.sh" +export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui" ######################################################################## export urlg="https://portwine-linux.ru/portwine-faq/" export PW_FTP_URL="https://portwine-linux.ru/ftp" ######################################################################## export PW_TERM="" -#if [ ! -f "${PORT_WINE_TMP_PATH}/init_run_suc" ]; then -# export PW_USE_TERMINAL="1" -#fi for pw_dist in "dxvk" "vkd3d" do if [ -d "${WINEDIR}"_"${pw_dist}"/share/wine/ ]; then @@ -99,7 +110,7 @@ if [ -f "${WINEDIR}"_vkd3d/version ]; then zen_width=1000 fi ######################################################################## -if [ ! -e "${WINELIB}/run.sh" ]; then +if [ ! -e "${WINELIB}/run.sh" ] || [ ! -e "${WINELIB}/usr/bin/yad" ] || [ ! -e "${WINELIB}/amd64/usr/bin/vkcube" ] || [ ! -e "${WINELIB}/amd64/usr/bin/xterm" ]; then echo "Download and install libraries..." wget -c -T 2 --output-document="${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" "${PW_FTP_URL}"/dist/libs${pw_libs_ver}.tar.xz | sszen && tar -Jxvf "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" -C "${HOME}/.PortWINE/" | sszen && @@ -110,11 +121,29 @@ if [ -e "${WINELIB}/run.sh" ]; then echo "######################################################" echo "Runtime libraries is enabled" pw_yad="${WINELIB}/usr/bin/yad" + PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e" else echo "######################################################" echo "Runtime libraries is disabled" fi ######################################################################## +if [ ! -z "${gamestart}" ]; then + export PORTWINE_DB=`echo "${gamestart}" | awk -F '/' 'NF>1{print $NF}' | awk -F '.exe' '{print $1}'` +elif [ ! -z "${portwine_exe}" ]; then + export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | awk -F '.exe' '{print $1}'` + export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" +fi +if [ ! -z "${PORTWINE_DB}" ]; then + PORTWINE_DB_FILE=`grep -il "${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | awk -F '.exe' '{print $1}'` + 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 +######################################################################## START_PORTWINE () { if [ "${PW_USE_TERMINAL}" = "1" ]; then @@ -126,32 +155,28 @@ if [ "${PW_USE_TERMINAL}" = "1" ]; then export PW_TERM="gnome-terminal -- $SHELL -c" elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e" -# elif [ -x "`which xfce4-terminal 2>/dev/null`" ]; then -# export PW_TERM="xfce4-terminal -x" #test + else + export PW_TERM="${PW_XTERM}" fi fi -sh "${PORT_SCRIPTS_PATH}"/port_update +PW_UPDATE ######################################################################## -if [ ! -z $dxvk_ogl_var ]; then - var_dxvk_on="${dxvk_ogl_var}" +if [ ! -z "${PW_VULKAN_USE}" ]; then + export var_pw_vulkan="${PW_VULKAN_USE}" + echo "${var_pw_vulkan}" > "${PORT_WINE_TMP_PATH}/pw_vulkan" else - if [ ! -f "${PORT_WINE_TMP_PATH}/dxvk_on" ]; then - start_settings=`zenity --title "${ss_title}" --text "${ss_text}" --list --radiolist \ - --column="${inst_set}" --column "${ss_ver}" --column "${ss_dr}" --width=$zen_width --height=220 \ - TRUE "DXVK ${PW_WINE_VER_DXVK}" "${ss_ogl_3}" \ - FALSE "VKD3D ${PW_WINE_VER_VKD3D}" "${ss_ogl_2}" ` - if [ $? -eq 1 ];then exit 1; fi - case $start_settings in - "VKD3D ${PW_WINE_VER_VKD3D}") - echo "off" > "${PORT_WINE_TMP_PATH}/dxvk_on" ;; - "DXVK ${PW_WINE_VER_DXVK}") - echo "0" > "${PORT_WINE_TMP_PATH}/dxvk_on" ;; - esac - fi - read "var_dxvk_on" < "${PORT_WINE_TMP_PATH}/dxvk_on" + read "var_pw_vulkan" < "${PORT_WINE_TMP_PATH}/pw_vulkan" + export var_pw_vulkan fi - -if [ "${var_dxvk_on}" != "off" ]; then +PW_START_PROGRESS_BAR +if [ "${var_pw_vulkan}" = "0" ]; then + if [ -d "${WINEDIR}_dxvk" ]; then + export WINEDIR="${WINEDIR}_dxvk" + export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}" + export mesa_glthread=true + echo "Use OpenGL" + fi +elif [ "${var_pw_vulkan}" = "dxvk" ]; then export PW_USE_WINED3D=0 export PW_DXGI_FROM_DXVK=1 export PW_DX12_DISABLED=1 @@ -161,11 +186,10 @@ if [ "${var_dxvk_on}" != "off" ]; then echo "Use DXVK and D9VK (DX9-DX11 to Vulkan)" else export PW_USE_WINED3D=1 - export PW_VKD3D_FEATURE_LEVEL=1 if [ -d "${WINEDIR}_vkd3d" ]; then export WINEDIR="${WINEDIR}_vkd3d" fi - echo "Use OpenGL and VKD3D (DX9-DX11 to OpenGL and DX12 to vulkan)" + echo "Use VKD3D (DX12 to vulkan)" fi export WINELOADER="${WINEDIR}/bin/wine" export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" @@ -200,16 +224,14 @@ if [ ! -z "${PW_NVIDIA}" ] && [ "${check_optimus_manager}" != "intel" ]; then fi export __NV_PRIME_RENDER_OFFLOAD=1 export __GLX_VENDOR_LIBRARY_NAME=nvidia - export __GL_SHADER_DISK_CACHE_PATH="${PATH_TO_GAME}" + export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}" export __GL_SHADER_DISK_CACHE=1 export __GL_SHADER_DISK_CACHE_SIZE=1000000000 - export __GL_THREADED_OPTIMIZATIONS=1 export __GL_DXVK_OPTIMIZATIONS=1 else + export VK_ICD_FILENAMES export DRI_PRIME=1 export VKD3D_CONFIG=force_bindless_texel_buffer -# export MESA_GLSL_CACHE_DIR="${PATH_TO_GAME}" -# export mesa_glthread=true fi case "$PW_FORCE_USE_VSYNC" in # 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT "0") @@ -219,7 +241,7 @@ case "$PW_FORCE_USE_VSYNC" in # 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT export vblank_mode=1 export __GL_SYNC_TO_VBLANK=1 ;; esac -export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf" +#export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/" ######################################################################## export int_xneur=0 if [ $(pgrep xneur)>'0' ]; then @@ -232,8 +254,8 @@ if [ ! -z ${PW_XKBD} ]; then fi ######################################################################## if [ -x "`which "gamemoderun" 2>/dev/null`" ] && [ "$PW_FORCE_DISABLED_GAMEMOD" -eq "0" ]; then - systemctl --user enable gamemoded.service - systemctl --user restart gamemoded.service + # systemctl --user enable gamemoded.service + # systemctl --user restart gamemoded.service export PW_GAMEMODERUN=1 echo "Gamemod will be launched." else @@ -242,49 +264,15 @@ 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 && -sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf && - -rm -f "${WINEDIR}"*/lib*/*steam* && -rm -f "${WINEDIR}"*/lib*/wine/*steam* && -rm -f "${WINEDIR}"*/lib*/wine/fakedlls/*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 -# if [ ! -z "$(cat /etc/locale.gen | grep "^en_US.UTF-8")" ]; then -# export PW_LANG_OS="${LANG}" -# export LANG=en_US.UTF-8 -# fi -# $PW_TERM "${PW_RUNTIME}" "${WINELOADER}" wineboot -u && -# export LANG="${PW_LANG_OS}" -# fi -sed -i '/steamclient/d' "${WINEPREFIX}"/*.reg && -sed -i '/SteamPath/d' "${WINEPREFIX}"/*.reg && - -rm -f "${WINEPREFIX}/drive_c/windows/system32"/steam* && -rm -f "${WINEPREFIX}/drive_c/windows/syswow64"/steam* && -######################################################################## -#if [ ! -f "${PORT_WINE_TMP_PATH}/init_run_suc" ]; then -# "${PW_RUNTIME}" "${port_on_run}" "init_run" -# if [ -f "${PORT_WINE_TMP_PATH}"/winetricks ]; then -# rm -f "${PORT_WINE_TMP_PATH}"/winetricks -# fi -# wget -T 3 --output-document=${PORT_WINE_TMP_PATH}/winetricks https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -# chmod +x "${PORT_WINE_TMP_PATH}/winetricks" -# PW_INIT_RUN -# echo "#####################PW_INIT_RUN######################" -# cat "${PORT_WINE_TMP_PATH}/init_run_suc" -# echo "######################################################" -#fi -######################################################################## +PW_CREATE_PFX +RUN_WINETRICKS_FROM_DB ADD_IN_START_PORTWINE } ######################################################################## WAIT_WINESERVER () { sleep 3 -while [ $(pgrep wineserver)>'0' ]; do +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 } @@ -292,7 +280,7 @@ done KILL_PORTWINE () { wine_pids=$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}') #modded by Cefeiko -if ! [ -z "${wine_pids}" ] ; then +if [ ! -z "${wine_pids}" ] ; then kill -9 ${wine_pids} fi } @@ -307,6 +295,158 @@ fi if [ ! -z ${PW_XKBD} ]; then setxkbmap ${PW_XKBD} fi +PW_STOP_PROGRESS_BAR +rm -f "${PORT_WINE_PATH}"/1 +rm -f "${PORT_SCRIPTS_PATH}"/1 rm -f "${PORT_WINE_PATH}"/0 rm -f "${PORT_SCRIPTS_PATH}"/0 } +######################################################################## +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=//')" +if ! [[ -f "${PORT_WINE_TMP_PATH}/winetricks" ]] +then + wget -T 3 --output-document=${PORT_WINE_TMP_PATH}/winetricks ${W_TRX_URL} + chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" +else +W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" + if [[ $W_TRX_INT_VER != $W_TRX_EXT_VER ]] + then + rm -f "${PORT_WINE_TMP_PATH}/winetricks" + wget -T 3 --output-document=${PORT_WINE_TMP_PATH}/winetricks ${W_TRX_URL} + chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" + fi +fi #modded by Cefeiko +} +######################################################################## +RUN_WINETRICKS_FROM_DB () +{ +if [ ! -z "${PW_DLL_INSTALL}" ]; then + export USE_WT_FROM_DB=0 + if [ -e "${WINEPREFIX}/winetricks.log" ] ; then + for need_install_dll_to_pfx in ${PW_DLL_INSTALL} ; do + grep "${need_install_dll_to_pfx}" "${WINEPREFIX}/winetricks.log" + if [ "$?" == "1" ] ; then + export USE_WT_FROM_DB=1 + break + fi + done + else + export USE_WT_FROM_DB=1 + fi + if [ "${USE_WT_FROM_DB}" == "1" ] ; then + UPDATE_WINETRICKS + PW_STOP_PROGRESS_BAR + ${PW_XTERM} "${PW_RUNTIME}" "${PORT_WINE_TMP_PATH}/winetricks" -q ${PW_DLL_INSTALL} + PW_START_PROGRESS_BAR + 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 + wget -T 2 --output-document="${PORT_WINE_TMP_PATH}/${portname}_cur_ver" "http://portwine-linux.ru/current_version/${portname}_ver" + sleep 1 + if [ -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] + then + read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" + read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" + rm -f "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" + if [ "${current_ver}" -gt "${install_ver}" ] + then + xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=220 --column="${inst_set}" --column "${port_upd3}" \ + TRUE "${port_upd4}" \ + FALSE "${port_upd5}" \ + FALSE "${port_upd6}" ` + case $xsd in + "${port_upd4}") + "${WINESERVER}" -k + 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=240 --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}") + if [ ! -z "$(command -v sensible-browser)" ]; then + sensible-browser "$urlg" & + elif [ ! -z "$(command -v xdg-open)" ]; then + xdg-open "$urlg" & + elif [ ! -z "$(command -v gnome-open)" ]; then + gnome-open "$urlg" & + elif [ ! -z "$(command -v python)" ]; then + python -m webbrowser "$urlg" + fi & + echo "300" > "${HOME}/.config/.PortTime" + sleep 5 + exit 0 ;; + "${port_time5}") + echo "75" > "${HOME}/.config/.PortTime" ;; + "${port_time6}") + echo "150" > "${HOME}/.config/.PortTime" ;; + esac + fi +fi +} +PW_CREATE_PFX () +{ +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 +sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf + +rm -f "${WINEDIR}"*/lib*/*steam* +rm -f "${WINEDIR}"*/lib*/wine/*steam* +rm -f "${WINEDIR}"*/lib*/wine/fakedlls/*steam* +if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ]; then + PW_STOP_PROGRESS_BAR + ${PW_XTERM} "${PW_RUNTIME}" "${WINELOADER}" wineboot -u + PW_START_PROGRESS_BAR +fi +sed -i '/steamclient/d' "${WINEPREFIX}"/*.reg +sed -i '/SteamPath/d' "${WINEPREFIX}"/*.reg + +rm -f "${WINEPREFIX}/drive_c/windows/system32"/steam* +rm -f "${WINEPREFIX}/drive_c/windows/syswow64"/steam* +} \ No newline at end of file diff --git a/data_from_portwine/scripts/settings.sh b/data_from_portwine/scripts/settings.sh deleted file mode 100755 index 014cf0a1..00000000 --- a/data_from_portwine/scripts/settings.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -# Author: PortWINE-Linux.ru -########################## -. "$(dirname $(readlink -f "$0"))/runlib" -KILL_PORTWINE -########################## -PW_WINECFG () -{ -START_PORTWINE -$PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "winecfg" -} -########################## -PW_WINEFILE () -{ -START_PORTWINE -cd "${WINEPREFIX}/drive_c/" -if [ ! -z ${optirun_on} ] -then - $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "explorer" -else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "explorer" -fi -} -########################## -PW_WINECMD () -{ -export PW_USE_TERMINAL=1 -START_PORTWINE -if [ ! -z ${optirun_on} ] -then - $PW_TERM "${PW_RUNTIME}" "${optirun_on}" "${port_on_run}" "run" "cmd" -else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "cmd" -fi -} -########################## -PW_WINEREG () -{ -START_PORTWINE -$PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "regedit" -} -########################## -PW_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=//')" -if ! [[ -f "${PORT_WINE_TMP_PATH}/winetricks" ]] -then - wget -T 3 --output-document=${PORT_WINE_TMP_PATH}/winetricks ${W_TRX_URL} - chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" -else -W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" - if [[ $W_TRX_INT_VER != $W_TRX_EXT_VER ]] - then - rm -f "${PORT_WINE_TMP_PATH}/winetricks" - wget -T 3 --output-document=${PORT_WINE_TMP_PATH}/winetricks ${W_TRX_URL} - chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" - fi -fi #modded by Cefeiko -export PW_USE_TERMINAL=1 -START_PORTWINE -$PW_TERM "${PW_RUNTIME}" "${PORT_WINE_TMP_PATH}/winetricks" -q --force -} -########################## -OUTPUT=$("${pw_yad}" --borders=20 --form --center \ ---title "SETTINGS" --image "winecfg" --separator=";" \ ---field="WINE:CB" "DXVK ${PW_WINE_VER_DXVK}"!"VKD3D ${PW_WINE_VER_VKD3D}" \ ---button='WINECFG'!!"Run winecfg for $portname":100 \ ---button='WINEFILE'!!'проверка подсказки1':102 \ ---button='WINECMD'!!'проверка подсказки2':104 \ ---button='WINEREG'!!'проверка подсказки3':106 \ ---button='WINETRICKS'!!'проверка подсказки4 - бла бла бла бла бла ла ла ла =)':108 ) - -PW_YAD_SET="$?" -export VULKAN_MOD=$(echo $OUTPUT | awk 'BEGIN {FS=";" } { print $1 }') -if [ "${VULKAN_MOD}" = "DXVK ${PW_WINE_VER_DXVK}" ]; then - echo "0" > "${PORT_WINE_TMP_PATH}/dxvk_on" -else - echo "off" > "${PORT_WINE_TMP_PATH}/dxvk_on" -fi -case "$PW_YAD_SET" in - 100) PW_WINECFG ;; - 102) PW_WINEFILE ;; - 104) PW_WINECMD ;; - 106) PW_WINEREG ;; - 108) PW_WINETRICKS ;; -esac -########################## -STOP_PORTWINE diff --git a/data_from_portwine/scripts/setup b/data_from_portwine/scripts/setup index b5c0c72c..e2f7529a 100755 --- a/data_from_portwine/scripts/setup +++ b/data_from_portwine/scripts/setup @@ -6,23 +6,40 @@ rm -f "${PORT_WINE_PATH}/"*".log" rm -f "${PORT_WINE_TMP_PATH}/update_notifier" rm -f "${PORT_WINE_TMP_PATH}/init_run_suc" rm -fr "${PORT_WINE_PATH}/data/pfx/dosdevices" +rm -fr "${PORT_WINE_PATH}/data/port_on" +rm -fr "${PORT_WINE_PATH}/data/dxvk.conf" +rm -f "${PORT_WINE_PATH}/Create_shortcut_PP.desktop" +rm -f "${PORT_WINE_PATH}/Proton.desktop" +rm -f "${PORT_WINE_PATH}/settings.desktop" +rm -f "${PORT_WINE_PATH}/settings.desktop" +rm -f "${PORT_WINE_PATH}/debug.desktop" if [ -d "${PORT_WINE_PATH}/Settings" ]; then rm -fr "${PORT_WINE_PATH}/Settings" fi - +if [ ! -z "${PATH_TO_GAME}" ]; then + rm -f "${PATH_TO_GAME}"/*.dxvk-cache +fi +if [ -f "${PORT_WINE_PATH}/restart.desktop" ]; then + rm "${PORT_WINE_PATH}/restart.desktop" +fi if [ ! -d "/home/${USER}/.local/share/applications" ] then mkdir -p "/home/${USER}/.local/share/applications" +else + if [ -e "/home/${USER}/.local/share/applications/Create_shortcut_PP.desktop" ]; then + rm -f "/home/${USER}/.local/share/applications/Create_shortcut_PP.desktop" + fi + if [ -e "/home/${USER}/.local/share/applications/Proton.desktop" ]; then + rm -f "/home/${USER}/.local/share/applications/Proton.desktop" + fi fi - - -if [ ! -z "${gamename}" ]; then +if ! [ "${portname}" = "PortProton" ]; then name_desktop="${gamename}" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Exec=env "${PORT_SCRIPTS_PATH}/start"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "Exec=env "${PORT_SCRIPTS_PATH}/start.sh"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" @@ -34,28 +51,14 @@ else name_desktop="PortProton" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Exec=env "${PORT_SCRIPTS_PATH}/portproton.sh %U"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "Exec=env "${PORT_SCRIPTS_PATH}/start.sh %U"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Icon="${PORT_WINE_PATH}/data/img/w.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" - cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ - - name_desktop="Create_shortcut_PP" - echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Exec=env "${PORT_SCRIPTS_PATH}/create_shortcut %U"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Icon="${PORT_WINE_PATH}/data/img/w.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "NoDisplay=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ fi @@ -68,7 +71,7 @@ echo "Icon="${PORT_WINE_PATH}/data/img/readme.png"" >> "${PORT_WINE_PATH}/${name echo "URL=${urlg}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" -for name_desktop in "debug" "reset" +for name_desktop in "reset" do echo ""[Desktop Entry]" "Name=${name_desktop}" @@ -81,17 +84,6 @@ do chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" done -name_desktop="settings" -echo ""[Desktop Entry]" -"Name=settings" -"Exec=env "${PORT_SCRIPTS_PATH}/${name_desktop}.sh"" -"Type=Application" -"Categories=Game" -"StartupNotify=true" -"Path="${PORT_SCRIPTS_PATH}/"" -"Icon="${PORT_WINE_PATH}/data/img/s.png""" > "${PORT_WINE_PATH}/${name_desktop}.desktop" -chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" - chmod u+x "${PORT_SCRIPTS_PATH}/"* if [ ! -d "${PORT_WINE_PATH}/drive_c" ]; then @@ -113,14 +105,6 @@ fi sed -i "s/xuser/${USER}/g" "${PORT_WINE_PATH}/data/pfx/"*.reg sed -i "s/vagrant/${USER}/g" "${PORT_WINE_PATH}/data/pfx/"*.reg -if [ ! -z "${PATH_TO_GAME}" ]; then - rm -f "${PATH_TO_GAME}"/*.dxvk-cache -fi - -if [ -f "${PORT_WINE_PATH}/restart.desktop" ]; then - rm "${PORT_WINE_PATH}/restart.desktop" -fi - if [ "${s_install}" = "1" ]; then echo "Installation completed successfully." else diff --git a/data_from_portwine/scripts/start b/data_from_portwine/scripts/start deleted file mode 100755 index 42063bbc..00000000 --- a/data_from_portwine/scripts/start +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -# Author: PortWINE-Linux.ru -. "$(dirname $(readlink -f "$0"))/runlib" -if [ ! -z "$1" ]; then - KILL_PORTWINE - START_PORTWINE - if [ ! -z $optirun_on ]; then - $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "$1" ${launch_parameters} - else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "$1" ${launch_parameters} - fi -else - START_PORTWINE - if [ ! -z $optirun_on ]; then - $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "${gamestart}" ${launch_parameters} - else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "${gamestart}" ${launch_parameters} - fi -fi -STOP_PORTWINE \ No newline at end of file diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh new file mode 100755 index 00000000..dafda42d --- /dev/null +++ b/data_from_portwine/scripts/start.sh @@ -0,0 +1,308 @@ +#!/bin/bash +# Author: PortWINE-Linux.ru +if [ -f "$1" ]; then + export portwine_exe="$(readlink -f "$1")" +fi +. "$(dirname $(readlink -f "$0"))/runlib" +######################################################################## +PORTWINE_LAUNCH () +{ +KILL_PORTWINE +START_PORTWINE +PORTWINE_MSI=`basename "${portwine_exe}" | grep .msi` +if [ ! -z "${PORTWINE_MSI}" ]; then + echo "PORTWINE_MSI=${PORTWINE_MSI}" + export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" + cd "$PATH_TO_GAME" + if [ ! -z ${optirun_on} ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" msiexec /i "$portwine_exe" + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" msiexec /i "$portwine_exe" + fi +elif [ ! -z "${portwine_exe}" ]; then + export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" + cd "$PATH_TO_GAME" + if [ ! -z ${optirun_on} ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "$portwine_exe" + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "$portwine_exe" + fi +elif [ -z "${gamestart}" ]; then + if [ ! -z $optirun_on ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" explorer + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" explorer + fi +else + if [ ! -z $optirun_on ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "${gamestart}" + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "${gamestart}" + fi +fi +} +######################################################################## +PORTWINE_CREATE_SHORTCUT () +{ +if [ ! -z "${portwine_exe}" ]; then + PORTPROTON_EXE="${portwine_exe}" +else + PORTPROTON_EXE=$(zenity --file-selection --file-filter=""*.exe" "*.bat"" \ + --title="${sc_path}" --filename="${PORT_WINE_PATH}/data/pfx/drive_c/") + if [ $? -eq 1 ];then exit 1; fi +fi +PORTPROTON_NAME="$(basename "${PORTPROTON_EXE}" | sed s/".exe"/""/g )" +PORTPROTON_PATH="$( cd "$( dirname "${PORTPROTON_EXE}" )" >/dev/null 2>&1 && pwd )" +if [ -x "`which wrestool 2>/dev/null`" ]; then + wrestool -x --output="${PORTPROTON_PATH}/" -t14 "${PORTPROTON_EXE}" + cp "$(ls -S -1 "${PORTPROTON_EXE}"*".ico" | head -n 1)" "${PORTPROTON_EXE}.ico" + cp -f "${PORTPROTON_EXE}.ico" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.ico" + rm -f "${PORTPROTON_PATH}/"*.ico +fi +PORTPROTON_CMD="" +PORTPROTON_CMD=$(zenity --entry --text "${sc_cmd}") +if [ $? -eq 1 ];then exit 1; fi +export PW_VULKAN_TO_DB=`cat "${PORT_WINE_TMP_PATH}/pw_vulkan"` +if [ ! -z "${PORTWINE_DB}" ]; then + PORTWINE_DB_FILE=`grep -il "${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | awk -F '.exe' '{print $1}'` + if [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "${PW_VULKAN_USE}" ]; then + echo "export PW_VULKAN_USE=${PW_VULKAN_TO_DB}" >> "${PORTWINE_DB_FILE}" + elif [ -z "${PORTWINE_DB_FILE}" ]; then + echo "#!/bin/bash +#Author: +#"${PORTWINE_DB}.exe" +#Rating=1-5 +################################################ +export PW_VULKAN_USE=${PW_VULKAN_TO_DB} +export LAUNCH_PARAMETERS=\"${PORTPROTON_CMD}\"" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" + fi +fi +name_desktop="${PORTPROTON_NAME}" +echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Exec=env PW_GUI_DISABLED_CS=1 "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${PORTPROTON_EXE}\" "" \ +>> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.ico"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" +`zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` > /dev/null 2>&1 +if [ $? -eq "0" ]; then + cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ +fi +xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & +} +######################################################################## +PORTWINE_DEBUG () +{ +KILL_PORTWINE +export PW_USE_TERMINAL=1 +START_PORTWINE +echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log" +echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log" +echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log" +echo "echo $(ldd --version)" | grep ldd >> "${PORT_WINE_PATH}/${portname}.log" +echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "PortWINE version:" >> "${PORT_WINE_PATH}/${portname}.log" +read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" +echo "${portname}-${install_ver}" >> "${PORT_WINE_PATH}/${portname}.log" +echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "var_pw_vulkan = ${var_pw_vulkan}" >> "${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" +date >> "${PORT_WINE_PATH}/${portname}.log" +echo "-----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "The installation path of the ${portname}:" >> "${PORT_WINE_PATH}/${portname}.log" +echo "$PORT_WINE_PATH" >> "${PORT_WINE_PATH}/${portname}.log" +echo "----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "Operating system" >> "${PORT_WINE_PATH}/${portname}.log" +lsb_release -d | sed s/Description/ОС/g >> "${PORT_WINE_PATH}/${portname}.log" +echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "Desktop Environment" >> "${PORT_WINE_PATH}/${portname}.log" +echo "$DESKTOP_SESSION" >> "${PORT_WINE_PATH}/${portname}.log" +echo "${XDG_CURRENT_DESKTOP}" >> "${PORT_WINE_PATH}/${portname}.log" +echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "Kernel" >> "${PORT_WINE_PATH}/${portname}.log" +uname -r >> "${PORT_WINE_PATH}/${portname}.log" +echo "-------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "CPU" >> "${PORT_WINE_PATH}/${portname}.log" +cat /proc/cpuinfo | grep "model name" >> "${PORT_WINE_PATH}/${portname}.log" +echo "------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +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" +"${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" +"${WINELIB}/amd64/usr/bin/vkcube" --c 50 +if [ $? -eq 0 ]; then + echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log" +else + echo "Vkcube test completed with error" >> "${PORT_WINE_PATH}/${portname}.log" +fi +echo "---------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +if [ ! -x "`which gamemoderun 2>/dev/null`" ] +then + 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" +"$WINELOADER" --version 2>&1 | tee -a "${PORT_WINE_PATH}/${portname}.log" +echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" +echo "log WINE:" >> "${PORT_WINE_PATH}/${portname}.log" + +export PW_LOG=1 +export DXVK_HUD="full" +export PW_WINEDBG_DISABLE=0 +export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -l -lf ${PORT_WINE_PATH}/${portname}.log.wine -geometry 159x37 -e" + +if [ -f "${PORT_WINE_PATH}/${portname}.log.wine" ]; then + rm -f "${PORT_WINE_PATH}/${portname}.log.wine" +fi +if [ ! -z "${portwine_exe}" ]; then + export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" + cd "$PATH_TO_GAME" + if [ ! -z ${optirun_on} ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "$portwine_exe" ${LAUNCH_PARAMETERS} 2>&1 & + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "$portwine_exe" ${LAUNCH_PARAMETERS} 2>&1 & + fi +elif [ -z "${gamestart}" ]; then + if [ ! -z $optirun_on ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" explorer 2>&1 & + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" explorer 2>&1 & + fi +else + if [ ! -z $optirun_on ]; then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "${gamestart}" ${LAUNCH_PARAMETERS} 2>&1 & + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "${gamestart}" ${LAUNCH_PARAMETERS} 2>&1 & + fi +fi +zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && "${WINESERVER}" -k +STOP_PORTWINE | sszen +cat "${PORT_WINE_PATH}/${portname}.log.wine" >> "${PORT_WINE_PATH}/${portname}.log" +rm -f "${PORT_WINE_PATH}/${portname}.log.wine" +deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log" | awk '! a[$0]++') +echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log" +echo "$deb_text" | zenity --text-info --editable \ +--width=800 --height=600 \ +--title="${portname}.log" +} +######################################################################## +PW_WINECFG () +{ +START_PORTWINE +$PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "winecfg" +} +######################################################################## +PW_WINEFILE () +{ +START_PORTWINE +cd "${WINEPREFIX}/drive_c/" +if [ ! -z ${optirun_on} ] +then + $PW_TERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "explorer" +else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "explorer" +fi +} +######################################################################## +PW_WINECMD () +{ +export PW_USE_TERMINAL=1 +START_PORTWINE +if [ ! -z ${optirun_on} ] +then + $PW_TERM "${PW_RUNTIME}" "${optirun_on}" "${port_on_run}" "run" "cmd" +else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "cmd" +fi +} +######################################################################## +PW_WINEREG () +{ +START_PORTWINE +$PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "regedit" +} +######################################################################## +PW_WINETRICKS () +{ +UPDATE_WINETRICKS +export PW_USE_TERMINAL=1 +START_PORTWINE +$PW_TERM "${PW_RUNTIME}" "${PORT_WINE_TMP_PATH}/winetricks" -q --force +} +######################################################################## +if [ ! -z "${portwine_exe}" ]; then + if [ -z "${PW_GUI_DISABLED_CS}" ] || [ "${PW_GUI_DISABLED_CS}" = 0 ] ; 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=";" \ + --button='CREATE SHORTCUT'!!"111":100 \ + --button='DEBUG'!!'проверка подсказки1':102 \ + --button='LAUNCH'!!'проверка подсказки3':106 ) + PW_YAD_SET="$?" + else + OUTPUT_START=$("${pw_yad}" --wrap-width=250 --borders=15 --form --center \ + --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \ + --field="WINE:CB" "DXVK ${PW_WINE_VER_DXVK}"!"VKD3D ${PW_WINE_VER_VKD3D}"!"OPENGL ${PW_WINE_VER_DXVK}" \ + --button='CREATE SHORTCUT'!!"111":100 \ + --button='DEBUG'!!'проверка подсказки1':102 \ + --button='LAUNCH'!!'проверка подсказки3':106 ) + PW_YAD_SET="$?" + fi + elif [ ! -z "${PORTWINE_DB_FILE}" ]; then + PORTWINE_LAUNCH + else + OUTPUT_START=$("${pw_yad}" --wrap-width=250 --borders=15 --form --center \ + --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \ + --field="WINE:CB" "DXVK ${PW_WINE_VER_DXVK}"!"VKD3D ${PW_WINE_VER_VKD3D}"!"OPENGL ${PW_WINE_VER_DXVK}" \ + --button='CREATE SHORTCUT'!!"111":100 \ + --button='DEBUG'!!'проверка подсказки1':102 \ + --button='LAUNCH'!!'проверка подсказки3':106 ) + PW_YAD_SET="$?" + fi +else + OUTPUT_START=$("${pw_yad}" --wrap-width=250 --borders=15 --form --center \ + --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \ + --field="WINE:CB" "DXVK ${PW_WINE_VER_DXVK}"!"VKD3D ${PW_WINE_VER_VKD3D}"!"OPENGL ${PW_WINE_VER_DXVK}" \ + --button='CREATE SHORTCUT'!!"111":100 \ + --button='DEBUG'!!'проверка подсказки1':102 \ + --button='LAUNCH'!!'проверка подсказки3':106 \ + --button='WINECFG'!!"Run winecfg for $portname":108 \ + --button='WINEFILE'!!'проверка подсказки1':110 \ + --button='WINECMD'!!'проверка подсказки2':112 \ + --button='WINEREG'!!'проверка подсказки3':114 \ + --button='WINETRICKS'!!'проверка подсказки4 - бла бла бла бла бла ла ла ла =)':116 ) + PW_YAD_SET="$?" +fi +export VULKAN_MOD=$(echo $OUTPUT_START | awk 'BEGIN {FS=";" } { print $1 }') +if [ "${VULKAN_MOD}" = "DXVK ${PW_WINE_VER_DXVK}" ]; then + echo "dxvk" > "${PORT_WINE_TMP_PATH}/pw_vulkan" +elif [ "${VULKAN_MOD}" = "VKD3D ${PW_WINE_VER_VKD3D}" ]; then + echo "vkd3d" > "${PORT_WINE_TMP_PATH}/pw_vulkan" +else + echo "0" > "${PORT_WINE_TMP_PATH}/pw_vulkan" +fi +case "$PW_YAD_SET" in + 100) PORTWINE_CREATE_SHORTCUT ;; + 102) PORTWINE_DEBUG ;; + 106) PORTWINE_LAUNCH ;; + 108) PW_WINECFG ;; + 110) PW_WINEFILE ;; + 112) PW_WINECMD ;; + 114) PW_WINEREG ;; + 116) PW_WINETRICKS ;; +esac +######################################################################## +STOP_PORTWINE \ No newline at end of file diff --git a/data_from_portwine/scripts/vars/PortBattleNET_vars b/data_from_portwine/scripts/vars/PortBattleNET_vars index 732a2bb7..7bf09b00 100755 --- a/data_from_portwine/scripts/vars/PortBattleNET_vars +++ b/data_from_portwine/scripts/vars/PortBattleNET_vars @@ -1,10 +1,8 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## export gamedir="Battle.net" export gamename="Battle.net" -export portname="PortBattleNET" export porturl="http://portwine-linux.ru/battle-net-linux/" export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" export gamestart="${PATH_TO_GAME}/Battle.net Launcher.exe" @@ -29,7 +27,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="" +export LAUNCH_PARAMETERS="" cd "${PATH_TO_GAME}" rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/ProgramData/Agent/data" rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser/Blizzard Entertainment/Battle.net/Cache" diff --git a/data_from_portwine/scripts/vars/PortEpic_vars b/data_from_portwine/scripts/vars/PortEpic_vars index bd1c4d5f..53788d68 100755 --- a/data_from_portwine/scripts/vars/PortEpic_vars +++ b/data_from_portwine/scripts/vars/PortEpic_vars @@ -1,8 +1,6 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname="PortEpic" export gamename="Epic_Games" export gamedir="Epic Games/Launcher/Portal/Binaries/Win32/" export porturl="http://portwine-linux.ru/epic-games-linux/" @@ -29,7 +27,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="-opengl -SkipBuildPatchPrereq" +export LAUNCH_PARAMETERS="-opengl -SkipBuildPatchPrereq" cd "${PATH_TO_GAME}" } ######################################################################## diff --git a/data_from_portwine/scripts/vars/PortGOG_vars b/data_from_portwine/scripts/vars/PortGOG_vars index dc5532f0..497ad0a3 100755 --- a/data_from_portwine/scripts/vars/PortGOG_vars +++ b/data_from_portwine/scripts/vars/PortGOG_vars @@ -1,8 +1,6 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname="PortGoG" export gamename="GOG Galaxy" export gamedir="GOG Galaxy" export porturl="http://portwine-linux.ru/" @@ -41,7 +39,7 @@ done ADD_IN_START_PORTWINE () { -export launch_parameters="/runWithoutUpdating /deelevated" +export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated" GalaxyCommunication & cd "${PATH_TO_GAME}" } diff --git a/data_from_portwine/scripts/vars/PortLoL_vars b/data_from_portwine/scripts/vars/PortLoL_vars index 6f2b2f2f..125e720a 100755 --- a/data_from_portwine/scripts/vars/PortLoL_vars +++ b/data_from_portwine/scripts/vars/PortLoL_vars @@ -1,8 +1,6 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname="PortLoL" export gamename="League_of_Legends" export gamedir="Riot Games/Riot Client" export porturl="http://portwine-linux.ru/league-of-legends-linux/" @@ -28,7 +26,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=0 ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="--launch-product=league_of_legends --launch-patchline=live" +export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" cd "${PATH_TO_GAME}" if [ "$(cat /proc/sys/abi/vsyscall32)" -ne 0 ] diff --git a/data_from_portwine/scripts/vars/PortMailRu_vars b/data_from_portwine/scripts/vars/PortMailRu_vars index 1851cc6b..505767f0 100755 --- a/data_from_portwine/scripts/vars/PortMailRu_vars +++ b/data_from_portwine/scripts/vars/PortMailRu_vars @@ -1,8 +1,6 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname="PortMailRu" export gamename="GameMailRu" export gamedir="GameCenter" export porturl="http://portwine-linux.ru/mail-ru-linux" @@ -26,7 +24,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="" +export LAUNCH_PARAMETERS="" cd "${PATH_TO_GAME}" } ######################################################################## diff --git a/data_from_portwine/scripts/vars/PortOSU_vars b/data_from_portwine/scripts/vars/PortOSU_vars index ed755d88..16329a45 100755 --- a/data_from_portwine/scripts/vars/PortOSU_vars +++ b/data_from_portwine/scripts/vars/PortOSU_vars @@ -1,14 +1,10 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname="PortOSU" export gamename="OSU!" export gamedir="osu!" export porturl="http://portwine-linux.ru/osu-linux/" -if [ ! -z ${gamedir} ]; then - export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" -fi +export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" export gamestart="${PATH_TO_GAME}/osu!.exe" ######################################################################## #export MESA_GL_VERSION_OVERRIDE=4.4COMPAT @@ -31,7 +27,7 @@ export PULSE_LATENCY_MSEC=40 ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="" +export LAUNCH_PARAMETERS="" export STAGING_AUDIO_DURATION=5000 cd "${PATH_TO_GAME}" } diff --git a/data_from_portwine/scripts/vars/PortOrigin_vars b/data_from_portwine/scripts/vars/PortOrigin_vars index 34463b23..74e439ca 100755 --- a/data_from_portwine/scripts/vars/PortOrigin_vars +++ b/data_from_portwine/scripts/vars/PortOrigin_vars @@ -1,14 +1,10 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname="PortOrigin" export gamename="Origin" export gamedir="Origin" -if [ ! -z "${gamedir}" ]; then - export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" -fi -export gamestart="Origin.exe" +export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" +export gamestart="${PATH_TO_GAME}/Origin.exe" export porturl="http://portwine-linux.ru/origin-linux/" ######################################################################## #export MESA_GL_VERSION_OVERRIDE=4.4COMPAT @@ -31,7 +27,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="" +export LAUNCH_PARAMETERS="" cd "${PATH_TO_GAME}" sed -i 's%key="EnableIgo" value="true"%key="EnableIgo" value="false"%g' "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Origin/local_"*".xml" } diff --git a/data_from_portwine/scripts/vars/PortProton_vars b/data_from_portwine/scripts/vars/PortProton_vars index b120302a..d57cd4cc 100755 --- a/data_from_portwine/scripts/vars/PortProton_vars +++ b/data_from_portwine/scripts/vars/PortProton_vars @@ -1,21 +1,14 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export gamename= -export gamedir= -if [ ! -z "${gamedir}" ]; then - export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" -fi -export gamestart="${PATH_TO_GAME}/.exe" export porturl="http://portwine-linux.ru/" ######################################################################## #export MESA_GL_VERSION_OVERRIDE=4.4COMPAT export WINEDLLOVERRIDES="" export PW_LOG=0 # Enable debug mode fo terminal -export PW_NO_FSYNC=0 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support. -export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives -export PW_DXVK_ASYNC=0 +export PW_NO_FSYNC=0 # Do not use futex-based in-process synchronization primitives. Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support. +export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives +export PW_DXVK_NO_ASYNC=0 export PW_USE_TERMINAL=0 export PW_OLD_GL_STRING=0 export PW_NVAPI_DISABLE=1 @@ -23,10 +16,12 @@ export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches i export PW_HIDE_NVIDIA_GPU=0 export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT export PW_WINEDBG_DISABLE=1 +export PW_VKD3D_FEATURE_LEVEL=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 PULSE_LATENCY_MSEC=60 #export MANGOHUD=1 +#export MANGOHUD_CONFIG=full,height=500,font_size=32,position=top-right,toggle_hud=F9 #export DXVK_HUD=fps,devinfo ######################################################################## ADD_IN_START_PORTWINE () @@ -39,22 +34,6 @@ ADD_IN_STOP_PORTWINE () echo " " } ######################################################################## -PW_INIT_RUN () -{ -export PW_DLL_INSTALL="vb5run vb6run vcrun6 vcrun6sp6 b1ab1ab1a" -for dll_install in $PW_DLL_INSTALL -do - echo "######################################################" - echo "winetricks -q --force ${dll_install}" - "${PW_RUNTIME}" "${PORT_WINE_TMP_PATH}/winetricks" -q --force ${dll_install} - if [ $? -eq 0 ]; then - echo "OK: ${dll_install}" >> "${PORT_WINE_TMP_PATH}/init_run_suc" - else - echo "ERROR: ${dll_install}" >> "${PORT_WINE_TMP_PATH}/init_run_suc" - fi -done -} -######################################################################## ADD_IN_POST_INSTALL () { update-desktop-database -q "${HOME}/.local/share/applications" diff --git a/data_from_portwine/scripts/vars/PortUplay_vars b/data_from_portwine/scripts/vars/PortUplay_vars index 17bb108c..ab29c10b 100755 --- a/data_from_portwine/scripts/vars/PortUplay_vars +++ b/data_from_portwine/scripts/vars/PortUplay_vars @@ -1,8 +1,6 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## -export portname=PortUplay export gamename=Uplay export gamedir="Ubisoft/Ubisoft Game Launcher" export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" @@ -29,7 +27,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="" +export LAUNCH_PARAMETERS="" cd "${PATH_TO_GAME}" } ######################################################################## diff --git a/data_from_portwine/scripts/vars/PortWGC_vars b/data_from_portwine/scripts/vars/PortWGC_vars index b3c93fc2..91bb1b2e 100755 --- a/data_from_portwine/scripts/vars/PortWGC_vars +++ b/data_from_portwine/scripts/vars/PortWGC_vars @@ -1,10 +1,8 @@ #!/bin/bash -# License GPL -# Author: Tergoev M.A. +# Author: PortWINE-Linux.ru ######################################################################## export gamedir="WGC" export gamename="WGC" -export portname="PortWGC" export porturl="http://portwine-linux.ru/port-wargaming-game-center/" export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Games/${gamedir}" export gamestart="${PATH_TO_GAME}/wgc.exe" @@ -29,7 +27,7 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE ######################################################################## ADD_IN_START_PORTWINE () { -export launch_parameters="" +export LAUNCH_PARAMETERS="" cd "${PATH_TO_GAME}" sed -i 's/true/false/g' "${PORT_WINE_PATH}/data/pfx/drive_c/Games/WGC/preferences.xml" } diff --git a/portwine_install_script/PortNAME-XX b/portwine_install_script/PortNAME-XX index 240897e3..dfa6c83a 100644 --- a/portwine_install_script/PortNAME-XX +++ b/portwine_install_script/PortNAME-XX @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # License GPL ######################################################################## clear && echo ' @@ -10,9 +10,9 @@ clear && echo ' ' ######################################################################## -export gamedir="DIRNAME" -export gamename="NAME" -export portname="PortNAME" +export gamedir="PortProton" +export gamename="Proton" +export portname="PortProton" export port_ver=XX ######################################################################## export PROGS_INST="" @@ -117,15 +117,9 @@ else rm -fR "${PORT_WINE_PATH}/data/${CLEAN_PORT}" fi done - if [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/Games/${gamedir}" ];then - export PORT_GAMEDIR="${PORT_WINE_PATH}/data/pfx/drive_c/Games/${gamedir}" - mv -f "${PORT_GAMEDIR}" "${PORT_GAMEDIR}_old" - elif [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/Program Files/${gamedir}" ];then - export PORT_GAMEDIR="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files/${gamedir}" - mv -f "${PORT_GAMEDIR}" "${PORT_GAMEDIR}_old" - elif [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" ];then - export PORT_GAMEDIR="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" - mv -f "${PORT_GAMEDIR}" "${PORT_GAMEDIR}_old" + if [ -d "${PORT_WINE_PATH}/data/pfx/" ];then + export PORT_PFX="${PORT_WINE_PATH}/data/pfx" + mv -f "${PORT_PFX}" "${PORT_PFX}_old" fi fi ######################################################################## @@ -143,10 +137,7 @@ read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc" export update_loc=${update_loc} ######################################################################## cd "${PORT_WINE_PATH}" -tail -n +193 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}" -#if [ -d "${PORT_WINE_PATH}"/data/pfx/ ]; then -# mv "${PORT_WINE_PATH}"/data/pfx/*.reg "${PORT_WINE_PATH}"/data/tmp/ -#fi +tail -n +159 "${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 @@ -154,36 +145,11 @@ else fi chmod 755 -R "${PORT_WINE_PATH}" mv -f "${PORT_WINE_PATH}/${ARCH_NAME}" "${PORT_WINE_PATH}/data/tmp" -sed -n 1,192p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}" -#if [ -d "${PORT_WINE_PATH}"/data/tmp/*.reg ]; then -# mv -f "${PORT_WINE_PATH}"/data/tmp/*.reg "${PORT_WINE_PATH}"/data/pfx/ -#fi +sed -n 1,158p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}" ######################################################################## -if [ -d "${PORT_GAMEDIR}_old" ];then - rm -fR "${PORT_GAMEDIR}" - mv -f "${PORT_GAMEDIR}_old" "${PORT_GAMEDIR}" -fi -if [ -d "${PORT_GAMEDIR}" ];then - if [ -d "${PORT_GAMEDIR}_rus" ];then - rm -fR "${PORT_GAMEDIR}_rus" - fi - if [ -d "${PORT_GAMEDIR}_eng" ];then - rm -fR "${PORT_GAMEDIR}_eng" - fi -elif [ "${update_loc}" = "RUS" ];then - if [ -d "${PORT_GAMEDIR}_rus" ];then - mv -f "${PORT_GAMEDIR}_rus" "${PORT_GAMEDIR}" - if [ -d "${PORT_GAMEDIR}_eng" ];then - rm -fR "${PORT_GAMEDIR}_eng" - fi - fi -else - if [ -d "${PORT_GAMEDIR}_eng" ];then - mv -f "${PORT_GAMEDIR}_eng" "${PORT_GAMEDIR}" - if [ -d "${PORT_GAMEDIR}_rus" ];then - rm -fR "${PORT_GAMEDIR}_rus" - fi - fi +if [ -d "${PORT_PFX}_old" ];then + rm -fR "${PORT_PFX}" + mv -f "${PORT_PFX}_old" "${PORT_PFX}" fi echo "${portname}" > "${PORT_WINE_PATH}/data/tmp/portname" ########################################################################