How to install dll codecs under a 64-bit Wine prefix?

Questions about Wine on Linux
Locked
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

I've tried installing this codec under a 64-bit winebottle (or prefix if you will), and since it comes only as a .dll file, with no proper installer, I followed this guide.

While the guide worked fine with the 32bit version of the codec, on a 32-bit wine prefix, this doesn't work at all on the 64bit one...
Any suggestions on how to install the codec?
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

andoru wrote:I've tried installing this codec under a 64-bit winebottle (or prefix if you will)
The instructions that come with that codec work fine if the Windows version is set to XP.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

What are the exact steps you took? For me it doesn't work with the prefix set to Windows XP, nor does it work with Windows 7...
Also what would be your version? I'm on 2.0.2
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

My Wine version is 2.14. I set the Windows version to XP, copied the dlls to their respective directories, and ran regedit on the .reg file.

Try upgrading Wine and a clean wineprefix.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

So zmbv64.dll to ./windows/system32/ and zmbv.dll to ./windows/syswow64/ ?
I copied both dll files on a fresh prefix with the latest version, with winecfg set to Windows XP, ran the registry file with regedit, and still doesn't show up in the codec list in VirtualDub (before anyone asks: yes, I'm using the 64bit build of it)...
The registry file contains this:

Code: Select all

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
"VIDC.ZMBV"="C:\\Windows\\System32\\zmbv64.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]
"VIDC.ZMBV"="C:\\Windows\\SysWOW64\\zmbv.dll"
So I took a glance in regedit, and found out that only the first entry (under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 ) was created, and it linked to the dll within ./windows/syswow64 (the 32 bit one). I tried patching up the line to link to the 64bit dll, but still no dice...

Any ideas what registry entry should I create to make this work...?
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

Both entries are created, but in order to see the 64 bit registry view you have to run regedit with wine64.

Have you verified that this codec works in VirtualDub on Windows? If so, file a bug.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

I did run it with wine64. I have the 'wine64' aliased to:

Code: Select all

WINEPREFIX="$HOME/.wine64" WINEARCH=win64
So I ran 'wine64 regedit ./fixZMBV.reg '

Maybe the aliasing doesn't work with regedit, so maybe I should try to type in the whole command this time.
Although I've tried to install Lagarith on the 64bit prefix after attempting to install ZMBV, and the codec entry showed up in the registry alongside then entry for ZMBV, so I doubt the fault lies with the alias.

I don't see why this codec wouldn't work with VirtualDub, otherwise people would've complained in that thread.
Have you tried looking on VirtualDub on your end if ZMBV shows up in the codec list? Or what did you use to find out if the codec is installed?
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

andoru wrote: So I ran 'wine64 regedit ./fixZMBV.reg '
That's not what I meant. I just ran regedit to install the .reg file, but wine64 regedit is needed to view the 64 bit key in the registry afterwards. There is no "Wow6432Node\" in the 32 bit registry view.
Have you tried looking on VirtualDub on your end if ZMBV shows up in the codec list? Or what did you use to find out if the codec is installed?
I don't have VirtualDub; I just looked in the registry for the keys, and they were there as expected.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

I ran regedit with wine64... But indeed, there's no Wow6432Node... weird.
If it's not too much of a bother, could you get the 64bit version of VirtualDub and test out if the codec shows up?

Also, I think I'll submit a bug report to Debian before sending it straight to Wine devs.
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

I see "Zipped Motion Block Video x64 v0.1b" on the list; according to the post I downloaded from, that's what it's supposed to say.
Also, I think I'll submit a bug report to Debian before sending it straight to Wine devs.
Are you using the Debian packages? If so, try the WineHQ ones. https://wiki.winehq.org/Debian
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

dimesio wrote:I see "Zipped Motion Block Video x64 v0.1b" on the list; according to the post I downloaded from, that's what it's supposed to say.
Yes, indeed that's what it's supposed to say. Thank you for testing it out and sorry for the trouble!
dimesio wrote:Are you using the Debian packages? If so, try the WineHQ ones. https://wiki.winehq.org/Debian
Yes I am. Should I get the staging, or the developer version?
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

I'm using the development release.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

Okay, tried installing winehq-devel, with a fresh 64-bit prefix...
Put every dll in place, run the reg file with regedit.
Result? The same as last time :roll:
There's also no Wow6432node in regedit like last time.

I'm guessing I'll need to submit a bug request. Is there anything specific I need to say in the bug report, or should I reference this thread?
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

andoru wrote: There's also no Wow6432node in regedit like last time.
Were you looking at it in wine64 regedit? If you don't specify wine64 you will see only the 32 bit view.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

I ran:

Code: Select all

wine64 regedit
Which translates to:

Code: Select all

WINEPREFIX="$HOME/.wine64" WINEARCH=win64 regedit 
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by Bob Wya »

andoru wrote:I ran:

Code: Select all

wine64 regedit
Which translates to:

Code: Select all

WINEPREFIX="$HOME/.wine64" WINEARCH=win64 regedit 
No it doesn't - on a multilib Wine setup.

Equivalent commands:

Code: Select all

# 64-bit Wine
wine64 regedit
WINEPREFIX="$HOME/.wine64" wine64 regedit 
Equivalent commands:

Code: Select all

