VOGONS

Common searches


First post, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

The game was released in 1997 by Eidos Interactive. But it had gone unplayable on Windows NT, for ages. It was finally fixed in 2020, but I am writing this 3 years later with more clarity.

Why did the game fail to run?

The game relied on the use of VGA registers. This appears to be something that Windows NT doesn't allow, or Windows XP+ doesn't allow, where I tested the game. Running a debug session through DxWnd revealed:

DxWExceptionHandler: exception code=0xc0000096 subcode=0 flags=0 addr=0xcca783
DxWExceptionHandler: DAC WRITE port=0x3D4 eax=0x38 AL=38
DxWExceptionHandler: NOP opcode=EE len=1
DxWExceptionHandler: exception code=0xc0000096 subcode=0 flags=0 addr=0xcca78b
DxWExceptionHandler: DAC READ port=0x3d5 eax=0
DxWExceptionHandler: exception code=0xc0000096 subcode=0 flags=0 addr=0xcca78b
DxWExceptionHandler: DAC READ port=0x3d5 eax=0

The game appears to be reading and writing from 0x3D5 and 0x3D4 ports. This is what causes the initial crash as it is not permitted by Windows.

How to run the game?

The first part is to handle the VGA registers part with DxWnd.

The following settings are required through DxWnd "at minimum" to fix the startup crash problem-
GDI/Synchronize GDI to ddraw palette
Compat./Handle Exceptions

This should let the game to start and run.

The second part of the problem is in the HAL renderer, as well as the Ramp (Software) renderer. MMX mode is not bugged as of now.

HAL processing is bugged due to Windows or DxWnd. This will cause the game to crash if you turn left or right or when changing viewing perspective in mission perspectives. The easiest way to fix the HAL mode (or Hardware Card mode) is to use dgVoodoo2 (testing on 2.05.81).

Ramp processing is bugged on Windows 10 1809+. This includes Windows 11 as well. To fix this, copy "d3dim.dll" from an older Windows version (tested with d3dim.dll from Win10 1803).

The Ramp and MMX mode will be beneficial if dgVoodoo2 is not supported on the system or runs slow there.

Hopefully this helps users to play the game.

previously known as Discrete_BOB_058