El Foro

How to register a dll

Autor Respuestas
Levan Monday 21 July 2014 at 1:56
Levan

So I wanted to install MGS 2 on playonlinux.

On wine I installed MGS 2 with using this guide 
https://appdb.winehq.org/objectManager.php?sClass=version&iId=7455&iTestingId=52720
 

  • ­­Start with a fresh wine prefix
  • winetricks dsound directmusic
  • Copy msdmo.dll and dsdmo.dll from the DirectX redistributable or a local Windows installation to system32
  • wine regsvr32 dsdmo.dll
  • Copy msadp32.acm from a local Windows installation to system32
  • wine regsvr32 quartz.dll
  • Add overrides for msdmodsdmo and msadp32.acm via winecfg
  • Install the game, apply the official patch and geforce/nocd patch 

On start the game will seem to freeze with a black screen, just wait for 30 seconds or so, the Konami logo will show up eventually (this seems to be fixed in version 1.4-rc1).


Some smaller problems remain: 
- Considerable lags, especially during cutscenes; Disabling the "Focus" should fix this 
- Occasional graphical glitches with the black borders during cutscenes (probably due to unsupported triple buffering) 
- Pictures taken with the camera aren't displayed

But under playonlinux I could not find a way to add a new dll, I am tallking about this step 
regsvr32 dsdmo.dll

I tried to use shall but all it did is configure a new winprefox or something I tried to use CMD and still no go.

So can anyone help me with this 

 

Thank you in advanc 

Levan Monday 21 July 2014 at 17:56
Levan

bump

petch Monday 21 July 2014 at 18:47
petch
Developer

There's indeed no provision for this in the GUI, but you can proceed this way:

Configure button > (select virtual drive) > Miscellaneous tab > Open a shell

POL_Wine regsvr32 dsdmo.dll
Levan Monday 21 July 2014 at 22:57
Levan

 

There's indeed no provision for this in the GUI, but you can proceed this way:

Configure button > (select virtual drive) > Miscellaneous tab > Open a shell

POL_Wine regsvr32 dsdmo.dll

 

Editado por: Levan

petch Tuesday 22 July 2014 at 1:17
petch
Developer

Registering a DLL is totally unrelated to DLL overrides.

In the screenshot above registering worked (that's what the "exitcode 0" says); That means (to simplify, I don't know the details anyway) that the DLL itself published in the registry informations about what it's capable of, so that other programs can call it from that moment on when they need specific services. For example, a video codec could publish what format(s) it supports, so that it can be called to decode (or encode) files in additionnal video formats.

Overrides is a different mechanism of Wine, not Windows; It allows to specify, when both a Wine and a "native" implementation of a DLL exist, what takes precedence. By default it's Wine version that's used, but with overrides you can decide that the native DLL will be used instead, or that you want one to be used then the other as a fallback if the feature looked for is missing.

Using native DLLs usually require both override and registration, but they're separate mechanisms.

So, in the overrides don't expect registration to create an entry; Instead just go ahead and type "dsdmo" and add an override for it.

Levan Tuesday 22 July 2014 at 1:32
Levan

 

Registering a DLL is totally unrelated to DLL overrides.

In the screenshot above registering worked (that's what the "exitcode 0" says); That means (to simplify, I don't know the details anyway) that the DLL itself published in the registry informations about what it's capable of, so that other programs can call it from that moment on when they need specific services. For example, a video codec could publish what format(s) it supports, so that it can be called to decode (or encode) files in additionnal video formats.

Overrides is a different mechanism of Wine, not Windows; It allows to specify, when both a Wine and a "native" implementation of a DLL exist, what takes precedence. By default it's Wine version that's used, but with overrides you can decide that the native DLL will be used instead, or that you want one to be used then the other as a fallback if the feature looked for is missing.

Using native DLLs usually require both override and registration, but they're separate mechanisms.

So, in the overrides don't expect registration to create an entry; Instead just go ahead and type "dsdmo" and add an override for it.