From 56c3da7d164dac42b904d9d4592f22b78c0d71dd Mon Sep 17 00:00:00 2001
From: castro-fidel <tergoevm@gmail.com>
Date: Thu, 15 Apr 2021 23:51:10 +0300
Subject: [PATCH] Scripts version 1034

---
 data_from_portwine/changelog                  |  83 +++++++
 data_from_portwine/scripts/lang               |   2 +
 .../{Baldurs_Gate_3_vkd3d => Baldurs_Gate_3}  |   0
 .../scripts/portwine_db/Baldurs_Gate_3_dxvk   |   9 -
 .../scripts/portwine_db/Battle.net_Launcher   |  10 +-
 ...{Epic Games Launcher => EpicGamesLauncher} |   4 +-
 .../scripts/portwine_db/FarLoneSails          |  34 +++
 .../scripts/portwine_db/MassEffect            |  32 +++
 .../scripts/portwine_db/MassEffect2           |  32 +++
 .../portwine_db/Rockstar_Games_Launcher       |   2 +-
 data_from_portwine/scripts/portwine_db/Suite  |  33 +++
 .../scripts/portwine_db/WarGame3              |  34 +++
 .../scripts/portwine_db/default               |   7 +-
 .../scripts/portwine_db/dontstarve            |  37 +++
 .../scripts/portwine_db/risen-1               |  29 +++
 data_from_portwine/scripts/portwine_db/setup  |   4 +-
 data_from_portwine/scripts/portwine_db/steam  |   3 +-
 data_from_portwine/scripts/portwine_db/wgc    |   3 +
 data_from_portwine/scripts/runlib             | 211 ++++++++++--------
 data_from_portwine/scripts/start.sh           |  71 +++---
 .../scripts/vars/PortBattleNET_vars           |  45 ----
 data_from_portwine/scripts/vars/PortEpic_vars |  43 ----
 .../scripts/vars/PortUplay_vars               |  42 ----
 data_from_portwine/scripts/vars/PortWGC_vars  |  46 ----
 portwine_install_script/PortNAME-XX           |  24 +-
 25 files changed, 510 insertions(+), 330 deletions(-)
 create mode 100644 data_from_portwine/changelog
 rename data_from_portwine/scripts/portwine_db/{Baldurs_Gate_3_vkd3d => Baldurs_Gate_3} (100%)
 delete mode 100644 data_from_portwine/scripts/portwine_db/Baldurs_Gate_3_dxvk
 rename data_from_portwine/scripts/portwine_db/{Epic Games Launcher => EpicGamesLauncher} (79%)
 mode change 100755 => 100644
 create mode 100644 data_from_portwine/scripts/portwine_db/FarLoneSails
 create mode 100644 data_from_portwine/scripts/portwine_db/MassEffect
 create mode 100644 data_from_portwine/scripts/portwine_db/MassEffect2
 create mode 100644 data_from_portwine/scripts/portwine_db/Suite
 create mode 100644 data_from_portwine/scripts/portwine_db/WarGame3
 create mode 100644 data_from_portwine/scripts/portwine_db/dontstarve
 create mode 100644 data_from_portwine/scripts/portwine_db/risen-1
 delete mode 100755 data_from_portwine/scripts/vars/PortBattleNET_vars
 delete mode 100755 data_from_portwine/scripts/vars/PortEpic_vars
 delete mode 100755 data_from_portwine/scripts/vars/PortUplay_vars
 delete mode 100755 data_from_portwine/scripts/vars/PortWGC_vars

diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog
new file mode 100644
index 00000000..c1473a37
--- /dev/null
+++ b/data_from_portwine/changelog
@@ -0,0 +1,83 @@
+В планах:
+* вывод 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 права не нужны, концепция порта не изменилась)
diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang
index 1059c113..b73d0713 100755
--- a/data_from_portwine/scripts/lang
+++ b/data_from_portwine/scripts/lang
@@ -90,6 +90,7 @@ then
 
 	export loc_scripts_update="   Обновление базы данных для игр\n   и программ успешно завершено.\n\n   Перезапустите ${portname}."
 
+	export loc_edit_db="Изменить файл настроек для"
 elif [ "${update_loc}" = "ENG" ] 
 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_edit_db="Edit database file for"
 fi
