Compare commits

..

No commits in common. "devel" and "workflow" have entirely different histories.

178 changed files with 3726 additions and 6759 deletions

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2025 Castro-Fidel (linux-gaming.ru)
Copyright (c) 2024 Castro-Fidel (linux-gaming.ru)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

@ -7,8 +7,8 @@
<a href="https://flathub.org/ru/apps/ru.linux_gaming.PortProton">
<img src="https://img.shields.io/flathub/downloads/ru.linux_gaming.PortProton?style=flat&logo=flathub" alt="Flathub Downloads">
</a>
<a href="https://t.me/linux_gaming_ru">
<img src="https://img.shields.io/endpoint?&style=flat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Flinux_gaming_ru" alt="Telegram">
<a href="https://discord.gg/FTaheP99wE">
<img src="https://img.shields.io/discord/378683352946835456?logo=discord" alt="Discord">
</a>
<a href="https://www.youtube.com/@linux-gaming5986">
<img src="https://img.shields.io/youtube/channel/subscribers/UCbI8OJx2D3q-4QKt4LffXTw?style=flat&logo=youtube" alt="YouTube Channel Subscribers">
@ -73,7 +73,7 @@ exit
```
* **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x** **Deepin** :
[portproton_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_amd64/portproton_amd64.deb)
[portproton_1.7-3_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.7-3_amd64/portproton_1.7-3_amd64.deb)
* **Arch Linux** и производные (Manjaro, Garuda, и т.д.) :
[AUR](https://aur.archlinux.org/packages/portproton)

@ -7,8 +7,8 @@
<a href="https://flathub.org/apps/ru.linux_gaming.PortProton">
<img src="https://img.shields.io/flathub/downloads/ru.linux_gaming.PortProton?style=flat&logo=flathub" alt="Flathub Downloads">
</a>
<a href="https://t.me/linux_gaming_ru">
<img src="https://img.shields.io/endpoint?&style=flat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Flinux_gaming_ru" alt="Telegram">
<a href="https://discord.gg/FTaheP99wE">
<img src="https://img.shields.io/discord/378683352946835456?logo=discord" alt="Discord">
</a>
<a href="https://www.youtube.com/@linux-gaming5986">
<img src="https://img.shields.io/youtube/channel/subscribers/UCbI8OJx2D3q-4QKt4LffXTw?style=flat&logo=youtube" alt="YouTube Channel Subscribers">
@ -77,7 +77,7 @@ exit
* **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x**, and **Deepin**:
[portproton_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_amd64/portproton_amd64.deb)
[portproton_1.7-3_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.7-3_amd64/portproton_1.7-3_amd64.deb)
* **Arch Linux** and derivatives (Manjaro, Garuda, etc.):
[AUR](https://aur.archlinux.org/packages/portproton)

@ -2,338 +2,6 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2415### / Date: 07.05.2025 / Download update size: 4 megabytes
* fixed installation of libraries added to the settings when starting the game
###Scripts version 2414### / Date: 07.05.2025 / Download update size: 184 megabytes
* updated WINE_LG to version "10-7"
* removed the fix for entering the game "Genshin Impact" (no longer required)
* updated the installation of GOG Launcher (thanks to Vekt0R)
* added detection of NVIDIA RTX 50XX video cards (thanks to Boria138)
* added a setting for binding the game to the cores of one NUMA node, for example, on Intel Xeon (thanks to Boria138)
* added scripts for installing windows emulators Azahar, bsnes, melonDS (thanks to if984)
* updated scripts for installing Crossout, PPSSPP, RetroArch, ePSXe, FCEUX (thanks to if984)
###Scripts version 2413### / Date: 19.04.2025 / Download update size: 4 megabytes
* fixed the start of the game "World of Sea Battle"
* fixed errors related to libraries "ICU* .DLL"
###Scripts version 2412### / Date: 14.04.2025 / Download update size: 4 megabytes
* temporary fixes of the entrance to the game "Genshin Impact" (auto shutdown and connection to the network before launching the game - does not work in Flatpak)
###Scripts version 2411### / stable / Date: 11.04.2025 / Download update size: 280 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2410### / Date: 11.04.2025 / Download update size: 4 megabytes
* fixed installation/update for "Epic Games Launcher"
* fixed disabling of extra frame for "HoYoPlay" and "Crossout" launchers
###Scripts version 2409### / Date: 08.04.2025 / Download update size: 380 megabytes
* updated WINE_LG to version "10-5"
* updated container library package: libs_v53
- pressure-vessel 0.20250122.0
- steam-runtime-sniper 3.0.20250210.116596
* improved fix for new wine versions by Kron4ek (need to delete and re-download the required wine version)
* additional improvements to the tray function (thanks to Htylol)
* added a unified condition for better detection of installation files instead of Setup.ppdb (thanks to Htylol)
* removed the global settings button from the menu when starting the game
###Scripts version 2408### / Date: 08.04.2025 / Download update size: 4 megabytes
* fixed the work of new versions of Wine from Kron4ek
* fixed settings file for the game "Kingdom Come: Deliverance II"
###Scripts version 2407### / Date: 07.04.2025 / Download update size: 250 megabytes
* PROTON_LG updated to version "9-27"
* updated versions:
- DXVK_GIT "2.6-65" (together with dxvk-nvapi)
- VKD3D_GIT "1.1-4511" (together with vkd3d-shader)
* STEAM_APP_ID from ppdb is used to determine SteamAppId, if it is missing, then steam_appid (and similar) is searched for in the game directory (thanks to alex2844)
* interface translation functions are improved (thanks to Htylol)
* tray operation is fixed for systems using "dash" (thanks to Boria138)
###Scripts version 2406### / stable / Date: 22.03.2025 / Download update size: 4 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2405### / Date: 20.03.2025 / Download update size: 4 megabytes
* USE_GALLIUM_ZINK is disabled by default (breaks some launchers, with the example of "Black Desert Online")
* USE_GALLIUM_NINE returned and added to additional settings
###Scripts version 2404### / Date: 20.03.2025 / Download update size: 4 megabytes
* fixed license display
* fixed the work of the game "Eve Online" (to use correction, use the autoinstalling Eve Online from Portproton)
* updated installer for "World of Sea Battle"
###Scripts version 2403### / stable / Date: 18.03.2025 / Download update size: 200 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2402### / Date: 12.03.2025 / Download update size: 15 megabytes
* minor fix for global settings menu (user.conf) (thanks Htylol)
* updated versions:
* DXVK_GIT "2.5.2-1" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4326" (shared with vkd3d-shader)
###Scripts version 2401### / Date: 07.03.2025 / Download update size: 4 megabytes
* HOTFIX for global settings menu (user.conf) by Htylol
###Scripts version 2400### / Date: 07.03.2025 / Download update size: 4 megabytes
* global settings menu (user.conf) has been brought to a uniform appearance (thanks Htylol)
* dark theme for global settings menu (user.conf) has been fixed (thanks Htylol)
###Scripts version 2399### / Date: 06.03.2025 / Download update size: 4 megabytes
* added default sorting of applications by recent launches (thanks Htylol)
* added script recovery for steam, when adding the shortcut to the steam library again (thanks alex2844)
###Scripts version 2398### / Date: 05.03.2025 / Download update size: 4 megabytes
* fixed the error of extra downloading PROTON_LG from the download menu of other WINE versions
* fixed and improved the functions of PortProton integration with Steam (thanks to alex2844)
###Scripts version 2397### / Date: 05.03.2025 / Download update size: 4 megabytes
* fixed icons for autosearch shortcut after using setup.exe (thanks to Htylol)
* added display of time spent in the game in hours and minutes, can be switched or turned off in global settings (thanks to Htylol)
###Scripts version 2396### / Date: 04.03.2025 / Download update size: 4 megabytes
* fixed exiftool operation in flatpak version of PortProton (thanks to Boria138)
* fixed extra exiftool launches when switching from game menu to main menu and back (thanks to Htylol)
* added "GST_DEBUG=ERROR" for debug mode
###Scripts version 2395### / Date: 28.02.2025 / Download update size: 190 megabytes
* updated WINE_LG to version "10-1"
* fixed MANGOHUD for OpenGL in flatpak version of PortProton (thanks to Htylol and Boria138)
* runtime for flatpak version of PortProton updated to version 24.08 (thanks to Boria138)
* added/updated settings files for games:
- Kingdom Come Delivery (thanks Mels)
- GTA Vice City Nextgen Edition (thanks litcrit)
- Need For Speed - Underground 2 (thanks maximus)
- Need for Speed - Carbon (thanks maximus)
- Need for Speed - Most Wanted (thanks maximus)
###Scripts version 2394### / Date: 27.02.2025 / Download update size: 195 megabytes
* updated plugins_v20:
- updated mangohud to version 0.8.0
- added mf-install for legacy games
* "Gallium Zink" and "Damavand" moved from "3D API" to the "Basic Settings" (thanks htylol)
* "Gallium Zink" is used by default with DXVK (thanks htylol)
###Scripts version 2393### / Date: 27.02.2025 / Download update size: 190 megabytes
* updated plugins_v19:
- updated default prefixes
- fixed create backup prefixes
- added steam ffmpeg libraries
- removed nvngx ang gallium_nine
###Scripts version 2392### / Date: 27.02.2025 / Download update size: 4 megabytes
* automated and removed from manual settings variable: "WINE_LARGE_ADDRESS_AWARE"
* GUI_DISABLED_CS disables all loading logo (with the exception of prefix update)
* fixed auto-installation "Guild Wars 2"
###Scripts version 2391### / Date: 26.02.2025 / Download update size: 4 megabytes
* returned and fixed the LSBash function optimizing the launch of PortProton (thanks htylol)
* fixed LAUNCH_PARAMETERS with backslashes (thanks Boria138)
* remove all functionality of legacy 3D API: "Gallium Nine"
* deleted auto-installation Stalker Online (there is no support from anticheat from the developers of the game)
###Scripts version 2390### / Date: 23.02.2025 / Download update size: 4 megabytes
* added information that you can not use FAKE_DLSS_3 in multiplayer games
* added individual dxvk.conf file using FAKE_DLSS_3 to replace the video card in games on Nvidia RTX 4090
* added the ability to download "Cachyos Proton" (thanks Boria138)
* improved PortProton integration functions with Steam (thanks Alex2844):
- added the ability to use SteamAppId instead of the name of the game that will be added to Steam. Thus, Steam will tighten the layouts of gamepads for games. For USE_STEAMAPPID_AS_NAME (addNonSteamGame) variable is used
- added check "StateFlags" and the presence of a section "SharedDepots" in the manifest (listInstalledSteamGames)
- added caching of the list of applications received from the Steam server
###Scripts version 2389### / Date: 20.02.2025 / Download update size: 4 megabytes
* added setting USE_FAKE_DLSS_3 to apply Framegen mods to games by replacing DLSS DLL with FSR3 DLL
###Scripts version 2388### / stable / Date: 04.02.2025 / Download update size: 10 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2387### / Date: 04.02.2025 / Download update size: 10 megabytes
* updated versions:
* DXVK_GIT "2.5.3-31" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4367" (shared with vkd3d-shader)
* added the ability to replace WINEDEBUG variable arguments in user.conf or .ppdb settings files.
* improved icon creation functions (thanks to Htylol)
* added Steam Play support for games supported via PortProton and the selected Proton version on Steam (thanks to alex2844)
* fixed windows operation, paths in game launch arguments (thanks to Boria138)
* fixed errors with empty "dist" directory
###Scripts version 2386### / Date: 09.01.2025 / Download update size: 4 megabytes
* corrected permissions when creating desktop files (thanks to Boria138)
* fixed the function of rolling back scripts from the archive if there is no scripts_backup directory (thanks to Boria138)
* added the ability to remove a game from the list in the Steam library using the functionality of changing the shortcut in PortProton (thanks to alex2844)
* when adding a game to the steam library, a check for the availability of the steamgriddb site has been added (thanks alex2844)
* added auto-installation of games (thanks to minergenon):
* Last Chaos
* Fractured Online
###Scripts version 2385### / stable / Date: 29.12.2024 / Download update size: 195 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2384### / Date: 29.12.2024 / Download update size: 12 megabytes
* improved launch of shortcuts for games from Epic Games Launcher (thanks for the help Htylol)
* updated versions:
* DXVK_GIT "2.5.2-1" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4326" (shared with vkd3d-shader)
* ATTENTION! Due to problems with access to the steamgriddb website, downloading of covers is temporarily disabled when creating shortcuts for the Steam library
###Scripts version 2383### / Date: 22.12.2024 / Download update size: 4 megabytes
* added automatic creation of shortcuts for games from Epic Games Launcher (thanks alex2844)
###Scripts version 2382### / Date: 22.12.2024 / Download update size: 270 megabytes
* updated versions:
* DXVK_GIT "2.5.1-35" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4325" (shared with vkd3d-shader)
* fixed icon error when there are symbols in the example as in osu!.exe (thanks to Htylol and if984)
* fixed error in providing an icon from .bat for .exe file when changing the shortcut (thanks to Htylol)
* fix reinstalling PortProton using --reinstall argument (thanks Boria138)
* improved video card checking function (thanks to Htylol)
* Vulkan driver selection has been returned for AMD video cards (thanks to Boria138)
###Scripts version 2381### / Date: 01.12.2024 / Download update size: 180 megabytes
* updated plugins v18 package
* gallium nine v0.10
* removed unnecessary libraries
* removed white frame when loading PortProton in SteamDeck game mode
* updated cover download scripts for Steam (thanks alex2844)
* added the ability to launch windows shortcuts (thanks alex2844)
* fixed exit from PortProton when using GUI_DISABLED_CS (thanks zorn-v)
* added tooltips for launchers and emulators in the AUTO INSTALLATION tab (thanks if984)
* fixed the login window in GOG on NVIDIA video cards (thanks to Boria138)
###Scripts version 2380### / stable / Date: 17.11.2024 / Download update size: 4 megabytes
* fixed unpacking of prefixes from backups (thanks to Htylol)
###Scripts version 2379### / stable / Date: 15.11.2024 / Download update size: 4 megabytes
* HOTFIX - fix for problems related to the lack of sound (pulse by default)
###Scripts version 2378### / stable / Date: 15.11.2024 / Download update size: 4 megabytes
* minor adjustments to the stable version of PortProton scripts
###Scripts version 2377### / stable / Date: 15.11.2024 / Download update size: 220 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2376### / Date: 14.11.2024 / Download update size: 4 megabytes
* fixed function for changing global settings (thanks to Htylol)
###Scripts version 2375### / Date: 14.11.2024 / Download update size: 4 megabytes
* HOTFIX - fixed long launch on Alt p10 after updating scripts 2371 (thanks to Htylol)
###Scripts version 2374### / Date: 12.11.2024 / Download update size: 4 megabytes
* added support for DLSS 3 for NVIDIA RTX 40XX
* fixed gamescope (thanks to Htylol)
* general optimization of scripts (thanks to Htylol)
###Scripts version 2373### / Date: 10.11.2024 / Download update size: 215 megabytes
* updated PROTON_LG to version "9-19"
* updated versions:
* DXVK_GIT "2.4.1-446" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4271" (shared with vkd3d-shader)
* fixed the work of the Black Desert Online game with the latest versions of dxvk and vkd3d
###Scripts version 2372### / Date: 09.11.2024 / Download update size: 4 megabytes
* many script optimizations (thanks to Htylol)
*reduced recommended scaling
* added/updated settings files for games:
* NieR Automata (thanks to AlbiionDragon)
* GTA 4 (thanks to eljeyna and PORTWAINE)
* Mortal Kombat XL (thanks Mels)
* Red Dead Redemption (thanks SDR)
* fixed Plarium Play installation (thanks to A_V_Ilin)
###Scripts version 2371### / Date: 08.11.2024 / Download update size: 4 megabytes
* added auto-detection of application scaling, with the ability to change it in the global PP settings (thanks to Htylol)
* FUTEX2 is disabled by default (breaks some games)
* added auto-installation of the Saturn game (thanks to Dervart)
* added the ability to select a dark/light theme in the global PP settings (thanks to Htylol)
* significantly improved functions (thanks to Htylol):
* registry editor
* determining the extension of the launched file
* check desktop files
* gamescope settings
* added cursor scale setting for gamescope (thanks to Htylol)
###Scripts version 2370### / Date: 01.11.2024 / Download update size: 215 megabytes
* updated PROTON_LG to version "9-18"
* updated versions:
* DXVK_GIT "2.4.1-393" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4240" (shared with vkd3d-shader)
* improved function of adding shortcuts to steam (thanks alex2844)
* updated --help argument for CLI and added translations (thanks to Htylol)
* added the ability to change interface scaling in running applications (thanks to Htylol)
###Scripts version 2369### / Date: 31.10.2024 / Download update size: 4 megabytes
* added automatic installation of games (thanks to Chal55rus):
* Chicken Invaders Universe
* Eldevin
* The World of Nifty Craft
* Toribash
* improved performance of the time spent in the game counter (thanks to Htylol)
* fixed prefix backups for systems with SELinux (thanks to Htylol and Alek)
* updated CLI and added arguments: --launch, --edit-db (thanks to Htylol)
* many other improvements and script optimizations
###Scripts version 2368### / Date: 27.10.2024 / Download update size: 4 megabytes
* added automatic installation of games (thanks to Chal55rus):
* Goose Goose Duck
* Miniworld
* Toontown Rewritten
* added disabling sleep mode during the game if gamemode is not used (thanks to Boria138)
* fixes and optimization of the interface in the Prefix Manager (thanks to Htylol)
* added the ability to change all shortcuts from the PortProton interface (thanks to Htylol)
* fixed reset of the time spent in the game counter when moving the game to another directory, or deleting the shortcut (thanks to Htylol)
* improved function for downloading covers when adding a game to the STEAM library (thanks to Boria138)
###Scripts version 2367### / Date: 25.10.2024 / Download update size: 4 megabytes
* fixed the use of gamemode in the native version of PortProton
* continued improvement of the functionality for creating labels and comments (thanks to Htylol)
* added auto-installation "Elsword" (thanks Chal55rus)
###Scripts version 2366### / Date: 24.10.2024 / Download update size: 4 megabytes
* auto-installation of "CatsLauncher" was removed due to the move of the game "Front Edge" to "vkPlay"
* updated version of the tray menu (thanks to Htylol)
* improved title detection functionality for creating shortcuts (thanks to Htylol)
* updated Spanish language (thanks Boria138)
* improved and optimized cover download function for Steam (thanks to Boria138)
###Scripts version 2365### / Date: 23.10.2024 / Download update size: 4 megabytes
* added translations for using system wine and downloading other versions of wine (thanks to Htylol)
* improved title detection functionality for creating shortcuts (thanks to Htylol)
* added check for duplicate shortcuts (thanks to Htylol)
* added ZINK support for NVK (thanks to Htylol)
* added automatic installation of games (thanks to Chal55rus):
* Broken Ranks
* DC Universe Online
* The Lord of the Rings Online
* fixed link in the text when creating a log
###Scripts version 2364### / Date: 19.10.2024 / Download update size: 215 megabytes
* updated PROTON_LG to version "9-16"
* updated versions:
* DXVK_GIT "2.4.1-194" (shared with dxvk-nvapi)
* VKD3D_GIT "1.1-4240" (shared with vkd3d-shader)
* added auto-installation "Age of Empires Online" (thanks to Chal55rus)
* added disabling gamemode if ananicy is used (thanks Boria138)
* adopted improvements from Htylol (thanks):
* items containing: “disabled/enabled” have been translated in all settings
* updated version of "YAD" - graphical interface
* fixed winecmd in flatpak
* other improvements and script optimizations
* added PW_MESA_VK_WSI_PRESENT_MODE variable to the main settings (forced vertical sync on and off)
* updated list of OpenGL versions for MESA_GL_VERSION_OVERRIDE setting
* ESYNC is enabled with FSYNC by default, provided that "ulimit -Hn" is greater than or equal to "524288"
###Scripts version 2363### / Date: 14.10.2024 / Download update size: 4 megabytes
* adopted improvements from Htylol (many thanks):
* updated version of the tray menu
* added a counter for time spent in the game (can be enabled in global settings)
* frequently launched games are moved to the top of the games list (can be disabled in global settings)
* other fixes and interface optimizations
* translations updated
* added automatic installation of games (thanks to Chal55rus):
* Exotanks
* Tanki Online
* Albion Online
###Scripts version 2362### / Date: 04.10.2024 / Download update size: 4 megabytes
* added animation for loading games in game mode on the Steam Deck
* added auto-generation of the auto-installation tab (when adding new applications, you no longer need to change the start.sh script)

@ -2,346 +2,12 @@
-----------------------------------------
История изменений:
###Scripts version 2415### / Дата: 07.05.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена установка библиотек добавленных в настройки при запуске игры
###Scripts version 2414### / Дата: 07.05.2025 / Размер скачиваемого обновления: 184 мегабайта
* обновлен WINE_LG до версии "10-7"
* удален фикс входа в игру "Genshin Impact" (более не требуется)
* обновлена установка GOG Launcher (спасибо Vekt0R)
* добавлено определение видеокарт NVIDIA RTX 50XX (спасибо Boria138)
* добавлена настройка привязки игры к ядрам одного NUMA-узла например на Intel Xeon (спасибо Boria138)
* добавлены скрипты для установки windows эмуляторов Azahar, bsnes, melonDS (спасибо if984)
* обновлены скрипты для установки Crossout, PPSSPP, RetroArch, ePSXe, FCEUX (спасибо if984)
###Scripts version 2413### / Дата: 19.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлен запуск игры "World of Sea Battle"
* исправлены ошибки связанные с библиотеками "icu*.dll"
###Scripts version 2412### / Дата: 14.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* временный фикс входа в игру "Genshin Impact" (автоотключение и подключение к сети перед запуском игры - не работает во flatpak)
###Scripts version 2411### / stable / Дата: 11.04.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2410### / Дата: 11.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена установка/обновление "Epic Games Launcher"
* исправлено отключение лишней рамки для лончеров "HoYoPlay" и "Crossout"
###Scripts version 2409### / Дата: 08.04.2025 / Размер скачиваемого обновления: 380 мегабайт
* обновлен WINE_LG до версии "10-5"
* обновлен пакет библиотек контейнера: libs_v53
- pressure-vessel 0.20250122.0
- steam-runtime-sniper 3.0.20250210.116596
* доработано исправление работы новых версий wine от Kron4ek (необходимо удалить и заново перекачать нужную версию wine)
* дополнительные улучшения функции трея (спасибо Htylol)
* за место Setup.ppdb добавлено унифицированное условие для лучшего определения установочных файлов (спасибо Htylol)
* удалена кнопка глобальных настроек из меню при запуске игры
###Scripts version 2408### / Дата: 08.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена работа новых версий wine от Kron4ek
* исправлен файл настроек для игры "Kingdom Come: Deliverance II"
###Scripts version 2407### / Дата: 07.04.2025 / Размер скачиваемого обновления: 250 мегабайт
* обновлен PROTON_LG до версии "9-27"
* обновлены версии:
- DXVK_GIT "2.6-65" (совместно с dxvk-nvapi)
- VKD3D_GIT "1.1-4511" (совместно vkd3d-shader)
* для определения SteamAppId используется STEAM_APP_ID из ppdb, если отсутствует - то ищется steam_appid (и подобные) в директории с игрой (спасибо alex2844)
* улучшены функции перевода интерфейса (спасибо Htylol)
* исправлена работа трея для систем использующих "dash" (спасибо Boria138)
###Scripts version 2406### / stable / Дата: 22.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2405### / Дата: 20.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* USE_GALLIUM_ZINK отключен по умолчанию (ломает некоторые лончеры, на примере "Black Desert Online")
* USE_GALLIUM_NINE возвращен и добавлен в дополнительные настройки
###Scripts version 2404### / Дата: 20.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлено отображение лицензии
* исправлена работа игры "EVE Online" (для применения исправления воспользуйтесь автоустановкой лончера EVE Online из PortProton)
* обновлен установщик для "World of Sea Battle"
###Scripts version 2403### / stable / Дата: 18.03.2025 / Размер скачиваемого обновления: 200 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2402### / Дата: 13.03.2025 / Размер скачиваемого обновления: 15 мегабайт
* исправление меню глобальных настроек (user.conf) (спасибо Htylol)
* обновлены версии:
- DXVK_GIT "2.5.3-299" (совместно с dxvk-nvapi)
- VKD3D_GIT "1.1-4478" (совместно vkd3d-shader)
###Scripts version 2401### / Дата: 07.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* HOTFIX: переключения веток DEVEL - STABLE от Htylol
###Scripts version 2400### / Дата: 07.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* меню глобальных настроек (user.conf) приведёно к однородному виду (спасибо Htylol)
* исправлена работа тёмной темы для меню глобальных настроек (user.conf) (спасибо Htylol)
###Scripts version 2399### / Дата: 06.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* добавлена (и используется по умолчанию) сортировка приложений по последним запускам (спасибо Htylol)
* добавлено восстановление скриптов для steam, при повторном добавлении ярлыка в библиотеку steam (спасибо alex2844)
###Scripts version 2398### / Дата: 05.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена ошибка лишнего скачивания PROTON_LG из меню скачивания других версий WINE
* исправлены и улучшены функции интеграции PortProton со Steam (спасибо alex2844)
###Scripts version 2397### / Дата: 05.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлены иконки для автопоиска ярлыка после использования setup.exe (спасибо Htylol)
* добавлено отображение проведенного времени в игре в часах и минутах, можно переключить, или выключить в глобальных настройках (спасибо Htylol)
###Scripts version 2396### / Дата: 04.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена работа exiftool во flatpak версии PortProton (спасибо Boria138)
* исправлены лишние запуски exiftool при переходе из меню игры в главное меню и обратно (спасибо Htylol)
* добавлен "GST_DEBUG=ERROR" для режима создания лога
###Scripts version 2395### / Дата: 28.02.2025 / Размер скачиваемого обновления: 190 мегабайт
* обновлен WINE_LG до версии "10-1"
* исправлена работа MANGOHUD для OpenGL во flatpak версии PortProton (спасибо Htylol и Boria138)
* контейнер Flatpak версии PortProton обновлён до версии 24.08 (спасибо Boria138)
* удалена установка "EA App"
* добавлены/обновлены файлы настроек для игр:
- Kingdom Come Deliverance (спасибо Mels)
- GTA Vice City Nextgen Edition (спасибо licrit)
- Need For Speed Underground 2 (спасибо maximus)
- Need for Speed Carbon (спасибо maximus)
- Need for Speed - Most Wanted (спасибо maximus)
###Scripts version 2394### / Дата: 27.02.2025 / Размер скачиваемого обновления: 195 мегабайт
* обновлен пакет plugins_v20:
- обновлен mangohud до версии 0.8.0 (спасибо Boria138)
- добавлены библиотеки mf-install
* управление включением "Gallium Zink" и "Damavand" перенесено из "3D API" в основные настройки (спасибо Htylol)
* "Gallium Zink" используется по умолчанию совместно с dxvk (спасибо Htylol)
###Scripts version 2393### / Дата: 27.02.2025 / Размер скачиваемого обновления: 190 мегабайт
* обновлен пакет plugins_v19:
- исправлено создание резервных копий префикса
- обновлен шаблон префикса DEFAULT
- добавлены библиотеки ffmpeg из STEAM
- удалены библиотеки nvngx и gallium_nine
###Scripts version 2392### / Дата: 27.02.2025 / Размер скачиваемого обновления: 4 мегабайта
* автоматизированна и удалена из ручной настройки переменная: "WINE_LARGE_ADDRESS_AWARE"
* GUI_DISABLED_CS отключает все лого загрузки игры/программы (за исключением обновления префикса)
* исправлена установка "Guild Wars 2"
###Scripts version 2391### / Дата: 26.02.2025 / Размер скачиваемого обновления: 4 мегабайта
* возвращена и исправлена функция lsbash оптимизирующая запуск PortProton (спасибо Htylol)
* исправлена работа параметров запуска содержащие обратные слеши (спасибо Boria138)
* удален весь функционал связанный с устаревшим выбором 3D Api: "gallium nine"
* удалена автоустановка Stalker Online (нет поддержки античита со стороны разработчиков игры)
###Scripts version 2390### / Дата: 23.02.2025 / Размер скачиваемого обновления: 4 мегабайта
* добавлена информация о том что нельзя использовать FAKE_DLSS_3 в мультиплеерных играх
* добавлен индивидуальный dxvk.conf файл при использовании FAKE_DLSS_3 для подмены определения видеокарты в играх на NVIDIA RTX 4090
* добавлена возможность скачивания "CachyOS Proton" (спасибо Boria138)
* улучшены функции интеграции PortProton со Steam (спасибо alex2844):
- добавлена возможность использовать "SteamAppId" вместо названия игры которое будет добавлено в стим. Тем самым стим будет подтягивать раскладки геймпадов для игр. Для активации используется переменная USE_STEAMAPPID_AS_NAME (addNonSteamGame)
- добавлена проверка "StateFlags" и наличие секции "SharedDepots" в манифесте (listInstalledSteamGames)
- добавлено кеширование списка приложений получаемых с сервера steam. Так же поиск по этому списку теперь регистронезависимый (getSteamId)
###Scripts version 2389### / Дата: 20.02.2025 / Размер скачиваемого обновления: 4 мегабайта
* добавлена настройка USE_FAKE_DLSS_3 которая включает подмену DLSS 3 (с возможностью генерации кадров) в FSR3
###Scripts version 2388### / stable / Дата: 04.02.2025 / Размер скачиваемого обновления: 10 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2387### / Дата: 04.02.2025 / Размер скачиваемого обновления: 10 мегабайт
* обновлены версии:
* DXVK_GIT "2.5.3-31" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4367" (совместно vkd3d-shader)
* добавлена возможность замещения аргументов переменной WINEDEBUG в user.conf или .ppdb файлах настроек
* улучшение функций создания иконок (спасибо Htylol)
* добавлена поддержка Steam Play для игр установленных с помощью PortProton и когда выбрана версия proton в steam (спасибо alex2844)
* исправлена работа windows путей в аргументах запуска к игре (спасибо Boria138)
* исправлены ошибки при пустом каталоге "dist"
###Scripts version 2386### / Дата: 09.01.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправление прав при создании desktop файлов (спасибо Boria138)
* исправлена функция отката скриптов из архива, если нет каталога scripts_backup (спасибо Boria138)
* добавлена возможность удаления игры из списка в библиотеке Steam с помощью функционала изменения ярлыка в PortProton (спасибо alex2844)
* при добавлении игры в библиотеку steam добавлена проверка на доступность сайта steamgriddb (спасибо alex2844)
* добавлены автоустановки игр (спасибо minergenon):
* Last Chaos
* Fractured Online
###Scripts version 2385### / stable / Дата: 29.12.2024 / Размер скачиваемого обновления: 195 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2384### / Дата: 29.12.2024 / Размер скачиваемого обновления: 12 мегабайт
* доработан запуск ярлыков для игр из Epic Games Launcher (спасибо за помощь Htylol)
* обновлены версии:
* DXVK_GIT "2.5.2-1" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4326" (совместно vkd3d-shader)
* ВНИМАНИЕ! Из за проблем с доступом к сайту steamgriddb, временно отключено скачивание обложек при создании ярлыков для библиотеки Steam
###Scripts version 2383### / Дата: 22.12.2024 / Размер скачиваемого обновления: 4 мегабайта
* добавлено автоматическое создание ярлыков для игр из Epic Games Launcher (спасибо alex2844)
###Scripts version 2382### / Дата: 22.12.2024 / Размер скачиваемого обновления: 270 мегабайт
* обновлены версии:
* DXVK_GIT "2.5.1-35" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4325" (совместно vkd3d-shader)
* исправлена ошибка иконки когда есть символы на примере как в osu!.exe (спасибо Htylol и if984)
* исправлена ошибка предоставлении иконки от .bat для .exe файла при изменении ярлыка (спасибо Htylol)
* исправление переустановки PortProton с помощью аргумента --reinstall (спасибо Boria138)
* улучшена фкнуция проверки видеокарты (спасибо Htylol)
* для видеокарт AMD возвращен выбор драйвера Vulkan (спасибо Boria138)
###Scripts version 2381### / Дата: 01.12.2024 / Размер скачиваемого обновления: 180 мегабайт
* обновлен пакет plugins v18
* gallium nine v0.10
* удалены лишние библиотеки
* убрана белая рамка при загрузке PortProton в игровом режиме SteamDeck
* обновлены скрипты скачивания обложек для Steam (спасибо alex2844)
* добавлена возможность запуска windows ярлыков (спасибо alex2844)
* исправлен выход из PortProton при использовании GUI_DISABLED_CS (спасибо zorn-v)
* добавлены всплывающие подсказки для лаунчеров и эмуляторов во вкладке АВТОУСТАНОВКА (спасибо if984)
* исправлено окно авторизации в GOG на видеокартах NVIDIA (спасибо Boria138)
###Scripts version 2380### / stable / Дата: 17.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* исправлена распаковка префиксов из резервных копий (спасибо Htylol)
###Scripts version 2379### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* HOTFIX - исправление проблем связанных с отсутствием звука
###Scripts version 2378### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* небольшие корректировки стабильной версии скриптов PortProton
###Scripts version 2377### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 220 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2376### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* исправлена функция изменения глобальных настроек
###Scripts version 2375### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* HOTFIX - исправлен долгий запуск на Alt p10 после обновления скриптов 2371 (спасибо Htylol)
###Scripts version 2374### / Дата: 12.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* добавлена поддержка DLSS 3 для видеокарт NVIDIA RTX 40XX
* исправлена работа gamescope (спасибо Htylol)
* общая оптимизация скриптов (спасибо Htylol)
###Scripts version 2373### / Дата: 10.11.2024 / Размер скачиваемого обновления: 215 мегабайта
* обновлен PROTON_LG до версии "9-19"
* обновлены версии:
* DXVK_GIT "2.4.1-446" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4271" (совместно vkd3d-shader)
* исправлена работа игры Black Desert Online с новейшими версиями dxvk и vkd3d
###Scripts version 2372### / Дата: 09.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* множество оптимизаций скриптов (спасибо Htylol)
* уменьшено рекомендуемое масштабирование
* добавлены/обновлены файлы настроек для игр:
* NieR Automata (спасибо AlbiionDragon)
* GTA 4 (спасибо eljeyna и PORTWAINE)
* Mortal Kombat XL (спасибо Мэлс)
* Red Dead Redemption (спасибо SDR)
* исправлена установка Plarium Play (спасибо A_V_Ilin)
###Scripts version 2371### / Дата: 08.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* добавлено автоопределение масштабирования приложений, с возможностью изменения в глобальных настройках PP (спасибо Htylol)
* FUTEX2 отключен по умолчанию (ломает работу некоторых игр)
* добавлена автоустановка игры Saturn (спасибо Dervart)
* добавлена возможность выбора темной/светлой темы в глобальных настройках PP (спасибо Htylol)
* значительно улучшены функции (спасибо Htylol):
* редактор реестра
* определение расширения запускаемого файла
* проверки ярлыков
* настройки gamescope
* добавлена настройка масштаба курсора для gamescope (спасибо Htylol)
###Scripts version 2370### / Дата: 01.11.2024 / Размер скачиваемого обновления: 215 мегабайт
* обновлен PROTON_LG до версии "9-18"
* обновлены версии:
* DXVK_GIT "2.4.1-393" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4240" (совместно vkd3d-shader)
* улучшена функция добавления ярлыков в steam (спасибо alex2844)
* обновлен аргумент --help для CLI и добавлены переводы (спасибо Htylol)
* добавлена возможность изменять масштабирование инетрфейса в запущенных приложениях (спасибо Htylol)
###Scripts version 2369### / Дата: 31.10.2024 / Размер скачиваемого обновления: 4 мегабайта
* добавлены автоустановки игр (спасибо Chal55rus):
* Chicken Invaders Universe
* Eldevin
* The World of Nifty Craft
* Toribash
* улучшена работа счетчика времени проведенного в игре (спасибо Htylol)
* исправлены бэкапы префиксов для систем с SELinux (спасибо Htylol и Alek)
* обновлен CLI и добавлены аргументы: --launch, --edit-db (спасибо Htylol)
* множество других улучшений и оптимизаций скриптов
###Scripts version 2368### / Дата: 27.10.2024 / Размер скачиваемого обновления: 4 мегабайта
* добавлены автоустановки игр (спасибо Chal55rus):
* Goose Goose Duck
* Miniworld
* Toontown Rewritten
* добавлено отключение спящего режима в процессе игры, если не используется gamemode (спасибо Boria138)
* исправления и оптимизации работы интерфейса в Менеджере префиксов (спасибо Htylol)
* добавлена возможность изменения всех ярлыков из интерфейса PortProton (спасибо Htylol)
* исправлен сброс счетчика времени проведенного в игре при перемещении игры в другой каталог, или удалёния ярлыка (спасибо Htylol)
* улучшена функция скачивания обложек при добавлении игры в библиотеку STEAM (спасибо Boria138)
###Scripts version 2367### / Дата: 25.10.2024 / Размер скачиваемого обновления: 4 мегабайта
* исправлено использование gamemode в нативной версии PortProton
* продолжено улучшение функционала создания ярлыков и комментариев (спасибо Htylol)
* добавлена автоустановка "Elsword" (спасибо Chal55rus)
###Scripts version 2366### / Дата: 24.10.2024 / Размер скачиваемого обновления: 4 мегабайта
* удалена автоустановка "CatsLauncher" по причине переезда игры "Передний край" в "vkPlay"
* обновлена версия меню трея (спасибо Htylol)
* улучшен функционал создания ярлыков и комментариев (спасибо Htylol)
* обновлен испанский язык (спасибо Boria138)
* улучшена и оптимизирована функция скачивания обложек для Steam (спасибо Boria138)
* другие небольшие улучшения интерфейса настроек (спасибо Htylol)
###Scripts version 2365### / Дата: 23.10.2024 / Размер скачиваемого обновления: 4 мегабайта
* добавлены переводы для использования системного wine и скачивания других версий wine (спасибо Htylol)
* улучшен функционал определения названия для создания ярлыков (спасибо Htylol)
* добавлена проверка на дубликаты ярлыков (спасибо Htylol)
* добавлена поддержка ZINK для NVK (спасибо Htylol)
* добавлена автоустановка игр (спасибо Chal55rus):
* Broken Ranks
* DC Universe Online
* The Lord of the Rings Online
* исправлена ссылка в тексте при создании лога
###Scripts version 2364### / Дата: 19.10.2024 / Размер скачиваемого обновления: 215 мегабайт
* обновлен PROTON_LG до версии "9-16"
* обновлены версии:
* DXVK_GIT "2.4.1-194" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4240" (совместно vkd3d-shader)
* добавлена автоустановка "Age of Empires Online" (спасибо Chal55rus)
* добавлено отключение gamemode если используеться ananicy (спасибо Boria138)
* приняты улучшения от Htylol (спасибо):
* переведены во всех настроках пункты содержащие: "выключено/включено"
* обновлена версия "YAD" - графического интерфейса
* исправлен winecmd во flatpak
* другие улучшения и оптимизации скриптов
* в основные настройки добавлена переменная PW_MESA_VK_WSI_PRESENT_MODE (принудительное включение и выключение вертикальной синхронизации)
* обновлен список версий OpenGL для настройки MESA_GL_VERSION_OVERRIDE
* ESYNC включен совместно с FSYNC по умолчанию, при условии что "ulimit -Hn" больше, или равно "524288"
###Scripts version 2363### / Дата: 14.10.2024 / Размер скачиваемого обновления: 4 мегабайт
* приняты улучшения от Htylol (большое спасибо):
* обновлена версия меню трея
* добавлен счетчик времени проведенного в игре (можно включить в глобальных настройках)
* часто запускаемые игры передвигаются в начало списка игр (можно отключить в глобальных настройках)
* другие исправления и оптимизации работы интерфейса
* обновлены переводы
* добавлена автоустановка игр (спасибо Chal55rus):
* Exotanks
* Tanki Online
* Albion Online
###Scripts version 2362### / Дата: 04.10.2024 / Размер скачиваемого обновления: 4 мегабайт
* добавлена анимация закрузки игр в игровом режиме на Steam Deck
* добавлена автогенерация вкладки автоустановок (при добавлении новых приложений, более не требуется изменять скрипт start.sh)
* добавлена минимальная проверка корректности написания скриптов для автоустановок приложений
* обновлены все скрипты автоустановок (спасибо Htylol)
* обновлена версия "YAD" - графического интерфейса (спасибо Htylol)
* оюновлена версия "YAD" - графического интерфейса (спасибо Htylol)
###Scripts version 2361### / Дата: 02.10.2024 / Размер скачиваемого обновления: 4 мегабайт
* добавлена автоустановка "Rise of Flight" (спасибо Chal55rus)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

BIN
data_from_portwine/img/gui/dolphin.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

BIN
data_from_portwine/img/gui/lgc.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

@ -7,7 +7,7 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-21 21:55+0500\n"
"POT-Creation-Date: 2024-09-24 13:23+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,47 +26,12 @@ msgstr ""
msgid "Unpack is DONE for prefix:"
msgstr ""
msgid "use"
msgstr ""
msgid "Forces all scripts to be updated to a working state\n"
" (helps if "
"PortProton is not working)"
msgstr ""
msgid "Reinstalls PortProton and resets all settings to default"
msgstr ""
msgid "Creates a files with translations .pot and .po"
msgstr ""
msgid "Debug scripts for PortProton\n"
" (saved log in"
msgstr ""
msgid "Check update scripts for PortProton"
msgstr ""
msgid "Launches the application immediately, requires the path to the .exe "
"file"
msgstr ""
msgid "After the variable, the path to the .exe file is required and then "
"the variables.\n"
" (List their "
"variables and values for example PW_MANGOHUD=1 PW_VKBASALT=0, etc.)"
msgstr ""
msgid "--autoinstall and the name of what needs to be installed is given in "
"the list below:"
msgstr ""
msgid "USE_SYSTEM_WINE"
msgstr ""
msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr ""
msgid "WineD3D Vulkan (Damavand experimental)"
msgstr ""
msgid "Legacy DXVK (Vulkan v1.1)"
msgstr ""
@ -76,7 +41,13 @@ msgstr ""
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgstr ""
msgid "GET-OTHER-WINE"
msgid "Gallium Nine (DirectX 9 for MESA)"
msgstr ""
msgid "Gallium Zink (OpenGL to Vulkan)"
msgstr ""
msgid "Launching"
msgstr ""
msgid "CREATE SHORTCUT"
@ -85,13 +56,10 @@ msgstr ""
msgid "Create shortcut for select file..."
msgstr ""
msgid "CHANGE SHORTCUT"
msgid "DELETE SHORTCUT"
msgstr ""
msgid "Change shortcut for select file..."
msgstr ""
msgid "Launching"
msgid "Delete shortcut for select file..."
msgstr ""
msgid "Base settings"
@ -100,6 +68,12 @@ msgstr ""
msgid "Edit database file for"
msgstr ""
msgid "Global settings"
msgstr ""
msgid "Settings for user.conf"
msgstr ""
msgid "Open directory"
msgstr ""
@ -220,6 +194,49 @@ msgstr ""
msgid "Run wine regedit"
msgstr ""
msgid "Emulator for Nintendo game consoles with high compatibility"
msgstr ""
msgid "Multi-arcade emulator that allows you to play old arcade games"
msgstr ""
msgid "Multi-platform frontend for emulators with extensive settings"
msgstr ""
msgid "Emulator for the PlayStation Portable (PSP) game console"
msgstr ""
msgid "Emulator for the Nintendo 3DS game console"
msgstr ""
msgid "Emulator for the Wii U game console"
msgstr ""
msgid "Emulator for the PlayStation 1 game console with high compatibility"
msgstr ""
msgid "Emulator for the Nintendo 64 game console"
msgstr ""
msgid "Emulator for the Game Boy Advance game console"
msgstr ""
msgid "Emulator for the Sega Saturn game console"
msgstr ""
msgid "Emulator for the Xbox 360 game console"
msgstr ""
msgid "Emulator for the Nintendo Entertainment System (NES or Dendy) game "
"console"
msgstr ""
msgid "Emulator for the Xbox game console"
msgstr ""
msgid "Emulator for the Sega Dreamcast game console"
msgstr ""
msgid "AUTOINSTALLS"
msgstr ""
@ -250,45 +267,6 @@ msgstr ""
msgid "Downloading"
msgstr ""
msgid "day"
msgstr ""
msgid "days"
msgstr ""
msgid "hour"
msgstr ""
msgid "and"
msgstr ""
msgid "hours"
msgstr ""
msgid "less than a minute"
msgstr ""
msgid "minute"
msgstr ""
msgid "minutes"
msgstr ""
msgid "Time spent"
msgstr ""
msgid "Disabled"
msgstr ""
msgid "Enable"
msgstr ""
msgid "Disable"
msgstr ""
msgid "Enabled"
msgstr ""
msgid "Do you really want to reinstall PortProton?\\nFor this, an internet "
"connection will be required."
msgstr ""
@ -304,6 +282,9 @@ msgid "More than one DB file found for the application being launched."
"next run.\\n"
msgstr ""
msgid "UPDATING NOW"
msgstr ""
msgid "Update scripts:"
msgstr ""
@ -313,9 +294,6 @@ msgstr ""
msgid "REMIND ME LATER"
msgstr ""
msgid "UPDATING NOW"
msgstr ""
msgid "EXIT"
msgstr ""
@ -341,9 +319,6 @@ msgstr ""
msgid "Do you want to installing recommended libraries in the new prefix:"
msgstr ""
msgid "Launched"
msgstr ""
msgid "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the "
"missing package: <b>d3dadapter9</b>"
msgstr ""
@ -403,31 +378,16 @@ msgstr ""
msgid "WINE MANAGER"
msgstr ""
msgid "Using FPS and system load monitoring (Turns on and off by the key "
"combination - right Shift + F12)"
msgstr ""
msgid "Forced use of MANGOHUD system settings (GOverlay, etc.)"
msgstr ""
msgid "Forced use of VKBASALT system settings (GOverlay, etc.)"
msgstr ""
msgid "Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, "
"DirectDraw 1-7, Direct3D 2-9) on all 3D API. For WineD3D OpenGL need "
"use WineLG (For Gallium Nine and Zink use too)"
msgstr ""
msgid "<b>Super + F :</b> Toggle fullscreen\n"
"<b>Super + N :</b> Toggle nearest neighbour filtering\n"
"<b>Super + U :</b> Toggle FSR upscaling\n"
"<b>Super + Y :</b> Toggle NIS upscaling\n"
"<b>Super + I :</b> Increase FSR sharpness by 1\n"
"<b>Super + O :</b> Decrease FSR sharpness by 1\n"
"<b>Super + S :</b> Take screenshot (currently goes to /tmp/"
"gamescope_DATE.png)\n"
"<b>Super + G :</b> Toggle keyboard grab\n"
"<b>Super + C :</b> Update clipboard"
msgid "Force use DirectInput protocol instead of XInput"
msgstr ""
msgid "Enable experemental native Wayland support (need special wine build "
"to work)"
msgstr ""
msgid "Do not use in-process synchronization primitives based on eventfd. "
@ -442,42 +402,90 @@ msgstr ""
msgid "Enable vkd3d support - Ray Tracing"
msgstr ""
msgid "Required for video playback in some games so that it is not "
"distorted (usually colored pink)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr ""
msgid "Enable DLSS on supported NVIDIA graphics cards"
msgstr ""
msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
msgstr ""
msgid "Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based "
"on Decky-Framegen) Do not use in multiplayer games"
msgstr ""
msgid "Works while using any version of ProtonGE in full screen mode at a "
"resolution below the standard screen"
msgid "Forced use of older versions of OpenGL"
msgstr ""
msgid "Disguise all features used for NVIDIA graphics cards"
msgstr ""
msgid "Forced activation of vertical sync"
msgstr ""
msgid "Enable the application to run in the WINE virtual desktop"
msgstr ""
msgid "Run the application in the terminal"
msgstr ""
msgid "Include a delay in releasing some memory to bypass errors associated "
"with using the application after the memory is released"
msgstr ""
msgid "A very dangerous way to hack the memory write timer in ntdll. This "
"improves the performance of some very specific games. (It is "
"recommended not to change the value.)"
msgstr ""
msgid "Disable the window for selecting startup modes and WINE versions"
msgstr ""
msgid "Use Gstreamer to output clips in games (WMF support)"
msgstr ""
msgid "Increases RAM usage limits for 32-bit applications from two to four "
"gigabytes"
msgstr ""
msgid "Use container launch mode (It is recommended not to change the value)"
msgstr ""
msgid "Using FPS and system load monitoring (Turns on and off by the key "
"combination - right Shift + F12)"
msgstr ""
msgid "Using automatic system optimization to improve performance in games "
"(provided the gamemode package is installed on the system, doesn't "
"work with ananicy)"
"(provided the gamemode package is installed on the system)"
msgstr ""
msgid "Forced use of built-in DXGI library (in rare cases it solves "
"problems with DX12 games)"
msgstr ""
msgid "Forced use of MANGOHUD system settings (GOverlay, etc.)"
msgstr ""
msgid "Forced use of VKBASALT system settings (GOverlay, etc.)"
msgstr ""
msgid "Enable forced use of third-party DirectX libraries"
msgstr ""
msgid "Required for video playback in some games so that it is not "
"distorted (usually colored pink)"
msgid "Change the version of WINDOWS 10 to WINDOWS 7 in the prefix"
msgstr ""
msgid "Use WINE shader caching (disable only if there are microfreezes in "
"the game)"
msgstr ""
msgid "Works while using any version of ProtonGE in full screen mode at a "
"resolution below the standard screen"
msgstr ""
msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
msgstr ""
msgid "Enable Easy Anti-Cheat and BattlEye Anti-Cheat runtimes (required if "
"game used this anti-cheats)"
msgstr ""
msgid "Reduce pulseaudio latency to fix intermittent sound"
@ -487,19 +495,9 @@ msgid "Forced use of the us layout (useful for games in which the control "
"works correctly only on the us layout)"
msgstr ""
msgid "Use Gstreamer to output clips in games (WMF support)"
msgstr ""
msgid "Use WINE shader caching (disable only if there are microfreezes in "
"the game)"
msgstr ""
msgid "Forced use of built-in DXGI library (in rare cases it solves "
"problems with DX12 games)"
msgstr ""
msgid "Enable Easy Anti-Cheat and BattlEye Anti-Cheat runtimes (required if "
"game used this anti-cheats)"
msgid "Remember the screen resolution when starting the game and return it "
"when closing (useful for games that change the screen resolution "
"when closing)"
msgstr ""
msgid "Use system mangohud, vkBasalt, obs-vkcapture and other applications "
@ -514,39 +512,16 @@ msgstr ""
msgid "Disable desktop compositing (effects). It often improves performance."
msgstr ""
msgid "Use container launch mode (It is recommended not to change the value)"
msgstr ""
msgid "Force use DirectInput protocol instead of XInput"
msgstr ""
msgid "Enable experemental native Wayland support (need special wine build "
"to work)"
msgstr ""
msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)"
msgstr ""
msgid "Use Gallium Nine (native DirectX 9 for MESA)"
msgstr ""
msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental "
"function."
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr ""
msgid "Forced use of older versions of OpenGL"
msgstr ""
msgid "Include a delay in releasing some memory to bypass errors associated "
"with using the application after the memory is released"
msgstr ""
msgid "A very dangerous way to hack the memory write timer in ntdll. This "
"improves the performance of some very specific games. (It is "
"recommended not to change the value.)"
msgid "<b>Super + F :</b> Toggle fullscreen\n"
"<b>Super + N :</b> Toggle nearest neighbour filtering\n"
"<b>Super + U :</b> Toggle FSR upscaling\n"
"<b>Super + Y :</b> Toggle NIS upscaling\n"
"<b>Super + I :</b> Increase FSR sharpness by 1\n"
"<b>Super + O :</b> Decrease FSR sharpness by 1\n"
"<b>Super + S :</b> Take screenshot (currently goes to /tmp/"
"gamescope_DATE.png)\n"
"<b>Super + G :</b> Toggle keyboard grab\n"
"<b>Super + C :</b> Update clipboard"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation"
@ -615,32 +590,6 @@ msgstr ""
msgid "Fixes encoding issues in legacy software"
msgstr ""
msgid "Window mode (for Vulkan and OpenGL)"
msgstr ""
msgid "fifo - First in, first out. Limits the frame rate + no tearing. "
"(VSync)\n"
"immediate - Unlimited frame rate + tearing.\n"
"mailbox - Triple buffering. Unlimited frame rate + no tearing.\n"
"relaxed - Same as fifo but allows tearing when below the monitors "
"refresh rate."
msgstr ""
msgid "Select needed AMD vulkan implementation"
msgstr ""
msgid "Choosing which implementation of vulkan will be used to run the game"
msgstr ""
msgid "NUMA node for CPU affinity"
msgstr ""
msgid "In multicore systems, CPUs are split into NUMA nodes, each with its "
"own local memory and cores.\n"
"Binding a game to a single node reduces memoryaccess latency and "
"limits costly coretocore switches.)"
msgstr ""
msgid "EDIT DB"
msgstr ""
@ -932,9 +881,6 @@ msgstr ""
msgid "Display frame count"
msgstr ""
msgid "Display frametime next to FPS text"
msgstr ""
msgid "Enable most of the toggleable parameters (currently excludes "
"histogram)"
msgstr ""
@ -1039,6 +985,9 @@ msgstr ""
msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)"
msgstr ""
msgid "Display frametime next to FPS text"
msgstr ""
msgid "Show current Wine or Proton version in use"
msgstr ""
@ -1296,18 +1245,13 @@ msgid "Force use sdl videodriver x11, works with BACKEND SDL. (Default is "
"wayland)"
msgstr ""
msgid "if specified, sets a base output height to linearly scale the cursor "
"against."
msgstr ""
msgid "Change settings gamescope for"
msgstr ""
msgid "Gamescope is not detected on the system, to install it, run the "
"command in the terminal"
msgstr ""
msgid "Can be selected and copied"
msgid "<b>Gamescope is not detected on the system, to install it, run the "
"command in the terminal:\\nflatpak install -y runtime/org."
"freedesktop.Platform.VulkanLayer.gamescope/x86_64/$"
"%{GAMESCOPE_VERSION}%\\n(Can be selected and copied)</b>"
msgstr ""
msgid "<b>Gamescope is not detected on the system, please contact the "
@ -1334,6 +1278,18 @@ msgstr ""
msgid "Set a framerate limit. Specified in frames per second"
msgstr ""
msgid "Mesa vulkan WSI"
msgstr ""
msgid "Overrides the WSI present mode:\n"
"fifo - First in, first out. Limits the frame rate + no tearing. "
"(VSync)\n"
"immediate - Unlimited frame rate + tearing.\n"
"mailbox - Triple buffering. Unlimited frame rate + no tearing.\n"
"relaxed - Same as fifo but allows tearing when below the monitors "
"refresh rate."
msgstr ""
msgid "Scaler mode"
msgstr ""
@ -1392,22 +1348,76 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu"
msgstr ""
msgid "Recommended value"
msgid "Disable"
msgstr ""
msgid "default"
msgid "Enable"
msgstr ""
msgid "compact"
msgid "Change global settings"
msgstr ""
msgid "classic"
msgid "Change mirror to"
msgstr ""
msgid "The shortcut will be changed in the PortProton directory."
msgid "Depending on which mirror is selected, updates will be downloaded "
"from there."
msgstr ""
msgid "Name"
msgid "Change branch to"
msgstr ""
msgid "Depending on the version of the scripts, PortProton will receive the "
"latest changes first (the DEVEL branch), the STABLE branch is "
"updated later and is stable."
msgstr ""
msgid "Change start gui to"
msgstr ""
msgid "When using PANED in the game start menu, additional buttons are "
"located on one large page; if NOTEBOOK, then they are divided into "
"several."
msgstr ""
msgid "steam covers download"
msgstr ""
msgid "If downloading steam covers is enabled, they will be downloaded and "
"created. (Disablement is provided in cases where their downloading "
"is unavailable for some reason)"
msgstr ""
msgid "Choose a graphics card to run the game"
msgstr ""
msgid "Select which video card will be used to run the game (used for all "
"running games and programs in PortProton)"
msgstr ""
msgid "Choice wine audio driver"
msgstr ""
msgid "Fixes sound popling if choice alsa"
msgstr ""
msgid "Choice gui themes"
msgstr ""
msgid "Allows you to select a theme for PortProton"
msgstr ""
msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr ""
msgid "Open the <b>user.conf</b> settings file in a system text editor to "
"view and change variables manually"
msgstr ""
msgid "Do you really want to reset settings for"
msgstr ""
msgid "The shortcut will be created in the PortProton directory."
msgstr ""
msgid "Add shortcut to MENU -> GAMES"
@ -1419,7 +1429,13 @@ msgstr ""
msgid "Add shortcut to STEAM library"
msgstr ""
msgid "REMOVE SHORTCUT"
msgid "Name"
msgstr ""
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
msgstr ""
msgid "Restarting STEAM... Please wait."
msgstr ""
msgid "Could not find the file:"
@ -1429,9 +1445,6 @@ msgid "ATTENTION:\\nIf you forgot to mount the disk with the running "
"application, click CANCEL!"
msgstr ""
msgid "DELETE SHORTCUT"
msgstr ""
msgid "Starting prefix manager:"
msgstr ""
@ -1484,7 +1497,8 @@ msgid "PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port"
msgstr ""
msgid "To diagnose the problem, copy ALL of the log to:"
msgid "To diagnose the problem, copy ALL of the log to discord server: "
"https://discord.gg/FTaheP99wE"
msgstr ""
msgid "Please wait! After finishing the PortProton, click STOP."
@ -1509,6 +1523,24 @@ msgstr ""
msgid "Do you really want to remove PortProton?"
msgstr ""
msgid "Mirror changed to:"
msgstr ""
msgid "Do you actually want to change the scripts version to:"
msgstr ""
msgid "Branch changed to:"
msgstr ""
msgid "Cover downloads are disabled"
msgstr ""
msgid "Cover downloads are enabled"
msgstr ""
msgid "Gui start changed to:"
msgstr ""
msgid "EDIT USER CONFIG"
msgstr ""
@ -1518,11 +1550,58 @@ msgstr ""
msgid "SAVE"
msgstr ""
#, sh-format
msgid "PortProton v. ${install_ver}\n"
"scripts v. ${scripts_install_ver}"
msgstr ""
msgid "Copyright © $%DATE% Castro-Fidel (linux-gaming.ru)"
msgstr ""
msgid "This program comes with absolutely no warranty.\n"
"See the License for details."
msgstr ""
msgid "Author: Casro-Fidel (Mikhail Tergoev)\n"
"\n"
"Developer assistants and testers:"
msgstr ""
msgid "MIT License\n"
"\n"
"Copyright © $%DATE% Castro-Fidel (linux-gaming.ru)\n"
"\n"
"Permission is hereby granted, free of charge, to any person "
"obtaining a copy\n"
"of this software and associated documentation files (the \"Software"
"\"), to deal\n"
"in the Software without restriction, including without limitation "
"the rights\n"
"to use, copy, modify, merge, publish, distribute, sublicense, and/or "
"sell\n"
"copies of the Software, and to permit persons to whom the Software "
"is\n"
"furnished to do so, subject to the following conditions:\n"
"\n"
"The above copyright notice and this permission notice shall be "
"included in all\n"
"copies or substantial portions of the Software.\n"
"\n"
"THE SOFTWARE IS PROVIDED (AS IS), WITHOUT WARRANTY OF ANY KIND, "
"EXPRESS OR\n"
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF "
"MERCHANTABILITY,\n"
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT "
"SHALL THE\n"
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR "
"OTHER\n"
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, "
"ARISING FROM,\n"
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER "
"DEALINGS IN THE\n"
"SOFTWARE."
msgstr ""
msgid "The project was supported:\n"
"https://boosty.to/portwine-linux.ru"
msgstr ""
@ -1534,7 +1613,7 @@ msgid "Do you want to join and help in the development of the project:"
msgstr ""
msgid "Website: http://linux-gaming.ru\n"
"TG: https://t.me/linux_gaming_ru\n"
"Discord: http://discord.gg/yJSEFjF\n"
"VK: https://vk.com/linuxgamingru\n"
"-------------------------------------------\n"
"Become a paid subscriber:\n"
@ -1560,6 +1639,9 @@ msgstr ""
msgid "ABOUT US"
msgstr ""
msgid "ABOUT PORTPROTON"
msgstr ""
msgid "AUTORS"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,535 +1,371 @@
#!/usr/bin/env bash
#!/bin/bash
# GPL-3.0 license
# based on https://github.com/sonic2kk/steamtinkerlaunch/blob/master/steamtinkerlaunch
PROGNAME="PortProton"
name_desktop_png="${name_desktop// /_}"
NOSTAPPNAME="$name_desktop"
NOSTEXEPATH="\"${STEAM_SCRIPTS}/${name_desktop}.sh\""
# NOSTSTDIR="\"${PATH_TO_GAME}\""
if [[ -z "${NOSTSTDIR}" ]] ; then
NOSTSTDIR="\"${STEAM_SCRIPTS}\""
fi
NOSTICONPATH="${PORT_WINE_PATH}/data/img/$name_desktop_png.png"
BASESTEAMGRIDDBAPI="https://www.steamgriddb.com/api/v2"
## How Non-Steam AppIDs work, because it took me almost a year to figure this out
## ----------------------
## Steam stores shortcuts in a binary 'shortcuts.vdf', at SROOT/userdata/<id>/config
##
## Non-Steam AppIDs are 32bit little-endian (reverse byte order) signed integers, stored as hexidecimal
## This is probably generated using a crc32 generated from AppName + Exe, but it can actually be anything
## Steam likely does this to ensure "uniqueness" among entries, tools like Steam-ROM-Manager do the same thing likely for similar reasons
##
## For simplicity we generate a random 32bit signed integer using an md5, which we'll then convert to hex to store in the AppID file
## Though we can write any AppID we want, Steam will reject invalid ones (i.e. big endian hex) it will overwrite our AppID
## We can also convert this to an unsigned 32bit integer to get the AppID used for grids and other things, the unsigned int is just what Steam stores
##
## We can later re-use these functions to do several things:
## - Check for and remove stray STL configs for no longer stored Non-Steam Game AppIDs (if we had Non-Steam Games we previously used with STL that we no longer use, we can remove these configs in case there is a conflict in future)
### BEGIN MAGIC APPID FUNCTIONS
## ----------
# Generate random signed 32bit integer which can be converted into hex, using the first argument (AppName and Exe fields) as seed (in an attempt to reduce the chances of the same AppID being generated twice)
generateShortcutVDFAppId() {
seed="$(echo -n "$1" | md5sum | cut -c1-8)"
echo "-$((16#${seed} % 1000000000))"
function generateShortcutVDFAppId {
seed="$( echo -n "$1" | md5sum | cut -c1-8 )"
echo "-$(( 16#${seed} % 1000000000 ))"
}
dec2hex() {
function dec2hex {
printf '%x\n' "$1" | cut -c 9- # cut removes the 'ffffffff' from the string (represents the sign) and starts from the 9th character
}
# Takes big-endian ("normal") hexidecimal number and converts to little-endian
function bigToLittleEndian {
echo -n "$1" | tac -rs .. | tr -d '\n'
}
# Takes an signed 32bit integer and converts it to a 4byte little-endian hex number
function generateShortcutVDFHexAppId {
bigToLittleEndian "$( dec2hex "$1" )"
}
# Takes an signed 32bit integer and converts it to an unsigned 32bit integer
extractSteamId32() {
# STUID32=$((STUID64 - 76561197960265728))
echo $(($1 & 0xFFFFFFFF))
function generateShortcutGridAppId {
echo $(( $1 & 0xFFFFFFFF ))
}
## ----------
### END MAGIC APPID FUNCTIONS
getSteamShortcutsVdfFileHex() {
if [[ -z "${STCFGPATH}" ]]; then
STCFGPATH="$(getUserPath)"
fi
if [[ -n "${STCFGPATH}" ]] && [[ -z "${SCPATH}" ]]; then
SCPATH="${STCFGPATH}/shortcuts.vdf"
fi
if [[ -n "${SCPATH}" ]] && [[ -f "${SCPATH}" ]]; then
LC_ALL=C perl -0777 -ne 'print unpack("H*", $_)' "${SCPATH}"
fi
}
NOSTAIDVDF="$(generateShortcutVDFAppId "${NOSTAPPNAME}${NOSTEXEPATH}" )" # signed integer AppID, stored in the VDF as hexidecimal - ex: -598031679
NOSTAIDVDFHEX="$( generateShortcutVDFHexAppId "$NOSTAIDVDF" )" # 4byte little-endian hexidecimal of above 32bit signed integer, which we write out to the binary VDF - ex: c1c25adc
NOSTAIDVDFHEXFMT="\x$(awk '{$1=$1}1' FPAT='.{2}' OFS="\\\x" <<< "$NOSTAIDVDFHEX")" # binary-formatted string hex of the above which we actually write out - ex: \xc1\xc2\x5a\xdc
NOSTAIDGRID="$( generateShortcutGridAppId "$NOSTAIDVDF" )" # unsigned 32bit ingeger version of "$NOSTAIDVDF", which is used as the AppID for Steam artwork ("grids"), as well as for our shortcuts
getSteamShortcutHex() {
SHORTCUTVDFFILESTARTHEXPAT="0073686f7274637574730000300002" # Bytes for beginning of the shortcuts.vdf file
SHORTCUTVDFENTRYBEGINHEXPAT="00080800.*?0002" # Pattern for beginning of shortcut entry in shortcuts.vdf -- Beginning of file has a different pattern, but every other pattern begins like this
SHORTCUTSVDFENTRYENDHEXPAT="000808" # Pattern for how shortcuts.vdf blocks end
getSteamShortcutsVdfFileHex | grep -oP "(${SHORTCUTVDFFILESTARTHEXPAT}|${SHORTCUTVDFENTRYBEGINHEXPAT})\K.*?(?=${SHORTCUTSVDFENTRYENDHEXPAT})" # Get entire shortcuts.vdf as hex, then grep each entry using the begin and end patterns for each block
}
# Set artwork for Steam game by copying/linking/moving passed artwork to steam grid folder
function setGameArt {
function applyGameArt {
GAMEARTAPPID="$1"
GAMEARTSOURCE="$2" # e.g. /home/gaben/GamesArt/cs2_hero.png
GAMEARTSUFFIX="$3" # e.g. "_hero" etc
GAMEARTCMD="$4"
getSteamShortcutEntryHex() {
SHORTCUTSVDFINPUTHEX="$1" # The hex block representing the shortcut
SHORTCUTSVDFMATCHPATTERN="$2" # The pattern to match against in the block
SHORTCUTVDFENDPAT="0001" # Generic end pattern for each shortcut.vdf column
printf "%s" "${SHORTCUTSVDFINPUTHEX}" | grep -oP "${SHORTCUTSVDFMATCHPATTERN}\K.*?(?=${SHORTCUTVDFENDPAT})"
}
GAMEARTBASE="$( basename "$GAMEARTSOURCE" )"
GAMEARTDEST="${SGGRIDDIR}/${GAMEARTAPPID}${GAMEARTSUFFIX}.${GAMEARTBASE#*.}" # path to filename in grid e.g. turns "/home/gaben/GamesArt/cs2_hero.png" into "~/.local/share/Steam/userdata/1234567/config/grid/4440654_hero.png"
getAppExe() {
[[ -n "$1" ]] && listNonSteamGames | jq -r --arg id "$1" 'map(select(.id == $id)) | first(.[].exe)'
}
if [[ -n "$GAMEARTSOURCE" ]] ; then
if [[ -f "$GAMEARTDEST" ]] ; then
rm "$GAMEARTDEST"
fi
getAppTarget() {
exe=$(getAppExe "$1")
[[ -n "${exe}" ]] && parseSteamTargetExe "${exe}"
}
getSteamGameId() {
# printf "%u\n" $(($1 << 32 | 0x02000000))
printf "%u\n" $(($1 * 4294967296 + 0x02000000))
}
getAppId() {
[[ -n "$1" ]] && listNonSteamGames | jq -r --arg exe "$1" 'map(select(.exe == $exe)) | first(.[]?.id)'
}
getSteamId() {
unset SteamAppId
local cache_file="${PORT_WINE_TMP_PATH:-/tmp}/steamid_cache.json"
local applist_cache_file="${PORT_WINE_TMP_PATH:-/tmp}/steamapplist_cache.json"
[[ -n "${1:-}" ]] && NOSTAPPNAME="$1"
[[ -z "${NOSTAPPNAME}" ]] && return 1
if [[ -z "${SteamIds:-}" ]] && [[ -f "${cache_file}" ]]; then
SteamIds=$(<"${cache_file}")
fi
if [[ -n "${1:-}" ]] && [[ -n "${SteamIds:-}" ]] && jq -e --arg key "${NOSTAPPNAME}" 'has($key)' <<< "${SteamIds}" > /dev/null; then
SteamAppId=$(jq -r --arg key "${NOSTAPPNAME}" '.[$key]' <<< "${SteamIds}")
else
if [[ -n "${2:-}" ]]; then
NOSTAPPPATH="$2"
[[ -f "${NOSTAPPPATH}.ppdb" ]] && source "${NOSTAPPPATH}.ppdb"
fi
[[ -n "${STEAM_APP_ID:-}" ]] && SteamAppId="${STEAM_APP_ID}"
if [[ -z "${SteamAppId:-}" ]] && [[ -n "${NOSTAPPPATH:-}" ]]; then
local paths=("steam_appid.txt" "steam_emu.ini" "steam_api.ini" "steam_api64.ini")
local conditions=$(printf " -o -name %q" "${paths[@]}")
local file=$(find "$(dirname "${NOSTAPPPATH}")" -type f \( ${conditions# -o} \) -print -quit 2>/dev/null)
if [[ -n "${file}" ]]; then
if [[ "${file}" == *"steam_appid.txt" ]]; then
SteamAppId=$(cat "${file}" | tr -d '\r\n')
else
SteamAppId=$(grep -i "^AppId=" "${file}" | cut -d'=' -f2 | head -1 | tr -d '\r\n')
fi
if [[ -f "$GAMEARTSOURCE" ]] ; then
$GAMEARTCMD "$GAMEARTSOURCE" "$GAMEARTDEST"
fi
fi
if [[ -z "${SteamAppId:-}" ]]; then
[[ "${USE_STEAMGRIDDB:-1}" == "1" ]] && getSteamGridDBId "${NOSTAPPNAME}" > /dev/null
if [[ ${SteamGridDBTypeSteam} == true ]]; then
SRES=$(curl -Ls --connect-timeout 5 -m 10 -e "https://www.steamgriddb.com/game/${SteamGridDBId}" "https://www.steamgriddb.com/api/public/game/${SteamGridDBId}")
if jq -e ".success == true" <<< "${SRES}" > /dev/null 2>&1; then
SteamAppId="$(jq -r '.data.platforms.steam.id' <<< "${SRES}")"
fi
elif [[ "${USE_STEAMGRIDDB:-1}" == "0" ]]; then
if [[ ! -f "${applist_cache_file}" ]] || [[ $(find "${applist_cache_file}" -mmin +1440) ]]; then
applist_data=$(curl -s --connect-timeout 5 "https://api.steampowered.com/ISteamApps/GetAppList/v2/")
[[ -n "${applist_data}" ]] && echo "${applist_data}" > "${applist_cache_file}"
else
applist_data=$(<"${applist_cache_file}")
fi
[[ -n "${applist_data}" ]] && SteamAppId=$(jq --arg name "${NOSTAPPNAME,,}" '.applist.apps[] | select(.name == $name) | .appid' <<< "${applist_data,,}")
fi
fi
SteamIds=$(jq --arg key "${NOSTAPPNAME}" --arg value "${SteamAppId:-}" '. + {($key): $value}' <<< "${SteamIds:-$(jq -n '{}')}")
echo "${SteamIds}" > "${cache_file}"
fi
if [[ -n "${SteamAppId:-}" ]]; then
echo "${SteamAppId}"
fi
}
}
getSteamGridDBId() {
unset SteamGridDBId
NOSTAPPNAME="$1"
if [[ "${USE_STEAMGRIDDB:-1}" == "1" ]] && [[ -n "${SGDBAPIKEY}" ]] && [[ -n "${BASESTEAMGRIDDBAPI}" ]] && curl -fs --connect-timeout 5 -m 10 -o /dev/null "${BASESTEAMGRIDDBAPI}"; then
SGDBRES=$(curl -Ls --connect-timeout 5 -m 10 -H "Authorization: Bearer ${SGDBAPIKEY}" "${BASESTEAMGRIDDBAPI}/search/autocomplete/${NOSTAPPNAME// /_}")
if jq -e ".success == true and (.data | length > 0)" <<< "${SGDBRES}" > /dev/null 2>&1; then
if jq -e '.data[0].types | contains(["steam"])' <<< "${SGDBRES}" > /dev/null; then
SteamGridDBTypeSteam=true
else
SteamGridDBTypeSteam=false
fi
SteamGridDBId="$(jq '.data[0].id' <<< "${SGDBRES}")"
echo "${SteamGridDBId}"
fi
else
USE_STEAMGRIDDB="0"
fi
}
GAME_APPID="$1" # We don't validate AppID as it would drastically slow down the process for large libraries
getUserIds() {
[[ -z "${STEAM_BASE_FOLDER}" ]] && STEAM_BASE_FOLDER="$(getSteamPath)"
SLUF="${STEAM_BASE_FOLDER}/config/loginusers.vdf"
if [[ -f "${SLUF}" ]]; then
STUIDS=()
while read -r line; do
if [[ "${line}" =~ ^[[:space:]]*\"([0-9]+)\"$ ]]; then
STUIDS+=("$(extractSteamId32 "${BASH_REMATCH[1]}")")
fi
done < "${SLUF}"
if [[ ${#STUIDS[@]} -gt 0 ]]; then
echo "${STUIDS[@]}"
fi
fi
}
getUserId() {
[[ -z "${STEAM_BASE_FOLDER}" ]] && STEAM_BASE_FOLDER="$(getSteamPath)"
SLUF="${STEAM_BASE_FOLDER}/config/loginusers.vdf"
if [[ -f "${SLUF}" ]]; then
SLUFUB=false
STUID=""
while read -r line; do
if [[ "${line}" =~ ^[[:space:]]*\"([0-9]+)\"$ ]]; then
STUIDCUR="${BASH_REMATCH[1]}"
SLUFUB=true
elif [[ "${line}" == *'"MostRecent"'*'"1"' && ${SLUFUB} = true ]]; then
STUID=$(extractSteamId32 "${STUIDCUR}")
break
elif [[ "${line}" == "}" ]]; then
SLUFUB=false
fi
done < "${SLUF}"
fi
if [ -n "${STUID}" ]; then
echo "${STUID}"
fi
}
getUserPath() {
if [[ -n "${1:-}" ]]; then
STUID="$1"
else
STUID="$(getUserId)"
fi
if [ -n "${STUID}" ]; then
[[ -z "${STEAM_BASE_FOLDER}" ]] && STEAM_BASE_FOLDER="$(getSteamPath)"
STUIDPATH="${STEAM_BASE_FOLDER}/userdata/${STUID}"
if [[ -d "${STUIDPATH}/config/" ]]; then
echo "${STUIDPATH}/config"
fi
fi
}
getSteamPath() {
local paths=("${HOME}/.steam/steam" "${HOME}/.local/share/Steam" "${HOME}/.var/app/com.valvesoftware.Steam/.steam/steam")
for path in "${paths[@]}"; do
if [[ -d "${path}" ]]; then
STEAM_BASE_FOLDER="${path}"
echo "${STEAM_BASE_FOLDER}"
return 0
fi
SETARTCMD="cp" # Default command will copy art
for i in "$@"; do
case $i in
-hr=*|--hero=*)
SGHERO="${i#*=}" # <appid>_hero.png -- Banner used on game screen, logo goes on top of this
shift ;;
-lg=*|--logo=*)
SGLOGO="${i#*=}" # <appid>_logo.png -- Logo used e.g. on game screen
shift ;;
-ba=*|--boxart=*)
SGBOXART="${i#*=}" # <appid>p.png -- Used in library
shift ;;
-tf=*|--tenfoot=*)
SGTENFOOT="${i#*=}" # <appid>.png -- Used as small boxart for e.g. most recently played banner
shift ;;
--copy)
SETARTCMD="cp" # Copy file to grid folder -- Default
shift ;;
--link)
SETARTCMD="ln -s" # Symlink file to grid folder
shift ;;
--move)
SETARTCMD="mv" # Move file to grid folder
shift ;;
esac
done
return 1
applyGameArt "$GAME_APPID" "$SGHERO" "_hero" "$SETARTCMD"
applyGameArt "$GAME_APPID" "$SGLOGO" "_logo" "$SETARTCMD"
applyGameArt "$GAME_APPID" "$SGBOXART" "p" "$SETARTCMD"
applyGameArt "$GAME_APPID" "$SGTENFOOT" "" "$SETARTCMD"
}
listInstalledSteamGames() {
[[ -z "${STEAM_BASE_FOLDER}" ]] && STEAM_BASE_FOLDER="$(getSteamPath)"
manifests=("${STEAM_BASE_FOLDER}/steamapps"/appmanifest_*.acf)
if [ ! -e "${manifests[0]}" ]; then
jq -n '[]'
else
for manifest_file in "${manifests[@]}"; do
name="$(grep -Po '"name"\s+"\K[^"]+' "${manifest_file}")";
stateflags="$(grep -Po '"StateFlags"\s+"\K\d+' "${manifest_file}")"
# if [[ ! "${name}" =~ ^(Proton |Steam Linux Runtime|Steamworks Common) ]]; then
if ((stateflags & 4)) && grep -q '"SharedDepots"' "${manifest_file}"; then
jq -n \
--arg id "$(grep -Po '"appid"\s+"\K\d+' "${manifest_file}")" \
--arg name "${name}" \
'{id: $id, name: $name}'
# This is formatted as a flag because we can pass "$SGACOPYMETHOD" as an argument to setGameArt, and it will be interpreted as --copy
SGACOPYMETHOD="${SGACOPYMETHOD:---copy}"
## Generic function to fetch some artwork from SteamGridDB based on an endpoint
## TODO: Steam only officially supports PNGs, test to see if WebP works when manually copied, and if it doesn't, we should try to only download PNG files
## TODO: Add max filesize option? Some artworks are really big, we should skip ones that are too large (though this may mean many animated APNG artworks will get skipped, because APNG can be huge)
function downloadArtFromSteamGridDB {
# Required parameters
SEARCHID="$1"
SEARCHENDPOINT="$2"
SGDBFILENAME="${3:-SEARCHID}"
# Optional parameters
SEARCHSTYLES="$4"
SEARCHDIMS="$5"
SEARCHTYPES="$6"
SEARCHNSFW="$7"
SEARCHHUMOR="$8"
SEARCHEPILEPSY="$9"
SGDBHASFILE="${10:-SGDBHASFILE}"
FORCESGDBDLTOSTEAM="${11}"
SGDB_ENDPOINT_STR="${SEARCHENDPOINT}/$(echo "$SEARCHID" | awk '{print $1}' | paste -s -d, -)?"
[[ -n "$SEARCHSTYLES" ]] && SGDB_ENDPOINT_STR+="&styles=${SEARCHSTYLES}"
[[ -n "$SEARCHDIMS" ]] && SGDB_ENDPOINT_STR+="&dimensions=${SEARCHDIMS}"
[[ -n "$SEARCHTYPES" ]] && SGDB_ENDPOINT_STR+="&types=${SEARCHTYPES}"
[[ -n "$SEARCHNSFW" ]] && SGDB_ENDPOINT_STR+="&nsfw=${SEARCHNSFW}"
[[ -n "$SEARCHHUMOR" ]] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}"
[[ -n "$SEARCHEPILEPSY" ]] && SGDB_ENDPOINT_STR+="&epilepsy=${SEARCHEPILEPSY}"
set -o pipefail
RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR" 2> >(grep -v "SSL_INIT"))
if [[ "${PIPESTATUS[0]}" != 0 ]] && [[ "$DOWNLOAD_STEAM_GRID" != 0 ]] ; then
pw_notify_send -i info \
"$(gettext "SteamGridDB is not response, force disable cover download")"
sed -i 's/DOWNLOAD_STEAM_GRID=.*/DOWNLOAD_STEAM_GRID="0"/' "$USER_CONF"
export DOWNLOAD_STEAM_GRID="0"
return
fi
if ! jq -e '.success' <<< "$RESPONSE" > /dev/null; then
echo "The server response wasn't 'success' for this batch of requested games."
return
fi
RESPONSE_LENGTH=$(jq '.data | length' <<< "$RESPONSE")
if [[ "$RESPONSE_LENGTH" == "0" ]] ; then
echo "No grid found to download - maybe loosen filters?"
fi
if jq -e ".data[0].url" <<< "$RESPONSE" > /dev/null; then
RESPONSE="{\"success\":true,\"data\":[$RESPONSE]}"
RESPONSE_LENGTH=1
fi
for i in $(seq 0 $(("$RESPONSE_LENGTH" - 1))); do
if ! jq -e ".data[$i].success" <<< "$RESPONSE" > /dev/null; then
echo "The server response for '$SEARCHID' wasn't 'success'"
fi
if ! URLSTR=$(jq -e -r ".data[$i].data[0].url" <<< "$RESPONSE"); then
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
fi
GRIDDLURL="${URLSTR//\"}"
if grep -q "^https" <<< "$GRIDDLURL"; then
DLSRC="${GRIDDLURL//\"}"
GRIDDLDIR="${SGGRIDDIR}"
mkdir -p "$GRIDDLDIR"
DLDST="${GRIDDLDIR}/${SGDBFILENAME}.${GRIDDLURL##*.}"
STARTDL=1
if [[ -f "$DLDST" ]] ; then
if [[ "$SGDBHASFILE" == "backup" ]] ; then
BACKDIR="${GRIDDLDIR}/backup"
mkdir -p "$BACKDIR"
mv "$DLDST" "$BACKDIR"
elif [[ "$SGDBHASFILE" == "replace" ]] ; then
rm "$DLDST" 2>/dev/null
fi
fi
if [[ "$STARTDL" -eq 1 ]] ; then
filename="$(basename "$DLDST")"
curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$DLSRC" -o "$DLDST" 2>&1 | \
tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \
"$pw_yad" --progress --text="$(gettext "Downloading") $filename" --auto-close --no-escape \
--auto-kill --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders="$PROGRESS_BAR_BORDERS_SIZE"
fi
else
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
fi
done
}
if [[ -f "$SCPATH" ]] ; then
cp "$SCPATH" "${SCPATH//.vdf}_${PROGNAME}_backup.vdf" 2>/dev/null
truncate -s-2 "$SCPATH"
OLDSET="$(grep -aPo '\x00[0-9]\x00\x02appid' "$SCPATH" | tail -n1 | tr -dc '0-9')"
NEWSET=$((OLDSET + 1))
else
printf '\x00%s\x00' "shortcuts" > "$SCPATH"
NEWSET=0
fi
# Search SteamGridDB endpoint using game title and return the first (best match) Game ID
function getSGDBGameIDFromTitle {
SGDBSEARCHNAME="$1"
if [[ -n "$SGDBSEARCHNAME" ]] ; then
SGDBSEARCHENDPOINT="${BASESTEAMGRIDDBAPI}/search/autocomplete/${SGDBSEARCHNAME}"
SGDBSEARCHNAMERESP="$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDBSEARCHENDPOINT" 2> >(grep -v "SSL_INIT") )"
if jq -e '.success' 1> /dev/null <<< "$SGDBSEARCHNAMERESP"; then
if [[ "$(jq '.data | length' <<< "$SGDBSEARCHNAMERESP" )" -gt 0 ]] ; then
SGDBSEARCH_FOUNDNAME="$(jq '.data[0].name' <<< "$SGDBSEARCHNAMERESP" )"
SGDBSEARCH_FOUNDGAID="$(jq '.data[0].id' <<< "$SGDBSEARCHNAMERESP" )"
echo "$SGDBSEARCH_FOUNDGAID"
fi
done | jq -s '.'
fi
}
listNonSteamGames() {
getSteamShortcutHex | while read -r SCVDFE; do
jq -n \
--arg id "$(parseSteamShortcutEntryAppID "${SCVDFE}")" \
--arg name "$(parseSteamShortcutEntryAppName "${SCVDFE}")" \
--arg exe "$(parseSteamShortcutEntryExe "${SCVDFE}")" \
--arg dir "$(parseSteamShortcutEntryStartDir "${SCVDFE}")" \
--arg icon "$(parseSteamShortcutEntryIcon "${SCVDFE}")" \
--arg args "$(parseSteamShortcutEntryLaunchOptions "${SCVDFE}")" \
'{id: $id, name: $name, exe: $exe, dir: $dir, icon: $icon, args: $args}'
done | jq -s '.'
}
listSteamGames() {
(
jq -r 'map({AppId: .id, SteamAppId: .id, SteamGameId: .id, Name: .name}) | .[] | tostring' <<< "$(listInstalledSteamGames)"
jq -r '.[] | tostring' <<< "$(listNonSteamGames)" | while read -r game; do
id=$(jq -r '.id' <<< "${game}")
name=$(jq -r '.name' <<< "${game}")
exe=$(jq -r '.exe' <<< "${game}")
if [[ "${name}" =~ ^[0-9]+$ ]] && [[ "${exe}" =~ .sh$ ]]; then
appid="${name}"
name=$(basename "${exe}" .sh)
else
path="$(parseSteamTargetExe "${exe}")"
appid="$(getSteamId "${name}" "${path}")"
[[ -z "${appid}" ]] && appid="0"
fi
gid="$(getSteamGameId $id)"
jq -n \
--arg id "${id}" \
--arg appid "${appid}" \
--arg gid "${gid}" \
--arg name "${name}" \
'{AppId: $id, SteamAppId: $appid, SteamGameId: $gid, Name: $name}'
done
) | jq -s '.'
}
convertSteamShortcutAppID() {
SHORTCUTAPPIDHEX="$1"
SHORTCUTAPPIDLITTLEENDIAN="$( echo "${SHORTCUTAPPIDHEX}" | tac -rs .. | tr -d '\n' )"
echo "$((16#${SHORTCUTAPPIDLITTLEENDIAN}))"
}
convertSteamShortcutHex() {
LC_ALL=C perl -le 'print pack "H*", $ARGV[0]' "$1" | tr -d '\0'
}
convertStringToSteamShortcutHex() {
LC_ALL=C perl -e 'print unpack "H*", "$ARGV[0]" . "\x00"' "$(echo "$1" | tr -cd '[:alpha:]')"
}
parseSteamShortcutEntryHex() {
SHORTCUTSVDFINPUTHEX="$1" # The hex block representing the shortcut
SHORTCUTSVDFMATCHPATTERN="$2" # The pattern to match against in the block
convertSteamShortcutHex "$(getSteamShortcutEntryHex "${SHORTCUTSVDFINPUTHEX}" "${SHORTCUTSVDFMATCHPATTERN}")"
}
parseSteamShortcutEntryAppID() {
SHORTCUTVDFAPPIDHEXPAT="617070696400" # 'appid'
convertSteamShortcutAppID "$(printf "%s" "$1" | grep -oP "${SHORTCUTVDFAPPIDHEXPAT}\K.{8}")"
}
parseSteamShortcutEntryAppName() {
SHORTCUTVDFNAMEHEXPAT="(014170704e616d6500|6170706e616d6500)" # 'AppName' and 'appname'
parseSteamShortcutEntryHex "$1" "${SHORTCUTVDFNAMEHEXPAT}"
}
parseSteamShortcutEntryExe() {
SHORTCUTVDFEXEHEXPAT="000145786500" # 'Exe' ('exe' is 6578650a if we ever need it)
parseSteamShortcutEntryHex "$1" "${SHORTCUTVDFEXEHEXPAT}" | tr -d '"'
}
parseSteamShortcutEntryStartDir() {
SHORTCUTVDFSTARTDIRHEXPAT="0001537461727444697200"
parseSteamShortcutEntryHex "$1" "${SHORTCUTVDFSTARTDIRHEXPAT}" | tr -d '"'
}
parseSteamShortcutEntryIcon() {
SHORTCUTVDFICONHEXPAT="000169636f6e00"
parseSteamShortcutEntryHex "$1" "${SHORTCUTVDFICONHEXPAT}"
}
parseSteamShortcutEntryLaunchOptions() {
SHORTCUTVDFARGHEXPAT="00014c61756e63684f7074696f6e7300" # echo "0001$(convertStringToSteamShortcutHex "LaunchOptions")"
parseSteamShortcutEntryHex "$1" "${SHORTCUTVDFARGHEXPAT}" | tr '\002' '\n' | head -n 1 | tr -d '\000'
}
parseSteamTargetExe() {
if [[ "$1" =~ .sh$ ]]; then
grep -E '^[^# ]*?(flatpak|start\.sh)' "$1" | head -n 1 | sed 's/ "\$@"//' | awk -F'"' '{print $(NF-1)}'
fi
}
restartSteam() {
if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then
if yad_question "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" ; then
pw_start_progress_bar_block "Restarting STEAM... Please wait."
kill -s SIGTERM $(pgrep -a steam) &>/dev/null
while pgrep -i steam &>/dev/null ; do
sleep 0.5
done
if command -v steam &>/dev/null; then
steam &
elif command -v flatpak >/dev/null 2>&1 && flatpak list | grep -q com.valvesoftware.Steam; then
flatpak run com.valvesoftware.Steam &
fi
sleep 5
pw_stop_progress_bar
exit 0
fi
fi
unset PW_SKIP_RESTART_STEAM
}
downloadImage() {
if ! curl -Lf# --connect-timeout 5 -m 10 -o "${STCFGPATH}/grid/$2" "$1"; then
return 1
fi
}
downloadImageSteam() {
if [[ -n "${SteamAppId}" ]]; then
downloadImage "https://cdn.cloudflare.steamstatic.com/steam/apps/${SteamAppId}/$1" "$2"
else
return 1
echo "No game name given."
fi
}
downloadImageSteamGridDB() {
if [[ -n "${SteamGridDBId}" ]]; then
SGDBIMGAPI="${BASESTEAMGRIDDBAPI}/$1/game/${SteamGridDBId}?limit=1"
[[ -n "$3" ]] && SGDBIMGAPI+="&$3"
[[ -n "$4" ]] && SGDBIMGAPI+="&$4"
SGDBIMGRES=$(curl -Ls --connect-timeout 5 -m 10 -H "Authorization: Bearer ${SGDBAPIKEY}" "${SGDBIMGAPI}")
if jq -e ".success == true and (.data | length > 0)" <<< "${SGDBIMGRES}" > /dev/null 2>&1; then
SGDBIMGURL=$(jq -r '.data[0].url' <<< "${SGDBIMGRES}")
downloadImage "${SGDBIMGURL}" "$2"
elif [[ -n "$3" ]]; then
downloadImageSteamGridDB "$1" "$2" "" "$4"
# Used to get either Steam or Non-Steam artwork depending on a flag -- Used internally and for commandline usage
function commandlineGetSteamGridDBArtwork {
GSGDBA_HASFILE="$SGDBHASFILE" # Optional override for how to handle existinf file (downloadArtFromSteamGridDB defaults to '$SGDBHASFILE')
GSGDBA_APPLYARTWORK="$SGDBDLTOSTEAM"
GSGDBA_SEARCHNAME=""
GSGDBA_FOUNDGAMEID="" # ID found from SteamGridDB endpoint using GSGDBA_SEARCHNAME
for i in "${@}"; do
case $i in
--search-name=*)
GSGDBA_SEARCHNAME="${i#*=}" # Optional SteamGridDB Game Name -- Will use this to try and find matching SteamGridDB Game Art
shift ;;
--nonsteam)
SGDBENDPOINTTYPE="game"
shift ;;
--filename-appid=*)
GSGDBA_FILENAME="${i#*=}" # AppID to use in filename (Non-Steam Games need a different AppID)
shift ;;
## Override Global Menu setting for how to handle existing artwork
## in case user wants to replace all existing artwork, default STL setting is 'skip' and will only copy files over to grid dir if they don't exist, so user can easily fill in missing artwork only)
--replace-existing)
GSGDBA_HASFILE="replace"
shift ;;
--backup-existing)
GSGDBA_HASFILE="backup"
shift ;;
## Flag to force downloading to SteamGridDB folder (used for addNonSteamGame internally)
--apply)
GSGDBA_APPLYARTWORK="1"
shift ;;
esac
done
# If we pass a name to search on and we get a Game ID back from SteamGridDB, set this as the ID to search for artwork on
if [[ -n "$GSGDBA_SEARCHNAME" ]] ; then
if [[ -n "$GSGDBA_FILENAME" ]] ; then
GSGDBA_FOUNDGAMEID="$( getSGDBGameIDFromTitle "$GSGDBA_SEARCHNAME" )"
if [[ -n "$GSGDBA_FOUNDGAMEID" ]] ; then
GSGDBA_APPID="$GSGDBA_FOUNDGAMEID"
SGDBENDPOINTTYPE="game"
fi
else
return 1
fi
else
return 1
fi
}
addGrids() {
local AppId="${NOSTAPPID:-0}"
local in=("header.jpg" "library_600x900_2x.jpg" "library_hero.jpg" "logo.png")
local out=("${AppId}.jpg" "${AppId}"p".jpg" "${AppId}"_hero".jpg" "${AppId}"_logo".png")
local gtype=("grids" "grids" "heroes" "logos")
local mimes=("image/jpeg" "image/jpeg" "image/jpeg" "image/png")
local dims=("460x215,920x430" "600x900,660x930" "" "")
if [[ -z "${SteamGridDBId}" ]] && [[ -z "${SteamAppId}" ]]; then
getSteamId > /dev/null
fi
if [[ -n "${SteamGridDBId}" ]] || [[ -n "${SteamAppId}" ]]; then
create_new_dir "${STCFGPATH}/grid"
for i in "${!in[@]}"; do
downloadImageSteam "${in[${i}]}" "${out[${i}]}" || \
downloadImageSteamGridDB "${gtype[${i}]}" "${out[${i}]}" ${mimes[${i}]:+"mimes=${mimes[${i}]}"} ${dims[${i}]:+"dimensions=${dims[${i}]}"} || \
echo "Failed to load ${in[${i}]}"
done
else
echo "Game is not found"
fi
}
addEntry() {
if [[ -n "${SCPATH}" ]]; then
if [[ -f "${SCPATH}" ]] ; then
truncate -s-2 "${SCPATH}"
OLDSET="$(grep -aPo '\x00[0-9]\x00\x02appid' "${SCPATH}" | tail -n1 | tr -dc '0-9')"
NEWSET=$((OLDSET + 1))
else
printf '\x00%s\x00' "shortcuts" > "${SCPATH}"
NEWSET=0
fi
NOSTAIDVDFHEXFMT=$(printf '\\x%02x\\x%02x\\x%02x\\x%02x' \
$((${NOSTAPPID} & 0xFF)) \
$(((${NOSTAPPID} >> 8) & 0xFF)) \
$(((${NOSTAPPID} >> 16) & 0xFF)) \
$(((${NOSTAPPID} >> 24) & 0xFF)))
{
printf '\x00%s\x00' "${NEWSET}"
printf '\x02%s\x00%b' "appid" "${NOSTAIDVDFHEXFMT}"
printf '\x01%s\x00%s\x00' "AppName" "${NOSTAPPNAME}"
printf '\x01%s\x00%s\x00' "Exe" "\"${NOSTEXEPATH}\""
printf '\x01%s\x00%s\x00' "StartDir" "\"${NOSTSTDIR}\""
printf '\x01%s\x00%s\x00' "icon" "${NOSTICONPATH}"
printf '\x01%s\x00%s\x00' "ShortcutPath" ""
printf '\x01%s\x00%s\x00' "LaunchOptions" "${NOSTARGS:-}"
printf '\x02%s\x00\x00\x00\x00\x00' "IsHidden"
printf '\x02%s\x00\x01\x00\x00\x00' "AllowDesktopConfig"
printf '\x02%s\x00\x01\x00\x00\x00' "AllowOverlay"
printf '\x02%s\x00\x00\x00\x00\x00' "OpenVR"
printf '\x02%s\x00\x00\x00\x00\x00' "Devkit"
printf '\x01%s\x00\x00' "DevkitGameID"
printf '\x02%s\x00\x00\x00\x00\x00' "DevkitOverrideAppID"
printf '\x02%s\x00\x00\x00\x00\x00' "LastPlayTime"
printf '\x01%s\x00\x00' "FlatpakAppID"
printf '\x00%s\x00' "tags"
printf '\x08\x08\x08\x08'
} >> "${SCPATH}"
fi
}
removeNonSteamGame() {
[[ -n "$1" ]] && appid="$1"
[[ -n "$2" ]] && NOSTSHPATH="$2"
[[ -z "${STUID}" ]] && STUID=$(getUserId)
[[ -z "${STCFGPATH}" ]] && STCFGPATH="$(getUserPath ${STUID})"
[[ -z "${STEAM_BASE_FOLDER}" ]] && STEAM_BASE_FOLDER="$(getSteamPath)"
if [[ -n "${STCFGPATH}" ]] && [[ -z "${SCPATH}" ]]; then
SCPATH="${STCFGPATH}/shortcuts.vdf"
fi
if [[ -n "${appid}" ]]; then
games=$(listNonSteamGames)
[[ -z "${NOSTSHPATH}" ]] && NOSTSHPATH=$(jq -r --arg id "${appid}" 'map(select(.id == $id)) | first(.[].exe)' <<< "${games}")
if [[ -n "${NOSTSHPATH}" ]]; then
mv "${SCPATH}" "${SCPATH//.vdf}_${PROGNAME}_backup.vdf" 2>/dev/null
jq --arg id "${appid}" 'map(select(.id != $id))' <<< "${games}" | jq -c '.[]' | while read -r game; do
NOSTAPPID=$(jq -r '.id' <<< "${game}")
NOSTAPPNAME=$(jq -r '.name' <<< "${game}")
NOSTEXEPATH=$(jq -r '.exe' <<< "${game}")
NOSTSTDIR=$(jq -r '.dir' <<< "${game}")
NOSTICONPATH=$(jq -r '.icon' <<< "${game}")
NOSTARGS=$(jq -r '.args' <<< "${game}")
addEntry
done
rm -f "${STCFGPATH}/grid/${appid}.jpg" "${STCFGPATH}/grid/${appid}p.jpg" "${STCFGPATH}/grid/${appid}_hero.jpg" "${STCFGPATH}/grid/${appid}_logo.png"
rm -rf "${STEAM_BASE_FOLDER}/steamapps/compatdata/${appid}"
rm -rf "${STEAM_BASE_FOLDER}/steamapps/shadercache/${appid}"
if [[ -f "${NOSTSHPATH}" ]]; then
isInstallGame=false
for STUIDCUR in $(getUserIds); do
[[ "${STUIDCUR}" == "${STUID}" ]] && continue
STCFGPATH="$(getUserPath ${STUIDCUR})"
SCPATH="${STCFGPATH}/shortcuts.vdf"
if [[ -n "$(getAppId "${NOSTSHPATH}")" ]]; then
isInstallGame=true
break
fi
done
unset STCFGPATH SCPATH
if [[ ${isInstallGame} == false ]]; then
rm "${NOSTSHPATH}"
fi
fi
restartSteam
echo "You must provide a filename AppID when searching with SteamGridDB Game Name"
fi
fi
SGDBSEARCHENDPOINT_HERO="${BASESTEAMGRIDDBAPI}/heroes/${SGDBENDPOINTTYPE}"
SGDBSEARCHENDPOINT_LOGO="${BASESTEAMGRIDDBAPI}/logos/${SGDBENDPOINTTYPE}"
SGDBSEARCHENDPOINT_BOXART="${BASESTEAMGRIDDBAPI}/grids/${SGDBENDPOINTTYPE}" # Grid endpoint is used for Boxart and Tenfoot, which SteamGridDB counts as vertical/horizontal grids respectively
# Download Hero, Logo, Boxart, Tenfoot from SteamGridDB from given endpoint using given AppID
# On SteamGridDB tenfoot called horizontal Steam grid, so fetch it by passing specific dimensions matching this -- Users can override this, but default is what SteamGridDB expects for the tenfoot sizes
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_HERO" "${GSGDBA_FILENAME}_hero" "$SGDBHEROSTYLES" "$SGDBHERODIMS" "$SGDBHEROTYPES" "$SGDBHERONSFW" "$SGDBHEROHUMOR" "$SGDBHEROEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
# Logo doesn't have dimensions, so it's left intentionally blank
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_LOGO" "${GSGDBA_FILENAME}_logo" "$SGDBLOGOSTYLES" "" "$SGDBLOGOTYPES" "$SGDBLOGONSFW" "$SGDBLOGOHUMOR" "$SGDBLOGOEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}p" "$SGDBBOXARTSTYLES" "$SGDBBOXARTDIMS" "$SGDBBOXARTTYPES" "$SGDBBOXARTNSFW" "$SGDBBOXARTHUMOR" "$SGDBBOXARTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}" "$SGDBTENFOOTSTYLES" "$SGDBTENFOOTDIMS" "$SGDBTENFOOTTYPES" "$SGDBTENFOOTNSFW" "$SGDBTENFOOTHUMOR" "$SGDBTENFOOTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
}
addNonSteamGame() {
if [[ -z "${STCFGPATH}" ]]; then
STCFGPATH="$(getUserPath)"
fi
if [[ -n "${STCFGPATH}" ]] && [[ -z "${SCPATH}" ]]; then
SCPATH="${STCFGPATH}/shortcuts.vdf"
fi
if [[ -n "${SCPATH}" ]]; then
[[ -z "${NOSTSHPATH}" ]] && NOSTSHPATH="${STEAM_SCRIPTS}/${name_desktop}.sh"
NOSTAPPNAME="${name_desktop}"
NOSTAPPPATH="${portwine_exe}"
NOSTAPPID=$(getAppId "${NOSTSHPATH}")
if [[ ! -f "${NOSTSHPATH}" ]]; then
create_new_dir "${STEAM_SCRIPTS}"
cat <<-EOF > "${NOSTSHPATH}"
#!/usr/bin/env bash
export LD_PRELOAD=
export START_FROM_STEAM=1
export START_FROM_FLATPAK=$(check_flatpak && echo 1 || echo 0)
"${PORT_SCRIPTS_PATH}/start.sh" "${NOSTAPPPATH}" "\$@"
EOF
chmod u+x "${NOSTSHPATH}"
fi
if [[ -z "${NOSTAPPID}" ]]; then
[[ -z "${NOSTSTDIR}" ]] && NOSTSTDIR="${STEAM_SCRIPTS}"
NOSTEXEPATH="${NOSTSHPATH}"
NOSTICONPATH="${PORT_WINE_PATH}/data/img/${name_desktop_png}.png"
NOSTAIDVDF="$(generateShortcutVDFAppId "${NOSTAPPNAME}${NOSTEXEPATH}")" # signed integer AppID, stored in the VDF as hexidecimal - ex: -598031679
NOSTAPPID="$(extractSteamId32 "${NOSTAIDVDF}")" # unsigned 32bit ingeger version of "$NOSTAIDVDF", which is used as the AppID for Steam artwork ("grids"), as well as for our shortcuts
## Fetch artwork from SteamGridDB
# Regular artwork
# The entered search name is prioritised over actual game EXE name, only one will be used and we will always prefer custom name
# Ex: user names Non-Steam Game "The Elder Scrolls IV: Oblivion" but they enter a custom search name because they want artwork for "The Elder Scrolls IV: Oblivion Game of the Year Edition"
# In case art is not found for the custom name, users should enter either the Steam AppID or the SteamGridDB Game ID to use as a fallback (Steam AppID will always be preferred because it will always be exact)
#
# Therefore, the order of priority for artwork searching is:
# 1. Name search (only ONE of the below will be used)
# a. If the user enters a custom search name with --steamgriddb-game-name, search on that
# b. Otherwise, use the Non-Steam Game name
# 2. Fallback to ID search if no SteamGridDB ID is found on the name search
# a. If the user enters a Steam AppID with --steamgriddb-steam-appid, search on that
# b. Otherwise, fall back to searching on an entered SteamGridDB Game ID
# In short, search on ONE of the names, and if a Game ID is not found on either of these, fall back to searching on ONE of the passed IDs
# If no IDs are found after all of this, we can't get artwork. We will not fall back to EXE name if no ID is found on custom name, and we will not fall back to SteamGridDB Game ID if no art is found for Steam AppID
# If no values are provided we will simply search on Non-Steam Game name
NOSTSEARCHNAME="" # Name to search for SteamGridDB Game ID on (either custom name or app name)
NOSTSEARCHID="" # ID to search for the SteamGridDB artwork on (either Steam AppID or SteamGridDB Game ID)
NOSTSEARCHFLAG="--nonsteam" # Whether to search using a Steam AppID or SteamGridDB Game ID (will be set to --steam if we get an AppID)
if [[ -f "${SCPATH}" ]] ; then
cp "${SCPATH}" "${SCPATH//.vdf}_${PROGNAME}_backup.vdf" 2>/dev/null
fi
# Only add NOSTAPPNAME as fallback if we don't have an ID to search on, because commandlineGetSteamGridDBArtwork will prefer name over ID, so if we have to fall back to Non-Steam Name (i.e. no entered custom name) then only do so if we don't have an ID given
if [[ -n "$NOSTAPPNAME" ]] ; then
NOSTSEARCHNAME="$NOSTAPPNAME"
NOSTSEARCHNAME="${NOSTSEARCHNAME// /_}"
fi
if [[ "${USE_STEAMAPPID_AS_NAME:-0}" == "1" ]]; then
getSteamId > /dev/null
[[ -n "${SteamAppId}" ]] && NOSTAPPNAME="${SteamAppId}"
fi
# Store the ID we searched with, so getSteamGridDBNonSteamIcon doesn't have to hit the endpoint again and we save an API call
if [[ "$DOWNLOAD_STEAM_GRID" == "1" ]] ; then
commandlineGetSteamGridDBArtwork --search-name="$NOSTSEARCHNAME" --filename-appid="$NOSTAIDGRID" "$NOSTSEARCHFLAG" --apply --replace-existing
fi
{
printf '\x00%s\x00' "$NEWSET"
printf '\x02%s\x00%b' "appid" "$NOSTAIDVDFHEXFMT"
printf '\x01%s\x00%s\x00' "AppName" "$NOSTAPPNAME"
printf '\x01%s\x00%s\x00' "Exe" "$NOSTEXEPATH"
printf '\x01%s\x00%s\x00' "StartDir" "$NOSTSTDIR"
printf '\x01%s\x00%s\x00' "icon" "$NOSTICONPATH"
printf '\x01%s\x00%s\x00' "ShortcutPath" ""
printf '\x01%s\x00%s\x00' "LaunchOptions" "$NOSTLAOP"
addEntry
printf '\x02%s\x00%b\x00\x00\x00' "IsHidden" "\x0${NOSTHIDE:-0}"
printf '\x02%s\x00%b\x00\x00\x00' "AllowDesktopConfig" "\x0${NOSTADC:-0}"
if [[ "${DOWNLOAD_STEAM_GRID}" == "1" ]] ; then
NOSTAPPNAME="${name_desktop}"
pw_start_progress_bar_block "Please wait. downloading covers for ${NOSTAPPNAME}"
addGrids
pw_stop_progress_bar
fi
# These values are now stored in localconfig.vdf under the "Apps" section,
# under a block using the Non-Steam Game Signed 32bit AppID. (i.e., -223056321)
# This is handled by `updateLocalConfigAppsValue` below
#
# Unsure if required, but still write these to the shortcuts.vdf file for consistency
printf '\x02%s\x00%b\x00\x00\x00' "AllowOverlay" "\x0${NOSTAO:-0}"
printf '\x02%s\x00%b\x00\x00\x00' "OpenVR" "\x0${NOSTVR:-0}"
restartSteam
fi
else
return 1
fi
}
printf '\x02%s\x00\x00\x00\x00\x00' "Devkit"
printf '\x01%s\x00\x00' "DevkitGameID"
printf '\x02%s\x00\x00\x00\x00\x00' "DevkitOverrideAppID"
printf '\x02%s\x00\x00\x00\x00\x00' "LastPlayTime"
printf '\x01%s\x00\x00' "FlatpakAppID"
printf '\x00%s\x00' "tags"
printf '\x08\x08\x08\x08'
} >> "$SCPATH"
if [[ "$DOWNLOAD_STEAM_GRID" == "1" ]] ; then
setGameArt "$NOSTAIDGRID" --hero="$NOSTGHERO" --logo="$NOSTGLOGO" --boxart="$NOSTGBOXART" --tenfoot="$NOSTGTENFOOT" "$SGACOPYMETHOD"
fi

@ -17,7 +17,7 @@ if [[ -n "$DUPLICATE" ]] ; then
exit 1
fi
for ppdb in "$SELF_PATH/portwine_db/"* ; do
for ppdb in $SELF_PATH/portwine_db/* ; do
echo "$ppdb"
sed -i '/##export/d' "$ppdb"

File diff suppressed because it is too large Load Diff

@ -5,7 +5,8 @@
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG_9-12-2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DEFAULT"
export PW_NO_ESYNC="1"
export PW_NO_FSYNC="0"
export PW_WINE_FULLSCREEN_FSR="1"
@ -17,6 +18,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"
@ -25,3 +27,5 @@ export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL=""
export PW_WINE_CPU_TOPOLOGY="disabled"
export PW_MESA_GL_VERSION_OVERRIDE="disabled"
export PW_LOCALE_SELECT="disabled"
export PORTPROTON_NAME="ACIII"

@ -17,6 +17,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"

@ -8,3 +8,4 @@ export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_USE_GSTREAMER="1"
export PW_WINE_USE="PROTON_LG"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"

@ -20,6 +20,7 @@ export PW_PREFIX_NAME="ALONE_IN_THE_DARK"
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_GALLIUM_ZINK="0"

@ -1,17 +1,32 @@
#!/usr/bin/env bash
#Author: deck
#Bioshock2HD.exe
#Rating=5
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DEFAULT"
export PW_VKBASALT="1"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="BIOSHOK"
export PORTPROTON_NAME="BioShock 2"
export PW_NO_ESYNC="1"
export PW_NO_FSYNC="1"
export PW_WINE_FULLSCREEN_FSR="1"
export PW_HIDE_NVIDIA_GPU="0"
export PW_VIRTUAL_DESKTOP="0"
export PW_USE_TERMINAL="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_EAC_AND_BE="0"
export PW_VKBASALT_EFFECTS="FilmGrain2:Curves:cas"
export PW_VKBASALT_FFX_CAS="1"
export PW_DINPUT_PROTOCOL="0"
export PW_USE_NATIVE_WAYLAND="0"
export LAUNCH_PARAMETERS=""
export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL=""
export WINEDLLOVERRIDES=""
export PW_WINE_CPU_TOPOLOGY="disabled"
export PW_MESA_GL_VERSION_OVERRIDE="disabled"
export PW_VKD3D_FEATURE_LEVEL="disabled"
export PW_LOCALE_SELECT="disabled"

@ -1,17 +1,8 @@
#!/usr/bin/env bash
#Author: deck
#BioshockHD.exe
#Rating=5
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DEFAULT"
export PW_VKBASALT="1"
export PW_NO_ESYNC="1"
export PW_NO_FSYNC="1"
export PW_USE_D3D_EXTRAS="1"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_EAC_AND_BE="0"
export PW_VKBASALT_EFFECTS="FilmGrain2:Curves:cas"
export PW_VKBASALT_FFX_CAS="1"
export PW_PREFIX_NAME="BIOSHOK"
export PORTPROTON_NAME="Bioshock"

@ -5,10 +5,6 @@
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PW_WINE_USE=PROTON_LG
export PW_PREFIX_NAME="BLACK_DESERT_ONLINE"
# export DISABLE_CP_DEFPFX=1
export PORTPROTON_NAME="BlackDesertLauncher"
export FILE_DESCRIPTION="BlackDesertLauncher"
export WINE_DISABLE_KERNEL_WRITEWATCH="1"
export DXVK_CONFIG="dxgi.syncInterval=0"

@ -5,5 +5,5 @@
#####################examples###########################
export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe="
export PW_REDUCE_PULSE_LATENCY=1
export LAUNCH_PARAMETERS="--launcher-skip"
export LAUNCH_PARAMETERS=("--launcher-skip") # Additional launch options
export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue

@ -4,9 +4,11 @@
#Rating=5
##############################################
#export PW_COMMENT_DB="PortWINE database file for Epic Games Launcher"
export PW_VULKAN_USE=1
export LAUNCH_PARAMETERS="-SkipBuildPatchPrereq"
export PW_DLL_INSTALL="vcrun2012 vcrun2013 vcrun2019"
export PW_WINE_USE="WINE_LG"
export PW_USE_D3D_EXTRAS=1
export PW_WINE_USE="PROTON_LG"
export WINEDLLOVERRIDES="vulkan-1=n,b"
# add_in_start_portwine () {
# regdlloverrides "RDR2.exe:vulkan-1=n,b"

@ -4,5 +4,5 @@
#Rating=1-5
################################################
export LAUNCH_PARAMETERS="-nomemrestrict -norestrictions -percentvidmem 100 -availablevidmem 2048 -noprecache -novblank -heapsize 2097152" # Additional launch options
export PW_NO_ESYNC=0
export PW_NO_ESYNC=1
export PW_NO_FSYNC=1

@ -1,12 +1,10 @@
#!/usr/bin/env bash
#Author: fidel
#Genshin Impact.exe
#GenshinImpact.exe
#hoyoplay_launcher_pp.exe
#Rating=5
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_VULKAN_USE="2"
export PW_PREFIX_NAME="HO_YO_PLAY"
export PW_WINE_USE="WINE_LG"
export LAUNCH_PARAMETERS="-platform_type CLOUD_THIRD_PARTY_PC"
export PW_FORCE_LARGE_ADDRESS_AWARE="0"

@ -3,18 +3,16 @@
#HogwartsLegacy.exe
#Rating=1-5
#####################examples###########################
if [[ $(cat /proc/cpuinfo | grep umip) ]] ; then
if [[ "$LANGUAGE" == "ru" ]] ; then
export PW_COMMENT_DB="Если у вас игра не запускается, то необходимо добавить
if [[ "$LANGUAGE" == "ru" ]] ; then
export PW_COMMENT_DB="Если у вас игра не запускается, то необходимо добавить
clearcpuid=514 в раздел GRUB_CMDLINE_LINUX_DEFAULT
в файле /etc/default/grub. Для упрощения можно использовать
утилиту Grub Customizer"
else
export PW_COMMENT_DB="If your game does not start, you need to add
else
export PW_COMMENT_DB="If your game does not start, you need to add
clearcpuid=514 to the GRUB_CMDLINE_LINUX_DEFAULT section
in the /etc/default/grub file. To simplify things, you can use
Grub Customizer utility"
fi
fi
export PW_VULKAN_USE="2"

@ -1,7 +0,0 @@
#!/usr/bin/env bash
#Author: Mels
#KingdomCome.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
# export LAUNCH_URI="com.epicgames.launcher://apps/Eel?action=launch&silent=true"

@ -1,7 +0,0 @@
#!/usr/bin/env bash
#Author: Mels
#MK10.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PORTPROTON_NAME="Mortal Kombat XL"

@ -17,6 +17,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"

@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: kbp95
#speed.exe
#Rating=5
################################################
export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="dinput8"

@ -1,9 +0,0 @@
#!/usr/bin/env bash
#Author: maximus
#NFSC.exe / Need for Speed Carbon
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PORTPROTON_NAME="NFSC"
export WINEDLLOVERRIDES="dinput8=n,b"
export PW_MESA_VK_WSI_PRESENT_MODE="fifo"

@ -1,7 +0,0 @@
#!/usr/bin/env bash
#Author: deck
#NieRAutomata.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PORTPROTON_NAME="NieRAutomata"

@ -17,6 +17,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"

@ -1,10 +0,0 @@
#!/usr/bin/env bash
#Author: prefix
#PlayRDR.exe
#Rating=1-5
export PW_WINE_USE="WINE_LG"
export LAUNCH_PARAMETERS="-nomemrestrict -norestrictions -percentvidmem 100 -availablevidmem 2048 -noprecache -novblank -heapsize 2097152"
export PW_NO_ESYNC="0"
export PW_NO_FSYNC="1"
export PORTPROTON_NAME="PlayRDR"
export PW_VULKAN_USE="2"

@ -1,13 +0,0 @@
#!/usr/bin/env bash
#Author: Dervart
#Saturn.exe
#Rating=1-5
if [[ "$LANGUAGE" == "ru" ]] ; then
export PW_COMMENT_DB="При сворачивании или переключении фокуса окна возможны вылеты игры.\nРекомендуется использовать GAMESCOPE, либо VIRTUAL_DESKTOP в настройках"
else
export PW_COMMENT_DB="When minimizing or switching the window focus, the game may crash.\nRecommended to use GAMESCOPE or VIRTUAL_DESKTOP in the SETTINGS"
fi
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="NINSAR"
export PORTPROTON_NAME="Saturn"

@ -1,17 +1,6 @@
#!/usr/bin/env bash
#Author: esa, fidel
#Author: esa
#Singularity.exe
#Rating=5
#Rating=1-5
################################################
export PW_DLL_INSTALL="physx"
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PW_VKBASALT_EFFECTS="FilmGrain2:Curves:cas"
export PW_VKBASALT_FFX_CAS="0.75"
export PW_VKBASALT="1"
export PW_NO_ESYNC="1"
export PW_NO_FSYNC="0"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_EAC_AND_BE="0"

@ -17,6 +17,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"

@ -17,6 +17,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"

@ -1,19 +0,0 @@
#!/usr/bin/env bash
#Author: fidel
#TimeShift.exe
#Rating=5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="DEFAULT"
export PW_VKBASALT="1"
export PW_NO_ESYNC="1"
export PW_NO_FSYNC="1"
export PW_WINE_FULLSCREEN_FSR="1"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_EAC_AND_BE="0"
export PW_WINE_CPU_TOPOLOGY="4:0,1,2,3"
export PW_VKBASALT_EFFECTS="FilmGrain2:Curves:cas"
export PW_VKBASALT_FFX_CAS="0.50"
export PW_VIRTUAL_DESKTOP="1"

@ -1,10 +1,8 @@
#!/usr/bin/env bash
#Author: chal55rus
#UbisoftConnect.exe
#UbisoftGameLauncher.exe
#UbisoftGameLauncher64.exe
#upc.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=2
export PW_VULKAN_USE=1
export PW_DLL_INSTALL=""
#####################examples###########################

@ -10,5 +10,6 @@ export WINEDLLOVERRIDES="vulkan-1=n,b"
export PW_NO_ESYNC="1"
export PW_USE_D3D_EXTRAS="1"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export LAUNCH_PARAMETERS=""

@ -1,11 +0,0 @@
#!/usr/bin/env bash
#Author: minergenon
#elsword.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="ELSWORD"
export PORTPROTON_NAME="Elsword"
export FILE_DESCRIPTION="Elsword Patcher"
# export PW_VULKAN_USE="0"
# export RADV_PERFTEST="aco"

@ -15,12 +15,13 @@ if [[ "${DESKTOP_SESSION}" =~ "gnome" ]] \
fi
export PW_WINDOWS_VER="10"
export PW_WINE_USE="WINE_LG"
export PW_USE_WINE_DXGI="0"
export PW_VULKAN_USE="2"
export PW_USE_WINE_DXGI="1"
export PW_VULKAN_USE="1"
export PW_USE_GSTREAMER="0"
export PW_PREFIX_NAME="EVE_ONLINE"
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="0"
export PW_USE_SHADER_CACHE="0"
export PW_DLL_INSTALL="vcrun2022 d3dcompiler_47 tahoma arial" # msdelta
export WINEDLLOVERRIDES="msvcp140,msvcp140_1=n"

@ -1,7 +0,0 @@
#!/usr/bin/env bash
#Author: fidel
#FSonora+DLC.exe
#Rating=1-5
#####################examples###########################
export WINEDLLOVERRIDES="ddraw=n,b"
export PW_WINE_USE="WINE_LG"

@ -13,4 +13,4 @@ export PW_USE_GAMEMODE="0"
export PW_PREFIX_NAME="DOTNET"
export PW_DLL_INSTALL=""
export PW_DISABLED_CREATE_DB="1"
export PW_WINE_USE="WINE_LG"

@ -0,0 +1,16 @@
#!/usr/bin/env bash
#Author: linux-gaming.ru
#setup.exe
#.msi
#Rating=5
################################################
export PW_DISABLED_CREATE_DB="1"
export PW_VULKAN_USE="1"
export PW_MANGOHUD="0"
export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_USE_GAMEMODE="0"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_DLL_INSTALL=""
# export WINEDLLOVERRIDES="mscoree,mshtml="
export PW_WINE_USE="WINE_LG"

@ -1,11 +0,0 @@
#!/usr/bin/env bash
#Author: maximus
#speed.exe / Need for Speed - Most Wanted
#Rating=1-5
################################################
export PW_VULKAN_USE="2"
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="dinput8=n,b"
export PORTPROTON_NAME="speed"
export PW_WINE_USE="PROTON_LG"
export PW_MESA_VK_WSI_PRESENT_MODE="relaxed"

@ -1,8 +0,0 @@
#!/usr/bin/env bash
#Author: maximus
#SPEED2.exe / Need For Speed Underground 2
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PORTPROTON_NAME="SPEED2"
export WINEDLLOVERRIDES="dinput8=n,b"

@ -1,7 +0,0 @@
#!/usr/bin/env bash
#Author: licrit
#vcNElaunch.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="DOTNET"

@ -7,3 +7,4 @@ export PW_WINDOWS_VER="10"
export PW_VULKAN_USE="2"
export PW_PREFIX_NAME="DEFAULT"
export PW_USE_D3D_EXTRAS="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="0"

@ -9,6 +9,7 @@ export PW_DISABLED_CREATE_DB="1"
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png"
export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_DLL_INSTALL=""
export WINEDLLOVERRIDES="mscoree,mshtml="
export DISABLE_CP_DEFPFX="1"

@ -9,6 +9,7 @@ export PW_DISABLED_CREATE_DB="1"
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png"
export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_DLL_INSTALL=""
export WINEDLLOVERRIDES="mscoree,mshtml="
export DISABLE_CP_DEFPFX="1"

@ -19,6 +19,7 @@ export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_SHADER_CACHE="1"
export PW_DINPUT_PROTOCOL="0"
export PW_USE_NATIVE_WAYLAND="0"

@ -3,10 +3,10 @@
# type: games
# name: Lesta Game Center
# image: lgc
# info_en: Launcher for Lesta Games studio games.
# info_ru: Лаунчер для игр Lesta Games.
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS="/VERYSILENT"
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Lesta_Game_Center_Install_RU.exe"
export PW_PREFIX_NAME="LGC"
@ -14,7 +14,7 @@ start_portwine
if try_download "https://redirect.lesta.ru/LGC/Lesta_Game_Center_Install_RU.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Lesta Game Center."
pw_start_progress_bar_install_game "Lesta Game Center"
pw_kill_autostart lgc.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/ProgramData/Lesta/GameCenter/api/lgc_api.exe"

@ -3,9 +3,10 @@
# type: games
# name: vkPlay Games Center
# image: mygames
# info_en: Launcher for the VK Play game library.
# info_ru: Лаунчер для библиотеки игр VK Play.
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("")
export PW_PREFIX_NAME="VK_PLAY"
export PW_AUTOINSTALL_EXE="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/AppData/Local/VKPlayLoader.exe"
export WINEDLLOVERRIDES="mscoree,mshtml="

@ -3,14 +3,13 @@
# type: games
# name: Epic Games Launcher
# image: epicgames
# info_en: Launcher for the Epic Games game library.
# info_ru: Лаунчер для библиотеки игр Epic Games.
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS="/q"
export LAUNCH_PARAMETERS=("/q" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
export PW_USE_D3D_EXTRAS=1
export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher"
export PW_WINE_USE="WINE_LG"
# sed -i '/Epic Games/d' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/*.reg >/dev/null
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"

@ -3,8 +3,8 @@
# type: games
# name: Battle.net Launcher
# image: battle_net
# info_en: Launcher for Activision and Blizzard studio games.
# info_ru: Лаунчер для игр Activision и Blizzard.
# info_en:
# info_ru:
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup.exe"
export PW_WINE_USE="WINE_LG"

@ -1,26 +0,0 @@
#!/usr/bin/env bash
# Author: chal55rus
# type: games
# name: Age of Empires Online
# image: celeste
# info_en: A multiplayer real-time strategy game where players build their civilizations, gather resources, and battle against opponents. The game features a unique economic system and the ability to develop cities through various missions and quests.
# info_ru: Многопользовательская стратегия в реальном времени, где игроки строят свои цивилизации, собирают ресурсы и сражаются с противниками. Игра предлагает уникальную экономическую систему и возможность развивать свои города с помощью различных миссий и задач.
########################################################################
export PW_PREFIX_NAME="AGE_OF_EMPIRES_ONLINE"
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Celeste.Installer.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Age of Empires Online"
start_portwine
if try_download "https://github.com/ProjectCeleste/Celeste.Launcher/releases/latest/download/Celeste.Installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Age of Empires Online."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Roaming/ProjectCeleste/Celeste Launcher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

@ -1,26 +0,0 @@
#!/usr/bin/env bash
# Author: chal55rus
# type: games
# name: Albion Online
# image: albiononline
# info_en: A multiplayer sandbox MMORPG where players can explore an open world, engage in crafting, gather resources, and battle against other players. The game features a unique class system that allows players to change their roles based on the gear they equip.
# info_ru: Многопользовательская песочница в жанре MMORPG, где игроки могут исследовать открытый мир, заниматься ремеслом, добычей ресурсов и сражаться с другими игроками. Игра предлагает уникальную систему классов, позволяющую игрокам изменять свои роли в зависимости от выбранного снаряжения.
########################################################################
export PW_PREFIX_NAME="ALBION_ONLINE"
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/albion-online-setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Albion Online"
start_portwine
if try_download "https://live.albiononline.com/clients/20240918100234/albion-online-setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Albion Online."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/AlbionOnline/launcher/AlbionLauncher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

@ -3,10 +3,10 @@
# type: games
# name: Ankama Launcher
# image: ankama
# info_en: Launcher for Ankama studio games.
# info_ru: Лаунчер для игр Ankama.
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS="/S"
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama-Setup.exe"
start_portwine
if try_download "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}" no_mirror

@ -3,10 +3,10 @@
# type: games
# name: Anomaly Zone
# image: anomalyzone
# info_en: An action game about stalkers, where players explore mysterious worlds and fight against a variety of opponents. The game offers an exciting storyline and the opportunity to improve the character by unlocking new abilities and equipment.
# info_ru: Экшен-игра про сталкеров, где игроки исследуют таинственные миры и сражаются с разнообразными противниками. Игра предлагает захватывающий сюжет и возможность улучшать персонажа, открывая новые способности и снаряжение.
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/az_webinst.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Anomaly Zone"

@ -3,11 +3,11 @@
# type: games
# name: Arizona Games Launcher
# image: arizonagameslauncher
# info_en: Launcher for the Arizona Role Play game.
# info_ru: Лаунчер для игры Arizona Role Play.
# info_en:
# info_ru:
########################################################################
export PW_PREFIX_NAME="ARIZONA_GAMES_LAUNCHER"
export LAUNCH_PARAMETERS="/S"
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Arizona Installer.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Arizona Games Launcher"

@ -1,24 +0,0 @@
#!/usr/bin/env bash
# Author: if984 (Maksim K.)
# type: emulators
# name: Azahar
# image: azahar
# info_en: An open source Nintendo 3DS emulator based on Citra, designed to run games with support for enhanced resolutions and advanced emulation settings.
# info_ru: Эмулятор Nintendo 3DS с открытым исходным кодом на основе Citra, созданный для запуска игр с поддержкой улучшенного разрешения и расширенных настроек эмуляции.
##########################################################################
# export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/azahar-2120.3-windows-msys2-installer.exe"
start_portwine
if try_download "https://github.com/azahar-emu/azahar/releases/download/2120.3/azahar-2120.3-windows-msys2-installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Azahar."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files/Azahar/azahar.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Azahar"
portwine_create_shortcut
fi
stop_portwine

@ -3,16 +3,16 @@
# type: games
# name: Black Desert Online (RU)
# image: bdo
# info_en: A massively multiplayer online role-playing game set in an open world, renowned for its stunning graphics and deep character customization system. Players can explore vast lands, complete quests, engage in PvP battles, and participate in various crafting activities.
# info_ru: Многопользовательская ролевая игра с открытым миром, известная своей потрясающей графикой и глубокой системой кастомизации персонажей. Игроки могут исследовать обширные земли, выполнять задания, участвовать в PvP-сражениях и заниматься различными ремеслами.
# info_en:
# info_ru:
########################################################################
export PW_PREFIX_NAME="BLACK_DESERT_ONLINE"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BlackDesert_Installer_RU.exe"
export LAUNCH_PARAMETERS="/silent"
export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE="1"
export PW_USE_D3D_EXTRAS="1"
export PW_WINE_USE="PROTON_LG"
export PW_VULKAN_USE=1
export PW_USE_D3D_EXTRAS=1
export PW_WINE_USE=PROTON_LG
# export DISABLE_CP_DEFPFX=1
pw_clear_pfx

@ -3,11 +3,11 @@
# type: games
# name: Blood and Soul
# image: bloodandsoul
# info_en: A multiplayer role-playing game featuring a rich combat system and vibrant graphics, inspired by Eastern mythology. Players can choose from various classes, explore unique locations, and battle powerful foes.
# info_ru: Многопользовательская ролевая игра с богатой системой боя и яркой графикой, вдохновленная восточной мифологией. Игроки могут выбирать из различных классов, исследовать уникальные локации и сражаться с могущественными врагами.
# info_en:
# info_ru:
########################################################################
export PW_PREFIX_NAME="BLOOD_AND_SOUL"
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bs-install.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Blood and Soul"

@ -1,27 +0,0 @@
#!/usr/bin/env bash
# Author: chal55rus
# type: games
# name: Broken Ranks (ENG)
# image: brokenranks
# info_en: An MMORPG game offering deep sleep and a unique combat system that focuses on the strategy and activities of the person. Players explore a dark world full of intrigue and danger, developing their characters and making key decisions that affect the course of history.
# info_ru: MMORPG игра, предлагающая глубокий сон и уникальную боевую систему, которая ориентирует внимание на стратегию и деятельность персоны. Игроки исследуют мрачный мир, полный интриг и опасностей, развивая своих героев и принимая ключевые решения, влияющие на ход истории.
########################################################################
export PW_PREFIX_NAME="BROKEN_RANKS"
export LAUNCH_PARAMETERS="/q"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BrokenRanksInstaller.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Broken Ranks"
start_portwine
if try_download "https://eu.brokenranks.com/BrokenRanksInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Broken Ranks."
pw_kill_autostart ConsoleLauncher.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Whitemoon/BrokenRanks/ConsoleLauncher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut
fi
stop_portwine

Some files were not shown because too many files have changed in this diff Show More