diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index 5a994ec3..a08c30b0 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -668,9 +668,9 @@ pw_mangohud_check () {
if [[ "$PW_USE_SYSTEM_VK_LAYERS" != "1" ]] ; then
sed -i 's/: "VK_LAYER/: "PW_VK_LAYER/' "${PW_PLUGINS_PATH}/portable/share/vulkan/implicit_layer.d"/MangoHud*.json
var_pw_vk_istance_layers_config_update "PW_VK_LAYER_MANGOHUD_overlay64:PW_VK_LAYER_MANGOHUD_overlay32"
- print_info "Portable MANGOHUD is enabled"
+ print_info "Portable MangoHud is enabled"
else
- print_info "System MANGOHUD is enabled"
+ print_info "System MangoHud is enabled"
export PW_MANGOHUD_SLR='MANGOHUD=1'
fi
MANGOHUD_LIB_NAME="libMangoHud.so"
@@ -683,7 +683,7 @@ pw_mangohud_check () {
fi
else
export PW_MANGOHUD_SLR=''
- print_info "MANGOHUD is disabled"
+ print_info "MangoHud is disabled"
fi
return 0
}
@@ -917,7 +917,7 @@ pw_check_and_download_wine () {
}
pw_check_and_download_dxvk_and_vkd3d () {
- #Download stable and git version DXVK
+ # Download stable and git version DXVK
for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do
if [ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ] ; then
print_info "Download and install DXVK v.${DXVK_VAR_VER}"
@@ -947,7 +947,7 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi
done
- #Download stable and git version VKD3D
+ # Download stable and git version VKD3D
for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do
if [ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ] ; then
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
@@ -977,7 +977,7 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi
done
- #Download D8VK
+ # Download D8VK
if [ ! -d "${PW_VULKAN_DIR}/d8vk-${D8VK_VER}" ] ; then
print_info "Download and install D8VK v.${D8VK_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/d8vk-${D8VK_VER}/d8vk-${D8VK_VER}.tar.xz" \
@@ -996,7 +996,7 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi
fi
- #Download DGVOODOO2
+ # Download DGVOODOO2
if [ ! -f "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}/dgVoodoo.conf" ] ; then
print_info "Download and install DGVOODOO2 v.${DGV2_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dgvoodoo2-${DGV2_VER}/dgvoodoo2-${DGV2_VER}.tar.xz" \
@@ -1985,14 +1985,14 @@ start_portwine () {
try_force_link_file "${PHYSX_PATH}/cudart64_65.dll" "${WINEPREFIX}/drive_c/windows/system32/"
unset CP_VKD3D_FILES CP_DXVK_FILES CP_D8VK_FILES CP_DGV2_FILES CP_WINE_FILES
- unset PATH_TO_DXVK_FILES PATH_TO_VKD3D_FILES PATH_TO_GALLIUM_NINE_FILES
+ unset CP_GALLIUM_NINE_FILES PATH_TO_DXVK_FILES PATH_TO_VKD3D_FILES
case "${PW_VULKAN_USE}" in
0)
# WINED3D OPENGL
print_info "Use WINED3D OpenGL"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
- CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi d3d12 d3d12core"
+ CP_WINE_FILES="ddraw d3d8 d3d9 d3d10core d3d10_1 d3d10 d3d11 dxgi d3d12 d3d12core"
export __GL_YIELD="NOTHING"
export mesa_glthread="true"
export WINE_D3D_CONFIG="renderer=gl"
@@ -2010,7 +2010,6 @@ start_portwine () {
;;
2)
# NEWEST DXVK AND VKD3D
- print_info "D8VK v.${D8VK_VER} in use"
print_info "DXVK v.${DXVK_GIT_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}"
@@ -2023,10 +2022,8 @@ start_portwine () {
3)
# GALLIUM NINE
print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
- PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
- try_copy_file "${PATH_TO_GALLIUM_NINE_FILES}/lib32/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll"
- try_copy_file "${PATH_TO_GALLIUM_NINE_FILES}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll"
+ CP_GALLIUM_NINE_FILES="d3d9"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 dxgi d3d12 d3d12core"
export __GL_YIELD="NOTHING"
@@ -2035,37 +2032,18 @@ start_portwine () {
export PW_VKBASALT="0"
export PW_MANGOHUD="0"
export PW_WINE_FULLSCREEN_FSR="0"
- unset FIND_D3D_MODULE D3D_MODULE_PATH
- if ! check_flatpak ; then
- FIND_D3D_MODULE=$(dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null)
- if [[ ! -z "$FIND_D3D_MODULE" ]] ; then
- old_IFS=$IFS
- IFS=$'\n'
- for D3D_MP in $FIND_D3D_MODULE ; do
- if [[ ! -z "$D3D_MODULE_PATH" ]]
- then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}"
- else export D3D_MODULE_PATH="/run/host${D3D_MP}"
- fi
- done
- IFS=$old_IFS
- print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
- else
- pw_stop_progress_bar
- yad_error "$(eval_gettext "d3dadapter9.so.1.0.0 - Not found in the system.\nInstall the missing package: d3dadapter9")"
- stop_portwine
- fi
- else
- export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d"
- print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
+ if [[ $(echo "$LSPCI_VGA" | grep -i "AMD") ]] \
+ && ! check_wayland_session ; then
+ check_gamescope_session && export AMD_DEBUG="nodcc"
+ || [[ "${PW_USE_GAMESCOPE}" = "1" ]] && export AMD_DEBUG="nodcc"
fi
- var_winedlloverride_update "d3d9=n"
;;
4)
# GALLIUM ZINK
print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
- CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi d3d12 d3d12core"
+ CP_WINE_FILES="ddraw d3d8 d3d9 d3d10core d3d10_1 d3d10 d3d11 dxgi d3d12 d3d12core"
export __GL_YIELD="NOTHING"
export mesa_glthread="true"
export WINE_D3D_CONFIG="renderer=gl"
@@ -2092,11 +2070,59 @@ start_portwine () {
print_info "Use DAMAVAND (DirectX to wined3d vulkan)"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
- CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi d3d12 d3d12core"
+ CP_WINE_FILES="ddraw d3d8 d3d9 d3d10core d3d10_1 d3d10 d3d11 dxgi d3d12 d3d12core"
export WINE_D3D_CONFIG="renderer=vulkan"
;;
esac
+ # DGVOODOO2 enable
+ if [[ "${PW_USE_DGVOODOO2}" == "1" ]] ; then
+ print_info "Try copy native DGVOODOO2 files..."
+ PATH_TO_DGV2_FILES="${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}"
+ CP_DGV2_FILES="ddraw d3dimm d3d8 d3d9 glide glide2x glide3x"
+ try_copy_file "${PATH_TO_DGV2_FILES}/dgVoodoo.conf" "${WINEPREFIX}/drive_c/windows/syswow64/"
+ DGV2CONF="${WINEPREFIX}/drive_c/windows/syswow64/dgVoodoo.conf"
+ if [[ "${PW_DGV2_DISABLE_D3D}" == "1" ]] ; then
+ rm_from_var CP_DGV2_FILES "d3d8 d3d9"
+ rm_from_var CP_WINE_FILES "ddraw"
+ else
+ try_copy_file "${PATH_TO_DGV2_FILES}/x64/d3d9.dll" "${WINEPREFIX}/drive_c/windows/system32/"
+ try_remove_file "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf"
+ try_force_link_file "${DGV2CONF}" "${WINEPREFIX}/drive_c/windows/system32/"
+ if [[ "${PW_VULKAN_USE}" == "0" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw d3d8 d3d9"
+ elif [[ "${PW_VULKAN_USE}" == "1" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw d3d8" && rm_from_var CP_DXVK_FILES "d3d9"
+ elif [[ "${PW_VULKAN_USE}" == "2" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw" && rm_from_var CP_D8VK_FILES "d3d8" && rm_from_var CP_DXVK_FILES "d3d9"
+ elif [[ "${PW_VULKAN_USE}" == "3" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw d3d8" && rm_from_var CP_GALLIUM_NINE_FILES "d3d9"
+ elif [[ "${PW_VULKAN_USE}" == "4" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw d3d8 d3d9"
+ elif [[ "${PW_VULKAN_USE}" == "5" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw d3d8" && rm_from_var CP_DXVK_FILES "d3d9"
+ elif [[ "${PW_VULKAN_USE}" == "6" ]] ; then
+ rm_from_var CP_WINE_FILES "ddraw d3d8 d3d9"
+ fi
+ fi
+ for wine_dgv2_dll in $CP_DGV2_FILES ; do
+ try_copy_file "${PATH_TO_DGV2_FILES}/x32/${wine_dgv2_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
+ var_winedlloverride_update "${wine_dgv2_dll}=n"
+ done
+ # DGVOODOO2 settings:
+ [[ "${PW_DGV2_16BIT_MODE}" == "1" ]] && sed -i "s/DesktopBitDepth =/DesktopBitDepth = 16/" "$DGV2CONF"
+ [[ "${PW_DGV2_USE_DX12}" == "1" ]] && [[ "${PW_VULKAN_USE}" == "1" ]] && sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF"
+ [[ "${PW_DGV2_FULLSCREEN}" == "1" ]] && sed -i "s/Resolution = unforced/Resolution = desktop/g" "$DGV2CONF"
+ [[ "${PW_DGV2_FASTMEMORY}" == "1" ]] && sed -i "s/FastVideoMemoryAccess = false/FastVideoMemoryAccess = true/" "$DGV2CONF"
+ [[ "${PW_DGV2_VRAM_INCREASE}" == "1" ]] && sed -i "s/VRAM = 256/VRAM = 1024/" "$DGV2CONF"
+ [[ "${PW_DGV2_FILTERING}" == "1" ]] && sed -i "79s/Filtering = appdriven/Filtering = 16/" "$DGV2CONF"
+ [[ "${PW_DGV2_ANTIALIASING}" == "1" ]] && sed -i "83s/Antialiasing = appdriven/Antialiasing = 8x/" "$DGV2CONF"
+ else
+ for rm_dgv2_dll in d3dimm glide glide2x glide3x ; do
+ try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${rm_dgv2_dll}.dll"
+ done
+ fi
+
# force use dxgi.dll from wine
if [[ "${PW_USE_WINE_DXGI}" == "1" ]] ; then
rm_from_var CP_DXVK_FILES "dxgi"
@@ -2156,33 +2182,35 @@ start_portwine () {
done
fi
- # force use all DGVOODOO2 libs and 64bit
- if [[ "${PW_USE_DGVOODOO2}" == "1" ]] ; then
- print_info "DGVOODOO2 v.${DGV2_VER} in use"
- print_info "Try copy native DGVOODOO2 files..."
- CP_DGV2_FILES="ddraw d3dimm d3d8 d3d9 glide glide2x glide3x"
- PATH_TO_DGV2_FILES="${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}"
- for wine_dgv2_dll in $CP_DGV2_FILES ; do
- try_copy_file "${PATH_TO_DGV2_FILES}/x32/${wine_dgv2_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
- var_winedlloverride_update "${wine_dgv2_dll}=n"
- done
- DGV2CONF="${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf"
- try_copy_file "${PATH_TO_DGV2_FILES}/x64/d3d9.dll" "${WINEPREFIX}/drive_c/windows/system32/"
- try_copy_file "${PATH_TO_DGV2_FILES}/dgVoodoo.conf" "${WINEPREFIX}/drive_c/windows/system32/"
- try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/dgVoodoo.conf"
- try_force_link_file "${DGV2CONF}" "${WINEPREFIX}/drive_c/windows/syswow64/"
-
- # DGVOODOO2 settings:
- [[ "${PW_DGV2_DX12}" == "1" ]] && sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF"
- [[ "${PW_DGV2_FULLSCREEN}" == "1" ]] && sed -i "s/Resolution = unforced/Resolution = desktop/" "$DGV2CONF"
- if [[ "${PW_DGV2_FASTMEMORY}" == "1" ]] ; then
- sed -i "s/FastVideoMemoryAccess = false/FastVideoMemoryAccess = true/" "$DGV2CONF"
- sed -i "s/VRAM = 256/VRAM = 1024/" "$DGV2CONF"
+ if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] ; then
+ print_info "Try copy native GALLIUM_NINE files..."
+ PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
+ try_copy_file "${PATH_TO_GALLIUM_NINE_FILES}/lib32/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll"
+ try_copy_file "${PATH_TO_GALLIUM_NINE_FILES}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll"
+ unset FIND_D3D_MODULE D3D_MODULE_PATH
+ if ! check_flatpak ; then
+ FIND_D3D_MODULE=$(dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null)
+ if [[ ! -z "$FIND_D3D_MODULE" ]] ; then
+ old_IFS=$IFS
+ IFS=$'\n'
+ for D3D_MP in $FIND_D3D_MODULE ; do
+ if [[ ! -z "$D3D_MODULE_PATH" ]]
+ then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}"
+ else export D3D_MODULE_PATH="/run/host${D3D_MP}"
+ fi
+ done
+ IFS=$old_IFS
+ print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
+ else
+ pw_stop_progress_bar
+ yad_error "$(eval_gettext "d3dadapter9.so.1.0.0 - Not found in the system.\nInstall the missing package: d3dadapter9")"
+ stop_portwine
+ fi
+ else
+ export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d"
+ print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
fi
- else
- for rm_dgv2_dll in d3dimm glide glide2x glide3x ; do
- try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${rm_dgv2_dll}.dll"
- done
+ var_winedlloverride_update "d3d9=n"
fi
if [[ ! -d "${WINEPREFIX}/drive_c/vrclient/bin" ]] ; then
@@ -2787,10 +2815,16 @@ pw_gui_for_edit_db () {
unset ADD_CHK_BOX_EDIT_DB
# DGVOODOO2 INFO:
- PW_USE_DGVOODOO2_INFO=$(eval_gettext 'Forced use all dgVoodoo2 libs (Glide 2.11-3.1, DirectDraw 1-7, Direct3D 2-9) on all 3D API. For WineD3D OpenGL and Gallium Zink need use WineLG')
- PW_DGV2_DX12_INFO=$(eval_gettext 'Use DirectX12 for dgVoodoo2. (Working only on newest and stable dxvk and vkd3d, D3D8 working on stable, some games may work better, some may work worse)')
- PW_DGV2_FASTMEMORY_INFO=$(eval_gettext 'Increase the amount of vram for dgVoodoo2 and enable fast memory access. (Enable if games have poor performance, using Unreal 2 as an example)')
+ PW_USE_DGVOODOO2_INFO=$(eval_gettext 'Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, DirectDraw 1-7, Direct3D 2-9) on all 3D API. For WineD3D OpenGL need use WineLG (For Gallium Nine and Zink use too)')
+ PW_DGV2_DISABLE_D3D_INFO=$(eval_gettext 'Do not use d3d8 and d3d9 dgVoodoo2 libraries. For some old games, using the example of Space Rangers, a bug with a black screen is corrected.')
+ PW_DGV2_16BIT_MODE_INFO=$(eval_gettext 'Forced use of 16bit screen mode. Solves the problem of launching old games, such as Moto Racer.')
+ PW_DGV2_USE_DX12_INFO=$(eval_gettext 'DirectXD 11 is used by default (and recommended). Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on stable dxvk and vkd3d)')
+ PW_DGV2_FASTMEMORY_INFO=$(eval_gettext 'Enable fast memory access. (Enable if games have poor performance, using Unreal 2 as an example)')
+ PW_DGV2_VRAM_INCREASE_INFO=$(eval_gettext 'Increase the amount of vram for dgVoodoo2 (Increases from 256 to 1024)')
PW_DGV2_FULLSCREEN_INFO=$(eval_gettext 'Render image based on monitor resolution. Can use if the game has a small interface size. Widescreen effect for 16:9')
+ PW_DGV2_FILTERING_INFO=$(eval_gettext 'Forced anisotropic filtering 16x in Direct3D games')
+ PW_DGV2_ANTIALIASING_INFO=$(eval_gettext 'Forced antialiasing 8x in Direct3D games')
+
PW_DINPUT_PROTOCOL_INFO=$(eval_gettext 'Force use DirectInput protocol instead of XInput')
PW_VKBASALT_INFO=$(eval_gettext 'Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)')
PW_NO_ESYNC_INFO=$(eval_gettext 'Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)')
@@ -3501,7 +3535,7 @@ gui_MangoHud () {
GUI_MH_RESULT="${GUI_MH_RESULT},fps_limit=0"
fi
- if [[ "${GUI_MH_RESULT}" =~ "fps_only" ]]; then
+ if [[ "${GUI_MH_RESULT}" =~ "fps_only" ]] ; then
local GUI_MH_RESULT="fps_only"
print_info "In the MangoHud config fps_only is detected all settings are reseted"
fi
@@ -4005,7 +4039,8 @@ pw_edit_db () {
PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME
PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_GAMESCOPE PW_DISABLE_COMPOSITING
- PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_DGVOODOO2 PW_DGV2_DX12 PW_DGV2_FASTMEMORY PW_DGV2_FULLSCREEN
+ PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_DGVOODOO2 PW_DGV2_DISABLE_D3D PW_DGV2_16BIT_MODE PW_DGV2_USE_DX12 PW_DGV2_FASTMEMORY
+ PW_DGV2_VRAM_INCREASE PW_DGV2_FULLSCREEN PW_DGV2_FILTERING PW_DGV2_ANTIALIASING
"
@@ -4017,7 +4052,7 @@ pw_edit_db () {
fi
pw_gui_for_edit_db $PW_EDIT_DB_LIST
- # PW_FORCE_USE_VSYNC HEAP_DELAY_FREE
+ # PW_FORCE_USE_VSYNC PW_HEAP_DELAY_FREE
}
pw_autoinstall_from_db () {