Difference between revisions of "User:Eddman"
m |
m |
||
Line 146: | Line 146: | ||
{{ii}}Each subsequent version also includes the previous interfaces, e.g. '''DirectDraw 6''' includes <code>GetDDInterface</code>. | {{ii}}Each subsequent version also includes the previous interfaces, e.g. '''DirectDraw 6''' includes <code>GetDDInterface</code>. | ||
− | {{ii}}If you have trouble determining the exact DirectDraw version, simply write <code>true</code> in the <code>directdraw versions</code> field on the wiki page.<br>An example would be mixed usage of interfaces, e.g. | + | {{ii}}If you have trouble determining the exact DirectDraw version, simply write <code>true</code> in the <code>directdraw versions</code> field on the wiki page.<br>An example would be mixed usage of interfaces, e.g. <code>DirectDraw2</code> with <code>DirectDrawSurface</code> and no sign of <code>DirectDrawSurface2</code>. Technically the version would be DirectDraw 2, but it's recommended to set it to <code>true</code> to avoid a possible misidentification. |
{{ii}}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. | {{ii}}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. |
Revision as of 13:20, 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.
DirectDraw versions
DirectDraw is an obsolete 2D rendering API from Microsoft that was used by game developers mainly before the release of Direct3D 8. To determine the exact version of DirectDraw being used by a game, a more in-depth investigation needs to be performed by tracing the API calls with dgVoodoo 2 (see Determine the Direct3D/DirectDraw version for older games).
Determine the Direct3D/DirectDraw version for older games
This section is applicable for DirectDraw and Direct3D 7 or older. Although these methods can be used for Direct3D 8-9, using a tool such as MSI Afterburner or Special K is recommended.
Identify the render API being used: |
---|
Use a tool such as Process Explorer to identify the loaded DLL files of the game process while the game is running:
If dgVoodoo 2 needs to be used, perform the following procedure to trace the calls:
You should see a list of interfaces sorted by time. Determine the Direct3D or DirectDraw version using the following tables:
Direct3D version | Interfaces -----------------|--------------------------------------- 2/3 | Direct3D | Direct3DDevice ......................................................... 5 | Direct3D2 | Direct3D2::CreateDevice | | Direct3DDevice2 | Direct3DDevice2::SetCurrentViewport | Direct3DDevice2::GetCurrentViewport | Direct3DDevice2::SetRenderTarget | Direct3DDevice2::GetRenderTarget | Direct3DDevice2::Begin | Direct3DDevice2::BeginIndexed | Direct3DDevice2::Vertex | Direct3DDevice2::Index | Direct3DDevice2::End | Direct3DDevice2::GetRenderState | Direct3DDevice2::SetRenderState | Direct3DDevice2::GetLightState | Direct3DDevice2::SetLightState | Direct3DDevice2::SetTransform | Direct3DDevice2::GetTransform | Direct3DDevice2::MultiplyTransform | Direct3DDevice2::DrawPrimitive | Direct3DDevice2::DrawIndexedPrimitive | Direct3DDevice2::SetClipStatus | Direct3DDevice2::GetClipStatus | | Direct3DRampDevice | Direct3DRGBDevice | Direct3DHALDevice | Direct3DMMXDevice | Direct3DMaterial2 | Direct3DTexture2 | Direct3DViewport2 ......................................................... 6 | Direct3D3 | Direct3D3::CreateVertexBuffer | Direct3D3::EnumZBufferFormats | Direct3D3::EvictManagedTextures | | Direct3DDevice3 | Direct3DDevice3::DrawPrimitiveStrided | Direct3DDevice3::DrawIndexedPrimitiveStrided | Direct3DDevice3::DrawPrimitiveVB | Direct3DDevice3::DrawIndexedPrimitiveVB | Direct3DDevice3::ComputeSphereVisibility | Direct3DDevice3::GetTexture | Direct3DDevice3::SetTexture | Direct3DDevice3::GetTextureStageState | Direct3DDevice3::SetTextureStageState | Direct3DDevice3::ValidateDevice | | Direct3DRefDevice | Direct3DNullDevice | Direct3DMaterial3 | Direct3DViewport3 | Direct3DVertexBuffer ......................................................... 7 | Direct3D7 | Direct3DDevice7 DirectDraw version | Interfaces -------------------|------------------------------------- 1 | DirectDraw | DirectDrawSurface ......................................................... 2/3 | DirectDraw2 | DirectDraw2::GetAvailableVidMem | | DirectDrawSurface2 | DirectDrawSurface2::GetDDInterface | DirectDrawSurface2::PageLock | DirectDrawSurface2::PageUnlock ......................................................... 5 | DirectDrawSurface3 | DirectDrawSurface3::SetSurfaceDesc | | DirectDrawColorControl ......................................................... 6 | DirectDraw4 | DirectDraw4::GetSurfaceFromDC | DirectDraw4::RestoreAllSurfaces | DirectDraw4::TestCooperativeLevel | DirectDraw4::GetDeviceIdentifier | | DirectDrawSurface4 | DirectDrawSurface4::SetPrivateData | DirectDrawSurface4::GetPrivateData | DirectDrawSurface4::FreePrivateData | DirectDrawSurface4::GetUniquenessValue | DirectDrawSurface4::ChangeUniquenessValue ......................................................... 7 | DirectDraw7 | DirectDraw7::StartModeTest | DirectDraw7::EvaluateMode | | DirectDrawSurface7 | DirectDrawSurface7::SetPriority | DirectDrawSurface7::GetPriority | DirectDrawSurface7::SetLOD | DirectDrawSurface7::GetLOD
|