diff --git a/data_from_portwine/scripts/portwine_db/Baldurs_Gate_3_vkd3d b/data_from_portwine/scripts/portwine_db/Baldurs_Gate_3
similarity index 100%
rename from data_from_portwine/scripts/portwine_db/Baldurs_Gate_3_vkd3d
rename to data_from_portwine/scripts/portwine_db/Baldurs_Gate_3
diff --git a/data_from_portwine/scripts/portwine_db/Baldurs_Gate_3_dxvk b/data_from_portwine/scripts/portwine_db/Baldurs_Gate_3_dxvk
deleted file mode 100644
index 53c5a5b0..00000000
--- a/data_from_portwine/scripts/portwine_db/Baldurs_Gate_3_dxvk
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/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
diff --git a/data_from_portwine/scripts/portwine_db/Battle.net_Launcher b/data_from_portwine/scripts/portwine_db/Battle.net_Launcher
index 2e37d501..b204f466 100644
--- a/data_from_portwine/scripts/portwine_db/Battle.net_Launcher
+++ b/data_from_portwine/scripts/portwine_db/Battle.net_Launcher
@@ -6,6 +6,12 @@
 ################################################
 export PW_VULKAN_USE=dxvk
 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_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
diff --git a/data_from_portwine/scripts/portwine_db/Epic Games Launcher b/data_from_portwine/scripts/portwine_db/EpicGamesLauncher
old mode 100755
new mode 100644
similarity index 79%
rename from data_from_portwine/scripts/portwine_db/Epic Games Launcher
rename to data_from_portwine/scripts/portwine_db/EpicGamesLauncher
index d5f034b5..155ea273
--- a/data_from_portwine/scripts/portwine_db/Epic Games Launcher	
+++ b/data_from_portwine/scripts/portwine_db/EpicGamesLauncher
@@ -1,9 +1,9 @@
 #!/bin/bash
 #Author: PortWINE
-#EpicGamesLauncher.exe 
+#EpicGamesLauncher.exe
 #Rating=5
 ################################################
 export WINEDLLOVERRIDES="libglesv2="
 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
diff --git a/data_from_portwine/scripts/portwine_db/FarLoneSails b/data_from_portwine/scripts/portwine_db/FarLoneSails
new file mode 100644
index 00000000..0be77cde
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/FarLoneSails
@@ -0,0 +1,34 @@
+#!/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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/MassEffect b/data_from_portwine/scripts/portwine_db/MassEffect
new file mode 100644
index 00000000..9527fc3f
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/MassEffect
@@ -0,0 +1,32 @@
+#!/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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/MassEffect2 b/data_from_portwine/scripts/portwine_db/MassEffect2
new file mode 100644
index 00000000..69396cfd
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/MassEffect2
@@ -0,0 +1,32 @@
+#!/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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher b/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher
index 7dffb79c..33d17d68 100644
--- a/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher
+++ b/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher
@@ -6,5 +6,5 @@
 #Rating=?
 ################################################
 export PW_VULKAN_USE=dxvk
-export PW_DLL_INSTALL="arial vcrun2019"
+export PW_DLL_INSTALL="vcrun2017"
 export PW_WINDOWS_VER=10
\ No newline at end of file
diff --git a/data_from_portwine/scripts/portwine_db/Suite b/data_from_portwine/scripts/portwine_db/Suite
new file mode 100644
index 00000000..880265ed
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/Suite
@@ -0,0 +1,33 @@
+#!/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
diff --git a/data_from_portwine/scripts/portwine_db/WarGame3 b/data_from_portwine/scripts/portwine_db/WarGame3
new file mode 100644
index 00000000..b65c671a
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/WarGame3
@@ -0,0 +1,34 @@
+#!/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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/default b/data_from_portwine/scripts/portwine_db/default
index 19a27ab0..2ce58ff9 100644
--- a/data_from_portwine/scripts/portwine_db/default
+++ b/data_from_portwine/scripts/portwine_db/default
@@ -2,8 +2,9 @@
 #Author: PortWINE-Linux.ru
 #name_exe_file.exe
 #Rating=1-5
-#export PW_COMMENT_DB="blablabla"
+export PW_DLL_INSTALL="vcrun2017 vcrun6 vcrun6sp6 mfc42"  # Install DDL in port prefix (used winetricks) 
 #####################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="vcrun2019 vcrun6"        # Install DDL in port prefix (used winetricks) 
@@ -25,9 +26,11 @@
 ##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_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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/dontstarve b/data_from_portwine/scripts/portwine_db/dontstarve
