elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.16k stars 83 forks source link

Armada 1 doesnt work with the latest release #121

Closed dr-platform-devops closed 3 years ago

dr-platform-devops commented 3 years ago

Hey Elishacloud,

First of all - good job on this one, its quite impressive what you achieved with this technically.

Ive tried basically everything - still can not get it to run. When trying your latest release these are the logs I get:

13992 21:30:28.479 Starting DxWrapper v1.0.6387.21 13992 21:30:28.479 ASUSTeK COMPUTER INC. ROG STRIX B450-F GAMING Rev 1.xx (Desktop) 13992 21:30:28.480 NVIDIA GeForce RTX 2060 SUPER 13992 21:30:28.480 Windows 10 Home 64-bit (10.0.19041) 13992 21:30:28.480 "Armada.exe" (PID:14320) 13992 21:30:28.484 Disabling High DPI Scaling... 13992 21:30:28.484 Loaded library: user32.dll 13992 21:30:28.484 Loaded library: shcore.dll 13992 21:30:28.484 DxWrapper loaded! 13992 21:30:29.297 Quiting DxWrapper 13992 21:30:29.297 Unloading libraries... 13992 21:30:29.297 Reseting screen resolution 13992 21:30:29.435 Reseting font smoothing 13992 21:30:29.441 DxWrapper terminated!

Ive tried a lot of combinations already - including your guide on the fleet ops forums. Can you please confirm if this still works?

dr-platform-devops commented 3 years ago

12236 21:08:19.503 Starting DxWrapper v1.0.3714.21 12236 21:08:19.504 Windows 10 64-bit (10.0.19041) 12236 21:08:19.504 NVIDIA GeForce RTX 2060 SUPER 12236 21:08:19.504 Armada.exe (PID:5920) 12236 21:08:19.504 Reading config file: dxwrapper.ini 12236 21:08:19.504 Enabling ddraw wrapper 12236 21:08:19.504 Disabling High DPI Scaling... 12236 21:08:19.504 Loaded library: Shcore.dll 12236 21:08:19.504 Set exception handler 12236 21:08:19.504 Loaded library: kernel32.dll 12236 21:08:19.504 Finished setting exception handler 12236 21:08:19.505 Hooking ddraw.dll APIs... 12236 21:08:19.505 Process path: D:\Games\Armada\Armada.exe 12236 21:08:19.505 Loading DDrawCompat from D:\Games\Armada\dxwrapper.dll 12236 21:08:19.505 Loaded library: uxtheme.dll 12236 21:08:19.505 DDrawCompat v0.2.1 loaded successfully 12236 21:08:19.611 Loaded library: dxwnd.dll 12236 21:08:19.611 Loading DxWnd v2.03.60 12236 21:08:19.615 Installing DirectDraw hooks 12236 21:08:19.701 Installing GDI hooks 12236 21:08:19.707 Installing registry hooks 12236 21:08:19.707 Finished installing hooks 12236 21:08:20.004 Loaded library: dwmapi.dll 12236 21:08:20.555 Loaded library: winmm.dll 12236 21:08:20.568 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=00000000

elishacloud commented 3 years ago

getting this with another version mentioned in the fleetops forum

I noticed this line here:

12236 21:08:19.611 Loaded library: dxwnd.dll

That should not be loading for this game. Try setting/adding the following line into the ini file of the version mentioned in the fleetops forum:

DxWnd                      = 0
dr-platform-devops commented 3 years ago

hi Elisha,

Thanks for the prompt help. Good point re the loaded library. Forget about the above logs for now - I tried with different versions. Wanted to start with a clean slate, so ive clean installed the game.

Patched to 1.2 Restarted the system, then patched to 1.3. Overwritten the exe with the no-cd one Then, as per: https://www.fleetops.net/forums/armada/armada-1-in-windows-10-12841 I have downloaded the dx wrapper in this link: https://github.com/elishacloud/dxwrapper/issues/28 Removed the comp settings using regedit and added comp level win7

