Skip to content

Star Trek Armada 1

Elisha Riedlinger edited this page Mar 17, 2024 · 6 revisions

Star Trek Armada 1

Status

Supported on Windows 10/11

I am using the retail CD version of Star Trek Armada 1 (upgraded to version 1.3)

Patch updated: March 16th, 2024

Problem

The first problem I had with Star Trek Armada 1 was that it crashed when I tried to run it on Windows 10. Then once I got it to run I could not get it to run in high resolution. The game was stuck at 640x480 resolution.

Star Trek Armada 1 crash

Initial Solution

I created a DirectDraw wrapper that allows me to intercept DirectX7 APIs. A while ago I was troubleshooting the issue I found a bug in Microsoft's implementation of ddraw. Apparently it was introduced in Windows 8.0, and still exists in the latest version of Windows 10.

The issue happens when an application calls SetCooperativeLevel and set the exclusive flag on a particular window and then later the window closes without releasing the exclusive flag. In ddraw the exclusive flag remains set on the handle to window, even though the window does not exist. At this point any call to make another window exclusive will fail, since ddraw still sees the first window as exclusive. If you try to clear the exclusive flag on the first window ddraw will not let you since the window no longer exists. Therefore there is no way to clear the exclusive flag or make any other window have exclusive access. The result is that both games crash on launch. Note: this issue happens with both Star Trek Armada 1 and 2.

I put a fix for this in my code see here. Basically I set a window hook callback when window is closing. This way I can clear the exclusive flag before the window closes, since it does not make sense to have an exclusive flag set on a closed window.

However there were still some missing animations in the menu screen. After running a few tests I found out that enabling DDrawCompat solved that problem.

Current Solution

The current solution no longer requires DDrawCompat. Instead I am using Dd7to9, which is able to convert the DirectDraw/Direct3D APIs to Direct3D 9.

This fix allows Star Trek Armada 1 and 2 be fully functional on Windows 10/11.

Star Trek Armada 1 1920x1080

Installation

In order to install the Windows 10/11 patch for Star Trek Armada 1 you can follow these steps:

  1. Make sure you have installed both Armada patch 1.2 and Armada patch 1.3. Patch 1.2 needs to be installed first.
  2. Download the fix below.
  3. Unzip the files to your Star Trek Armada 1 installation folder (where the Armada.exe file exists).
  4. Start the game and enjoy!

If you run into issues check the compatibility settings. I am running with the following compatibility settings:

Compatibility Settings

Download

Here is the Download for the patch to fix Star Trek Armada 1 on Windows 10/11.

This download contains 3 files:

  • ddraw.dll
  • dxwrapper.dll
  • dxwrapper.ini