Details
-
Bug
-
Resolution: Fixed
-
Major
Description
Download Multiplayer Demo: http://download.fileplanet.com/ftp1/082002/battlefield_1942_multiplayer_demo.exe?st=wYb0Rigwk2zOhCM2M8MQqA&e=1554945055
Download Single Player Demo: http://download.fileplanet.com/ftp1/072002/bf1942_sp_demo.zip?st=JC_6PVVVBWR7w9lwDadlRQ&e=1554944982
After trying to launch Battlefield 1942 Multiplayer/Single Player Demo, SP crashes with error that I have DirectX 8.0 installed, but the game needs at least DirectX 8.1. MP terminates immediately. If to click "Abort" button in SP error, it terminates. If to click "Retry", this error appears again. If to click "Skip", appears another crash.
But judging by some lines in bf1942.log, it just needs dpnhpast.dll in system32. When the game cannot find this dll, it crashes with a lot of debug output from its source code:
...
|
(dll/win32/kernel32/client/loader.c:384) LoadLibraryExW(dpnhpast.dll) failing with status c0000135 |
Couldn't LoadLibrary dpnhpast.dll
|
C:\Dice\Projects\Battlefield\ENGINE\RendPCDX8\PCDX8RendererInit.cpp(492): Error: RendPCDX8: Your version of DirectX is 800, you need at least DirectX8.1 |
...
|
After importing dpnhpast.dll from Wine (Staging) 4.5, Battlefield starts successfully, same as with MS dpnhpast.dll copied to system32 and registered via
regsvr32 dpnhpast.dll
|
manually. Although Wine has only stubs for dpnhpast functions, there are no differences in the game's work with both dlls.
Tested on 0.4.13-dev-0-g2e8c7cf, on VirtualBox 5.2.26 with Guest Additions and Mesa3D installed.
P.S.: In a clear installation of XP, dpnhpast.dll is already present "out of the box". So we're stay compatible.