Compare commits

...

211 Commits

Author SHA1 Message Date
81738d5584 Scripts version 2158 2023-01-29 17:58:52 +03:00
81947443a7 Scripts version 2157 2023-01-22 19:24:34 +03:00
d6ed28c382 Scripts version 2156 2023-01-22 00:53:31 +03:00
3584b832a3 Scripts version 2155 2023-01-21 15:54:13 +03:00
8a83ff1745 Scripts version 2154 2022-12-24 21:49:54 +03:00
8ef052acd4 Scripts version 2153-2 2022-12-19 21:15:58 +03:00
db70aaebfa Scripts version 2153 2022-12-19 21:15:17 +03:00
62005d5bde Scripts version 2152 2022-12-18 23:19:08 +03:00
d7aac3dee6 pre-update for PoE 2022-12-16 11:41:21 +03:00
8d03563dbc Scripts version 2151 2022-12-11 23:04:42 +03:00
bd440ce8e7 Scripts version 2150 2022-12-11 19:07:17 +03:00
cc8529c551 Scripts version 2149-4 2022-12-10 21:13:47 +03:00
45c5e052d6 Scripts version 2149-3 2022-12-10 21:12:37 +03:00
4bf9cb677f Scripts version 2149-2 2022-12-10 21:10:00 +03:00
d2cb6fefee Scripts version 2149 2022-12-10 21:09:25 +03:00
13142f8ed6 Merge pull request #27 from zorn-v/patch-1
Use ENG locale if missing lang
2022-12-08 22:09:17 +03:00
e10facc9ba Use ENG as default lang 2022-12-08 03:56:24 +10:00
c584c3697d Use ENG locale if missing lang 2022-12-08 03:48:36 +10:00
4a083a9300 Update img for gui 2022-12-06 20:30:36 +03:00
5f4bdc536c Scripts version 2148 2022-12-06 20:22:13 +03:00
d2ab7a6c18 Scripts version 2147 2022-12-02 19:20:57 +03:00
5f02f61550 Scripts version 2146 2022-12-01 20:37:35 +03:00
15b84b931b Scripts version 2145 2022-11-22 18:28:21 +03:00
9cc48c4761 Scripts version 2144 2022-11-21 21:10:42 +03:00
b9754bfab2 Scripts version 2144 2022-11-21 21:10:15 +03:00
88baf8b0d2 test git pull from ftp 2022-11-20 15:11:08 +03:00
7dc2676de8 Scripts version 2143 - fix version 2022-11-17 21:52:42 +03:00
0c8b21648c Scripts version 2143 2022-11-17 21:32:28 +03:00
406de39ba5 Scripts version 2142 2022-11-16 20:51:16 +03:00
1db0baad5b Scripts version 2141 2022-11-11 01:02:47 +03:00
41bc48fb1f Scripts version 2140 2022-11-11 00:49:39 +03:00
d8f96debe9 Scripts version 2139 2022-11-06 17:16:02 +03:00
21c21f8769 Scripts version 2138 2022-10-31 21:46:00 +03:00
9d4934ca35 Scripts version 2137 2022-10-26 18:56:14 +03:00
cbf9648193 Scripts version 2136 2022-10-12 20:11:24 +03:00
c826f58567 Scripts version 2135 2022-10-09 21:18:44 +03:00
dbdc0d5a77 Scripts version 2134 2022-10-09 18:52:00 +03:00
6620fa6582 Scripts version 2133 2022-10-05 03:37:35 +03:00
787182f9c3 Scripts version 2132 2022-09-27 22:32:09 +03:00
3100a30ba6 Fix installing from AUR 2022-09-25 21:44:21 +03:00
1de526ba37 Scripts version 2131-2 2022-09-24 20:46:18 +03:00
39549a1832 Scripts version 2131 2022-09-24 20:43:43 +03:00
ae12e2c7a6 Scripts version 2130 (PROTON_LG) 2022-09-22 22:19:50 +03:00
ec2fe82d68 Scripts version 2129 2022-09-12 23:43:31 +03:00
ca019feeba Scripts version 2128 2022-09-12 21:56:20 +03:00
5d5b24df32 Scripts version 2127 2022-08-29 22:20:36 +03:00
ecc931fae3 Scripts version 2126 2022-08-28 12:40:08 +03:00
5406e3b792 hotfix start.sh 2022-08-21 20:39:42 +03:00
cc7f5c328c Scripts version 2124 2022-08-21 19:36:10 +03:00
a2b5385071 Scripts version 2123 2022-07-30 15:20:35 +03:00
8b442cf9ef Scripts version 2122 2022-07-28 22:55:31 +03:00
9e07d5bc97 Scripts version 2121 2022-07-23 11:59:50 +03:00
2029bb8275 Scripts version 2120 2022-06-26 17:49:07 +03:00
bab528078e Scripts version 2119 2022-06-21 21:12:10 +03:00
d2410479d8 Scripts version 2118 2022-06-15 23:02:23 +03:00
366cd15995 Scripts version 2117 2022-06-06 21:35:16 +03:00
3f0f52669f Merge pull request #16 from an9949an/master
Add info to README.md
2022-06-06 12:54:12 +03:00
f74a051301 Add info to README.md 2022-06-06 11:54:17 +03:00
29fea96413 Scripts version 2116 2022-06-04 12:17:25 +03:00
6103a61657 Scripts version 2115 2022-05-31 20:37:54 +03:00
caa498a99d Scripts version 2114 2022-05-31 15:55:02 +03:00
da38a958ac Scripts version 2113 2022-05-31 15:25:48 +03:00
bcc3387749 Scripts version 2112.1 2022-05-31 15:16:28 +03:00
564ed9aaf6 Scripts version 2112 2022-05-31 15:11:57 +03:00
3ba7742e7f Scripts version 2111 2022-05-31 15:07:17 +03:00
efaeef7749 Scripts version 2110 2022-05-30 22:40:28 +03:00
5fa3dd120c Scripts version 2109 2022-05-28 14:39:08 +03:00
72e773cfa0 Scripts version 2108 2022-05-27 00:41:45 +03:00
29eb9ba79f Scripts version 2107 2022-05-24 22:08:54 +03:00
f411b5a27c Scripts version 2106 2022-05-14 01:17:04 +03:00
6b7621b251 Scripts version 2105 2022-05-06 15:08:59 +03:00
e99a88355a Scripts version 2104 2022-04-18 23:29:17 +03:00
9d35697588 Scripts version 2103 2022-04-18 21:08:20 +03:00
d992080a2e Scripts version 2102 2022-04-17 22:31:04 +03:00
cd9b43f1f5 Scripts version 2101 2022-04-16 21:51:58 +03:00
42fa075e3f Scripts version 2100.1 2022-04-16 18:35:49 +03:00
a09063c284 Scripts version 2100 2022-04-16 17:45:16 +03:00
cd5f85371f Scripts version 2098 2022-04-13 02:20:56 +03:00
1c252a12a8 Scripts version 2097 2022-04-13 01:50:53 +03:00
0fa5790b42 Scripts version 2096 2022-04-03 21:07:07 +03:00
76e52f5a78 Scripts version 2095 2022-03-20 17:57:47 +03:00
2303124f30 Scripts version 2094 2022-03-20 15:08:22 +03:00
c68e687948 Scripts version 2093 2022-03-19 18:02:49 +03:00
a74978b822 Scripts version 2092.1 2022-02-24 23:38:47 +03:00
2dd5edb03e Scripts version 2092 2022-02-24 22:43:39 +03:00
79cc8e6c8e PortProton_1.0 2022-02-24 20:28:41 +03:00
fb933afd27 PortProton_v1.0 2022-02-24 20:26:38 +03:00
9f5c39ec5e Scripts version 2090.2 2022-02-24 18:37:04 +03:00
1be7737322 Scripts version 2090.1 2022-02-24 18:36:59 +03:00
892de157cc Scripts version 2086 - 2089 2022-02-24 14:23:11 +03:00
cb1f281c86 Scripts version 2085-2 2022-02-12 14:41:11 +03:00
0e4ff2daf6 Scripts version 2085 2022-02-12 14:40:49 +03:00
f6764ec43d Scripts version 2084 2022-02-09 15:44:17 +03:00
ed60845647 Scripts version 2083 2022-02-07 20:47:09 +03:00
89b8c3cfdb Scripts version 2081 2022-02-06 18:30:04 +03:00
8d0425664e Scripts version 2081 2022-02-05 12:55:35 +03:00
b36c15db02 Scripts version 2080 2022-02-03 13:07:54 +03:00
d13c62e068 Scripts version 2079 2022-02-02 18:37:06 +03:00
df6439e455 Scripts version 2078-1 2022-02-01 17:08:39 +03:00
2aba122784 Scripts version 2078 2022-01-30 16:33:34 +03:00
1c80e99146 ###Scripts version 2077### 2022-01-29 16:17:42 +03:00
9df1ff96dd ###Scripts version 2076### 2022-01-26 18:49:15 +03:00
cb7dffc70a ###Scripts version 2075### 2022-01-26 16:29:41 +03:00
307b554b9b ###Scripts version 2074### 2022-01-26 14:09:48 +03:00
4062645eb2 ###Scripts version 2073### 2022-01-26 13:57:35 +03:00
6f8de09996 ###Scripts version 2072### 2022-01-26 13:37:44 +03:00
e9c3d0fdd3 ###Scripts version 2071### 2022-01-26 02:20:41 +03:00
168f8c4d10 ###Scripts version 2070### 2022-01-24 20:32:48 +03:00
f15705a11b ###Scripts version 2069### 2022-01-23 23:29:27 +03:00
1c0d66c3fc ###Scripts version 2068### 2022-01-23 18:52:47 +03:00
f1e10501e6 ###Scripts version 2067### 2022-01-23 18:19:39 +03:00
54e831cea5 ###Scripts version 2066### 2022-01-23 13:13:50 +03:00
96b5d84e86 ###Scripts version 2065### 2022-01-22 19:43:52 +03:00
9be06fb174 Fix GUI update prefix from portproton 2 2022-01-21 21:46:39 +03:00
fcd0bff7f4 Fix GUI update prefix from portproton 2022-01-21 21:28:11 +03:00
366d4ce480 ###Scripts version 2064### 2022-01-21 19:49:13 +03:00
f421687545 ###Scripts version 2063### 2022-01-21 01:23:16 +03:00
08d8b4eb3d update portproton installation script 4 2022-01-15 22:35:02 +03:00
d0d8646919 update portproton installation script 3 2022-01-15 19:19:45 +03:00
290ff8b18c update portproton installation script 2 2022-01-15 19:08:20 +03:00
e6440aff91 update portproton installation script 2022-01-15 18:59:32 +03:00
b103779c44 ###Scripts version 2061### 2022-01-15 18:25:41 +03:00
47401681ff update post-install script 4 2022-01-15 18:14:21 +03:00
a1cf3e3d83 update post-install script 3 2022-01-15 17:48:31 +03:00
ab837e46e0 update post-install script 2 2022-01-15 17:43:37 +03:00
0c50d3df93 update post-install script 2022-01-15 17:25:22 +03:00
e09bdb7006 Fix for portproton installer 2022-01-13 22:10:28 +03:00
8d9e8b8ce3 Scripts 2060 2022-01-13 19:57:53 +03:00
842d43a35d Create LICENSE 2022-01-13 19:49:05 +03:00
bbf6b9f104 Scripts 2059 and new install 2022-01-13 17:59:48 +03:00
29d7110cd8 ###Scripts version 2058### 2021-12-24 20:35:20 +03:00
053b0a5583 ###Scripts version 2057### 2021-12-24 19:53:36 +03:00
2666f9e900 Scripts version 2056-1 2021-12-20 18:20:18 +03:00
f108cecbfb ###Scripts version 2056-2### 2021-12-16 20:04:00 +03:00
3659793b04 ###Scripts version 2056### 2021-12-16 19:32:16 +03:00
922ff25d5c ###Scripts version 2055-1### 2021-11-26 00:15:27 +03:00
846167f80f ###Scripts version 2055### 2021-11-25 22:59:41 +03:00
b696659f80 ###Scripts version 2054### 2021-11-24 17:07:10 +03:00
f54644ea6e Scripts version 2053 2021-11-20 11:13:04 +03:00
dfc1704b73 ###Scripts version 2052-5### 2021-11-19 21:49:38 +03:00
59c99944a5 ###Scripts version 2052-4### 2021-11-19 21:02:36 +03:00
c80d71ed3f ###Scripts version 2052-3### 2021-11-19 20:54:13 +03:00
b98ca471b7 ###Scripts version 2052-2### 2021-11-19 20:51:26 +03:00
d1bb1d7fa7 ###Scripts version 2052### 2021-11-19 20:44:45 +03:00
3c9288843f ###Scripts version 2051### 2021-11-17 09:49:03 +03:00
65ead2cae9 ###Scripts version 2050### 2021-11-17 00:37:29 +03:00
2125dce36b ###Scripts version 2049### 2021-11-16 23:09:37 +03:00
e1bca02c56 Scripts version 2048 2021-11-15 00:26:35 +03:00
51d569b6e6 Scripts version 2047 2021-11-14 18:22:14 +03:00
63beb66eb3 Scripts version 2046 2021-11-10 01:04:16 +03:00
fdf7ab4674 ###Scripts version 2045### 2021-11-10 00:13:15 +03:00
0191ea26f6 Scripts version 2044-2 2021-11-08 17:41:57 +03:00
f68fead817 Scripts version 2044 2021-11-05 21:47:51 +03:00
a03a9bda4c Scripts version 2043 2021-11-04 16:30:13 +03:00
bcb10d5555 Scripts version 2041 2021-11-04 13:44:26 +03:00
47084a9bff Merge pull request #10 from aldiserg/master
Installed WINE tab has been added
2021-11-02 17:43:57 +03:00
55b72ef84a installed tab has been added 2021-11-02 15:16:17 +03:00
07aee4d82e installed tab has been added 2021-11-02 15:05:01 +03:00
5be084cfe6 ###Scripts version 2041### 2021-10-29 21:59:22 +03:00
e450ccb6b4 ###Scripts version 2040### 2021-10-29 19:44:23 +03:00
bc4552ac05 ###Scripts version 2039### 2021-10-28 18:26:36 +03:00
771b0c060d ###Scripts version 2038### 2021-10-27 20:21:12 +03:00
e847eed3eb ###Scripts version 2037### 2021-10-26 20:26:03 +03:00
b77e0b2ffa ###Scripts version 2036### 2021-10-26 13:22:23 +03:00
1e0d6fea99 ###Scripts version 2035### 2021-10-24 13:20:45 +03:00
74fcce0427 ###Scripts version 2034### 2021-10-23 16:12:54 +03:00
1d2ba0669a ###Scripts version 2033### 2021-10-23 14:01:57 +03:00
480b54c13e ###Scripts version 2032### 2021-10-22 19:36:22 +03:00
d5c0fe04a5 ###Scripts version 2031-2### 2021-10-22 19:26:36 +03:00
f9d3213dd4 ###Scripts version 2031### 2021-10-22 19:09:21 +03:00
870126d13b ###Scripts version 2030### 2021-10-22 18:54:48 +03:00
110b221b33 ###Scripts version 2029### 2021-10-22 15:35:57 +03:00
c7b3a08bef ###Scripts version 2028### 2021-10-22 12:36:12 +03:00
6646485cfd ###Scripts version 2027### 2021-10-20 17:36:28 +03:00
2560a2a8d2 ###Scripts version 2026### 2021-10-18 19:33:52 +03:00
b534cfd89f ###Scripts version 2025### 2021-10-17 19:48:40 +03:00
602a7d3b39 ###Scripts version 2024### 2021-10-17 18:13:06 +03:00
db64dae0a9 ###Scripts version 2023### 2021-10-17 17:29:49 +03:00
9278a8d020 ###Scripts version 2022### 2021-10-17 17:12:12 +03:00
ad6fd6d8cb ###Scripts version 2021### 2021-10-16 19:38:54 +03:00
afcac3711d ###Scripts version 2020### 2021-10-15 16:59:24 +03:00
d2f1a29872 ###Scripts version 2019### 2021-10-15 16:29:07 +03:00
45a0c3a4ac ###Scripts version 2018### 2021-10-13 16:41:20 +03:00
d2f181bf3d ###Scripts version 2017### 2021-10-12 21:17:47 +03:00
2a86ac870b ###Scripts version 2016### 2021-10-07 17:58:10 +03:00
0449899d6f ###Scripts version 2015### 2021-10-05 13:16:27 +03:00
58ce3196dc ###Scripts version 2014### 2021-10-03 20:15:11 +02:00
b08281934b ###Scripts version 2013-2### 2021-09-23 19:43:16 +03:00
ccf6296baa ###Scripts version 2013### 2021-09-23 18:57:13 +03:00
bce579bfbd ###Scripts version 2012### 2021-09-17 22:57:39 +03:00
f869816cb4 ###Scripts version 2011### 2021-09-11 14:39:33 +03:00
03deeaa361 ###Scripts version 2010### 2021-09-05 22:00:33 +02:00
7eec1f9086 ###Scripts version 2009### 2021-09-05 14:47:21 +02:00
cb7ad7ec30 ###Scripts version 2008### 2021-09-04 12:49:27 +02:00
718af5eb05 ###Scripts version 2007### 2021-09-04 12:31:09 +02:00
e291a2e90d ###Scripts version 2006### 2021-09-03 18:17:42 +02:00
ea518e5f21 ###Scripts version 2005### 2021-09-01 13:11:49 +02:00
06e3953b19 ###Scripts version 2004-2### 2021-08-28 00:12:54 +03:00
5032d95a77 ###Scripts version 2004### 2021-08-28 00:11:48 +03:00
9bcb235657 ###Scripts version 2003### 2021-08-26 11:45:10 +03:00
73d12c0f39 ###Scripts version 2002-2### 2021-08-25 23:50:07 +03:00
8700a2c88d ###Scripts version 2002### 2021-08-25 23:47:59 +03:00
7415dcbc01 ###Scripts version 2001### 2021-08-25 23:33:45 +03:00
00c9d5d926 ###Scripts version 2000### 2021-08-25 11:12:22 +03:00
4e59d4b2f4 ###Scripts version 1123-2### 2021-07-31 11:54:36 +03:00
580c5d901a ###Scripts version 1123### 2021-07-31 11:54:00 +03:00
0bf4fe7816 ###Scripts version 1122### 2021-07-23 19:26:31 +03:00
9f0ad22d37 ###Scripts version 1121### 2021-07-22 17:20:40 +03:00
3e40e1bff5 ###Scripts version 1120### 2021-07-21 20:54:19 +03:00
088cdecda3 ###Scripts version 1119### 2021-07-16 20:31:05 +03:00
d88bf7fb38 ###Scripts version 1118### 2021-07-13 21:03:33 +03:00
291 changed files with 10303 additions and 2667 deletions

21
LICENSE Executable file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 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
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

112
README.md Normal file → Executable file
View File

