iXit / wine-nine-standalone

Build Gallium Nine support on top of an existing WINE installation
GNU Lesser General Public License v2.1
272 stars 23 forks source link

err:d3d9nine:executeCmdline CreateProcessA failed, error=2done with League of Legends #34

Closed ltsdw closed 4 years ago

ltsdw commented 5 years ago

Distro: Arch (32-64bits) Wine: 4.7 Mesa: Mesa 19.2.0-devel (git-1f1007a4ed) GPU: Intel(R) HD Graphics 5500 (Broadwell GT2) Driver: Iris

I used have gallium nine compiled/patched with wine before trying this standalone version (the game used crash in 5% anyway, but at least gallium nine used works tho).

So I'm having a problem, steps to reproduce:

$ export WINEPREFIX=/home/little/Games/league-of-legends
$ nine-install
$ wine64 ninewinecfg

and then I have:

wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2).
0026:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d9.dll" (error=80)
0026:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d9-nine.dll" (error=80)
0026:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\ninewinecfg.exe" (error=80)
0026:fixme:dwmapi:DwmIsCompositionEnabled 0x6dbd1518
0031:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x69ebd3de, context 0x846570, init_notify 0, handle 0x113fa10): stub
0043:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d9-nine.dll" (error=80)
0043:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\ninewinecfg.exe" (error=80)
0045:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x6a0cb608, context 0x8c8888, init_notify 0, handle 0x110fc88): stub
0043:err:module:load_builtin_dll failed to load .so lib for builtin L"winegstreamer.dll": libgstvideo-1.0.so.0: não é possível abrir arquivo compartilhado: Arquivo ou diretório inexistente
wine: configuration in '/home/little/Games/league-of-legends' has been updated.
installing 32bit binaries to /home/little/Games/league-of-legends/dosdevices/c:/windows/syswow64
installing 64bit binaries to /home/little/Games/league-of-legends/dosdevices/c:/windows/system32
enabling gallium nine
err:d3d9nine:executeCmdline CreateProcessA failed, error=2done

And then running the game, wine outputs something like:

009c:fixme:win:RegisterDeviceNotificationA (hwnd=0x3006c, filter=0x8effe90,flags=0x00000000) returns a fake device notification handle!
00a6:fixme:wininet:InternetSetOptionW Option 77 STUB
00a6:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 15000
00a4:fixme:win:RegisterDeviceNotificationA (hwnd=0x10086, filter=0x977fe90,flags=0x00000000) returns a fake device notification handle!
00a8:err:module:import_dll Library d3d9.dll (which is needed by L"C:\\windows\\system32\\dxdiagn.dll") not found
00a8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\dxdiagn.dll"
00a8:err:ole:CoGetClassObject no class object {a65b8071-3bfe-4213-9a5b-491da4461ca7} could be created for context 0x1

if needed I can post the entire output of wine.

but, the dlls are being symlinked:

$ ls -lha /home/little/Games/league-of-legends/dosdevices/c:/windows/syswow64 | egrep 'd3d9.dll|ninewinecfg.exe|d3d9-nine.dll'
-rw-r--r--  1 little users 2,4K mai 13 15:51 d3d9.dll
lrwxrwxrwx  1 little users   38 mai 13 15:51 d3d9-nine.dll -> /usr/share/nine/lib32/d3d9-nine.dll.so
lrwxrwxrwx  1 little users   40 mai 13 15:51 ninewinecfg.exe -> /usr/share/nine/bin32/ninewinecfg.exe.so

I tried with Skyrim and gallium works well, but with league the game tells me that doesn't have a d3d9.dll? Outside Skyrim, The Sims 4 also tells that d3d9.dll is missing.

ltsdw commented 5 years ago

Is a 64 bits prefix, so also too:

$ ls -lha /home/little/Games/league-of-legends/drive_c/windows/system32/ | egrep 'd3d9.dll|ninewinecfg.exe|d3d9-nine.dll'
lrwxrwxrwx  1 little users   81 mai 13 15:51 d3d9.dll -> /home/little/Games/league-of-legends/dosdevices/c:/windows/system32/d3d9-nine.dll
lrwxrwxrwx  1 little users   38 mai 13 15:51 d3d9-nine.dll -> /usr/share/nine/lib64/d3d9-nine.dll.so
lrwxrwxrwx  1 little users   40 mai 13 15:51 ninewinecfg.exe -> /usr/share/nine/bin64/ninewinecfg.exe.so
dukenukemx commented 5 years ago

Same issue here, but I'm just trying to enable it. It was working before when I was using Wine-Staging 4.6. Now I updated to 4.8 and it doesn't work.

000d:err:menubuilder:init_xdg error looking up the desktop directory err:ninecfg:executeCmdline CreateProcessA failed, error=2err:ninecfg:nine_get removing dead symlink

EDIT I fixed one error by going into winecfg and to the drives tab and then clicking autodetect. But the "removing dead symlink" error continues and I can't enable Gallium Nine.

TheTumultuousUnicornOfDarkness commented 5 years ago

Similar issue, I can't enable Wine Nine.

$ wine ninewinecfg
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.
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2).
Native Direct3D 9 v0.4.0.0-release is active.
For more information visit https://github.com/iXit/wine-nine-standalone
err:ninecfg:executeCmdline CreateProcessA failed, error=2err:ninecfg:nine_get removing dead symlink

After that, it prevents all games to work under Wine, unless I remove the d3d9 override.

I use the wine-nine package available on Arch official repositories.

axeldavy commented 5 years ago

Seems a duplicate of https://github.com/iXit/wine-nine-standalone/issues/36

TheTumultuousUnicornOfDarkness commented 5 years ago

@axeldavy Yes, in my case, downgrading to Wine Stating 4.7 solve my issue with Wine Nine. But it looks like @ltsdw has a different issue.

ltsdw commented 5 years ago

Yes, I don't think my problem is the same. Even using wine 4.7 games still telling me that d3d9 was not found Captura de tela de 2019-05-25 11-44-41 Captura de tela de 2019-05-25 11-45-39

TheTumultuousUnicornOfDarkness commented 5 years ago

@ltsdw: I can see the err:ninecfg:executeCmdline CreateProcessA failed, error=2 error when I check/uncheck the box, but I don't have any troubles.

Did you try with the wine-nine package instead of gallium-nine-git? If you install wine-nine package, try to remove old files before starting Wine:

rm ~/.wine/drive_c/windows/{system32,syswow64}/{d3d9-nine.dll,ninewinecfg.exe}

My settings

ltsdw commented 5 years ago

@X0rg, Yep, tried right now with wine-nine, deleting d3d9-nine.dll,ninewinecfg.exe in both directories and system32 and syswow64, d3d9 set as native and same 'missing d3d9.dll'.

TheTumultuousUnicornOfDarkness commented 5 years ago

It seems related to The Sims 4 only. According to this man, try to set d3d9 as Native then Builtin.

ltsdw commented 5 years ago

@X0rg Now game is running, but it shouldn't printout some green lines in terminal 'Native Direct3D' or something like that?

Similar with this on skyrim: Captura de tela de 2019-05-25 13-22-19

As said before gallium works on skyrim, but not in league (yes, it's broken since 9.10) and the sims for example (works setting d3d9 as native then builtin, but doesn't print none line saying that's using gallium nine).

dhewg commented 4 years ago

Should be fixed in wine-staging, see https://github.com/iXit/wine-nine-standalone/issues/36#issuecomment-493788070 Let me know if that's not the case!