Skip to content

Commit b0da651

Browse files
committed
Merge branch '32-bit' into proton_3.16
2 parents 275c971 + 90cf1de commit b0da651

File tree

1 file changed

+32
-11
lines changed

1 file changed

+32
-11
lines changed

proton

+32-11
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,11 @@ with prefix_lock:
255255
with open(os.environ["STEAM_COMPAT_DATA_PATH"] + "/tracked_files", "w") as tfiles:
256256
mergedirs(basedir + "/dist/share/default_pfx", prefix, tfiles)
257257

258+
if os.path.exists(prefix + "/drive_c/windows/syswow64"):
259+
pfx_arch = "win64"
260+
else:
261+
pfx_arch = "win32"
262+
258263
with open(version_file, "w") as f:
259264
f.write(CURRENT_PREFIX_VERSION + "\n")
260265

@@ -268,7 +273,12 @@ with prefix_lock:
268273
else:
269274
#linux-only fallback, really shouldn't get here
270275
steamdir = os.environ["HOME"] + ".steam/root/"
271-
dst = prefix + "/drive_c/Program Files (x86)/"
276+
277+
if pfx_arch == "win64":
278+
dst = prefix + "/drive_c/Program Files (x86)/"
279+
else:
280+
dst = prefix + "/drive_c/Program Files/"
281+
272282
makedirs(dst + "Steam")
273283
filestocopy = ["steamclient.dll",
274284
"steamclient64.dll",
@@ -286,8 +296,11 @@ with prefix_lock:
286296
shutil.copy(basedir + "/dist/lib/wine/fakedlls/vrclient.dll", dst)
287297
shutil.copy(basedir + "/dist/lib64/wine/fakedlls/vrclient_x64.dll", dst)
288298

289-
shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/syswow64/")
290-
shutil.copy(basedir + "/dist/lib64/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/system32/")
299+
if pfx_arch == "win64":
300+
shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/syswow64/")
301+
shutil.copy(basedir + "/dist/lib64/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/system32/")
302+
else:
303+
shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/system32/")
291304

292305
#parse linux openvr config and present it in win32 format to the app.
293306
#logic from openvr's CVRPathRegistry_Public::GetPaths
@@ -371,16 +384,24 @@ with prefix_lock:
371384

372385
if "wined3d" in config_opts:
373386
#use gl-based wined3d for d3d11 and d3d10
374-
make_dxvk_links(basedir + "/dist/lib64/wine/fakedlls/",
375-
prefix + "drive_c/windows/system32")
376-
make_dxvk_links(basedir + "/dist/lib/wine/fakedlls/",
377-
prefix + "drive_c/windows/syswow64")
387+
if pfx_arch == "win64":
388+
make_dxvk_links(basedir + "/dist/lib64/wine/fakedlls/",
389+
prefix + "drive_c/windows/system32")
390+
make_dxvk_links(basedir + "/dist/lib/wine/fakedlls/",
391+
prefix + "drive_c/windows/syswow64")
392+
else:
393+
make_dxvk_links(basedir + "/dist/lib/wine/fakedlls/",
394+
prefix + "drive_c/windows/system32")
378395
else:
379396
#use vulkan-based dxvk for d3d11 and d3d10
380-
make_dxvk_links(basedir + "/dist/lib64/wine/dxvk/",
381-
prefix + "drive_c/windows/system32")
382-
make_dxvk_links(basedir + "/dist/lib/wine/dxvk/",
383-
prefix + "drive_c/windows/syswow64")
397+
if pfx_arch == "win64":
398+
make_dxvk_links(basedir + "/dist/lib64/wine/dxvk/",
399+
prefix + "drive_c/windows/system32")
400+
make_dxvk_links(basedir + "/dist/lib/wine/dxvk/",
401+
prefix + "drive_c/windows/syswow64")
402+
else:
403+
make_dxvk_links(basedir + "/dist/lib/wine/dxvk/",
404+
prefix + "drive_c/windows/system32")
384405
for f in dxvkfiles:
385406
dlloverrides[f] = "n"
386407

0 commit comments

Comments
 (0)