Commit | Line | Data |
---|---|---|
254d5bc3 NR |
1 | GETTING STEAM OVERLAY TO WORK WITH LUTRIS WINE GAMES (AKA. EASY \r |
2 | STEAM CONTROLLER FOR OVERWATCH) \r | |
3 | \r | |
4 | [linux_gaming] 2018-10-09_11-00\r | |
5 | \r | |
6 | o Reference: 2018-10-09_11-00_Getting_Steam_Overlay_t\r | |
7 | o News link: https://www.reddit.com/r/linux_gaming/comments/9lcoly/getting_steam_overlay_to_work_with_lutris_wine/\r | |
8 | o Source link: \r | |
9 | \r | |
10 | \r | |
11 | So, after wasting countless hours unsuccessfully seeking for a\r | |
12 | way to execute Lutris Wine games with a Steam Overlay (as I\r | |
13 | was able to do with PlayOnLinux runners a long time ago) I\r | |
14 | finally got it working today after finding [1]this post .\r | |
15 | Following is the procedure using Overwatch as an example\r | |
16 | (assuming you have it already installed through Lutris).\r | |
17 | \r | |
18 | First run lutris -d lutris:rungame/overwatch in a terminal,\r | |
19 | then exit the game asap and check the log trail. You'll need\r | |
20 | retrieve a log like this (note this is only a partial stub):\r | |
21 | ...\r | |
22 | \r | |
23 | INFO 2018-10-04 09:29:46,005 [dxvk]:Replacing\r | |
24 | /home/qchto/games/lutris/overwatch/drive_c/windows/syswow64/d3-\r | |
25 | d10_1 with DXVK version\r | |
26 | \r | |
27 | INFO 2018-10-04 09:29:46,006 [dxvk]:Replacing\r | |
28 | /home/qchto/games/lutris/overwatch/drive_c/windows/syswow64/d3-\r | |
29 | d10 with DXVK version\r | |
30 | \r | |
31 | DEBUG 2018-10-04 09:29:46,071 [game]:Launching Overwatch:\r | |
32 | {'env': {'DXVK_CONFIG_FILE':\r | |
33 | '/home/qchto/games/lutris/overwatch/dxvk.conf', 'DXVK_HUD':\r | |
34 | '0', 'DXVK_STATE_CACHE_PATH':\r | |
35 | '/home/qchto/games/lutris/overwatch', '__GL_SHADER_DISK_CACHE':\r | |
36 | '1', '__GL_SHADER_DISK_CACHE_PATH':\r | |
37 | '/home/qchto/games/lutris/overwatch', '__GL_SHADER_DISK_CACHE_-\r | |
38 | SKIP_CLEANUP': '1', 'DRI_PRIME': '0', 'STEAM_RUNTIME':\r | |
39 | '/home/qchto/.local/share/lutris/runtime/steam', 'LD_LIBRARY_P-\r | |
40 | ATH': '/home/qchto/.local/share/lutris/runners/wine/staging-3.-\r | |
41 | 17-x86_64/lib:/home/qchto/.local/share/lutris/runners/wine/sta-\r | |
42 | ging-3.17-x86_64/lib64:/usr/lib:/usr/lib32:/lib/x86_64-linux-g-\r | |
43 | nu:/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-\r | |
44 | linux-gnu:/home/qchto/.local/share/lutris/runtime/lib32:/home/-\r | |
45 | qchto/.local/share/lutris/runtime/steam/i386/lib/i386-linux-gn-\r | |
46 | u:/home/qchto/.local/share/lutris/runtime/steam/i386/lib:/home-\r | |
47 | /qchto/.local/share/lutris/runtime/steam/i386/usr/lib/i386-lin-\r | |
48 | ux-gnu:/home/qchto/.local/share/lutris/runtime/steam/i386/usr/-\r | |
49 | lib:/home/qchto/.local/share/lutris/runtime/lib64:/home/qchto/-\r | |
50 | .local/share/lutris/runtime/steam/amd64/lib/x86_64-linux-gnu:/-\r | |
51 | home/qchto/.local/share/lutris/runtime/steam/amd64/lib:/home/q-\r | |
52 | chto/.local/share/lutris/runtime/steam/amd64/usr/lib/x86_64-li-\r | |
53 | nux-gnu:/home/qchto/.local/share/lutris/runtime/steam/amd64/us-\r | |
54 | r/lib:$LD_LIBRARY_PATH', 'WINEDEBUG': '-all', 'WINEARCH':\r | |
55 | 'win64', 'WINE':\r | |
56 | '/home/qchto/.local/share/lutris/runners/wine/staging-3.17-x86-\r | |
57 | _64/bin/wine', 'WINEPREFIX':\r | |
58 | '/home/qchto/games/lutris/overwatch', 'WINEDLLOVERRIDES':\r | |
59 | 'd3d10,d3d10_1,d3d10core,d3d11,dxgi=n'}, 'command':\r | |
60 | ['/home/qchto/.local/share/lutris/runners/wine/staging-3.17-x8-\r | |
61 | 6_64/bin/wine', '/home/qchto/games/lutris/overwatch/drive_c/Pr-\r | |
62 | ogram Files (x86)/Battle.net/Battle.net Launcher.exe']}\r | |
63 | \r | |
64 | DEBUG 2018-10-04 09:29:46,072 [thread]:Command env:\r | |
65 | SDL_VIDEO_FULLSCREEN_DISPLAY="off" DXVK_CONFIG_FILE="/home/qch-\r | |
66 | to/games/lutris/overwatch/dxvk.conf" DXVK_HUD="0"\r | |
67 | DXVK_STATE_CACHE_PATH="/home/qchto/games/lutris/overwatch" __G-\r | |
68 | L_SHADER_DISK_CACHE="1" __GL_SHADER_DISK_CACHE_PATH="/home/qch-\r | |
69 | to/games/lutris/overwatch" __GL_SHADER_DISK_CACHE_SKIP_CLEANUP-\r | |
70 | ="1" DRI_PRIME="0"\r | |
71 | STEAM_RUNTIME="/home/qchto/.local/share/lutris/runtime/steam"\r | |
72 | LD_LIBRARY_PATH="/home/qchto/.local/share/lutris/runners/wine/-\r | |
73 | staging-3.17-x86_64/lib:/home/qchto/.local/share/lutris/runner-\r | |
74 | s/wine/staging-3.17-x86_64/lib64:/usr/lib:/usr/lib32:/lib/x86_-\r | |
75 | 64-linux-gnu:/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/us-\r | |
76 | r/lib/i386-linux-gnu:/home/qchto/.local/share/lutris/runtime/l-\r | |
77 | ib32:/home/qchto/.local/share/lutris/runtime/steam/i386/lib/i3-\r | |
78 | 86-linux-gnu:/home/qchto/.local/share/lutris/runtime/steam/i38-\r | |
79 | 6/lib:/home/qchto/.local/share/lutris/runtime/steam/i386/usr/l-\r | |
80 | ib/i386-linux-gnu:/home/qchto/.local/share/lutris/runtime/stea-\r | |
81 | m/i386/usr/lib:/home/qchto/.local/share/lutris/runtime/lib64:/-\r | |
82 | home/qchto/.local/share/lutris/runtime/steam/amd64/lib/x86_64-\r | |
83 | linux-gnu:/home/qchto/.local/share/lutris/runtime/steam/amd64/-\r | |
84 | lib:/home/qchto/.local/share/lutris/runtime/steam/amd64/usr/li-\r | |
85 | b/x86_64-linux-gnu:/home/qchto/.local/share/lutris/runtime/ste-\r | |
86 | am/amd64/usr/lib:$LD_LIBRARY_PATH" WINEDEBUG="-all"\r | |
87 | WINEARCH="win64" WINE="/home/qchto/.local/share/lutris/runners-\r | |
88 | /wine/staging-3.17-x86_64/bin/wine" WINEPREFIX="/home/qchto/ga-\r | |
89 | mes/lutris/overwatch" WINEDLLOVERRIDES="d3d10,d3d10_1,d3d10cor-\r | |
90 | e,d3d11,dxgi=n"\r | |
91 | \r | |
92 | DEBUG 2018-10-04 09:29:46,073 [thread]:Running command:\r | |
93 | "/home/qchto/.local/share/lutris/runners/wine/staging-3.17-x86-\r | |
94 | _64/bin/wine" "/home/qchto/games/lutris/overwatch/drive_c/Prog-\r | |
95 | ram Files (x86)/Battle.net/Battle.net Launcher.exe"\r | |
96 | \r | |
97 | DEBUG 2018-10-04 09:29:46,073 [thread]:Storing environment\r | |
98 | variable SDL_VIDEO_FULLSCREEN_DISPLAY to off\r | |
99 | \r | |
100 | DEBUG 2018-10-04 09:29:46,073 [thread]:Storing environment\r | |
101 | variable DXVK_CONFIG_FILE to\r | |
102 | /home/qchto/games/lutris/overwatch/dxvk.conf\r | |
103 | \r | |
104 | ...\r | |
105 | \r | |
106 | Proceed by copying everything in the line after\r | |
107 | [thread]:Command env: , separate every variable in a line and\r | |
108 | preceed it by an export declaration. Then add the line\r | |
109 | [thread]:Running command: at the end of your script (or even\r | |
110 | better, add them to local variables and then execute it to end\r | |
111 | with a file like this (note that the LUTRIS_WINE and GAME_EXE\r | |
112 | variables are the "Running command" log line, and GAME_EXE can\r | |
113 | be replaced to reference another executable, in this case my\r | |
114 | local Overwatch.exe): #!/bin/bash\r | |
115 | \r | |
116 | # used "lutris -d lutris:rungame/overwatch" to retrieve env\r | |
117 | variables\r | |
118 | \r | |
119 | export SDL_VIDEO_FULLSCREEN_DISPLAY="off"\r | |
120 | \r | |
121 | export DXVK_CONFIG_FILE="/home/qchto/games/lutris/overwatch/dx-\r | |
122 | vk.conf"\r | |
123 | \r | |
124 | export DXVK_HUD="0"\r | |
125 | \r | |
126 | export DXVK_STATE_CACHE_PATH="/home/qchto/games/lutris/overwat-\r | |
127 | ch"\r | |
128 | \r | |
129 | export __GL_SHADER_DISK_CACHE="1"\r | |
130 | \r | |
131 | export __GL_SHADER_DISK_CACHE_PATH="/home/qchto/games/lutris/o-\r | |
132 | verwatch"\r | |
133 | \r | |
134 | export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP="1"\r | |
135 | \r | |
136 | export DRI_PRIME="0"\r | |
137 | \r | |
138 | export STEAM_RUNTIME="/home/qchto/.local/share/lutris/runtime/-\r | |
139 | steam"\r | |
140 | \r | |
141 | export LD_LIBRARY_PATH="/home/qchto/.local/share/lutris/runner-\r | |
142 | s/wine/staging-3.17-x86_64/lib:/home/qchto/.local/share/lutris-\r | |
143 | /runners/wine/staging-3.17-x86_64/lib64:/usr/lib:/usr/lib32:/l-\r | |
144 | ib/x86_64-linux-gnu:/lib/i386-linux-gnu:/usr/lib/x86_64-linux-\r | |
145 | gnu:/usr/lib/i386-linux-gnu:/home/qchto/.local/share/lutris/ru-\r | |
146 | ntime/lib32:/home/qchto/.local/share/lutris/runtime/steam/i386-\r | |
147 | /lib/i386-linux-gnu:/home/qchto/.local/share/lutris/runtime/st-\r | |
148 | eam/i386/lib:/home/qchto/.local/share/lutris/runtime/steam/i38-\r | |
149 | 6/usr/lib/i386-linux-gnu:/home/qchto/.local/share/lutris/runti-\r | |
150 | me/steam/i386/usr/lib:/home/qchto/.local/share/lutris/runtime/-\r | |
151 | lib64:/home/qchto/.local/share/lutris/runtime/steam/amd64/lib/-\r | |
152 | x86_64-linux-gnu:/home/qchto/.local/share/lutris/runtime/steam-\r | |
153 | /amd64/lib:/home/qchto/.local/share/lutris/runtime/steam/amd64-\r | |
154 | /usr/lib/x86_64-linux-gnu:/home/qchto/.local/share/lutris/runt-\r | |
155 | ime/steam/amd64/usr/lib:$LD_LIBRARY_PATH"\r | |
156 | \r | |
157 | export WINEDEBUG="-all"\r | |
158 | \r | |
159 | export WINEARCH="win64"\r | |
160 | \r | |
161 | export WINE="/home/qchto/.local/share/lutris/runners/wine/stag-\r | |
162 | ing-3.17-x86_64/bin/wine"\r | |
163 | \r | |
164 | export WINEPREFIX="/home/qchto/games/lutris/overwatch"\r | |
165 | \r | |
166 | export WINEDLLOVERRIDES="d3d10,d3d10_1,d3d10core,d3d11,dxgi=n"\r | |
167 | \r | |
168 | LUTRIS_WINE="/home/qchto/.local/share/lutris/runners/wine/stag-\r | |
169 | ing-3.17-x86_64/bin/wine"\r | |
170 | \r | |
171 | GAME_EXE="/home/qchto/games/cache/data/battlenet/Overwatch/Ove-\r | |
172 | rwatch.exe"\r | |
173 | \r | |
174 | "$LUTRIS_WINE" "$GAME_EXE"\r | |
175 | \r | |
176 | Save this file wherever you like (e.g.\r | |
177 | /home/qchto/games/launchers/overwatch.sh ), give it execution\r | |
178 | permission (e.g. chmod +x\r | |
179 | /home/qchto/games/launchers/overwatch.sh ). Now you should be\r | |
180 | able to execute it in order to test it (e.g.\r | |
181 | ./home/qchto/games/launchers/overwatch.sh ).\r | |
182 | \r | |
183 | Finally, open Steam, add this script as a non-steam game\r | |
184 | shortcut (make sure to select "All files" in the file selector\r | |
185 | for the .sh files to appear), and it's done. You can now\r | |
186 | execute this shortcut and get the Steam Overlay (even in Big\r | |
187 | Picture with Steam Controller custom controller mappings)\r | |
188 | working and ready to go.\r | |
189 | \r | |
190 | As mentioned, this procedure should also work for any other\r | |
191 | Lutris Wine game (although be warned that some specific\r | |
192 | problems may arise depending on wine configuration). I have\r | |
193 | personally tested it not only with Overwatch but also with\r | |
194 | StarCraft II and it work perfectly on both.\r | |
195 | \r | |
196 | Hope you find this helpful!\r | |
197 | \r | |
198 | \r | |
199 | \r | |
200 | [1] https://forums.lutris.net/t/how-to-run-games-from-commandl-\r | |
201 | ine-from-winesteam/95/5\r | |
202 | \r | |
203 | \r | |
204 | ** klinch3R\r | |
205 | Nice effort\r | |
206 | \r | |
207 | ** qchto\r | |
208 | Thanks. It's just that figuring out this took me far longer\r | |
209 | that I expected it would, so if someone is looking into\r | |
210 | achieving this luckily he/she will be able to just find this\r | |
211 | post, so imo any effort put is worth to be reported.\r | |
212 | \r | |
213 | \r | |
214 | ** UrbanFlash\r | |
215 | Maybe i'm missing something, but i don't see the advantage over\r | |
216 | just adding the launcher Lutris creates as non-Steam game. Works\r | |
217 | well enough with Heroes of the Storm here...\r | |
218 | \r | |
219 | ** qchto\r | |
220 | For once, the autogenerated launchers does not save\r | |
221 | environmental variables, so for games like Overwatch that\r | |
222 | require them (for things like DXVK) it doesn't even launch\r | |
223 | the game. And just to clear things up, using a .sh script\r | |
224 | with lutris lutris:rungame/overwatch makes the app not report\r | |
225 | properly for the Steam overlay to be recognized.\r | |
226 | So by this method you're ensuring you're running the same\r | |
227 | wine environment launched by Lutris without depending on it\r | |
228 | to manage the process, therefore allowing for the Steam\r | |
229 | overlay to properly load.\r | |
230 | \r | |
231 | ** UrbanFlash\r | |
232 | DKVK works fine for me. I notice no difference between\r | |
233 | launching the game from within Lutris, via the launcher in\r | |
234 | the menu or via the link in Steam.\r | |
235 | \r | |
236 | ** qchto\r | |
237 | Do you have DXVK installed at system level? Having its\r | |
238 | variables exported to your session? Because after\r | |
239 | checking a couple .desktop files generated by Lutris\r | |
240 | (which tbh I was not even aware were created, as i3\r | |
241 | makes a desktop seems redundant) I still don't see any\r | |
242 | declaration other than the WINE prefix, and none of\r | |
243 | them even launch the application they refer (tested for\r | |
244 | Overwatch and Battle.net automatically generated\r | |
245 | launchers).\r | |
246 | \r | |
247 | ** UrbanFlash\r | |
248 | I don't have DXVK installed outside of Lutris and\r | |
249 | have done nothing apart from the things necessary to\r | |
250 | get the Blizzard app running.\r | |
251 | \r | |
252 | \r | |
253 | \r | |
254 | \r | |
255 | \r | |
256 | ** shmerl\r | |
257 | Better figure out how to do it without Steam. That's the right\r | |
258 | method.\r | |
259 | \r | |
260 | ** qchto\r | |
261 | While I agree, to provide some background on why I went this\r | |
262 | route:\r | |
263 | \r | |
264 | I spent a lot of time trying to configure sc-controller to\r | |
265 | emulate a xbox-controller with gyro controlled right stick\r | |
266 | but it simply wouldn't allow for a duplicated RStick binding\r | |
267 | for the Steam Controller in both the right touchpad and the\r | |
268 | gyro (unlike Steam Overlay that does).\r | |
269 | \r | |
270 | Even when I gave up on this and finally tried to test\r | |
271 | sc-controller in-game for Overwatch, it kept showing an\r | |
272 | erratic behavior with the game loaded (still not sure why,\r | |
273 | but when I tried to use the SC left tocuhpad it randomly\r | |
274 | started sending other outputs that made the game unplayable\r | |
275 | with it).\r | |
276 | \r | |
277 | The Steam Overlay provide much more that just the ability to\r | |
278 | use the Steam Controller with decent xinput bindings, but\r | |
279 | also other features like ease to control the game with only a\r | |
280 | controller (for example allowing to exit the game if\r | |
281 | soft-locked without having to use kb&m), change the\r | |
282 | Controller configuration on the fly more easily (without\r | |
283 | depending on kb&m) and even have a more streamlined\r | |
284 | experience by using features like the Steam Chord button and\r | |
285 | Steam enabled screenshots, for example.\r | |
286 | So it's not that I didn't tried to not use Steam..\r | |
287 | \r | |
288 | ** shmerl\r | |
289 | Yeah, I agree sc-controller can still benefit from some\r | |
290 | improvements. It's still not using upstream kernel driver\r | |
291 | for instance.\r | |
292 | \r | |
293 | ** qchto\r | |
294 | Gotta admit though, it's great to have alternatives\r | |
295 | available.\r | |
296 | \r | |
297 | ** shmerl\r | |
298 | For sure, especially for those who aren't using\r | |
299 | Steam to begin with.\r | |
300 | \r | |
301 | \r | |
302 | \r | |
303 | \r | |
304 | \r | |
305 | ** Brunfunstudios\r | |
306 | Nice work. Would be kinda nice to have a right click option just\r | |
307 | saying add_to_Steam and this being handled in the background. :)\r | |
308 | Just an idea\r | |
309 | \r | |
310 | ** Razdiel\r | |
311 | Since you gave it a try why not post benchmarks or general\r | |
312 | feedback about it? was it worth it running it with proton?\r | |
313 | GJ btw the linux comunity salutes you brave soldier!\r | |
314 | \r | |
315 | \r |