Open vanyasem opened 6 years ago
First of all, Proton tries to copy some OpenVR libraries to a path that only exists in 64-bit prefixes:
Traceback (most recent call last):
File "/mnt/antihype/SteamLinux/steamapps/common/Proton 3.7/proton", line 218, in <module>
shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/syswow64/")
File "/usr/lib/python2.7/shutil.py", line 133, in copy
copyfile(src, dst)
File "/usr/lib/python2.7/shutil.py", line 97, in copyfile
with open(dst, 'wb') as fdst:
IOError: [Errno 21] Is a directory: '/mnt/antihype/SteamLinux/steamapps/compatdata/12210/pfx//drive_c/windows/syswow64/'
Then, winepath defaults to wine64
, which refuses to run apps in a 64-bit prefix:
wine: '/mnt/antihype/SteamLinux/steamapps/compatdata/12210/pfx' is a 32-bit installation, it cannot support 64-bit applications.
Also, it seems that Proton always puts Steam libs in Program Files (x86)
, when on 32-bit prefixes it should be Program Files
instead
I think the correct thing to do would be to fix wine so it does not break on 64bit prefixes however in saying that 32bit prefixes are much smaller then 64bit ones so using them for 32bit games would still be beneficial.
If you have a large steam library all these prefixes will all add up in disk usage, especially if you are planning to keep games on an SSD.
I think the correct thing to do would be to fix wine so it does not break on 64bit prefixes.
Unfortunately 32bit is necessary for some libraries and programs that have issues (e.g .NET) in 64bit prefixes.
.NET can be installed in a 64-bit prefix though @iownall555. Check out this guide on reddit.
@vanyasem Do you have instructions for doing it with .NET 2.0? #17 needs that. :/
@vanyasem Nevermind. This does that:
# Download the .NET framework 2.0
wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe
# Install the .NET Framework 2.0
/tmp/proton_run $HOME/NetFx64.exe
There's is a workaround to make a 32bit prefix work with Proton: https://www.reddit.com/r/linux_gaming/comments/99e0kc/steam_playguide_create_custom_32bit_prefix_to/ I've tested with Resident Evil HD Remaster, that depends on wmp9 for cutscenes which is only available as a 32bit binary. It works as expected. But in fact a definitive solution I'll be the complete support for libraries that 64bit wine currently lacks of, wmp11 for example. Valve should already be working on it.
@vanyasem @luizgcorreia Interesting. I'll have to give that a go later. I'm mostly trying to solve a possible .NET issue with Homeworld Remastered Collection (issue #99). Cheers
But in fact a definitive solution I'll be the complete support for libraries that 64bit wine currently lacks of, wmp11 for example. Valve should already be working on it.
You think Valve is working on WMP or WMF support for newer games that don't have access to winetricks wmp (can't use)? Personally, I put that in a 10 year to never bin. We shall see :-)
Got a bit of an update for this.
Support for 32-bit prefixes OR support for redists that can typically only be installed on 32-bit prefixes. The ideal solution would be to have a 64 bit prefix that has full 32 bit support, however Wine has so far not succeeded in creating such backwards compatibility in their 64 bit prefixes (although it seems to be somewhat getting there...)
A lot of games seem to require dependencies that don't seem to be installable via winetricks/protontricks unless it's on a 32-bit prefix. Examples would include WMP9 or WMP10 (required for playing videos in many games, such as Dark Souls and Darksiders) WMI (required for some older games, like everquest), some versions of vcrun/vcredist. Some games also seem to require a 32-bit .NET Framework installation (e.g. .NET 2.0). I could not find a complete list of items that can only be installed on 32-bit prefixes.
There also seems to be a number of games that run into errors like "page fault on write access in 32-bit code" and "page fault on read access to 0x00000000 in 32-bit code" (It's possible that last error can be fixed with this patch though https://github.com/ValveSoftware/wine/pull/7/commits/9e3edab8e56c2a03f003984d82a4cd86289c93b3 ) which may or may not be solvable by switching to a 32-bit prefix.
It should be a relatively simple matter, if proton is enabled for a game, it should be possible to go to that game's properties in the steam library and tick a button to make it switch to a 32-bit prefix. Maybe it's time to add a Proton tab into game properties for games that are used with proton.
None.
https://github.com/ValveSoftware/Proton/pull/919 (pull request) https://github.com/ValveSoftware/Proton/issues/1885 https://github.com/ValveSoftware/Proton/issues/1319 https://github.com/ValveSoftware/Proton/issues/1732 https://github.com/ValveSoftware/Proton/issues/1400 https://github.com/ValveSoftware/Proton/issues/1432 https://github.com/ValveSoftware/Proton/issues/394
@kisak-valve this issue needs the Feature Request label.
Any news on this one?
Magicka also depends on 32-bit prefixes. https://github.com/ValveSoftware/Proton/issues/458
What's the issue here? I'm trying to install wmp9 for dark souls cinematics to play, but it will only install on 32 bit prefixes. Why can't we just pick 32 instead of 64?
The ProtonDB page for Dark Souls: Prepare To Die Edition seems to offer a couple of solutions for your issue.
I'm trying to install wmp9 [...], but it will only install on 32 bit prefixes.
@StephenLynx: Not quite, it just needs a little encouragement.
Another usecase: One of the games I play requires faking windows version to work correctly (also when running in windows), and 64-bit wine prefix does not allow to go older than windows xp.
This would be great as I have a prefix setup with a bunch of my old 98 games each with their own activation. Even going through the hassle of reinstalling them to a 64-bit prefix and reactivating each one, many of them may not even work with the 64-bit
Feature Request
I confirm:
Description
Some games only work in a 32-bit wine prefix. I couldn't find a way to create a 32-bit prefix, and creating such prefix doesn't seem to work as well.
References
458 #189 #527