Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support of 32-bit prefixes #449

Open
2 tasks done
vanyasem opened this issue Aug 24, 2018 · 19 comments
Open
2 tasks done

Support of 32-bit prefixes #449

vanyasem opened this issue Aug 24, 2018 · 19 comments
Labels
Feature Request New feature or request

Comments

@vanyasem
Copy link

vanyasem commented Aug 24, 2018

Feature Request

I confirm:

  • that I haven't found another request for this feature.
  • that I have checked whether there are updates for my system available that
    contain this feature already.

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

@vanyasem
Copy link
Author

vanyasem commented Aug 24, 2018

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

@Aerocatia
Copy link

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.

@ahallrq
Copy link

ahallrq commented Aug 25, 2018

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.

@vanyasem
Copy link
Author

.NET can be installed in a 64-bit prefix though @iownall555. Check out this guide on reddit.

@ryao
Copy link

ryao commented Aug 25, 2018

@vanyasem Do you have instructions for doing it with .NET 2.0? #17 needs that. :/

@ryao
Copy link

ryao commented Aug 25, 2018

@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

@luizgcorreia
Copy link

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.

@ahallrq
Copy link

ahallrq commented Aug 25, 2018

@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

@ghost
Copy link

ghost commented Sep 14, 2018

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 :-)

@KorinFlakes KorinFlakes mentioned this issue Sep 25, 2018
2 tasks
@Rabcor
Copy link

Rabcor commented Nov 3, 2018

Got a bit of an update for this.

Feature Request

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...)

I confirm:

  • that I haven't found another request for this feature.
  • that I have checked whether there are updates for my system available that
    contain this feature already.

Description

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 ValveSoftware/wine@9e3edab ) 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.

Risks [optional]

None.

References [optional]

#919 (pull request)
#1885
#1319
#1732
#1400
#1432
#394

@Rabcor
Copy link

Rabcor commented Nov 3, 2018

@kisak-valve this issue needs the Feature Request label.

@dreamer
Copy link

dreamer commented Nov 10, 2018

#1732 does not depend on 32-bit prefix - it works just fine already. But I have another title: Disciples II (1630, 1640) absolutely need 32-bit prefix to start.

@brunodantas
Copy link

Any news on this one?

Magicka also depends on 32-bit prefixes. #458

@soredake
Copy link
Contributor

@StephenLynx
Copy link

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?

@heregoesmarcel
Copy link

The ProtonDB page for Dark Souls: Prepare To Die Edition seems to offer a couple of solutions for your issue.

@fallenguru
Copy link

I'm trying to install wmp9 [...], but it will only install on 32 bit prefixes.

@StephenLynx: Not quite, it just needs a little encouragement.

@liias
Copy link

liias commented Apr 29, 2020

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.

@parkerlreed
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature or request
Projects
None yet
Development

No branches or pull requests