Skip to content

DirectDraw to Direct3D9 Conversion

Elisha Riedlinger edited this page Aug 13, 2020 · 40 revisions

Dd7to9 Introduction

Over the past couple of years I have been working on creating a feature to be able to convert ddraw's DirectDraw/Direct3D to Direct3D 9 (d3d9). The goal of this project is to fix compatibility issues with older games that use ddraw, as well allowing these games to use newer tools that require Direct3D 9 or higher.

The feature is built in dxwrapper and is called Dd7to9. So far most of the DirectDraw APIs have been implemented, while only a handfull of the Direct3D APIs have been implemented.

Note: To view the status of the DirectDraw to Direct3D9 Conversion check out the Status Page.

Installation

To use this feature you can do the following:

  1. Download the latest dxwrapper release.
  2. Extract ddraw.dll, dxwrapper.dll and dxwrapper.ini files from the release and copy it to the game folder.
  3. Open the dxwrapper.ini file and enable the Dd7to9 feature.
  4. Disable all application compatibility setting in the application.
  5. Start the game and enjoy.

Troubleshooting

If you run into issues try the following things:

  • If the game is running in a window and graphics look messed up, try:
    • disable in-game windowed mode and use fullscreen. Dd7to9 does not fully support in-game windowed mode for many games.
    • enabling FullscreenWindowMode. Some older games may not have a fullscreen option, using this option may override the game and set it to fullscreen.
  • If the movies/videos are not showing up or just displaying as black, try:
    • enabling FullscreenWindowMode. Some older games use a mixture of GDI and ddraw. With Direct3D 9 a surface can only be shared with GDI when using windowed mode.
  • If the game crashes after alt+tab, try:
    • enabling the DdrawEmulateSurface. This preserves the surface memory to fix bugs in some older games.
  • If the game crashes, try:
    • enabling the DdrawEmulateSurface. This preserves the surface memory to fix bugs in some older games.
    • enabling the SingleProcAffinity. Some games are not properly synchronized to run on multiple CPU cores, or simply don't properly handle powerful CPUs.
    • setting DdrawLimitDisplayModeCount to a value between 32 and 145. Some older games cannot handle a large number of display mode options.
    • enabling the HandleExceptions. This option tries to fix several common exceptions, such as the divide by zero exception in old games that were trying to calculate the CPU speed.
    • running the game with administrator rights. Some older games require admin rights to function properly.
    • making sure you are using the software rendering and not 3D rendering, if the game supports it. Currently this only works with the 2D APIs. Some games only support 3D rendering and won't work with this feature.

Supported Games