new file mode 100644
index 00000000..9539890e
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/dontstarve
@@ -0,0 +1,37 @@
+#!/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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/risen-1 b/data_from_portwine/scripts/portwine_db/risen-1
new file mode 100644
index 00000000..ef0cb3a4
--- /dev/null
+++ b/data_from_portwine/scripts/portwine_db/risen-1
@@ -0,0 +1,29 @@
+#!/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 ; }
diff --git a/data_from_portwine/scripts/portwine_db/setup b/data_from_portwine/scripts/portwine_db/setup
index f20b3d56..198fb84f 100644
--- a/data_from_portwine/scripts/portwine_db/setup
+++ b/data_from_portwine/scripts/portwine_db/setup
@@ -1,6 +1,8 @@
 #!/bin/bash
 #Author: PortWINE-Linux.ru
 #setup.exe
+#Setup.exe
+#SETUP.exe
 #.msi
 #Rating=5
 #export PW_COMMENT_DB="blablabla"
@@ -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 LAUNCH_PARAMETERS="-d3d9"
 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
diff --git a/data_from_portwine/scripts/portwine_db/steam b/data_from_portwine/scripts/portwine_db/steam
index e2b4f56e..b894f3e2 100644
--- a/data_from_portwine/scripts/portwine_db/steam
+++ b/data_from_portwine/scripts/portwine_db/steam
@@ -5,5 +5,4 @@
 ################################################
 export LAUNCH_PARAMETERS=""
 export WINEDLLOVERRIDES="libglesv2="
-
-
+export LAUNCH_PARAMETERS"-no-cef-sandbox"
diff --git a/data_from_portwine/scripts/portwine_db/wgc b/data_from_portwine/scripts/portwine_db/wgc
index 8a76f8cf..055724a6 100644
--- a/data_from_portwine/scripts/portwine_db/wgc
+++ b/data_from_portwine/scripts/portwine_db/wgc
@@ -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 LAUNCH_PARAMETERS="--disable-gpu"            # Additional launch options
 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
diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib
index 41f5c51a..2bfdf800 100755
--- a/data_from_portwine/scripts/runlib
+++ b/data_from_portwine/scripts/runlib
@@ -1,5 +1,6 @@
 #!/bin/bash
-# Author: PortWINE-Linux.ru
+# Author: Castro-Fidel (PortWINE-Linux.ru)
+# Development assistants: Cefeiko; Rus_Nor; gavr; RidBowt;
 ########################################################################
 echo '
 ████─████─████─███─█───█─███─█──█─███
