Wine and Gallium Nine Standalone

I reinstalled Manjaro a few days ago and ever since then I've not been able get Gallium Nine running properly with wine. I get D3D9 SymLink errors, as seen here:

[gnisha@solaris ~]$ wine ninewinecfg.exe
000b:fixme:winediag:start_process Wine Staging 4.8 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
000d:err:menubuilder:init_xdg error looking up the desktop directory
Native Direct3D 9 v0.4.0.0-release is active.
For more information visit https://github.com/iXit/wine-nine-standalone
err:ninecfg:nine_get removing dead symlink
err:ninecfg:nine_get removing dead symlink

I am running wine-staging from the Manjaro repos.

[gnisha@solaris ~]$ wine --version
wine-4.8 (Staging)

The package wine-nine is also from Manjaro repos.

[gnisha@solaris ~]$ pacman -Q --info wine-nine
Name            : wine-nine
Version         : 0.4-1
Description     : Gallium Nine Standalone

Anyone have any ideas?

The wine-nine build lists wine as a dependency, so perhaps try switching wine-staging to wine?

(Although the archwiki https://wiki.archlinux.org/index.php/Wine#Gallium_Nine suggests otherwise.)

From that link also:

The errors I get in regards to the symlink for the DirectX9 DLL comes when I attempt to enable Gallium Nine though wine ninewinecfg.exe. Games that require DirectX do fail to load.

I have also ensured that DirectX9 is installed via winetricks.

Yes, my bad.

Try using the full path to see if that might work :man_shrugging:
wine /usr/lib/wine/fakedlls/ninewinecfg.exe
Or alternatively opening terminal at or cd-ing to /usr/lib/wine/fakedlls/. (Assuming 64-bit wine, change lib to lib32 for 32-bit.)

From doing some additional digging into this problem, apparently this is a bug with Wine 4.8 (see https://github.com/iXit/wine-nine-standalone/issues/36)

There appears to be 2 solutions:

  • Downgrade to Wine Staging 4.7, or
  • Download/Install/Build a patched version of Wine Staging 4.8.

All should be fixed again in Wine Staging 4.9, but for now the version of Wine Staging 4.8 within the Manjaro Repos has this issue.

1 Like

Supposedly, manually symlinking should work for d3d9-nine.dll into each system32 and syswow64 directory per prefix. The instructions are from the github issue and only apply to 64bit wineprefixes; I've adapted their instructions for 32bit as well.

IMPORTANT! Replace variable ${WINEPREFIX} with the actual directory of your Wine prefix.

For 64-bit Wineprefixes, do:

ln -s /usr/lib32/wine/d3d9-nine.dll.so ${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll
ln -s /usr/lib/wine/d3d9-nine.dll.so ${WINEPREFIX}/drive_c/windows/system32/d3d9.dll

For 32-bit Wineprefixes, do:

ln -s /usr/lib32/wine/d3d9-nine.dll.so ${WINEPREFIX}/drive_c/windows/system32/d3d9.dll

An example for those using PlayOnLinux wineprefixes:

ln -s /usr/lib32/wine/d3d9-nine.dll.so ./PlayOnLinux\'s\ virtual\ drives/EXAMPLE/windows/system32

I haven't had time to test this thoroughly, but it shows up in winecfg so it should work.

I tried doing that, and it still failed enable on my system. The issue itself has been fixed in the wine-staging git repository; so once the wine-staging package in the Manjaro repositories is rebuilt, the issue is resolved.

Maybe there is someone on this board that I can poke to get that package rebuilt with the updated sources?

1 Like

With wine-staging 4.9, the issue is now gone.

For some reason, the symlinking issue in Wine-staging 4.8 caused ninewinecfg.exe to never show gallium nine as enabled, even if it was. The manual symlinks worked fine for me & after this update, ninewinecfg showed itself as enabled (& can now be disabled/enabled through ninewinecfg.exe). Steam overlay breaks with gallium nine enabled, so I know it was enabled for me on wine-staging 4.8.

Forum kindly sponsored by Bytemark