From 8721598d6e48685d405a6865886d226bf305d703 Mon Sep 17 00:00:00 2001 From: castro-fidel Date: Sun, 17 Jan 2021 17:08:06 +0300 Subject: [PATCH] Gecko and Mono in .PortWINE. Fix for DEBUG. Add run *.bat --- data_from_portwine/scripts/port_on | 10 +-- .../scripts/portwine_db/DOOM Eternal | 4 +- .../scripts/portwine_db/Frozen Throne | 1 - data_from_portwine/scripts/portwine_db/RDR2 | 12 ++++ data_from_portwine/scripts/runlib | 64 +++++++++++++------ data_from_portwine/scripts/setup | 2 +- data_from_portwine/scripts/start.sh | 22 +++++-- portwine_install_script/PortNAME-XX | 2 +- 8 files changed, 84 insertions(+), 33 deletions(-) create mode 100644 data_from_portwine/scripts/portwine_db/RDR2 diff --git a/data_from_portwine/scripts/port_on b/data_from_portwine/scripts/port_on index ebb02fb7..cccdafcf 100755 --- a/data_from_portwine/scripts/port_on +++ b/data_from_portwine/scripts/port_on @@ -136,7 +136,7 @@ class CompatData: use_wined3d = "wined3d" in g_session.compat_config builtin_dll_copy = os.environ.get("PROTON_DLL_COPY", - # #dxsetup redist + #dxsetup redist # "d3dcompiler_*.dll," + # "d3dcsx*.dll," + # "d3dx*.dll," + @@ -146,8 +146,8 @@ class CompatData: # "xaudio*.dll," + # "xinput*.dll," + - # #vcruntime redist - "atl1*.dll," + + #vcruntime redist + # "atl1*.dll," + # "concrt1*.dll," + # "msvcp1*.dll," + # "msvcr1*.dll," + @@ -161,7 +161,7 @@ class CompatData: # "api-ms-win-crt-math-l1-1-0.dll," + # "api-ms-win-crt-runtime-l1-1-0.dll," + # "api-ms-win-crt-stdio-l1-1-0.dll," + - "ucrtbase.dll," + + # "ucrtbase.dll," + #some games balk at ntdll symlink(?) "ntdll.dll," + @@ -286,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,+mscoree") + self.env.setdefault("WINEDEBUG", "fixme-all,err+loaddll,err+dll,err+file,err+reg") self.env.setdefault("DXVK_LOG_LEVEL", "info") self.env.setdefault("VKD3D_DEBUG", "warn") self.env.setdefault("WINE_MONO_TRACE", "E:System.NotImplementedException") diff --git a/data_from_portwine/scripts/portwine_db/DOOM Eternal b/data_from_portwine/scripts/portwine_db/DOOM Eternal index 5d0511c0..1d348393 100644 --- a/data_from_portwine/scripts/portwine_db/DOOM Eternal +++ b/data_from_portwine/scripts/portwine_db/DOOM Eternal @@ -3,7 +3,7 @@ #DOOMEternalx64vk.exe #Rating=1-5 ################################################ -#export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL +export PW_VULKAN_USE=vkd3d 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. @@ -24,3 +24,5 @@ export PW_DXVK_NO_ASYNC=1 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 +export PW_DXGI_FROM_DXVK=1 +export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" \ No newline at end of file diff --git a/data_from_portwine/scripts/portwine_db/Frozen Throne b/data_from_portwine/scripts/portwine_db/Frozen Throne index 8e5e6b45..4429c6b5 100644 --- a/data_from_portwine/scripts/portwine_db/Frozen Throne +++ b/data_from_portwine/scripts/portwine_db/Frozen Throne @@ -9,4 +9,3 @@ 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/RDR2 b/data_from_portwine/scripts/portwine_db/RDR2 new file mode 100644 index 00000000..553c1e44 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/RDR2 @@ -0,0 +1,12 @@ +#!/bin/bash +#Author: +#RDR2.exe +#PlayRDR2.exe +#Rating=1-5 +################################################ +export PW_VULKAN_USE=vkd3d +export WINEDLLOVERRIDES="amd_ags_x64=b,n" +export PW_DXGI_FROM_DXVK=1 +export LAUNCH_PARAMETERS="-adapter 1 -vulkan -width 1920 -height 1080 -USEALLAVAILABLECORES -cpuLoadRebalancing -ignorepipelinecach" +export PULSE_LATENCY_MSEC=60 +export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 6c6db766..6964995f 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -68,9 +68,11 @@ fi ######################################################################## export LAUNCH_PARAMETERS="" export pw_libs_ver="_v5" +export pw_gecko_mono_ver="_v1" 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 WINE_MONO_GECKO="${HOME}/.PortWINE/mono_gecko${pw_gecko_mono_ver}" export WINEARCH=win64 export WINEPREFIX="${PORT_WINE_PATH}/data/pfx/" export PW_COMPAT_DATA_PATH="${PORT_WINE_PATH}/data/" @@ -82,20 +84,6 @@ export urlg="https://portwine-linux.ru/portwine-faq/" export PW_FTP_URL="https://portwine-linux.ru/ftp" ######################################################################## export PW_TERM="" -for pw_dist in "dxvk" "vkd3d" -do - if [ -d "${WINEDIR}"_"${pw_dist}"/share/wine/ ]; then - if [ -d "${WINEDIR}"/share/wine/gecko ]; then - rm -fr "${WINEDIR}"_"${pw_dist}"/share/wine/gecko - ln -s "${WINEDIR}"/share/wine/gecko "${WINEDIR}"_"${pw_dist}"/share/wine/ - fi - if [ -d "${WINEDIR}"/share/wine/mono ]; then - rm -fr "${WINEDIR}"_"${pw_dist}"/share/wine/mono - ln -s "${WINEDIR}"/share/wine/mono "${WINEDIR}"_"${pw_dist}"/share/wine/ - fi - fi -done - export PW_WINE_VER_DXVK="" zen_width=500 if [ -f "${WINEDIR}"_dxvk/version ]; then @@ -120,13 +108,45 @@ fi 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" + export pw_yad="${WINELIB}/usr/bin/yad" + export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e" else echo "######################################################" echo "Runtime libraries is disabled" fi ######################################################################## +if [ ! -d "${WINE_MONO_GECKO}/gecko" ] || [ ! -d "${WINE_MONO_GECKO}/mono" ] ; then + echo "######################################################" + echo "Download and install wine mono and gecko..." + ${PW_XTERM} wget -c -T 2 --output-document="${WINE_MONO_GECKO}.tar.xz" "${PW_FTP_URL}"/dist/mono_gecko${pw_gecko_mono_ver}.tar.xz + ${PW_XTERM} tar -Jxvf "${WINE_MONO_GECKO}.tar.xz" -C "${HOME}/.PortWINE/" + rm -f "${WINE_MONO_GECKO}.tar.xz" +fi +if [ ! -d "${WINEDIR}"/share/wine/ ]; then + mkdir -p "${WINEDIR}"/share/wine/ +fi +if [ -d "${WINEDIR}"/share/wine/gecko ]; then + rm -fr "${WINEDIR}"/share/wine/gecko +fi +ln -s "${WINE_MONO_GECKO}"/gecko "${WINEDIR}"/share/wine/ +if [ -d "${WINEDIR}"/share/wine/mono ]; then + rm -fr "${WINEDIR}"/share/wine/mono +fi +ln -s "${WINE_MONO_GECKO}"/mono "${WINEDIR}"/share/wine/ +for pw_dist in "dxvk" "vkd3d" +do + if [ -d "${WINEDIR}"_"${pw_dist}"/share/wine/ ]; then + if [ -d "${WINEDIR}"/share/wine/gecko ]; then + rm -fr "${WINEDIR}"_"${pw_dist}"/share/wine/gecko + cp -fr "${WINEDIR}"/share/wine/gecko "${WINEDIR}"_"${pw_dist}"/share/wine/ + fi + if [ -d "${WINEDIR}"/share/wine/mono ]; then + rm -fr "${WINEDIR}"_"${pw_dist}"/share/wine/mono + cp -fr "${WINEDIR}"/share/wine/mono "${WINEDIR}"_"${pw_dist}"/share/wine/ + fi + fi +done +######################################################################## 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 @@ -174,8 +194,17 @@ if [ "${var_pw_vulkan}" = "0" ]; then export WINEDIR="${WINEDIR}_dxvk" export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}" export mesa_glthread=true + export __GL_THREADED_OPTIMIZATIONS=1 + export __GL_SHARPEN_IGNORE_FILM_GRAIN=0 + export __GL_LOG_MAX_ANISO=0 + export __GL_ALLOW_FXAA_USAGE=0 + export __GL_SHARPEN_ENABLE=1 + export __GL_SHARPEN_VALUE=0 + export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}" + export __GL_SHADER_DISK_CACHE=1 + export __GL_SHADER_DISK_CACHE_SIZE=1000000000 echo "Use OpenGL" - fi + fi #Modded by Rus_Nor elif [ "${var_pw_vulkan}" = "dxvk" ]; then export PW_USE_WINED3D=0 export PW_DXGI_FROM_DXVK=1 @@ -229,7 +258,6 @@ if [ ! -z "${PW_NVIDIA}" ] && [ "${check_optimus_manager}" != "intel" ]; then export __GL_SHADER_DISK_CACHE_SIZE=1000000000 export __GL_DXVK_OPTIMIZATIONS=1 else - export VK_ICD_FILENAMES export DRI_PRIME=1 export VKD3D_CONFIG=force_bindless_texel_buffer fi diff --git a/data_from_portwine/scripts/setup b/data_from_portwine/scripts/setup index e2f7529a..e8f569f4 100755 --- a/data_from_portwine/scripts/setup +++ b/data_from_portwine/scripts/setup @@ -55,7 +55,7 @@ else 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;application/x-msi" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program" >> "${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" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index dafda42d..2a86aea3 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -10,6 +10,7 @@ PORTWINE_LAUNCH () KILL_PORTWINE START_PORTWINE PORTWINE_MSI=`basename "${portwine_exe}" | grep .msi` +PORTWINE_BAT=`basename "${portwine_exe}" | grep .bat` if [ ! -z "${PORTWINE_MSI}" ]; then echo "PORTWINE_MSI=${PORTWINE_MSI}" export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" @@ -19,6 +20,15 @@ if [ ! -z "${PORTWINE_MSI}" ]; then else $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" msiexec /i "$portwine_exe" fi +elif [ ! -z "${PORTWINE_BAT}" ]; then + echo "PORTWINE_BAT=${PORTWINE_BAT}" + 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" explorer "$portwine_exe" + else + $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" explorer "$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" @@ -168,21 +178,21 @@ 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 & + $PW_XTERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "$portwine_exe" 2>&1 & else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "$portwine_exe" ${LAUNCH_PARAMETERS} 2>&1 & + $PW_XTERM "${PW_RUNTIME}" "${port_on_run}" "run" "$portwine_exe" 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 & + $PW_XTERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" explorer 2>&1 & else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" explorer 2>&1 & + $PW_XTERM "${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 & + $PW_XTERM "${PW_RUNTIME}" ${optirun_on} "${port_on_run}" "run" "${gamestart}" 2>&1 & else - $PW_TERM "${PW_RUNTIME}" "${port_on_run}" "run" "${gamestart}" ${LAUNCH_PARAMETERS} 2>&1 & + $PW_XTERM "${PW_RUNTIME}" "${port_on_run}" "run" "${gamestart}" 2>&1 & fi fi zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && "${WINESERVER}" -k diff --git a/portwine_install_script/PortNAME-XX b/portwine_install_script/PortNAME-XX index dfa6c83a..a2a8d72c 100644 --- a/portwine_install_script/PortNAME-XX +++ b/portwine_install_script/PortNAME-XX @@ -111,7 +111,7 @@ export PORT_WINE_PATH="${D_PATH}" if [ ! -d "${PORT_WINE_PATH}" ];then mkdir -p "$PORT_WINE_PATH" else - for CLEAN_PORT in "dist" "dist_dxvk" "dist_vkd3d" "libs" "tmp" "scripts" + for CLEAN_PORT in "dist" "dist_dxvk" "dist_vkd3d" "libs" "tmp" do if [ -d "${PORT_WINE_PATH}/data/${CLEAN_PORT}" ];then rm -fR "${PORT_WINE_PATH}/data/${CLEAN_PORT}"