Commit 56c3da7d authored by Mikhail Tergoev's avatar Mikhail Tergoev

Scripts version 1034

parent 70a4b8da
В планах:
* вывод changlog после обновления
* перепроверить KILL_WINESERVER
* исправить работу windows steam
* создать defaut префик и сделать авто симлинки в другие префиксы (games, programm files, users)
* добавить кнопку отчистки префикса без затрагивания игр и программ
* удалить старые mono и gecko из .PortWINE
* добавить вопрос перед обновлением скриптов
* проверить windows steam под PortProton
* убрать все *_vars
* выкачка либов из серверов кроссовера?
* иконка в трей для PortProton
* пофиксить выхлоп debug
* зарабатывать на жизнь развитием проекта с помощью вашей подписки на https://boosty.to/portwine-linux.ru
###Scripts version 1034###
* hotfix для EGS
* в dxvk и opengl режиме, по умолчанию выбран win7
###Scripts version 1033###
* убран xterm из debug (иначе ломает шрифты)
* добавлена кнопка редактирования найденного db файла
* ТЕСТ: автоудаление PINNED_LIBS и отключение setup.sh --force
###Scripts version 1032###
* изменение сравнения версий скриптов и портов "$(curl -s --list-only "https://portwine-linux.ru/ftp/current_version/blabla_ver")"
* автоматическая установка в префикс порта PW_DLL_INSTALL="vcrun2017 vcrun6 vcrun6sp6 mfc42"
* по умолчанию под dxvk и opengl используется win10
* исправлено создание db файла при создании ярлыков, в именах которых присутствует одниковвые названия запускаемого файла
###Scripts version 1031###
* исправили создания префикса на некоторых системах при использования встроенного xterm из ~/PortWINE/libs
###PortProton-71### 11.04.2021
* отключено обновление libs, mono и gecko во время установки PortProton
* проверка версии glibc перед установкой, если версия ниже необходимой, то выводим ошибку
* добавлена проверка хеш-суммы порта на ftp перед установкой
* добавлен прогресс загрузки библиотек с интернета
* добавлен в debug полный путь до запускаемой игры/программы вместе с именем файла
* исправлено дублирование db файлов при создании ярлыков
* перенос libs с сервера PortWINE-Linux.ru на https://github.com/Castro-Fidel/PortWINE/releases/
* скачивание mono оф. github mono
* скачивание gecko оф. ftp winehq
* в /data/scripts/vars/PortProton_vars добавлена переменная PW_MANGOHUD=1 что включает HUD для монитроринга FPS, нагрузку на CPU, GPU и т.п (при условии что в системе предустановлен пакет mangohud)
* обновлена локализация подсказок при наведении на кнопки на экране выбора режимов запуска (русская и английская версии)
* добавлена проверка соединения с серверами и докачки winetricks, libs, mono, gecko.
* произведена глобальная чистка кода и вынос множества решений в отдельные функции
* дебаг теперь открывается в системном текстовом редакторе
* в дебаг добавлен инвайт (ссылка-приглашение) на наш сервер Discord
* убран CREATE_SHORTCUT и LAUNCH при запуске PortProton.desktop
* убрано удаление кэша winetricks
###PortProton-70### 05.04.2021
* обновлен wine до версии proton 6.3-1
* обновлены dxvk и vkd3d поставляемые вместе с proton 6.3-1
* обновлены библиотеки до версии libs_v7
* обновлен Mono до 6.1.1
* обновлен Gecko до 2.47.2
###PortProton-65### 13.02.2021
* реализовано автоматическое обновление скриптов
###PortProton-63### 22.11.2020
* при запуске exe по ПКМ выбор режима появляется всегда (удобно для тестов)
* все настройки переехали в один файл PortProton (псевдографика использует YAD)
* обновлены runlib (добавлен YAD что бы не было необходимости устанавливать его в систему)
* ускорен запуск порта после изменения версии WINE 
* reset убивает процессы wine только для текущего порта
* winetricks теперь не скачивается при каждом запуске, а идет проверка актуальности версии
* добавлена функция использования базы данных для запускаемых игр и программ (автоматическая настройка префикса)
* добавлена функция тихой установки порта (sh PortProton-XX -rus, или sh PortProton-XX -eng)
###PortProton-51### 22.11.2020 - RELEASE
* включает в себя 2 версии вайна: WINE PROTON 5.21 GE 1 и WINE PROTON 5.13 EXPEREMENTAL (переключаются автоматически, в зависимости от выбранного режима запуска dxvk, или vkd3d)
* обновлен DXVK до версии 1.7.3 (работают как старые игры требующие DirectX 9, так и новые с DirectX 11)
* обновлен VKD3D до версии 2.1 (работают новинки которые требуют DirectX 12. Например Cyberpunk2077 и Death Stranding)
* добавлена функция автоматического удаление мусора в виде steamclien.dll из префикса, реестра и библиотек предустановленного вайна
* обновлены скрипты (подробнее у нас на github)
значительно переработан и улучшен debug режим (запускается из каталога с портом)
* обновлены runtime библиотеки до версии libs_v4, что улучшает совместимость с разными ОС Linux и повышает производительность в играх
поддерживаются gamemode, FSYNC, ESYNC  из "коробки" 
* простое создание ярлыков с выбором режима запуска (+ возможно добавить свои параметры запуска к игре/приложению) 
* добавлена интеграция PortProton в рабочее окружение (root права не нужны, концепция порта не изменилась)
...@@ -90,6 +90,7 @@ then ...@@ -90,6 +90,7 @@ then
export loc_scripts_update=" Обновление базы данных для игр\n и программ успешно завершено.\n\n Перезапустите ${portname}." export loc_scripts_update=" Обновление базы данных для игр\n и программ успешно завершено.\n\n Перезапустите ${portname}."
export loc_edit_db="Изменить файл настроек для"
elif [ "${update_loc}" = "ENG" ] elif [ "${update_loc}" = "ENG" ]
then then
...@@ -177,4 +178,5 @@ then ...@@ -177,4 +178,5 @@ then
export loc_scripts_update="Updating scripts and database of games\n and programs completed successfully.\n\n Restart ${portname}." export loc_scripts_update="Updating scripts and database of games\n and programs completed successfully.\n\n Restart ${portname}."
export loc_edit_db="Edit database file for"
fi fi
#!/bin/bash
#Author:
#bg3_dx11.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=dxvk
export LAUNCH_PARAMETERS=""
export PW_DLL_INSTALL="d3dcompiler_43 d3dcompiler_47 vcrun2019"
#export DXVK_HUD=1
...@@ -6,6 +6,12 @@ ...@@ -6,6 +6,12 @@
################################################ ################################################
export PW_VULKAN_USE=dxvk export PW_VULKAN_USE=dxvk
export LAUNCH_PARAMETERS="" export LAUNCH_PARAMETERS=""
export PW_DLL_INSTALL="vcrun2019 arial" export PW_DLL_INSTALL="vcrun2017 d3dx11_42 d3dx11_43"
export PW_WINDOWS_VER=10 export PW_WINDOWS_VER=10
export PW_NVAPI_DISABLE=1
ADD_IN_START_PORTWINE () {
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"
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
try_remove_file "${PORT_WINE_PATH}/data/pfx/drive_c/windows/Fonts/sourcehansans.ttc"
}
\ No newline at end of file
#!/bin/bash #!/bin/bash
#Author: PortWINE #Author: PortWINE
#EpicGamesLauncher.exe #EpicGamesLauncher.exe
#Rating=5 #Rating=5
################################################ ################################################
export WINEDLLOVERRIDES="libglesv2=" export WINEDLLOVERRIDES="libglesv2="
export LAUNCH_PARAMETERS="-opengl -SkipBuildPatchPrereq" export LAUNCH_PARAMETERS="-opengl -SkipBuildPatchPrereq"
export PW_DLL_INSTALL="vcrun2010 vcrun2012 vcrun2013 vcrun2017 d3dcompiler_43 d3dcompiler_47 arial cjkfonts d3dx9" export PW_DLL_INSTALL="vcrun2010 vcrun2012 vcrun2013 vcrun2017 d3dcompiler_43 d3dcompiler_47 d3dx9"
export MESA_GL_VERSION_OVERRIDE=4.4COMPAT export MESA_GL_VERSION_OVERRIDE=4.4COMPAT
#!/bin/bash
#Author: xuser
#FarLoneSails.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=0
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
#!/bin/bash
#Author: xuser
#MassEffect.exe
#Rating=1-5
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
#!/bin/bash
#Author: xuser
#MassEffect2.exe
#Rating=1-5
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
...@@ -6,5 +6,5 @@ ...@@ -6,5 +6,5 @@
#Rating=? #Rating=?
################################################ ################################################
export PW_VULKAN_USE=dxvk export PW_VULKAN_USE=dxvk
export PW_DLL_INSTALL="arial vcrun2019" export PW_DLL_INSTALL="vcrun2017"
export PW_WINDOWS_VER=10 export PW_WINDOWS_VER=10
\ No newline at end of file
#!/bin/bash
#Author: xuser
#Suite.exe
#Rating=1-5
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
export PW_DLL_INSTALL="corefonts" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
#export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##ADD_IN_START_PORTWINE () { commands ; }
export PW_VULKAN_USE=0
#!/bin/bash
#Author: chal55rus
#WarGame3.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=vkd3d
export PW_DLL_INSTALL="wmp9"
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##ADD_IN_START_PORTWINE () { commands ; }
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
#Author: PortWINE-Linux.ru #Author: PortWINE-Linux.ru
#name_exe_file.exe #name_exe_file.exe
#Rating=1-5 #Rating=1-5
#export PW_COMMENT_DB="blablabla" export PW_DLL_INSTALL="vcrun2017 vcrun6 vcrun6sp6 mfc42" # Install DDL in port prefix (used winetricks)
#####################examples########################### #####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL ##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
...@@ -25,9 +26,11 @@ ...@@ -25,9 +26,11 @@
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI ##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr ##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1 ##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo ##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0 ##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0 ##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; } ##ADD_IN_START_PORTWINE () { commands ; }
#!/bin/bash
#Author: xuser
#dontstarve.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=vkd3d
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2017 d3dcompiler_43" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
#!/bin/bash
#Author: Ridbowt
#Risen.exe
#Rating 4
#####################examples###########################
export PW_VULKAN_USE=0 # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
export PW_DLL_INSTALL="physx d3dx9" # Install DDL in port prefix (used winetricks)
##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 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##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 # Disabled WINEDBG
##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 # Fix crackling audio in games
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
#export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
#!/bin/bash #!/bin/bash
#Author: PortWINE-Linux.ru #Author: PortWINE-Linux.ru
#setup.exe #setup.exe
#Setup.exe
#SETUP.exe
#.msi #.msi
#Rating=5 #Rating=5
#export PW_COMMENT_DB="blablabla" #export PW_COMMENT_DB="blablabla"
...@@ -25,4 +27,4 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=0 # Force Wine to enable the LARGE_ ...@@ -25,4 +27,4 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=0 # Force Wine to enable the LARGE_
export PW_DLL_INSTALL="vcrun6 mfc42 vcrun6sp6" export PW_DLL_INSTALL="vcrun6 mfc42 vcrun6sp6"
#export LAUNCH_PARAMETERS="-d3d9" #export LAUNCH_PARAMETERS="-d3d9"
export PW_GUI_DISABLED_CS=1 export PW_GUI_DISABLED_CS=1
export PW_WINDOWS_VER=XP # Set windows version 10, 7 or XP #export PW_WINDOWS_VER=XP # Set windows version 10, 7 or XP
...@@ -5,5 +5,4 @@ ...@@ -5,5 +5,4 @@
################################################ ################################################
export LAUNCH_PARAMETERS="" export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="libglesv2=" export WINEDLLOVERRIDES="libglesv2="
export LAUNCH_PARAMETERS"-no-cef-sandbox"
...@@ -7,3 +7,6 @@ export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL ...@@ -7,3 +7,6 @@ export PW_VULKAN_USE=dxvk #dxvk, vkd3d or 0 for OpenGL
#export PW_DLL_INSTALL="" # Install DDL in port prefix (used winetricks) #export PW_DLL_INSTALL="" # Install DDL in port prefix (used winetricks)
export LAUNCH_PARAMETERS="--disable-gpu" # Additional launch options export LAUNCH_PARAMETERS="--disable-gpu" # Additional launch options
export PW_USE_TERMINAL=1 export PW_USE_TERMINAL=1
ADD_IN_START_PORTWINE () {
sed -i 's/true/false/g' "${PORT_WINE_PATH}/data/pfx/drive_c/Games/WGC/preferences.xml"
}
\ No newline at end of file
#!/bin/bash #!/bin/bash
# Author: PortWINE-Linux.ru # Author: Castro-Fidel (PortWINE-Linux.ru)
# Development assistants: Cefeiko; Rus_Nor; gavr; RidBowt;
######################################################################## ########################################################################
echo ' echo '
████─████─████─███─█───█─███─█──█─███ ████─████─████─███─█───█─███─█──█─███
...@@ -15,19 +16,13 @@ if [ "${s_install}" != "1" ] && [ ! -x "`which "zenity" 2>/dev/null`" ];then ...@@ -15,19 +16,13 @@ if [ "${s_install}" != "1" ] && [ ! -x "`which "zenity" 2>/dev/null`" ];then
xdg-open "http://portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0 xdg-open "http://portwine-linux.ru/portwine-faq/" > /dev/null 2>&1 & exit 0
fi fi
print_error () { print_error () {
PS1_old="${PS1}" && PS1="\e[40;11;31m[\u@\h \W]$"
echo "ERROR: $@" echo "ERROR: $@"
PS1="${PS1_old}"
} }
print_info () { print_info () {
PS1_old="${PS1}" && PS1="\e[40;11;36m[\u@\h \W]$"
echo "INFO: $@" echo "INFO: $@"
PS1="${PS1_old}"
} }
print_var () { print_var () {
PS1_old="${PS1}" && PS1="\e[47;11;30m[\u@\h \W]$"
for vp in $@ ; do echo "${vp}=${!vp}" ; done for vp in $@ ; do echo "${vp}=${!vp}" ; done
PS1="${PS1_old}"
} }
try_copy_file () { try_copy_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for copy" if [ ! -f "$1" ] ; then print_info "file $1 not found for copy"
...@@ -48,16 +43,14 @@ try_copy_dir () { ...@@ -48,16 +43,14 @@ try_copy_dir () {
return 1 return 1
} }
try_remove_file () { try_remove_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for remove" if [ -f "$1" ] ; then
else
rm -f "$1" rm -f "$1"
[ "$?" != 0 ] && print_error "failed to remove file $1" || return 0 [ "$?" != 0 ] && print_error "failed to remove file $1" || return 0
fi fi
return 1 return 1
} }
try_remove_dir () { try_remove_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for remove" if [ -d "$1" ] ; then
else
rm -fr "$1" rm -fr "$1"
[ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0 [ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0
fi fi
...@@ -83,8 +76,11 @@ try_force_link_dir () { ...@@ -83,8 +76,11 @@ try_force_link_dir () {
return 1 return 1
} }
try_download () { try_download () {
wget -c -t 3 -T 2 "$1" --output-document="$2" set -o pipefail
[ "$?" != 0 ] && print_error "failed to download $1. Scipping." && export DOWNLOAD_ERROR=1 && return 1 || export DOWNLOAD_ERROR=0 && return 0 wget -c -t 3 -T 2 "$1" --output-document="$2" 2>&1 | \
sed -u 's/^[a-zA-Z\-].*//; s/.* \{1,2\}\([0-9]\{1,3\}\)%.*/\1\n#Downloading... \1%/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90
[ "${PIPESTATUS[0]}" != 0 ] && print_error "failed to download $1. Scipping." && export DOWNLOAD_ERROR=1 && return 1 || export DOWNLOAD_ERROR=0 && return 0
} }
create_new_dir () { create_new_dir () {
if [ ! -d "$1" ] ; then if [ ! -d "$1" ] ; then
...@@ -97,21 +93,19 @@ var_winedlloverride_update () { ...@@ -97,21 +93,19 @@ var_winedlloverride_update () {
else export WINEDLLOVERRIDES="${1}" else export WINEDLLOVERRIDES="${1}"
fi fi
} }
sszen() { sszen() {
zenity --progress --title="Settings..." --text="Updating parameters" --no-cancel --pulsate --auto-close --width 400 zenity --progress --title="Settings..." --text="Updating parameters" --pulsate --auto-close --width=500 --height=90 --no-cancel
} }
PW_START_PROGRESS_BAR () { PW_START_PROGRESS_BAR () {
"${pw_yad}" --progress --progress-text="Start ${portname}... Please wait..." --pulsate --close-on-unfocus \ "${pw_yad}" --progress --progress-text="Start ${portname}... Please wait..." --pulsate --close-on-unfocus \
--no-buttons --undecorated --center --skip-taskbar --width=600 --wrap-width=500 & --no-buttons --undecorated --center --skip-taskbar --width=600 --wrap-width=500 &
export start_progress_yad_pid=$(echo $!) export start_progress_yad_pid=$(echo $!)
} }
PW_STOP_PROGRESS_BAR () { PW_STOP_PROGRESS_BAR () {
if [ ! -z "${start_progress_yad_pid}" ] ; then if [ ! -z "${start_progress_yad_pid}" ] ; then
kill "${start_progress_yad_pid}" kill "${start_progress_yad_pid}"
fi fi
} }
export PW_WINDOWS_VER="7"
cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)" cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)" cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
...@@ -139,12 +133,15 @@ if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_ver" ]; then ...@@ -139,12 +133,15 @@ if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_ver" ]; then
fi fi
export pw_libs_ver="_v7" export pw_libs_ver="_v7"
export pw_gecko_mono_ver="_v2" export mono_ver="6.1.1"
export WINEARCH= export gecko_ver="2.47.2"
export url_mono="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${mono_ver}/wine-mono-${mono_ver}-x86.tar.xz"
export url_gecko_x86="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86.tar.xz"
export url_gecko_x86_64="https://dl.winehq.org/wine/wine-gecko/${gecko_ver}/wine-gecko-${gecko_ver}-x86_64.tar.xz"
export WINEARCH=win64
export PW_VULKAN_DLL="${PORT_WINE_PATH}"/data/vulkan export PW_VULKAN_DLL="${PORT_WINE_PATH}"/data/vulkan
export WINEDIR="${PORT_WINE_PATH}"/data/dist export WINEDIR="${PORT_WINE_PATH}"/data/dist
export WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}" export WINELIB="${HOME}/.PortWINE/libs${pw_libs_ver}"
export WINE_MONO_GECKO="${HOME}/.PortWINE/mono_gecko${pw_gecko_mono_ver}"
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx/" export WINEPREFIX="${PORT_WINE_PATH}/data/pfx/"
export PW_COMPAT_MEDIA_PATH="${PORT_WINE_TMP_PATH}/" export PW_COMPAT_MEDIA_PATH="${PORT_WINE_TMP_PATH}/"
export PW_RUNTIME="$WINELIB/run.sh" export PW_RUNTIME="$WINELIB/run.sh"
...@@ -153,6 +150,8 @@ export urlg="https://portwine-linux.ru/portwine-faq/" ...@@ -153,6 +150,8 @@ export urlg="https://portwine-linux.ru/portwine-faq/"
export PW_FTP_URL="https://portwine-linux.ru/ftp" export PW_FTP_URL="https://portwine-linux.ru/ftp"
export PW_TERM="" export PW_TERM=""
export PW_WINE_VER_DXVK="" export PW_WINE_VER_DXVK=""
export PW_WINDOWS_VER="7"
export PW_LOG=0
var_winedlloverride_update "winemenubuilder.exe=" var_winedlloverride_update "winemenubuilder.exe="
zen_width=500 zen_width=500
...@@ -167,57 +166,82 @@ if [ -f "${WINEDIR}"_vkd3d/version ]; then ...@@ -167,57 +166,82 @@ if [ -f "${WINEDIR}"_vkd3d/version ]; then
PW_WINE_VER_VKD3D="( wine: $PW_WINE_VER_VKD3D )" PW_WINE_VER_VKD3D="( wine: $PW_WINE_VER_VKD3D )"
zen_width=1000 zen_width=1000
fi fi
if [ ! -e "${WINELIB}/run.sh" ] || [ ! -e "${WINELIB}/usr/bin/yad" ] || [ ! -e "${WINELIB}/amd64/usr/bin/vkcube" ] || [ ! -e "${WINELIB}/amd64/usr/bin/xterm" ] || [ -e "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ] ; then if [ -z "${INSTALLING_PORT}" ] ; then
echo "Download and install libraries..." if [ ! -e "${WINELIB}/run.sh" ] || [ ! -e "${WINELIB}/usr/bin/yad" ] || [ ! -e "${WINELIB}/amd64/usr/bin/vkcube" ] || [ ! -e "${WINELIB}/amd64/usr/bin/xterm" ] || [ -e "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" ] ; then
try_download "${PW_FTP_URL}/dist/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" | sszen && echo "Download and install libraries..."
[ "${DOWNLOAD_ERROR}" != 1 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" -C "${HOME}/.PortWINE/" | sszen && try_download "https://github.com/Castro-Fidel/PortWINE/releases/download/libs${pw_libs_ver}/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz"
[ "${DOWNLOAD_ERROR}" != 1 ] && rm -f "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" [ "${DOWNLOAD_ERROR}" != 1 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" -C "${HOME}/.PortWINE/" | sszen &&
[ "${DOWNLOAD_ERROR}" != 1 ] && "${WINELIB}"/setup.sh --force [ "${DOWNLOAD_ERROR}" != 1 ] && rm -f "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz"
fi #[ "${DOWNLOAD_ERROR}" != 1 ] && "${WINELIB}"/setup.sh --force
if [ -e "${WINELIB}/run.sh" ]; then fi
echo "######################################################" if [ -e "${WINELIB}/run.sh" ]; then
echo "Runtime libraries is enabled" echo "######################################################"
export pw_yad="${WINELIB}/usr/bin/yad" echo "Runtime libraries is enabled"
export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e" try_remove_dir "${WINELIB}/pinned_libs_32"
else try_remove_dir "${WINELIB}/pinned_libs_64"
echo "######################################################" export pw_yad="${WINELIB}/usr/bin/yad"
echo "Runtime libraries is disabled" if [ -x "`which xterm 2>/dev/null`" ]; then
fi export PW_XTERM="xterm -geometry 159x37 -e"
if [ ! -d "${WINE_MONO_GECKO}/gecko" ] || [ ! -d "${WINE_MONO_GECKO}/mono" ] || [ -e "${WINE_MONO_GECKO}.tar.xz" ] ; then else
echo "######################################################" export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e"
echo "Download and install wine mono and gecko..." fi
try_download "${PW_FTP_URL}"/dist/mono_gecko${pw_gecko_mono_ver}.tar.xz "${WINE_MONO_GECKO}.tar.xz" | sszen &&
[ "${DOWNLOAD_ERROR}" != 1 ] && ${PW_XTERM} tar -Jxvf "${WINE_MONO_GECKO}.tar.xz" -C "${HOME}/.PortWINE/"
[ "${DOWNLOAD_ERROR}" != 1 ] && try_remove_file "${WINE_MONO_GECKO}.tar.xz"
fi
create_new_dir "${WINEDIR}/share/wine/"
try_force_link_dir "${WINE_MONO_GECKO}"/gecko "${WINEDIR}"/share/wine/
try_force_link_dir "${WINE_MONO_GECKO}"/mono "${WINEDIR}"/share/wine/
for pw_dist in "dxvk" "vkd3d"
do
if [ -d "${WINEDIR}"_"${pw_dist}"/share/wine/ ]; then
try_force_link_dir "${WINEDIR}"/share/wine/gecko "${WINEDIR}"_"${pw_dist}"/share/wine/
try_force_link_dir "${WINEDIR}"/share/wine/mono "${WINEDIR}"_"${pw_dist}"/share/wine/
fi
done
if [ ! -z "${gamestart}" ]; then
export PORTWINE_DB=`echo "${gamestart}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
elif [ ! -z "${portwine_exe}" ]; then
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'`
fi
if [ ! -z "${PORTWINE_DB}" ]; then
PORTWINE_DB_FILE=`grep -il "#${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
. "${PORTWINE_DB_FILE}"
echo "Use ${PORTWINE_DB_FILE} db file."
else else
. "${PORT_SCRIPTS_PATH}/portwine_db/default" echo "######################################################"
echo "Use default db file." echo "Runtime libraries is disabled"
fi
if [ ! -d "${HOME}/.PortWINE/mono/wine-mono-${mono_ver}" ] ; then
echo "######################################################"
echo "Download and install wine mono..."
try_download "${url_mono}" "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz"
[ "${DOWNLOAD_ERROR}" != 1 ] && create_new_dir "${HOME}/.PortWINE/mono"
[ "${DOWNLOAD_ERROR}" != 1 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz" -C "${HOME}/.PortWINE/mono/" | sszen &&
[ "${DOWNLOAD_ERROR}" != 1 ] && try_remove_file "${HOME}/.PortWINE/tmp/wine-mono-${mono_ver}-x86.tar.xz"
fi
if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86" ] ; then
echo "######################################################"
echo "Download and install wine gecko x86..."
try_download "${url_gecko_x86}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz"
[ "${DOWNLOAD_ERROR}" != 1 ] && create_new_dir "${HOME}/.PortWINE/gecko"
[ "${DOWNLOAD_ERROR}" != 1 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz" -C "${HOME}/.PortWINE/gecko/" | sszen &&
[ "${DOWNLOAD_ERROR}" != 1 ] && try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86.tar.xz"
fi
if [ ! -d "${HOME}/.PortWINE/gecko/wine-gecko-${gecko_ver}-x86_64" ] ; then
echo "######################################################"
echo "Download and install wine gecko x86_64..."
try_download "${url_gecko_x86_64}" "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz"
[ "${DOWNLOAD_ERROR}" != 1 ] && create_new_dir "${HOME}/.PortWINE/gecko"
[ "${DOWNLOAD_ERROR}" != 1 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz" -C "${HOME}/.PortWINE/gecko/" | sszen &&
[ "${DOWNLOAD_ERROR}" != 1 ] && try_remove_file "${HOME}/.PortWINE/tmp/wine-gecko-${gecko_ver}-x86_64.tar.xz"
fi
create_new_dir "${WINEDIR}/share/wine/"
try_force_link_dir "${HOME}/.PortWINE/gecko" "${WINEDIR}"/share/wine/
try_force_link_dir "${HOME}/.PortWINE/mono" "${WINEDIR}"/share/wine/
for pw_dist in "dxvk" "vkd3d"
do
if [ -d "${WINEDIR}"_"${pw_dist}"/share/wine/ ]; then
try_force_link_dir "${WINEDIR}"/share/wine/gecko "${WINEDIR}"_"${pw_dist}"/share/wine/
try_force_link_dir "${WINEDIR}"/share/wine/mono "${WINEDIR}"_"${pw_dist}"/share/wine/
fi
done
if [ ! -z "${gamestart}" ]; then
export PORTWINE_DB=`echo "${gamestart}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
elif [ ! -z "${portwine_exe}" ]; then
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'`
fi
if [ ! -z "${PORTWINE_DB}" ]; then
PORTWINE_DB_FILE=`grep -il "#${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
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 fi
fi fi
START_PORTWINE () START_PORTWINE ()
{ {
if [ "${PW_USE_TERMINAL}" = "1" ]; then if [ "${PW_USE_TERMINAL}" = "1" ]; then
...@@ -233,7 +257,9 @@ START_PORTWINE () ...@@ -233,7 +257,9 @@ START_PORTWINE ()
export PW_TERM="${PW_XTERM}" export PW_TERM="${PW_XTERM}"
fi fi
fi fi
PW_UPDATE if [ -z "${INSTALLING_PORT}" ] ; then
PW_UPDATE
fi
if [ ! -z "${PW_VULKAN_USE}" ]; then if [ ! -z "${PW_VULKAN_USE}" ]; then
export var_pw_vulkan="${PW_VULKAN_USE}" export var_pw_vulkan="${PW_VULKAN_USE}"
echo "${var_pw_vulkan}" > "${PORT_WINE_TMP_PATH}/pw_vulkan" echo "${var_pw_vulkan}" > "${PORT_WINE_TMP_PATH}/pw_vulkan"
...@@ -246,11 +272,11 @@ START_PORTWINE () ...@@ -246,11 +272,11 @@ START_PORTWINE ()
export WINEDIR="${WINEDIR}_dxvk" export WINEDIR="${WINEDIR}_dxvk"
fi fi
export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}" export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}"
export GL_NO_DSO_FINALIZER=1 #Modded by Rus_Nor export GL_NO_DSO_FINALIZER=1
export GL_YIELD="NOTHING" #Modded by Rus_Nor export GL_YIELD="NOTHING"
export GL_SHARPEN_IGNORE_FILM_GRAIN=0 #Modded by Rus_Nor export GL_SHARPEN_IGNORE_FILM_GRAIN=0
export GL_SHARPEN_ENABLE=1 #Modded by Rus_Nor export GL_SHARPEN_ENABLE=1
export __GL_SHARPEN_VALUE=0 #Modded by Rus_Nor export __GL_SHARPEN_VALUE=0
for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do
try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
...@@ -324,7 +350,7 @@ START_PORTWINE () ...@@ -324,7 +350,7 @@ START_PORTWINE ()
try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
[ "$?" == 0 ] && var_winedlloverride_update "${wine_build_dll}=b" [ "$?" == 0 ] && var_winedlloverride_update "${wine_build_dll}=b"
done done
var_winedlloverride_update "vstdlib_s,tier0_s,steam,steam2,steam_api,steam_api64,steamclient,steamclient64=n" var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n"
# export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/gstreamer-1.0" # export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/gstreamer-1.0"
export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}" export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz
...@@ -461,7 +487,7 @@ WAIT_WINESERVER () { ...@@ -461,7 +487,7 @@ WAIT_WINESERVER () {
} }
KILL_PORTWINE () { 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 wine_pids=$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')
if [ ! -z "${wine_pids}" ] ; then if [ ! -z "${wine_pids}" ] ; then
"${WINESERVER}" -k "${WINESERVER}" -k
kill -9 ${wine_pids} kill -9 ${wine_pids}
...@@ -541,12 +567,12 @@ PW_UPDATE () { ...@@ -541,12 +567,12 @@ PW_UPDATE () {
fi fi
read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier" read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier"
if [ "${update_not}" = "1" ] ; then if [ "${update_not}" = "1" ] ; then
try_download "${PW_FTP_URL}/current_version/${portname}_ver" "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" && echo `curl -s --list-only "${PW_FTP_URL}/current_version/${portname}_ver"` > "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
if [ -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then if [ -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then
read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver"
try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_cur_ver" try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
if [ "${current_ver}" -gt "${install_ver}" ] ; then if [ ! -z "${current_ver}" ] && [ "${current_ver}" -gt "${install_ver}" ] ; then
xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=220 --column="${inst_set}" --column "${port_upd3}" \ xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=220 --column="${inst_set}" --column "${port_upd3}" \
TRUE "${port_upd4}" \ TRUE "${port_upd4}" \
FALSE "${port_upd5}" \ FALSE "${port_upd5}" \
...@@ -622,12 +648,12 @@ PW_SCRIPTS_UPDATE () { ...@@ -622,12 +648,12 @@ PW_SCRIPTS_UPDATE () {
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
echo "1000" > "${PORT_WINE_TMP_PATH}/scripts_ver" echo "1000" > "${PORT_WINE_TMP_PATH}/scripts_ver"
fi fi
try_download "${PW_FTP_URL}/current_version/scripts_ver" "${PORT_WINE_TMP_PATH}/scripts_cur_ver" echo `curl -s --list-only "${PW_FTP_URL}/current_version/scripts_ver"` > "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
if [ "$?" == "0" ] ; then if [ "$?" == "0" ] ; then
read scripts_current_ver < "${PORT_WINE_TMP_PATH}/scripts_cur_ver" read scripts_current_ver < "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
read scripts_install_ver < "${PORT_WINE_TMP_PATH}/scripts_ver" read scripts_install_ver < "${PORT_WINE_TMP_PATH}/scripts_ver"
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_cur_ver" try_remove_file "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
if [ "${scripts_current_ver}" -gt "${scripts_install_ver}" ] ; then if [ ! -z "${scripts_current_ver}" ] && [ "${scripts_current_ver}" -gt "${scripts_install_ver}" ] ; then
echo "######################################################" echo "######################################################"
echo "Update scripts..." echo "Update scripts..."
try_download "${PW_FTP_URL}/dist/scripts.tar.xz" "${PORT_WINE_TMP_PATH}/scripts.tar.xz" try_download "${PW_FTP_URL}/dist/scripts.tar.xz" "${PORT_WINE_TMP_PATH}/scripts.tar.xz"
...@@ -651,23 +677,26 @@ PW_RUN () { ...@@ -651,23 +677,26 @@ PW_RUN () {
fi fi
export RUN_MANGOHUD="" export RUN_MANGOHUD=""
[ "${PW_MANGOHUD}" == "1" ] && export RUN_MANGOHUD=mangohud [ "${PW_MANGOHUD}" == "1" ] && export RUN_MANGOHUD=mangohud
print_var "PATH_TO_GAME" "WINEDLLOVERRIDES" "PATH" print_var "WINEDIR" "WINEARCH" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME"
if [ "${PW_LOG}" == 1 ]
then export PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
else export PW_LOG_TO_FILE="/dev/null"
fi
if [ ! -z "${PW_GAMEMODERUN}" ] && [ "${PW_GAMEMODERUN}" != 0 ] ; then if [ ! -z "${PW_GAMEMODERUN}" ] && [ "${PW_GAMEMODERUN}" != 0 ] ; then
if [ ! -z ${optirun_on} ]; then if [ ! -z ${optirun_on} ]; then
echo "Full command line: ${optirun_on} $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" echo "Full command line: ${optirun_on} $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" ${PW_LOG_TO_FILE}
${optirun_on} $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} ${optirun_on} $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
else else
echo "Full command line: $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" echo "Full command line: $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" ${PW_LOG_TO_FILE}
$PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
fi fi
else else
if [ ! -z ${optirun_on} ]; then if [ ! -z ${optirun_on} ]; then
echo "Full command line: ${optirun_on} $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" echo "Full command line: ${optirun_on} $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" ${PW_LOG_TO_FILE}
${optirun_on} $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} ${optirun_on} $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
else else
echo "Full command line: $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" echo "Full command line: $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}" ${PW_LOG_TO_FILE}
$PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]} &>>"${PW_LOG_TO_FILE}"
fi fi
fi fi
} }
...@@ -47,7 +47,7 @@ PORTWINE_CREATE_SHORTCUT () { ...@@ -47,7 +47,7 @@ PORTWINE_CREATE_SHORTCUT () {
if [ $? -eq 1 ] ; then exit 1 ; fi if [ $? -eq 1 ] ; then exit 1 ; fi
export PW_VULKAN_TO_DB=`cat "${PORT_WINE_TMP_PATH}/pw_vulkan"` export PW_VULKAN_TO_DB=`cat "${PORT_WINE_TMP_PATH}/pw_vulkan"`
if [ ! -z "${PORTWINE_DB}" ]; then if [ ! -z "${PORTWINE_DB}" ]; then
PORTWINE_DB_FILE=`grep -il "${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi` PORTWINE_DB_FILE=`grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*`
if [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "${PW_VULKAN_USE}" ]; then if [ ! -z "${PORTWINE_DB_FILE}" ] && [ -z "${PW_VULKAN_USE}" ]; then
echo "export PW_VULKAN_USE=${PW_VULKAN_TO_DB}" >> "${PORTWINE_DB_FILE}" echo "export PW_VULKAN_USE=${PW_VULKAN_TO_DB}" >> "${PORTWINE_DB_FILE}"
elif [ -z "${PORTWINE_DB_FILE}" ]; then elif [ -z "${PORTWINE_DB_FILE}" ]; then
...@@ -57,8 +57,8 @@ PORTWINE_CREATE_SHORTCUT () { ...@@ -57,8 +57,8 @@ PORTWINE_CREATE_SHORTCUT () {
#Rating=1-5 #Rating=1-5
################################################ ################################################
export PW_VULKAN_USE=${PW_VULKAN_TO_DB}" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" export PW_VULKAN_USE=${PW_VULKAN_TO_DB}" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
fi
cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
fi
fi fi
name_desktop="${PORTPROTON_NAME}" name_desktop="${PORTPROTON_NAME}"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
...@@ -78,21 +78,25 @@ PORTWINE_CREATE_SHORTCUT () { ...@@ -78,21 +78,25 @@ PORTWINE_CREATE_SHORTCUT () {
xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
} }
PORTWINE_DEBUG () { PORTWINE_DEBUG () {
KILL_PORTWINE KILL_PORTWINE
export PW_LOG=1 export PW_LOG=1
export PW_WINEDBG_DISABLE=0 export PW_WINEDBG_DISABLE=0
export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -l -lf ${PORT_WINE_PATH}/${portname}.log.wine -geometry 159x37 -e"
START_PORTWINE START_PORTWINE
echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log" echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log"
echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log" echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------------------" >> "${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" echo "PortWINE version:" >> "${PORT_WINE_PATH}/${portname}.log"
read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver"
echo "${portname}-${install_ver}" >> "${PORT_WINE_PATH}/${portname}.log" echo "${portname}-${install_ver}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "----------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
if [ ! -z "${portwine_exe}" ] ; then
echo "Debug for programm:" >> "${PORT_WINE_PATH}/${portname}.log"
echo "${portwine_exe}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "---------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
fi
echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log"
echo `ldd --version | grep -m1 ldd | awk '{print $NF}'` >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "var_pw_vulkan = ${var_pw_vulkan}" >> "${PORT_WINE_PATH}/${portname}.log" echo "var_pw_vulkan = ${var_pw_vulkan}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "------------------------------------------------------" >> "${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" echo "Date and time of start debug for ${portname}" >> "${PORT_WINE_PATH}/${portname}.log"
...@@ -140,41 +144,11 @@ PORTWINE_DEBUG () { ...@@ -140,41 +144,11 @@ PORTWINE_DEBUG () {
echo "log WINE:" >> "${PORT_WINE_PATH}/${portname}.log" echo "log WINE:" >> "${PORT_WINE_PATH}/${portname}.log"
export DXVK_HUD="full" export DXVK_HUD="full"
export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -l -lf ${PORT_WINE_PATH}/${portname}.log.wine -geometry 159x37 -e"
try_remove_file "${PORT_WINE_PATH}/${portname}.log.wine"
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
${optirun_on} $PW_XTERM "${WINELOADER}" "$portwine_exe" ${LAUNCH_PARAMETERS[*]} 2>&1 &
else
$PW_XTERM "${WINELOADER}" "$portwine_exe" ${LAUNCH_PARAMETERS[*]} 2>&1 &
fi
elif [ -z "${gamestart}" ]; then
if [ ! -z $optirun_on ]; then
${optirun_on} $PW_XTERM "${WINELOADER}" explorer 2>&1 &
else
$PW_XTERM "${WINELOADER}" explorer 2>&1 &
fi
else
export PATH_TO_GAME="$( cd "$( dirname "${gamestart}" )" >/dev/null 2>&1 && pwd )"
cd "$PATH_TO_GAME"
if [ ! -z $optirun_on ]; then
${optirun_on} $PW_XTERM "${PW_RUNTIME}" "${WINELOADER}" "${gamestart}" ${LAUNCH_PARAMETERS[*]} 2>&1 &
else
$PW_XTERM "${PW_RUNTIME}" "${WINELOADER}" "${gamestart}" ${LAUNCH_PARAMETERS[*]} 2>&1 &
fi
fi
zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && "${WINESERVER}" -k PORTWINE_LAUNCH & zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && KILL_PORTWINE
STOP_PORTWINE | sszen
cat "${PORT_WINE_PATH}/${portname}.log.wine" >> "${PORT_WINE_PATH}/${portname}.log"
try_remove_file "${PORT_WINE_PATH}/${portname}.log.wine"
deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log" | awk '! a[$0]++') deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log" | awk '! a[$0]++')
echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log" echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log"
xdg-open "${PORT_WINE_PATH}/${portname}.log" xdg-open "${PORT_WINE_PATH}/${portname}.log"
#echo "$deb_text" | zenity --text-info --editable --width=800 --height=600 --title="${portname}.log"
} }
PW_WINECFG () { PW_WINECFG () {
START_PORTWINE START_PORTWINE
...@@ -199,6 +173,9 @@ PW_WINETRICKS () { ...@@ -199,6 +173,9 @@ PW_WINETRICKS () {
START_PORTWINE START_PORTWINE
$PW_TERM "${PW_RUNTIME}" "${PORT_WINE_TMP_PATH}/winetricks" -q --force $PW_TERM "${PW_RUNTIME}" "${PORT_WINE_TMP_PATH}/winetricks" -q --force
} }
PW_EDIT_DB () {
xdg-open "${PORTWINE_DB_FILE}"
}
if [ ! -z "${portwine_exe}" ]; then if [ ! -z "${portwine_exe}" ]; then
if [ -z "${PW_GUI_DISABLED_CS}" ] || [ "${PW_GUI_DISABLED_CS}" = 0 ] ; 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 "${PORTWINE_DB_FILE}" ] && [ ! -z "${PW_VULKAN_USE}" ]; then
...@@ -207,6 +184,19 @@ if [ ! -z "${portwine_exe}" ]; then ...@@ -207,6 +184,19 @@ if [ ! -z "${portwine_exe}" ]; then
fi fi
OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --wrap-width=150 --borders=15 --form --center \ 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=";" \ --title "$portname" --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \
--button='EDIT DB'!!"${loc_edit_db} ${PORTWINE_DB}":118 \
--button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \
--button='DEBUG'!!"${loc_debug}":102 \
--button='LAUNCH'!!"${loc_launch}":106 )
PW_YAD_SET="$?"
elif [ ! -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=";" \
--field="WINE:CB" "DXVK ${PW_WINE_VER_DXVK}"!"VKD3D ${PW_WINE_VER_VKD3D}"!"OPENGL ${PW_WINE_VER_DXVK}" \
--button='EDIT DB'!!"${loc_edit_db} ${PORTWINE_DB}":118 \
--button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \ --button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \
--button='DEBUG'!!"${loc_debug}":102 \ --button='DEBUG'!!"${loc_debug}":102 \
--button='LAUNCH'!!"${loc_launch}":106 ) --button='LAUNCH'!!"${loc_launch}":106 )
...@@ -260,6 +250,7 @@ case "$PW_YAD_SET" in ...@@ -260,6 +250,7 @@ case "$PW_YAD_SET" in
112) PW_WINECMD ;; 112) PW_WINECMD ;;
114) PW_WINEREG ;; 114) PW_WINEREG ;;
116) PW_WINETRICKS ;; 116) PW_WINETRICKS ;;
118) PW_EDIT_DB ;;
esac esac
######################################################################## ########################################################################
STOP_PORTWINE STOP_PORTWINE
#!/bin/bash
# Author: PortWINE-Linux.ru
########################################################################
export gamedir="Battle.net"
export gamename="Battle.net"
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"
########################################################################
#export MESA_GL_VERSION_OVERRIDE=4.4COMPAT
export WINEDLLOVERRIDES="winemenubuilder.exe=d"
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=0
export PW_NO_WINEMFPLAY=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=0
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
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"
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
}
########################################################################
ADD_IN_STOP_PORTWINE ()
{
echo " "
}
########################################################################
ADD_IN_POST_INSTALL ()
{
rm -f "${PORT_WINE_PATH}/data/pfx/drive_c/ProgramData/Battle.net/Agent/product.db"
}
#!/bin/bash
# Author: PortWINE-Linux.ru
########################################################################
export gamename="Epic_Games"
export gamedir="Epic Games/Launcher/Portal/Binaries/Win32/"
export porturl="http://portwine-linux.ru/epic-games-linux/"
export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}"
export gamestart="${PATH_TO_GAME}/EpicGamesLauncher.exe"
########################################################################
#export MESA_GL_VERSION_OVERRIDE=4.4COMPAT
export WINEDLLOVERRIDES="winemenubuilder.exe=d"
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=0 # Do not use eventfd-based in-process synchronization primitives
export PW_DXVK_ASYNC=0
export PW_USE_TERMINAL=0
export PW_OLD_GL_STRING=0
export PW_NO_WINEMFPLAY=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=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
export LAUNCH_PARAMETERS="-opengl -SkipBuildPatchPrereq"
cd "${PATH_TO_GAME}"
}
########################################################################
ADD_IN_STOP_PORTWINE ()
{
echo " "
}
########################################################################
ADD_IN_POST_INSTALL ()
{
echo " "
}
#!/bin/bash
# Author: PortWINE-Linux.ru
########################################################################
export gamename=Uplay
export gamedir="Ubisoft/Ubisoft Game Launcher"
export PATH_TO_GAME="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}"
export gamestart="${PATH_TO_GAME}/Uplay.exe"
export porturl="https://portwine-linux.ru/uplay-linux/"
########################################################################
#export MESA_GL_VERSION_OVERRIDE=4.4COMPAT
export WINEDLLOVERRIDES="winemenubuilder.exe=d"
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=0 # Do not use eventfd-based in-process synchronization primitives
export PW_DXVK_ASYNC=0
export PW_USE_TERMINAL=0
export PW_OLD_GL_STRING=0
export PW_NO_WINEMFPLAY=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=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
export LAUNCH_PARAMETERS=""
cd "${PATH_TO_GAME}"
}
########################################################################
ADD_IN_STOP_PORTWINE ()
{
echo " "
}
########################################################################
ADD_IN_POST_INSTALL ()
{
echo " "
}
#!/bin/bash
# Author: PortWINE-Linux.ru
########################################################################
export gamedir="WGC"
export gamename="WGC"
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"
########################################################################
#export MESA_GL_VERSION_OVERRIDE=4.4COMPAT
export WINEDLLOVERRIDES="winemenubuilder.exe=d"
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=0 # Do not use eventfd-based in-process synchronization primitives
export PW_DXVK_ASYNC=0
export PW_USE_TERMINAL=1
export PW_OLD_GL_STRING=0
export PW_NO_WINEMFPLAY=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=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
export LAUNCH_PARAMETERS=""
cd "${PATH_TO_GAME}"
sed -i 's/true/false/g' "${PORT_WINE_PATH}/data/pfx/drive_c/Games/WGC/preferences.xml"
}
########################################################################
ADD_IN_STOP_PORTWINE ()
{
echo " "
}
########################################################################
ADD_IN_POST_INSTALL ()
{
if [ "${update_loc}" = "ENG" ]; then
sed -i 's/RU/EN/g' "${PORT_WINE_PATH}/data/pfx/drive_c/Games/WGC/preferences.xml"
sed -i 's/ru/en/g' "${PORT_WINE_PATH}/data/pfx/drive_c/Games/WGC/preferences.xml"
fi
}
...@@ -15,13 +15,29 @@ export gamename="Proton" ...@@ -15,13 +15,29 @@ export gamename="Proton"
export portname="PortProton" export portname="PortProton"
export port_ver=XX export port_ver=XX
######################################################################## ########################################################################
export PW_FTP_URL="https://portwine-linux.ru/ftp"
export INSTALLING_PORT=1
export PROGS_INST="" export PROGS_INST=""
export vexit=0 export vexit=0
export minimum_ldd_ver="2.28"
########################################################################
export local_script_hash=$(sha256sum "$0" | awk '{print $1}')
export remote_script_hash=`curl -s --list-only "${PW_FTP_URL}/portwine/${portname}-${port_ver}.sha256sum" | awk '{print $1}'`
if [ "${local_script_hash}" != "${remote_script_hash}" ] ; then
echo "\033[31mHash sum does not match, please download the ${portname}-${port_ver} again.\033[0m"
zenity --error --no-wrap --text "Hash sum does not match, please download the ${portname}-${port_ver} again." 2> /dev/null
exit 1
fi
export system_ldd_ver=`ldd --version | grep -m1 ldd | awk '{print $NF}'`
if [ `echo ${system_ldd_ver} | tr -d .` -lt `echo ${minimum_ldd_ver} | tr -d .` ] ; then
echo "\033[31mYour system doesn\`t support ${portname}.\nGlibc version required >= ${minimum_ldd_ver}\nGlibc in your system = ${system_ldd_ver}\033[0m"
zenity --error --no-wrap --text "Your system doesn\`t support ${portname}.\nGlibc version required >= ${minimum_ldd_ver}\nGlibc in your system = ${system_ldd_ver}" 2> /dev/null
exit 1
fi
for PROGS in "wget" "curl" "tar" for PROGS in "wget" "curl" "tar"
do do
if [ ! -x "`which "${PROGS}" 2>/dev/null`" ] ; then if [ ! -x "`which "${PROGS}" 2>/dev/null`" ] ; then
PROGS_INST="${PROGS_INST} ${PROGS}" PROGS_INST="${PROGS_INST} ${PROGS}" && vexit=1
vexit=1
fi fi
done done
if [ "${vexit}" -eq "1" ] ; then if [ "${vexit}" -eq "1" ] ; then
...@@ -140,7 +156,7 @@ read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc" ...@@ -140,7 +156,7 @@ read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc} export update_loc=${update_loc}
######################################################################## ########################################################################
cd "${PORT_WINE_PATH}" cd "${PORT_WINE_PATH}"
tail -n +162 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}" tail -n +178 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}"
if [ "${s_install}" = "1" ] ; then if [ "${s_install}" = "1" ] ; then
tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/"
else else
...@@ -148,7 +164,7 @@ else ...@@ -148,7 +164,7 @@ else
fi fi
chmod 755 -R "${PORT_WINE_PATH}" chmod 755 -R "${PORT_WINE_PATH}"
mv -f "${PORT_WINE_PATH}/${ARCH_NAME}" "${PORT_WINE_PATH}/data/tmp" mv -f "${PORT_WINE_PATH}/${ARCH_NAME}" "${PORT_WINE_PATH}/data/tmp"
sed -n 1,161p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}" sed -n 1,177p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}"
######################################################################## ########################################################################
if [ -d "${PORT_PFX}_old" ] ; then if [ -d "${PORT_PFX}_old" ] ; then
rm -fR "${PORT_PFX}" rm -fR "${PORT_PFX}"
......
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