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

missing 64-bit devenum #1263

Open
austin987 opened this issue Jun 21, 2019 · 15 comments
Open

missing 64-bit devenum #1263

austin987 opened this issue Jun 21, 2019 · 15 comments
Labels
bug Acknowledged bug download Bugs with an available download help wanted Bugs that other contributors (or new ones) are requested to help with win64 Bugs only affecting win64

Comments

@austin987
Copy link
Contributor

austin987 commented Jun 21, 2019

This was alluded to in #1172, but directx9 was removed;

directmusic calls devenum, which fails for wine64:

Executing /opt/oldwow64/wine-4.9/bin/wine64 regsvr32 /S devenum.dll
------------------------------------------------------
Note: command /opt/oldwow64/wine-4.9/bin/wine64 regsvr32 /S devenum.dll returned status 3. Aborting.

We only have 32-bit devenum, we need a 64-bit one to support it.

Edit: not directplay

@austin987 austin987 added bug Acknowledged bug download Bugs with an available download help wanted Bugs that other contributors (or new ones) are requested to help with win64 Bugs only affecting win64 labels Jun 21, 2019
@gverm
Copy link
Contributor

gverm commented Jun 21, 2019

Thinking about this, is devenum even supposed to be part of the directmusic verb (same could be said for dsound and quartz)?

@zfigura
Copy link
Contributor

zfigura commented Jun 21, 2019

Native dmusic depends on native dsound, but it doesn't seem right that it depends on quartz. Is there any record of why this dependency is there?

@austin987
Copy link
Contributor Author

Doesn't look like it; that code was last changed in 26ae152, before that the last change was when winetricks was imported from Google Code/Winezeug.

@mhammerly
Copy link

i'm utterly uninformed about this problem area but quartz doesn't seem important as far as getting background music playing in final fantasy 8 is concerned

per ValveSoftware/Proton#696:

$ vim `which winetricks` # comment out the quartz line in directmusic
$ WINEPREFIX=".../pfx" winetricks directmusic
$ WINEPREFIX=".../pfx" winetricks winecfg
$ # set dsound to builtin
$ # FF8 music works

@zfigura
Copy link
Contributor

zfigura commented Jun 27, 2019

I suspect quartz and devenum should be removed from directmusic. Builtin devenum should also be good enough for native quartz these days, which is why I didn't add it to the 'directshow' verb. Definitely native directmusic shouldn't rely on devenum directly.

It would still be nice to find a 64-bit devenum somewhere, though.

@gverm
Copy link
Contributor

gverm commented Aug 25, 2019

@austin987 Was there ever a definitive answer for this? Maybe Michael Stefaniuc could offer some insight? (I vaguely remember this being discussed on IRC already)

@Prism019
Copy link

Prism019 commented Feb 19, 2020

I found a 64-bit devenum.dll in the Windows Server 2003 x64/Windows XP Professional X64 Edition Service Pack 2 installer. Extract "WindowsServer2003.WindowsXP-KB914961-SP2-x64-ENU.exe", then extract the cab file located at "\amd64\devenum.dl_". Using it in my 64-bit wineprefix to install quartz worked just fine.

austin987 added a commit that referenced this issue Apr 7, 2020
They aren't used by directmusic, and cause issues for 64-bit prefixes

See #1263 for more
discussion
@austin987
Copy link
Contributor Author

I've removed devenum/quartz from directmusic, so that part of this is fixed.

The x64 SP2 does indeed have 64-bit devenum.dll, but not a 32-bit one, so we'll end up with a version mismatch. I'm not sure how much that will matter in practice, debating putting it in with a warning (echo, not w_warn) to that effect:

# 32-bit:
austin@laptop ~ $ wine filever devenum.dll 
--a-- W32i   DLL ENU       6.5.1.902 shp    132,608 05-30-2003 devenum.dll
# 64-bit:
austin@laptop ~ $ wine filever devenum.dll 
--a-- W32    DLL ENU   6.5.3790.3959 shp     87,552 04-07-2020 devenum.dll

Thoughts?

@soredake
Copy link
Contributor

soredake commented Apr 7, 2020

I'm fine with warning.

@austin987
Copy link
Contributor Author

Haven't tried it with an application, but here's a branch if someone can test:
https://github.com/austin987/winetricks/tree/devenum

@soredake
Copy link
Contributor

soredake commented Apr 9, 2020

@austin987