# 32-bit Wine
wine regedit
WINEPREFIX="$HOME/.wine64" regedit 
The short form, of all the Wine builtin commands, always uses the 32-bit Wine binary...

Referring to the ELF headers for the 2 binaries:

Code: Select all

readelf -h wine{,64}

File: wine
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x7c000fa5
  Start of program headers:          52 (bytes into file)
  Start of section headers:          8600 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         9
  Size of section headers:           40 (bytes)
  Number of section headers:         28
  Section header string table index: 27

File: wine64
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x7c000f90
  Start of program headers:          64 (bytes into file)
  Start of section headers:          8664 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         27
  Section header string table index: 26
Bob
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

Okay, my bad. I removed the alias for wine64, ran your suggested command:

Code: Select all

WINEPREFIX="$HOME/.wine64" wine64 regedit ./fixZBMV.red
and

Code: Select all

WINEPREFIX="$HOME/.wine64" wine64 regedit
But I still don't see the 2nd entry, and also no Wow6432node subfolder in the registry...
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by Bob Wya »

andoru wrote:Okay, my bad. I removed the alias for wine64, ran your suggested command:
...
But I still don't see the 2nd entry, and also no Wow6432node subfolder in the registry...
You should see the key: HKEY_LOCAL_MACHINE\Software\Wow6432Node
If the WINEPREFIX isn't 64-bit - then the command:

Code: Select all

wine64 regedit
will fail with an error.
  • What OS are you using?
  • What version of Wine are you testing with? Still 2.0.2?
I've got to suspect there is something wrong with your Wine packaging/ installation.
Because I can see the Wow6432Node in my 64-bit WINEPREFIX's...
Tested on Gentoo with Wine Git:

Code: Select all

wine --version
wine-2.14-50-g797a746fc2
Bob

Bob
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

Bob Wya wrote:
  • What OS are you using?
  • What version of Wine are you testing with? Still 2.0.2?
- Debian Sid
- No, I'm using 2.14.0:

Code: Select all

$ wine --version
wine-2.14
$ apt policy winehq-devel
winehq-devel:
  Installed: 2.14.0~sid
  Candidate: 2.14.0~sid
  Version table:
 *** 2.14.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
     2.13.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.12.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.11.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.10.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.9.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.8.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.7.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.6.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.5.0~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
     2.4.0-3~sid 900
        900 https://dl.winehq.org/wine-builds/debian sid/main amd64 Packages
Bob Wya wrote:I've got to suspect there is something wrong with your Wine packaging/ installation.
Because I can see the Wow6432Node in my 64-bit WINEPREFIX's...
I would suspect this as well, since there's also an issue (which I wanted to post here separately) where I can't select themes under winecfg (in the Desktop Integration tab). I have some themes installed, but the dropdown menu only shows "(No Theme)"

I've tried clearing the prefixes multiple times to try to fix this issue, but to no avail.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by Bob Wya »

andoru wrote:
Bob Wya wrote:
  • What OS are you using?
  • What version of Wine are you testing with? Still 2.0.2?
- Debian Sid
- No, I'm using 2.14.0:

...

I would suspect this as well, since there's also an issue (which I wanted to post here separately) where I can't select themes under winecfg (in the Desktop Integration tab). I have some themes installed, but the dropdown menu only shows "(No Theme)"

I've tried clearing the prefixes multiple times to try to fix this issue, but to no avail.
That all sounds a bit fishy...
Maybe there is an issue with the WineHQ Debian packaging...
You could file a bug, against this, on the WineHQ: Bugzilla ...

I've got a "semi-maintained" build multilib Wine BASH script for Debian/ Ubuntu on Github...
You're welcome to use it - to test functionality of a self-built Wine version - as compared with the packaged Wine version you have installed...
I've not tested it on stock Debian - but it's designed to be fairly distribution agnostic and just uses the stock Debian Schroot Chroot environments to do the actual compilation and linking. The resulting Wine build is just "installed" under your user's home directory and is not actually packaged. The build script is really just intended for testing user patches and live Git builds, regression testing, etc. 8)

Bob
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

Bob Wya wrote:That all sounds a bit fishy...
Maybe there is an issue with the WineHQ Debian packaging...
Sorry, I have not been clear enough, I had the issue with the themes since I had the official Debian packages, it hasn't started with WineHQ's

Thanks for the scripts, though since I've tried three "flavours" of Wine, and this issue hasn't gone away, I doubt using a self-compiled version would help.

Will try to submit the bugs.
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by dimesio »

andoru wrote:Okay, my bad. I removed the alias for wine64, ran your suggested command:

Code: Select all

WINEPREFIX="$HOME/.wine64" wine64 regedit ./fixZBMV.red
I didn't use wine64 to install the .reg file, just to view it afterwards to check that it succeeded. Also, did you remember to set the Windows version to XP? I can confirm that installing the .reg file doesn't work if the Windows version is 7.
andoru
Level 2
Level 2
Posts: 33
Joined: Mon Jun 02, 2014 5:57 pm

Re: How to install dll codecs under a 64-bit Wine prefix?

Post by andoru »

Not sure what happened last time, but I'm guessing that because of the alias, the stuff I tried wasn't installed properly. So I cleared the whole prefix, and used Bob's suggested command, and now it worked.
Thanks for your help guys!
What still doesn't work is the themes, so I'll write a bug report about that.
Locked