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:
After importing dpnhpast.dll from Wine (Staging) 4.5, Battlefield starts successfully, same as with MS dpnhpast.dll copied to system32 and registered via
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.