https://bugs.winehq.org/show_bug.cgi?id=47525
Bug ID: 47525 Summary: DirectX8 API calls are not being transferred to DirectX9 Product: Wine Version: 4.12.1 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: hellator@gmail.com Distribution: ---
This .DLL allows us to use DirectX8 to DirectX9. https://github.com/crosire/d3d8to9
It does not work as expected in Wine as it does in Windows. The game Nin Online uses this to improve performance and overhead. https://www.ninonline.org/index.php
https://bugs.winehq.org/show_bug.cgi?id=47525
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #1 from Zebediah Figura z.figura12@gmail.com --- What is the actual problem that you see?
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #2 from Seth hellator@gmail.com --- The .DLL is not working or using DirectX9 I believe.
https://bugs.winehq.org/show_bug.cgi?id=47525
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- You did add a dll override for this? Believing is not enough, can you please check if it actually works or not?
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #4 from Zebediah Figura z.figura12@gmail.com --- In what way does this manifest as a problem visible when running the program?
https://bugs.winehq.org/show_bug.cgi?id=47525
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://www.ninonline.org/i | |ndex.php Keywords| |download Status|UNCONFIRMED |NEW CC| |o.dierick@piezo-forte.be Ever confirmed|0 |1
--- Comment #5 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I tested the application for bug 47449.
The issue is that the main program doesn't start with builtin dx8vb: The launcher works. After checking for updates and clicking the start button, it shows the Nin Online logo while loading. Then it should open the developer splash screen. The sound from the splash screen is audible, but the splash screen itself never appears and the application gets stuck like that forever and must be killed.
The application starts fine when native dx8vb is installed through winetricks. Simply setting dx8vb to native in winecfg is not sufficient.
Note that native .NET Framework is also required to login into the application, but that's another issue. Testing this bug doesn't require login in.
I tested with installer from a few weeks ago (version 2.8.3), it may have been updated since.
$ du -b Nin\ Online\ Installer.exe 346508379 Nin Online Installer.exe $ sha1sum Nin\ Online\ Installer.exe f68e30df46d20350e19187e081aadaba146b310b Nin Online Installer.exe
Here is my system: - CPU i7-4930K 3.4GHz x12 8 GB RAM; - Debian 8 Jessie amd64 gnome DE; - NVidia rtx 2070 proprietary driver 430.14; - Wine 4.11 (release tag) 64-bit wineprefix; - winetricks : dotnet40. - winecfg : virtual desktop 1600x1024, no WM decoration/management; - Game settings changed: 1600x1024 fullscreen. - Game automatically updated to latest version through the launcher.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #6 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 64925 --> https://bugs.winehq.org/attachment.cgi?id=64925 WINEDEBUG=+loaddll,+dx8vb wine 4.11 (64 bit) terminal output
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- Yeah, wine dx8vb is barely a skeleton implementation. It's somewhere on my ToDo list though. But what's up with that d3d8to9 library?
https://bugs.winehq.org/show_bug.cgi?id=47525
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |dx8vb
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #8 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to Fabian Maurer from comment #7)
But what's up with that d3d8to9 library?
Hello,
I think I'm beginning to understand the issue.
The issue with dx8vb is unrelated.
The application uses a directx8 to directx9 converter that is a dll wrapper (it changes features by proxying/hooking some functions). It's implemented as an ASI loader (See https://github.com/crosire/d3d8to9/issues/37, other example: https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases). In Nin Online, the loader is named dxwrapper.dll. It doesn't work with Wine out-of-the-box because the wrapper dll is not picked up automatically (There is no trace of the application trying to load dxwrapper.dll in the +loaddll output).
The wrapper dll must be named after a dll that can be overridden (some can't) and, obviously, it must be a dll that gets loaded as part of the application or one of its libraries.
I ran into a similar issue trying to use 'SilentPatchGF' to get widescreen support in 'The Godfather' (https://github.com/CookiePLMonster/SilentPatchGF). In that case I had to name the wrapper 'msacm32.dll'. Other names would either not load, or made the application crash when set to native.
So, I retested in a working wineprefix (i.e. with native dx8vb and dotnet40) and copied dxwrapper.[dll/asi/ini] to equivalent msacm32.[dll/asi/ini] files and launched the game. The game ran fine and it created a msacm32-client.log which I'll attach.
@Seth: Do you confirm that this is the issue you want to report?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #9 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 64928 --> https://bugs.winehq.org/attachment.cgi?id=64928 d3d8to9 wrapper dll logfile
This proves that the wrapper did load when setting msacm32 to native in winecfg and renaming dxwrapper.* files to msacm32.*.
However, I can't tell if it works properly because the game ran fine without it and I didn't notice any difference with it.
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #10 from Seth hellator@gmail.com --- The game performs worse when loading the .DLL. I was trying to get it to load Dv9k and it also didn't work.
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #11 from Zebediah Figura z.figura12@gmail.com --- (In reply to Seth from comment #10)
The game performs worse when loading the .DLL. I was trying to get it to load Dv9k and it also didn't work.
Performs worse than what, when loading which DLL?
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #12 from Seth hellator@gmail.com --- The wrapper. I get 30 FPS on 1080P and 60 FPS on Windows. The .DLL limits FPS to 60.
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #13 from Seth hellator@gmail.com --- The .DLL makes me get 15-20 FPS. I am not sure if it is loading or is native for DX9.
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #14 from Zebediah Figura z.figura12@gmail.com --- Okay, so the bug here is actually "Nin Online has poor performance", right? Do you actually have any reason to believe that the d3d8.dll wrapper is to blame?
https://bugs.winehq.org/show_bug.cgi?id=47525
--- Comment #15 from Seth hellator@gmail.com --- I managed to verify that it does work with DirectX9 following the steps provided. I also have managed to get it to run using D9VK with native performance on Windows.
https://bugs.winehq.org/show_bug.cgi?id=47525
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|dx8vb |-unknown