Status Legend:
(OK):download completed.
Executing cd /tmp/winetricks/src
Executing cabextract -q -d /home/mannyf/.steam/steam/steamapps/compatdata/384110//dosdevices/c:/windows/temp -L -F amd64/devenum.dl_ /home/mannyf/.cache/winetricks/winxp64sp2/WindowsServer2003.WindowsXP-KB914961-SP2-x64-ENU.exe
warning: the 32/64-bit dlls have different versions (32: 6.5.1.902 64: 6.5.3790.3959), couldn't find matching, may cause issues
Executing cabextract -q -d /home/mannyf/.steam/steam/steamapps/compatdata/384110//dosdevices/c:/windows/system32 -L -F /home/mannyf/.steam/steam/steamapps/compatdata/384110//dosdevices/c:/windows/temp/amd64/devenum.dl_
cabextract: No cabinet files specified.
Try 'cabextract --help' for more information.
------------------------------------------------------
Note: command cabextract -q -d /home/mannyf/.steam/steam/steamapps/compatdata/384110//dosdevices/c:/windows/system32 -L -F /home/mannyf/.steam/steam/steamapps/compatdata/384110//dosdevices/c:/windows/temp/amd64/devenum.dl_ returned status 1. Aborting.

@austin987
Copy link
Contributor Author

@soredake sorry about that, I just (force) pushed a fix, please try again.

@soredake
Copy link
Contributor

@austin987 fine with plain wine, fails with proton:

❯ WINETRICKS=$PWD/winetricks protontricks 384110 devenum
Executing mkdir -p /home/mannyf/.steam/steam/steamapps/compatdata/384110
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20191224-next - sha256sum: 5c80e68db3ae1923e16712424ef905ce79da4dd61b285efd68668db257e00c36 with wine-5.0-517-g21888ad and WINEARCH=win64
Executing w_do_call devenum
Executing mkdir -p /home/mannyf/.steam/steam/steamapps/compatdata/384110
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_devenum 
Using native override for following DLLs: devenum
Executing /home/mannyf/.cache/protontricks/proton/Proton 5.0/bin/wine regedit C:\windows\Temp\override-dll.reg
wineserver: using server-side synchronization.
Executing /home/mannyf/.cache/protontricks/proton/Proton 5.0/bin/wine64 regedit C:\windows\Temp\override-dll.reg
001a:fixme:plugplay:pdo_pnp_dispatch Unhandled function 00000017
001a:fixme:plugplay:pdo_pnp_dispatch Unhandled function 00000002
wineserver: using server-side synchronization.
001a:fixme:plugplay:pdo_pnp_dispatch Unhandled function 00000017
001a:fixme:plugplay:pdo_pnp_dispatch Unhandled function 00000002
002a:err:seh:setup_exception stack overflow 1568 bytes in thread 002a eip 000000007bcda30d esp 0000000000950ff0 stack 0x950000-0x951000-0xb50000
Executing cabextract -q -d /home/mannyf/.steam/steam/steamapps/compatdata/384110/pfx/dosdevices/c:/windows/temp -L -F amd64/devenum.dl_ /home/mannyf/.cache/winetricks/winxp64sp2/WindowsServer2003.WindowsXP-KB914961-SP2-x64-ENU.exe
load_devenum(): warning: the 32/64-bit dlls have different versions (32: 6.5.1.902 64: 6.5.3790.3959), couldn't find matching, may cause issues
Executing cabextract -q -d /home/mannyf/.steam/steam/steamapps/compatdata/384110/pfx/dosdevices/c:/windows/system32 -L /home/mannyf/.steam/steam/steamapps/compatdata/384110/pfx/dosdevices/c:/windows/temp/amd64/devenum.dl_
Executing /home/mannyf/.cache/protontricks/proton/Proton 5.0/bin/wine64 regsvr32 devenum.dll
wineserver: using server-side synchronization.
regsvr32: Successfully registered DLL 'devenum.dll'
------------------------------------------------------
devenum install completed, but installed file /home/mannyf/.steam/steam/steamapps/compatdata/384110/pfx/dosdevices/c:/windows/syswow64/devenum.dll not found
------------------------------------------------------
0027:err:seh:setup_exception stack overflow 1552 bytes in thread 0027 eip 000000007bc986b4 esp 0000000000131000 stack 0x130000-0x131000-0x330000
001a:fixme:plugplay:pdo_pnp_dispatch Unhandled function 00000017

@soredake
Copy link
Contributor

but file is here:

❯ ls -l /home/mannyf/.steam/steam/steamapps/compatdata/384110/pfx/dosdevices/c:/windows/syswow64/devenum.dll
-rw-r--r-- 1 mannyf mannyf 5.2K Apr 12 11:11 /home/mannyf/.steam/steam/steamapps/compatdata/384110/pfx/dosdevices/c:/windows/syswow64/devenum.dll

@soredake
Copy link
Contributor

8374.470:0036:0037:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\devenum.dll"
8374.471:0036:0037:err:ole:CoGetClassObject no class object {62be5d10-60eb-11d0-bd3b-00a0c911ce86} could be created for context 0x1
8375.753:0036:0037:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\devenum.dll"
8375.753:0036:0037:err:ole:CoGetClassObject no class object {4315d437-5b8c-11d0-bd3b-00a0c911ce86} could be created for context 0x3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Acknowledged bug download Bugs with an available download help wanted Bugs that other contributors (or new ones) are requested to help with win64 Bugs only affecting win64
Projects
None yet
Development

No branches or pull requests

6 participants