@ -1,11 +1,105 @@
# PortWINE
data_from_portwine - contains scripts and additional files for configuring and running applications.
portwine_install_script - contains a self-extracting port setup script
PLEASE DO NOT REPORT BUGS ENCOUNTERED WITH THIS AT WINEHQ OR VALVE SOFTWARE!
# PortProton
Generated Wine sources for use in PortWINE:
The **official website of the project** since September 2022: https://linux-gaming.ru. **Any other site is fake!**
PortProton is a project designed to make it easy and convenient to run Windows games on Linux for both beginners and advanced users.
The project strives to make launching games (and other software) as simple as possible, but at the same time provides flexible settings for advanced users.
Based on the version of WINE from Valve (Proton) and its modifications (Proton GE). Includes a set of scripts combined with wine-proton itself, a Steam Runtime Sniper container with the addition of ported versions of MANGOHUD (output useful information over the game window: FPS, FrameTime, CPU, GPU, etc) and vkBasalt (improvement of graphics in games, very good in in conjunction with FSR, DLSS) + many already configured optimizations for maximum performance.
Implemented one-click auto-installation (in the AUTOINSTALL tab ) of popular launchers such as: WGC, Epic Games, Battle.net, Origin, EVE Online, RockStar, Ubisoft connect , League of Legends and many others.
For fans of console games, there are many console emulators to choose from (in the EMULATORS tab ): PPSSPP, Citra, Cemu, ePSXe, MAME and many others.
PLEASE DO NOT REPORT BUGS ENCOUNTERED WITH THIS AT WINEHQ OR VALVE SOFTWARE!
Wine sources used in PortWINE:
WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
## Installation using packages
* **Ubuntu 20.04** (Kubuntu, Xubuntu, Lubuntu, etc.), **Linux Mint 20.x** : [portproton_1.0-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.0-2_amd64/portproton_1.0-2_amd64.deb)
* **Arch Linux** and derivatives (Manjaro, Garuda, etc.) : [portproton-1.0-8-x86_64.pkg.tar.zst](https://github.com/Castro-Fidel/PortProton_PKGBUILD/releases/download/portproton-1.0-8-x86_64/portproton-1.0-8-x86_64.pkg.tar.zst)
* **ROSA Linux** (package in the official repository) is installed with the command: `sudo urpmi portproton`
## Universal (manual) installation
**ATTENTION** : with the universal method of installing PortProton, dependencies must be installed manually!
Normal installation:
`wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0`
Silent installation (ENG):
`wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -eng`
Silent installation (RUS):
`wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -rus`
## Dependencies
* **NVIDIA graphics card users**
If you have a video card from NVIDIA and a proprietary driver is installed, then you need to check if lib32-nvidia-utils is installed (no 32-bit game will work without it)
* **Ubuntu / Linux Mint / Pop!_OS**
`sudo dpkg --add-architecture i386`
`sudo add-apt-repository multiverse`
`sudo apt update && sudo apt upgrade`
`sudo apt install curl file libc6 libnss3 policykit-1 xz-utils zenity bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386 wget zenity zstd cabextract xdg-utils openssl bc libgl1-mesa-glx libgl1-mesa-glx:i386`
* **Arch Linux / Manjaro**
`sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl gamemode desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font zenity lsb-release nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-gamemode lib32-openssl`
If you have a video card from **NVIDIA** , be sure to check if the **lib32-nvidia-utils** package is installed
`sudo pacman -Syu lib32-nvidia-utils`
* **Debian/Deepin**
`sudo apt install software-properties-common -y && sudo apt-add-repository non-free && sudo dpkg --add-architecture i386 && sudo apt update && sudo apt upgrade`
`sudo apt install bubblewrap curl gamemode icoutils tar wget zenity zstd libvulkan1 libvulkan1:i386 steam cabextract`
* **openSUSE**
`sudo zypper ref && sudo zypper up && sudo zypper in curl icoutils wget zenity bubblewrap zstd cabextract tar steam zenity zenity-lang`
Installing Gamemode is done with a separate command:
`opi gamemode`
* **Fedora**
Enable Non-free repository:
`sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm`
Install the required dependencies:
`sudo dnf update && sudo dnf upgrade --refresh && sudo dnf install curl gamemode icoutils libcurl wget zenity bubblewrap zstd cabextract tar goverlay openssl steam`
* **Alt Linux**
`sudo apt-get update && sudo apt-get dist-upgrade -y`
`sudo apt-get install bubblewrap cabextract curl gamemode icoutils i586-libvulkan1 libvulkan1 steam vulkan-tools wget zenity zstd`
* **ROSA DESKTOP FRESH R12**
`sudo dnf update && sudo dnf upgrade --refresh && sudo dnf install sysvinit-tools curl libcurl4 icoutils wget zenity bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl bc libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn coreutils lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686`
* **Solus 4.x**
`sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cabextract xdg-utils openssl bc vulkan vulkan-32bit mesalib-32bit samba`
## Contacts
You can join our [Discord](https://discord.gg/FTaheP99wE) server.

View File

@ -1,438 +0,0 @@
История изменений и дальнейшие планы:
-----------------------------------------
В планах:
* создать ветку beta на github и сделать выбор версии внутри порта
* добавить фикс установки dotnet
* добавить контроль за окнами для правильного отключения прогресс бара
* заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru
-----------------------------------------
###Scripts version 1117###
* доработка определение месторасполажения установленных шейдеров для vkBasalt
* добавлена переменная "PW_SANDBOX_HOME_PATH" при существовании которой закрывается доступ к домашнему каталогу
###Scripts version 1115 and 1116###
* тест обновления скриптов с github
###Scripts version 1114###
* добавлен пользовательский файл конфигурации (путь_до_PortProton/data/user.conf") который при наполнениии замещает настройки скрипта var и db файлов, но при обновлении скриптов остается неизменным, для сохранения ваших настроек.
* автоматическое изменение раскладки клавиатуры работает только при установке значении переменной export PW_XKBD_RU_HACK=1 (можно прописывать как в скрипт var, так и в user.conf)
* HOTFIX - определение месторасполажения установленных шейдеров для vkBasalt (для работы под Arch и Manjaro)
* проверка и обновления скриптов из https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz
###Scripts version 1113###
* обновлен dxvk до v1.9-51
* обновлен vkd3d до v2.4
* начальная поддержка нативной версии nvapi при условии, что wine его поддерживает
* тест vkBasalt (в каталог data добавлен vkBasalt.conf и добавлены переменные в скрипт var)
###PortProton-90### 28.06.2021
* обновлен Proton 6.3-5 (RELEASE)
###Scripts version 1112###
* mangohud влючаеться по клавишам: правый_шифт+F12 (Shift_R+F12)
* HOTFIX - включение vkd3d (dxgi=b)
###Scripts version 1111###
* обновлен DXVK и VKD3D из Proton 6.3-5 (RELEASE)
* обновлены библиотеки kerberos и wldap32 (исправляет ошибки подключения к интернету в некоторых играх, например World of Tanks)
###Scripts version 1110###
* mangohud влючаеться по клавише F12 при условии, что он установлен в системе
* добавлена кнопка очистки префикса в раздел GUI -> SETTINGS
* добавлена кнопка удаления порта в раздел GUI -> SETTINGS
* добавлена кнопка удаления программ (WINE UNINSTALLER) в раздел GUI -> SETTINGS
* добавлена кнопка редактирования скрипта var в раздел GUI -> SETTINGS
* обновление winetricks отключенно (опять) и используется доработаная версия от ProtonGE
* изменены иконки внутри gui в трее
###PortProton-89### 25.06.2021 ###Scripts version 1109###
* обновлен wine до версии Proton 6.3-5-rc3
* обновлен DXVK и VKD3D из Proton 6.3-5-rc3
###Scripts version 1108###
* обновлен DXVK и VKD3D из Proton 6.3-5-rc1
###Scripts version 1107###
* добавлены db: OSU!; FarCry{3,4}; Control; Biomutant; ForzaHorizon4
* включено обновление winetricks (снова отремонтировано скачиваие vcrun20XX)
###Scripts version 1106###
* возвращен VKD3D из Proton 6.3-4b
###Scripts version 1105###
* для распаковки exe файлов при автоматических установках лаунчеров используется 7z вместо 7zr
* обновлен DXVK до версии 1.9
* исправлена автоматическая установка GOG
* автоматическое создание символьной ссылки users/steamuser/Documents в users/steamuser/My Documents
* добавлена иконка в трей для PortProton (завершение всех процессов по ПКМ --> "FORCE EXIT")
* добавлена возможность запуска нескольких приложений одновременно и закрывать всё одним нажатием ПКМ --> EXIT
###Scripts version 1104###
* крупное обновлеение контейнера (libs_v16):
- добавлен /bin/yad_new версии 10.1 скомпилированный специально для будущего меню в трее)
- обновлен MANGOHUD (требуется проверка под OpenGL)
- обновлен 7z необходимый для будущей автоматической установки Rockstar Game Launcher
* для тестовой поддержки wayland добавлена переменная в скрипт var: GDK_BACKEND="x11"
* обновлены DXVK и VKD3D до актуального состояния на 12.06.2021
###Scripts version 1103###
* HOTFIX - исправление функции pw_kill_autostart
###Scripts version 1102###
* фикс создания ярлыка после автоматической установки STEAM
* в AUTOINSTALL добавлена функция pw_kill_autostart для запрета автозапуска лаунчера после автоматической установки
* добавлены настройки в ~/.Xresources для корректного отображения текста в xterm, если данного файла нет в корне домашнего каталога
###PortProton-87### - RELEASE
* cтабильная версия wine proton 6.3-4
* стабильные версии новых скриптов 1101
###Scripts version 1101###
* переделан запуск контейнера (исправлены проблемы с правильной подгрузкой библиотек)
* автоматическая установка DLL в префикс выполняется под контейнером
* winecmd запускается из под xterm установленного в контейнер, что избавляет xterm как зависимость.
* vcrun2019 снова устанавливается в штатном режиме
* исправлена ошибка в скрипте при монтировании в контейнер
* добавлено отображение скорости интернета и примерный остаток времени при скачивании libs, gecko, mono
###PortProton-86###
* обновлен wine до версии GE 2
* обновлены либы до версии libs_v15
### Скрипты с версии 1095 по 1100 - эксперементальные ###
###Scripts version 1094###
* немного ускорена инициализация префикса
* расширена функция чистки префикса
* исправлено определение использования RUNTIME в логах
* ${HOME}/.PortWINE под контейнетом всегда доступен, но только для чтения
* добавлен автоматический проброс /media и /mnt в контейнер порта что позволяет запускать игры и программы установленные не в домашнем каталоге, как если бы порт работал без контейнера
* в AUTOINSTALL добавлены лаунчены UPLAY и STEAM
* тестовый фикс пропадания текстур под DXVK на некоторых системах
* для систем основанных на Arch добавлен автоматический проброс /run/media
* все основные настройки контейнера перенесены в скрипт var: PW_RT_MOUNT_RO - только для чтения; PW_RT_MOUNT_RW - чтение и запись (пути писать в ковычках и разделять пробелом) Пример: PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}")
###Scripts version 1093###
* возвращена переменная в скрипте var: WINE_WIN_START="start.exe /i /unix" что возвращает запуск .bat файлов и решает проблему с запуском игры WoT из WGC
###Scripts version 1092###
* исправлена автоустановка WGC под запуском в контейнерном режиме
* добавлен фикс работы старых версий порта с новыми скриптами
* частичный откат кода со скриптов от PortProton-78
* контейнерный режим включен по умолчанию и отключается в скрипте "каталог_порта/data/scripts/var" переменной PW_USE_RUNTIME=(1 - включен; 0 - выключен)
###PortProton-85### 27.05.2021 ###Scripts version 1090###
* для подготовки к релизу используется стабилная версия wine: Proton 6.3-4
* до 4-x прибавка в ФПС в играх DX12 (на моем железе: HZD - x4; Graven - x2; Cyberpunk2077 - x1,25)
* глобальное изменение использование переменных (системных, wine и vulkan)
* в лог файл добавлена информация о текущей версии скриптов и используется ли RUNTIME
* возврат оригинальных значений системных переменных: PATH, LD_LIBRARY_PATH после окончания использования порта
* HOTFIX - убрано повторное исполнение функции START_PORTWINE во время запуска debug
* HOTFIX - исправлены возможные проблемы старых игр использующие WMF
* HOTFIX - ошибки скачивания vcrun2019 на чистом префиксе
###PortProton-84### 23.05.2021 ###Scripts version 1089### - BETA
* обновлен WINE до версии Proton 6.9 GE 1
* контейнерный режим включен по умолчанию и отключается с помощью раскомментирования переменной в скрипте var #export PW_USE_RUNTIME=1
* более чем в 2 раза увеличена производительность игр под VKD3D (Cyberpunk2077 и т.п.) за счет исползования dxgi из dxvk под vkd3d
* для префикса по умолчанию включена версия windows 10
* реализовано создание символьных ссылок с библиотек gstreamer в контейнер runtime для исправления ошибок WMF (gst)
###Scripts version 1088###
* реализовано создание символьных ссылок с библиотек wine в контейнер runtime для исправления ошибок XACT (faudio)
###Scripts version 1087###
* добавлен вопрос об обновлении скриптов
* HOTFIX - полностью убрана переменная WINE_WIN_START
###Scripts version 1086###
* HOTFIX - изменена переменная export WINE_WIN_START="start.exe /b"
###Scripts version 1085###
* в скрипт var добавлена и временно включена переменная export PW_USE_RUNTIME=1 (требуется рашение проблемы с загрузкой faudio)
* добавлено автоматическое создание каталога "${WINEPREFIX}/drive_c/users/Public/Documents/Steam"
* HOTFIX - обновление скриптов после установки происходило только при повторном запуске порта
###Scripts version 1084###
* фикc запуска gui winetricks c терминалом
###Scripts version 1083###
* временно вернул работу winetricks без использования контейнера
###Scripts version 1082###
* HOTFIX - смена версии cabextract внутри libs_v14
###Scripts version 1081###
* HOTFIX - автоматичкское удаление wget из libs_v14, что бы winetricks использовал curl для скачивания
###PortProton-80### 19.05.2021 ###Scripts version 1080###
* обновлен WINE до версии Proton 6.8 GE 1
* обновлен контейнер в libs_v14 до версии Debian 10.9
* добавлен аргумент запуска RUNTIME "--filesystem=${PORT_WINE_PATH}" для возможности установки и использования порта вне $HOME
* перенос создания символьной ссылки на drive_c из скрипта setup в runlib
###Scripts version 1079###
* HOTFIX - libs_v13 исправленна битая ссылка c "runtime/lib64/ld-linux-x86-64.so.2" на "../lib/x86_64-linux-gnu/ld-2.15.so"
###Scripts version 1078###
* добавлена проверка подключения к интернету с помощью ping перед использованием curl (значительно ускоряет запуск порта при плохом соединении с интернетом)
* обновлены libs_v12 (пересобран контейнер и значительно уменьшен его размер)
* HOTFIX - запуск winetricks из GUI PortProton (контейнер уже умеет работать с winetricks, но всё еще есть недочеты по отображению gui)
###Scripts version 1077###
* HOTFIX - исправлено повторное скачивание libs_v11
###Scripts version 1076###
* при любом использовании winetricks добавлен аргумент -r (для автоматического перекачивания библиотек, если хеш-суммы не совпадают)
* winetricks запущенный с GUI работает без контейнерного режима
* временно глобально отклчени gamemode в скрипте var (необходим тест)
* начальная адаптация скриптов под контейнерный режим запуска wine
* libs_v11 обновлен и переведен полностью на контейнерный режим запуска
* в PortProton.desktop изменен аргумент с %U на %F
###PortProton-80### 11.05.2021 ###Scripts version 1075###
* обновлен WINE до версии Proton 6.8 GE 1
* обновлена инициализация и настройка префикса под новые версии Proton GE
###Scripts version 1074###
* HOTFIX - добалено ожидание окончания создания префикса, перед продолжением использования порта
###Scripts version 1073###
* HOTFIX - создание каталога drive_c перед созданием симлинка на него
###Scripts version 1072###
* HOTFIX - создание префикса (каталог dosedevices с симлинками) под всеми ОС Linux и разными версиями Proton (включая GE)
###Scripts version 1071###
* HOTFIX - был ошибочно убран аргумент SkipBuildPatchPrereq для Epic (вернули)
###Scripts version 1070###
* HOTFIX - GUI возвращен в стандартный вид
###Scripts version 1069###
* обновлены db файлы
* HOTFIX -закомментирована переменная __NV_PRIME_RENDER_OFFLOAD=1 для работы некоторых игр в оконном режиме с видеокартой от NVIDIA
###PortProton-79### 04.05.2021 ###Scripts version 1068###
* обновлен Proton до версии 6.3-3 от 04.05.2021
###Scripts version 1067###
* HOTFIX - удален аргумент /b при запуске приложений (fix для WGC)
* фикс запуска функции PW_OTHER_FIXES
* добавлена проверка повторной установки EVE Online из AUTOINSTALL
###Scripts version 1066###
* виртуальный рабочий стол включенный из db файла, или глобально из скрипта "var" исправно работает с любой игрой/программой
* фикс работы переменной "PW_GUI_DISABLED_CS=1" прописанной в .desktop файле
* улучшеный режим запуска всех приложений с помощью аргументов start /b /unix
###Scripts version 1062, 1063, 1064 и 1065###
* HOTFIX - убрана переменная PW_VULKAN_USE из скрипта runlib
###PortProton-78### 03.05.2021 ###Scripts version 1061###
* обновлен Proton 6.3 (стабильная ветка + патченный netprofm.dll)
* полностью исправлена проблема с фокусом мыши
* отключена авто отчистка префикса во время обновления порта
* в GUI изменен цвет ссылок url на красный
* частичная чистка кода
* HOTFIX - исправлено ложное срабатывание проверки скачивания (проверка успешного скачивания/распаковки всех компонентов и удаление архивов если одно из условий не истина)
* при ошибке скачивания одного из компонентов PortProton добавлено оповещение с автоматическим перезапуском.
###Scripts version 1060###
* фикс работы EVE Online + Proton Experimental (netprofm.dll)
###Scripts version 1059###
* gnome-terminal отрабатывает не правильно, возвращен xterm
* вместо vcrun2015-2017 принудительно ставится vcrun2019 (так как имеет кумулятивные обновления)
###PortProton-77### 01.05.2021 ###Scripts version 1057###
* обновлен Proton Experimental от 29.04.2021
* используется default_pfx при создании нового префикса
* фикс выбора режима запуска при уже созданном ярлыке, но отсутствующем PW_VULKAN_USE
###Scripts version 1056###
* исправлена работа gnome-terminal если "$SHELL" не равен "/bin/bash"
###Scripts version 1055###
* fix YAD
###Scripts version 1054###
* добавлен p7zip в libs_v10
* изменен приотет использования терминала (системный в приоритете как для KDE, GNOME, Cinnamon и LXQT)
* в AUTOINSTALL реализованна "тихая" установка EVE Online
###Scripts version 1053###
* HOTFIX - перенос всех функций в скрипте runlib (наверх)
* добавлена переменная в default ##export PW_WINE_ALLOW_XIM=1, которая отключает XIM (X input manager)
* в функции PW_INIT_PFX добавлено копирование всех dll из библиотек wine/lib(64) в префикс (если префикса не существует)
###Scripts version 1052###
* отключена автоотчистка ~/.PortWINE
* отключение сервиса OriginWebHelperService.exe (правкой реестра) перенесена в скрипт var
* в AUTOINSTALL добавлена установка EVE Online
###Scripts version 1051###
* изменён db файл Origin для отключение сервиса OriginWebHelperService.exe (правкой реестра)
###Scripts version 1050###
* добавлен фикc установки Epic Games Launcher
* принудительно отключен сервис OriginWebHelperService.exe
* в AUTOINSTALL добавлена установка GoG Galaxy
###PortProton-76### 29.04.2021 ###Scripts version 1049###
* обновить Proton Experimental (2021/04/27)
* добавлен вывод changelog и debug во встроенном YAD (gui)
* в AUTOINSTALL добавлена установка Epic Games Launcher
* исправлена ошибка: 00bc:err:winediag:load_dxvk_config Couldn't load dxvk_config.dll
###Scripts version 1048###
* реализовано обновление скриптов "налету" (без необходимости перезапускать порт)
###Scripts version 1047###
* в AUTOINSTALL добавлены установки "Origin" и "Battle.net Launcher"
* увеличено время ожидания ответа при проверки связи с интернетом (ping -w5 -c1 github.com)
* увеличено количество попыток скачивания для неустойчивого интернет соединения (wget -c -t 10 -T 1)
* в GUI PortProton добавлена кнопка F.A.Q. для открытия справочной страницы portwine-linux.ru
###Scripts version 1046###
* обновлена верси VKD3D используемая по умолчанию до версии 2.3.1 (скрипт var, переменная export PW_DEF_VKD3D_VER=2.3.1)
* HOTFIX сохранение выбраного режима запуска в существующий файл db при создании ярлыка
###Scripts version 1045###
* HOTFIX установка компонентов при отсутствии winetricks.log
###Scripts version 1044###
* переработано основное диалоговое окно при запуске PortProton и добавлена вкладка AUTOINSTALL
* выбор debug снова есть при запуска с ярлыка PortProton
* минимальный набор библиотек для установки с winetricks перенесен в default db
* проверка уже установленных библиотек с помощью winetricks повторно не производится
* после создания нового префикса, требование перезапуска порта больше нет
* обновление префикса происходит в фоновом режиме
* улучшена работа прогресс-бара
###Scripts version 1043###
* HOTFIX создания ярлыка (использование png вместо ico)
###Scripts version 1042###
* при запуске PortProton.desktop добавлена кнопка AUTOINSTALL
* в AUTOINSTALL добавлена автоматическая установка WGC
* исправлено отображение иконок на DE GNOME
###Scripts version 1041###
* wine-mono обновлен до версии 6.1.2
###PortProton-75### 24.04.2021 ###Scripts version 1040###
* обновлен wine Proton experimental 6.3 от 23.04.2021
* добавлена функция pw_clear_pfx для отчистки префикса порта во время обновления без затрагивания игр и программ
* проверка и настройка переменных для MANGOHUD добавлены функцию pw_mangohud_check
* версия VKD3D по умолчанию = 2.3
* добавлена поддержка DXR (RTX) в режиме VKD3D, при условии использования переменной PW_DXR_ON=1
* переменная PW_DXR_ON добавлена в default db
* переменная PW_DXVK_NO_ASYNC переименованна в PW_VULKAN_NO_ASYNC и теперь отключает асинхронные вызовы как в DXVK, так и в VKD3D
###Scripts version 1039###
* фикс выбора режима запуска (dxvk, vkd3d, opengl)
###Scripts version 1038###
* распаковка tar.xz вынесена в отдельную функцию unpack_tar_xz
* добавлена проверка связи с серверами для автономной работы порта
* ускорена работа reset скрипта останавливающая все процессы порта
* исправлены ошибки связанные с остановкой отсутствующих pid-оф yad и процессов wine.
* удалено использование wineserver -k в функции KILL_PORTWINE (влияло на инициализацию префикса)
* добавлена отчистка ~/.PortWINE, при условии установки новой версии порта
* добавлена вся информация из db файла и winetricks.log в debug
* удален каталог vars (из за db файлоа больше в нем нет необходимости)
* скрипт PortProton_vars перенесен в каталог scripts и переименован в var
* добавлена проверка установки mangohud в систему
* уменьшина ширина индикатора загрузки на 100px
* улучшено определение необходимого db файла для запуска
###PortProton-74### 20.04.2021 ###Scripts version 1037###
* обновлен wine до версии Proton 6.3-2 next
* в setup db изменен список библиотек (фикс для "xatab") "vcrun6 mfc42 vcrun6sp6 mfc120 vcrun2013"
* добавить выбор версий dxvk и vkd3d в db файле, с последующей закачкой с github при отсутствии в ~/.PortWINE/vulkan
* обновлены libs до v9 (добавлен пакет zstd для реализация функции смены vkd3d)
* произведена частичная чистка и оптимизация кода
* добавлен вывод changlog после обновления
###PortProton-73### 18.04.2021 ###Scripts version 1036###
* фикс для StarCraft (db)
* фикс работы порта в solus (отключение xterm)
* фикс создания циклической ссылки drive_c внутри drive_c
* удален &>>/dev/null из PW_RUN (ломает запуск неторорых игр и приложений)
* очистищен код функции PW_RUN (убрано условие optirun_on за ненадобностью)
* исправлен минимальный набор библиотек в default db (vcrun6 vcrun6sp6 mfc42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx9)
###PortProton-72### 17.04.2021 ###Scripts version 1035###
* обновлен wine до версии Proton experimental-6.3-20210407b (совместно с dxvk и vkd3d)
* добавлен фикс работы 32-битных игр в режиме DXVK (export PW_FORCE_LARGE_ADDRESS_AWARE=1)
* изменен список библиотек для запуска неизвестных игр (для которых еще нет db файлов)
* добавлен dxvk.conf в каталог data
* обновлеы libs до v.8
* hotfix для EGS
* в dxvk и opengl режиме, по умолчанию выбран win7
* убран xterm из debug (иначе ломает шрифты)
* добавлена кнопка редактирования найденного db файла
* ТЕСТ: автоудаление PINNED_LIBS и отключение setup.sh --force
* изменение сравнения версий скриптов и портов "$(curl -s --list-only "https://portwine-linux.ru/ftp/current_version/blabla_ver")"
* автоматическая установка в префикс порта PW_DLL_INSTALL="vcrun2017 vcrun6 vcrun6sp6 mfc42"
* исправлено создание db файла при создании ярлыков, в именах которых присутствует одниковвые названия запускаемого файла
* исправили создания префикса на некоторых системах при использования встроенного xterm из ~/PortWINE/libs
###PortProton-71### 11.04.2021
* отключено обновление libs, mono и gecko во время установки PortProton
* проверка версии glibc перед установкой, если версия ниже необходимой, то выводим ошибку
* добавлена проверка хеш-суммы порта на ftp перед установкой
* добавлен прогресс загрузки библиотек с интернета
* добавлен в debug полный путь до запускаемой игры/программы вместе с именем файла
* исправлено дублирование db файлов при создании ярлыков
* перенос libs с сервера PortWINE-Linux.ru на https://github.com/Castro-Fidel/PortWINE/releases/
* скачивание mono оф. github mono
* скачивание gecko оф. ftp winehq
* в /data/scripts/vars/PortProton_vars добавлена переменная PW_MANGOHUD=1 что включает HUD для монитроринга FPS, нагрузку на CPU, GPU и т.п (при условии что в системе предустановлен пакет mangohud)
* обновлена локализация подсказок при наведении на кнопки на экране выбора режимов запуска (русская и английская версии)
* добавлена проверка соединения с серверами и докачки winetricks, libs, mono, gecko.
* произведена глобальная чистка кода и вынос множества решений в отдельные функции
* дебаг теперь открывается в системном текстовом редакторе
* в дебаг добавлен инвайт (ссылка-приглашение) на наш сервер Discord
* убран CREATE_SHORTCUT и LAUNCH при запуске PortProton.desktop
* убрано удаление кэша winetricks
###PortProton-70### 05.04.2021
* обновлен wine до версии proton 6.3-1
* обновлены dxvk и vkd3d поставляемые вместе с proton 6.3-1
* обновлены библиотеки до версии libs_v7
* обновлен Mono до 6.1.1
* обновлен Gecko до 2.47.2
###PortProton-65### 13.02.2021
* реализовано автоматическое обновление скриптов
###PortProton-63### 22.11.2020
* при запуске exe по ПКМ выбор режима появляется всегда (удобно для тестов)
* все настройки переехали в один файл PortProton (псевдографика использует YAD)
* обновлены runlib (добавлен YAD что бы не было необходимости устанавливать его в систему)
* ускорен запуск порта после изменения версии WINE 
* reset убивает процессы wine только для текущего порта
* winetricks теперь не скачивается при каждом запуске, а идет проверка актуальности версии
* добавлена функция использования базы данных для запускаемых игр и программ (автоматическая настройка префикса)
* добавлена функция тихой установки порта (sh PortProton-XX -rus, или sh PortProton-XX -eng)
###PortProton-51### 22.11.2020 - RELEASE
* включает в себя 2 версии вайна: WINE PROTON 5.21 GE 1 и WINE PROTON 5.13 EXPEREMENTAL (переключаются автоматически, в зависимости от выбранного режима запуска dxvk, или vkd3d)
* обновлен DXVK до версии 1.7.3 (работают как старые игры требующие DirectX 9, так и новые с DirectX 11)
* обновлен VKD3D до версии 2.1 (работают новинки которые требуют DirectX 12. Например Cyberpunk2077 и Death Stranding)
* добавлена функция автоматического удаление мусора в виде steamclien.dll из префикса, реестра и библиотек предустановленного вайна
* обновлены скрипты (подробнее у нас на github)
значительно переработан и улучшен debug режим (запускается из каталога с портом)
* обновлены runtime библиотеки до версии libs_v4, что улучшает совместимость с разными ОС Linux и повышает производительность в играх
поддерживаются gamemode, FSYNC, ESYNC  из "коробки" 
* простое создание ярлыков с выбором режима запуска (+ возможно добавить свои параметры запуска к игре/приложению) 
* добавлена интеграция PortProton в рабочее окружение (root права не нужны, концепция порта не изменилась)
###ЗАМЕТКИ###
* проверка версий dxvk на github: curl -s https://github.com/doitsujin/dxvk/releases | grep Version | awk {'print $3'} | sed 's%</a>%%g'
* проверка версий vkd3d на github: curl -s https://github.com/HansKristian-Work/vkd3d-proton/releases | grep Version | awk {'print $3'} | sed 's%</a>%%g'

497
data_from_portwine/changelog_eng Executable file
View File

@ -0,0 +1,497 @@
You can help us in the development of the project on the website: boosty.to/linux-gaming.ru
-----------------------------------------
Changelog:
###Scripts version 2158###
* Updated libs_v37:
fix: kernel32.dll
###Scripts version 2157###
* Updated libs_v36:
depot 0.20230111.68
pressure-vessel 0.20221215.0 scout
scripts 0.20221215.0
sniper 0.20230109.1
###Scripts version 2156###
* the variable "PW_MANGOHUD_x32" has been added to EDIT_BD, which enables MANGOHUD for 32-bit games (temporary need to bypass the error of MANGOHUD in 64-bit games in some systems)
###Scripts version 2155###
* updated versions:
PROTON_LG="7-47"
PROTON_GE="7-47"
DXVK_GIT_VER="2.0-116"
VKD3D_GIT_VER="1.1-3115"
###Scripts version 2154###
* updated PROTON_LG 7-43
###Scripts version 2153###
* updated versions:
PROTON_GE="7-43"
DXVK_GIT_VER="2.0-36"
VKD3D_GIT_VER="1.1-3094"
* fixed crashes of the Witcher 3 game (next gen. DX12) It is necessary to use the PROTON_GE_7-43 version
###Scripts version 2152###
* added installation of the game Path of Exile
* updated versions of GIT DXVK and VKD3D:
DXVK_GIT_VER="2.0-34"
VKD3D_GIT_VER="1.1-3088"
* added vkbasalt unexpected shutdown when building GIT versions of DXVK and VKD3D (temporarily)
* libs_v34 (updated container and created a prefix template transfer plugin from a directory in the libs directory)
pressure vessel 0.20221130.0
sniper 0.20221130.0
* updated FAKE_DLSS version to 091122
###Scripts version 2151###
* added Panzar
###Scripts version 2150###
* added Warframe
###Scripts version 2149###
* added STEAM (version for Windows)
* added Indiegala Client
###Scripts version 2148###
* added Crossout
###Scripts version 2147###
* created a repository https://github.com/Castro-Fidel/vulkan/releases with DXVK and VKD3D versions compiled specifically to work under the container, which reduces problems and increases the number of games launched
* default versions:
export DXVK_STABLE_VER="1.10.3-28"
export DXVK_GIT_VER="2.0-26"
export VKD3D_STABLE_VER="1.1-2602"
export VKD3D_GIT_VER="1.1-2967"
* you can still set the standard versions of DXVK and VKD3D for individual games and they will be downloaded from off. GitHub repositories
* solved problem with League of Legends game on some systems (eg Rosa Linux)
###Scripts version 2146###
* added interface language switching in the "PORTPROTON SETTINGS" section
* added the ability to download the new version of PROTON STEAM 7.0-5
* minor fixes and script improvements
###Scripts version 2145###
* added the ability to change SVN and VKD3D versions in the game settings file .pdb and globally in user.conf using variables (values are given for example):
export DXVK_STABLE_VER="1.10.3"
export SVN_GIT_VER="2.0"
export VKD3D_STABLE_VER="2.6"
export VKD3D_GIT_VER="2.7"
* for League of Legends, the default version is DXVK 1.10.2 - as more stable for this game
###Scripts version 2144###
* updated WINE for League of Legends
###Scripts version 2143###
* due to EA Launcher issues, the Origin installer has been temporarily reverted
###Scripts version 2142###
* added alternative FTP server for PP component updates if download failed from main GITHUB server
* added display of current versions of DXVK and VKD3D when they are selected in the PortProton interface
* Changed the WINE_WIN_START="start /i /b /wait /high /unix" variable to increase the priority of the application being started (test) and more detailed output of information when creating a Log.
* for lovers of MMORPGs and weak hardware, an automatic installer Fulqrum Games has been added to launch Royal Quest - a massively multiplayer online game developed by 1C and Katauri Interactive. Thanks chal55rus (Sergey P.)
* Added PlariumPlay automatic installer to launch Raid: Shadow Legends
###Scripts version 2141###
* HOTFIX - added EA icon
###Scripts version 2140###
* added the USE_WINE_DXGI variable to EDIT_DB
* added the function of modular updating of DXVK and VKD3D-PROTON from GitHub servers
* added selection of DXVK and VKD3D-PROTON versions when launching games/launchers
* changed the automatic installation of ORIGIN on EA Launcher (beta test)
###Scripts version 2139###
* added the function of reinstalling PortProton from the menu of PortProton itself and using the "--reinstall" argument in the terminal
* updated version of PROTON_LG 7.34 based on PROTON GE 7.39 (Updated support for running game: "Overwatch 2")
###Scripts version 2138###
* added "Calibre" in AUTOINSTALL (thanks chal55rus)
###Scripts version 2137###
* updated version of PROTON_LG 7.32 based on PROTON GE 7.38 (Added support for running game: "Uncharted: Legacy of Thieves")
* minor script optimizations for running PortProton
###Scripts version 2136###
* added "Lesta Game Center" in AUTOINSTALL
###Scripts version 2135###
* updated PROTON_GE_7-37 (updated dxvk and vkd3d)
###Scripts version 2134###
* added the WINE-GE-CUSTOM tab in GET_OTHER_WINE to download versions of wine LUTRIS
* updated the PROTON_LG 7.31 version (together with dxvk and vkd3d)
* changed the MY.GAMES auto-installer to vkPlay (with the creation of a separate VK_PLAY prefix)
###Scripts version 2133###
* update libs_v33 (steam runtime sniper container 09/29/2022, version MANGOHUD 0.6.8)
* update plugins_v8 (updated version of FAKE DLSS - FSR 2.1.1)
* removed variables from the EDIT_DB menu that are no longer necessary
* made a small optimization of scripts to speed up the launch of games
* ORIGIN is working again (if you already have ORIGIN installed, enable USE_TERMINAL in EDIT_DB)
###Scripts version 2132###
* ATTENTION! The site portwine-linux.ru which is working again - FAKE! What kind of person did this and with what motives is unknown. So be vigilant! The site of our project: LINUX-GAMING.RU - and once again I will ask all the authors of their sites and Youtube channels to change their links. Thank you.
###Scripts version 2131###
* HOTFIX and change url
###Scripts version 2130###
* by default, the WINE version of PROTON_LG is used (based on wine-ge-custom with the addition of patches required for PortProton) You can still use the PROTON_GE version by selecting it in the startup menu.exe file.
* due to the rebranding and the transition to the new WINE-PROTON branch, the scripts have been significantly updated
* ATTENTION: The prefix of variables in "EDIT_DB" and "user.conf" has changed from "PW_" to "PW_". At the first launch after the update, your settings files will also be updated.
###Scripts version 2129###
* scipts optimization for dxvk and vkd3d
###Scripts version 2128###
* updated "plugins_v7" (updated libraries for FAKE DLSS - FSR 2.1 operation)
* updated PROTON_GE_7-33 (updated dxvk and vkd3d)
###Scripts version 2127###
* updated "plugins_v6" (added libraries for FAKE DLS)
* added the ability to enable support for USE_FAKE_DLSS in the EDIT_DB menu (Works on ANY video card with Vulkan support)
###Scripts version 2126###
* updated PROTON_GE_7-30 (dxvk and vkd3d from PROTON_STEAM_7.0-4)
###Scripts version 2125###
* HOTFIX - start.sh
###Scripts version 2124###
* updated "PROTON_GE" to version 7-29
* updated "PROTON_STEAM" to version 7.0-4
* updated pp-games-lib plugin
###Scripts version 2123###
* HOTFIX - GALLIUM NINE mode
###Scripts version 2122###
* added the pp-games-lib plugin to the new PortProton/data/plugins/ details directory on github (plugin author: comrade zorn) https://github.com/zorn-v/PortProton-games-library
* updated scripts for installing and launching League of Legends (updated WINE_LOL_GE_7.0-4 - from now on there is no need to enter the root password to launch League of Legends)
* for GALLIUM_NINE to work, PROTON_GE is used by default
* in GALLIUM_NINE mode, the operation of launchers (such as Epic Games) has been fixed
* for Wargaming Game Center, the startup argument "--disable-gpu" is disabled automatically when using VULKAN mode.
* when using the DOTNET prefix, the black screen display in some applications has been fixed
* added a choice of downloading and automatic installation of WINE versions from Kron4ek
###Scripts version 2121###
* updated "PROTON_GE" to version 7-26
* fixed creation of shortcuts for WGC (to automatically fix existing shortcuts, just run the WGC installer from PortProton)
* Added automatic activation of MANGOHUD when using FPS limit
###Scripts version 2120###
* updated "PROTON_GE" to version 7-21
* updated "libs_v32" (Steam Runtime Snipers)
* updated installation of ORIGIN
###Scripts version 2119###
* HOTFIX - for PW_USE_D3D_EXTRAS
* updated information about the project, developers and paid subscribers on boosty
* added optimization of games and applications when using a Wayland session (using direct launch, not using XWayland)
###Scripts version 2118###
* PW_USE_D3D_EXTRAS is back on by default (except WGC)
* updated "PROTON_STEAM" to version 7.0-3
* added information about the project and developers (test mode)
###Scripts version 2117###
* HOTFIX - World of Sea Battles
* HOTFIX - AUTOINSTALL
###Scripts version 2116###
* HOTFIX - Epic Games Store
* HOTFIX - League of Legends
###Scripts version 2115###
* optimized launch PortProton in Rosa Linux
###Scripts version 2111 - 2114###
* debug
###Scripts version 2110###
* updated "PROTON_GE" to version 7-20
* fixed the work of the game World of Warplanes
* variable PW_D3D_EXTRAS_DISABLE renamed to PW_USE_D3D_EXTRAS and disabled by default
###Scripts version 2109###
* update "libs_v31"
* updated "PROTON_GE" to version 7-19
###Scripts version 2108###
* HOTFIX for Rosa Linux
###Scripts version 2107###
* accelerated container launch
* optimization of start.sh script
* updated "libs_v30" (restored work of vkBasalt on previous versions of OS Linux)
* updated "PROTON_GE" to version 7-18
###Scripts version 2106###
* updated libs_v29 (steam runtime sniper 20220509, mangohud 0.6.7, vkBasalt 0.3.2.5)
* added "WINE_FULLSCREEN_FSR" variable to "EDIT_DB" to enable "AMD FidelityFX Super Resolution"
* improved image quality when using FSR (Works while using any version of ProtonGE in full screen mode at a resolution below the standard screen)
* vkBasalt performance improved
* performance improvements in games when using the VULKAN API (DXVK and VKD3D)
###Scripts version 2105###
* updated "PROTON_STEAM" to version 7.0-2
* updated "PROTON_GE" to version 7-16
* updated "WINE_LOL_GE" to version 7.0-2 + installation and startup scripts (game client launch is accelerated)
* removed "Bethesda.net Launcher" from AUTOINSTALL (because it moved to STEAM)
* improved prefix image creation and unpacking functions
###Scripts version 2104###
* HOTFIX - download and update winetricks
* when creating a log, all d3dx* and d3dcomp* were removed for readability
###Scripts version 2103###
* updated container launch mode
* temporary variable PW_USE_AMDVLK_DRIVER does not work
###Scripts version 2102###
* fixed work of GALLIUM_NINE on integrated video cards from Intel
* fixed switching AMDVLK - RADV
* FPS increase in games up to 20% (for all launch modes)
###Scripts version 2101###
* fix work WINETRICKS (new prefix manager) in the absence of winetricks.log
* updated "libs_v28" (MANGOHUD update to version 0.6.6-1)
###Scripts version 2100###
* updated "libs_v27" (unification of library directories for different Linux OS)
* MANGOHUD works again in OPENGL mode
* added launcher World of Sea Battle (TEST)
###Scripts version 2099###
* updated "PROTON_GE" to version 7-14
* updated "libs_v26" (Steam Runtime Sniper container update)
* updated "plugins_v5"
* added check for the presence of the d3dadapter9 library in the system (required for GALLIUM_NINE to work on a larger number of Linux OS)
* faster creation of a new prefix
* default theme for wine is light (after creating a new one, or clearing the current prefix)
* added variable PW_USE_SHADER_CACHE to EDIT_DB to control shader caching (disable only if there are microfreezes in the game)
* removed STEAM_PP from AUTOINSTALL (because there is a native STEAM for Linux with its own wine-proton)
###Scripts version 2098###
* due to possible problems with some games, MANGOHUD is disabled by default (enabled in EDIT_DB -> MANGOHUD, or globally by adding export PW_MANGOHUD=1 to user.conf)
###Scripts version 2097###
* accelerated launch of all applications in PortProton up to 200% depending on the system
* updated additional libraries "plugins_v4" (added support for GALLIUM_NINE)
* added "GALLIUM_NINE" mode selection (support for native DirectX9 on video card with MESA driver)
* new interface for WINETRICKS added settings tab
* added variable PW_USE_AMDVLK_DRIVER to EDIT_DB (use AMDVLK driver instead of RADV on AMD video cards)
* added label archiving when creating a prefix image
* added restoration of shortcuts after unpacking the prefix image (the path to the .exe file is corrected automatically)
* improved virtual desktop performance
* explorer changed to winefile (free disk space detection fixed)
* disabled loading of mono and gecko for League of Legends (speeds up the first launch)
* to force the use of AMD graphics cards instead of NVIDIA, you can add "export DRI_PRIME=1" to user.conf
###Scripts version 2096###
* added check for LANG variable for PortProton to work on STEAM-DECK
* added new interface for WINETRICKS
* updated "libs_v25" (updated steam runtime sniper, added support for "MANGOHUD" and "vkBasalt" for systems: "RED OS" and "OpenSUSE")
* added variable PW_FIX_VIDEO_IN_GAME to EDIT_DB (required for video playback in some games so that it is not distorted, colored pink)
###Scripts version 2095###
* updated "libs_v24" (hotfix)
###Scripts version 2094###
* rollback "PROTON_GE" to version 7-9
###Scripts version 2093###
* updated "PROTON_STEAM" to version 7.0-1B
* updated "PROTON_GE" to version 7-10
* implemented prefix backups (WINE SETTINGS -> CREATE PFX BACKUP)
* temporarily restore copies using RMB to *.ppack (backup image) and open with... PortProton
* implemented full support for Rosa Linux (the installer is in the repositories)
###Scripts version 2092###
* added separation of WINE and PORTPROTON settings in the main interface
* added quick creation of backup copies of assembly scripts before updating them (SCRIPTS FROM BACKUP in the PORTPROTON SETTINGS tab)
* other minor scripting improvements included in PortProton v1.0 release
###Scripts version 2091###
* RELEASE PORTPROTON v.1.0
###Scripts version 2086 - 2090###
* HOTFIX - fixed creation of symbolic links
###Scripts version 2086 - 2089###
* updated "PROTON_STEAM" to version 7.0-1
* updated "libs_v22.2" (Steam Runtime Sniper container update)
* updated additional libraries "plugins_v3" (added "EasyAntiCheat_Runtime" and updated "BattlEye_Runtime")
* added ability to create custom prefixes
* fixed "AUTOINSTALL" operation after "Arch Linux" update
* "League of Legends" is put in a separate prefix, which speeds up its launch (no need to update the prefix on each launch)
* by default there is an empty "DOTNET" prefix, when it starts it is automatically filled with libraries: "physx mfc42 vcrun2019 dotnet20sp2 dotnet48"
* added saving priority user settings (db files) inside the directory with the launched .exe file
* redesigned the main interface of PortProton (AUTOINSTALL opens by default on the first tab, in the SETTINGS tab added prefix selection and creation of a new prefix)
* added check to which prefix the Launcher is set from AUTOINSTALL
* added change history display before PortProton update
###Scripts version 2085###
* added argument editor for ".exe" file to "EDIT_DB" interface
* added "WINDOWS" version selection to "EDIT_DB" interface
* added "WINEDLLOVERRIDES" variable editor to "EDIT_DB" interface
* added "AUTOINSTALL WITH WINETRICKS" to "EDIT_DB" interface for installing "WINDOWS" libraries
###Scripts version 2084###
* improved function of displaying the icon of the file being launched in the PortProton GUI
* fixed function of changing "CREATE_SHORTCUT" button in PortProton interface
###Scripts version 2083###
* added displaying the icon of the file being launched in the PortProton GUI
* fixed creation of multiple .png files in .exe directory during shortcut creation
* in the PortProton interface, the "CREATE_SHORTCUT" button changes to "DELETE_SHORTCUT" when the shortcut is enabled in the menu -> games
###Scripts version 2082###
* HOTFIX - AUTOINSTALL for EGS
###Scripts version 2081###
* fixed installing GOG Galaxy
* update WINE PROTON_GE to 7.1-2
###Scripts version 2080###
* added progress display of winetricks and library downloads during prefix update
* added display of the startup process with log output on the fly when using the DEBUG mode
* removed from DEBUG information output that does not affect the operation of PortProton (gstreamer, ntlm, kerberos)
###Scripts version 2079###
* fixed DLSS work on some systems
* reduced boot logo by 30%
###Scripts version 2078###
* added work Red Dead Redemption 2 purchased and launched in the Epic Games Launcher
###Scripts version 2077###
* fixed empty VULKAN/OPENGL selection window with some db files
* the main GUI functions on yad are moved to a separate file
###Scripts version 2076###
* HOTFIX - create symlink
###Scripts version 2075###
* HOTFIX - fixed OpenGL mode
###Scripts version 2072-2074###
* HOTFIX - fixed launch of League of Legends
###Scripts version 2071###
* added the ability to download other versions of WINE when opening an exe file (in the WINE selection drop-down list)
* updated launch mode gamemode (bug fixed libgamemode.so)
* added FSYNC optimization when getting kernel 5.16+ (increases FPS)
* added new launch mode: "VULKAN (WINE DXGI)" required for some new games using DX12
###Scripts version 2070###
* added PW_D3D_EXTRAS_DISABLE variable to EDIT_DB for DirectX external library
* rollback MANGOHUD to stable version from libs_v19.2
* fixed internet download interruption
* updated WINE_LOL_GE 7.0
###Scripts version 2069###
* added support for OpenSUSE (vkBasalt and MANGOHUD)
* fixed GOG installation (for OpenSUSE and Fedora)
* update plugins v.2.0:
- BattlEye_Runtime (10 January 2022)
- d3d_extras v.2.0
- nvapi v.0.5.1
- nvml v.0.1.1
###Scripts version 2068###
* HOTFIX - WINE download fixed
* NV_PRIME_RENDER_OFFLOAD is disabled by default (can be enabled using EDIT_DB)
###Scripts version 2067###
* updated libs to v20 (uses new Steam Runtime Sniper container + updated: MANGOHUD, vkBasalt and additional packages required for PortProton)
* fixed GOG installation
* fixed black screen in Epic Games (NVIDIA + driver v.495)
* fixed canceling file downloads while using AUTOINSTALL
* many small fixes
###Scripts version 2066###
* updated WINE PROTON_GE_7.0RC6-1 (with dxvk and vkd3d)
* the wine version from PROTON_GE is used by default (can be replaced with PROTON STEAM by adding to user.conf: export PW_WINE_USE=PROTON_STEAM)
* added check for number of db files for one .exe
* fixed disabling of the League of Legends boot logo
* updated db files
###Scripts version 2065###
* HOTFIX - correcting the termination of the yad and yad_new processes
###Scripts version 2064###
* added notification to the user about possible problems when starting in a Wayland session (once and only under Wayland)
* added display of the current session type in debug
* added changelog in English
* after clearing the prefix (CLEAR PREFIX from SETTINGS) PortProton restart added
-----------------------------------------
<<< TRANSLATED WITH GOOGLE >>>
###Scripts version 2063###
* checking the relevance of scripts was transferred from wget to curl (significantly speeds up the launch of PortProton)
* fixed bug with restarting PortProton (quick restart)
* fixed symlink creation errors when starting from PortProton.desktop
* changed completion of PortProton scripts
* to optimize the first launch of games / launchers after using the AUTOINSTALL function, when filling the prefix with winetricks, the WINE version is used, which is indicated in the db file.
###Scripts version 2062### (Experimental version not included in the main branch)
* PROTON EXPEREMENTAL test from 01/14/22 (together with dxvk and vkd3d)
* test PROTON_GE 7.0 RC6 (shared with dxvk and vkd3d)
###Scripts version 2061###
* continue to prepare the installation of PortProton from the repositories
###Scripts version 2060###
* prepared the ability to install PortProton from the repositories
###Scripts version 2059###
* updated GOG auto-installation
###Scripts version 2058###
* by default selected PW_WINE_USE=PROTON_STEAM for EGS
###Scripts version 2057###
* updated db files for EGS, UPLAY, STEAM
* added port update button "UPDATE PORTPROTON" to the "SETTINGS" tab
###Scripts version 2056###
* removed xtrem from dependencies (added use of native terminal emulator with yad)
* fixed installation of dotnet 4.5+ with winetricks
* HOTFIX - downloading libraries and wine on some systems (TEST)
* updated WINE_LOL_GE_6.16-5 with embedded mono 6.3.0 + gecko 2.47.2
* duckstation epsxe project64 vba-m yabause emulators added (thanks chal55rus)
* updated PROTON_STEAM to version 6.3-8C_PW2 (updated dxvk and vkd3d)
###Scripts version 2055-1###
* updated db AnomalyLauncher
###Scripts version 2055###
* updated PROTON_STEAM to version 6.3-8 (again =)
* copying fonts has been replaced by creating symbolic links
* Added Cemu to emulator installers
###Scripts version 2054###
* added a new item to the PortProton menu to install emulators (thanks chal55rus)
###Scripts version 2053###
* HOTFIX - fixed symlink creation errors for some libraries from plugins_v1
###Scripts version 2052-5###
* correct layout display loading League of Legends
###Scripts version 2052###
* rebranding of the logo (the source of the logo is in Discord - I'm waiting for your options for icons in png format)
* added cover art when loading the League of Legends client
* added animation when loading PortProton
* added animation when updating the prefix and running winetricks (with the ability to switch to the terminal output inside the GUI)
* copying d3d_extras changed to creating symlinks (still slightly increases port startup speed)
###Scripts version 2051###
* added checking and downloading the latest version of WINE for League of Legends before launching the game
###Scripts version 2050###
* HOTFIX - display WINE versions when creating a db file

1209
data_from_portwine/changelog_rus Executable file

File diff suppressed because it is too large Load Diff

259
data_from_portwine/dxvk.conf Normal file → Executable file
View File

@ -1,4 +1,4 @@
# Create the VkSurface on the first call to IDXGISwapChain::Present,
# Create the VkSurface on the first call to IDXGISwapChain::Present,
# rather than when creating the swap chain. Some games that start
# rendering with a different graphics API may require this option,
# or otherwise the window may stay black.
@ -15,8 +15,17 @@
#
# Supported values : 0 - 16
# dxgi.maxFrameLatency = 0
# d3d9.maxFrameLatency = 0
# dxgi.maxFrameLatency = 1
# d3d9.maxFrameLatency = 1
# Enables frame rate limiter. The main purpose of this is to work around
# bugs in games that have physics or other simulation tied to their frame
# rate, but do not provide their own limiter.
#
# Supported values : Any non-negative integer
# dxgi.maxFrameRate = 0
# d3d9.maxFrameRate = 0
# Override PCI vendor and device IDs reported to the application. Can
@ -24,19 +33,19 @@
#
# Supported values: Any four-digit hex number.
# dxgi.customDeviceId = 0000
# dxgi.customVendorId = 0000
dxgi.customDeviceId = 222F
dxgi.customVendorId = 10de
# d3d9.customDeviceId = 0000
# d3d9.customVendorId = 0000
# d3d9.customDeviceId = 222F
# d3d9.customVendorId = 10de
# Report Nvidia GPUs as AMD GPUs by default. This is enabled by default
# to work around issues with NVAPI, but may cause issues in some games.
# Override the reported device description
#
# Supported values: True, False
# Supported values: Any string.
# dxgi.nvapiHack = True
# dxgi.customDeviceDesc = ""
# d3d9.customDeviceDesc = ""
@ -50,6 +59,15 @@
# dxgi.maxSharedMemory = 0
# Some games think we are on Intel given a lack of NVAPI or
# AGS/atiadlxx support. Report our device memory as shared memory,
# and some small amount for a "carveout".
# Supported values: True, False
# dxgi.emulateUMA = False
# Override back buffer count for the Vulkan swap chain.
# Setting this to 0 or less will have no effect.
#
@ -87,15 +105,6 @@
# d3d9.tearFree = Auto
# Performs range check on dynamically indexed constant buffers in shaders.
# This may be needed to work around a certain type of game bug, but may
# also introduce incorrect behaviour.
#
# Supported values: True, False
# d3d11.constantBufferRangeCheck = False
# Assume single-use mode for command lists created on deferred contexts.
# This may need to be disabled for some applications to avoid rendering
# issues, which may come at a significant performance cost.
@ -109,9 +118,9 @@
# with. Setting this to a higher value may allow some applications to run
# that would otherwise fail to create a D3D11 device.
#
# Supported values: 9_1, 9_2, 9_3, 10_0, 10_1, 11_0, 11_1
# Supported values: 9_1, 9_2, 9_3, 10_0, 10_1, 11_0, 11_1, 12_0, 12_1
# d3d11.maxFeatureLevel = 11_1
# d3d11.maxFeatureLevel = 12_1
# Overrides the maximum allowed tessellation factor. This can be used to
@ -119,7 +128,7 @@
#
# Supported values: Any number between 8 and 64
# d3d11.maxTessFactor = 0
# d3d11.maxTessFactor = 16
# Enables relaxed pipeline barriers around UAV writes.
@ -132,6 +141,16 @@
# d3d11.relaxedBarriers = False
# Ignores barriers around UAV writes from fragment shaders.
#
# This may improve performance in some games, but may also introduce
# rendering issues. Please don't report bugs with the option enabled.
#
# Supported values: True, False
# d3d11.ignoreGraphicsBarriers = False
# Overrides anisotropic filtering for all samplers. Set this to a positive
# value to enable AF for all samplers in the game, or to 0 in order to
# disable AF entirely. Negative values will have no effect.
@ -142,21 +161,31 @@
# d3d9.samplerAnisotropy = -1
# Changes the mipmap LOD bias for all samplers. The given number will be
# added to the LOD bias provided by the application, rather than replacing
# it entirely. Positive values will reduce texture detail, while negative
# values may increase sharpness at the cost of shimmer.
#
# Supported values: Any number between -2.0 and 1.0
# d3d11.samplerLodBias = -0.3
# Declares vertex positions as invariant in order to solve
# potential Z-fighting issues at a small performance cost.
#
# Supported values: True, False
# d3d11.invariantPosition = True
# d3d9.invariantPosition = False
# d3d9.invariantPosition = True
# Replaces NaN outputs from fragment shaders with zeroes for floating
# point render target. Used in some games to prevent artifacting.
# Forces the sample count of all textures to 1, and performs
# the needed fixups in resolve operations and shaders.
#
# Supported values: True, False
# d3d11.enableRtOutputNanFixup = False
# d3d11.disableMsaa = False
# Clears workgroup memory in compute shaders to zero. Some games don't do
@ -167,10 +196,53 @@
# d3d11.zeroWorkgroupMemory = False
# Resource size limit for implicit discards, in kilobytes. For small staging
# resources mapped with MAP_WRITE, DXVK will sometimes allocate new backing
# storage in order to avoid GPU synchronization, so setting this too high
# may cause memory issues, setting it to -1 disables the feature.
# d3d11.maxImplicitDiscardSize = 256
# Resource size limit for buffer-mapped dynamic images, in kilobytes.
# A higher threshold may reduce memory usage and PCI-E bandwidth in
# some games, but may also increase GPU synchronizations. Setting it
# to -1 disables the feature.
# d3d11.maxDynamicImageBufferSize = -1
# Allocates dynamic resources with the given set of bind flags in
# cached system memory rather than uncached memory or host-visible
# VRAM, in order to allow fast readback from the CPU. This is only
# useful for buggy applications, and may reduce GPU-bound performance.
#
# Supported values: Any combination of the following:
# - v: Vertex buffers
# - i: Index buffers
# - c: Constant buffers
# - r: Shader resources
# - a: All dynamic resources
# d3d11.cachedDynamicResources = ""
# Force-enables the D3D11 context lock via the ID3D10Multithread
# interface. This may be useful to debug race conditions.
#
# Supported values: True, False
# d3d11.enableContextLock = False
# Sets number of pipeline compiler threads.
#
# If the graphics pipeline library feature is enabled, the given
# number of threads will be used for shader compilation. Some of
# these threads will be reserved for high-priority work.
#
# Supported values:
# - 0 to automatically determine the number of threads to use
# - 0 to use all available CPU cores
# - any positive number to enforce the thread count
# dxvk.numCompilerThreads = 0
@ -191,33 +263,32 @@
# dxvk.useRawSsbo = Auto
# Toggles early discard.
# Controls graphics pipeline library behaviour
#
# Uses subgroup operations to determine whether it is safe to
# discard fragments before the end of a fragment shader. This
# is enabled by default on all drivers except RADV and Nvidia.
# Enabling this may improve or degrade performance depending
# on the game and hardware, or cause other issues.
# Can be used to change VK_EXT_graphics_pipeline_library usage for
# debugging purpose. Doing so will likely result in increased stutter
# or degraded performance.
#
# Supported values:
# - Auto: Don't change the default
# - True, False: Always enable / disable
# - Auto: Enable if supported, and compile optimized pipelines in the background
# - True: Enable if supported, but do not compile optimized pipelines
# - False: Always disable the feature
# dxvk.useEarlyDiscard = Auto
# dxvk.enableGraphicsPipelineLibrary = Auto
# Controls workaround for NVIDIA HVV Heap bug.
# Controls pipeline lifetime tracking
#
# Limits the budget of NVIDIA's HVV (host-visible,
# device-local) heap to be half of the reported size. This is
# needed to avoid NVIDIA driver bug 3114283, and defaults to
# being enabled on all affected drivers.
# If enabled, pipeline libraries will be freed aggressively in order
# save memory and address space. Has no effect if graphics pipeline
# libraries are not supported or disabled.
#
# Supported values:
# - Auto: Don't change the default
# - True, False: Always enable / disable
# - Auto: Enable tracking for 32-bit applications only
# - True: Always enable tracking
# - False: Always disable tracking
# dxvk.halveNvidiaHVVHeap = Auto
# dxvk.trackPipelineLifetime = Auto
# Sets enabled HUD elements
@ -242,17 +313,6 @@
# d3d9.shaderModel = 3
# Evict Managed on Unlock
#
# Decides whether we should evict managed resources from
# system memory when they are unlocked entirely.
#
# Supported values:
# - True, False: Always enable / disable
# d3d9.evictManagedOnUnlock = False
# DPI Awareness
#
# Decides whether we should call SetProcessDPIAware on device
@ -308,18 +368,21 @@
# - Max Available Memory: Any int32_t
# - Memory Tracking Testing: True, False
# d3d9.maxAvailableMemory = 1024
# d3d9.maxAvailableMemory = 4096
# d3d9.memoryTrackTest = False
# Force enable/disable floating point quirk emulation
#
#
# Force toggle anything * 0 emulation
# Tristate
# Setting it to True will use a faster but less accurate approach that works for most games.
# Supported values:
# - True/False
# - True: Use a faster but less accurate approach. Good enough for most games
# - False: Disable float emulation completely
# - Strict: Use a slower but more correct approach. Necessary for some games
# - Auto: DXVK will pick automatically
# d3d9.floatEmulation =
# d3d9.floatEmulation = Auto
# Enable dialog box mode
@ -333,7 +396,7 @@
# d3d9.enableDialogMode = False
# Overrides the application's MSAA level on the swapchain
#
#
# Supported values: -1 (application) and 0 to 16 (user override)
# d3d9.forceSwapchainMSAA = -1
@ -350,16 +413,6 @@
# d3d9.longMad = False
# Alpha Test Wiggle Room
#
# Workaround for games using alpha test == 1.0, etc due to wonky interpolation or
# misc. imprecision on some vendors
#
# Supported values:
# - True/False
# d3d9.alphaTestWiggleRoom = False
# Device Local Constant Buffers
#
# Enables using device local, host accessible memory for constant buffers in D3D9.
@ -371,16 +424,6 @@
# d3d9.deviceLocalConstantBuffers = False
# Allow Read Only
#
# Enables using the D3DLOCK_READONLY flag. Some apps use this
# incorrectly, and write when they should be reading.
#
# Supported values:
# - True/False
# d3d9.allowLockFlagReadonly = True
# No Explicit Front Buffer
#
# Disables the front buffer
@ -399,6 +442,15 @@
# d3d9.supportDFFormats = True
# Use D32f for D24
#
# Useful for reproducing AMD issues on other hw.
#
# Supported values:
# - True/False
# d3d9.useD32forD24 = False
# Support X4R4G4B4
#
# Support the X4R4G4B4 format.
@ -418,17 +470,6 @@
# d3d9.supportD32 = True
# SWVP Constant Counts
#
# The number of constants available when using Software Vertex Processing.
#
# Supported values:
# - Integers
# d3d9.swvpFloatCount = 8192
# d3d9.swvpIntCount = 2048
# d3d9.swvpBoolCount = 2048
# Disable A8 as a Render Target
#
# Disable support for A8 format render targets
@ -439,17 +480,6 @@
# d3d9.disableA8RT = False
# Support for VCache Query
#
# Support for the vcache query
# Not very important as a user config.
# Used internally.
#
# Supported values:
# - True/False
# Defaults to True if vendorId == 0x10de
# d3d9.supportVCache = True
# Force Sampler Type Spec Constants
#
@ -472,16 +502,6 @@
# d3d9.forceAspectRatio = ""
# Allow Do Not Wait
#
# Allow the do not wait lock flag to be used
# Useful if some apps use this incorrectly.
#
# Supported values:
# - True/False
# d3d9.allowDoNotWait = True
# Allow Discard
#
# Allow the discard lock flag to be used
@ -513,4 +533,13 @@
# - True/False
# d3d9.apitraceMode = False
# d3d11.apitraceMode = False
# Seamless Cubes
#
# Don't use non seamless cube maps even if they are supported.
# Non seamless cubes are correct d3d9 behavior, but can produce worse looking edges.
#
# Supported values:
# - True/False
# d3d9.seamlessCubes = False

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

0
data_from_portwine/img/gui/port_changelog.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

0
data_from_portwine/img/gui/port_exit.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
data_from_portwine/img/setup.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 409 KiB

View File

@ -0,0 +1,484 @@
#!/usr/bin/env python3
import os
import re
import shlex
import shutil
import logging
from configparser import RawConfigParser
from pathlib import Path
from subprocess import run
from types import SimpleNamespace
try:
from PyQt6.QtCore import * # type: ignore
from PyQt6.QtGui import * # type: ignore
from PyQt6.QtWidgets import * # type: ignore
except ModuleNotFoundError:
from PyQt5.QtCore import * # type: ignore
from PyQt5.QtGui import * # type: ignore
from PyQt5.QtWidgets import * # type: ignore
settings = QSettings('PPGL', 'PortProtonGamesLib')
g = SimpleNamespace(locale = '')
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.resize(QSize(800, 600))
geometry = settings.value('geometry_main')
if geometry:
self.restoreGeometry(geometry)
shortcut = RawConfigParser()
shortcut.read(os.getenv('HOME') + '/.local/share/applications/PortProton.desktop')
scripts_dir = shortcut.get('Desktop Entry', 'Path', fallback=os.getenv('HOME') + '/.local/share/PortWINE/PortProton/data/scripts')
if not scripts_dir or not Path(scripts_dir).is_dir():
QMessageBox.critical(self, 'Error', 'Can not find installed PortProton')
exit(1)
g.scripts_dir = scripts_dir.rstrip('/')
g.pp_icon = shortcut.get('Desktop Entry', 'Icon', fallback='/usr/share/pixmaps/portproton.png')
pp_icon = QIcon(g.pp_icon)
self.setWindowIcon(pp_icon)
self.setWindowTitle('PortProton games library')
g.base_dir = str(Path(scripts_dir + '/../..').resolve())
g.install_pfx = g.base_dir + '/data/prefixes/INSTALL'
g.shortcuts_dir = g.base_dir + '/shortcuts'
g.games_dir = g.base_dir + '/games'
loc_path = Path(g.base_dir + '/data/tmp/PortProton_loc')
if loc_path.exists():
g.locale = loc_path.read_text().strip()
Path(g.shortcuts_dir).mkdir(parents=True, exist_ok=True)
Path(g.games_dir).mkdir(parents=True, exist_ok=True)
sep = QFrame(self)
sep.setFrameShape(QFrame.Shape.VLine)
sep.setFrameShadow(QFrame.Shadow.Sunken)
self._status_size = QLabel(self)
self._status_dir = QLabel(self)
self._status_wine = QLabel(self)
self.statusBar().setVisible(False)
self.statusBar().addWidget(self._status_dir, 1)
self.statusBar().addWidget(self._status_wine)
self.statusBar().addWidget(sep)
self.statusBar().addWidget(self._status_size)
self.game_list = GameList(self)
self.setCentralWidget(self.game_list)
self.toolbar = self.addToolBar('Main')
self.toolbar.setIconSize(QSize(32, 32))
self.toolbar.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
self.toolbar.setMovable(False)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogNewFolder), _tr('Install new game'), self)
action.triggered.connect(self.install_game)
self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileLinkIcon), _tr('Add game entry'), self)
action.triggered.connect(self.add_game)
self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_BrowserReload), _tr('Reload list'), self)
action.triggered.connect(self.reload_list)
self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Drop install prefix'), self)
action.triggered.connect(self.drop_prefix)
self.toolbar.addAction(action)
spacer = QWidget(self)
spacer.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
self.toolbar.addWidget(spacer)
action = QAction(pp_icon, 'PortProton', self)
action.triggered.connect(self.run_pp)
self.toolbar.addAction(action)
def install_game(self):
InstallGame(self)
def add_game(self):
InstallGame(self, False)
def reload_list(self):
self.game_list.reload()
def drop_prefix(self):
res = QMessageBox.question(self, _tr('Are you sure ?'), _tr('Do you really want to remove<br/><b>{0}</b> ?', g.install_pfx))
if res == QMessageBox.StandardButton.Yes:
shutil.rmtree(g.install_pfx, True)
def run_pp(self):
self.setDisabled(True)
app.processEvents()
run([g.scripts_dir + '/start.sh'])
self.setDisabled(False)
def set_status(self, item):
self.statusBar().setVisible(bool(item))
if item:
self._status_size.setText('Size: ' + item.dir_size_human)
self._status_dir.setText(' ' + item.game_dir)
self._status_wine.setText(item.wine_use)
def closeEvent(self, event):
geometry = self.saveGeometry()
settings.setValue('geometry_main', geometry)
super().closeEvent(event)
class LoadListThread(QThread):
completed = pyqtSignal(list)
def __init__(self, parent, install_dir):
super().__init__(parent)
self.install_dir = install_dir
def run(self):
exe_list = list(Path(self.install_dir).glob('**/*.exe'))
self.completed.emit(exe_list)
class InstallGame(QDialog):
def __init__(self, parent, installing=True):
super().__init__(parent)
self._installing = installing
self.install_dir = g.install_pfx + '/drive_c/Games' if installing else g.games_dir
self._exe_list_widget = QListWidget(self)
self._exe_list_widget.setIconSize(QSize(16, 16))
self._exe_list_widget.itemDoubleClicked.connect(self._handleDoubleClick)
layout = QVBoxLayout()
layout.addWidget(self._exe_list_widget)
self._pbar = QProgressBar(self)
self._pbar.setMaximum(0)
layout.addWidget(self._pbar)
thread = LoadListThread(self, self.install_dir)
thread.completed.connect(self.load)
thread.start()
if self._installing:
setup_btn = QPushButton(self)
setup_btn.setIcon(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogStart))
setup_btn.setText(_tr('Run another setup'))
setup_btn.clicked.connect(self._runSetup)
layout.addWidget(setup_btn)
self.setLayout(layout)
self.resize(400, 300)
self.setModal(True)
self.setWindowTitle(_tr('Select game exe file'))
geometry = settings.value('geometry_install')
if geometry:
self.restoreGeometry(geometry)
self.show()
def load(self, exe_list):
if self._installing and len(exe_list) == 0:
self._runSetup()
exe_list = list(Path(self.install_dir).glob('**/*.exe'))
if len(exe_list) == 0:
return self.close()
def render_list():
pixmap = QPixmap(16, 16)
pixmap.fill(Qt.GlobalColor.transparent)
empty_icon = QIcon(pixmap)
for exe in sorted(exe_list):
ico_file = str(exe) + '.ico'
item = QListWidgetItem(self._exe_list_widget)
item.setText(str(exe)[len(self.install_dir)+1:])
try:
if not Path(ico_file).exists():
run(['wrestool', '-x', '-t14', '-o', ico_file, exe], capture_output=True)
item.setIcon(QIcon(ico_file))
except Exception:
pass
if item.icon().pixmap(16, 16).isNull():
item.setIcon(empty_icon)
self._exe_list_widget.addItem(item)
self._pbar.setVisible(False)
thread = QThread(self)
thread.run = render_list
thread.start()
def _runSetup(self):
downloads_dir = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DownloadLocation)
exe_file, _ = QFileDialog.getOpenFileName(self, caption=_tr('Choose setup file'), filter='Exe files (*.exe)', directory=downloads_dir)
if not exe_file:
return
ppdb = shlex.quote(exe_file + '.ppdb')
script = f"""
mkdir -p {shlex.quote(g.install_pfx + '/drive_c/Games')}
echo '
export PW_VULKAN_USE=1
export PW_GUI_DISABLED_CS=1
export PW_PREFIX_NAME=INSTALL
export PW_DLL_INSTALL=mfc42
' > {ppdb}
{shlex.quote(g.scripts_dir + '/start.sh')} {shlex.quote(exe_file)}
rm -f {ppdb}
"""
self.setDisabled(True)
app.processEvents()
run(['bash', '-c', script])
self.setDisabled(False)
def _handleDoubleClick(self, item):
game_dir = item.text().split('/')[0]
dlg = QInputDialog(self)
dlg.setWindowTitle(_tr('Please enter game entry name'))
dlg.setLabelText(_tr('New game entry'))
dlg.setTextValue(game_dir)
dlg.resize(300, 0)
ok = dlg.exec()
shortcut_name = dlg.textValue()
if not ok or not shortcut_name:
return
file_name = re.sub(r'[<>:/\\|?*]', '_', shortcut_name)
shortcut = f"{g.shortcuts_dir}/{file_name}.desktop"
if Path(shortcut).exists():
res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', file_name))
if res != QMessageBox.StandardButton.Yes:
return
src_dir = self.install_dir + '/' + game_dir
dst_dir = g.games_dir + '/' + game_dir
exe_file = shlex.quote(g.games_dir + '/' + item.text())
ppdb = shlex.quote(g.games_dir + '/' + item.text() + '.ppdb')
self.setDisabled(True)
if self._installing and Path(dst_dir).exists():
res = QMessageBox.question(self, _tr('Dir already exists'), _tr('Dir <b>{0}</b> already exists. Overwrite ?', game_dir))
if res != QMessageBox.StandardButton.Yes:
return
if self._installing:
os.rename(src_dir, dst_dir)
script = f"""
export INSTALLING_PORT=1
export portwine_exe={exe_file}
cd {shlex.quote(g.scripts_dir)}
. {shlex.quote(g.scripts_dir + '/runlib')}
pw_init_db
[ -f {ppdb} ] && . {ppdb}
echo -e "export PW_VULKAN_USE=${{PW_VULKAN_USE:-1}}\nexport PW_GUI_DISABLED_CS=1" >> {ppdb}
"""
run(['bash', '-c', script])
icon_path = g.games_dir + '/' + item.text() + '.ico'
if not Path(icon_path).exists():
icon_path = g.pp_icon
Path(shortcut).write_text(f"""[Desktop Entry]
Name={shortcut_name}
Exec=env {shlex.quote(g.scripts_dir + '/start.sh')} {exe_file}
Type=Application
Categories=Game
StartupNotify=true
Path={shlex.quote(g.scripts_dir)}
Icon={icon_path}
""", encoding='utf-8')
os.chmod(shortcut, 0o755)
win.reload_list()
self.close()
def closeEvent(self, event):
geometry = self.saveGeometry()
settings.setValue('geometry_install', geometry)
super().closeEvent(event)
class GameList(QListWidget):
def __init__(self, parent):
super().__init__(parent)
self.itemActivated.connect(self.runGame)
self.currentItemChanged.connect(self.selectItem)
self.setViewMode(QListWidget.ViewMode.IconMode)
self.setResizeMode(QListWidget.ResizeMode.Adjust)
self.setIconSize(QSize(64, 64))
self.setWordWrap(True)
self.setSpacing(3)
self.reload()
def reload(self):
self.clear()
shortcuts = list(Path(g.shortcuts_dir).glob('*.desktop'))
shortcuts += list(Path(g.base_dir).glob('*.desktop'))
for shortcut in shortcuts:
try:
item = GameItem(self, shortcut)
self.addItem(item)
except ValueError:
pass
except:
logging.exception('Error while parse "%s"', shortcut)
self.sortItems()
self.setCurrentIndex(QModelIndex())
def runGame(self, item):
win.setDisabled(True)
app.processEvents()
run(['bash', '-c', item.get('Exec')])
win.setDisabled(False)
def selectItem(self, item):
win.set_status(item)
def contextMenuEvent(self, event):
selected = self.selectedItems()
if len(selected) == 0:
return
selected = selected[0]
menu = QMenu(self)
desktop = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DesktopIcon), _tr('Add to desktop'))
restore_gui = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogResetButton), _tr('Restore PortProton GUI'))
default_wine = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogOkButton), _tr('Set default wine'))
remove = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Remove game entry'))
uninstall = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogCloseButton), _tr('Uninstall game'))
if not selected.pp_gui_disabled:
restore_gui.setVisible(False)
if not selected.wine_use:
default_wine.setVisible(False)
if not selected.game_dir.startswith(g.games_dir):
uninstall.setVisible(False)
action = menu.exec(self.mapToGlobal(event.pos()))
desktop_shortcut = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DesktopLocation) + '/' + Path(selected.desktop_file).name
if action == desktop:
if Path(desktop_shortcut).exists():
res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', desktop_shortcut))
if res != QMessageBox.StandardButton.Yes:
return
shutil.copy(selected.desktop_file, desktop_shortcut)
if action == restore_gui or action == default_wine:
ignore_line = 'PW_GUI_DISABLED_CS' if action == restore_gui else 'PW_WINE_USE'
ppdb = shlex.split(selected.get('Exec'))[-1] + '.ppdb'
if not Path(ppdb).exists():
return
with open(ppdb, 'r') as read:
with open(ppdb + '.new', 'w') as write:
while (line := read.readline()):
if ignore_line not in line:
write.write(line)
os.rename(ppdb + '.new', ppdb)
if action == restore_gui:
selected.pp_gui_disabled = False
if action == default_wine:
selected.wine_use = None
self.selectItem(selected)
def remove_shortcut():
Path(desktop_shortcut).unlink(True)
Path(selected.desktop_file).unlink(True)
def_icon_path = g.base_dir + '/data/img/' + Path(shlex.split(selected.get('Exec'))[-1]).stem + '.png'
Path(def_icon_path).unlink(True)
if action == remove:
remove_shortcut()
self.reload()
if action == uninstall:
res = QMessageBox.question(self,
_tr('Are you sure ?'),
_tr('Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?', selected.get('Name'), selected.game_dir)
)
if res != QMessageBox.StandardButton.Yes:
return
remove_shortcut()
if selected.game_dir.startswith(g.games_dir):
shutil.rmtree(selected.game_dir, True)
self.reload()
def human_size(num):
if not num:
return "-"
for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
if abs(num) < 1024.0:
return f"{num:.2f} {unit}B"
num /= 1024.0
return f"{num:.2f} YiB"
class GameItem(QListWidgetItem):
def __init__(self, parent, desktop_file):
self.desktop_file = desktop_file
self.config = RawConfigParser()
self.config.read(desktop_file)
text = self.get('Name', Path(desktop_file).stem)
if not self.get('Exec') or text == 'PortProton':
raise ValueError('Validation fail')
exe_file = shlex.split(self.get('Exec'))[-1]
if exe_file.startswith(g.games_dir):
self.game_dir = g.games_dir + '/' + exe_file[len(g.games_dir)+1:].split('/')[0]
else:
self.game_dir = str(Path(exe_file).parent)
if self.game_dir == '.':
raise ValueError('Can not determine game dir')
self.pp_gui_disabled = False
self.wine_use = None
ppdb = exe_file + '.ppdb'
if Path(ppdb).exists():
ppdb_conf = RawConfigParser(strict=False)
with open(ppdb) as f:
ppdb_conf.read_string('[dummy]\n' + f.read())
pp_gui_disabled = ppdb_conf.get('dummy', 'export PW_GUI_DISABLED_CS', fallback='').strip('"')
try: self.pp_gui_disabled = bool(int(pp_gui_disabled))
except: self.pp_gui_disabled = bool(pp_gui_disabled)
self.wine_use = ppdb_conf.get('dummy', 'export PW_WINE_USE', fallback='').strip('"')
super().__init__(parent)
self.setToolTip(text)
self.setText(text)
icon_path = self.get('Icon') if Path(self.get('Icon')).exists() else g.pp_icon
qicon = QIcon(icon_path)
self.setIcon(qicon)
self.setTextAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop)
self.setSizeHint(QSize(100, 105))
self._set_dir_size(None)
dir_size_cache = self.game_dir + '/.size'
if Path(dir_size_cache).exists():
self._set_dir_size(int(Path(dir_size_cache).read_text()))
else:
def calc_dir_size():
if not Path(self.game_dir).exists():
return
dir_size = sum(p.stat(follow_symlinks=False).st_size for p in Path(self.game_dir).rglob('*'))
self._set_dir_size(dir_size)
Path(dir_size_cache).write_text(str(dir_size))
thread = QThread(parent)
thread.run = calc_dir_size
thread.start()
def get(self, name, fallback=None):
return self.config.get('Desktop Entry', name, fallback=fallback)
def _set_dir_size(self, size):
self.dir_size = size
self.dir_size_human = human_size(size)
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
lang = {
'RUS': {
'Install new game': 'Установить игру',
'Add game entry': 'Добавить в список',
'Reload list': 'Обновить список',
'Drop install prefix': 'Удалить установочный префикс',
'Are you sure ?': 'Вы уверены ?',
'Do you really want to remove<br/><b>{0}</b> ?': 'Вы действительно хотите удалить<br/><b>{0}</b> ?',
'Run another setup': 'Запустить установку',
'Select game exe file': 'Выберите exe файл игры',
'Choose setup file': 'Выберите установочный файл',
'Please enter game entry name': 'Введите название игры',
'New game entry': 'Название игры',
'Shortcut already exists': 'Ярлык уже существует',
'Shortcut <b>{0}</b> already exists. Overwrite ?': 'Ярлык <b>{0}</b> уже существует. Перезаписать ?',
'Dir already exists': 'Директория уже существует',
'Dir <b>{0}</b> already exists. Overwrite ?': 'Директория <b>{0}</b> уже существует. Перезаписать ?',
'Add to desktop': 'Добавить на рабочий стол',
'Restore PortProton GUI': 'Восстановить PortProton GUI',
'Set default wine': 'Выбрать дефолтный wine',
'Remove game entry': 'Убрать из списка',
'Uninstall game': 'Удалить игру',
'Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?': 'Вы действительно хотите удалить <b>{0}</b><br/>расположеную в "<b>{1}</b>" ?'
}
}
def _tr(text, *fmt):
res = lang.get(g.locale, {}).get(text, text)
if fmt:
res = res.format(*fmt)
return res
app = QApplication([])
app.setDesktopFileName('PortProton')
win = MainWindow()
win.show()
app.exec()