@@ -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
 fi
 print_error () {
-    PS1_old="${PS1}" && PS1="\e[40;11;31m[\u@\h \W]$" 
     echo "ERROR: $@"
-    PS1="${PS1_old}"
 }
 print_info () {
-    PS1_old="${PS1}" && PS1="\e[40;11;36m[\u@\h \W]$" 
     echo "INFO: $@"
-    PS1="${PS1_old}"
 }
 print_var () {
-    PS1_old="${PS1}" && PS1="\e[47;11;30m[\u@\h \W]$"
     for vp in $@ ; do echo "${vp}=${!vp}" ; done 
-    PS1="${PS1_old}"
 }
 try_copy_file () {
     if [ ! -f "$1" ] ; then	print_info "file $1 not found for copy"
@@ -48,16 +43,14 @@ try_copy_dir () {
     return 1 
 }
 try_remove_file () {
-    if [ ! -f "$1" ] ; then	print_info "file $1 not found for remove"
-    else
+    if [ -f "$1" ] ; then
         rm -f "$1"
         [ "$?" != 0 ] && print_error "failed to remove file $1" || return 0
     fi
     return 1 
 }
 try_remove_dir () {
-    if [ ! -d "$1" ] ; then	print_info "directory $1 not found for remove"
-    else
+    if [ -d "$1" ] ; then
         rm -fr "$1"
         [ "$?" != 0 ] && print_error "failed to remove directory $1" || return 0
     fi
@@ -83,8 +76,11 @@ try_force_link_dir () {
     return 1  
 }
 try_download () {
-    wget -c -t 3 -T 2 "$1" --output-document="$2"
-    [ "$?" != 0 ] && print_error "failed to download $1. Scipping." && export DOWNLOAD_ERROR=1 && return 1 || export DOWNLOAD_ERROR=0 && return 0 
+    set -o pipefail
+    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 () {
     if [ ! -d "$1" ] ; then
@@ -97,21 +93,19 @@ var_winedlloverride_update () {
     else export WINEDLLOVERRIDES="${1}"
     fi 
 }
-
 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_yad}" --progress --progress-text="Start ${portname}... Please wait..." --pulsate --close-on-unfocus \
     --no-buttons --undecorated --center --skip-taskbar --width=600 --wrap-width=500 &
     export start_progress_yad_pid=$(echo $!) 
-    }
+}
 PW_STOP_PROGRESS_BAR () {
     if [ ! -z "${start_progress_yad_pid}" ] ; then
         kill "${start_progress_yad_pid}"
     fi 
 }
-export PW_WINDOWS_VER="7"
 cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
 cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
 export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
@@ -139,12 +133,15 @@ if [ ! -e "${PORT_WINE_TMP_PATH}/${portname}_ver" ]; then
 fi
 
 export pw_libs_ver="_v7"
-export pw_gecko_mono_ver="_v2"
-export WINEARCH=
+export mono_ver="6.1.1"
+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 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 WINEPREFIX="${PORT_WINE_PATH}/data/pfx/"
 export PW_COMPAT_MEDIA_PATH="${PORT_WINE_TMP_PATH}/"
 export PW_RUNTIME="$WINELIB/run.sh"
@@ -153,6 +150,8 @@ export urlg="https://portwine-linux.ru/portwine-faq/"
 export PW_FTP_URL="https://portwine-linux.ru/ftp"
 export PW_TERM=""
 export PW_WINE_VER_DXVK=""
+export PW_WINDOWS_VER="7"
+export PW_LOG=0
 var_winedlloverride_update "winemenubuilder.exe="
 
 zen_width=500
@@ -167,57 +166,82 @@ if [ -f "${WINEDIR}"_vkd3d/version ]; then
     PW_WINE_VER_VKD3D="( wine: $PW_WINE_VER_VKD3D )"
     zen_width=1000
 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 
-    echo "Download and install libraries..."
-    try_download "${PW_FTP_URL}/dist/libs${pw_libs_ver}.tar.xz" "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" | sszen &&
-    [ "${DOWNLOAD_ERROR}" != 1 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" -C "${HOME}/.PortWINE/" | sszen &&
-    [ "${DOWNLOAD_ERROR}" != 1 ] && rm -f "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz"
-    [ "${DOWNLOAD_ERROR}" != 1 ] && "${WINELIB}"/setup.sh --force
-fi
-if [ -e "${WINELIB}/run.sh" ]; then 
-    echo "######################################################"
-    echo "Runtime libraries is enabled"
-    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" ] || [ -e "${WINE_MONO_GECKO}.tar.xz" ] ; then 
-    echo "######################################################"
-    echo "Download and install wine mono and gecko..."
-    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/     
+if [ -z "${INSTALLING_PORT}" ] ; then
+    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 
+        echo "Download and install libraries..."
+        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 ] && tar -Jxvf "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz" -C "${HOME}/.PortWINE/" | sszen &&
+        [ "${DOWNLOAD_ERROR}" != 1 ] && rm -f "${HOME}/.PortWINE/tmp/libs${pw_libs_ver}.tar.xz"
+        #[ "${DOWNLOAD_ERROR}" != 1 ] && "${WINELIB}"/setup.sh --force
     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."
+    if [ -e "${WINELIB}/run.sh" ]; then 
+        echo "######################################################"
+        echo "Runtime libraries is enabled"
+        try_remove_dir "${WINELIB}/pinned_libs_32"
+        try_remove_dir "${WINELIB}/pinned_libs_64"
+        export pw_yad="${WINELIB}/usr/bin/yad"
+        if [ -x "`which xterm 2>/dev/null`" ]; then
+            export PW_XTERM="xterm -geometry 159x37 -e" 
+        else
+            export PW_XTERM="${WINELIB}/amd64/usr/bin/xterm -geometry 159x37 -e"        
+        fi
     else
-        . "${PORT_SCRIPTS_PATH}/portwine_db/default"
-        echo "Use default db file."
+        echo "######################################################"
+        echo "Runtime libraries is disabled"
     fi
-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
 START_PORTWINE ()
     {
     if [ "${PW_USE_TERMINAL}" = "1"  ]; then
@@ -233,7 +257,9 @@ START_PORTWINE ()
             export PW_TERM="${PW_XTERM}"
         fi
     fi
-    PW_UPDATE
+    if [ -z "${INSTALLING_PORT}" ] ; then
+        PW_UPDATE
+    fi
     if [ ! -z "${PW_VULKAN_USE}" ]; then
         export var_pw_vulkan="${PW_VULKAN_USE}"
         echo "${var_pw_vulkan}" > "${PORT_WINE_TMP_PATH}/pw_vulkan"
@@ -246,11 +272,11 @@ START_PORTWINE ()
             export WINEDIR="${WINEDIR}_dxvk"
         fi
         export MESA_GLSL_CACHE_DIR="${PORT_WINE_TMP_PATH}"
-        export GL_NO_DSO_FINALIZER=1 #Modded by Rus_Nor
-        export GL_YIELD="NOTHING" #Modded by Rus_Nor
-        export GL_SHARPEN_IGNORE_FILM_GRAIN=0 #Modded by Rus_Nor
-        export GL_SHARPEN_ENABLE=1 #Modded by Rus_Nor
-        export __GL_SHARPEN_VALUE=0 #Modded by Rus_Nor
+        export GL_NO_DSO_FINALIZER=1 
+        export GL_YIELD="NOTHING" 
+        export GL_SHARPEN_IGNORE_FILM_GRAIN=0 
+        export GL_SHARPEN_ENABLE=1 
+        export __GL_SHARPEN_VALUE=0 
         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}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
@@ -324,7 +350,7 @@ START_PORTWINE ()
         try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
         [ "$?" == 0 ] && var_winedlloverride_update "${wine_build_dll}=b"
     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 WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
     export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz
@@ -461,7 +487,7 @@ WAIT_WINESERVER () {
 }
 
 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 
         "${WINESERVER}" -k
         kill -9 ${wine_pids} 
@@ -541,12 +567,12 @@ PW_UPDATE () {
     fi 
     read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier" 
     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
             read current_ver < "${PORT_WINE_TMP_PATH}/${portname}_cur_ver"
             read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_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}" \
                 TRUE "${port_upd4}" \
                 FALSE "${port_upd5}" \
@@ -622,12 +648,12 @@ PW_SCRIPTS_UPDATE () {
     if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
         echo "1000" > "${PORT_WINE_TMP_PATH}/scripts_ver"
     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
         read scripts_current_ver < "${PORT_WINE_TMP_PATH}/scripts_cur_ver"
         read scripts_install_ver < "${PORT_WINE_TMP_PATH}/scripts_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 "Update scripts..."
             try_download "${PW_FTP_URL}/dist/scripts.tar.xz" "${PORT_WINE_TMP_PATH}/scripts.tar.xz"
@@ -651,23 +677,26 @@ PW_RUN () {
     fi
     export RUN_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 ${optirun_on} ]; then
-            echo "Full command line: ${optirun_on}  $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}"
-            ${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[*]} &>>"${PW_LOG_TO_FILE}"
         else
-            echo "Full command line: $PW_TERM "${PW_RUNTIME}" gamemoderun ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}"
-            $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_LOG_TO_FILE}"
         fi
     else 
         if [ ! -z ${optirun_on} ]; then