Game Notes Support
Abe's Oddysee Requires DdrawEmulateSurface to allow alt+tab Full
Age of Wonders: Shadow Magic Only works if Direct3D is disabled Full
Age of Wonders 2 Only works if Direct3D is disabled Full
Alien Nations Requires "Hardware Accelerator" option to be disabled Full
Anno 1602: Creation of a New World Full
Arcanum Of Steamworks and Magick Obscura Full
Atlantis: The Lost Tales (DirectDraw1) Textures on faces missing Partial
Atlantis 2: Beyond Atlantis Full
Atlantis 3: The New World May require running with admin rights on some systems Full
Caesar 3 Requires UseNativeResolution Full
Call To Power 2 Intro video just shows black screen Partial
Castle Adventure Full
Chris Sawyer's Locomotion Full
Close Combat 2 Full
Close Combat 3 Full
Close Combat 4 Full
Close Combat 5 Full
Command & Conquer Gold Full
Command & Conquer: Tiberian Sun Full
Command & Conquer: Red Alert Full
Command & Conquer: Red Alert 2 Full
Commandos 2 Full
Commandos BCD Full
Creatures 2: The Albian Years Requires enabling DdrawWriteToGDI and setting DdrawOverrideBitMode to 16 Full
Creatures 3: Exodus Requires enabling DdrawWriteToGDI and setting DdrawOverrideBitMode to 16 Full
Dark Reign Full
Deus Full
DOSBox Full
Diablo Corrupted images in menu, requires DdrawEmulateSurface to prevent crashing on some systems Full
Diablo Hellfire Recommended to enable DdrawEmulateSurface Full
Diablo Spawn Recommended to enable DdrawEmulateSurface Full
Digger XP Full
Dune 2000 Requires FullscreenWindowMode for mouse cursor to work Full
Geneforge Saga 1 Full
Geneforge Saga 2 Full
Geneforge Saga 3 Full
Geneforge Saga 4 Full
Heroes of Might & Magic 3 Full
Heroes of Might & Magic 4 Requires fullscreen mode in game settings Full
Invictus: In the Shadow of Olympus Full
Jagged Alliance 2 Full
Jagged Alliance 2: Unfinished Business Full
Jagged Alliance 2: Wildfire Full
Jazz Jackrabbit 2 Full
King's Quest 8 Requires running in DirectDraw (Software) mode, can be configured by modifying Options.cs and setting this line assignGModeName Software Full
Konung 1 Requires FullscreenWindowMode for movies Full
Konung 2 Requires FullscreenWindowMode for movies Full
Lionheart: Legacy of the Crusader Full
Majesty Gold HD Requires windowed mode to be disabled in the MajXPrefs under %userprofile%\Documents\My Games\MajestyHD\ Full
Metal Gear Solid Full
Moto Racer Requires "DirectX 3D" option disabled and EnableVSync enabled to slow down menu animation Full
Moto Racer 2 Full
Nethergate Resurrection Part of the background is cut off on some of the menus when starting a new game Partial
Outlaws + A Handful of Missions Full
Pacific General Full
Patrician 3 Requires running in Windows 7 compatibility mode with admin rights and setting DdrawLimitDisplayModeCount to 145 Full
Pax Imperia Eminent Domain Full
Populous: The Beginning Requires the non-3D version and DdrawEmulateSurface, videos are not clear Partial
Pro Pinball Big Race USA Full
Pro Pinball Fantastic Journey Full
Rage of Mages Full
Rage of Mages II Full
Return of TIM Full
Runaway: A Road Adventure Full
Septerra Core Recommended to enable DdrawEmulateSurface Full
SimCity 3000 Landscape is missing items Partial
SimCopter Requires FullscreenWindowMode for intro movies Full
Shogo Requires software rendering and DdrawEmulateSurface Full
Star Wars: Galactic Battlegrounds Full
Star Wars: Jedi Knight Dark Forces 2 Requires 3D acceleration disabled and if using GOG version requires launching JK directly and bypassing GOG Full
Star Wars: Jedi Knight Mysteries of the Sith Requires 3D acceleration disabled and if using GOG version requires launching JK directly and bypassing GOG Full
Star Wars: X-Wing vs TIE Fighter Requires Power VR 3D Card to be disabled Full
StarCraft Full
StarCraft: Broodwars Full
Stronghold Note: if display looks messed up in the game try changing the resolution. Full
Stronghold Crusader Note: if display looks messed up in the game try changing the resolution. Full
Stronghold Crusader Extreme HD Note: if display looks messed up in the game try changing the resolution. Full
Stronghold HD Note: if display looks messed up in the game try changing the resolution. Full
Throne of Darkness Full
TIM Even More Contraptions Full
Total Annihilation Full
War Wind Full
War Wind II Minor corruption in the intro video Full
Warcraft 2 Full
WarGames Requires "Software Rasterizer" and SingleProcAffinity Full
Warhammer 40K: Final Liberation Requires DdrawEmulateSurface Full
Warhammer 40K: Rites of War Full
Warlords Battlecry Full
Warlords Battlecry 2 Full
Warlords Battlecry 3 Crashes when clicking More Info Partial
WinQuake Does not work with in-game windowed mode Full
Worms 2 Full
Worms Armageddon Full
Zeus and Poseidon Requires UseNativeResolution Partial

Note: To view the status of the DirectDraw to Direct3D9 conversion check out the Status Page.

Clone this wiki locally