Now when I start the game (without dxwnd, with the regular exe) I get this in the logs:

3140 21:57:29.811 Starting DxWrapper v1.0.6201.21 3140 21:57:29.811 ASUSTeK COMPUTER INC. ROG STRIX B450-F GAMING Rev 1.xx (Desktop) 3140 21:57:29.812 NVIDIA GeForce RTX 2060 SUPER 3140 21:57:29.812 Windows 10 64-bit (10.0.19041) 3140 21:57:29.813 "Armada.exe" (PID:14760) 3140 21:57:29.813 Loaded library: kernel32.dll 3140 21:57:29.813 Hooking 'GetModuleFileName' API... 3140 21:57:29.813 Disabling High DPI Scaling... 3140 21:57:29.813 Loaded library: Shcore.dll 3140 21:57:29.813 Loading 'ddraw.dll'... 3140 21:57:29.813 Hooking ddraw.dll APIs... 3140 21:57:29.813 Enabling ddraw wrapper 3140 21:57:29.813 Process path: D:\Games\Armada\Armada.exe 3140 21:57:29.813 Environment variable __COMPAT_LAYER = "Win7RTM" 3140 21:57:29.813 Loading DDrawCompat from D:\Games\Armada\dxwrapper.dll 3140 21:57:29.813 Loaded library: winmm.dll 3140 21:57:29.814 Loaded library: uxtheme.dll 3140 21:57:29.814 DDrawCompat Experimental version loaded successfully

And the splash image on the screen - windows says the software is not responding.

dr-platform-devops commented 3 years ago

hm okay - with the other fix found on this guide: https://github.com/elishacloud/dxwrapper/wiki/Star-Trek-Armada-1 Seems like im one step closer - at least the game starts - and then it crashes. But before it does it writes useful logs.

2736 22:06:32.225 Starting DxWrapper v1.0.6334.21 2736 22:06:32.225 ASUSTeK COMPUTER INC. ROG STRIX B450-F GAMING Rev 1.xx (Desktop) 2736 22:06:32.225 NVIDIA GeForce RTX 2060 SUPER 2736 22:06:32.226 Windows 10 64-bit (10.0.19041) 2736 22:06:32.226 "Armada.exe" (PID:9424) 2736 22:06:32.230 Disabling High DPI Scaling... 2736 22:06:32.230 Loaded library: user32.dll 2736 22:06:32.230 Loaded library: shcore.dll 2736 22:06:32.230 Loading 'ddraw.dll'... 2736 22:06:32.230 Hooking ddraw.dll APIs... 2736 22:06:32.230 Enabling DDrawCompat 2736 22:06:32.230 Enabling ddraw wrapper 2736 22:06:32.230 Process path: D:\Games\Armada\Armada.exe 2736 22:06:32.230 Environment variable __COMPAT_LAYER = "Win7RTM" 2736 22:06:32.230 Loading DDrawCompat from D:\Games\Armada\dxwrapper.dll 2736 22:06:32.231 Loaded library: winmm.dll 2736 22:06:32.231 Loaded library: uxtheme.dll 2736 22:06:32.232 DDrawCompat Experimental version loaded successfully 2736 22:06:32.232 DxWrapper loaded! 2736 22:06:32.235 dd_DirectDrawCreateEx 2736 22:06:32.235 Redirecting 'DirectDrawCreateEx' ... 2736 22:06:32.235 Installing registry hooks 2736 22:06:32.235 Installing Direct3D driver hooks 2736 22:06:32.235 Installing DirectDraw hooks 2736 22:06:32.324 Installing Direct3D hooks 2736 22:06:32.338 Installing GDI hooks 2736 22:06:32.346 Installing display mode hooks 2736 22:06:32.347 Finished installing hooks 2736 22:06:32.347 Creating device m_IDirectDrawX::m_IDirectDrawX(0D588D08) v7 2736 22:06:32.365 m_IDirectDrawX::~m_IDirectDrawX(0D588D08) deleting device! 2736 22:06:32.367 Loaded library: dwmapi.dll 2736 22:06:32.370 Redirecting 'DirectDrawCreateEx' ... 2736 22:06:32.371 Creating device m_IDirectDrawX::m_IDirectDrawX(0D588B88) v7 2736 22:06:32.371 Creating device m_IDirect3DX::m_IDirect3DX(034B1220) v7 2736 22:06:32.371 m_IDirect3DX::ResolutionHack Found loaded dll: 'd3dim.dll' 2736 22:06:32.371 m_IDirect3DX::ResolutionHack Found loaded dll: 'd3dim700.dll' 2736 22:06:32.656 Creating device m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(03318B50) v7 2736 22:06:32.656 Creating device m_IDirectDrawColorControl::m_IDirectDrawColorControl(0090A328) 2736 22:06:32.656 Creating device m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(03318D10) v7 2736 22:06:32.656 Creating device m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(0331AED8) v7