-            echo "Full command line: ${optirun_on}  $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}"
-            ${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[*]} &>>"${PW_LOG_TO_FILE}"
         else
-            echo "Full command line: $PW_TERM "${PW_RUNTIME}" ${RUN_MANGOHUD} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[*]}"
-            $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_LOG_TO_FILE}"
         fi
     fi
 }
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index 144d422e..001aa3e9 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -47,7 +47,7 @@ PORTWINE_CREATE_SHORTCUT () {
     if [ $? -eq 1 ] ; then exit 1 ; fi
     export PW_VULKAN_TO_DB=`cat "${PORT_WINE_TMP_PATH}/pw_vulkan"`
     if [ ! -z "${PORTWINE_DB}" ]; then
-        PORTWINE_DB_FILE=`grep -il "${PORTWINE_DB}" "${PORT_SCRIPTS_PATH}/portwine_db"/* | 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
             echo "export PW_VULKAN_USE=${PW_VULKAN_TO_DB}" >> "${PORTWINE_DB_FILE}"
         elif [ -z "${PORTWINE_DB_FILE}" ]; then
@@ -57,8 +57,8 @@ PORTWINE_CREATE_SHORTCUT () {
     #Rating=1-5
     ################################################
     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"
+        fi
     fi
     name_desktop="${PORTPROTON_NAME}" 
     echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
@@ -78,21 +78,25 @@ PORTWINE_CREATE_SHORTCUT () {
     xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
 }
 PORTWINE_DEBUG () {
-    KILL_PORTWINE
+    KILL_PORTWINE 
     export PW_LOG=1
     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
     echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log"
     echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log"
-    echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
-    echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log"
-    echo "echo $(ldd --version)" | grep ldd >> "${PORT_WINE_PATH}/${portname}.log"
-    echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
+    echo "-----------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
     echo "PortWINE version:" >> "${PORT_WINE_PATH}/${portname}.log"
     read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver"
     echo "${portname}-${install_ver}" >> "${PORT_WINE_PATH}/${portname}.log"
-    echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
+    echo "----------------------------------------------------------" >> "${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 "------------------------------------------------------" >> "${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 () {
     echo "log WINE:" >> "${PORT_WINE_PATH}/${portname}.log"
 
     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
-    STOP_PORTWINE | sszen
-    cat "${PORT_WINE_PATH}/${portname}.log.wine" >> "${PORT_WINE_PATH}/${portname}.log"
-    try_remove_file "${PORT_WINE_PATH}/${portname}.log.wine"
+    PORTWINE_LAUNCH & zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap && KILL_PORTWINE
     deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log"  | awk '! a[$0]++') 
     echo "$deb_text" > "${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 () {
     START_PORTWINE
@@ -199,6 +173,9 @@ PW_WINETRICKS () {
     START_PORTWINE
     $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 "${PW_GUI_DISABLED_CS}" ] || [ "${PW_GUI_DISABLED_CS}" = 0 ] ; then
         if [ ! -z "${PORTWINE_DB_FILE}" ] && [ ! -z "${PW_VULKAN_USE}" ]; then
@@ -207,6 +184,19 @@ if [ ! -z "${portwine_exe}" ]; then
             fi
             OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --wrap-width=150 --borders=15 --form --center  \
             --title "$portname"  --image "$PW_GUI_ICON_PATH/port_proton.png" --separator=";" \
+            --button='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='DEBUG'!!"${loc_debug}":102 \
             --button='LAUNCH'!!"${loc_launch}":106 )
@@ -260,6 +250,7 @@ case "$PW_YAD_SET" in
     112) PW_WINECMD ;;
     114) PW_WINEREG ;;
     116) PW_WINETRICKS ;;
+    118) PW_EDIT_DB ;;
 esac
 ########################################################################
 STOP_PORTWINE
diff --git a/data_from_portwine/scripts/vars/PortBattleNET_vars b/data_from_portwine/scripts/vars/PortBattleNET_vars
deleted file mode 100755
index 7bf09b00..00000000
--- a/data_from_portwine/scripts/vars/PortBattleNET_vars
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/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"
-}
diff --git a/data_from_portwine/scripts/vars/PortEpic_vars b/data_from_portwine/scripts/vars/PortEpic_vars
deleted file mode 100755
index 53788d68..00000000
--- a/data_from_portwine/scripts/vars/PortEpic_vars
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/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 " "
-}
-
diff --git a/data_from_portwine/scripts/vars/PortUplay_vars b/data_from_portwine/scripts/vars/PortUplay_vars
deleted file mode 100755
index ab29c10b..00000000
--- a/data_from_portwine/scripts/vars/PortUplay_vars
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/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 " "
-}
diff --git a/data_from_portwine/scripts/vars/PortWGC_vars b/data_from_portwine/scripts/vars/PortWGC_vars
deleted file mode 100755
index 91bb1b2e..00000000
--- a/data_from_portwine/scripts/vars/PortWGC_vars
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/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
-}
diff --git a/portwine_install_script/PortNAME-XX b/portwine_install_script/PortNAME-XX
index b998d68e..3f0d4370 100644
--- a/portwine_install_script/PortNAME-XX
+++ b/portwine_install_script/PortNAME-XX
@@ -15,13 +15,29 @@ export gamename="Proton"
 export portname="PortProton"
 export port_ver=XX
 ########################################################################
+export PW_FTP_URL="https://portwine-linux.ru/ftp"
+export INSTALLING_PORT=1
 export PROGS_INST=""
 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" 
 do
 	if [ ! -x "`which "${PROGS}" 2>/dev/null`" ] ; then
-		PROGS_INST="${PROGS_INST} ${PROGS}"
-		vexit=1
+		PROGS_INST="${PROGS_INST} ${PROGS}" && vexit=1
 	fi
 done
 if [ "${vexit}" -eq "1" ] ; then
@@ -140,7 +156,7 @@ read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
 export update_loc=${update_loc}
 ########################################################################
 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
 	tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/"
 else
@@ -148,7 +164,7 @@ else
 fi
 chmod 755 -R "${PORT_WINE_PATH}"
 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
 	rm -fR "${PORT_PFX}"