It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hello all, I've been having serious trouble getting the entire Cossacks I series as well as related games by GSC to run on my Windows 10 HP Spectre X360 laptop, however the good news is I've found some fixes which do a great deal to make the game playable, although there is still more work to be done. I'd like to request some assistance from GOG, the developers and from other members of this community to help me test out potential fixes and provide their expertise.

When attempting to load the game from a fresh GOG install, I receive the following error message (including the spelling mistake):

Loading error
Dilplay mode 1024x768x8 not found. Cossacks should not run.

Upon selecting the "Retry" option provided, I receive the following error message instead:

ERROR
Direct Draw Init Failed (80004001)

Which is promptly followed by the game failing to load and crashing out instead.

Now errors of this type have been reported by other users in the past, however none of the fixes which were previously prescribed for these other users worked for me. I attempted various manipulations with the Windows compatibility settings for the executable dmcr.exe, I tried a GSC ddraw.dll patch from 2008 and a community patch from 2019 consisting of a file called dplayx.dll, but I had no success with either approach. I also attempted to run the game in windowed mode using a program called DxWnd, but it didn't seem to have any effect whatsoever and the same errors still appeared.

I did finally find a solution that works very well which I will share in just a moment, but it's not perfect and I'm not sure if there's any tweaks which can be done to make it better. I also found a second approach which shows much promise, but a great deal of further testing is required as well as some technical expertise I don't currently possess.

Solution 1:

Cossacks and other related GSC games were made for machines running Windows XP, Vista etc. and thus became quickly outdated as the standards for DirectX changed along with the hardware running it. GSC released some patches to fix the problems that resulted, culminating at present in the use of a file called "mdraw.dll" in the game directory, which serves as a substitute for the old ddraw.dll DirectDraw drivers that were formerly in use.

