|
|
Line 11: |
Line 11: |
| #* '''DirectDraw''' uses the following system DLL file: {{file|ddraw.dll}}. | | #* '''DirectDraw''' uses the following system DLL file: {{file|ddraw.dll}}. |
| #* Older games could often combine the use of render APIs, and might use both Direct3D (e.g. 3D rendering) and DirectDraw (e.g. video playback). | | #* Older games could often combine the use of render APIs, and might use both Direct3D (e.g. 3D rendering) and DirectDraw (e.g. video playback). |
− |
| |
| # Use a tool such as [https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer Process Explorer] to identify loaded DLL files of the game process while the game is running: | | # Use a tool such as [https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer Process Explorer] to identify loaded DLL files of the game process while the game is running: |
| #* Does the game load {{file|d3dim700.dll}}? The game uses '''Direct3D 7'''. | | #* Does the game load {{file|d3dim700.dll}}? The game uses '''Direct3D 7'''. |
Revision as of 00:26, 6 April 2024
Direct3D versions
DirectDraw is an obsolete 2D rendering API from Microsoft that was used by game developers mainly before the release of Direct3D 8.
Determine the Direct3D/DirectDraw version for older games
This section is only applicable for DirectDraw and Direct3D 7 or older. For newer render APIs, use a tool such as MSI Afterburner or Special K.
Identify the render API being used:
|
- Note the following before proceeding with the below instructions:
- Direct3D 7 uses the following system DLL files:
ddraw.dll , and d3dim700.dll .
- Direct3D 2-6 use the following system DLL files:
ddraw.dll , and d3dim.dll .
- DirectDraw uses the following system DLL file:
ddraw.dll .
- Older games could often combine the use of render APIs, and might use both Direct3D (e.g. 3D rendering) and DirectDraw (e.g. video playback).
- Use a tool such as Process Explorer to identify loaded DLL files of the game process while the game is running:
- Does the game load
d3dim700.dll ? The game uses Direct3D 7.
- Does the game load
d3dim.dll ? The game uses Direct3D 2-6, and a tool such as dgVoodoo must be used for tracing the API calls to determine the exact version.
- Does the game load
ddraw.dll only? The game uses DirectDraw 1-7, and a tool such as dgVoodoo must be used for tracing the API calls to determine the exact version.
- Does the game load both
d3dim.dll and d3dim700.dll ? The game potential uses one for rendering and the other for other purposes. A tool such as dgVoodoo must be used for tracing the API calls to determine which is used for rendering the game.
- Does a 2D game load
d3dim700.dll , despite having 2D graphics? Possible cases are:
- Direct3D 7 is used to render certain effects which are not possible with DirectDraw alone.
- The game might not be utilizing Direct3D 7 in any meaningful capacity at all.
d3dim700.dll is possibly loaded as a result of a developer mistake, or using dev tools that added the DLL as a dependency by default.
- Note that
ddraw.dll is always loaded alongside d3dim.dll and d3dim700.dll , since Direct3D 2-7 require DirectDraw to be able to function.
If dgVoodoo needs to be used, do the following procedure to trace the calls:
- Some games might refuse to load dgVoodoo's
DDraw.dll from their folder. Apply this workaround.
- Download the debug build (named as
(spec release with Debug Layer) ) of dgVoodoo2, and also download DebugView or DebugView++ .
- Apply the dgvoodoo files to the game per the usual method in the guide.
- In the game folder, run
dgVoodooCpl.exe , right-click on the dgVoodoo banner, and enable Show all sections of the configuration .
- Open the last tab,
Debug , and set Maximum trace level to +Additional trace info for internals .
- Run
DebugView or DebugView++ and keep it running. Make sure its window is empty before launching the game.
- Launch the game, start a new game and proceed until you reach in-game graphics.
- Exit the game and check
DebugView or DebugView++ .
You should see a list of interfaces sorted by time. Determine the Direct3D or DirectDraw version using the following tables:
- There is no Direct3D 4 or DirectDraw 4, since DirectX 4 was canceled and never released.
Direct3D version | Interfaces
-----------------|-----------------------------
2/3 | Direct3D, Direct3DDevice
5 | Direct3D2, Direct3DDevice2
6 | Direct3D3, Direct3DDevice3
7 | Direct3D7, Direct3DDevice7
DirectDraw version | Interfaces
-------------------|---------------------------
1 | DirectDraw, DirectDrawSurface
2/3 | DirectDraw2, DirectDrawSurface2
5 | DirectDraw2, DirectDrawSurface3
6 | DirectDraw4, DirectDrawSurface4
7 | DirectDraw7, DirectDrawSurface7
- Direct3D 2 and 3, and DirectDraw 2 and 3, use the exact same interfaces. As a result they cannot be distinguished by interfaces. For these cases use the DirectX version listed in requirements or readme, or the version of the DirectX installer shipped with the original release of the game.
- DirectDraw 2/3 and 5 use the identically named
DirectDraw2 interface. To distinguish between the two check the name of the DirectDrawSurface interface.
- If you have trouble determining the exact DirectDraw version, simply write
true in the directdraw versions field on the wiki page.
|