narzoul / DDrawCompat

DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11
BSD Zero Clause License
907 stars 69 forks source link

Might and Magic 9, black screen underwater & at night #88

Closed chrlpolk closed 3 years ago

chrlpolk commented 3 years ago

This old issue rears its head again! Game runs fine otherwise, but screen flickers and goes black when entering water, and goes black at 5pm (game-time, obviously!).

Using Experimental version, Windows 10, Dell Inspiron 620 Desktop, Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz, 8gig ram.

Edit: Yes, it does support 800x600 res.

An interesting thing happens. When I start the game, the cursor does "the circle thing" then an error message comes up that the program must close. After that, I cannot delete or replace the DLL because it says it is being used by Lithtech, However! Lithtech is not shown to be running in the task manager, not even in the processes! I have to restart the computer in order to "unlock" it.

From DDrawCompat-lithtech:

3c8c 11:34:55.818 Process path: C:\Program Files (x86)\GOG Galaxy\Games\Might and Magic 9\lithtech.exe 3c8c 11:34:55.818 Environment variable __COMPAT_LAYER = "HighDpiAware" 3c8c 11:34:55.818 Loading DDrawCompat dynamically from C:\Program Files (x86)\GOG Galaxy\Games\Might and Magic 9\DDRAW.dll 3c8c 11:34:55.820 DDrawCompat loaded successfully 3c8c 11:34:55.821 Installing display mode hooks 3c8c 11:34:55.821 Installing registry hooks 3c8c 11:34:55.821 Installing Direct3D driver hooks 3c8c 11:34:55.822 Installing Win32 hooks 3c8c 11:34:55.827 Hooking user mode display driver: igdumd32.dll

chrlpolk commented 3 years ago

Ok so on a hunch I deleted the DDrawCompat-lithtech file and restarted the program to create a new one to see if it would say the same thing. Suddenly, it's a much larger file! It's too long to copy&paste here so I'm attaching it.

DDrawCompat-lithtech.log

narzoul commented 3 years ago

Thanks! I made some progress, though I'm not sure if I completely fixed the issue. Please try this new test release: ddraw.zip (diff.txt on top of 27ae9affb8f78d56c1cd09cf888be9ac94c051e9)

Use the ReleaseWithDebugLogs build first. If it crashes again, please attach the new logs. If it doesn't, then just exit the game and switch to the Release version for further testing. (The debug logs make the game painfully slow and can produce hundreds of MBs of unnecessary logs.)

chrlpolk commented 3 years ago

Started from clean install, just in case.

Same thing - cursor does "the circle thing" then "This program has stopped working" crash message.

DDrawCompat-lithtech.log

narzoul commented 3 years ago

Hmm. It did get further, but now it's not so obvious why it crashes. Could you try to get a crash dump by following the instructions in this comment? https://github.com/narzoul/DDrawCompat/issues/50#issuecomment-520162844

Edit: Please send the log with it too, just in case it doesn't crash the same way.

chrlpolk commented 3 years ago

Sorry to leave you hanging, work has gotten busy and it may be a few days before I can get around to this again. (But I desperately want to solve this!) My solution may just be to buy an old Nvidia graphics card, it would save everyone involved a lot of hassle! Thank you for your quick responses on the matter.

narzoul commented 3 years ago

Don't worry about it, I may have figured it out anyway. I've updated the experimental release. When you have some time, please check if it solves the issue.

narzoul commented 3 years ago

I'm assuming this has been fixed. If it's not the case, please reopen it.