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.28k stars 91 forks source link

[Creatures 2] Crash on launch with `Error: could not find source surface!` #113

Closed IrateRedKite closed 1 year ago

IrateRedKite commented 3 years ago

First of all thank-you for your work with this excellent project.

I had Creatures 2 running almost perfectly a few days ago with dxwrapper. I netted about two hours of play with no crashes and multiple instances where I closed/opened the game. After a few days, I've returned and found myself unable to get past the game launcher. When I try to load a world I get the generic 'an error was detected during starup' and the game closes. Occasionally the world loads and I get 1-2 seconds of audio before the application terminates with the same error.

I've tried various compatibility configurations, fresh reinstalls of both the game and dxwrapper with no success. The frustrating thing is nothing at all changed (as far as I can tell) between the time the game was working and now.

I've enclosed dxwrapper-creatures2.log in the hope that this might shed some light on what's causing the issue.

12024 09:31:18.345 Starting DxWrapper v1.0.6390.21
12024 09:31:18.345 Gigabyte Technology Co., Ltd. GA-970A-DS3   (Desktop)
12024 09:31:18.345 Gigabyte Technology Co., Ltd. GA-970A-DS3 x.x (Desktop)
12024 09:31:18.346 NVIDIA GeForce GTX 1060 6GB
12024 09:31:18.350 Windows 10 Home 64-bit (10.0.19041)
12024 09:31:18.350 "creatures2.exe" (PID:10244)
12024 09:31:18.359 Disabling High DPI Scaling...
12024 09:31:18.359 Loaded library: user32.dll
12024 09:31:18.360 Loaded library: shcore.dll
12024 09:31:18.360 Loading 'ddraw.dll'...
12024 09:31:18.360 Hooking ddraw.dll APIs...
12024 09:31:18.360 Enabling ddraw wrapper
12024 09:31:18.360 Enabling d3d9 wrapper
12024 09:31:18.360 Loading 'd3d9.dll'...
12024 09:31:18.371 DxWrapper loaded!
12024 09:31:18.794 dd_DirectDrawCreate
12024 09:31:18.794 dd_DirectDrawCreateEx
12024 09:31:18.794 Redirecting 'DirectDrawCreate' IID_IDirectDraw to --> 'Direct3DCreate9'
12024 09:31:18.794 Creating interface m_IDirectDrawX::m_IDirectDrawX(006BA2D0) converting interface from v1 to v9
12024 09:31:18.794 d9_Direct3DCreate9
12024 09:31:18.794 Redirecting 'Direct3DCreate9' ...
12024 09:31:18.863 Creating interface m_IDirect3D9Ex::m_IDirect3D9Ex(0076C4A8)
12024 09:31:18.863 UpdatePresentParameter Setting WndProc: WND(0008050A,Afx:400000:b:10003:6:130627,{208,208,1648,967})
12024 09:31:18.863 UpdatePresentParameter Setting WndProc: WND(0008050A,Afx:400000:b:10003:6:130627,{208,208,1648,967})
12024 09:31:18.943 Creating interface m_IDirect3DDevice9Ex::InitDirect3DDevice(090FCBE8)
12024 09:31:18.944 Creating interface m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(090FCFB0) converting interface from v1 to v9
12024 09:31:18.945 Creating interface m_IDirectDrawClipper::m_IDirectDrawClipper(006D10B0)
12024 09:31:18.945 Creating interface m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(090FDB30) converting interface from v1 to v9
12024 09:31:18.945 Creating interface m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(090FDCA0) converting interface from v1 to v9
12024 09:31:18.945 Creating interface m_IDirect3DTexture9::m_IDirect3DTexture9(090FE008)
12024 09:31:18.985 m_IDirectDrawSurfaceX::~m_IDirectDrawSurfaceX(090FDB30) deleting interface!
12024 09:31:18.985 Creating interface m_IDirect3DTexture9::m_IDirect3DTexture9(090FE068)
12024 09:31:18.997 Creating interface m_IDirect3DTexture9::m_IDirect3DTexture9(090FE0B0)
12024 09:31:19.063 m_IDirectDrawSurfaceX::~m_IDirectDrawSurfaceX(090FDB30) deleting interface!
12024 09:31:19.080 m_IDirectDrawSurfaceX::Blt Error: could not find source surface!
12024 09:31:19.411 m_IDirectDrawSurfaceX::Blt Error: could not find source surface!
elishacloud commented 3 years ago

Try this:

  1. Make sure all exe files (except start.exe and launcher.exe) in the "Creatures 2" folder have the "16-bit" color mode compatibility setting enabled (see screenshot below). Make sure no other compatibility settings besides "16-bit" color mode are enabled, not even the DPI settings.
  2. For start.exe and launcher.exe executables make sure that all compatibility settings are disabled.
  3. Use the updated build below.
  4. Use start.exe to start the game.

Updated build: dxwrapper.zip

image

elishacloud commented 1 year ago

This update should fix this issue. It is now using Direct3D9 rather than GDI: dxwrapper.zip

elishacloud commented 1 year ago

This issue should be fixed in the latest release: https://github.com/elishacloud/dxwrapper/wiki/Creatures-2:-The-Albian-Years