Commit 88d4f20a authored by Mikhail Tergoev's avatar Mikhail Tergoev

Major fix. Add debug in winefile. Choose mod for shurtcut.

parent 8610f946
......@@ -152,15 +152,23 @@ class CompatData:
os.remove(self.version_file)
def upgrade_pfx(self, old_ver):
if old_ver == CURRENT_PREFIX_VERSION:
return
#if old_ver == CURRENT_PREFIX_VERSION:
# return
#replace broken .NET installations with wine-mono support
if os.path.exists(self.prefix_dir + "/drive_c/windows/Microsoft.NET/NETFXRepair.exe") and \
file_is_wine_fake_dll(self.prefix_dir + "/drive_c/windows/system32/mscoree.dll"):
log("Broken .NET installation detected, switching to wine-mono.")
#deleting this directory allows wine-mono to work
shutil.rmtree(self.prefix_dir + "/drive_c/windows/Microsoft.NET")
#replace broken .NET installations with wine-mono support
if os.path.exists(self.prefix_dir + "/drive_c/windows/Microsoft.NET/NETFXRepair.exe") and \
file_is_wine_fake_dll(self.prefix_dir + "/drive_c/windows/system32/mscoree.dll"):
log("Broken .NET installation detected, switching to wine-mono.")
#deleting this directory allows wine-mono to work
shutil.rmtree(self.prefix_dir + "/drive_c/windows/Microsoft.NET")
#fix mono and gecko
if os.path.exists(self.prefix_dir + "/drive_c/windows/mono"):
shutil.rmtree(self.prefix_dir + "/drive_c/windows/mono")
if os.path.exists(self.prefix_dir + "/drive_c/windows/system32/gecko"):
shutil.rmtree(self.prefix_dir + "/drive_c/windows/system32/gecko")
if os.path.exists(self.prefix_dir + "/drive_c/windows/syswow64/gecko"):
shutil.rmtree(self.prefix_dir + "/drive_c/windows/syswow64/gecko")
def copy_pfx(self):
with open(self.tracked_files_file, "w") as tracked_files:
......@@ -228,16 +236,16 @@ class CompatData:
if "wined3d" in g_session.compat_config:
dxvkfiles = ["dxvk_config"]
wined3dfiles = ["d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"]
wined3dfiles = ["d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9", "dxgi"]
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_FOR_VKD3D" in os.environ and nonzero(os.environ["PW_DXGI_FOR_VKD3D"]):
wined3dfiles.append("dxgi") #VKD3D
if "WINEDLLOVERRIDES" in os.environ and "dxgi=n" in os.environ["WINEDLLOVERRIDES"]:
dxvkfiles.append("dxgi")
else:
dxvkfiles.append("dxgi") #OPENGL and DXVK
wined3dfiles.append("dxgi")
for f in wined3dfiles:
try_copy(g_proton.default_pfx_dir + "drive_c/windows/system32/" + f + ".dll",
......@@ -252,6 +260,7 @@ class CompatData:
self.prefix_dir + "drive_c/windows/syswow64/" + f + ".dll")
g_session.dlloverrides[f] = "n"
def comma_escaped(s):
escaped = False
idx = -1
......@@ -348,7 +357,7 @@ class Session:
self.check_environment("PW_USE_WINED3D11", "wined3d")
self.check_environment("PW_NO_D3D11", "nod3d11")
self.check_environment("PW_NO_D3D10", "nod3d10")
self.check_environment("PW_NO_D9VK", "nod3d9")
self.check_environment("PW_NO_D3D9", "nod3d9")
self.check_environment("PW_NO_ESYNC", "noesync")
self.check_environment("PW_NO_FSYNC", "nofsync")
self.check_environment("PW_FORCE_LARGE_ADDRESS_AWARE", "forcelgadd")
......@@ -400,6 +409,7 @@ class Session:
if "nod3d9" in self.compat_config:
self.dlloverrides["d3d9"] = ""
self.dlloverrides["dxgi"] = ""
if "novrclient" in self.compat_config:
self.dlloverrides["vrclient"] = ""
......
......@@ -15,14 +15,48 @@ PORTPROTON_IMG=$(zenity --file-selection --file-filter=""*.png" "*.ico"" \
--title="${sc_img}" --filename="${PORT_WINE_PATH}/data/img/")
if [ $? -eq 1 ];then exit 1; fi
PORTPROTON_CMD=""
PORTPROTON_CMD=$(zenity --entry --text "${sc_cmd}")
if [ $? -eq 1 ];then exit 1; fi
#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")
hud_settings=`zenity --list --title "HUD" --text "${hud_text}" --list --checklist \
--column="${inst_set}" --column="HUD info:" --column="${hud_info}" --width=800 --height=550 \
FALSE "fps" "${hud_fps}" \
FALSE "devinfo" "${hud_devinfo}" \
FALSE "frametimes" "${hud_frametimes}" \
FALSE "submissions" "${hud_submissions}" \
FALSE "drawcalls" "${hud_drawcalls}" \
FALSE "pipelines" "${hud_pipelines}" \
FALSE "memory" "${hud_memory}" \
FALSE "gpuload" "${hud_gpuload}" \
FALSE "version" "${hud_version}" \
FALSE "api" "${hud_api}" \
FALSE "compiler" "${hud_compiler}" \
FALSE "samplers" "${hud_samplers}" `
if [ ! -z $hud_settings ]; then
for hud_set in $hud_settings
do
export dxvk_ogl_var="${hud_set}"
done
export dxvk_ogl_var=${dxvk_ogl_var} | sed -i "s/|/,/g"
else
dxvk_ogl_var="0"
fi ;;
esac
########################################################################
cp -f "${PORTPROTON_IMG}" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
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 PATH_TO_GAME=\""$PORTPROTON_PATH"\" sh \"${PORT_SCRIPTS_PATH}/start\" \"${PORTPROTON_EXE}\" ${PORTPROTON_CMD}"" \
echo "Exec="env dxvk_ogl_var=$dxvk_ogl_var PATH_TO_GAME=\""$PORTPROTON_PATH"\" sh \"${PORT_SCRIPTS_PATH}/start\" \"${PORTPROTON_EXE}\" ${PORTPROTON_CMD}"" \
>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
......
......@@ -15,8 +15,8 @@ then
export ss_ver="Версия?"
export ss_default_1="Cтандартный запуск"
export ss_default_2="Старый запуск, с вопросами и логами"
export ss_ogl_2="Использовать библиотеки wined3d"
export ss_ogl_3="Использовать библиотеки Vulkan"
export ss_ogl_2="Использовать OpenGL и VKD3D. (DX9-DX11 в OpenGL и DX12 в vulkan)"
export ss_ogl_3="Использовать DXVK и D9VK. (DX9-DX11 в Vulkan и выключить DX12)"
export inst_succ="Установка завершена успешно!"
......@@ -53,7 +53,7 @@ then
export port_time5="Сейчас не могу, может быть в другой раз."
export port_time6="Я уже сделал вклад в будущее проекта."
export port_debug="После окончания ${portname}, нажмите ОК."
export port_debug="После окончания работы ${portname}, нажмите ОК."
export hud_text="Выберите вывод необходимой информации на экран:"
export hud_info="Отображать:"
......@@ -88,8 +88,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 the built-in WINE libraries"
export ss_ogl_3="Use the Vulkan libraries"
export ss_ogl_2="Use OpenGL and VKD3D. (DX9-DX11 to OpenGL and DX12 to vulkan)"
export ss_ogl_3="Use DXVK and D9VK. (DX9-DX11 to Vulkan)"
export inst_succ="The installation was successful."
......
......@@ -28,7 +28,7 @@ then
FALSE "${port_upd6}" `
case $xsd in
"${port_upd4}")
$WINESERVER -k
"${WINESERVER}" -k
xdg-open $porturl
exit 0 ;;
"${port_upd5}")
......@@ -72,7 +72,8 @@ else
python -m webbrowser "$urlg"
fi &
echo "200" > "${HOME}/.config/.PortTime"
sleep 5 ;;
sleep 5
exit 0 ;;
"${port_time5}")
echo "50" > "${HOME}/.config/.PortTime" ;;
"${port_time6}")
......
......@@ -61,7 +61,7 @@ if [ -d "${WINELIB}" ]; then
done < "${config_path}"/default_lib_paths
host_lib_paths="${WINELIB}/pinned_libs_32:${WINELIB}/pinned_libs_64:$host_lib_paths"
portwine_runtime_libs_paths="$host_lib_paths${WINELIB}/lib/i386-linux-gnu:${WINELIB}/usr/lib/i386-linux-gnu:${WINELIB}/lib/x86_64-linux-gnu:${WINELIB}/usr/lib/x86_64-linux-gnu:${WINELIB}/lib:${WINELIB}/usr/lib"
if [ ! -z "${LD_LIBRARY_PATH}" ]; then
if [ ! -z $LD_LIBRARY_PATH ]; then
export LD_LIBRARY_PATH="$portwine_runtime_libs_paths:${LD_LIBRARY_PATH-}"
else
export LD_LIBRARY_PATH="$portwine_runtime_libs_paths"
......@@ -76,10 +76,10 @@ then
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 "OpenGL" "${ss_ogl_2}" `
FALSE "VKD3D and OpenGL" "${ss_ogl_2}" `
if [ $? -eq 1 ];then exit 1; fi
case $start_settings in
"OpenGL")
"VKD3D and OpenGL")
echo "off" > "${config_path}/dxvk_on" ;;
"DXVK")
hud_settings=`zenity --list --title "HUD" --text "${hud_text}" --list --checklist \
......@@ -108,29 +108,33 @@ then
fi ;;
esac
fi
read "var_dxvk_on" < "${config_path}/dxvk_on"
export "var_dxvk_on"
if [ ! -z $dxvk_ogl_var ]; then
var_dxvk_on="${dxvk_ogl_var}"
else
read "var_dxvk_on" < "${config_path}/dxvk_on"
fi
export DXVK_HUD="${var_dxvk_on}"
echo "DXVK_HUD=${DXVK_HUD}"
if [ "${var_dxvk_on}" != "off" ]; then
export DXVK_HUD="${var_dxvk_on}"
export DXVK_STATE_CACHE_PATH="${PATH_TO_GAME}"
export DXVK_STATE_CACHE=1
export PW_USE_WINED3D=0
export PW_DXGI_FOR_VKD3D=0
export PW_NO_D9VK=0
export PW_NO_D3D11=0
export PW_NO_D3D9=0
export PW_NO_D3D10=0
echo "Use DXVK mod."
echo "DXVK_HUD=${var_dxvk_on}"
export PW_NO_D3D11=0
export PW_OLD_GL_STRING=0
echo "Use DXVK and D9VK (DX9-DX11 to Vulkan)"
else
export DXVK_STATE_CACHE=0
export PW_USE_WINED3D=1
export PW_DXGI_FOR_VKD3D=1
export PW_NO_D9VK=0
export PW_NO_D3D11=0
export PW_NO_D3D9=0
export PW_NO_D3D10=0
export PW_NO_D3D11=0
export PW_OLD_GL_STRING=0
echo "Use OpenGL mod."
echo "Use OpenGL and VKD3D (DX9-DX11 to OpenGL and DX12 to vulkan)"
fi
export DXVK_STATE_CACHE_PATH="${PATH_TO_GAME}"
export DXVK_STATE_CACHE=1
########################################################################
export optirun_on=
export check_optimus_manager=
......@@ -138,7 +142,7 @@ export PW_NVIDIA="$(lspci | grep NVIDIA)"
if [ -x "`which optimus-manager 2>/dev/null`" ]; then
export check_optimus_manager=`optimus-manager --status | grep Current | cut -f 2 -d':' | sed -e 's/^[[:space:]]*//'`
fi
if [ ! -z "${PW_NVIDIA}" ] && [ "${check_optimus_manager}" != "intel" ]; then
if [ ! -z $PW_NVIDIA ] && [ "${check_optimus_manager}" != "intel" ]; then
if [ "${check_optimus_manager}" = "nvidia" ]; then
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
elif [ -x "`which primusrun 2>/dev/null`" ]; then
......@@ -147,6 +151,9 @@ if [ ! -z "${PW_NVIDIA}" ] && [ "${check_optimus_manager}" != "intel" ]; then
elif [ -x "`which optirun 2>/dev/null`" ]; then
export optirun_on="optirun -b primus"
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
elif [ -x "`which prime-run 2>/dev/null`" ]; then
export optirun_on="prime-run"
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
fi
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
......@@ -177,14 +184,6 @@ export def_pfx="${PORT_WINE_PATH}/data/dist/share/default_pfx/"
if [ ! -d "${def_pfx}" ]; then
"${port_on_run}" "run" | pwzen
fi
export PW_NO_FSYNC=0
if [ "$(ulimit -n)" -lt 50000 ]; then
export PW_NO_ESYNC=1
echo "ESYNC is disabled"
else
export PW_NO_ESYNC=0
echo "ESYNC is enabled"
fi
export int_xneur=0
if [ $(pgrep xneur)>'0' ]; then
killall xneur
......
#!/bin/bash
# Author: PortWINE-Linux.ru
. "$(dirname $(readlink -f "$0"))/runlib"
"${WINESERVER}" -k
# "${WINESERVER}" -k
START_PORTWINE
if [ ! -z "$1" ]; then
if [ ! -z ${optirun_on} ]; then
if [ ! -z $1 ]; then
if [ ! -z $optirun_on ]; then
${optirun_on} "${port_on_run}" "run" "$1"
else
"${port_on_run}" "run" "$1"
fi
else
if [ ! -z ${optirun_on} ]; then
if [ ! -z $optirun_on ]; then
${optirun_on} "${port_on_run}" "run" "${gamestart}" ${launch_parameters}
else
"${port_on_run}" "run" "${gamestart}" ${launch_parameters}
fi
fi
STOP_PORTWINE
STOP_PORTWINE
\ No newline at end of file
......@@ -17,6 +17,8 @@ export WINEDLLOVERRIDES="winemenubuilder.exe=d"
export PW_LOG=0
export PW_ACO=1
export PW_NO_VR=1
export PW_NO_FSYNC=0
export PW_NO_ESYNC=1
export PW_FILELOCK=1
export PW_DXVK_ASYNC=0
export PW_USE_SECCOMP=0
......
#!/bin/bash
# Author: PortWINE-Linux.ru
. "$(dirname $(readlink -f "$0"))/runlib"
"${WINESERVER}" -k
START_PORTWINE
PW_LOG=1
if [ -z "${PATH_TO_GAME}" ]; then
export DXVK_STATE_CACHE_PATH="${config_path}"
export __GL_SHADER_DISK_CACHE_PATH="${config_path}"
export MESA_GLSL_CACHE_DIR="${config_path}"
fi
echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log"
echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PortWINE version:" >> "${PORT_WINE_PATH}/${portname}.log"
read install_ver < "${config_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 "$link" >> "${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"
lspci | grep VGA >> "${PORT_WINE_PATH}/${portname}.log"
lspci | grep 3D >> "${PORT_WINE_PATH}/${portname}.log"
if [ -x "`which glxinfo 2>/dev/null`" ]
then
glxinfo | grep OpenGL >> "${PORT_WINE_PATH}/${portname}.log"
else
echo "!!!glxinfo not found!!!" >> "${PORT_WINE_PATH}/${portname}.log"
fi
echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Vulkan info device name" >> "${PORT_WINE_PATH}/${portname}.log"
if [ -x "`which vulkaninfo 2>/dev/null`" ]
then
vulkaninfo | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log"
else
echo "!!!vulkaninfo not found!!!" >> "${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 DXVK_HUD="full"
export PW_LOG=1
export PW_WINEDBG_DISABLE=0
if [ ! -z ${optirun_on} ]
then
${optirun_on} "${port_on_run}" "run" "explorer"
${optirun_on} "${port_on_run}" "run" "explorer" >> "${PORT_WINE_PATH}/${portname}.log" 2>&1 &
else
"${port_on_run}" "run" "explorer"
"${port_on_run}" "run" "explorer" >> "${PORT_WINE_PATH}/${portname}.log" 2>&1 &
fi
STOP_PORTWINE
zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && "${WINESERVER}" -k
STOP_PORTWINE | pwzen
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"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment