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

[Fix] Support DXVK installation on 32-bit prefixes #3749

Merged

Conversation

casasfernando
Copy link
Contributor

Fix support for DXVK installation on 32-bit prefixes.
Fixes #3705.


Use the following Checklist if you have changed something on the Backend or Frontend:

  • Tested the feature and it's working on a current and clean install.
  • Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.)
  • Created / Updated Tests (If necessary)
  • Created / Updated documentation (If necessary)

@flavioislima flavioislima added the pr:ready-for-review Feature-complete, ready for the grind! :P label May 14, 2024
@flavioislima
Copy link
Member

@casasfernando thanks for your contribution!

Can you add instructions on how to test this, examples of games, etc?

@casasfernando
Copy link
Contributor Author

casasfernando commented May 14, 2024

Thanks for reviewing this @flavioislima .

Example of games that would need or prefer a 32-bit Wine prefix:

  • All the "classic" Need for Speed games (II SE, III Hot Pursuit, High Stakes, etc) that were meant run on Windows 95/98 (Wine 64-bit prefixes can't be configured to present themselves as Windows 98).
  • Virtua Fighter PC and Virtua Fighter 2
  • Other games that require Windows 95/98 and would fail to install or run in newer Windows versions like XP

How to test (with the patch in place):

  1. Add the following environment variable in Heroic game settings before adding the new game to the library WINEARCH=win32. This will make the new Wine prefix to be 32-bit.
  2. Go to Library -> Add game.
  3. Fill in the game details and run the installer along any other prerequisites (e.g.: nglide)
  4. Select the game executable
  5. Run the game and it should be using DXVK

Let me know if this is the information you was looking for.
If you would like to save some time I can provide a default 32-bit Wine prefix created with Heroic (without any games) that would be enough to test the PR and confirm that with the patch in place the right architecture libraries are copied to system32 when DXVK installation is executed.

Edit: the patch doesn't modify DXVK installation process on 64bit Wine prefixes at all.

Copy link
Collaborator

@CommandMC CommandMC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like how much duplication is in this function, but resolving that is not a task for this PR

@casasfernando
Copy link
Contributor Author

I don't like how much duplication is in this function, but resolving that is not a task for this PR

After/if this PR is merged I was planning to work on two additional ones. One to fix DXVK uninstallation and another one to clean up the function code in general and reduce duplication. But I prefer to address one thing at a time and keep changes as small and clean as possible.

@arielj arielj merged commit 05df7af into Heroic-Games-Launcher:main May 17, 2024
9 checks passed
@Heroic-Games-Launcher Heroic-Games-Launcher locked and limited conversation to collaborators May 17, 2024
@casasfernando casasfernando deleted the dxvk-32bit-prefix-support branch May 17, 2024 07:54
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
pr:ready-for-review Feature-complete, ready for the grind! :P
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Auto Install/Update DXVK on Prefix setting is not compatible with 32-bit prefixes
4 participants