Unfortunately, the drivers provided by mdraw.dll are themselves now outdated, requiring a new replacement. I found that if I took the ddraw.dll file from the latest dgVooDoo2 package (dgVoodoo 2 is a set of graphics drivers that allow newer graphics cards and CPU's to emulate older ones), renamed it to mdraw.dll and used it to replace mdraw.dll in the various Cossacks 1 game directories, the games now run almost perfectly with the main exception of limited mouse range in the game menus (the mouse cursor refuses to move all the way to the bottom, making some options inaccessible).

I initially had problems in-game with the mouse also not being able to move to the bottom of the screen, but I've found that this problem was resolved by setting the resolution to a level proportional to my monitor size (my default Windows resolution is 3840x2160, but this setting made the game crash; 1920x1080 however works fine). In-game resolution can be set from within the game's menu, but if you're unable to reach the setting because of the existing mouse range restrictions, it can also be set in mode.dat within the relevant game directory. I'm unaware though of any method for altering the resolution of the game's opening menu, if anyone knows how then it would be fantastic if they could share.

I'm still new to the usage of dgVoodoo 2 so I'm not sure what can be done about the menu mouse issues, there are certainly some settings to play with. There are also issues with video playback for the American Conquest series when using this same method to fix the game, otherwise it seems to run fine aside from the same opening menu mouse limitations I've found thus far in Cossacks 1.

Solution 2:
I attempted to use DxWnd to intercept program calls to DirectDraw and re-route them to protocols designed for newer hardware, as is a common practise for many older games these days. However the usage of DxWnd didn't seem to have any effect on the operation of the game (or lack thereof) even when directly utilized as the launcher for dmcr.exe.

I realized that DxWnd is looking for calls to ddraw.dll, whereas at this stage Cossacks is currently patched to utilize mdraw.dll instead. By replacing mdraw.dll with a symbolic link to ddraw.dll in the same directory and copying ddraw.dll over from my Windows\SysWOW64 folder to serve as the old DirectDraw driver, DxWnd was able to intercept the game's DirectDraw calls and force it to run inside a window. I seem to be having the most luck by setting the re-routed DirectX version to 7.0. The main problem at this stage is that while I'm now able to click anywhere inside the opening menu with this approach, the mouse cursor isn't moving on the screen to match the mouse position.

I have a great deal of experimentation still left to do with both repair approaches, but I could really use some help and expertise because there's a lot of things to try and I'm still very much new to both DxWnd and dgVoodoo 2. Confirmation from others that they're having similar issues would also be useful. I'm running Windows 10 Professional Build 19042, my main GPU is an NVIDIA GeForce MX 150.

I hope the staff at GOG take notice of the issue as well as the partial fixes I've suggested, so that the game can be made to at least partially run for users like myself immediately after installation as opposed to refusing to even launch.

Thanks for your time, any help/advice/moral support will be tremendously appreciated.
--Derpy

Note: I apologize for being unable to post links to DxWnd and dgVoodoo 2, however I've been trolled by downvoters into negative reputation and thus my privileges are restricted for the time being. Links to both programs can be readily found by searching for them on Google.
Post edited April 10, 2021 by Derpowitz
This question / problem has been solved by narzoulimage
I hope you contacted GOG support with a link to this.
avatar
Themken: I hope you contacted GOG support with a link to this.
Will do!
I've tested both Cossacks: Art of War and American Conquest briefly with DDrawCompat v0.3.0 (https://github.com/narzoul/DDrawCompat) before releasing it, and both were working fine for me on Windows 10. You need to use Method 1 from the Installation guide (https://github.com/narzoul/DDrawCompat/wiki/Installation-guide) for these games (i.e. simply rename the extracted ddraw.dll to dciman32.dll), because mdraw.dll always loads ddraw.dll from the Windows system directory. If this doesn't work for you, feel free to open an issue for it on GitHub.
Post edited April 10, 2021 by narzoul
Update: I contacted GOG support and received a response with a number of suggestions. Unfortunately none of the provided suggestions solved my issues, however it turns out that I didn't have all of the recommended DirectX libraries installed and was provided a link to download them all in a package directly from GOG. After installing all of these libraries, I still receive the same DirectDraw 80004001 error message, however I no longer receive a message about the 1024x768x8 display mode being unavailable. Replacing mdraw.dll with the dgVoodoo 2 ddraw.dll driver still gets the game running, but now instead of the mouse being unable to access the bottom of the menu screens, a whole new series of menu mouse glitches arise instead. I will continue testing and hopefully find a solution.
avatar
narzoul: I've tested both Cossacks: Art of War and American Conquest briefly with DDrawCompat v0.3.0 (https://github.com/narzoul/DDrawCompat) before releasing it, and both were working fine for me on Windows 10. You need to use Method 1 from the Installation guide (https://github.com/narzoul/DDrawCompat/wiki/Installation-guide) for these games (i.e. simply rename the extracted ddraw.dll to dciman32.dll), because mdraw.dll always loads ddraw.dll from the Windows system directory. If this doesn't work for you, feel free to open an issue for it on GitHub.
Hello and thank you so much for the rapid response. Your solution looks very promising but unfortunately I wasn't able to get it working, same issues (DirectDraw error 80004001), it didn't seem like your driver kicked in despite using Method #1 to install it and renaming it to dciman32.dll. Renaming it to mdraw.dll produced some interesting results but didn't load the game either. I don't believe I currently have an account on GitHub, I'll look into creating one. Are the Cossacks 1 games all working for you at present, with the latest GOG updates? I've tested your patch with European Wars so far to no avail.
Post edited April 10, 2021 by Derpowitz
Ah sorry, I assumed all 3 of those Cossacks games used the same engine, but apparently European Wars is a bit different, and not compatible with DDrawCompat at the moment. You're also correct that Method #1 doesn't work with that game, because it has a built-in Windows compatibility shim that loads AcSpecfc.dll (see Method 3 and 4, though the latter wouldn't work in this case I think). With mdraw.dll it loads into the main menu, but the screen is frozen there. I'll look into it later and see if I can fix it. The game does work natively for me, though, without any wrappers. And both Art of War and Back to War works with DDrawCompat (dciman32.dll) for me.

What did you mean by "interesting result"? Is there a DDrawCompat-dmcr.log file? If there is, and you get 0x80004001 with that too, then you could try the ReleaseWithDebugLogs build from the debug version of DDrawCompat. It'll produce more detailed logs and might at least tell which method is returning with that error code.
Upon further testing, it seems the "Direct Draw Init Failed (80004001)" error can be a result of failing to set the display mode to 1024x768x32. Can you set your desktop to that resolution? Maybe your display or drivers don't support it.
Post edited April 11, 2021 by narzoul
It turned out that DDrawCompat v0.3.0 does work with European Wars too, if you use Method 4 (ddraw.dll + dmcr.exe.manifest + update timestamp of dmcr.exe). You have to use the original mdraw.dll file.

Alternatively, a combination of Method 1 + Method 3 works too (dciman32.dll + rename dmcr.exe to e.g. dmcr_.exe), if you don't mind skipping the intro videos, since you'd have to use dmcr_.exe to launch the game. Again, this needs the original mdraw.dll file, otherwise the mouse cursor is frozen in menus.
Post edited April 11, 2021 by narzoul
avatar
narzoul: It turned out that DDrawCompat v0.3.0 does work with European Wars too, if you use Method 4 (ddraw.dll + dmcr.exe.manifest + update timestamp of dmcr.exe). You have to use the original mdraw.dll file.

Alternatively, a combination of Method 1 + Method 3 works too (dciman32.dll + rename dmcr.exe to e.g. dmcr_.exe), if you don't mind skipping the intro videos, since you'd have to use dmcr_.exe to launch the game. Again, this needs the original mdraw.dll file, otherwise the mouse cursor is frozen in menus.
I appreciate all the work you're doing in response. I will be testing out your latest suggestions, seeing how it works out and generating logs. You're correct about my resolution issues, the lowest my system will go for normal Windows operations is 1152x864, although I have no trouble running things in lower resolutions with programs like Retroarch, and the Cossacks 1 series works for the most part at 1024x768 aside from the menu mouse glitches, when I use the dgVoodoo 2 drivers.
Post edited April 11, 2021 by Derpowitz
If resolution is the issue, then DDrawCompat won't help you, since it doesn't have any built-in resolution scaling (yet). Maybe you can add 1024x768 as a custom resolution in your graphics driver settings.

I don't have menu mouse glitches with dgVoodoo. Have you tried different scaling modes in its control panel?
I'm not really familiar with its configuration though, you might be able to get more help with it at its own forum: https://www.vogons.org/viewforum.php?f=59
avatar
narzoul: If resolution is the issue, then DDrawCompat won't help you, since it doesn't have any built-in resolution scaling (yet). Maybe you can add 1024x768 as a custom resolution in your graphics driver settings.

I don't have menu mouse glitches with dgVoodoo. Have you tried different scaling modes in its control panel?
I'm not really familiar with its configuration though, you might be able to get more help with it at its own forum: https://www.vogons.org/viewforum.php?f=59
Sorry for the delay in testing and replying, your quickness in responding and trying things out has been truly amazing and I appreciate it HUGELY. I attempted to run Cossacks European Wars with your compatibility patch, installed using Method #4 as recommended, and I believe I did it correctly because it made a significant change to the game's behaviour, but all I got was a black screen and the same DirectDraw error message. Regarding what I mentioned earlier as an "interesting" result, I had tried to use your driver as a direct substitute for mdraw.dll and if I recall correctly I got a black window with the game music or something like this, but I don't think it's really relevant to solving the problem.

If you're able to add resolution scaling into your patch I guess that would probably resolve all of these issues and be the best possible solution short of GOG implementing it in the official release, but for the meantime I will be doing more testing with dgVoodoo 2 (and possibly DxWnd if I get stuck). I did mention that there were some settings in dgVoodoo 2 for me to play with which I haven't had a chance to learn yet, but I appreciate the link and it looks very useful (I was aware of that site before but I thought it was just for DOSbox stuff).

I will continue my testing and report when I have something new of interest, let me know if there's something specific you'd like me to try. I'm trying to focus on Cossacks European Wars at the moment but I have all the other Cossacks and American Conquest games both on GOG and Steam, so I'm happy to volunteer.
Hey narzoul, before I proceed with further testing (including a recommendation from GOG support to try clean-booting, which I will do shortly), I thought I should mention that when I used your ddraw.dll drivers and named the manifest file etc., a log file was output named "DDrawCompat-dmcr.log"

Here's the content:

9ff4 00:48:02.365 Process path: D:\Program Files (x86)\GOG Galaxy\Games\Cossacks - European Wars\dmcr.exe
9ff4 00:48:02.365 Environment variable __COMPAT_LAYER = "HighDpiAware"
9ff4 00:48:02.365 Loading DDrawCompat dynamically from D:\Program Files (x86)\GOG Galaxy\Games\Cossacks - European Wars\DDRAW.dll
9ff4 00:48:02.453 DDrawCompat loaded successfully
9ff4 00:48:02.469 Installing display mode hooks
9ff4 00:48:02.481 Installing registry hooks
9ff4 00:48:02.481 Installing Direct3D driver hooks
9ff4 00:48:02.482 Installing Win32 hooks
9ff4 00:48:02.499 Hooking user mode display driver: C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_84ac76b659e5ce8f\igdumdim32.dll+0xb020
9ff4 00:48:02.553 Dynamic vertex buffers are not available
9ff4 00:48:02.553 Dynamic index buffers are not available
9ff4 00:48:02.560 Checking source color key support: passed
9ff4 00:48:02.564 Installing DirectDraw hooks
9ff4 00:48:02.571 Installing Direct3D hooks
9ff4 00:48:02.585 Installing GDI hooks
9ff4 00:48:02.605 Finished installing hooks
9ff4 00:48:39.431 DDrawCompat detached successfully


I presume the dynamic vertex and index buffer unavailability is where the DirectDraw error 80004001 kicks in.
Post edited April 13, 2021 by Derpowitz
Update:

I believe I now have Cossacks European Wars working 100% on my system, at all available game resolutions, using the method of replacing mdraw.dll with the renamed ddraw.dll from dgVoodoo 2 and additionally making a small adjustment to dgVoodoo's default settings using an accompanying config file. I'll post the whole procedure once I've finished testing this fix with the remaining GSC games on GOG and Steam as well as testing the latest email recommendations from GOG support staff. For the sake of completeness I'll also try to test narzoul's drivers to see if they'll work on my system with the other games.
No, dynamic vertex and index buffers are optional, and aren't relevant for 2D games anyway. The 80004001 error is most likely because of the failure to switch resolution to 1024x768. You can use the ReleaseWithDebugLogs build to confirm it, but I already tested this scenario and got the exact same error message, so I'm pretty sure about it.

Adding resolution scaling to DDrawCompat is planned, but it'll probably take a few months until it's there. I don't think the other games will work without it either, since at least their main menu resolution should be around the same.
I just want to update that I didn't have much time to test anything over the last few days and thus I didn't post anything. I have Cossacks Art of War and European Wars working on Steam just like on GOG using dgVoodoo 2, but the Steam version of Back to War doesn't have any game directory mdraw.dll or ddraw.dll files, so I'm about to attempt Narzoul's manifest trick to see if I can force the game to use the dgVoodoo drivers as a substitute to the defaults.

Once I'm finished testing these basic tricks, I plan to test a community patch suggested by the GOG staff and possibly to produce an output log using Narzoul's DDrawCompat drivers with the debugging features enabled, as well as seeing about getting the American Conquest videos playing properly with dgVoodoo 2.