Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Difference between revisions of "User:Eddman"

From PCGamingWiki, the wiki about fixing PC games
Line 17: Line 17:
 
If [[dgVoodoo]] needs to be used, do the following procedure to trace the calls:
 
If [[dgVoodoo]] needs to be used, do the following procedure to trace the calls:
  
Download the debug build (named as (spec release with Debug Layer)) of dgVoodoo2, and also download DebugView or DebugView++.
+
#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 (https://www.pcgamingwiki.com/wiki/DgVoodoo_2)
+
#Apply the dgvoodoo files to the game per the usual method, as mentioned in the guide.
In the game folder, run dgVoodooCpl.exe, right-click on the "dgVoodoo" banner, and enable "Show all sections of the configuration".
+
#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".
+
#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.
+
#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.
+
#Launch the game, start a new game and proceed until you reach in-game graphics.
Exit the game and check DebugView or DebugView++.
+
#Exit the game and check DebugView or DebugView++.
  
 
You'd see a long list of interfaces sorted by time. Determine the Direct3D or DirectDraw version using the following table:
 
You'd see a long list of interfaces sorted by time. Determine the Direct3D or DirectDraw version using the following table:

Revision as of 18:26, 5 April 2024

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:
  1. 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 uses the following DLL files: ddraw.dll, and d3dim.dll.
    • DirectDraw uses the following DLL files: 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).
  2. Use a tool such as Process Explorer to identify loaded DLL files of the game process while the game is running:
    • Does the game make use of d3dim700.dll? This means that the game makes use of Direct3D 7.
    • Does the game make use of d3dim.dll? This means that the game makes use of Direct3D 2-6, and a tool such as dgVoodoo would need to be used to determine the exact version by tracing the API calls.
    • Does the game make use of ddraw.dll only? This means that the game makes use of DirectDraw 1-7, and a tool such as dgVoodoo would need to be used to determine the exact version by tracing the API calls.
If you see a game loading both d3dim.dll and d3dim700.dll, you'd need to trace the calls to determine the version.
You might see some 2D games load d3dim700.dll, despite being a 2D game. These require a closer inspection of the calls to determine the cause. In some cases Direct3D 7 is used in these games to render certain effects which are not possible with DirectDraw alone.

In some other cases, the game might not be utilizing Direct3D 7 at all and simply loading d3dim700.dll, possibly as a result of a developer mistake.

If dgVoodoo needs to be used, do the following procedure to trace the calls:

  1. Download the debug build (named as (spec release with Debug Layer)) of dgVoodoo2, and also download DebugView or DebugView++.
  2. Apply the dgvoodoo files to the game per the usual method, as mentioned in the guide.
  3. In the game folder, run dgVoodooCpl.exe, right-click on the "dgVoodoo" banner, and enable "Show all sections of the configuration".
  4. Open the last tab, "Debug", and set "Maximum trace level" to "+Additional trace info for internals".
  5. Run DebugView or DebugView++ and keep it running. Make sure its window is empty before launching the game.
  6. Launch the game, start a new game and proceed until you reach in-game graphics.
  7. Exit the game and check DebugView or DebugView++.

You'd see a long list of interfaces sorted by time. Determine the Direct3D or DirectDraw version using the following table:

Direct3D

2/3 = Direct3D,    Direct3DDevice
5   = Direct3D2,   Direct3DDevice2
6   = Direct3D3,   Direct3DDevice3
7   = Direct3D7,   Direct3DDevice7

DirectDraw

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.