HeroicGamesLauncher icon indicating copy to clipboard operation
HeroicGamesLauncher copied to clipboard

Wine prefix created not respecting the WINEARCH environment variable

Open ajhbh opened this issue 2 years ago • 3 comments

Describe the bug

In previous versions of Heroic (I think pre-2.3.0) one could set an environment variable on a game for WINEARCH=win32 and when the game was first run the wine prefix would be created as a 32-bit prefix. However it is not doing that anymore and is always creating a 64-bit prefix despite a WINEARCH=win32 environment variable being set.

After the prefix is created the environment variable is being respected as subsequent game runs are correctly giving an error log e.g. "wine: WINEARCH set to win32 but '/media/alexander/Twery/HeroicLibrary_m2/Winebottles/wine32test-RogueLegacy' is a 64-bit installation."

So the problem only appears to be when the wine prefix is created the environment variable is not respected. I know it was working to create 32-bit prefixes in previous versions as I had created them this way for a couple of games that are only working in wine 32-bit (e.g. Epic games versions of 'Rogue Legacy' and 'Salt and Sanctuary')

Add logs

Launch Command: WINEARCH=win32 WINEPREFIX=/media/alexander/Twery/HeroicLibrary_m2/Winebottles/wine32test-RogueLegacy WINEESYNC=1 /usr/bin/gamemoderun /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch 01f1e8046e9e433db190a611a0411579 --wine /home/alexander/.config/heroic/tools/wine/Wine-GE-Proton7-11/bin/wine --wine-prefix /media/alexander/Twery/HeroicLibrary_m2/Winebottles/wine32test-RogueLegacy

System Info:

Heroic Version: 2.3.9 Brook

Legendary Version: 0.20.26 Dark Energy

OS: LinuxMint KERNEL: 5.15.0-33-generic ARCH: x64

CPU: Intel Core™ i5-6600K @3.5 GOVERNOR: performance

RAM: Total: 15.57 GiB Available: 11.34 GiB

GRAPHICS: GPU0: NVIDIA GeForce RTX 2060 VRAM: 6144MB DRIVER: 515.48.07

PROTOCOL: x11

Game Settings: {

"audioFix": false,

"autoInstallDxvk": true,

"autoInstallVkd3d": false,

"enableEsync": true,

"enableFsync": false,

"maxSharpness": 2,

"nvidiaPrime": false,

"offlineMode": false,

"otherOptions": "WINEARCH=win32",

"savesPath": "",

"showFps": false,

"showMangohud": false,

"targetExe": "",

"useGameMode": true,

"wineCrossoverBottle": "Heroic",

"winePrefix": "/media/alexander/Twery/HeroicLibrary_m2/Winebottles/wine32test-RogueLegacy",

"wineVersion": {

	"bin": "'/home/alexander/.config/heroic/tools/wine/Wine-GE-Proton7-11/bin/wine'",

	"name": "Wine - Wine-GE-Proton7-11",

	"type": "wine",

	"wineserver": "'/home/alexander/.config/heroic/tools/wine/Wine-GE-Proton7-11/bin/wineserver'",

	"wineboot": "'/home/alexander/.config/heroic/tools/wine/Wine-GE-Proton7-11/bin/wineboot'"

},

"useSteamRuntime": false

}

Error Log:

[cli] INFO: Logging in...

[Core] INFO: Trying to re-use existing login session...

[cli] INFO: Checking for updates...

[Core] INFO: Getting authentication token...

[cli] INFO: Launching 01f1e8046e9e433db190a611a0411579...

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

esync: up and running.

wine: RLIMIT_NICE is <= 20, unable to use setpriority safely

wine: WINEARCH set to win32 but '/media/alexander/Twery/HeroicLibrary_m2/Winebottles/wine32test-RogueLegacy' is a 64-bit installation.

gamemodeauto:

Game Log:

Legendary update available!

  • New version: 0.20.27 - "Dark Energy (hotfix)"

  • Release summary:

[*] Adds instructions to recover from missing manifest file errors

[*] Updates "eos-overlay" for more intuitive Linux/macOS usage

[*] Adds instructions for use on Windows when exe is double-cliecked instead of run from a terminal.

See full changelog for additional details.

  • Release URL: https://legendary.gl/release/0.20.27

  • Download URL: https://legendary.gl/release/download/0.20.27/legendary

Steps to reproduce

  1. Go to a game that does not have a wine prefix created
  2. For the game go to Other settings > Advanced options (Environment variables) and input WINEARCH=win32
  3. Run the game for the first time so the wine prefix is created
  4. Observe that the prefix created is win64 not win32.

Expected behavior

Expect the created wine prefix to be win32.

Screenshots

image

System Information

  • OS [e. g. "Ubuntu"]: Linux Mint 20.3
  • Heroic Version [e. g. 2.1.1]: 2.3.9

Additional information

No response

ajhbh avatar Jul 09 '22 20:07 ajhbh

Can you download the beta to check if the problem is still there?

flavioislima avatar Jul 11 '22 08:07 flavioislima

@flavioislima Yes, I have now tried the 2.4.0-beta AppImage and it is behaving the same. Environment variable of WINEARCH=win32 is set but the wine prefix being created is still win64.

image

ajhbh avatar Jul 11 '22 23:07 ajhbh

I see this would be fixed with pull request #1568 :+1:

ajhbh avatar Jul 16 '22 21:07 ajhbh

Confirmed this is fixed as of 2.4.0, so closing.

ajhbh avatar Sep 08 '22 22:09 ajhbh

This issue is back

AlfieLC avatar Feb 15 '24 04:02 AlfieLC