Spinorial: This thread aims to explain the problems people face when trying to run Commandos 3 under Windows 8/8.1 (and possibly future versions), provide some limited solutions, and offer further avenues of improving the player's experience.
I consider this a WORK IN PROGRESS! Please, TEST these solutions, REPORT any problems, SUGGEST and TEST any additional improvements you think of!
Symptoms Running the game on Windows 8 is known to cause graphical corruption in certain situations, in particular the sniper lens, the level loading screen, and possibly others. See
fig.1. In some situations, this makes the game practically unplayable.
Diagnosis (Disclaimer: This is me talking out of my posterior, going on rough understanding of others' explanations. I am
not responsible for your thesis being rejected because you decided that I know what I'm talking about. Though I think I'm on the money, mostly. If you know better, do share!)
This corruption results from certain incompatibilities of the latest Microsoft OS with 16-bit High Colour graphics, such as those used by Commandos. Specifically, in order to incorporate the new Metro interface seamlessly into Windows, Microsoft has permanently enabled Desktop Composition, a.k.a. Aero, and thus has to remove the option of setting global colour depth to anything other than 32-bit True Colour. This also removed the option of using the old "Disable Desktop Composition" compatibility option, which was a universal panacea for many older games to run under Windows Vista and 7.
Now, Microsoft weren't entirely oblivious to the problems this change would cause and included another compatibility setting: Reduced colour mode (
fig.2). This works quite well for most games that use High Colour, with one significant caveat:
the game must be run in a window. Full-screen High Colour emulation appears to work through other means, and doesn't really deal with the incompatibilities. If a game runs in High Colour, this can affect it in different ways. Old two-dimensional DirectDraw titles can become extremely laggy, with very low framerates and responsiveness; Direct3D titles (like Commandos 3) can experience graphical corruption; these effects are possibly not exclusive, or may be entirely absent - depends.
Thus, the solutions appears to be quite straightforward:
Run Commandos 3 in Windowed mode! Complications Commandos 3 doesn't have a windowed mode.
Neither did its predecessor, come to think of it, but it was a mere matter of modifying a config file, and it works without a hitch. At this point, there is no known native way to implement this feature, neither through modifying configuration files, nor through editing the binary executable itself.
There are, fortunately, ways to force games to render in a window. These require external applications and work on a case-by-case basis. Popular options include, DxWnd, D3DWindower, or 3D Analyzer. I have only had success using D3DWindower, but it might be possible to accomplish this through other means.
Solution 1. Download D3D Windower and unpack it to your Commandos 3 folder:
Japanese Original:
http://www.geocities.jp/menopem/D3DWindower.lzh MD5: 9da511a067880f7410a866ee07f9aa3f
English Translations:
Version 1 MD5: b5eff19dfc41728936598008f436cd73
Version 2 MD5: 3a1de7771f274cc54c5196b022c64d68 - This is the version I've been using; it works identically to the Japanese one.
2. Open the Commandos3.exe properties window and under the "Compatibility" tab enable Reduced colour mode and set it to 16-bit, as shown in
fig.2. If Commandos3.exe is set to run with Administrative privileges (as it is by default), you will need to give the same privileges to D3DWindower.exe. Alternatively, if Commandos is installed outside of Program Files or any other protected folder (as it is by default), you should be able to revoke its Administrative privileges without any problems;
3. Open D3DWindower.exe. Here's a quick overview of what the toolbar buttons do:
First two buttons: Activate/Deactivate Emulation. They don't appear to work, at least not under Windows 8. We need not bother with them;
Middle two buttons: Add/Remove Program. They add and and remove programs from the list below;
Last three buttons: Run Program, Program Options, Open Folder. Again, fairly obvious. More detail about Options will be given below;
4. Click the Add Program (+) button, browse to the location of Commandos3.exe, add it to the list;
5. Select Commandos3 on the list, and click the Program Options button. Set these up as shown in
fig.3. The FPS counter is optional, but the Cursor settings are necessary to make clicks register properly and mouse scrolling to work;
6. Click the Run Program button. Commandos 3 should start without issue, in a window;
7. Alt-Tab back to D3DWindower (or another active window), then drag the Commandos 3 window to the top-left corner of the screen.
N.B. This step is necessary because otherwise the mouse disappears in the left-most portion of the game window. You need to Alt-Tab out of the game because the Cursor Clip setting (
fig.3) prevents the mouse from leaving the in-game window. Once you've fit the window snugly into the top-left corner, the mouse should work without any issues.
Done! You are now ready to play Commandos 3, in a window, without any graphical corruption. Still, with the game's native resolution at 800x600, plus the need to keep it in a corner of the screen, it might be a little small and inconvenient to play. Thus, there is
some room for improvement.
Commentary: The D3DWindower Program Options button (refer to
fig.3)
The Program Options button contains the bulk of the D3DWindower functionality. Here's a brief review some of its settings, tab by tab.
Common Tab
- The Height and Width settings can force the resolution of the game window. When 0, they let the game determine the parameters; otherwise, if they do not match the game's output, they will stretch or squeeze the image. Be wary, as the program's scaling algorithm is rudimentary and an upscaled image is of very low quality.
- The command line allows you to add any parameters you wish to the executable, that you might instead have on a shortcut.
- The DLL path could point to the D3dHook.dll, if it is not in the same folder as D3DWindower.exe. Note, however, that this doesn't appear to work properly, and the library should be kept together with the program.
- Background Resize reduces the size of the window while it is in the background.
- I have no idea what MenuID or Background Priority do.
Window Mode Tab
- The top line determines which of the three renderers should be used to produce the image. For our purposes, only Direct3D matters. For other games, in particular 2D ones, the other options should come in handy.
- The rest of the options pertain entirely to DirectDraw. Adjust these to run 2D games in a window.
Foreground Control Tab
- Using Foreground Control allows the program to continue running while focus is on another window, e.g. while you've Alt-Tabbed out of it. Not a particularly good idea for Commandos.
- I can not tell what adjusting the other options does.
Direct Input Tab
- Cursor Clip restricts the mouse to the game window. It is useful when you want to have functional edge-scrolling, but it means you need to Alt-Tab out of the window to access other windows or even to move the game window.
- GetCursorPos allows mouse clicks to coincide with the position of the mouse pointer. Cursor Message has the same effect, and I'm not sure what the specific difference between the two options is.
- The other settings seem to have specific and identifiable functions, though they didn't produce any results in my test with Commandos 3. Nevertheless, they are likely highly dependent on the game in question and should be adjusted freely to produce the most desirable mouse behaviour.
Please note, everything I've learned about these came from my limited experience in preparing this guide. Feel free, nay, encouraged to test these out and observe their effects.
It is very possible that there are better ways to set Commandos 3 up, that I have not been able to find. If you find such, please post them here! no longer exists. Is there a new location available for this file?
This is version 1.88, but the hash code is equivalent to 3a1de7771f274cc54c5196b022c64d68, as provided in the original post to this topic.