Commit 892de157 authored by Mikhail Tergoev's avatar Mikhail Tergoev

Scripts version 2086 - 2089

parent cb1f281c
......@@ -2,6 +2,19 @@ You can help us in the development of the project on the website: https://boosty
-----------------------------------------
Changelog:
###Scripts version 2086 - 2089###
* updated "PROTON_STEAM" to version 7.0-1
* updated "libs_v22.2" (Steam Runtime Sniper container update)
* updated additional libraries "plugins_v3" (added "EasyAntiCheat_Runtime" and updated "BattlEye_Runtime")
* added ability to create custom prefixes
* fixed "AUTOINSTALL" operation after "Arch Linux" update
* "League of Legends" is put in a separate prefix, which speeds up its launch (no need to update the prefix on each launch)
* by default there is an empty "DOTNET" prefix, when it starts it is automatically filled with libraries: "physx mfc42 vcrun2019 dotnet20sp2 dotnet48"
* added saving priority user settings (db files) inside the directory with the launched .exe file
* redesigned the main interface of PortProton (AUTOINSTALL opens by default on the first tab, in the SETTINGS tab added prefix selection and creation of a new prefix)
* added check to which prefix the Launcher is set from AUTOINSTALL
* added change history display before PortProton update
###Scripts version 2085###
* added argument editor for ".exe" file to "EDIT_DB" interface
* added "WINDOWS" version selection to "EDIT_DB" interface
......
......@@ -2,6 +2,19 @@
-----------------------------------------
История изменений:
###Scripts version 2086 - 2089###
* обновлен "PROTON_STEAM" до версии 7.0-1
* обновлен "libs_v22.2" (обновление контейнера Steam Runtime Sniper)
* обновлены дополнительные библиотеки "plugins_v3" (добавлен "EasyAntiCheat_Runtime" и обновлен "BattlEye_Runtime")
* добавлена возможность создавать пользовательские префиксы
* исправлена работа "AUTOINSTALL" после обновления "Arch Linux"
* "League of Legends" ставиться в отдельный префикс, что ускоряет его запуск (не требуется обновления префикса при каждом запуске)
* по умолчанию существует пустой префикс "DOTNET" при запуске которого он автоматически наполняется библиотеками: "physx mfc42 vcrun2019 dotnet20sp2 dotnet48"
* добавлено сохранение приоритетных пользовательских настроек (db файлов) внутри каталога с запускаемым .exe файлом
* переработано основной интерфейс PortProton (AUTOINSTALL открывается по умолчанию на первой вкладке, во вкладке SETTINGS добавлен выбор префикса и создание нового префикса)
* добавлена проверка в какой префикс установлен Launcher из AUTOINSTALL
* добавлено отображение истории изменений до обновления PortProton
###Scripts version 2085###
* добавлен редактор аргументов для ".exe" файла в интерфейс "EDIT_DB"
* добавлен выбор версии "WINDOWS" в интерфейс "EDIT_DB"
......
data_from_portwine/img/gui/gog.png

6.53 KB | W: | H:

data_from_portwine/img/gui/gog.png

3.35 KB | W: | H:

data_from_portwine/img/gui/gog.png
data_from_portwine/img/gui/gog.png
data_from_portwine/img/gui/gog.png
data_from_portwine/img/gui/gog.png
  • 2-up
  • Swipe
  • Onion skin
data_from_portwine/img/gui/steam.png

2.08 KB | W: | H:

data_from_portwine/img/gui/steam.png

2.23 KB | W: | H:

data_from_portwine/img/gui/steam.png
data_from_portwine/img/gui/steam.png
data_from_portwine/img/gui/steam.png
data_from_portwine/img/gui/steam.png
  • 2-up
  • Swipe
  • Onion skin
data_from_portwine/img/gui/ubc.png

3.04 KB | W: | H:

data_from_portwine/img/gui/ubc.png

3.28 KB | W: | H:

data_from_portwine/img/gui/ubc.png
data_from_portwine/img/gui/ubc.png
data_from_portwine/img/gui/ubc.png
data_from_portwine/img/gui/ubc.png
  • 2-up
  • Swipe
  • Onion skin
data_from_portwine/img/gui/wgc.png

2.69 KB | W: | H:

data_from_portwine/img/gui/wgc.png

2.9 KB | W: | H:

data_from_portwine/img/gui/wgc.png
data_from_portwine/img/gui/wgc.png
data_from_portwine/img/gui/wgc.png
data_from_portwine/img/gui/wgc.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -63,8 +63,8 @@ try_remove_dir () {
export -f try_remove_dir
try_force_link_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link file $1"
if [ -z "$2" ] ; then
print_error "no way to link file $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0
......@@ -88,8 +88,8 @@ check_symlink () {
export -f check_symlink
try_force_link_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link directory $1"
if [ -z "$2" ] ; then
print_error "no way to link directory $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0
......@@ -432,10 +432,6 @@ stop_portwine () {
try_remove_file "${PORT_SCRIPTS_PATH}/0"
try_remove_file "${PORT_SCRIPTS_PATH}/1"
kill_portwine &&
if [ ! -z "`ls "${WINEPREFIX}"/drive_c/users/steamuser/Temp/ | head -n 1`" ] ; then
chmod -R 755 "${WINEPREFIX}"/drive_c/users/steamuser/Temp/
rm -fr "${WINEPREFIX}"/drive_c/users/steamuser/Temp/*
fi
try_remove_dir "${PW_WINELIB}/var"
find "${WINEPREFIX}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then
......@@ -542,6 +538,9 @@ pw_check_and_download_plugins () {
pw_init_db () {
if [ ! -z "${portwine_exe}" ]; then
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
if [[ -f "${portwine_exe}".ppdb ]] ; then
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
else
orig_IFS="$IFS"
IFS=$'\n'
PW_FIND_DB_FILE=`grep -ilw "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
......@@ -562,6 +561,17 @@ pw_init_db () {
PORTWINE_DB_FILE="${PW_FIND_DB_FILE}"
fi
IFS="$orig_IFS"
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then
try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
[[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT"` ]]
then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
edit_db_from_gui PW_PREFIX_NAME
fi
fi
fi
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
. "${PORTWINE_DB_FILE}"
init_wine_ver &&
......@@ -572,60 +582,39 @@ pw_init_db () {
fi
fi
return 0
# export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'`
}
pw_port_update () {
###PORT UPDATE###
###SCRIPTS UPDATE###
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
echo "2000" > "${PORT_WINE_TMP_PATH}/scripts_ver"
echo "2022" > "${PORT_WINE_TMP_PATH}/scripts_ver"
fi
export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1`
curl -s --list-only https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var > "${PORT_WINE_TMP_PATH}/curent_var_ver"
if [[ "$?" == 0 ]] ; then
if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then
echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver"
fi
export port_install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1`
if [ ! -f "${PORT_WINE_TMP_PATH}/update_notifier" ] ; then
echo "1" > "${PORT_WINE_TMP_PATH}/update_notifier"
fi
read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier"
if [ "${update_not}" = "1" ] ; then
export port_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep PORT_NEXT_VERSION | awk -F "=" '{print $2}'`
print_info "Port version in github = ${port_current_ver}"
print_info "Port version local = ${port_install_ver}"
if [[ ! -z "${port_current_ver}" && "${port_current_ver}" -gt "${port_install_ver}" ]] ; then
xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${port_upd3}" \
TRUE "${port_upd4}" \
FALSE "${port_upd5}" \
FALSE "${port_upd6}" `
case $xsd in
"${port_upd4}")
kill_portwine &&
xdg-open $PORTWINE_URL
exit 0 ;;
"${port_upd5}")
echo " " ;;
"${port_upd6}")
echo "0" > "${PORT_WINE_TMP_PATH}/update_notifier" ;;
esac
fi
fi
###SCRIPTS UPDATE###
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ] ; then
echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
fi
[[ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ]] && echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
if [ "${scripts_update_not}" = "1" ] ; then
if [[ "${scripts_update_not}" == "1" ]] ; then
export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'`
print_info "Scripts version in github = ${scripts_current_ver}"
print_info "Scripts version local = ${scripts_install_ver}"
if [[ ! -z "${scripts_current_ver}" && "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then
if [[ ! -z "${scripts_current_ver}" ]] && [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then
if [[ -f "${PW_WINELIB}/portable/bin/yad_new" ]] ; then
export pw_yad_new="${PW_WINELIB}/portable/bin/yad_new"
curl -s --list-only "https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/${PW_CHANGELOG_FILE}" | tee "${PORT_WINE_TMP_PATH}/curent_var_ver" | sszen
CHANGLOG_NEWS=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | sed "/Scripts version ${scripts_install_ver}/,$ d" | sed '1,/---/ d' `
xcsd=`"${pw_yad_new}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--borders=5 --form --separator='%%%' --width=1000 --height=350 --center \
--field=":TXT" "${CHANGLOG_NEWS}" \
--field=" ${scripts_upd3} :CB" "${scripts_upd4}!${scripts_upd5}!${scripts_upd6}" `
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
xcsd=`echo "${xcsd}" | awk -F'%%%' '{print $2}'`
else
xcsd=`zenity --title "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${scripts_upd3}" \
TRUE "${scripts_upd4}" \
FALSE "${scripts_upd5}" \
FALSE "${scripts_upd6}"`
fi
case $xcsd in
"${scripts_upd4}")
echo "######################################################"
......@@ -637,8 +626,10 @@ pw_port_update () {
try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
if [[ -z "${pw_yad_new}" ]] ; then
zenity --title="Changelog" --text-info --width=1200 --height=550 \
--filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}"
fi
[ "$?" == 0 ] && /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
......@@ -653,7 +644,6 @@ pw_port_update () {
fi
fi
try_remove_file "${PORT_WINE_TMP_PATH}/curent_var_ver"
fi
return 0
}
......@@ -683,16 +673,17 @@ update_winetricks () {
}
edit_db_from_gui () {
echo "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
for mod_db in $@ ; do
echo "${mod_db}=${!mod_db}"
if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" ] ; then
echo "export ${mod_db}=${!mod_db}" >> "${PORTWINE_DB_FILE}"
echo "export ${mod_db}=\"${!mod_db}\"" >> "${PORTWINE_DB_FILE}"
elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" ] ; then
if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=${!mod_db}" ] ; then
sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=${!mod_db}/" "${PORTWINE_DB_FILE}"
if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=\"${!mod_db}\"" ] ; then
sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/" "${PORTWINE_DB_FILE}"
fi
elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" != "export ${mod_db}=${!mod_db}" ] ; then
sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=${!mod_db}/g" "${PORTWINE_DB_FILE}"
sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${PORTWINE_DB_FILE}"
fi
done
return 0
......@@ -704,7 +695,7 @@ pw_create_gui_png () {
else
export PORTPROTON_NAME="$(basename "${portwine_exe}" | sed s/".exe"/""/gi )"
fi
PW_RESIZE_TO=96
PW_RESIZE_TO=128
try_remove_file "${PORT_WINE_PATH}/data/img/setup.png"
if [[ -x "`which wrestool 2>/dev/null`" ]] && [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
try_remove_dir "${PORT_WINE_TMP_PATH}/tmp_img"
......@@ -724,9 +715,11 @@ pw_create_gui_png () {
[[ -x "`which "convert" 2>/dev/null`" ]] && [[ -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
convert "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" -resize ${PW_RESIZE_TO}x${PW_RESIZE_TO} "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
fi
if [[ -z "${PW_ICON_FOR_YAD}" ]] ; then
if [[ ! -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] ; then
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
else
export PW_ICON_FOR_YAD="${PW_GUI_ICON_PATH}/port_proton.png"
fi
fi
}
......@@ -23,8 +23,8 @@ then
export port_upd6="Больше не напоминать"
export scripts_upd1="Обновление скриптов"
export scripts_upd2="Доступно обновление скриптов для ${portname}\n"
export scripts_upd3="Действие:"
export scripts_upd2="Доступно обновление скриптов для ${portname}"
export scripts_upd3="Действие :"
export scripts_upd4="Обновить сейчас"
export scripts_upd5="Напомнить позже"
export scripts_upd6="Больше не напоминать"
......@@ -58,6 +58,7 @@ then
export loc_winereg="Запустить редактор реестра префикса ${portname}"
export loc_winetricks="Запустить winetricks для установки доп. библиотек в префикс ${portname}"
export loc_edit_db="Изменить файл настроек для"
export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON"
export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)'
export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)'
......@@ -127,8 +128,8 @@ then
export port_upd6="Do not remind me"
export scripts_upd1="New update for scripts"
export scripts_upd2="Scripts update avialable for ${portname}\n"
export scripts_upd3="Action:"
export scripts_upd2="Scripts update avialable for ${portname}"
export scripts_upd3="Action :"
export scripts_upd4="Updating now"
export scripts_upd5="Remind me later"
export scripts_upd6="Do not remind me"
......@@ -154,6 +155,8 @@ then
export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!"
export loc_download_other_wine="Download other wine-proton from GITHUB"
#Helped in translation: ConTI1NuEsZZZ
export loc_create_shortcut="Create shortcut for select file..."
export loc_delete_shortcut="Delete shortcut for select file..."
......
......@@ -14,9 +14,9 @@ export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43"
export PW_WINDOWS_VER=10
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/${USER}/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"
sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${WINEPREFIX}/user.reg"
rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Agent/data"
rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache"
rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/Fonts/sourcehansans.ttc"
sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
}
......@@ -14,10 +14,11 @@ export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live") # Additional launch options
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options
export PW_WINE_USE=WINE_LOL_GE_7.0-1
export PW_VULKAN_USE=1
export PW_MUST_HAVE_DLL="vcrun2013"
export PW_MUST_HAVE_DLL=""
export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS"
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
......
#!/usr/bin/env bash
#Author: xuser
#Stetup.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_PW_6.19
export PW_VULKAN_USE=1
##export PW_DXR_ON=1
##export PW_DLSS_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##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=0 # Do not use eventfd-based in-process synchronization primitives
##export PW_USE_GSTREAMER=1 # 0 - disabled use winegstreamer
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # 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_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }
......@@ -5,8 +5,8 @@
################################################
export PW_VULKAN_USE=1
export PW_USE_TERMINAL=0
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet/"
export PW_DLL_INSTALL="vcrun2017 mfc42 vb6run physx dotnet40 " # Install DDL in port prefix (used winetricks)
export PW_PREFIX_NAME="DOTNET"
export PW_DLL_INSTALL="mfc42 vb6run physx dotnet40" # Install DDL in port prefix (used winetricks)
export PW_COMMENT_DB="World Of Tanks EnCore"
## export DXVK_HUD=fps,devinfo
## export PW_MANGOHUD=1
......
......@@ -8,7 +8,7 @@
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##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_WINE_USE=PROTON_GE # PROTON_STEAM or PROTON_GE
##export PW_VULKAN_USE=1 # 1 ,dxvk or 0 for OpenGL
......
......@@ -5,7 +5,7 @@
#Rating=1-5
########################################################
export PW_VULKAN_USE=0
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet"
export PW_PREFIX_NAME="DOTNET"
export PW_DLL_INSTALL="dotnet40"
export PW_COMMENT_DB="OSU!"
#####################examples###########################
......
......@@ -7,6 +7,8 @@
#Rating=5
#export PW_COMMENT_DB="blablabla"
################################################
export PW_DISABLED_CREATE_DB=1
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png"
export PW_VULKAN_USE=0 #dxvk or vkd3d
export PW_MANGOHUD=0
#export PW_WINE_USE=PROTON_STEAM
......
......@@ -5,7 +5,7 @@
################################################
export PW_VULKAN_USE=dxvk
export PW_USE_TERMINAL=1
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet"
export PW_PREFIX_NAME="DOTNET"
export PW_DLL_INSTALL="dotnet40 vcrun2017 mfc42 vb6run physx"
export PW_COMMENT_DB="World Of Tanks EnCore Installer"
## export DXVK_HUD=fps,devinfo
......
......@@ -2,7 +2,7 @@
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export GOG_VER=2.0.45.61
export GOG_VER=2.0.46.133
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_${GOG_VER}.exe"
start_portwine
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/${GOG_VER}/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}"
......
#!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export LAUNCH_PARAMETERS=("/q" )
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/live.na.exe"
export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live")
export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/live.na.exe"
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live"
export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE=1
export PW_WINE_USE=WINE_LOL_GE_7.0-1
......
#!/usr/bin/env bash
# Author: cefeiko
########################################################################
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet"
export PW_PREFIX_NAME=DOTNET
start_portwine
export PW_DLL_INSTALL="dotnet40"
mkdir -p "${WINEPREFIX}/drive_c/Program Files (x86)/OSU/"
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.exe"
start_portwine
if try_download "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the OSU!. Please wait..."
......
......@@ -9,7 +9,7 @@ try_download_wgc () {
set -o pipefail
wget -t 5 -T 3 "$1" --output-document="$2" 2>&1 | \
tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; 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
"${pw_yad_new}" --center --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." && return 1 || return 0
}
......
......@@ -22,7 +22,11 @@ fi
. "$(dirname $(readlink -f "$0"))/functions_helper"
start_portwine () {
export WINEPREFIX="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"
create_new_dir "${WINEPREFIX}/drive_c/"
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${WINEPREFIX}/drive_c/"
export WINEARCH="win64"
pw_install_dll_in_prefix
pw_check_and_download_wine "${PW_WINE_USE}"
init_wine_ver
sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
......@@ -54,12 +58,14 @@ start_portwine () {
mv -f "${PW_WINELIB}/portable/lib/lib32" "${PW_WINELIB}/portable/lib/lib"
fi
fi
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then
if [[ -z "`echo ${LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then
export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${LD_LIBRARY_PATH}"
if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then
export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}"
fi
else
export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB"
export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases"
fi
if [[ ! -z "${VK_LAYER_PATH}" ]]
......@@ -86,8 +92,8 @@ start_portwine () {
else
var_winedlloverride_update "winegstreamer="
fi
export STAGING_SHARED_MEMORY=1
export PW_FORCE_LARGE_ADDRESS_AWARE=1
# export STAGING_SHARED_MEMORY=1
# export PW_FORCE_LARGE_ADDRESS_AWARE=1
if [ "${PW_USE_RUNTIME}" = 0 ] ; then
export pw_runtime=""
......@@ -275,7 +281,7 @@ start_portwine () {
fi
pw_vkbasalt_check
pw_other_fixes
#init_pfx
check_dirs_and_files_in_pfx () {
create_new_dir "${WINEPREFIX}"
create_new_dir "${WINEPREFIX}/drive_c"
......@@ -300,6 +306,7 @@ start_portwine () {
try_force_link_file "${WINEDIR}/share/wine/fonts/"tahoma.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"tahoma.ttf
}
if [[ ! -d "${WINEPREFIX}" || ! -d "${WINEPREFIX}"/drive_c/windows || ! -d "${WINEPREFIX}/dosdevices" || \
! -f "${WINEPREFIX}"/userdef.reg || ! -f "${WINEPREFIX}"/system.reg || ! -f "${WINEPREFIX}"/user.reg ]]
then
......@@ -308,14 +315,14 @@ start_portwine () {
# export PW_WINE_USE=${PW_PROTON_STEAM_VER}
# init_wine_ver
check_dirs_and_files_in_pfx
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
# export PW_WINE_USE="${OLD_PW_WINE_USE}"
# init_wine_ver
echo "${PW_WINE_USE}" > "${WINEPREFIX}/.wine_ver"
elif [[ -z "`cat ${WINEPREFIX}/.wine_ver | grep ${PW_WINE_USE}`" ]] ; then
elif [[ -z "`cat "${WINEPREFIX}/.wine_ver" | grep ${PW_WINE_USE}`" ]] ; then
check_dirs_and_files_in_pfx
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
echo "${PW_WINE_USE}" > "${WINEPREFIX}/.wine_ver"
fi
......@@ -325,26 +332,15 @@ start_portwine () {
if [ ! -d "${WINEPREFIX}/drive_c/users/${USER}" ]; then
try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser" "${WINEPREFIX}/drive_c/users/${USER}"
fi
[ ! -d "${PORT_WINE_PATH}/drive_c" ] && try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/"
create_new_dir "${WINEPREFIX}/drive_c/users/Public/Documents/Steam"
create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents/Steam"
if [ ! -d "${WINEPREFIX}/drive_c/users/steamuser/My Documents" ]
then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents" "${WINEPREFIX}/drive_c/users/steamuser/My Documents"
fi
#try link Battle Eye libs
try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib/wine/fakedlls/beclient.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib64/wine/fakedlls/beclient_x64.dll "${WINEPREFIX}/drive_c/windows/system32/"
if [[ ! -d "${WINEDIR}"/lib/wine/i386-unix ]]
then try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib/wine/beclient.dll.so "${WINEDIR}"/lib/wine/
else try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib/wine/beclient.dll.so "${WINEDIR}"/lib/wine/i386-unix/
fi
if [[ ! -d "${WINEDIR}"/lib64/wine/x86_64-unix ]]
then try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib64/wine/beclient_x64.dll.so "${WINEDIR}"/lib64/wine/
else try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib64/wine/beclient_x64.dll.so "${WINEDIR}"/lib64/wine/x86_64-unix/
fi
try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/BEClient.so "${WINEDIR}"/lib
try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/BEClient_x64.so "${WINEDIR}"/lib64
var_winedlloverride_update "beclient,beclient_x64=b,n"
#enabled BattleEye_Runtime and EasyAntiCheat_Runtime
export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/BattlEye_Runtime"
export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/EasyAntiCheat_Runtime"
var_winedlloverride_update "easyanticheat_x86,easyanticheat_x64,beclient,beclient_x64=b,n"
#try link d3d extras libs
for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \
d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \
......@@ -469,7 +465,7 @@ start_portwine () {
# export PW_WINE_VER="${PW_PROTON_STEAM_VER}"
# init_wine_ver
# fi
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
"${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver
kill_portwine
......@@ -484,7 +480,7 @@ start_portwine () {
if [[ ! -z "${PW_WINDOWS_VER}" && `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ]] ; then
export PW_WINDOWS_VER="xp64"
fi
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
"${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'`
wait_wineserver
kill_portwine
......@@ -507,25 +503,25 @@ pw_run () {
pw_mangohud_check
PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" \
"LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
"PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
if [ "${PW_LOG}" == 1 ] ; then
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then
${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
else
${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
fi
else
[ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM=""
if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then
$PW_TERM ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
else
$PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
$PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
fi
fi
......@@ -546,6 +542,8 @@ fi
unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD
unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB
unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER
export portname=PortProton
cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
......@@ -553,19 +551,60 @@ cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
rm -f "${PORT_WINE_TMP_PATH}"/*.tar.*
if [ -d "${PORT_WINE_PATH}/data/dist" ] ; then
if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then
chmod -R 755 "${PORT_WINE_PATH}/data/dist"
orig_IFS="$IFS"
IFS=$'\n'
for dist_dir in $(ls -1 "${PORT_WINE_PATH}/data/dist/") ; do
dist_dir_new=`echo "${dist_dir}" | awk '$1=$1' | sed -e s/[[:blank:]]/_/g`
if [ ! -d "${PORT_WINE_PATH}/data/dist/${dist_dir_new^^}" ] ; then
if [[ ! -d "${PORT_WINE_PATH}/data/dist/${dist_dir_new^^}" ]] ; then
mv -- "${PORT_WINE_PATH}/data/dist/$dist_dir" "${PORT_WINE_PATH}/data/dist/${dist_dir_new^^}"
fi
done
IFS="$orig_IFS"
fi
create_new_dir "${PORT_WINE_PATH}/data/prefixes"
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}"
if [[ -d "${PORT_WINE_PATH}/data/pfx" ]] ; then
mv -f "${PORT_WINE_PATH}/data/pfx" "${PORT_WINE_PATH}/data/prefixes/DEFAULT"
orig_IFS="$IFS"
IFS=$'\n'
for change_path in `grep -il "/data/pfx/" "${HOME}/.local/share/applications"/*.desktop` ; do
sed -i 's%/data/pfx/%/data/prefixes/DEFAULT/%g' "${change_path}"
done
for change_path in `grep -il "/data/pfx/" "${PORT_WINE_PATH}"/*.desktop` ; do
sed -i 's%/data/pfx/%/data/prefixes/DEFAULT/%g' "${change_path}"
done
IFS="$orig_IFS"
rm -f "${PORT_WINE_PATH}/drive_c"
fi
if [[ -d "${PORT_WINE_PATH}/data/pfx_dotnet" ]] ; then
mv -f "${PORT_WINE_PATH}/data/pfx_dotnet" "${PORT_WINE_PATH}/data/prefixes/DOTNET"
orig_IFS="$IFS"
IFS=$'\n'
for change_path in `grep -il "/data/pfx_dotnet/" "${HOME}/.local/share/applications"/*.desktop` ; do
sed -i 's%/data/pfx_dotnet/%/data/prefixes/DOTNET/%g' "${change_path}"
done
for change_path in `grep -il "/data/pfx_dotnet/" "${PORT_WINE_PATH}"/*.desktop` ; do
sed -i 's%/data/pfx_dotnet/%/data/prefixes/DOTNET/%g' "${change_path}"
done
IFS="$orig_IFS"
fi
create_new_dir "${PORT_WINE_PATH}/data/prefixes/DOTNET"
orig_IFS="$IFS"
IFS=$'\n'
for pfx_dir in $(ls -1 "${PORT_WINE_PATH}/data/prefixes/") ; do
pfx_dir_new=`echo "${pfx_dir}" | awk '$1=$1' | sed -e s/[[:blank:]]/_/g`
if [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${pfx_dir_new^^}" ]] ; then
mv -- "${PORT_WINE_PATH}/data/prefixes/$pfx_dir" "${PORT_WINE_PATH}/data/prefixes/${pfx_dir_new^^}"
fi
done
IFS="$orig_IFS"
create_new_dir "${PORT_WINE_TMP_PATH}"/gecko
create_new_dir "${PORT_WINE_TMP_PATH}"/mono
......
......@@ -52,7 +52,7 @@ portwine_create_shortcut () {
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
`zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` &> /dev/null
if [ $? -eq "0" ]; then
cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
cp -fu "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
fi
xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
}
......@@ -62,7 +62,6 @@ portwine_delete_shortcut () {
rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`"
}
portwine_start_debug () {
kill_portwine
export PW_LOG=1
......@@ -126,7 +125,7 @@ portwine_start_debug () {
echo "Graphic cards and drivers:" >> "${PORT_WINE_PATH}/${portname}.log"
echo 'lspci | grep -i vga:' >> "${PORT_WINE_PATH}/${portname}.log"
echo `lspci | grep -i vga` >> "${PORT_WINE_PATH}/${portname}.log"
env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_WINELIB}/portable/lib/\$LIB" "${PW_WINELIB}/portable/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log"
env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PW_WINELIB}/portable/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log"
echo " " >> "${PORT_WINE_PATH}/${portname}.log"
echo "inxi -G:" >> "${PORT_WINE_PATH}/${portname}.log"
env LANG=C "${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log"
......@@ -146,7 +145,7 @@ portwine_start_debug () {
fi
echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "winetricks.log:" >> "${PORT_WINE_PATH}/${portname}.log"
cat "${WINEPREFIX}/winetricks.log" >> "${PORT_WINE_PATH}/${portname}.log"
cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" >> "${PORT_WINE_PATH}/${portname}.log"
echo "------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
echo "Use ${PORTWINE_DB_FILE} db file:" >> "${PORT_WINE_PATH}/${portname}.log"
......@@ -211,7 +210,7 @@ pw_winecmd () {
export PW_USE_TERMINAL=1
start_portwine
cd "${WINEPREFIX}/drive_c"
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" xterm -e "${WINELOADER}" cmd
${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" xterm -e "${WINELOADER}" cmd
stop_portwine
}
......@@ -259,7 +258,7 @@ pw_edit_db () {
}
pw_autoinstall_from_db () {
export PW_USER_TEMP="$WINEPREFIX/drive_c"
export PW_USER_TEMP="${PORT_WINE_TMP_PATH}"
export PW_FORCE_LARGE_ADDRESS_AWARE=0
export PW_USE_GAMEMODE=0
export PW_CHECK_AUTOINSTAL=1
......@@ -277,6 +276,23 @@ pw_autoinstall_from_db () {
}
###MAIN###
export PW_PREFIX_NAME="`echo "${PW_PREFIX_NAME}" | sed -e s/[[:blank:]]/_/g`"
PW_ALL_PREFIXES=`ls "${PORT_WINE_PATH}/data/prefixes/" | sed -e s/"${PW_PREFIX_NAME}$"//g`
# if [[ ! -z "${PORTWINE_DB}" ]] && [[ -z `echo "${PW_PREFIX_NAME}" | grep -i "$(echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g)"` ]] ; then
# export PW_PREFIX_NAME="${PW_PREFIX_NAME}!`echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g`"
# fi
unset PW_ADD_PREFIXES_TO_GUI
IFS_OLD=$IFS
IFS=$'\n'
for PAIG in ${PW_ALL_PREFIXES[*]} ; do
[[ "${PAIG}" != `echo "${PORTWINE_DB^^}" | sed -e s/[[:blank:]]/_/g` ]] && \
export PW_ADD_PREFIXES_TO_GUI="${PW_ADD_PREFIXES_TO_GUI}!${PAIG}"
done
IFS=$IFS_OLD
export PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME^^}${PW_ADD_PREFIXES_TO_GUI}"
PW_ALL_DIST=`ls "${PORT_WINE_PATH}/data/dist/" | sed -e s/"${PW_PROTON_GE_VER}$//g" | sed -e s/"${PW_PROTON_STEAM_VER}$//g"`
unset DIST_ADD_TO_GUI
for DAIG in ${PW_ALL_DIST}
......@@ -340,6 +356,7 @@ if [ ! -z "${portwine_exe}" ]; then
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--field="3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \
--field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \
--field="PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \
--field=":LBL" "" \
--button='VKBASALT'!!"${ENABLE_VKBASALT_INFO}":120 \
--button='EDIT DB'!!"${loc_edit_db} ${PORTWINE_DB}":118 \
......@@ -350,13 +367,19 @@ if [ ! -z "${portwine_exe}" ]; then
if [[ "$PW_YAD_SET" == "1" || "$PW_YAD_SET" == "252" ]] ; then exit 0 ; fi
export VULKAN_MOD=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $1}'`
export PW_WINE_VER=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $2}'`
export PW_PREFIX_NAME=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $3}' | sed -e s/[[:blank:]]/_/g`
if [[ -z "${PW_PREFIX_NAME}" ]] || [[ ! -z "`echo "${PW_PREFIX_NAME}" | grep -E '^_.*' `" ]] ; then
export PW_PREFIX_NAME="DEFAULT"
else
export PW_PREFIX_NAME="${PW_PREFIX_NAME^^}"
fi
elif [ ! -z "${PORTWINE_DB_FILE}" ]; then
portwine_launch
fi
else
button_click () {
[ ! -z "$1" ] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
if [ ! -z `pidof -s yad` ] ; then
if [ ! -z `pidof -s yad` ] || [ ! -z `pidof -s yad_new` ] ; then
kill -s SIGUSR1 `pgrep -a yad | grep "\-\-key=${KEY} \-\-notebook" | awk '{print $1}'` > /dev/null 2>&1
fi
}
......@@ -395,72 +418,65 @@ else
}
export -f gui_wine_uninstaller
gui_open_var () {
xdg-open "${PORT_SCRIPTS_PATH}/var"
gui_open_user_conf () {
xdg-open "${PORT_WINE_PATH}/data/user.conf"
}
export -f gui_open_var
export -f gui_open_user_conf
export KEY=$RANDOM
"${pw_yad}" --plug=$KEY --tabnum=4 --form --columns=2 \
--field="CLEAR PREFIX":"BTN" '@bash -c "button_click gui_clear_pfx"' \
--field="EDIT SCRIPT VAR":"BTN" '@bash -c "button_click gui_open_var"' \
--field="WINE UNINSTALLER":"BTN" '@bash -c "button_click gui_wine_uninstaller"' \
--field="UPDATE PORTPROTON":"BTN" '@bash -c "button_click gui_pw_update"' \
--field="REMOVE PORTPROTON":"BTN" '@bash -c "button_click gui_rm_portproton"' \
--field="CHANGELOG":"BTN" '@bash -c "button_click open_changelog"' &
"${pw_yad}" --plug=$KEY --tabnum=3 --form --columns=3 --scroll --height=500 \
--field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png":"BTN" '@bash -c "button_click PW_DOLPHIN"' \
--field=" MAME"!"$PW_GUI_ICON_PATH/mame.png":"BTN" '@bash -c "button_click PW_MAME"' \
--field=" ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png":"BTN" '@bash -c "button_click PW_SCUMMVM"' \
--field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png":"BTN" '@bash -c "button_click PW_RETROARCH"' \
--field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png":"BTN" '@bash -c "button_click PW_PPSSPP"' \
--field=" Citra"!"$PW_GUI_ICON_PATH/citra.png":"BTN" '@bash -c "button_click PW_CITRA"' \
--field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png":"BTN" '@bash -c "button_click PW_CEMU"' \
--field=" DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png":"BTN" '@bash -c "button_click PW_DUCKSTATION"' \
--field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png":"BTN" '@bash -c "button_click PW_EPSXE"' \
--field=" Project64"!"$PW_GUI_ICON_PATH/project64.png":"BTN" '@bash -c "button_click PW_PROJECT64"' \
--field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png":"BTN" '@bash -c "button_click PW_VBA-M"' \
--field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png":"BTN" '@bash -c "button_click PW_YABAUSE"' &
"${pw_yad}" --plug=$KEY --tabnum=2 --form --columns=3 --scroll --height=500 \
--field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png":"BTN" '@bash -c "button_click PW_WGC"' \
--field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png":"BTN" '@bash -c "button_click PW_BATTLE_NET"' \
--field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png":"BTN" '@bash -c "button_click PW_EPIC"' \
--field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png":"BTN" '@bash -c "button_click PW_GOG"' \
--field=" Ubisoft Game Launcher"!"$PW_GUI_ICON_PATH/ubc.png":"BTN" '@bash -c "button_click PW_UBC"' \
--field=" Steam Client Launcher"!"$PW_GUI_ICON_PATH/steam.png":"BTN" '@bash -c "button_click PW_STEAM"' \
--field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png":"BTN" '@bash -c "button_click PW_EVE"' \
--field=" Origin Launcher"!"$PW_GUI_ICON_PATH/origin.png":"BTN" '@bash -c "button_click PW_ORIGIN"' \
--field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png":"BTN" '@bash -c "button_click PW_BETHESDA"' \
--field=" Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png":"BTN" '@bash -c "button_click PW_ROCKSTAR"' \
--field=" My.Games Launcher"!"$PW_GUI_ICON_PATH/mygames.png":"BTN" '@bash -c "button_click PW_MYGAMES"' \
--field=" OSU"!"$PW_GUI_ICON_PATH/osu.png":"BTN" '@bash -c "button_click PW_OSU"' \
--field=" Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png":"BTN" '@bash -c "button_click PW_ANKAMA"' \
--field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png":"BTN" '@bash -c "button_click PW_LOL"' \
--field=" Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png":"BTN" '@bash -c "button_click PW_GAMEFORGE"' \
--field=" ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png":"BTN" '@bash -c "button_click PW_ITCH"' &
# --field=" Glyph Client"!"$PW_GUI_ICON_PATH/glyph.png":"BTN" '@bash -c "button_click PW_GLYPH"' \
"${pw_yad}" --plug=${KEY} --tabnum=1 --columns=3 --form --separator=";" \
--image "$PW_GUI_ICON_PATH/port_proton.png" \
--field=":CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \
--field=":LBL" "" \
--field='DEBUG'!!"${loc_debug}":"BTN" '@bash -c "button_click DEBUG"' \
--field='WINECFG'!!"${loc_winecfg}":"BTN" '@bash -c "button_click WINECFG"' \
--field=":CB" "${PW_DEFAULT_WINE_USE}" \
--field=":LBL" "" \
--field='WINEFILE'!!"${loc_winefile}":"BTN" '@bash -c "button_click WINEFILE"' \
--field='WINECMD'!!"${loc_winecmd}":"BTN" '@bash -c "button_click WINECMD"' \
--field="GET OTHER WINE"!!"":"FBTN" '@bash -c "button_click gui_proton_downloader"' \
--field=":LBL" "" \
--field='WINEREG'!!"${loc_winereg}":"BTN" '@bash -c "button_click WINEREG"' \
--field='WINETRICKS'!!"${loc_winetricks}":"BTN" '@bash -c "button_click WINETRICKS"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" &
"${pw_yad}" --key=$KEY --notebook --borders=3 --width=1000 --height=168 --no-buttons --text-align=center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" --separator=";" \
--tab-pos=right --tab="PORT_PROTON" --tab="AUTOINSTALL" --tab=" EMULATORS" --tab=" SETTINGS" --center
"${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=4 --align-buttons --form --separator=";" \
--field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \
--field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \
--field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \
--field=" DOWNLOAD OTHER WINE "!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \
--field=' DEBUG'!""!"${loc_debug}":"FBTN" '@bash -c "button_click DEBUG"' \
--field=' WINECFG'!""!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \
--field=' WINEFILE'!""!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \
--field=' WINECMD'!""!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \
--field=' WINEREG'!""!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' \
--field=' WINETRICKS'!""!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \
--field=" WINE UNINSTALLER"!""!"":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \
--field=" CLEAR PREFIX"!""!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \
--field=" EDIT USER.CONF"!""!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \
--field=" REMOVE PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_rm_portproton"' \
--field=" UPDATE PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_pw_update"' \
--field=" CHANGELOG"!""!"":"FBTN" '@bash -c "button_click open_changelog"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" &
"${pw_yad_new}" --plug=$KEY --tabnum=2 --form --columns=3 --align-buttons --keep-icon-size --scroll \
--field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \
--field=" MAME"!"$PW_GUI_ICON_PATH/mame.png"!"":"FBTN" '@bash -c "button_click PW_MAME"' \
--field=" ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"":"FBTN" '@bash -c "button_click PW_SCUMMVM"' \
--field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png"!"":"FBTN" '@bash -c "button_click PW_RETROARCH"' \
--field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png"!"":"FBTN" '@bash -c "button_click PW_PPSSPP"' \
--field=" Citra"!"$PW_GUI_ICON_PATH/citra.png"!"":"FBTN" '@bash -c "button_click PW_CITRA"' \
--field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png"!"":"FBTN" '@bash -c "button_click PW_CEMU"' \
--field=" DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png"!"":"FBTN" '@bash -c "button_click PW_DUCKSTATION"' \
--field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png"!"":"FBTN" '@bash -c "button_click PW_EPSXE"' \
--field=" Project64"!"$PW_GUI_ICON_PATH/project64.png"!"":"FBTN" '@bash -c "button_click PW_PROJECT64"' \
--field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"":"FBTN" '@bash -c "button_click PW_VBA-M"' \
--field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png"!"":"FBTN" '@bash -c "button_click PW_YABAUSE"' &
"${pw_yad_new}" --plug=$KEY --tabnum=1 --form --columns=3 --align-buttons --keep-icon-size --scroll \
--field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png"!"":"FBTN" '@bash -c "button_click PW_WGC"' \
--field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png"!"":"FBTN" '@bash -c "button_click PW_BATTLE_NET"' \
--field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png"!"":"FBTN" '@bash -c "button_click PW_EPIC"' \
--field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png"!"":"FBTN" '@bash -c "button_click PW_GOG"' \
--field=" Ubisoft Game Launcher"!"$PW_GUI_ICON_PATH/ubc.png"!"":"FBTN" '@bash -c "button_click PW_UBC"' \
--field=" Steam Client Launcher"!"$PW_GUI_ICON_PATH/steam.png"!"":"FBTN" '@bash -c "button_click PW_STEAM"' \
--field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png"!"":"FBTN" '@bash -c "button_click PW_EVE"' \
--field=" Origin Launcher"!"$PW_GUI_ICON_PATH/origin.png"!"":"FBTN" '@bash -c "button_click PW_ORIGIN"' \
--field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"' \
--field=" Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png"!"":"FBTN" '@bash -c "button_click PW_ROCKSTAR"' \
--field=" My.Games Launcher"!"$PW_GUI_ICON_PATH/mygames.png"!"":"FBTN" '@bash -c "button_click PW_MYGAMES"' \
--field=" OSU"!"$PW_GUI_ICON_PATH/osu.png"!"":"FBTN" '@bash -c "button_click PW_OSU"' \
--field=" Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png"!"":"FBTN" '@bash -c "button_click PW_ANKAMA"' \
--field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png"!"":"FBTN" '@bash -c "button_click PW_LOL"' \
--field=" Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png"!"":"FBTN" '@bash -c "button_click PW_GAMEFORGE"' \
--field=" ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png"!"":"FBTN" '@bash -c "button_click PW_ITCH"' &
"${pw_yad_new}" --key=$KEY --notebook --borders=5 --width=1000 --height=235 --no-buttons --auto-close \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \
--tab-pos=bottom --tab="AUTOINSTALL"!""!"" --tab="EMULATORS"!""!"" --tab="SETTINGS"!""!"" --center
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
......@@ -469,11 +485,17 @@ else
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form"
fi
if [ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" ] ; then
cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan"
export VULKAN_MOD=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $1}'`
export PW_WINE_VER=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $5}'`
export PW_PREFIX_NAME=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $2}' | sed -e "s/[[:blank:]]/_/g" `
export PW_WINE_VER=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $3}'`
if [[ -z "${PW_PREFIX_NAME}" ]] || [[ ! -z "`echo "${PW_PREFIX_NAME}" | grep -E '^_.*' `" ]] ; then
export PW_PREFIX_NAME="DEFAULT"
else
export PW_PREFIX_NAME="${PW_PREFIX_NAME^^}"
fi
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan"
fi
export PW_DISABLED_CREATE_DB=1
fi
if [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "OPENGL" ]]
......@@ -486,21 +508,21 @@ fi
init_wine_ver
if [ -z "${PW_DISABLED_CREATE_DB}" ] ; then
if [ ! -z "${PORTWINE_DB}" ] ; then
if [[ -z "${PW_DISABLED_CREATE_DB}" ]] ; then
if [[ ! -z "${PORTWINE_DB}" ]] && [[ -z "${PORTWINE_DB_FILE}" ]] ; then
PORTWINE_DB_FILE=`grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*`
if [ -z "${PORTWINE_DB_FILE}" ] ; then
echo "#!/usr/bin/env bash" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
echo "#Author: "${USER}"" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
echo "#"${PORTWINE_DB}.exe"" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
echo "#Rating=1-5" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB"
export PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db/${PORTWINE_DB}"
if [[ -z "${PORTWINE_DB_FILE}" ]] ; then
echo "#!/usr/bin/env bash" > "${portwine_exe}".ppdb
echo "#Author: "${USER}"" >> "${portwine_exe}".ppdb
echo "#"${PORTWINE_DB}.exe"" >> "${portwine_exe}".ppdb
echo "#Rating=1-5" >> "${portwine_exe}".ppdb
cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${portwine_exe}".ppdb
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE
fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
fi
echo "PW_YAD_SET=$PW_YAD_SET"
case "$PW_YAD_SET" in
1|252) exit 0 ;;
98) portwine_delete_shortcut ;;
......@@ -514,7 +536,7 @@ case "$PW_YAD_SET" in
WINETRICKS|116) pw_winetricks ;;
118) pw_edit_db ;;
gui_clear_pfx) gui_clear_pfx ;;
gui_open_var) gui_open_var ;;
gui_open_user_conf) gui_open_user_conf ;;
gui_wine_uninstaller) gui_wine_uninstaller ;;
gui_rm_portproton) gui_rm_portproton ;;
gui_pw_update) gui_pw_update ;;
......
#!/bin/env bash
#Author: Castro-Fidel (PortWINE-Linux.ru)
#SCRIPTS_NEXT_VERSION=2085
#SCRIPTS_NEXT_VERSION=2089
#PORT_NEXT_VERSION=97
########################################################################
export PW_MANGOHUD=1
......@@ -19,21 +19,20 @@ export PW_FORCE_USE_VSYNC=2
export PW_LOG=0
export PW_TERM=""
export PW_USE_TERMINAL=0
export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019"
export PW_WINEDBG_DISABLE=1
export PW_WINDOWS_VER="10"
export WINEARCH="win64"
export PW_LIBS_VER="_v21"
export PW_LIBS_VER="_v22.2"
export PORTWINE_URL="http://portwine-linux.ru/"
export GDK_BACKEND="x11"
export PW_USE_GSTREAMER="1"
export WINEPREFIX="${PORT_WINE_PATH}/data/pfx"
export PW_PREFIX_NAME="DEFAULT"
export WINE_WIN_START="start.exe /i /unix"
###DEFAULT_WINE###
export PW_WINE_USE=PROTON_GE
export PW_PLUGINS_VER="_v2"
export PW_PLUGINS_VER="_v3"
###WINE_PROTON_STEAM###
export PW_STEAM_VER="6.3-8C_PW2"
export PW_STEAM_VER="7.0-1"
export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}"
###WINE_PROTON_GE###
export PW_GE_VER="7.1-2"
......@@ -41,33 +40,41 @@ export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}"
export WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_STRENGTH="2"
#################################################################
pw_install_dll_in_prefix ()
{
case $PW_PREFIX_NAME in
DEFAULT) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019" ;;
DOTNET) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019 dotnet20sp2 dotnet48" ;;
*) export PW_MUST_HAVE_DLL="" ;;
esac
}
add_in_start_portwine ()
{
echo " "
echo " "
}
########################################################################
add_in_stop_portwine ()
{
echo " "
echo " "
}
########################################################################
pw_other_fixes () {
if [[ -f "${WINEPREFIX}/system.reg" ]] ; then
#fix after installation Origin, for disabled OriginWebHelperService by default
if [[ ! -z `cat "${WINEPREFIX}/system.reg" | grep -wm 1 "Origin.exe" | awk '{print $1}'` ]] ; then
sysreg_norig=$(((`cat -n "${WINEPREFIX}/system.reg" | grep OriginWebHelperService | awk '{print $1}'` + 3)))
sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${WINEPREFIX}/system.reg"
if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] ; then
#fix after installation Origin, for disabled OriginWebHelperService by default
if [[ ! -z `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep -wm 1 "Origin.exe" | awk '{print $1}'` ]] ; then
sysreg_norig=$(((`cat -n "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep OriginWebHelperService | awk '{print $1}'` + 3)))
sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
fi
#fix after installation PnkBstr*, for disabled PnkBstr* by default
for fix_reg in "PnkBstrA.exe" "PnkBstrB.exe" ; do
if [[ ! -z `cat "${WINEPREFIX}/system.reg" | grep -wm 1 "${fix_reg}" | awk '{print $1}'` ]] ; then
sysreg_norig=$(((`cat -n "${WINEPREFIX}/system.reg" | grep "${fix_reg}" | awk '{print $1}'` + 3)))
sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${WINEPREFIX}/system.reg"
if [[ ! -z `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep -wm 1 "${fix_reg}" | awk '{print $1}'` ]] ; then
sysreg_norig=$(((`cat -n "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep "${fix_reg}" | awk '{print $1}'` + 3)))
sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
fi
done
fi
#disabled silent autostart steam
if [[ -f "${WINEPREFIX}/user.reg" ]] ; then
sed -i '/steam.exe\\" -silent"/d' "${WINEPREFIX}/user.reg"
fi
fi
#disabled silent autostart steam
if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" ]] ; then
sed -i '/steam.exe\\" -silent"/d' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
fi
}
......@@ -85,7 +85,8 @@ pw_start_progress_bar_block () {
}
pw_stop_progress_bar () {
for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" "$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER"
for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" \
"$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER"
do
kill -s SIGUSR1 "$PW_KILL_YAD_PID" > /dev/null 2>&1
done
......@@ -151,7 +152,7 @@ pw_gui_for_edit_db () {
else export ${int_to_boole}="FALSE"
fi
TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
int_to_boole_non_pw="`echo ${int_to_boole} | sed 's/^PW_//'`"
int_to_boole_non_pw="`echo ${int_to_boole} | sed 's/^PW_//' `"
ADD_CHK_BOX_EDIT_DB+="--field= ${int_to_boole_non_pw} !${!TMP_HELP_FOR_GUI}:CHK%${!int_to_boole}%"
done
}
......@@ -180,15 +181,11 @@ pw_gui_for_edit_db () {
--text "Change settings in database file for ${PORTWINE_DB}\n" --separator=" " --borders=10 --center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --button="CANCEL":1 --button="OPEN DB FILE":150 --button="SAVE CHANGES":0
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" ]] ; then
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
elif [[ "$YAD_STATUS" == "252" ]] ; then
exit 0
elif [ "$YAD_STATUS" == "150" ] ; then
xdg-open "${PORTWINE_DB_FILE}" &
exit 0
fi
case "$YAD_STATUS" in
1) /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 ;;
150) xdg-open "${PORTWINE_DB_FILE}" & exit 0 ;;
252) exit 0 ;;
esac
output_yad_edit_db=(`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db"`)
bool_from_yad=0
edit_db_field_read () {
......@@ -203,9 +200,9 @@ pw_gui_for_edit_db () {
}
edit_db_field_read $@
PW_WINDOWS_VER="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $1}'`"
PW_DLL_INSTALL=\"`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $2}'`\"
WINEDLLOVERRIDES=\"`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'`\"
LAUNCH_PARAMETERS=\"`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'`\"
PW_DLL_INSTALL=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $2}'`
WINEDLLOVERRIDES=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'`
LAUNCH_PARAMETERS=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'`
FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $7}'`"
if [ "${FPS_LIMIT}" == 0 ] ; then
......@@ -213,6 +210,7 @@ pw_gui_for_edit_db () {
else
export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt,fps_limit=${FPS_LIMIT}
fi
echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES
return 0
}
......
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