0
data_from_portwine/scripts/.Xresources Normal file → Executable file
View File

View File

@ -1,188 +0,0 @@
#!/bin/bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
export PW_USER_TEMP="$WINEPREFIX/drive_c/users/${USER}/Temp"
export PW_FORCE_LARGE_ADDRESS_AWARE=0
export PW_USE_GAMEMODE=0
export PW_CHECK_AUTOINSTAL=1
export PW_WINEDBG_DISABLE=1
export PW_NO_WRITE_WATCH=0
export PW_VULKAN_USE=0
export PW_NO_FSYNC=1
export PW_NO_ESYNC=1
unset PORTWINE_CREATE_SHORTCUT_NAME
pw_kill_autostart () {
if [ "$PW_USE_RUNTIME" != 1 ]
then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`"
else
sleep 10
while true ; do
if [ -z `pgrep "$1" | head -n 1` ] && [ ! -z `pgrep wrap | head -n 1` ]; then
echo -e "PID "$1" not found"
sleep 1
else
KILL_PORTWINE
break
fi
done
fi
}
PW_WGC () {
export LAUNCH_PARAMETERS=("/VERYSILENT")
[ "${update_loc}" = "RUS" ] && export WGC_LOC=RU || export WGC_LOC=EU
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe"
START_PORTWINE
if try_download "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Starting WGC installation..."
pw_kill_autostart wgc.exe &
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/ProgramData/Wargaming.net/GameCenter/wgc_api/wgc_api.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Wargaming Game Center"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_ORIGIN () {
export LAUNCH_PARAMETERS=("/silent" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
START_PORTWINE
if try_download "https://download.dm.origin.com/origin/live/OriginSetup.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing the Origin. Please wait..."
pw_kill_autostart Origin.exe &
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Origin/Origin.exe"
PW_STOP_PROGRESS_BAR
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_BATTLE_NET () {
[ "${update_loc}" = "RUS" ] && export BN_LOC=ruRU || export BN_LOC=enUS
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe"
START_PORTWINE
if try_download "http://dist.blizzard.com/downloads/bna-installers/322d5bb9ae0318de3d4cde7641c96425/retail.1/Battle.net-Setup-${BN_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR "Installing the Battle Net. Please wait..."
pw_kill_autostart Battle.net.exe &
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe"`
PW_STOP_PROGRESS
PORTWINE_CREATE_SHORTCUT
try_remove_file "${PW_AUTOINSTALL_EXE}"
fi
STOP_PORTWINE
}
PW_EPIC () {
export LAUNCH_PARAMETERS=("/q" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
START_PORTWINE
if try_download "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing Epic Games Launcher. Please wait..."
pw_kill_autostart EpicGamesLauncher.exe
PW_RUN msiexec /i "${PW_AUTOINSTALL_EXE}" &
sleep 10
if [ ! -z `pgrep msiexec* | head -n 1` ] ; then
while [ ! -z `pgrep msiexec* | head -n 1` ] || [ ! -z `pgrep rundll32* | head -n 1` ] || [ ! -z `pgrep wrap | head -n 1` ]; do
[ ! -z `pgrep rundll32* | head -n 1` ] && kill -n 9 `pgrep rundll32* | head -n 1` && echo "Kill rundll32.exe"
sleep 5
done
fi
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Epic Games/Launcher/Portal/Binaries/Win32/EpicGamesLauncher.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_GOG () {
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_2.0.37.384.exe"
START_PORTWINE
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.37.384/setup_galaxy_2.0.37.384.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing the GOG Galaxy. Please wait..."
pw_kill_autostart GalaxyClient.* &
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/GOG Galaxy/GalaxyClient.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_EVE () {
export PW_WINDOWS_VER=10
export PW_DLL_INSTALL="vcrun2017"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EveLauncher-1892908.exe"
START_PORTWINE
if try_download "https://binaries.eveonline.com/EveLauncher-1892908.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_BLOCK "Installing the EVE Launcher. Please wait..."
if [ ! -f "$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe" ] ; then
try_remove_dir "$WINEPREFIX/drive_c/Games/EVE Online"
dd if="${PW_AUTOINSTALL_EXE}" of="${PW_AUTOINSTALL_EXE}".7z bs=1M skip=31646603 count=196171208 iflag=skip_bytes,count_bytes
"$pw_7z" x "${PW_AUTOINSTALL_EXE}".7z -o"$WINEPREFIX/drive_c/Games/EVE Online"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${PW_AUTOINSTALL_EXE}".7z
fi
portwine_exe="$WINEPREFIX/drive_c/Games/EVE Online/Launcher/evelauncher.exe"
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_UBC () {
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"
START_PORTWINE
if try_download "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_CS "Installing the Ubisoft Connect. Please wait..."
pw_kill_autostart UbisoftConnect.exe &
PW_RUN "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Ubisoft Game Launcher/UbisoftConnect.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}
PW_STEAM () {
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"
START_PORTWINE
if try_download "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}"
then
PW_START_PROGRESS_BAR_CS "Installing the Steam. Please wait..."
pw_kill_autostart steam.exe &
PW_RUN "${PW_AUTOINSTALL_EXE}"
if [ -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" ]
then mv -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" "$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe"
fi
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
KILL_PORTWINE
PW_STOP_PROGRESS_BAR
PORTWINE_CREATE_SHORTCUT
fi
STOP_PORTWINE
}

View File

@ -0,0 +1,592 @@
#!/usr/bin/env bash
# Author: chal55rus, Castro-Fidel (linux-gaming.ru)
########################################################################
if [ "${update_loc}" = "RUS" ]
then
KEY_CREDITS=$RANDOM
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
--text-align=center --scroll --text="PortProton v. ${install_ver}
scripts v. ${scripts_install_ver}
https://linux-gaming.ru
Авторские права © 2022 Castro-Fidel (linux-gaming.ru)
Эта программа поставляется без каких-либо гарантий.
Подробнее см. в Лицензия." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Автор: Casro-Fidel (Михаил Тергоев)
Помощники разработчика и тестировщики:
Cefeiko
Dezert1r
Taz_mania
Anton_Famillianov
RidBowt
chal55rus
UserDiscord
Survolog
gavr
RusNor
aldiserg
an9949an
andrey4korop
zorn
" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< " Лицензия Массачусетского технологического института (MIT License)
Авторские права (©) 2022 Castro-Fidel (linux-gaming.ru)
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного
программного обеспечения и связанных с ним файлов документации (Программное
обеспечение), для в Программном обеспечении без ограничений, включая, помимо прочего,
права использовать, копировать, изменять, объединять, публиковать, распространять,
сублицензировать и/или продавать копий Программного обеспечения, а также разрешить
лицам, которым Программное обеспечение предоставляется для этого при соблюдении
следующих условий:
Вышеприведенное уведомление об авторских правах и это уведомление о разрешении должны
быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ (КАК ЕСТЬ), БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ
ПОДРАЗУМЕВАЕТСЯ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ,
ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЕ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ
АВТОРЫ ИЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ
ДРУГОЕ. ОТВЕТСТВЕННОСТЬ, БУДУЩАЯ ПО ДОГОВОРУ, ДЕЛИКТУ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩАЯ ИЗ
ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' Проект поддержали:
https://boosty.to/portwine-linux.ru
1 1
A B
AdamArclight666
Akai
Aleks
Alexsei Cherniavskiy
Alex Sh
Allegra_g
AlxChkln
amikha1lov
Andrei K
anisan_sg
Another games
Apofis Smab
apolon
Aule Mahal
Azartiny Mor
BELIJJAaL
benya
Bunny Sword
CanBoo
chal55rus
Coin Hunt
Cruze
Dadenard
Dallasss
Daniil Go
Dencher12
Denis
Dezert1r
Dima Manshin
DIO
d.kostroma
Dmitriy Tokarev
Drakorgaur
dunkanMcLoud
dupster mailbox
Eliot
El Mago
Ethan Winters
Evgen Buiko
EvilDevolver
fight fox
funti2f
fusiok
GaiverX
Gekko
Geomant17
gg_harper
Happy Husky
haravara
Homyakin
Ivan Vlasov
ivboss
ksandr4370
LeGi0neR
Lexa XLS
Linux Vumtut
Lonely Lonely
Maksami Cordyceps
Maktub
Melord
MICROFARAT
MLogaut
Monti Roquefort
MrBatonio
Nesterik
Nikola P.
Nuclearsun
Nurik
Oleg55Rus
onix
Optimus
Ottakvot
paulscathedral
penguin4ek
Pependos
PLAFON
PlagueEvgeny
Rojok56
Ruslan Vlasov
Rustam
Saireg
sanelasan
sashman
Seeropoonya
sendependa_dio
shecspir
Soma
sship
StGdG
Subscript
Sudo Connect
sugoyako
Taras Zagibalov
The End
tima
Tykva
ua3dko
V1ktr
VanBugel
VAtiB
Vikthor Prieto
vlad petrov
Vosarat
VUMtut
Windchester
wrager
Xpamych
Yurec
Yuri Emelyanov
Zillah Giovanni
Zloy Ivan
Zorit
zorn
Александр
Александр Абдулов
Александр Кладов
Александр Лобанов
Алексей Ultralin
Алексей Войтенко
Алексей Галаш
Алексей Зубрийчук
Алексей Ивушкин
Алексей Кравчук
Алексей Чугунов
Андрей Гусаков
Андрей Карпенцов
Антоний Дамикан
Антон Рудковский
Антон Фамилианов
Артём К.
Валерий Толмачёв
Виктор Шварц
Виктор Щетинин
Виндэта(рог)
Виталий Нуров
Влад Блинов
Владимир Бильдюкевич
Владимир Дарвин
Влад Кладиев
Вячеслав Шитюков
Вячеслав Шустров
Георгий Гурский
Данил Павлов
Дед Мазай
Денис Мальцев
Денис Матій
Денис Олефиренко
Дмитрий Круглов
Дмитрий Мазанка
Дмитрий Сидоров
Евгений Бебин
Евгений Долгополов
Евгений Хирвонен
Евгений Храмов
Егор Кречун
Женя Рябушкин
Иван Белекеев
Коляныч Королёв
Константин __
Константин Абадонна
Леонид
Максим Хмара-Миронов
Маленькая сосна
Марат
Марат Рахимов
Неизвестый Дмитрий
Никита Булавин
Николай Гинтов
Павел Иванов
Павел Пашенцев
Равич Ревес
Рамиль
Рома Б.
Роман Игнатьев
Роман Паженский
Ростислав Кузнецов
Росляков Виталий
Саша
Семён Клишин
Семён Ярополов
Сергей Казёнкин
Сергей Круглов
Серёга Сапрыкин
Стас Толкачёв
Тима Суеубаев
Тимофей Ковалев
Тимур Сафонов
Удалить Аккаунт
Хоттабыч
Список будет дополняться...' &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \
--title=JOIN --window-icon=group --image=system-config-users --uri-color=red --show-uri \
--text-info --scroll <<< \
"Website: https://linux-gaming.ru/
Discord: http://discord.gg/yJSEFjF
VK: https://vk.com/linuxgamingru
-------------------------------------------
Стать платным подписчиком:
boosty: https://boosty.to/portwine-linux.ru
patreon: https://www.patreon.com/portproton
Кошельки WebMoney: WMZ-Z135951244401 WME-E325631629973
Yandex кошелек: 410012267513818
-------------------------------------------
Задонатить на стрим:
https://www.donationalerts.com/r/portwine_linux" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--fontname="Serif bold italic 10" --text-info <<< " Сторонние библиотеки, которые используются в PortProton
PortProton собран на основе бесплатных библиотек программного обеспечения:
WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
YAD: https://github.com/v1cont/yad
ZENITY: https://github.com/GNOME/zenity" &
"${pw_yad_new}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--center --notebook --no-buttons --tab-pos=bottom \
--tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \
--tab="БИБЛИОТЕКИ"
echo "Exit from credits"
/usr/bin/env bash -c ${pw_full_command_line[*]}
else
KEY_CREDITS=$RANDOM
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
--text-align=center --scroll --text="PortProton v. ${install_ver}
scripts v. ${scripts_install_ver}
https://linux-gaming.ru
Copyright © 2022 Castro-Fidel (linux-gaming.ru)
This program comes with absolutely no warranty.
See the License for details." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Author: Casro-Fidel (Mikhail Tergoev)
Developer assistants and testers:
Cefeiko
Dezert1r
Taz_mania
Anton_Famillianov
RidBowt
chal55rus
UserDiscord
survolog
gavr
RusNor
aldiserg
an9949an
andrey4korop
zorn
" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License
Copyright (©) 2022 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
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED (AS IS), WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' The project was supported:
https://boosty.to/portwine-linux.ru:
1 1
A B
AdamArclight666
Akai
Aleks
Alex Sh
Alexsei Cherniavskiy
Allegra_g
AlxChkln
Andrei K
Another games
Apofis Smab
Aule Mahal
Azartiny Mor
BELIJJAaL
CanBoo
Coin Hunt
Cruze
DIO
Dadenard
Dallasss
Daniil Go
Dencher12
Denis
Dezert1r
Dima Manshin
Dmitriy Tokarev
Drakorgaur
El Mago
Eliot
Ethan Winters
Evgen Buiko
EvilDevolver
GaiverX
Gekko
Geomant17
Happy Husky
Homyakin
Ivan Vlasov
LeGi0neR
Lexa XLS
Linux Vumtut
Lonely Lonely
MICROFARAT
MLogaut
Maksami Cordyceps
Maktub
Melord
Monti Roquefort
MrBatonio
Nesterik
Nikola P.
Nuclearsun
Nurik
Oleg55Rus
Optimus
Ottakvot
PLAFON
Pependos
PlagueEvgeny
Rojok56
Ruslan Vlasov
Rustam
Saireg
Seeropoonya
Soma
StGdG
Subscript
Sudo Connect
Taras Zagibalov
The End
Tykva
V1ktr
VAtiB
VUMtut
VanBugel
Vikthor Prieto
Vosarat
Windchester
Xpamych
Yurec
Yuri Emelyanov
Zillah Giovanni
Zloy Ivan
Zorit
amikha1lov
anisan_sg
apolon
benya
chal55rus
d.kostroma
dunkanMcLoud
dupster mailbox
fight fox
funti2f
fusiok
gg_harper
haravara
ivboss
ksandr4370
onix
paulscathedral
penguin4ek
sanelasan
sashman
sendependa_dio
shecspir
sship
sugoyako
tima
ua3dko
vlad petrov
wrager
xpamych
zorn
Alexander
Alexander Abdulov
Alexander Kladov
Alexander Lobanov
Alexey Ultralin
Alexey Voitenko
Alexey Galash
Alexey Zubriychuk
Alexey Ivushkin
Alexey Kravchuk
Alexey Chugunov
Andrey Gusakov
Andrey Karpentsov
Anton Rudkovsky
Anton Surnames
Antony Damikan
Artyom K.
Valery Tolmachev
Victor Schwartz
Victor Shchetinin
Vindeta (horn)
Vitaly Nurov
Vlad Blinov
Vlad Kladiev
Vladimir Bildyukevich
Vladimir Darwin
Vyacheslav Shityukov
Vyacheslav Shustrov
George Gursky
Danil Pavlov
Grandfather Mazai
Denis Maltsev
Denis Matiy
Denis Olefirenko
Dmitry Kruglov
Dmitry Mazanka
Dmitry Sidorov
Evgeny Bebin
Evgeny Dolgopolov
Evgeny Hirvonen
Evgeny Khramov
Egor Krechun
Zhenya Ryabushkin
Ivan Belekeyev
Kolyanich Korolev
Konstantin __
Konstantin Abadonna
Leonid
Maxim Khmara-Mironov
Little Pine
Marat
Marat Rakhimov
Unknown Dmitry
Nikita Bulavin
Pavel Ivanov
Pavel Pashentsev
Ravich Reves
Ramil
Roma B.
Roman Ignatiev
Roman Pazhensky
Sasha
Semyon Klishin
Semyon Yaropolov
Sergey Kazenkin
Sergey Kruglov
Serega Saprykin
Stas Tolkachev
Tima Sueubaev
Timofey Kovalev
Timur Safonov
Delete Account
Hottabych
Nikolai Gintov
The list will be updated...' &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Do you want to join and help in the development of the project:" \
--title=JOIN --window-icon=group --image=system-config-users --uri-color=red --show-uri \
--text-info --scroll <<< \
"Website: http://linux-gaming.ru
Discord: http://discord.gg/yJSEFjF
VK: https://vk.com/portwinelinux
-------------------------------------------
Become a paid subscriber:
boosty: https://boosty.to/portwine-linux.ru
patreon: https://www.patreon.com/portproton
WebMoney wallets: WMZ-Z135951244401 WME-E325631629973
Yandex wallet: 410012267513818
-------------------------------------------
Donat on stream:
https://www.donationalerts.com/r/portwine_linux" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--fontname="Serif bold italic 10" --text-info <<< " Third-party libraries that are used in PortProton
PortProton is built on the basis of the following free software libraries:
WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
YAD: https://github.com/v1cont/yad
ZENITY: https://github.com/GNOME/zenity" &
"${pw_yad_new}" --title "ABOUT US" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--center --notebook --no-buttons --tab-pos=bottom \
--tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \
--tab="THIRD PARTY LIBRARIES"
echo "Exit from credits"
/usr/bin/env bash -c ${pw_full_command_line[*]}
fi

View File

@ -0,0 +1,959 @@
#!/usr/bin/env bash
# Author: Castro-Fidel (linux-gaming.ru)
########################################################################
pw_ping_test () {
ping -w3 -c1 github.com &> /dev/null
[ "$?" == "0" ] && return 0 || return 1
}
print_error () {
echo "ERROR: $@"
}
export -f print_error
print_info () {
echo "INFO: $@"
}
export -f print_info
print_var () {
for vp in $@ ; do echo "${vp}=${!vp}" ; done
}
export -f print_var
try_copy_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for copy" && return 1
elif [ -z "$2" ] ; then print_error "no way to copy file $1" && return 1
else
cp -f "$1" "$2"
if [ "$?" != 0 ]
then print_error "failed to copy file $1 to $2" || return 1
else return 0
fi
fi
}
export -f try_copy_file
try_copy_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy"
elif [ -z "$2" ] ; then print_error "no way to copy directory $1"
else
cp -fr "$1" "$2"
[ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0
fi
return 1
}
export -f try_copy_dir
try_remove_file () {
if [ -f "$1" ] ; then
rm -f "$1"
[ "$?" == 0 ] && return 0 || return 1
fi
}
export -f try_remove_file
try_remove_dir () {
if [ -d "$1" ] ; then
rm -fr "$1"
[ "$?" == 0 ] && return 0 || return 1
fi
}
export -f try_remove_dir
try_force_link_file () {
if [ ! -f "$1" ] ; then :
elif [ -z "$2" ] ; then print_error "no way to link file $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0
fi
return 1
}
export -f try_force_link_file
check_symlink () {
CHK_SYMLINK_FILE="`file "$1"`"
if [[ ! -z "`echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}'`" ]] ; then
return 0
elif [[ ! -z "`echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}'`" ]] ; then
print_error "remove broken symlink: $CHK_SYMLINK_FILE"
rm -fr "$CHK_SYMLINK_FILE"
return 1
else
return 1
fi
}
export -f check_symlink
try_force_link_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for link"
elif [ -z "$2" ] ; then print_error "no way to link directory $1"
else
ln -sf "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0
fi
return 1
}
export -f try_force_link_dir
check_process () {
[ ! -n "`ps cax | grep "$1" | awk '{print $1}'`" ] && return 0 || return 1
}
export -f check_process
try_download () {
PW_DOWNLOAD_FILE_NAME="$(basename $1)"
set -o pipefail
wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 2 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "${1}" 2>&1 | \
tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download ${PW_DOWNLOAD_FILE_NAME}" --text=Starting... --auto-close --width=500 --height=90
if [ "${PIPESTATUS[0]}" != 0 ] ; then
print_error "Failed to download ${PW_DOWNLOAD_FILE_NAME} from GitHub."
print_info "Try download ${PW_DOWNLOAD_FILE_NAME} from FTP"
try_remove_file "$2"
wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 2 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" --ftp-user=anonymous "ftp://171.22.215.18/archives/${PW_DOWNLOAD_FILE_NAME}" 2>&1 | \
tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download ${PW_DOWNLOAD_FILE_NAME}" --text=Starting... --auto-close --width=500 --height=90
if [ "${PIPESTATUS[0]}" != 0 ] ; then
print_error "Failed to download ${PW_DOWNLOAD_FILE_NAME} from FTP."
try_remove_file "$2"
return 1
fi
fi
try_remove_file "${PORT_WINE_TMP_PATH}/download_log"
return 0
}
try_download_to_path () {
set -o pipefail
wget --directory-prefix="$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 3 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1" 2>&1 | \
tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --width=500 --height=90
if [ "${PIPESTATUS[0]}" != 0 ] ; then
print_error "Failed to download $1."
return 1
else
return 0
fi
}
try_download_silent () {
wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 3 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1"
if [ "${PIPESTATUS[0]}" != 0 ] ; then
print_error "Failed to download $1. Skipping."
try_remove_file "$2"
return 1
else
return 0
fi
}
create_new_dir () {
if [ ! -d "$1" ] ; then
mkdir -p "$1"
fi
return 0
}
var_winedlloverride_update () {
if [ ! -z "${WINEDLLOVERRIDES}" ]
then export WINEDLLOVERRIDES="${1};${WINEDLLOVERRIDES}"
else export WINEDLLOVERRIDES="${1}"
fi
return 0
}
var_vkd3d_config_update () {
if [ ! -z "${VKD3D_CONFIG}" ]
then export VKD3D_CONFIG="${1};${VKD3D_CONFIG}"
else export VKD3D_CONFIG="${1}"
fi
return 0
}
var_radv_perftest_config_update () {
if [ ! -z "${RADV_PERFTEST}" ]
then export RADV_PERFTEST="${1};${RADV_PERFTEST}"
else export RADV_PERFTEST="${1}"
fi
return 0
}
var_vk_istance_layers_config_update () {
if [ ! -z "${PW_VK_INSTANCE_LAYERS}" ]
then export PW_VK_INSTANCE_LAYERS="${1}:${PW_VK_INSTANCE_LAYERS}"
else export PW_VK_INSTANCE_LAYERS="${1}"
fi
return 0
}
unpack_tar_zst () {
set -o pipefail
unset PW_ZSTD_PORT
if [[ `which zstd` ]] &>/dev/null ; then
tar -I zstd -xvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
else
env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_WINELIB}/portable/lib/lib64:${PW_WINELIB}/portable/lib/lib" tar -I "${PW_WINELIB}/portable/bin/zstd" -xvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
fi
}
unpack_tar_xz () {
set -o pipefail
tar -Jxvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
}
unpack_tar_gz () {
set -o pipefail
tar -xzvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
}
unpack_tar () {
set -o pipefail
tar -xvf "$1" -C "$2" | sszen
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
}
pw_clear_pfx () {
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/userdef.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.update-timestamp"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/.windows-serial"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Setup"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Windows"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/WindowsTask"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Package Cache"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Local Settings/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Local Settings/Application Data/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Local Settings/Temporary Internet Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Application Data/wine_gecko"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Local Settings/Application Data/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Local Settings/Temporary Internet Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Application Data/wine_gecko"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Internet Explorer"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Windows Media Player"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Windows NT"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Common Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Internet Explorer"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Common Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Windows Media Player"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Windows NT"
rm -f "${PORT_WINE_TMP_PATH}"/*.bin
rm -f "${PORT_WINE_TMP_PATH}"/*.foz
return 0
}
pw_reinstall_pp () {
if [[ "${PW_REINSTALL_FROM_TERMINAL}" == 1 ]] ; then
read -p "Do you want to reinstall PortProton? (Y,y - Yes): " -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
echo
exit 1
fi
elif ! gui_question "${port_reinstall}"
then exit 1
fi
pw_clear_pfx
try_remove_dir "${PORT_WINE_PATH}/data/dist"
try_remove_dir "${PORT_WINE_TMP_PATH}/VULKAN"
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
try_remove_file "${PORT_WINE_PATH}/data/user.conf"
echo 1000 > "${PORT_WINE_TMP_PATH}/scripts_ver"
echo
echo "Restarting PP for reinstall files..."
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
}
check_user_conf () {
if [ ! -f "${USER_CONF}" ]; then
echo "#!/usr/bin/env bash" > "${USER_CONF}"
echo "# User overides db and var settings..." >> "${USER_CONF}"
chmod u+x "${USER_CONF}"
fi
return 0
}
init_wine_ver () {
if [[ -z `ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}"` ]] ; then
if [[ ! -z `echo "${PW_WINE_USE}" | grep "PROTON_LG"` ]] ; then
export PW_WINE_USE=PROTON_LG
else
export PW_WINE_USE=PROTON_GE
fi
fi
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_LG$"` ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]]
then export PW_WINE_USE="${PW_PROTON_GE_VER}"
fi
[ ! -z "${PW_WINE_VER}" ] && export PW_WINE_USE=`echo "${PW_WINE_VER}" | tr [[:lower:]] [[:upper:]]`
[ ! -z "${PW_WINE_USE}" ] && export PW_WINE_USE=`echo "${PW_WINE_USE}" | tr [[:lower:]] [[:upper:]]`
unset PW_WINE_VER
export WINEDIR="${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
export WINE="${WINEDIR}/bin/wine"
export WINELOADER="${WINEDIR}/bin/wine"
export WINESERVER="${WINEDIR}/bin/wineserver"
export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
if [[ ! -z "${PATH_TO_GAME}" ]] ; then
export WINEDLLPATH+=":${PATH_TO_GAME}"
fi
if [[ -d "${WINEDIR}/files" && ! -d "${WINEDIR}/dist" ]] ; then
for clear_dist_files in `ls "${WINEDIR}" | sed -e "s/^files$//g" | sed -e "s/^version$//g"` ; do
rm -fr "${WINEDIR}/$clear_dist_files"
done
mv -f "${WINEDIR}/files"/* "${WINEDIR}/"
rm -fr "${WINEDIR}/files"
elif [[ ! -d "${WINEDIR}/files" && -d "${WINEDIR}/dist" ]] ; then
for clear_dist_files in `ls "${WINEDIR}" | sed -e "s/^dist$//g" | sed -e "s/^version$//g"` ; do
rm -fr "${WINEDIR}/$clear_dist_files"
done
mv -f "${WINEDIR}/dist"/* "${WINEDIR}/"
rm -fr "${WINEDIR}/dist"
elif [ -f "${WINEDIR}/proton_dist.tar" ] ; then
unpack_tar "${WINEDIR}/proton_dist.tar" "${WINEDIR}/"
for clear_dist_files in `ls "${WINEDIR}" | sed -e "s/^bin$//g" | sed -e "s/^lib$//g" | sed -e "s/^lib64$//g" | sed -e "s/^share$//g" | sed -e "s/^version$//g"` ; do
rm -fr "${WINEDIR}/$clear_dist_files"
done
fi
if [[ -d "${WINEDIR}" ]] ; then
[[ ! -f "${WINEDIR}/version" ]] && echo "${PW_WINE_USE}" > "${WINEDIR}/version"
# if [[ -d "${WINEDIR}/lib32/" ]] ; then
# mv -f "${WINEDIR}/lib" "${WINEDIR}/lib64"
# mv -f "${WINEDIR}/lib32" "${WINEDIR}/lib"
# fi
if [[ ! -d "${WINEDIR}/lib64/" && -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
create_new_dir "${WINEDIR}/lib64/wine"
mv -f "${WINEDIR}/lib/wine/x86_64-unix" "${WINEDIR}/lib64/wine/"
mv -f "${WINEDIR}/lib/wine/x86_64-windows" "${WINEDIR}/lib64/wine/"
fi
try_remove_file "${WINEDIR}/lib/libsteam_api.so"
try_remove_file "${WINEDIR}/lib64/libsteam_api.so"
for mono_gecko_chk in "mono" "gecko" ; do
if check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" ; then
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is symlink. OK."
elif [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then
try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" | sszen
try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/
echo "Copy ${WINEDIR}/share/wine/${mono_gecko_chk} to tmp and create symlink to ${WINEDIR}/share/wine/. OK."
else
try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is broken symlink. Repair... OK."
fi
done
grep 'Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' "${WINEDIR}/share/wine/wine.inf" &> /dev/null
if [[ "$?" != "0" ]] ; then
echo 'HKLM,Software\NVIDIA Corporation\Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf"
echo 'HKLM,System\ControlSet001\Services\nvlddmkm,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf"
sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
fi
fi
return 0
}
pw_init_runtime () {
if [[ -n "$(grep "ROSA Fresh" "/etc/os-release")" ]] ; then
export LOCPATH="/run/host/usr/share/locale/"
elif [[ -n "$(grep "altlinux" "/etc/os-release")" ]] ; then
export LIBGL_DRIVERS_PATH="/usr/lib/X11/modules/dri:/usr/lib64/X11/modules/dri"
fi
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/lib64:${PW_WINELIB}/portable/lib/lib32:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases"
export PW_VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d"
if [ ! -z ${PATH_TMP} ]
then export PATH="${PATH_TMP}"
else export PATH_TMP="${PATH}"
fi
if [ ! -z "${PATH}" ]
then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin"
else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin"
fi
if [ "${PW_USE_GSTREAMER}" = 1 ] ; then
if [ -d "${WINEDIR}/lib64/gstreamer-1.0" ] ; then
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0"
elif [ -d "${PW_WINELIB}/portable/lib/lib64/gstreamer-1.0" ] ; then
export GST_PLUGIN_SYSTEM_PATH_1_0="${PW_WINELIB}/portable/lib/lib64/gstreamer-1.0:${PW_WINELIB}/portable/lib/lib32/gstreamer-1.0"
fi
export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz
export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz
export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz
export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz
else
var_winedlloverride_update "winegstreamer="
fi
if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]] ; then
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--unshare-home \
--home="${PW_SANDBOX_HOME_PATH}" \
${PW_ADD_TO_ARGS_IN_RUNTIME} --"
else
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--share-home \
${PW_ADD_TO_ARGS_IN_RUNTIME} --"
fi
export PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=0
# export PRESSURE_VESSEL_GRAPHICS_PROVIDER="/"
unset PRESSURE_VESSEL_RUNTIME_ARCHIVE
export PRESSURE_VESSEL_COPY_RUNTIME=1
export PRESSURE_VESSEL_GC_LEGACY_RUNTIMES=1
export PRESSURE_VESSEL_RUNTIME=runtime
export PRESSURE_VESSEL_RUNTIME_BASE="${PW_WINELIB}"
export PRESSURE_VESSEL_VARIABLE_DIR="${PW_WINELIB}/var"
export PRESSURE_VESSEL_PREFIX="${PW_WINELIB}/pressure-vessel"
unset PRESSURE_VESSEL_FILESYSTEMS_RO PRESSURE_VESSEL_FILESYSTEMS_RW
for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do
if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ]
then export PRESSURE_VESSEL_FILESYSTEMS_RO="${PRESSURE_VESSEL_FILESYSTEMS_RO}:${PWRTMRO}"
else export PRESSURE_VESSEL_FILESYSTEMS_RO="${PWRTMRO}"
fi
done
for PWRTMRW in ${PW_RT_MOUNT_RW[*]} ; do
if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ]
then export PRESSURE_VESSEL_FILESYSTEMS_RW="${PRESSURE_VESSEL_FILESYSTEMS_RW}:${PWRTMRW}"
else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}"
fi
done
echo "RUNTIME is enabled"
}
pw_mangohud_check () {
if [[ "${PW_MANGOHUD}" == "1" ]] || [[ "${PW_MANGOHUD_x32}" = "1" ]]; then
export PW_MANGOHUD_SLR='MANGOHUD=1'
MANGOHUD_LIB_NAME="libMangoHud.so"
if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
MANGOHUD_LIB_NAME="libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi
if [[ ! -z "${PW_LD_PRELOAD}" ]]
then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}"
fi
var_vk_istance_layers_config_update "VK_LAYER_MANGOHUD_overlay64"
if [[ "${PW_MANGOHUD_x32}" = "1" ]] ; then
var_vk_istance_layers_config_update "VK_LAYER_MANGOHUD_overlay32"
fi
print_info "MANGOHUD is enabled"
else
export PW_MANGOHUD_SLR='DISABLE_MANGOHUD=1'
print_info "MANGOHUD is disabled"
fi
return 0
}
pw_vkbasalt_check () {
if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then
if [[ -z "${PW_VKBASALT_EFFECTS}" ]] ; then
export PW_VKBASALT_EFFECTS="Curves:cas"
fi
sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
if [[ -z "${PW_VKBASALT_FFX_CAS}" ]] ; then
export PW_VKBASALT_FFX_CAS="0.7"
fi
sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
# sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx"
var_vk_istance_layers_config_update "VK_LAYER_VKBASALT_post_processing64:VK_LAYER_VKBASALT_post_processing32"
print_info "vkBasalt is enabled"
else
export DISABLE_VKBASALT=1
print_info "vkBasalt is disabled"
fi
return 0
}
check_nvidia_vk_icd_file () {
if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] ; then
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"
elif [[ -f "/etc/vulkan/icd.d/nvidia_icd.json" ]] ; then
export VK_ICD_FILENAMES="/etc/vulkan/icd.d/nvidia_icd.json"
fi
}
regdlloverrides () {
PW_DLL_EXE=`echo $@ | awk -F: '{print $1}'`
PW_DLL_LIB=`echo $@ | awk -F: '{print $2}' | awk -F= '{print $1}'`
PW_DLL_SET=`echo $@ | awk -F= '{print $NF}'`
case "${PW_DLL_SET}" in
"n,b") PW_DLL_IN_REG="native,builtin" ;;
"b,n") PW_DLL_IN_REG="builtin,native" ;;
"n") PW_DLL_IN_REG="native" ;;
"b") PW_DLL_IN_REG="builtin" ;;
*) PW_DLL_IN_REG="" ;;
esac
grep 'HKCU,Software\\Wine\\AppDefaults\\'"${PW_DLL_EXE}"'\\DllOverrides,'\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\" "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" != "0" ]] ; then
grep "ProtonOverrides" "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" == "0" ]] ; then
sed -i "/\[ProtonOverrides\]/a HKCU,Software\\\Wine\\\AppDefaults\\\\${PW_DLL_EXE}\\\DllOverrides,\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\"" "${WINEDIR}/share/wine/wine.inf"
else
sed -i "/\[SteamClient.ntamd64\]/a HKCU,Software\\\Wine\\\AppDefaults\\\\${PW_DLL_EXE}\\\DllOverrides,\"${PW_DLL_LIB}\",0x2,\"${PW_DLL_IN_REG}\"" "${WINEDIR}/share/wine/wine.inf"
fi
fi
}
wait_wineserver () {
while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do
sleep 1
done
return 0
}
export -f wait_wineserver
kill_portwine () {
wine_pids="`ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}'`"
if [ ! -z "${wine_pids}" ] ; then
for pw_kill_pids in ${wine_pids} ; do
if [ "`ps cax | grep ${pw_kill_pids}`" ] ; then
kill -n 9 ${pw_kill_pids} > /dev/null 2>&1
fi
done
fi
bwrap_pids="`pgrep -a wrap | grep ${portname} | head -n 1 | awk '{print $1}'`"
if [ ! -z "${bwrap_pids}" ] ; then
for pw_kill_pids in ${bwrap_pids} ; do
if [ "`ps cax | grep ${pw_kill_pids}`" ] ; then
kill -n 9 ${pw_kill_pids} > /dev/null 2>&1
fi
done
fi
return 0
}
export -f kill_portwine
pw_kill_autostart () {
if [[ -z "${2}" ]]
then SWAIT=5
else SWAIT="${2}"
fi
sleep 5
while true ; do
if [[ -z "`ps aux | grep -m 1 "$1" | grep -v grep | awk '{print $2}'`" ]] && [[ ! -z "`ps aux | grep wrap | grep -v grep | grep -i ${portname} | head -n 1`" ]] ; then
echo -e "PID "$1" not found"
sleep "${SWAIT}"
else
sleep "${SWAIT}"
kill_portwine
break
fi
done
if [[ ! -z "`ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp"`" ]] ; then
rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/*.tmp
fi
return 0
}
export -f pw_kill_autostart
stop_portwine () {
if [ "$int_xneur" = "1" ]; then
xneur &
fi
if [ ! -z ${PW_XKBD} ]; then
setxkbmap ${PW_XKBD}
fi
pw_stop_progress_bar
try_remove_file "${PORT_SCRIPTS_PATH}/0"
try_remove_file "${PORT_SCRIPTS_PATH}/1"
kill_portwine &&
try_remove_dir "${PW_WINELIB}/var"
find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then
kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" 2>/dev/null
fi
add_in_stop_portwine &>/dev/null
kill -n 9 `pgrep -a start.sh | grep -i '/PortProton/' | awk '{print $1}'` > /dev/null 2>&1
killall yad_new &>/dev/null
exit 0
}
export -f stop_portwine
pw_download_libs () {
if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER}`" ] ; then
for RM_LIBS in `ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER}`
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_LIBS}"
done
fi
if [[ ! -e "${PW_WINELIB}/portable/bin/yad" || ! -e "${PW_WINELIB}/portable/lib/p7zip/7z" \
|| ! -e "${PW_WINELIB}/runtime/files/bin/vkcube" || -e "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ]] ;
then
print_info "Download and install libraries..."
if try_download "github.com/Castro-Fidel/PortWINE/releases/download/libs${PW_LIBS_VER}/libs${PW_LIBS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ; then
if unpack_tar_xz "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/" ; then
try_remove_file "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz"
else
try_remove_dir "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
try_remove_file "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz"
zenity_error_download && pw_download_libs
fi
else
zenity_error_download && pw_download_libs
fi
fi
export pw_yad="${PW_WINELIB}/portable/bin/yad"
export pw_yad_new="${PW_WINELIB}/portable/bin/yad_new"
export pw_zstd="${PW_WINELIB}/portable/bin/zstd"
export pw_7z="${PW_WINELIB}/portable/lib/p7zip/7z"
if [ -x "`which xterm 2>/dev/null`" ]; then
export SYS_XTERM=`which xterm`
export PW_XTERM="${SYS_XTERM} -geometry 159x37 -e"
else
export PW_XTERM="${PW_WINELIB}/runtime/files/bin/xterm -geometry 159x37 -e"
fi
return 0
}
pw_check_and_download_wine () {
[ ! -d "${PORT_WINE_PATH}/data/dist/" ] && create_new_dir "${PORT_WINE_PATH}/data/dist"
if [[ "${PW_WINE_USE}" == "GET-OTHER-WINE" ]] ; then
gui_proton_downloader
fi
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_LG$"` ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]]
then export PW_WINE_USE="${PW_PROTON_GE_VER}"
fi
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
print_info "Download and install ${PW_WINE_USE}..."
if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then
if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then
echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}/version"
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
try_remove_dir "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}"
else
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
try_remove_dir "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}"
try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
zenity_error_download && pw_check_and_download_wine
fi
else
zenity_error_download && pw_check_and_download_wine
fi
fi
return 0
}
pw_check_and_download_dxvk_and_vkd3d () {
#Download stable and git version DXVK
for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" ; do
if [ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ] ; then
print_info "Download and install DXVK v.${DXVK_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz" ; then
if unpack_tar_xz "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}" ; then
try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz"
else
try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz"
try_remove_dir dxvk-${DXVK_VAR_VER}
zenity_error_download && pw_check_and_download_dxvk_and_vkd3d
fi
elif try_download "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.gz" "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz" ; then
if unpack_tar_gz "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz" "${PW_VULKAN_DIR}" ; then
try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz"
else
try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz"
try_remove_dir dxvk-${DXVK_VAR_VER}
zenity_error_download && pw_check_and_download_dxvk_and_vkd3d
fi
else
zenity_error_download && pw_check_and_download_dxvk_and_vkd3d
fi
fi
done
#Download stable and git version VKD3D
for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do
if [ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ] ; then
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" ; then
if unpack_tar_xz "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}" ; then
try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz"
else
try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz"
try_remove_dir vkd3d-proton-${VKD3D_VAR_VER}
zenity_error_download && pw_check_and_download_dxvk_and_vkd3d
fi
elif try_download "https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" ; then
if unpack_tar_zst "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" "${PW_VULKAN_DIR}" ; then
try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst"
else
try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst"
try_remove_dir vkd3d-proton-${VKD3D_VAR_VER}
zenity_error_download && pw_check_and_download_dxvk_and_vkd3d
fi
else
zenity_error_download && pw_check_and_download_dxvk_and_vkd3d
fi
fi
done
return 0
}
pw_check_and_download_plugins () {
if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`" ] ; then
for RM_PLUGINS in `ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
done
fi
if [[ ! -d "${PW_PLUGINS_PATH}/BattlEye_Runtime" || ! -d "${PW_PLUGINS_PATH}/fake_dlss" \
|| ! -d "${PW_PLUGINS_PATH}/nvapi" || ! -d "${PW_PLUGINS_PATH}/nvml" ]]
then
print_info "Download and install plugins${PW_PLUGINS_VER}..."
if try_download "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then
if unpack_tar_xz "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then
try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
else
try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
try_remove_dir "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
zenity_error_download && pw_check_and_download_wine
fi
else
zenity_error_download && pw_check_and_download_wine
fi
fi
return 0
}
pw_init_db () {
if [[ ! -z "${portwine_exe}" ]] ; then
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
if [[ -f "${portwine_exe}".ppdb ]] && [[ "${PORTWINE_DB}" != "RiotClientServices" ]] ; then
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
. "${PORTWINE_DB_FILE}"
if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
edit_db_from_gui PW_PREFIX_NAME
fi
else
orig_IFS="$IFS"
IFS=$'\n'
PW_FIND_DB_FILE=`grep -ilw "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
if [[ `echo "$PW_FIND_DB_FILE" | wc -l` -gt 1 ]] ; then
unset ADD_CB_DBFILE
for PW_CHECK_DB_FILE in $PW_FIND_DB_FILE ; do
if [[ -z "${ADD_CB_DBFILE}" ]] ; then
export ADD_CB_DBFILE="${PW_CHECK_DB_FILE}"
else
export ADD_CB_DBFILE="${PW_CHECK_DB_FILE}!${ADD_CB_DBFILE}"
fi
done
PORTWINE_DB_FILE=`"${pw_yad_new}" --text-align=center --text "${PW_SELECTION_DB_LOC}" --borders=15 --form --center \
--title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \
--field="DB FILE: :CB" "${ADD_CB_DBFILE}"`
if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then
PORTWINE_DB_FILE="${PW_FIND_DB_FILE}"
sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}"
fi
IFS="$orig_IFS"
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then
try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
fi
if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
[[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/"` ]]
then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
edit_db_from_gui PW_PREFIX_NAME
fi
fi
if [ ! -z "${PORTWINE_DB_FILE}" ]; then
. "${PORTWINE_DB_FILE}"
init_wine_ver &&
print_info "Use ${PORTWINE_DB_FILE} db file."
fi
if [ -z "$PATH_TO_GAME" ] ; then
export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
fi
fi
return 0
}
pw_port_update () {
###SCRIPTS UPDATE###
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
echo "2022" > "${PORT_WINE_TMP_PATH}/scripts_ver"
fi
export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1`
curl -s --list-only https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var > "${PORT_WINE_TMP_PATH}/curent_var_ver"
[[ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ]] && echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
if [[ "${scripts_update_not}" == "1" ]] ; then
export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'`
print_info "Scripts version in github = ${scripts_current_ver}"
print_info "Scripts version local = ${scripts_install_ver}"
if [[ ! -z "${scripts_current_ver}" ]] && [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then
if [[ -f "${PW_WINELIB}/portable/bin/yad_new" ]] ; then
export pw_yad_new="${PW_WINELIB}/portable/bin/yad_new"
curl -s --list-only "https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/${PW_CHANGELOG_FILE}" | tee "${PORT_WINE_TMP_PATH}/curent_var_ver" | sszen
CHANGLOG_NEWS=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | sed "/Scripts version ${scripts_install_ver}/,$ d" | sed '1,/---/ d' `
xcsd=`"${pw_yad_new}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--borders=5 --form --separator='%%%' --width=1000 --height=350 --center \
--field=":TXT" "${CHANGLOG_NEWS}" \
--field=" ${scripts_upd3} :CB" "${scripts_upd4}!${scripts_upd5}!${scripts_upd6}" `
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
xcsd=`echo "${xcsd}" | awk -F'%%%' '{print $2}'`
else
xcsd=`zenity --title "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${scripts_upd3}" \
TRUE "${scripts_upd4}" \
FALSE "${scripts_upd5}" \
FALSE "${scripts_upd6}"`
fi
case $xcsd in
"${scripts_upd4}")
echo "######################################################"
print_info "Update scripts..."
try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
if try_download "github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then
if unpack_tar_gz "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" "${PORT_WINE_TMP_PATH}"
then
create_new_dir "${PORT_WINE_TMP_PATH}/scripts_backup"
cd "${PORT_WINE_PATH}/data/"
tar -czpf "${PORT_WINE_TMP_PATH}/scripts_backup/scripts_v.${scripts_install_ver}.tar.gz" ./scripts ./img \
./changelog* ./dxvk.conf ./vkBasalt.conf ./tmp/scripts_ver
cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/"
try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
if [[ -z "${pw_yad_new}" ]] ; then
zenity --title="Changelog" --text-info --width=1200 --height=550 \
--filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}"
fi
[ "$?" == 0 ] && echo "Restarting PP after update..." && /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
else
zenity_error_download && pw_scripts_update
fi ;;
"${scripts_upd5}")
echo " " ;;
"${scripts_upd6}")
echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;;
esac
fi
fi
try_remove_file "${PORT_WINE_TMP_PATH}/curent_var_ver"
return 0
}
update_winetricks () {
W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
W_TRX_EXT_VER="$(curl -s --list-only ${W_TRX_URL} | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
print_info "Version winetricks on server: ${W_TRX_EXT_VER}"
W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
print_info "Version winetricks in port: ${W_TRX_INT_VER}"
if [[ ! -f "${PORT_WINE_TMP_PATH}/winetricks" && ! -z "$W_TRX_EXT_VER" ]] || [[ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" && ! -z "$W_TRX_EXT_VER" ]]; then
if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then
mv -f "${PORT_WINE_TMP_PATH}/winetricks_new" "${PORT_WINE_TMP_PATH}/winetricks"
W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" && print_info "Winetricks version in port has been updated (${W_TRX_INT_VER})"
chmod u+x "${PORT_WINE_TMP_PATH}/winetricks"
fi
fi
if [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then
sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks"
sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks"
#HOTFIX SHA256SUM FOR VC_RUN2019
sed -i 's/vc_redist.x86.exe 1acd8d5ea1cdc3eb2eb4c87be3ab28722d0825c15449e5c9ceef95d897de52fa/vc_redist.x86.exe 80c7969f4e05002a0cd820b746e0acb7406d4b85e52ef096707315b390927824/g' "${PORT_WINE_TMP_PATH}/winetricks"
sed -i 's/vc_redist.x64.exe 003063723b2131da23f40e2063fb79867bae275f7b5c099dbd1792e25845872b/vc_redist.x64.exe 9b9dd72c27ab1db081de56bb7b73bee9a00f60d14ed8e6fde45dab3e619b5f04/g' "${PORT_WINE_TMP_PATH}/winetricks"
fi
return 0
}
edit_db_from_gui () {
echo "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
for mod_db in $@ ; do
echo "${mod_db}=${!mod_db}"
if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" ] ; then
echo "export ${mod_db}=\"${!mod_db}\"" >> "${PORTWINE_DB_FILE}"
elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" ] ; then
if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=\"${!mod_db}\"" ] ; then
sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/" "${PORTWINE_DB_FILE}"
fi
elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" != "export ${mod_db}=${!mod_db}" ] ; then
sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${PORTWINE_DB_FILE}"
fi
done
return 0
}
pw_create_gui_png () {
if [ ! -z "${PORTWINE_CREATE_SHORTCUT_NAME}" ] ; then
export PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
else
export PORTPROTON_NAME="$(basename "${portwine_exe}" | sed s/".exe"/""/gi )"
fi
PW_RESIZE_TO=128
try_remove_file "${PORT_WINE_PATH}/data/img/setup.png"
if [[ -x "`which wrestool 2>/dev/null`" ]] && [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
try_remove_dir "${PORT_WINE_TMP_PATH}/tmp_img"
create_new_dir "${PORT_WINE_TMP_PATH}/tmp_img"
wrestool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "${portwine_exe}"
cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".ico" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
icotool -x --width=${PW_RESIZE_TO} --height=${PW_RESIZE_TO} --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
if [[ ! -f "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | grep "${PW_RESIZE_TO}x${PW_RESIZE_TO}")" ]] ; then
icotool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png"
else
cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | grep "${PW_RESIZE_TO}x${PW_RESIZE_TO}" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png"
fi
cp -f "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
fi
if [[ -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] && \
[[ -x "`which "convert" 2>/dev/null`" ]] && [[ -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
convert "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" -resize ${PW_RESIZE_TO}x${PW_RESIZE_TO} "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
fi
if [[ -z "${PW_ICON_FOR_YAD}" ]] ; then
if [[ ! -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] ; then
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
else
export PW_ICON_FOR_YAD="${PW_GUI_ICON_PATH}/port_proton.png"
fi
fi
}

View File

@ -1,37 +1,51 @@
#!/bin/bash
# Author: PortWINE-Linux.ru
#!/usr/bin/env bash
# Author: linux-gaming.ru
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc}
if [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc}
fi
if [ "${update_loc}" = "RUS" ]
then
export loc_gui_pw_reinstall_pp="Переустановить PORTPROTON"
export loc_gui_rm_pp="Удалить PORTPROTON"
export loc_gui_upd_pp="Проверить обновления"
export loc_gui_changelog="История изменений"
export loc_gui_change_loc="Сменить язык интерфейса"
export loc_gui_edit_usc="Редактировать USER.CONF"
export loc_gui_scripts_fb="Откатить версию скриптов"
export loc_gui_credits="Авторы и спасибы =)"
export loc_tray_winefile="Файловый менеджер WINE"
export loc_tray_tascmng="Диспетчер задач WINE"
export loc_tray_cangelog="История изменений"
export loc_tray_force_exit="Завершить работу PortProton"
export loc_mg_autoinstall="АВТОУСТАНОВКА"
export loc_mg_emulators="ЭМУЛЯТОРЫ"
export loc_mg_wine_settings="НАСТРОЙКИ WINE"
export loc_mg_portproton_settings="НАСТРОЙКИ PORTPROTON"
export PW_CHANGELOG_FILE="changelog_rus"
export PW_SELECTION_DB_LOC="Найдено более одного DB файла для запускаемого приложения.\nВыберите необходимый, или перед следующим запуском удалите лишний DB файл.\n"
export inst_set="Выбор"
export inst_set_top="Установка PortWINE"
export ss_title="Опции запуска:"
export ss_text="Выберите желаемый вариант запуска ${portname}. Вы всегда можете изменить свой выбор, \nзапустив ярлык reset из каталога: "${PORT_WINE_PATH}"/"
export ss_ver="Версия?"
export ss_default_1="Cтандартный запуск"
export ss_default_2="Старый запуск, с вопросами и логами"
export ss_ogl_1="Использовать OpenGL. (DirectX в OpenGL)"
export ss_ogl_2="Использовать VKD3D. ( DX12 в vulkan)"
export ss_ogl_3="Использовать DXVK и D9VK. (DX9-DX11 в Vulkan и выключить DX12)"
export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?"
export ss_done="Ярлык создан в каталоге PortProton. \n Добавить его в МЕНЮ -> ИГРЫ?"
export inst_succ="Установка завершена успешно!"
export port_upd1="Обновление PortWINE"
export port_upd2="На сайте portwine-linux.ru вышло обновление для ${portname}\n"
export port_upd2="На сайте linux-gaming.ru вышло обновление для ${portname}\n"
export port_upd3="Действие:"
export port_upd4="Перейти на сайт"
export port_upd5="Напомнить позже"
export port_upd6="Больше не напоминать"
export scripts_upd1="Обновление скриптов"
export scripts_upd2="Доступно обновление скриптов для ${portname}\n"
export scripts_upd3="Действие:"
export scripts_upd2="Доступно обновление скриптов для ${portname}"
export scripts_upd3="Действие :"
export scripts_upd4="Обновить сейчас"
export scripts_upd5="Напомнить позже"
export scripts_upd6="Больше не напоминать"
@ -40,10 +54,8 @@ then
export port_del1="Удаление $portname"
export port_del2="Вы действительно хотите полностью удалить PortProton?"
export port_del3="Удалить?!"
export port_del4="Нет, не удалять!"
export port_del5="Да, удалить!"
export port_del6="был удален."
export port_reinstall="Вы действительно хотите переустановить PortProton?\nДля этого будет необходимо интернет соединение."
export port_deb1="PortWINE был запущен в режиме создания ${portname}.log и он успешно сохранен в корне каталога порта"
export port_deb2="Для диагностики проблемы, скопируйте ВЕСЬ лог в соответствующий канал у нас на сервере дискорда: https://discord.gg/FTaheP99wE"
@ -57,77 +69,224 @@ then
export port_start7="Запустить winetricks"
export port_start8="DXVK"
export port_time1="Информация"
export port_time2="Ты думаешь что помочь автору развивать проект это сложно? Нет!\nДостаточно, что бы именно ты пожертвовал сколько считаешь нужным,\nну или хотя бы 50 рублей."
export port_time3="Действие:"
export port_time4="Перейти на сайт и помочь развитию проекта."
export port_time5="Сейчас не могу, может быть в другой раз."
export port_time6="Я уже сделал вклад в будущее проекта."
export port_debug="Не торопитесь! После окончания работы ${portname}, нажмите STOP."
export port_debug="Не торопитесь!\nПосле окончания работы ${portname}, нажмите ОК."
export hud_text="Выберите вывод необходимой информации на экран:"
export hud_info="Отображать:"
export hud_fps="частоту кадров"
export hud_devinfo="название графического процессора и версию драйвера"
export hud_frametimes="график времени кадра"
export hud_submissions="количество командных буферов, представленных на кадр"
export hud_drawcalls="количество вызовов отрисовки и отрисовки пропусков на кадр"
export hud_pipelines="общее количество графических и вычислительных конвейеров"
export hud_memory="объем памяти устройства, выделенной и использованной"
export hud_gpuload="предполагаемую загрузку графического процессора (может быть неточна)"
export hud_version="используемую версию DXVK"
export hud_api="уровень функций D3D, используемый приложением"
export hud_compiler="активность шейдерного компилятора"
export hud_samplers="текущее количество используемых пар сэмплеров (только для D3D9)"
export sc_name="Введите название будущего ярлыка:"
export sc_path="Создаем ярлык. Выберите файл запуска..."
export sc_img="Создаем ярлык. Выберите иконку ICO, или PNG формата..."
export sc_cmd="Введите дополнительные параметры запуска, или оставьте полепустым."
export debug_path="Выберите ярлык для создания .log файла..."
export loc_creat_shortcut="Создать ярлык для запускаемого файла."
export loc_create_shortcut="Создать ярлык для запускаемого файла."
export loc_delete_shortcut="Удалить ярлык для запускаемого файла."
export loc_debug="Запуск c созданием .log файла в корне ${portname}"
export loc_launch="Запустить файл..."
export loc_winecfg="Запустить winecfg для редактирования настроек префикса ${portname}"
export loc_winecfg="Запустить winecfg для редактирования настроек выбранного префикса"
export loc_winefile="Запустить файловый менеждер встроенный в wine"
export loc_winecmd="Запустить командную строку wine"
export loc_winereg="Запустить редактор реестра префикса ${portname}"
export loc_winetricks="Запустить winetricks для установки доп. библиотек в префикс ${portname}"
export loc_scripts_update=" Обновление базы данных для игр\n и программ успешно завершено.\n\n Перезапустите ${portname}."
export loc_winereg="Запустить редактор реестра выбранного префикса"
export loc_winetricks="Запустить префикс менеджер для установки доп. библиотек в выбранный префикс"
export loc_edit_db="Изменить файл настроек для"
export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON"
export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)'
export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)'
export PW_NO_FSYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе фьютексов. (Автоматически отключается в системах без FUTEX_WAIT_MULTIPLE поддержки) (Рекомендуется не изменять значение)'
export PW_USE_DXR10_INFO='Включить поддержку Ray Tracing v.1.0'
export PW_USE_DXR11_INFO='Включить поддержку Ray Tracing v.1.1 (бета)'
export PW_FIX_VIDEO_IN_GAME_INFO='Требуется для воспроизведения видео в некоторых играх, чтобы оно не было искажено (обычно окрашено в розовый цвет)'
export PW_VULKAN_NO_ASYNC_INFO='Выключить асинхронные вызовы для режимов VULKAN и DXVK'
export PW_USE_NVAPI_AND_DLSS_INFO='Включить DLSS на поддерживаемых видеокартах NVIDIA'
export PW_OLD_GL_STRING_INFO='Принудительное использование старых версий OpenGL'
export PW_HIDE_NVIDIA_GPU_INFO='Замаскировать все функции используемые для видеокарт NVIDIA'
export PW_FORCE_USE_VSYNC_INFO='Принудительное включение вертикальной синхронизации'
export PW_VIRTUAL_DESKTOP_INFO='Включить запуск приложение в виртуальном рабочем столе WINE'
export PW_WINEDBG_DISABLE_INFO='Отключить все функции отладки WINE (Рекомендуется не изменять значение)'
export PW_USE_TERMINAL_INFO='Запускать приложение в терминале'
export PW_WINE_ALLOW_XIM_INFO='Использовать альтернативный режим для контроллера (Использовать только в случае проблем с контроллером)'
export PW_HEAP_DELAY_FREE_INFO='Включить задержку освобождения некоторой памяти, чтобы обойти ошибки, связанные с использованием приложения после освобождения памяти.'
export PW_NO_WRITE_WATCH_INFO='Очень опасный способ взлома таймера записи в памяти в ntdll. Это улучшает производительность некоторых очень специфических игр. (Рекомендуется не изменять значение)'
export PW_GUI_DISABLED_CS_INFO='Отключить окно выбора режимов запуска и версии WINE'
export PW_USE_GSTREAMER_INFO='Использовать Gstreamer для вывода роликов в играх (поддержка WMF)'
export PW_USE_RUNTIME_INFO='Использовать контейнерный режим запуска (Рекомендуется не изменять значение)'
export PW_MANGOHUD_INFO='Использование мониторинга FPS и нагрузки системы (Включается и выключается сочитанием клавиш - правый Shift + F12)'
export PW_USE_GAMEMODE_INFO='Использование автоматической оптимизации системы для увеличения производительности в играх (при условии установленного пакета gamemode в системе)'
export PW_DX12_DISABLE_INFO='Принудительное отключение DirectX 12'
export PW_USE_WINE_DXGI_INFO='Принудительное использование встроенной библиотеки DXGI (в редких случаях решает проблемы с запуском игр под DX12)'
export PW_MANGOHUD_USER_CONF_INFO='Принудительное использование системных настроек MANGOHUD (GOverlay и т.п.)'
export PW_USE_D3D_EXTRAS_INFO='Включить принудительное использование сторонних библиотек DirectX'
export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)'
export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе'
export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD'
export PW_USE_SHADER_CACHE_INFO='Использовать кеширование шейдеров средствами WINE (отключать только при наличии микрофризов в игре)'
export PW_WINE_FULLSCREEN_FSR_INFO='Работает во время использования любой версии ProtonGE в полноэкранном режиме при разрешении ниже стандартного для экрана'
export PW_USE_FAKE_DLSS_INFO='Включить транслятор DLSS в FSR 2 в играх DirectX 12'
export PW_MANGOHUD_x32_INFO='Включить MANGOHUD для 32 битных приложений и игр'
export PW_3DFX_INFO='Имитация старого графического ускорителя 3dfx (добавляет горизонтальные полосы)'
export PW_AdaptiveSharpen_INFO='Увеличение резкости, можно использовать совместо с CAS'
export PW_Bloom_INFO='Добавляет свечения от ярких источников света в игре'
export PW_Border_INFO='Обрезка изображения сверху и снизу (как в кино =)'
export PW_Cartoon_INFO='Сильное увеличение резкости краев тексур'
export PW_ChromaticAberration_INFO='Добавляет хроматические аберрации к изображению'
export PW_Clarity_INFO='Увеличение резкости текстур с небольшими модификациями контраста изображения (похож по эффекту на CAS)'
export PW_ColorMatrix_INFO='Добавление холодных цветов'
export PW_Colourfulness_INFO='Увеличение насыщености цветов'
export PW_FakeHDR_INFO='Расширение динамического диапазона цветов'
export PW_FilmGrain2_INFO='Добавление эффекта зерна кинопленки'
export PW_Curves_INFO='Увеличение контраста изображения'
export PW_Denoise_INFO='Уменьшение шумов за счет смазывания изображения'
export PW_Emphasize_INFO='Уменьшение рязрядности цветопередачи'
export PW_FakeMotionBlur_INFO='Сильное размытие объектов в движении'
export PW_FilmicAnamorphSharpen_INFO='Увеличение резкости (рекомендую для мультяшных игр)'
export PW_FilmicPass_INFO='Добавление холодных цветов'
export PW_SMAA_INFO='Альтернативный вариант сглаживания (меньший эффект, но с меньшим потреблением ресурсов GPU, относительно стандартного SMAA)'
export PW_GaussianBlur_INFO='Небольшой эффект размытия ярких обьектов (например пламя)'
export PW_WAYLAND_INFO="Внимание! Вы запускаете PortProton в сессии Wayland, некоторые функции могут быть недоступны!\nРекомендуется перезапустить сессию в X11!"
export loc_find_d3dadapter9_error="не найден в системе.\nУстановите недостающий пакет: </Sb>d3dadapter9</b>"
export loc_gui_error='Ошибка.'
export loc_gui_error_download="Проверьте интернет соединение и\nнажмите OK для повторной попытки скачивания"
export loc_gui_settings="Пожалуйста подождите."
export loc_gui_sett_info="Обновление конфигурации <b>PortProton</b>..."
export loc_gui_edit_db="Изменение файла настроек для:"
export loc_gui_edit_db_help="<b>ПРИМЕЧАНИЕ:</b> Для вывода справки по каждому пункту, просто наведите курсор мыши на текст."
export loc_gui_cancel="ОТМЕНИТЬ ИЗМЕНЕНИЯ"
export loc_gui_cancel_help="Отменить текущие изменения и вернутся в предыдущее меню."
export loc_gui_open_db="ОТКРЫТЬ ФАЙЛ НАСТРОЕК"
export loc_gui_open_db_help="Открыть файл настроек <b>.ppdb</b> в системном текстовом редакторе для просмотра и изменений переменных вручную."
export loc_gui_save_changes="СОХРАНИТЬ ИЗМЕНЕНИЯ"
export loc_gui_save_changes_help="Сохранить текущие изменения, и перейти в предыдущее меню."
export loc_gui_ver_windows="Изменить версию эмуляции <b>WINDOWS</b>"
export loc_gui_ver_windows_help="Изменение версии эмуляции <b>WINDOWS</b> может потребоваться для запуска старых игр. Версии <b>WINDOWS</b> ниже 10 не поддерживает новые игры с DirectX 12."
export loc_gui_aut_winetricks="Автоматически установить с помощью <b>WINETRICKS</b>"
export loc_gui_aut_winetricks_help="Автоматически установить с помощью <b>WINETRICKS</b> дополнительных библиотек необходимых для запуска игры/программы. Список библиотек разделяются пробелами. (Пример есть в выпадающем списке)"
export loc_gui_winedllover="Принудительно использовать/отключить библиотеки"
export loc_gui_winedllover_help="Принудительное использование/отключиение библиотеки только для даного приложения. (Примеры есть в выпадающем списке)
Краткая инструкция:
* библиотеки пишутся <b>БЕЗ</b> расширения файлов .dll
* библиотеки разделяются точкой с запятой - <b>;</b>
* библиотека=n - использовать библиотеку <b>WINDOWS</b> (сторонюю)
* библиотека=b - использовать библиотеку <b>WINE</b> (встроенную)
* библиотека=n,b - использовать <b>WINDOWS</b> библиотеку, а затем <b>WINE</b>
* библиотека=b,n - использовать библиотеку <b>WINE</b>, а затем <b>WINDOWS</b>
* библиотека= - отключить использование данной библиотеки"
export loc_gui_arg_exe="Добавить аргумент после <b>.exe</b> файла"
export loc_gui_arg_exe_help="Добавление аргумента после <b>.exe</b> файла, так же как если бы вы добавили аргумент в ярлыке в системе <b>WINDOWS </b>"
export loc_gui_mango_fps="Ограничить FPS (0 - выключено)"
export loc_gui_mango_fps_help="Включение ограничения количества кадров в секунду средстами MANGOHUD встроенного в PortProton."
export loc_gui_check_new_wine="Проверяем новые версии WINE на GitHub"
export loc_gui_check_new_wine_error="Не удается установить соединение с GitHub\nдля проверки новых версии WINE."
export loc_gui_set_new_wine="Выберите версию WINE для загрузки:"
export loc_gui_del_wine="Выберите версию WINE для удаления:"
export loc_gui_installed_wine="УСТАНОВЛЕННЫЕ"
export loc_gui_ffx_cas="AMD FidelityFX - CAS предназначе для значительного улучшения резкости текстур без дополнительных установок модификаций для игр, с минимальной потерей производительности. (Для старых игр рекомендуется значение = 100)"
export loc_gui_disabled_vkbas="ВЫКЛЮЧИТЬ VKBASALT"
export loc_gui_disabled_vkbas_help="Выключить vkBasalt и перейти в предыдущее меню."
export loc_gui_vkbasalt_top="Настройки vkBasalt для добавления эффектов в играх работающих под Vulkan. (Клавиша <b>HOME</b> отключает vkbasalt)\n<b>ПРИМЕЧАНИЕ:</b> Для вывода справки по каждому пункту, просто наведите курсор мыши на текст.\n"
export loc_gui_no="НЕТ"
export loc_gui_yes="ДА"
export loc_gui_create_shortcut="СОЗДАТЬ ЯРЛЫК"
export loc_gui_delete_shortcut="УДАЛИТЬ ЯРЛЫК"
export loc_gui_launch="ЗАПУСТИТЬ"
export loc_gui_debug="СОЗДАТЬ ЛОГ"
export loc_gui_edit_db_start="НАСТРОИТЬ"
export loc_gui_vkbasalt_start="VKBASALT"
export loc_gui_db_comments="Найден файл настроек PortProton для"
export loc_gui_vulkan_stable="Стабильные версии DXVK ${DXVK_STABLE_VER} и VKD3D ${VKD3D_STABLE_VER}"
export loc_gui_vulkan_git="Новейшие версии DXVK ${DXVK_GIT_VER} и VKD3D ${VKD3D_GIT_VER}"
export loc_gui_gallium_nine="GALLIUM_NINE (Аппаратный DX9 для MESA)"
export loc_gui_open_gl="OPENGL (Для видеокарт без API VULKAN)"
export loc_gui_installing_the="Устанавливаем"
export loc_gui_please_wait="Пожалуйста подождите..."
elif [ "${update_loc}" = "ENG" ]
then
export loc_gui_installing_the="Installing the"
export loc_gui_please_wait="Please wait..."
export loc_gui_vulkan_stable="VULKAN (Stable version of DXVK and VKD3D)"
export loc_gui_vulkan_git="VULKAN (New GIT version of DXVK and VKD3D)"
export loc_gui_gallium_nine="GALLIUM_NINE (Native DX9 on MESA)"
export loc_gui_open_gl="OPENGL (For video cards without VULKAN)"
export loc_gui_error='Error.'
export loc_gui_error_download="You will need to check internet connection,\nand press OK for repeat download"
export loc_gui_settings="Settings."
export loc_gui_sett_info="Updating parameters..."
export loc_gui_edit_db="Change settings in database file for"
export loc_gui_cancel="CANCEL"
export loc_gui_open_db="OPEN DB FILE"
export loc_gui_save_changes="SAVE CHANGES"
export loc_gui_ver_windows="SELECT VERSION OF WINDOWS"
export loc_gui_aut_winetricks="AUTOINSTALL WITH WINETRICKS"
export loc_gui_winedllover="WINEDLLOVERRIDES"
export loc_gui_arg_exe="ADD ARGUMENTS FOR .EXE FILE"
export loc_gui_mango_fps="MANGOHUD FPS LIMIT (0-disabled)"
export loc_gui_check_new_wine="Check new version WINE from GitHub"
export loc_gui_check_new_wine_error="Error: check wine from github."
export loc_gui_set_new_wine="Select WINE for download:"
export loc_gui_del_wine="Select installed WINE for delete:"
export loc_gui_installed_wine="INSTALLED"
export loc_gui_disabled_vkbas="DISABLE VKBASALT"
export loc_gui_no="NO"
export loc_gui_yes="YES"
export loc_gui_create_shortcut="CREATE SHORTCUT"
export loc_gui_delete_shortcut="DELETE SHORTCUT"
export loc_gui_launch="LAUNCH"
export loc_gui_debug="DEBUG"
export loc_gui_edit_db_start="EDIT DB"
export loc_gui_vkbasalt_start="VKBASALT"
export loc_gui_db_comments="PortProton database file was found for"
export loc_gui_rm_pp="REMOVE PORTPROTON"
export loc_gui_upd_pp="UPDATE PORTPROTON"
export loc_gui_changelog="CHANGELOG"
export loc_gui_change_loc="CHANGE LANGUAGE"
export loc_gui_edit_usc="EDIT USER.CONF"
export loc_gui_scripts_fb="SCRIPTS FROM BACKUP"
export loc_gui_credits="CREDITS"
export loc_gui_pw_reinstall_pp="REINSTALL PORTPROTON"
export loc_tray_winefile="WINEFILE"
export loc_tray_tascmng="TASKMNR"
export loc_tray_cangelog="CHANGE LOG"
export loc_tray_force_exit="FORCE EXIT"
export loc_mg_autoinstall="AUTOINSTALL"
export loc_mg_emulators="EMULATORS"
export loc_mg_wine_settings="WINE SETTINGS"
export loc_mg_portproton_settings="PORTPROTON SETTINGS"
export PW_CHANGELOG_FILE="changelog_eng"
export PW_SELECTION_DB_LOC="More than one DB file found for the application being launched.\nSelect the required one, or delete the extra DB file before the next run.\n"
export inst_set="Sett..."
export inst_set_top="PortWINE setting"
export ss_title="Settings::"
export ss_text="Choose your preferred ${portname} launch option. You can always change your choice by unsetting\nthe reset shortcut from the directory: "${PORT_WINE_PATH}"/"
export ss_ver="Version:"
export ss_default_1="Standard start"
export ss_default_2="Old startup, with questions and logs"
export ss_ogl_1="Use OpenGL. (DirectX to OpenGL)"
export ss_ogl_2="Use VKD3D. (DX12 to vulkan)"
export ss_ogl_3="Use DXVK and D9VK. (DX9-DX11 to Vulkan)"
export ss_done="The shortcut was created in the ${portname} directory.\nAdd it to MENU -> GAMES?"
export ss_done="The shortcut was created in the ${portname} directory.\n Add it to MENU -> GAMES?"
export inst_succ="The installation was successful."
export port_upd1="New update PortWINE"
export port_upd2="On portwine-linux.ru site published an update to the ${portname}\n"
export port_upd2="On linux-gaming.ru site published an update to the ${portname}\n"
export port_upd3="Action:"
export port_upd4="Go to the website"
export port_upd5="Remind me later"
export port_upd6="Do not remind me"
export scripts_upd1="New update for scripts"
export scripts_upd2="Scripts update avialable for ${portname}\n"
export scripts_upd3="Action:"
export scripts_upd2="Scripts update avialable for ${portname}"
export scripts_upd3="Action :"
export scripts_upd4="Updating now"
export scripts_upd5="Remind me later"
export scripts_upd6="Do not remind me"
@ -136,12 +295,10 @@ then
export port_del1="Remove $portname"
export port_del2="Are you sure you want to delete the PortProton"
export port_del3="Remove?!"
export port_del4="No!"
export port_del5="Yes!"
export port_del6="was deleted."
export port_deb1="PortWINE was launched in creation mode ${portname}.log and it is successfully stored in the root directory of the port"
export port_reinstall="Do you really want to reinstall PortProton?\nFor this, an internet connection will be required."
export port_deb1="PortWINE was launched in creation mode ${portname}.log and it is successfully stored in the root directory of the port"
export port_deb2="To diagnose the problem, copy ALL of the log to discord server: https://discord.gg/FTaheP99wE"
export port_start1="Starting the PortWINE"
@ -153,39 +310,15 @@ then
export port_start7="Run winetricks"
export port_start8="DXVK"
export port_time1="Information"
export port_time2="Do you think that it is difficult to help the author develop the project?\nNo! It is enough that you would sacrifice what you think is necessary, well, or at least 1$."
export port_time3="Action:"
export port_time4="Go to the site and help develop the project"
export port_time5="I do not want to help the project"
export port_time6="I'm well done and have already contributed to the future of the project"
export port_debug="Please wait!\nAfter finishing the ${portname}, click OK."
export hud_text="The DXVK_HUD environment variable controls a HUD which can display the framerate\nand some stat counters. It accepts a comma-separated list of the following options:"
export hud_info="Description:"
export hud_fps="Shows the current frame rate."
export hud_devinfo="Displays the name of the GPU and the driver version."
export hud_frametimes="Shows a frame time graph."
export hud_submissions="Shows the number of command buffers submitted per frame."
export hud_drawcalls="Shows the number of draw calls and render passes per frame."
export hud_pipelines="Shows the total number of graphics and compute pipelines."
export hud_memory="Shows the amount of device memory allocated and used."
export hud_gpuload="Shows estimated GPU load. May be inaccurate."
export hud_version="Shows DXVK version."
export hud_api="Shows the D3D feature level used by the application."
export hud_compiler="Shows shader compiler activity"
export hud_samplers="Shows the current number of sampler pairs used [D3D9 Only]"
export sc_name="Name shortcut:"
export sc_path="Select the .exe file..."
export sc_img="Select the .ICO or .PNG file..."
export sc_cmd="Add command line"
export debug_path="Select the .desktop file for create the log"
export port_debug="Please wait! After finishing the ${portname}, click STOP."
#Helped in translation: ConTI1NuEsZZZ
export loc_creat_shortcut="Create shortcut for select file..."
export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!"
export loc_download_other_wine="Download other wine-proton from GITHUB"
# Helped in translation: ConTI1NuEsZZZ
export loc_create_shortcut="Create shortcut for select file..."
export loc_delete_shortcut="Delete shortcut for select file..."
export loc_debug="Launch with the creation of a .log file at the root ${portname}"
export loc_launch="Run file ..."
export loc_winecfg="Run winecfg to edit prefix settings ${portname}"
@ -193,8 +326,12 @@ then
export loc_winecmd="Run wine command line"
export loc_winereg="Run Registry Prefix Editor ${portname}"
export loc_winetricks="Run winetricks to install additional libraries to the prefix ${portname}"
export loc_scripts_update="Updating scripts and database of games\n and programs completed successfully.\n\n Restart ${portname}."
export loc_edit_db="Edit database file for"
export loc_find_d3dadapter9_error="not found in the system.\nInstall it and try again."
else
SET_LANG=`zenity --title "LAUNGUAGE" --text "Select the language" --list --radiolist \
--column="Set:" --column "Choose language:" TRUE "RUS" FALSE "ENG" `
echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/${portname}_loc"
exit 0
fi

View File

@ -0,0 +1,46 @@
#!/usr/bin/env bash
#Author: xuser
#AC4BFSP.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=1
export PW_USE_DXR10=0
##export PW_DLSS_ON=1
export PW_VULKAN_NO_ASYNC=0
export PW_USE_NVAPI_AND_DLSS=0
export PW_OLD_GL_STRING=0
export PW_HIDE_NVIDIA_GPU=0
export PW_FORCE_USE_VSYNC=0
export PW_VIRTUAL_DESKTOP=0
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT=0
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
export PW_NO_FSYNC=1
export PW_NO_ESYNC=1
export PW_USE_GSTREAMER=1
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
export PW_NO_WRITE_WATCH=0
export PW_HEAP_DELAY_FREE=0
export PW_WINE_ALLOW_XIM=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE=1
export PW_USE_TERMINAL=0
export PW_GUI_DISABLED_CS=0
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }
export PW_MANGOHUD=1
export PW_MANGOHUD_USER_CONF=0
export PW_USE_DXR11=0
export PW_USE_RUNTIME=1
export PW_USE_GAMEMODE=1
export PW_DX12_DISABLE=0
export PW_USE_WINE_DXGI=0
export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt,fps_limit=0

6
data_from_portwine/scripts/portwine_db/ACIII Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: xuser
#ACIII.exe
#ACLiberation.exe
@ -17,7 +17,7 @@ export WINEDLLOVERRIDES="xinput1_3,d3dcompiler_43=n,b"
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_VKD3D_FEATURE_LEVEL=0
##export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HIDE_NVIDIA_GPU=0
@ -36,4 +36,4 @@ export WINEDLLOVERRIDES="xinput1_3,d3dcompiler_43=n,b"
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
#Author: anonymous
#ACValhalla.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=proton_ge
export PW_VULKAN_USE=1
##export PW_DXR_ON=1
export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
#Author: xuser
#ALOTInstaller.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_PW_6.19
export PW_VULKAN_USE=0
##export PW_DXR_ON=1
##export PW_DLSS_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PW_USE_GSTREAMER=1 # 0 - disabled use winegstreamer
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: Аливэй
#Ableton Live 11 Suite.exe
#Rating=5

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#AliceMadnessReturns.exe
#Rating=5

2
data_from_portwine/scripts/portwine_db/Alien_Isolation Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: garrett
#AI.exe
#Rating=5

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#ACM.exe
#Rating=?

View File

@ -0,0 +1,41 @@
#!/usr/bin/env bash
#Author: xuser
#Anno4.exe
#Rating=1-5
#####################examples###########################
export PW_COMMENT_DB="If after the first launch you see a black screen,\njust restart the game."
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=dxvk
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT=1
export PW_VKBASALT_EFFECTS="cas" # Use Reshade in others games (dx9-12 to vulkan only)
export PW_VKBASALT_FFX_CAS="0.6" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PW_USE_GSTREAMER=1 # 0 - disabled use winegstreamer
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export PATH_TO_GAME=
add_in_start_portwine () {
if [ -d "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/" ] ; then
sed -i 's/<DirectXVersion>0<\/DirectXVersion>/<DirectXVersion>9<\/DirectXVersion>/' "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/Engine.ini"
fi
}

View File

@ -0,0 +1,44 @@
#!/usr/bin/env bash
#Author: stalker
#AnomalyLauncher.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="d3dx10 d3dx11_42 d3dx11_43" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=1
export PW_USE_DXR10=0
export PW_VULKAN_NO_ASYNC=0
export PW_USE_NVAPI_AND_DLSS=0
export PW_OLD_GL_STRING=0
export PW_HIDE_NVIDIA_GPU=0
export PW_FORCE_USE_VSYNC=0
export PW_VIRTUAL_DESKTOP=0
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT=1
export PW_VKBASALT_EFFECTS=cas:FilmGrain2:Curves
export PW_VKBASALT_FFX_CAS=1
export PW_NO_FSYNC=0
export PW_NO_ESYNC=0
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
export PW_NO_WRITE_WATCH=0
export PW_HEAP_DELAY_FREE=0
export PW_WINE_ALLOW_XIM=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE=1
export PW_USE_TERMINAL=0
export PW_GUI_DISABLED_CS=0
##add_in_start_portwine () { commands ; }
export PW_MANGOHUD=1
export PW_MANGOHUD_USER_CONF=0
export PW_USE_DXR11=0
export PW_USE_GSTREAMER=1
export PW_USE_RUNTIME=1
export PW_USE_GAMEMODE=1
export PW_DX12_DISABLE=0
export PW_USE_WINE_DXGI=1
export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt,fps_limit=0

8
data_from_portwine/scripts/portwine_db/Arthur Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: akai
#Arthur.exe
#Rating=1-5
@ -13,9 +13,9 @@ export PW_VULKAN_USE=dxvk
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXVK_VER=1.8.1
##export PW_VKD3D_VER=2.2
##export PW_DXR_ON=1
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -38,4 +38,4 @@ export PULSE_LATENCY_MSEC=90 # Fix crackling audio in games
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_LOG=1 # Enable debug mode fo terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
#Author: xuser
#AssassinsCreedII.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=dxvk
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
#Author: xuser
#AssassinsCreedIIGame.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=dxvk
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

2
data_from_portwine/scripts/portwine_db/BF2 Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: Сергей 33 (46)
#BF2.exe
#Rating=4

2
data_from_portwine/scripts/portwine_db/Baldurs_Gate_3 Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#bg3.exe
#Rating=1-5

View File

@ -1,20 +1,22 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: dez
#Battle.net Launcher.exe
#Battle.net-Setup.exe
#Battle.net.exe
#Rating=5
################################################
##export PW_VULKAN_USE=dxvk
#export PW_COMMENT_DB="We recommend using PROTON_GE + VULKAN!"
# export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=1
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="locationapi="
export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43"
export PW_WINDOWS_VER=10
export PW_USE_NVAPI=0
ADD_IN_START_PORTWINE () {
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/ProgramData/Agent/data"
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache"
rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
try_remove_file "${PORT_WINE_PATH}/data/pfx/drive_c/windows/Fonts/sourcehansans.ttc"
}
add_in_start_portwine () {
rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Agent/data"
rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache"
rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/Fonts/sourcehansans.ttc"
sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
}

10
data_from_portwine/scripts/portwine_db/Biomutant Normal file → Executable file
View File

@ -1,18 +1,18 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: kosta
#Biomutant.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=vkd3d
export PW_VULKAN_USE=1
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_DXR_ON=1
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -30,4 +30,4 @@ export PW_DLL_INSTALL="vcrun2019" # Install DDL in port prefix (us
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

2
data_from_portwine/scripts/portwine_db/Botanicula Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#Botanicula.exe
#Rating=5

2
data_from_portwine/scripts/portwine_db/Brokgame Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:PortWINE
#Brokgame.exe
#Rating=5

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#CoJBiBGame_x86.exe
#Rating=5

View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
#Author: xuser
#Cinebench.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GEC_PW2
export PW_VULKAN_USE=1
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
#Author: xuser
#Configurator.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_LG
export PW_VULKAN_USE=dxvk
##export PW_DXR_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

10
data_from_portwine/scripts/portwine_db/Control_DX11 Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: user
#Control_DX11.exe
#Rating=1-5
@ -7,7 +7,7 @@ export PW_VULKAN_USE=dxvk
##export PW_MANGOHUD=1
export PW_COMMENT_DB="Control (DX11)"
export PW_DLL_INSTALL="physx"
##export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,app_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
##export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,apw_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
@ -15,9 +15,9 @@ export PW_DLL_INSTALL="physx"
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -35,4 +35,4 @@ export PW_DLL_INSTALL="physx"
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

12
data_from_portwine/scripts/portwine_db/Control_DX12 Normal file → Executable file
View File

@ -1,23 +1,23 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: user
#Control_DX12.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=vkd3d
export PW_COMMENT_DB="Control (DX12)"
##export PW_DXR_ON=1
##export PW_USE_DXR10=1
##export PW_MANGOHUD=1
export PW_DLL_INSTALL="physx"
export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,app_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,apw_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export PW_DXR_ON=1
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
@ -35,4 +35,4 @@ export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,app_rmdwin10_f
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

2
data_from_portwine/scripts/portwine_db/CyberShadow Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: xuser
#CyberShadow.exe
#Rating=1-5

8
data_from_portwine/scripts/portwine_db/Cyberpunk2077 Normal file → Executable file
View File

@ -1,9 +1,9 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: xuser
#Cyberpunk2077.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=vkd3d
export PW_VULKAN_USE=1
##export PW_COMMENT_DB="blablabla"
export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe="
##export PW_DLL_INSTALL="d3dcompiler_47" # Install DDL in port prefix (used winetricks)
@ -13,7 +13,7 @@ export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe="
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_VKD3D_FEATURE_LEVEL=1
##export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HIDE_NVIDIA_GPU=0
@ -32,4 +32,4 @@ export PW_HEAP_DELAY_FREE=0
##export PW_DXGI_FROM_DXVK=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
#ADD_IN_START_PORTWINE () { "${PW_RUNTIME}" "$WINESERVER" -w }
#add_in_start_portwine () { "${pw_runtime}" "$WINESERVER" -w }

View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
#Author: xuser
#DAOriginsLauncher.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=1
export PW_DXR_ON=0
##export PW_DLSS_ON=1
export PW_VULKAN_NO_ASYNC=0
export PW_USE_NVAPI_AND_DLSS=0
export PW_OLD_GL_STRING=0
export PW_HIDE_NVIDIA_GPU=0
export PW_FORCE_USE_VSYNC=0
export PW_VIRTUAL_DESKTOP=0
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT=1
export PW_VKBASALT_EFFECTS=cas:FilmGrain2:Curves
export PW_VKBASALT_FFX_CAS=1
export PW_NO_FSYNC=0
export PW_NO_ESYNC=1
export PW_USE_GSTREAMER=1
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
export PW_NO_WRITE_WATCH=0
export PW_HEAP_DELAY_FREE=0
export PW_WINE_ALLOW_XIM=0
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE=1
export PW_USE_TERMINAL=0
export PW_GUI_DISABLED_CS=0
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }
export PW_MANGOHUD=1
export PW_USE_RUNTIME=1
export PW_USE_GAMEMODE=1
export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt,fps_limit=0

8
data_from_portwine/scripts/portwine_db/DOOM Eternal Normal file → Executable file
View File

@ -1,9 +1,9 @@
#!/bin/bash
#Author: PortWINE-Linux.ru
#!/usr/bin/env bash
#Author: linux-gaming.ru
#DOOMEternalx64vk.exe
#Rating=?
################################################
export PW_VULKAN_USE=vkd3d
export PW_VULKAN_USE=1
#export WINEDLLOVERRIDES="amd_ags_x64=b"
#export PW_LOG=0 # Enable debug mode fo terminal
#export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
@ -11,7 +11,7 @@ export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronizatio
#export PW_VULKAN_NO_ASYNC=1
#export PW_USE_TERMINAL=1
#export PW_OLD_GL_STRING=0
#export PW_USE_NVAPI=0
#export PW_USE_NVAPI_AND_DLSS=0
#export PW_VKD3D_FEATURE_LEVEL=0
#export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
#export PW_HIDE_NVIDIA_GPU=0

4
data_from_portwine/scripts/portwine_db/DOOMx64vk Normal file → Executable file
View File

@ -1,10 +1,10 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: nix
#DOOMx64.exe
#DOOMx64vk.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
export PW_VULKAN_USE=1
#####################examples###########################
export PW_COMMENT_DB="DOOM 2016"
export PW_DLL_INSTALL="xact xact_x64 vcrun2019"

View File

@ -0,0 +1,40 @@
#!/usr/bin/env bash
#Author: xuser
#DXHRDC.exe
#DXHumanRevolutionDC.exe
#DXHumanRevolutionDC_s.exe
#Rating=5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
export WINEDLLOVERRIDES="WINMM=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=1
##export PW_USE_DXR10=1
##export PW_DLSS_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
export ENABLE_VKBASALT=1
export PW_VKBASALT_EFFECTS=cas:FilmGrain2:Curves
export PW_VKBASALT_FFX_CAS=1
export PW_NO_FSYNC=0 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
export PW_USE_GSTREAMER=0 # 0 - disabled use winegstreamer
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }

View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
#Author: xuser
#DaysGone.exe
#Rating=1-5
########################################################
export PW_VULKAN_USE=dxvk
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
export PW_DLL_INSTALL="vcrun2019" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_USE_DXR10=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
export PW_NO_FSYNC=0 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##add_in_start_portwine () { commands ; }

2
data_from_portwine/scripts/portwine_db/Dead Space Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#Dead Space.exe
#Rating=1-5

4
data_from_portwine/scripts/portwine_db/Death Stranding Normal file → Executable file
View File

@ -1,8 +1,8 @@
#!/bin/bash
#!/usr/bin/env bash
#Author:
#ds.exe
#Rating=5
################################################
export PW_VULKAN_USE=vkd3d
export PW_VULKAN_USE=1
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="d3dcompiler_47,dxcompiler=n,b"

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: PortWINE
#FSD.exe
#Rating=5

View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
#Author: xuser
#Deponia.exe
#Rating=1-5
#####################examples###########################
##export PW_COMMENT_DB="blablabla"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
export PW_WINE_USE=PROTON_GEC_PW2
export PW_VULKAN_USE=0
##export PW_USE_DXR10=1
##export PW_DLSS_ON=1
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
##export ENABLE_VKBASALT=1
##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only)
##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1)
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
##export PW_USE_GSTREAMER=1 # 0 - disabled use winegstreamer
##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games
##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HEAP_DELAY_FREE=1
##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread
##export WINEARCH=win32 # defaut = win64
##export WINEPREFIX=
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
##export PW_USE_TERMINAL=1 # Force run in terminal
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export PATH_TO_GAME=
##add_in_start_portwine () { commands ; }

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: MrModer#6697
#DetroitBecomeHuman.exe
#Rating=1-5

8
data_from_portwine/scripts/portwine_db/Diablo_II Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: spider
#Diablo II.exe
#Rating=1-5
@ -7,14 +7,14 @@ export PW_VULKAN_USE=0
#####################examples###########################
##export PW_VULKAN_USE=dxvk # dxvk, vkd3d or 0 for OpenGL
##export WINEDLLOVERRIDES="blabla=n,b"
##export PW_DLL_INSTALL="vcrun2019 vcrun6" # Install DDL in port prefix (used winetricks)
##export PW_DLL_INSTALL="vcrun2019 " # Install DDL in port prefix (used winetricks)
##export PW_LOG=0 # Enable debug mode fo terminal
##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
##export PW_NO_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN
##export PW_USE_TERMINAL=0 # Force run in terminal
##export PW_OLD_GL_STRING=0
##export PW_USE_NVAPI=0
##export PW_USE_NVAPI_AND_DLSS=0
##export PW_VKD3D_FEATURE_LEVEL=0
##export PW_NO_WRITE_WATCH=0 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
##export PW_HIDE_NVIDIA_GPU=0
@ -28,4 +28,4 @@ export PW_VULKAN_USE=0
##export VKD3D_CONFIG=force_bindless_texel_buffer
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##ADD_IN_START_PORTWINE () { commands ; }
##add_in_start_portwine () { commands ; }

2
data_from_portwine/scripts/portwine_db/Disjunction Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
#Author: xuser
#Disjunction.exe
#Rating=5

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