elishacloud commented 3 years ago

Try using this update: dxwrapper.zip

This uses the latest build updates and switches to using DDrawCompat v2.1, rather than the Experimental version.

dr-platform-devops commented 3 years ago

Hi Elisha,

Works like charm - Thanks a lot :) Happy to play this piece of history. I just planned to install XP on vmware player - but this is way better on host OS with high res. Added log output for reference - maybe theres a connection between my system and the reason the original posted fix non-function.

Can you add the new fix to your guide - or also to the fleetops forum? Thats the first fix google catches.

3752 14:19:20.568 Starting DxWrapper v1.0.6492.21 3752 14:19:20.568 ASUSTeK COMPUTER INC. ROG STRIX B450-F GAMING Rev 1.xx (Desktop) 3752 14:19:20.568 NVIDIA GeForce RTX 2060 SUPER 3752 14:19:20.569 Windows 10 Home 64-bit (10.0.19041) 3752 14:19:20.569 "Armada.exe" (PID:11232) 3752 14:19:20.573 Environment variable __COMPAT_LAYER = "DisableDXMaximizedWindowedMode Win7RTM" 3752 14:19:20.573 Disabling High DPI Scaling... 3752 14:19:20.573 Loaded library: user32.dll 3752 14:19:20.573 Loaded library: shcore.dll 3752 14:19:20.573 Loading 'ddraw.dll'... 3752 14:19:20.573 Hooking ddraw.dll APIs... 3752 14:19:20.574 Enabling DDrawCompat 3752 14:19:20.574 Enabling ddraw wrapper 3752 14:19:20.574 Process path: D:\Games\Armada\Armada.exe 3752 14:19:20.574 Loading DDrawCompat from D:\Games\Armada\dxwrapper.dll 3752 14:19:20.587 Loaded library: uxtheme.dll 3752 14:19:20.587 DDrawCompat v0.2.1 loaded successfully 3752 14:19:20.587 DxWrapper loaded! 3752 14:19:20.588 dd_DirectDrawEnumerateExA 3752 14:19:20.589 dd_DirectDrawCreateEx 3752 14:19:20.589 Redirecting 'DirectDrawCreateEx' ... 3752 14:19:20.589 Installing DirectDraw hooks 3752 14:19:20.678 Installing GDI hooks 3752 14:19:20.684 Installing registry hooks 3752 14:19:20.684 Finished installing hooks 3752 14:19:20.685 Creating interface m_IDirectDrawX::m_IDirectDrawX (045E8FE8) v7 3752 14:19:20.984 m_IDirectDrawX::~m_IDirectDrawX (045E8FE8) deleting interface! 3752 14:19:20.985 Loaded library: dwmapi.dll 3752 14:19:20.988 Redirecting 'DirectDrawCreateEx' ... 3752 14:19:20.990 Creating interface m_IDirectDrawX::m_IDirectDrawX (045E8EB8) v7 3752 14:19:20.996 Creating interface m_IDirect3DX::m_IDirect3DX (008CA440) v7 3752 14:19:20.996 m_IDirect3DX::ResolutionHack Found loaded dll: 'd3dim700.dll' 3752 14:19:21.466 Loaded library: winmm.dll 3752 14:19:21.476 Creating interface m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX (033ACA08) v7 3752 14:19:21.476 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:19:21.476 Creating interface m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX (033ACBE0) v7 3752 14:19:21.476 Creating interface m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX (033ACF38) v7 3752 14:19:21.491 m_IDirectDrawSurfaceX::~m_IDirectDrawSurfaceX (033ACA08) deleting interface! 3752 14:19:21.491 m_IDirectDrawSurfaceX::~m_IDirectDrawSurfaceX (033ACF38) deleting interface! 3752 14:19:21.654 m_IDirectDrawX::~m_IDirectDrawX (045E8EB8) deleting interface! 3752 14:19:21.705 Redirecting 'DirectDrawCreateEx' ... 3752 14:19:21.707 Creating interface m_IDirectDrawX::m_IDirectDrawX (045E8798) v7 3752 14:19:21.708 Creating interface m_IDirect3DX::m_IDirect3DX (033A9BF8) v7 3752 14:19:22.451 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:19:22.454 Creating interface m_IDirect3DDeviceX::m_IDirect3DDeviceX (008E1720) v7 3752 14:19:22.458 m_IDirect3DDeviceX::~m_IDirect3DDeviceX (008E1720) deleting interface! 3752 14:19:22.461 m_IDirectDrawSurfaceX::~m_IDirectDrawSurfaceX (035B3098) deleting interface! 3752 14:19:22.618 m_IDirectDrawX::~m_IDirectDrawX (045E8798) deleting interface! 3752 14:19:22.656 Creating interface m_IDirect3DX::m_IDirect3DX (033A9DD8) v7 3752 14:19:23.156 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:19:23.158 Creating interface m_IDirect3DDeviceX::m_IDirect3DDeviceX (008E14B0) v7 3752 14:19:23.593 GDI used DC cache size: 1 3752 14:19:31.819 Creating interface m_IDirect3DVertexBufferX::m_IDirect3DVertexBufferX (0D41CA00) v7 3752 14:19:31.819 Creating interface m_IDirect3DVertexBufferX::m_IDirect3DVertexBufferX (0D41CDC0) v7 3752 14:19:31.824 m_IDirect3DVertexBufferX::~m_IDirect3DVertexBufferX (0D41CDC0) deleting interface! 3752 14:19:31.824 Creating interface m_IDirect3DVertexBufferX::m_IDirect3DVertexBufferX (0D41CFA0) v7 3752 14:20:18.045 m_IDirect3DVertexBufferX::~m_IDirect3DVertexBufferX (0D41D000) deleting interface! 3752 14:20:18.045 m_IDirect3DVertexBufferX::~m_IDirect3DVertexBufferX (0D41CFA0) deleting interface! 3752 14:20:18.046 m_IDirect3DDeviceX::~m_IDirect3DDeviceX (008E14B0) deleting interface! 3752 14:20:18.562 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:20:18.565 Creating interface m_IDirect3DDeviceX::m_IDirect3DDeviceX (10129988) v7 3752 14:21:37.054 m_IDirect3DDeviceX::~m_IDirect3DDeviceX (10129988) deleting interface! 3752 14:21:37.609 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:21:41.979 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:21:42.838 DdrawWrapper::ProxyQueryInterfaceQuery failed for IID_IDirectDrawColorControl Error: E_NOINTERFACE 3752 14:21:46.351 Quiting DxWrapper 3752 14:21:46.351 Detaching DDrawCompat 3752 14:21:46.420 DDrawCompat detached successfully 3752 14:21:46.420 Unloading libraries... 3752 14:21:46.420 Reseting screen resolution 3752 14:21:46.439 Reseting font smoothing 3752 14:21:46.443 DxWrapper terminated!