From 828807d75300e3e3943cf395247b2d0e9248e826 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sun, 3 Dec 2023 19:56:37 +0300 Subject: [PATCH] Scripts version 2234 --- data_from_portwine/changelog_eng | 11 +++ data_from_portwine/changelog_rus | 15 ++++ ...ttle.png => World of Sea Battle (ENG).png} | Bin .../img/World of Sea Battle (RU).png | Bin 0 -> 38829 bytes data_from_portwine/scripts/add_in_steam.sh | 18 ++--- data_from_portwine/scripts/functions_helper | 22 +++++- .../scripts/portwine_db/Genshin Impact | 39 +++++++++++ .../portwine_db/Rockstar_Games_Launcher | 2 +- .../WORLD OF SEA BATTLE (TEXT 2 RU) | 13 +--- .../portwine_db/WORLD OF SEA BATTLE (TEXT EN) | 9 +-- .../scripts/portwine_db/warframe | 39 +++++++++++ .../scripts/pw_autoinstall/PW_BATTLE_NET | 1 + .../scripts/pw_autoinstall/PW_GENSHIN_IMPACT | 5 +- .../scripts/pw_autoinstall/PW_ROCKSTAR | 4 +- .../scripts/pw_autoinstall/PW_WARFRAME | 9 +-- .../scripts/pw_autoinstall/PW_WOSB | 24 +++++-- data_from_portwine/scripts/runlib | 10 ++- data_from_portwine/scripts/start.sh | 2 +- data_from_portwine/scripts/var | 4 +- data_from_portwine/scripts/zen_yad_gui | 64 +++++++++++++----- 20 files changed, 220 insertions(+), 71 deletions(-) rename data_from_portwine/img/{World of Sea Battle.png => World of Sea Battle (ENG).png} (100%) create mode 100644 data_from_portwine/img/World of Sea Battle (RU).png create mode 100644 data_from_portwine/scripts/portwine_db/Genshin Impact create mode 100644 data_from_portwine/scripts/portwine_db/warframe diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index 32e13253..2e71ce62 100755 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,17 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2234### Date: 03.12.2023 / Download update size: 200 megabytes +* updated PROTON_LG to version 8-25-1 (fixed BattleNET) +* fixed the creation of shortcuts to STEAM in the absence of shortcuts.vdf file +* fixed the creation of icons for standard shortcuts (thanks Arta48) +* added the ability to create ppdb files for symbolic links (fix for the same exe file names) +* created individual settings files for games: + - Genshin Impact + - Warframe + - Rockstar +(the application requires restarting the auto-installation of the required game) + ###Scripts version 2233### Date: 26.11.2023 / Download update size: 8 megabytes * HOTFIX - create shortcut to STEAM diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index 8fb9c02f..c0448fcc 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,21 @@ ----------------------------------------- История изменений: +###Scripts version 2234### Дата: 03.12.2023 / Размер скачиваемого обновления: 200 мегабайт +* обновлен PROTON_LG до версии 8-25-1 (исправлена работа BattleNET) +* исправлено создание ярлыков в STEAM при отсутствии shortcuts.vdf файла +* исправлено создание иконок для стандартных ярлыков (спасибо Arta48) +* добавлена возможность создавать ppdb файлы на символьные ссылки (исправление для одинаковых имён exe файлов) +* созданы индивидуальные файлы настроек для игр: + - Genshin Impact + - Warframe + - Rockstar +(для применения требуется повторный запуск автоустановки необходимой игры) + +* для лончера World of Sea Battle создаются 2 ярлыка: + - World of Sea Battle (EN) - для первого входа (логина) в игру + - World of Sea Battle (RU) - для возможности писать в чате на русском языке + ###Scripts version 2233### Дата: 26.11.2023 / Размер скачиваемого обновления: 8 мегабайт * HOTFIX - создание ярлыков в STEAM diff --git a/data_from_portwine/img/World of Sea Battle.png b/data_from_portwine/img/World of Sea Battle (ENG).png similarity index 100% rename from data_from_portwine/img/World of Sea Battle.png rename to data_from_portwine/img/World of Sea Battle (ENG).png diff --git a/data_from_portwine/img/World of Sea Battle (RU).png b/data_from_portwine/img/World of Sea Battle (RU).png new file mode 100644 index 0000000000000000000000000000000000000000..e04140edd9dd3fcbc8faef0f55de65cc94e3098c GIT binary patch literal 38829 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 FV1n7D-6jA4 literal 0 HcmV?d00001 diff --git a/data_from_portwine/scripts/add_in_steam.sh b/data_from_portwine/scripts/add_in_steam.sh index da8a24d1..11653846 100755 --- a/data_from_portwine/scripts/add_in_steam.sh +++ b/data_from_portwine/scripts/add_in_steam.sh @@ -5,10 +5,13 @@ PROGNAME="PortProton" # PERSONAL_NAME="$(grep PersonaName "$HOME/.local/share/Steam/config/loginusers.vdf" | awk -F'"' '{print $4}')" -STUIDPATH="$(find "$HOME/.local/share/Steam/userdata/" -maxdepth 1 -type d -name "[1-9]*" | head -n1)" SCVDF="shortcuts.vdf" SCPATH="$STUIDPATH/config/$SCVDF" +if [[ ! -f "$SCPATH" ]] ; then + echo '0073686f727463757473000808' | xxd -r -p > "$SCPATH" +fi + NOSTAPPNAME="$name_desktop" NOSTEXEPATH="\"${STEAM_SCRIPTS}/${name_desktop}.sh\"" NOSTSTDIR="\"${STEAM_SCRIPTS}\"" @@ -95,21 +98,10 @@ if [ -n "${NOSTEXEPATH}" ]; then printf '\x02%s\x00\x00\x00\x00\x00' "openvr" fi - # splitTags () { - # mapfile -d "," -t -O "${#TAGARR[@]}" TAGARR < <(printf '%s' "$1") - # for i in "${!TAGARR[@]}"; do - # if grep -q "${TAGARR[$i]}" <<< "$(getActiveSteamCollections)"; then - # printf '\x01%s\x00%s\x00' "$i" "${TAGARR[i]}" - # fi - # done - # } - printf '\x02%s\x00\x00\x00\x00\x00' "Devkit" printf '\x01%s\x00\x00' "DevkitGameID" - printf '\x02%s\x00\x00\x00\x00\x00' "LastPlayTime" printf '\x00%s\x00' "tags" - # splitTags "PortProton" printf '\x08' printf '\x08' @@ -117,4 +109,6 @@ if [ -n "${NOSTEXEPATH}" ]; then printf '\x08' printf '\x08' } >> "$SCPATH" + + # echo '00013000504f727450726f746f6e0008080808' | xxd -r -p >> "$SCPATH" fi diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 294ca73b..95baa87f 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -896,7 +896,6 @@ pw_init_db () { [[ -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 if [[ -f "${PORTWINE_DB_FILE}" ]] ; then @@ -1086,7 +1085,7 @@ pw_create_gui_png () { if [[ -x "`command -v wrestool 2>/dev/null`" ]] && [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then try_remove_dir "${PORT_WINE_TMP_PATH}/tmp_img" create_new_dir "${PORT_WINE_TMP_PATH}/tmp_img" - wrestool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "${portwine_exe}" + wrestool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "$(readlink -f "${portwine_exe}")" cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".ico" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico" icotool -x --width=${PW_RESIZE_TO} --height=${PW_RESIZE_TO} --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico" if [[ ! -f "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | grep "${PW_RESIZE_TO}x${PW_RESIZE_TO}")" ]] ; then @@ -1151,3 +1150,22 @@ pw_find_exe () { exit 0 fi } + +pw_create_unique_exe () { + BASEDIR_GAME="$(dirname "$portwine_exe")" + if [[ -d "$BASEDIR_GAME" ]] ; then + pushd "$BASEDIR_GAME" + BASENAME_GAME_EXE="$(basename "$portwine_exe")" + if [[ ! -z "$1" ]] ; then + BASENAME_GAME="$(echo "$(basename "$1" .exe).exe")" + ln -sf "$BASENAME_GAME_EXE" "$BASENAME_GAME" + export portwine_exe="$BASEDIR_GAME/$BASENAME_GAME" + elif [[ ! -z "$PORTWINE_CREATE_SHORTCUT_NAME" ]] ; then + ln -sf "$BASENAME_GAME_EXE" "$PORTWINE_CREATE_SHORTCUT_NAME.exe" + export portwine_exe="$BASEDIR_GAME/$PORTWINE_CREATE_SHORTCUT_NAME.exe" + else + print_warning "There are no arguments for creating a symbolic link! Skip it..." + fi + popd + fi +} diff --git a/data_from_portwine/scripts/portwine_db/Genshin Impact b/data_from_portwine/scripts/portwine_db/Genshin Impact new file mode 100644 index 00000000..26c22f15 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Genshin Impact @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +#Author: fidel +#Genshin Impact.exe +#Rating=1-5 +#####################examples########################### +export PW_WINDOWS_VER="10" +export PW_DLL_INSTALL="" +export WINEDLLOVERRIDES="" +export LAUNCH_PARAMETERS="" +export PW_VULKAN_USE="2" +export PW_HIDE_NVIDIA_GPU="0" +export PW_VIRTUAL_DESKTOP="0" +export ENABLE_VKBASALT="0" +export PW_NO_FSYNC="0" +export PW_NO_ESYNC="1" +export PW_USE_GSTREAMER="1" +export PW_REDUCE_PULSE_LATENCY="0" +export PW_USE_TERMINAL="0" +export PW_GUI_DISABLED_CS="0" +export PW_PREFIX_NAME="GENSHIN_IMPACT" +export PW_MANGOHUD="0" +export PW_MANGOHUD_x32="0" +export PW_MANGOHUD_USER_CONF="0" +export PW_USE_RAY_TRACING="0" +export PW_USE_NVAPI_AND_DLSS="0" +export PW_USE_FAKE_DLSS="0" +export PW_WINE_FULLSCREEN_FSR="1" +export PW_USE_GAMEMODE="1" +export PW_DX12_DISABLE="0" +export PW_USE_D3D_EXTRAS="1" +export PW_FIX_VIDEO_IN_GAME="0" +export PW_USE_US_LAYOUT="0" +export PW_FORCE_LARGE_ADDRESS_AWARE="0" +export PW_USE_SHADER_CACHE="1" +export PW_USE_WINE_DXGI="0" +export PW_USE_EAC_AND_BE="0" +export PW_USE_SYSTEM_VK_LAYERS="0" +export PW_USE_OBS_VKCAPTURE="0" +export PW_USE_GALLIUM_ZINK="0" diff --git a/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher b/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher index add9a435..fed744c7 100755 --- a/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher +++ b/data_from_portwine/scripts/portwine_db/Rockstar_Games_Launcher @@ -1,7 +1,7 @@ #!/usr/bin/env bash #Author: Garrett #RockstarService.exe -#Launcher.exe +#rockstar_launcher_pp.exe #LauncherPatcher.exe #Rating=? ################################################ diff --git a/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) b/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) index 880d299e..ef3e0446 100755 --- a/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) +++ b/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT 2 RU) @@ -1,16 +1,10 @@ #!/usr/bin/env bash #Author: Cefeiko -#launcher.exe +#wosb_launcher_ru.exe #Rating=? ################################################ -export PW_COMMENT_DB="World of Sea Battle - -Если Ваша система на РУССКОМ, -то для ввода логина и пароля выберите другой ДБ файл: -WORLD OF SEA BATTLE (TEXT EN) - -С этим ДБ файлом писать на АНГЛИЙСКОМ не получится, -пока не исправит разработчик" +export PW_COMMENT_DB="С этим ДБ файлом писать на АНГЛИЙСКОМ не получится. +Для входа в игру используйте ярлык World of Sea Battle (EN)" export PW_PREFIX_NAME="DOTNET" export PW_WINDOWS_VER="10" export PW_VULKAN_USE="2" @@ -21,4 +15,3 @@ export PW_USE_GSTREAMER="1" export PW_FORCE_LARGE_ADDRESS_AWARE="1" export PW_USE_SHADER_CACHE="1" export LAUNCH_PARAMETERS="" -# export LANG=en_US.UTF-8 diff --git a/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT EN) b/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT EN) index 070979a5..72785571 100755 --- a/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT EN) +++ b/data_from_portwine/scripts/portwine_db/WORLD OF SEA BATTLE (TEXT EN) @@ -1,14 +1,9 @@ #!/usr/bin/env bash #Author: Cefeiko -#launcher.exe +#wosb_launcher_en.exe #Rating=? ################################################ -export PW_COMMENT_DB="World of Sea Battle - -Если Ваша система на РУССКОМ, то: -Для ввода логина и пароля используйте этот ДБ файл. -После аутентификации перезапустите игру со вторым ДБ файлом: -WORLD OF SEA BATTLE (TEXT 2 RU)" +export PW_COMMENT_DB="" export PW_PREFIX_NAME="DOTNET" export PW_WINDOWS_VER="10" export PW_VULKAN_USE="2" diff --git a/data_from_portwine/scripts/portwine_db/warframe b/data_from_portwine/scripts/portwine_db/warframe new file mode 100644 index 00000000..e68fbe98 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/warframe @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +#Author: fidel +#warframe_launcher_pp.exe +#Rating=1-5 +#####################examples########################### +export PW_WINDOWS_VER="10" +export PW_DLL_INSTALL="" +export WINEDLLOVERRIDES="" +export LAUNCH_PARAMETERS="" +export PW_VULKAN_USE="2" +export PW_HIDE_NVIDIA_GPU="0" +export PW_VIRTUAL_DESKTOP="0" +export ENABLE_VKBASALT="0" +export PW_NO_FSYNC="0" +export PW_NO_ESYNC="1" +export PW_USE_GSTREAMER="1" +export PW_REDUCE_PULSE_LATENCY="0" +export PW_USE_TERMINAL="0" +export PW_GUI_DISABLED_CS="0" +export PW_PREFIX_NAME="DEFAULT" +export PW_MANGOHUD="0" +export PW_MANGOHUD_x32="0" +export PW_MANGOHUD_USER_CONF="0" +export PW_USE_RAY_TRACING="0" +export PW_USE_NVAPI_AND_DLSS="0" +export PW_USE_FAKE_DLSS="0" +export PW_WINE_FULLSCREEN_FSR="1" +export PW_USE_GAMEMODE="1" +export PW_DX12_DISABLE="0" +export PW_USE_D3D_EXTRAS="1" +export PW_FIX_VIDEO_IN_GAME="0" +export PW_USE_US_LAYOUT="0" +export PW_FORCE_LARGE_ADDRESS_AWARE="0" +export PW_USE_SHADER_CACHE="1" +export PW_USE_WINE_DXGI="0" +export PW_USE_EAC_AND_BE="0" +export PW_USE_SYSTEM_VK_LAYERS="0" +export PW_USE_OBS_VKCAPTURE="0" +export PW_USE_GALLIUM_ZINK="0" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET b/data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET index b3a76c96..3d02c54c 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET +++ b/data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET @@ -3,6 +3,7 @@ ######################################################################## [ "${update_loc}" = "RUS" ] && export BN_LOC=ruRU || export BN_LOC=enUS export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe" + start_portwine if try_download_game "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}" then diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GENSHIN_IMPACT b/data_from_portwine/scripts/pw_autoinstall/PW_GENSHIN_IMPACT index 819d4104..396516d4 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GENSHIN_IMPACT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GENSHIN_IMPACT @@ -4,6 +4,7 @@ export PW_VULKAN_USE=2 export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/gi_installer.exe" export PW_PREFIX_NAME="GENSHIN_IMPACT" +export PORTWINE_CREATE_SHORTCUT_NAME="Genshin Impact" start_portwine @@ -13,12 +14,12 @@ then pw_kill_autostart launcher.exe & export PATH_TO_GAME="${PW_USER_TEMP}" pw_run "${PW_AUTOINSTALL_EXE}" - portwine_exe="$WINEPREFIX/drive_c/Program Files/Genshin Impact/launcher.exe" + export portwine_exe="$WINEPREFIX/drive_c/Program Files/Genshin Impact/launcher.exe" + pw_create_unique_exe try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${portwine_exe}.ppdb" kill_portwine pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="Genshin Impact" portwine_create_shortcut fi diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ROCKSTAR b/data_from_portwine/scripts/pw_autoinstall/PW_ROCKSTAR index eea63d63..1e9a0f5f 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ROCKSTAR +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ROCKSTAR @@ -3,6 +3,8 @@ ######################################################################## export PW_VULKAN_USE="1" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Rockstar-Games-Launcher.exe" +export PORTWINE_CREATE_SHORTCUT_NAME="Rockstar" + start_portwine if try_download_game "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}" then @@ -11,11 +13,11 @@ then pw_kill_autostart RockstarService.exe & pw_run "${PW_AUTOINSTALL_EXE}" portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Launcher.exe" | grep "Rockstar Games/Launcher/Launcher.exe"` + pw_create_unique_exe "rockstar_launcher_pp" try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${portwine_exe}.ppdb" kill_portwine pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="Rockstar" portwine_create_shortcut fi stop_portwine diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME b/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME index 4d5761a1..7bd36a12 100644 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME @@ -3,6 +3,7 @@ ######################################################################## export LAUNCH_PARAMETERS=("/q") export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Warframe.msi" +export PORTWINE_CREATE_SHORTCUT_NAME="Warframe" start_portwine if try_download_game "http://content.warframe.com/dl/Warframe.msi" "${PW_AUTOINSTALL_EXE}" @@ -10,16 +11,12 @@ then pw_start_progress_bar_block "${loc_gui_installing_the} Warframe. ${loc_gui_please_wait} " pw_kill_autostart Launcher.exe 3 & pw_run msiexec /i "${PW_AUTOINSTALL_EXE}" - - pushd "${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Warframe/Downloaded/Public/Tools/" - ln -s Launcher.exe Warframe_Launcher.exe - popd - portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Warframe/Downloaded/Public/Tools/Warframe_Launcher.exe" + export portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Warframe/Downloaded/Public/Tools/Launcher.exe" + pw_create_unique_exe "warframe_launcher_pp" try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${portwine_exe}.ppdb" kill_portwine pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="Warframe" portwine_create_shortcut fi stop_portwine diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WOSB b/data_from_portwine/scripts/pw_autoinstall/PW_WOSB index 6f53c110..442648ab 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WOSB +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WOSB @@ -14,15 +14,25 @@ start_portwine if try_download_game "https://installer.launcher.xsolla.com/xlauncher-builds/xsolla-launcher-update/${WOSB_VERSION}/bin/installer.exe" "${PW_AUTOINSTALL_EXE}" then pw_start_progress_bar_block "Installing World of Sea Battle. ${loc_gui_please_wait} " - - # pw_kill_autostart WorldOfSeaBattleClient.exe & pw_run "${PW_AUTOINSTALL_EXE}" - portwine_exe="$WINEPREFIX/drive_c/users/$USER/AppData/Local/Wosb Launcher/launcher.exe" try_remove_file "${PW_AUTOINSTALL_EXE}" - try_remove_file "${portwine_exe}.ppdb" - kill_portwine pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="World of Sea Battle" - portwine_create_shortcut + kill_portwine + + if [[ "${update_loc}" == "RUS" ]] ; then + export portwine_exe="$WINEPREFIX/drive_c/users/$USER/AppData/Local/Wosb Launcher/launcher.exe" + export PORTWINE_CREATE_SHORTCUT_NAME="World of Sea Battle (RU)" + pw_create_unique_exe "wosb_launcher_ru" + try_remove_file "${portwine_exe}.ppdb" + export PW_SKIP_RESTART_STEAM=1 + portwine_create_shortcut block_name + fi + + export portwine_exe="$WINEPREFIX/drive_c/users/$USER/AppData/Local/Wosb Launcher/launcher.exe" + export PORTWINE_CREATE_SHORTCUT_NAME="World of Sea Battle (EN)" + pw_create_unique_exe "wosb_launcher_en" + try_remove_file "${portwine_exe}.ppdb" + portwine_create_shortcut block_name + fi stop_portwine diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index dd416d2d..77dc1340 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -392,7 +392,11 @@ start_portwine () { then try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/dxgi.dll" fi print_info "Try link wine d3d filese by default..." - for wine_build_dll in d3d12core d3d12 d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi ; do + for rm_vulkan_dll in libvkd3d-1 libvkd3d-shader-1 dxvk_config nvapi nvapi64 ; do + try_remove_file "${WINEPREFIX}/drive_c/windows/system32/${wine_build_dll}.dll" + try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${wine_build_dll}.dll" + done + for wine_build_dll in d3d12core d3d12 d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d ; do if ! try_force_link_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_build_dll}.dll" then try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_build_dll}.dll" fi @@ -409,15 +413,15 @@ start_portwine () { print_info "Use OpenGL" export GL_YIELD="NOTHING" export mesa_glthread=true - var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,wined3d9,dxgi=b;d3d12,d3d12core=" + export WINE_D3D_CONFIG='renderer=gl' elif [[ "${PW_VULKAN_USE}" == "5" ]] ; then print_info "Use OpenGL Zink" export GL_YIELD="NOTHING" export mesa_glthread=true + export WINE_D3D_CONFIG='renderer=gl' export __GLX_VENDOR_LIBRARY_NAME=mesa export MESA_LOADER_DRIVER_OVERRIDE=zink export GALLIUM_DRIVER=zink - var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,wined3d9,dxgi=b;d3d12,d3d12core=" elif [[ "${PW_VULKAN_USE}" == "3" ]] ; then print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" export PW_GALLIUM_NINE_VER="0.8" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 67c79793..90cbe515 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -6,7 +6,7 @@ export pw_full_command_line=("$0" $*) MISSING_DESKTOP_FILE=0 if [[ -f "$1" ]] ; then - export portwine_exe="$(readlink -f "$1")" + export portwine_exe="$1" elif [[ "$1" == *.exe ]] ; then export portwine_exe="$1" MISSING_DESKTOP_FILE=1 diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 10e91140..a3173792 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2233 +#SCRIPTS_NEXT_VERSION=2234 ######################################################################## export PW_MANGOHUD=0 export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt @@ -40,7 +40,7 @@ export PW_WINE_USE="PROTON_LG" export PW_PLUGINS_VER="_v12" export PW_FAKE_DLSS_VER="230506" ###WINE_AND_PROTON_LG### -export PW_PROTON_LG_VER="PROTON_LG_8-24" +export PW_PROTON_LG_VER="PROTON_LG_8-25-1" export PW_WINE_LG_VER="WINE_LG_8-18-1" export PW_WINE_FULLSCREEN_FSR="1" ###DXVK_AND_VKD3D### diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index d1232e92..6779b44b 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -507,26 +507,55 @@ gui_vkBasalt () { portwine_create_shortcut () { pw_create_gui_png pw_stop_progress_bar - if ls "$HOME/.local/share/Steam/userdata/"*"/config/shortcuts.vdf" &>/dev/null - then PW_FOUND_VDF=TRUE - else PW_FOUND_VDF=FALSE + if [[ ! -z "$PW_STEAM_ID" ]] + then STUIDPATH="$HOME/.local/share/Steam/userdata/$PW_STEAM_ID" + else STUIDPATH="$(find "$HOME/.local/share/Steam/userdata/" -maxdepth 1 -type d -name "[1-9]*" | head -n1)" fi - export name_desktop="${PORTPROTON_NAME}" - OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=3 \ - --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ - --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \ - --field="${sc_info}":LBL "" \ - --field="${sc_name}:" "${name_desktop}" \ - --field=" ${sc_menu_desktop}":CHK "TRUE" \ - --field=" ${sc_add_in_steam}":CHK "$PW_FOUND_VDF" \ - --button="$loc_gui_create_shortcut":0) - if [ $? -eq "0" ]; then - name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $2}') + if [[ -d "$STUIDPATH" ]] ; then + export STUIDPATH + PW_FOUND_VDF=TRUE + else + PW_FOUND_VDF=FALSE + fi + + if [[ "$1" == "block_name" ]] ; then + export name_desktop="${PORTPROTON_NAME}" + OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=3 \ + --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ + --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \ + --field="${sc_info}":LBL "" \ + --field=" ${name_desktop}":LBL "" \ + --field=" ${sc_menu_desktop}":CHK "TRUE" \ + --field=" ${sc_add_in_steam}":CHK "$PW_FOUND_VDF" \ + --button="$loc_gui_create_shortcut":0) + PW_YAD_OUT=$? + else + export name_desktop="${PORTPROTON_NAME}" + OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=3 \ + --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ + --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \ + --field="${sc_info}":LBL "" \ + --field="${sc_name}:" "${name_desktop}" \ + --field=" ${sc_menu_desktop}":CHK "TRUE" \ + --field=" ${sc_add_in_steam}":CHK "$PW_FOUND_VDF" \ + --button="$loc_gui_create_shortcut":0) + PW_YAD_OUT=$? + fi + + if [[ "$PW_YAD_OUT" == "0" ]] ; then + if [[ "$1" == "block_name" ]] + then name_desktop="$PORTWINE_CREATE_SHORTCUT_NAME" + else name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $2}') + fi create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $3}') create_menu_steam_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $4}') try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop" + if [[ "${PORTPROTON_NAME}" != "${name_desktop}" ]] + then mv -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${name_desktop}.png" + fi + echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" @@ -556,7 +585,7 @@ portwine_create_shortcut () { echo "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" " >> "${STEAM_SCRIPTS}/${name_desktop}.sh" chmod u+x "${STEAM_SCRIPTS}/${name_desktop}.sh" "${PORT_SCRIPTS_PATH}/add_in_steam.sh" - if pgrep -i steam &>/dev/null ; then + if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then if gui_question "$sc_restert_steam" ; then pw_start_progress_bar_block "Restarting STEAM... Please wait." kill -s SIGTERM $(pgrep -a steam) &>/dev/null @@ -569,9 +598,10 @@ portwine_create_shortcut () { exit 0 fi fi + unset PW_SKIP_RESTART_STEAM fi - - [[ "$1" != silent ]] && xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & + + [[ "$1" != silent ]] && [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && "${PORT_WINE_PATH}" 2>1 >/dev/null & fi }