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 "PCGamingWiki:Editing guide/Other information"

From PCGamingWiki, the wiki about fixing PC games
m (→‎API table: fixed the infobox link)
(various critical rewrites related to d3d versions + added the "Determine Direct3D/DirectDraw version for older games" section)
 
(20 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
{{Tocbox}}
 
{{Tocbox}}
  
The Other Information section hold all information and downloads that are not critically essential, but useful all the same. It acts as a sister section to Essential improvements.
+
The Other Information section holds all information and downloads that are not critically essential, but useful all the same. It acts as a sister section to [[PCGamingWiki:Editing guide/Essential improvements|Essential improvements]].
  
 
The API and Middleware tables also reside here. Note that both tables are always placed at the top of the section.
 
The API and Middleware tables also reside here. Note that both tables are always placed at the top of the section.
Line 44: Line 44:
 
|dos modes              =  
 
|dos modes              =  
 
|dos modes notes        =  
 
|dos modes notes        =  
|shader model versions  =
 
|shader model notes    =
 
 
|windows 32-bit exe    =  
 
|windows 32-bit exe    =  
 
|windows 64-bit exe    =  
 
|windows 64-bit exe    =  
Line 59: Line 57:
 
|linux 64-bit executable=  
 
|linux 64-bit executable=  
 
|linux arm app          =  
 
|linux arm app          =  
|linux executable notes =  
+
|linux 68k app          =
 +
|linux executable notes =
 +
|mac os powerpc app    =
 +
|mac os 68k app        =
 +
|mac os executable notes=
 
}}
 
}}
 
</nowiki></pre>
 
</nowiki></pre>
Line 65: Line 67:
 
'''Example'''
 
'''Example'''
 
{{API
 
{{API
|direct3d versions      = 6, 7, 8, 9, 10, 11
+
|direct3d versions      = 6, 7, 8, 9, 9Ex, 10, 11
 
|direct3d notes        =  
 
|direct3d notes        =  
 
|directdraw versions    = 7
 
|directdraw versions    = 7
Line 78: Line 80:
 
|software mode notes    =  
 
|software mode notes    =  
 
|mantle support        = true
 
|mantle support        = true
|mantle support notes  =  
+
|mantle support notes  = Windows only.
 
|metal support          =  
 
|metal support          =  
 
|metal support notes    =  
 
|metal support notes    =  
Line 85: Line 87:
 
|dos modes              = CGA, VGA, SVGA
 
|dos modes              = CGA, VGA, SVGA
 
|dos modes notes        =  
 
|dos modes notes        =  
|shader model versions  = 1.1, 3, 5
 
|shader model notes    =
 
 
|windows 32-bit exe    = true
 
|windows 32-bit exe    = true
 
|windows 64-bit exe    = false
 
|windows 64-bit exe    = false
 
|windows arm app        = unknown
 
|windows arm app        = unknown
|windows exe notes      =  
+
|windows exe notes      = 16-bit is automatically true if the infobox lists a Windows 3.x date; otherwise automatically false.
|mac os x powerpc app  =  
+
|mac os x powerpc app  = hackable
 
|macos intel 32-bit app = true
 
|macos intel 32-bit app = true
 
|macos intel 64-bit app = true
 
|macos intel 64-bit app = true
 
|macos arm app          = true
 
|macos arm app          = true
 
|macos app notes        = ARM support was added in November 2020.
 
|macos app notes        = ARM support was added in November 2020.
|linux powerpc app      =  
+
|linux powerpc app      = true
 
|linux 32-bit executable= true
 
|linux 32-bit executable= true
 
|linux 64-bit executable= true
 
|linux 64-bit executable= true
|linux arm app          = unknown
+
|linux arm app          = limited
|linux executable notes =  
+
|linux 68k app          = true
 +
|linux executable notes = "Limited" for ARM can be used if a game only supports ARM32 or ARM64, and not both.
 +
|mac os powerpc app    = true
 +
|mac os 68k app        = true
 +
|mac os executable notes= For Mac OS 9.2.2 and earlier.
 
}}
 
}}
  
Line 110: Line 114:
  
 
'''Field breakdown'''
 
'''Field breakdown'''
{{mm}} '''Do not list render versions or APIs that can be forced for a game but otherwise is not confirmed working entirely for the whole game!''' A present issue on PCGamingWiki is that editors mistakenly lists various Direct3D versions as supported by games solely because the underlying engine they make use of supports such a version (most commonly for [[Engine:Unity|Unity]] and [[Engine:Unreal Engine 4|Unreal Engine]] games) and because a command-line argument can be used to force the engine to make use of that particular version &mdash; but without actually confirming full support for the game itself and its assets. This creates inaccuracies and misinforms other readers attempting to and expecting a fully functioning game but instead ends up with a broken game that barely works, suffers from major limitations, or various bugs.
+
{{ii}} It is recommended to use a third-party tool such as [https://www.msi.com/Landing/afterburner/graphics-cards MSI Afterburner] or [[Special K]] to identify what rendering API is being used by a game, or [[#Determine Direct3D/DirectDraw version for older games|this method]] for older games.
 +
{{ii}} Some games may have multiple renderers available and can be toggled in the video settings.
 +
{{mm}} '''Do not list render versions or APIs that can be forced for a game but are otherwise not confirmed as working entirely for the whole game!''' A present issue on PCGamingWiki is that editors mistakenly list various Direct3D versions as supported by games solely because the underlying engine supports such a version (most commonly for [[Engine:Unreal Engine 4|Unreal Engine]] games) and because a command-line argument can be used to force the engine to make use of that particular version &mdash; but without actually confirming full support for the game itself and its assets. This creates inaccuracies and misinforms other readers expecting a fully functioning game but instead ending up with a broken game that barely works, suffers from major limitations, or various bugs.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 116: Line 122:
 
! Field || Definition || How to find || Notes
 
! Field || Definition || How to find || Notes
 
|-
 
|-
| Direct3D versions || The versions of [[Wikipedia:Direct3D|Direct3D]] the game can be rendered in. || Check the minimum system requirements for the game. The DirectX version required is what the game is using. Alternatively, some games have multiple renderers available and can be toggled in the video settings. Finally, some screen recording tools (like [http://www.bandicam.com/ Bandicam]) have an API indicator, stating the exact version currently being used. || Also called D3D. Can only be found in Windows-based games. Newer versions of the API are restricted to newer versions of Windows (Direct3D 10 requires Vista or newer).
+
| Direct3D versions || The versions of [[Wikipedia:Direct3D|Direct3D]] the game can be rendered in. || See the [[#Direct3D versions|Direct3D versions]] section below for further information. || Also called D3D, and can only be found in Windows-based games.
 
|-
 
|-
| DirectDraw versions || The versions of [[Wikipedia:DirectDraw|DirectDraw]] the game can be rendered in. || Check the minimum system requirements for the game. The DirectX version required is what the game is using. Alternatively, some games have multiple renderers available and can be toggled in the video settings. Finally, some screen recording tools (like [http://www.bandicam.com/ Bandicam]) have an API indicator, stating if the API is being used in general. || Also called DDraw. DirectDraw was deprecated in DirectX 8, making it a legacy API. The latest version available is 7. Very rare to find any modern game still using the API. Can only be found in Windows-based games.
+
| DirectDraw versions || The versions of [[Wikipedia:DirectDraw|DirectDraw]] the game can be rendered in. || See the [[#DirectDraw versions|DirectDraw versions]] section below for further information. || Also called DDraw. DirectDraw was deprecated in DirectX 8, making it a legacy API. The latest version available is 7. Very rare to find any modern game still using the API. Can only be found in Windows-based games.
 
|-
 
|-
| WinG || Support for the [[Wikipedia:WinG|WinG]] API. || Old API used for some early '90s games on Windows, later superseded by DirectDraw/Direct3D/etc. || The game may prompt to install WinG or it may be mentioned in the manual or readme. Can only be found in Windows-based games.
+
| WinG || Support for the [[Wikipedia:WinG|WinG]] API. || The game may prompt to install WinG or it may be mentioned in the manual or readme. || Old API used for some early '90s games on Windows, later superseded by DirectDraw/Direct3D/etc. Can only be found in Windows-based games.
 
|-
 
|-
| OpenGL versions || The versions of [[Wikipedia:OpenGL|OpenGL]] the game can be rendered in. || Check the minimum system requirements for the game. Sometimes the OpenGL version required is stated. If not, checking the latest OpenGL version supported by the GPU required can give an accurate ballpark figure. Alternatively, some games have multiple renderers available and can be toggled in the video settings. Finally, some screen recording tools (like [http://www.bandicam.com/ Bandicam]) have an API indicator, stating if the API is being used in general. || Harder to determine compared to the other APIs. Mainly found in Mac OS, OS X, and Linux games, but can sometimes be found on Windows.
+
| OpenGL versions || The versions of [[Wikipedia:OpenGL|OpenGL]] the game can be rendered in. || Check the minimum system requirements for the game. Sometimes the OpenGL version required is stated. If not, checking the latest OpenGL version supported by the GPU required can give an accurate ballpark figure. Use {{Code|true}} if the exact OpenGL version being used cannot be determined. || OpenGL is mainly found in macOS and Linux games, but can sometimes be found on Windows.
 
|-
 
|-
| Glide versions || The versions of [[Wikipedia:Glide API|Glide]] the game can be rendered in. || Check the minimum system requirements for the game. Sometimes the Glide version required is stated. If not, checking the game installation folder for the DLL file can give the major version used (<code>glide.dll</code>=Glide 2.1, <code>glide2x.dll</code>=Glide 2.4, and <code>glide3x.dll</code>=Glide 3.0). Alternatively, some games have multiple renderers available and can be toggled in the video settings. || Legacy API only found in early 3D games (1996-early 2000s). The latest version available is 3.10.00.30303. Some games refuse to run or provide higher quality visuals without a Glide-enabled GPU. Use a Glide wrapper like [http://www.zeus-software.com/downloads/nglide nGlide] to bypass these restrictions.
+
| Glide versions || The versions of [[Wikipedia:Glide API|Glide]] the game can be rendered in. || Check the minimum system requirements for the game. Sometimes the Glide version required is stated. If not, checking the game installation folder for the DLL file can give the major version used (<code>glide.dll</code>=Glide 2.1, <code>glide2x.dll</code>=Glide 2.4, and <code>glide3x.dll</code>=Glide 3.0). || Legacy API only found in early 3D games (1996-early 2000s). The latest version available is 3.10.00.30303. Some games refuse to run or provide higher quality visuals without a Glide-enabled GPU. Use a Glide wrapper like [http://www.zeus-software.com/downloads/nglide nGlide] to bypass these restrictions.
 
|-
 
|-
| Software mode || The game has a [[Wikipedia:Software rendering|software renderer]] available (i.e. 3D rendering is all handled by the CPU, instead of the GPU). || Check the video settings for a renderer toggle or option along the lines of "hardware acceleration", "hardware rendering", or "Software mode". || Usually found in early 3D games (1996-early 2000s). If the software mode uses another API (ex. DirectDraw), make note of it in the respective fields. Being able to toggle between software and hardware-rendered cursors does not count. Leave the field blank if a software mode is not available. Do not use this field for games that are only available for DOS or PC booter (use the DOS modes field for these systems).
+
| Software mode || The game has a [[Wikipedia:Software rendering|software renderer]] available (i.e. rendering is all handled by the CPU). || Check the video settings for a renderer toggle or option along the lines of "hardware acceleration", "hardware rendering", or "software mode". || Usually found in early 3D games (1996-early 2000s). If the software mode uses another API (ex. DirectDraw), make note of it in the respective fields. Being able to toggle between software and hardware-rendered cursors does not count. Leave the field blank if a software mode is not available. Do not use this field for games that are only available for DOS or PC booter (use the DOS modes field for these systems).
 
|-
 
|-
 
| Mantle support || The game supports the [[Wikipedia:Mantle (API)|Mantle]] API. || Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. || Legacy API that was made redundant as a mainstream graphics API by DirectX 12 and Vulkan, making existing support very limited. Only available for AMD GPUs. Leave the field blank if Mantle support is not available.
 
| Mantle support || The game supports the [[Wikipedia:Mantle (API)|Mantle]] API. || Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. || Legacy API that was made redundant as a mainstream graphics API by DirectX 12 and Vulkan, making existing support very limited. Only available for AMD GPUs. Leave the field blank if Mantle support is not available.
Line 132: Line 138:
 
| Metal support || The game supports the [[Wikipedia:Metal (API)|Metal]] API. || Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. || Only available for macOS (OS X). Leave the field blank if Metal support is not available.
 
| Metal support || The game supports the [[Wikipedia:Metal (API)|Metal]] API. || Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. || Only available for macOS (OS X). Leave the field blank if Metal support is not available.
 
|-
 
|-
| Vulkan versions || The game supports the [[Wikipedia:Vulkan_(API)|Vulkan]] API. || Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. || New API that was recently released, making support limited. Considered the successor of OpenGL and is equivalent to [[Wikipedia:DirectX#DirectX_12|DirectX 12]]. Leave the field blank if Vulkan support is not available.
+
| Vulkan versions || The game supports the [[Wikipedia:Vulkan_(API)|Vulkan]] API. || Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. Use {{Code|true}} if the exact Vulkan version being used cannot be determined. || Considered the successor of OpenGL and is equivalent to [[Wikipedia:DirectX#DirectX_12|DirectX 12]]. Leave the field blank if Vulkan support is not available.
 
|-
 
|-
 
| DOS modes || The [[Wikipedia:Graphics display resolution|display modes]] available for a game. || Check the system requirements for the game. Can also be found on the retail box. || Only for games with a DOS/PC booter release or version. Some display modes may be exclusive to certain releases. '''This row is only shown when a DOS or PC booter release date row is present in [[PCGamingWiki:Editing guide/The infobox|the infobox]].'''
 
| DOS modes || The [[Wikipedia:Graphics display resolution|display modes]] available for a game. || Check the system requirements for the game. Can also be found on the retail box. || Only for games with a DOS/PC booter release or version. Some display modes may be exclusive to certain releases. '''This row is only shown when a DOS or PC booter release date row is present in [[PCGamingWiki:Editing guide/The infobox|the infobox]].'''
 
|-
 
|-
| Shader model versions || The versions of the [[Wikipedia:High-level shader language|High-level shader language]] the game supports. || Check the system requirements for the game. The DirectX version required can determine the Shader model used (see [[#DirectX and associated Shader model versions|DirectX and associated Shader model versions]]). || Also called the High-level shading language (HLSL) or Shader model. Only for games using Direct3D 8 or newer. Most games use just one version, but some have support for multiple.
+
| Executable || What executable (or binary) versions are available. || Check the system requirements for the game. Sometimes a 64-bit OS is required. Alternatively, running the game on a 64-bit system and checking the game process in the Task Manager is a reliable method (32-bit applications will have a tag next to their process, 64-bit apps will not). || 64-bit applications started appearing around the mid-2000s, but did not become more commonplace until the 2010s. Most modern AAA releases require 64-bit OSes. The field is not applicable for DOS-based games.
|-
 
| Executable || What executable (or binary) versions are available. || Check the system requirements for the game. Sometimes a 64-bit OS is required. Alternatively, running the game on a 64-bit system and checking the game process in the Task Manager is a reliable method (32-bit applications will have a tag next to their process, 64-bit apps will not). || 64-bit applications started appearing around the mid-2000s, but did not become more commonplace until a few years ago. Most modern AAA releases require 64-bit OSes. The field is not applicable for DOS-based games.
 
 
|}
 
|}
 +
 +
===Direct3D versions===
 +
'''''DirectDraw''' is an obsolete 2D rendering API from Microsoft that was used by game developers before 3D graphics card and rendering became common-place.''
 +
 +
'''Direct3D''' (shortened to '''''D3D''''') is the 3D rendering API of the corresponding [[Glossary:DirectX|DirectX]] suite of the same number. However as DirectX is ultimately a suite of APIs that spans 3D, input, audio, and even more obscure APIs such as online functionality or 2D, the specified DirectX version in the system requirements of a game does not necessarily correspond to the Direct3D version actually being used for the 3D rendering as a game might mix and match APIs from different DirectX versions or even implement backwards compatible hardware profiles in newer Direct3D API versions to support older or more limited graphics cards (a concept now known as [https://learn.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-devices-downlevel-intro Direct3D feature levels]).
 +
 +
* An example of the former would be a game using/supporting gamepads through DirectInput from DirectX 8, 3D rendering using Direct3D 9 from DirectX 9, with an optional rendering mode using Direct3D 11 from DirectX 11.
 +
* An example of the latter would be the [[Engine:Source|Source]] and [[Engine:Unity|Unity]] game engines which makes use of Direct3D 9 (or newer) but implements compatibility fallbacks to support older graphcis card lacking support for newer hardware features such as shader models, HDR rendering, etc. For the Source engine in particular these [https://developer.valvesoftware.com/wiki/DirectX_Versions compatibility modes] can often [https://developer.valvesoftware.com/wiki/Mat_dxlevel be forced] using the {{Code|+mat_dxlevel}} or {{Code|-dxlevel}} [[Command line arguments|command line arguments]].
 +
 +
As the {{Code|direct3d versions}} parameter is meant to specify the actual Direct3D API version used by a game, it is recommended to use a third-party tool such as [https://www.msi.com/Landing/afterburner/graphics-cards MSI Afterburner] or [[Special K]] to identify the exact Direct3D version a game makes use of. Note hoever that for older APIs, DirectDraw and Direct3D 7 or earlier, a more in-depth investigation by checking used DLL files and/or dgVoodoo and tracing API calls must be used to properly determine the exact API being used, see [[#Determine Direct3D/DirectDraw version for older games|Determine Direct3D/DirectDraw version for older games]].
 +
 +
'''For unreleased games''' with an unconfirmed/unknown Direct3D version it is acceptable to fill out the field based on the DirectX version(s) listed in the system requirements as this allows the article to be populated within PCGW's various [[:Category:Graphics API|graphics APIs lists]] before it becomes available for detailed testing. An appropriate {{T|Citation needed}} must be added to the {{Code|direct3d notes}} parameter as well to ensure that the game is tested as soon as possible to confirm the assumed version.
 +
 +
{{mm}} Direct3D 10 and newer are restricted to newer versions of Windows; Direct3D 10 was introduced in Windows Vista, Direct3D 11 in Windows 7, and Direct3D 12 in Windows 10.
 +
{{mm}} '''Do not list render versions or APIs that can be forced for a game but are otherwise not confirmed as working entirely for the whole game!''' A present issue on PCGamingWiki is that editors mistakenly list various Direct3D versions as supported by games solely because the underlying engine supports such a version (most commonly for [[Engine:Unreal Engine 4|Unreal Engine]] games) and because a command-line argument can be used to force the engine to make use of that particular version &mdash; but without actually confirming full support for the game itself and its assets. This creates inaccuracies and misinforms other readers expecting a fully functioning game but instead ending up with a broken game that barely works, suffers from major limitations, or various bugs.
  
 
===DirectX OpenGL equivalents===
 
===DirectX OpenGL equivalents===
 
{{ii}} For DirectX 12.x, OpenGL has no equivalent version. The closest equivalents available are [[Wikipedia:Mantle_(API)|Mantle]] and [[Wikipedia:Vulkan_(API)|Vulkan]], both entirely separate APIs.
 
{{ii}} For DirectX 12.x, OpenGL has no equivalent version. The closest equivalents available are [[Wikipedia:Mantle_(API)|Mantle]] and [[Wikipedia:Vulkan_(API)|Vulkan]], both entirely separate APIs.
 +
{{mm}} Use {{Code|true}} when in doubt and a specific OpenGL version cannot be found.
  
For games using both DirectX and OpenGL, it may be difficult to determine what version of OpenGL the game is using. The developer may not provide a specific version.
+
For games using both DirectX and OpenGL it may be difficult to determine what version of OpenGL the game is using as the developer may not provide a specific version. That being said, knowing just the DirectX version used can sometimes give a rough estimate on the equivalent OpenGL version. Though when in doubt it is acceptable to fill out the parameter with {{Code|true}} as well.
 
 
That being said, knowing just the DirectX version used can give a rough estimate on the equivalent OpenGL version.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! DirectX version || Equivalent OpenGL version  
+
! DirectX version || Equivalent OpenGL version
 
|-
 
|-
 
| 9.0x || 2.x
 
| 9.0x || 2.x
Line 159: Line 177:
 
|}
 
|}
  
===DirectX and associated Shader model versions===
+
===DirectDraw versions===
For 3D games using DirectX, the Shader model field must be filled in. However, the Shader model version used may not be provided by the developer.
+
'''DirectDraw''' is an obsolete 2D rendering API from Microsoft that was used by game developers before 3D graphics card and rendering became common-place. To determine the exact version of DirectDraw being used by a game, a more in-depth investigation needs to be performend by checking used DLL files and/or dgVoodoo and tracing API calls, see [[#Determine Direct3D/DirectDraw version for older games|Determine Direct3D/DirectDraw version for older games]].
 +
 
 +
===Determine 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 [https://www.msi.com/Landing/afterburner/graphics-cards MSI Afterburner] or [[Special K]].
 +
 
 +
{{Fixbox|description=Identify the render API being used:|ref=|fix=
 +
#Note the following before proceeding with the below instructions:
 +
#* Direct3D 7 depends on the following DLL files: {{file|DDraw.dll}}, and {{file|D3DImm.dll}}, and {{file|D3DImm700.dll}}.
 +
#* Direct3D 2-6 depends on the following DLL files: {{file|DDraw.dll}}, and {{file|D3DImm.dll}}.
 +
#* DirectDraw depends on the following DLL files: {{file|DDraw.dll}}.
 +
#* Older games could often combine the use of render APIs, and might use both Direct3D (e.g. 3D rendering) and Direct Draw (e.g. movie 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:
 +
#* Does the game make use of {{file|D3DImm700.dll}} ? This means that the game makes use of Direct3D 7.
 +
#* Does the game make use of {{file|D3DImm.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 exact version being used by tracing the API calls.
 +
#* Does the game make use of {{file|DDraw.dll}} ? This means that the game makes use of DirectDraw 1-7, and  a tool such as [[dgVoodoo]] would need to be used to determine exact version being used by tracing the API calls.
 +
# If [[dgVoodoo]] needs to be used, do '''''XXXX''''' to trace the exact API calls being made and then identify the exact version of the render API being used based on the following table:
 +
<pre>
 +
Direct3D
 +
 
 +
2/3 = IDirect3D,    IDirect3DDevice
 +
5  = IDirect3D2,  IDirect3DDevice2
 +
6  = IDirect3D3,  IDirect3DDevice3
 +
7  = IDirect3D7,  IDirect3DDevice7
  
Unless otherwise specified, the associated Shader model version is what that version of DirectX is using.
+
DirectDraw
  
{| class="wikitable"
+
= IDirectDraw,  IDirectDrawSurface
|-
+
2/3 = IDirectDraw2, IDirectDrawSurface2
! DirectX version || Associated Shader model version
+
5  = IDirectDraw2, IDirectDrawSurface3
|-
+
6  = IDirectDraw4, IDirectDrawSurface4
| 8.0 || 1.0 and 1.1
+
7  = IDirectDraw7, IDirectDrawSurface7
|-
+
</pre>
| 8.0a || 1.3
+
}}
|-
 
| 8.1 || 1.4
 
|-
 
| 9.0 || 2.0
 
|-
 
| 9.0a || 2.0a
 
|-
 
| 9.0b || 2.0b
 
|-
 
| 9.0c || 3.0
 
|-
 
| 10.0 || 4.0
 
|-
 
| 10.1 || 4.1
 
|-
 
| 11.x || 5.0
 
|-
 
| 12.x || 5.1
 
|}
 
  
 
==Middleware table==
 
==Middleware table==
Line 259: Line 280:
 
One method of detecting what middleware a game uses is looking through its files for specific DLL files.
 
One method of detecting what middleware a game uses is looking through its files for specific DLL files.
  
This is a list of all the DLL files associated with middleware:
+
This is a list of all the DLL files associated with middleware (for more, see [https://github.com/SteamDatabase/FileDetectionRuleSets SteamDB File Detection {{file|rules.ini}}]):
  
 
====Physics====
 
====Physics====
Line 266: Line 287:
 
! DLL file || Associated middleware
 
! DLL file || Associated middleware
 
|-
 
|-
| APEX_*.dll, PhysX*.dll || PhysX
+
| {{file|APEX_*.dll}}, {{file|PhysX*.dll}} || PhysX
 
|-
 
|-
| FarseerPhysics.dll || Farseer Physics Engine
+
| {{file|FarseerPhysics.dll}} || Farseer Physics Engine
 
|-
 
|-
| Newton.dll || Newton Dynamics
+
| {{file|Newton.dll}} || Newton Dynamics
 
|-
 
|-
| ode.dll || Open Dynamics Engine
+
| {{file|ode.dll}} || Open Dynamics Engine
 
|}
 
|}
  
Line 280: Line 301:
 
! DLL file || Associated middleware  
 
! DLL file || Associated middleware  
 
|-
 
|-
| bass.dll, bass*.dll || BASS
+
| {{file|bass.dll}}, {{file|bass*.dll}} || BASS
 
|-
 
|-
| fmod.dll, fmodex.dll || FMOD
+
| {{file|fmod.dll}}, {{file|fmodex.dll}} || FMOD
 
|-
 
|-
| FonixTtsDtSimple*.dll || Fonix TTS (Text to Speech)
+
| {{file|FonixTtsDtSimple*.dll}} || Fonix TTS (Text to Speech)
 
|-
 
|-
| irrKlang.dll || irrKlang
+
| {{file|irrKlang.dll}} || irrKlang
 
|-
 
|-
| mss32.dll || Miles Sound System
+
| {{file|mss32.dll}} || Miles Sound System
 
|-
 
|-
| OpenAL32.dll || OpenAL  
+
| {{file|OpenAL32.dll}} || OpenAL  
 
|}
 
|}
  
Line 298: Line 319:
 
! DLL file || Associated middleware  
 
! DLL file || Associated middleware  
 
|-
 
|-
| CEGUI*.dll || Crazy Eddie's GUI System (CEGUI)
+
| {{file|CEGUI*.dll}} || Crazy Eddie's GUI System (CEGUI)
 
|-
 
|-
| RocketCore.dll, RocketControls.dll || libRocket
+
| {{file|RocketCore.dll}}, {{file|RocketControls.dll}} || libRocket
 
|-
 
|-
| wxmsw*.dll || wxWidgets
+
| {{file|wxmsw*.dll}} || wxWidgets
 
|}
 
|}
  
Line 310: Line 331:
 
! DLL file || Associated middleware  
 
! DLL file || Associated middleware  
 
|-
 
|-
| OIS.dll || Object Oriented Input System (OIS)
+
| {{file|OIS.dll}} || Object Oriented Input System (OIS)
 
|-
 
|-
| openvr_api.dll || OpenVR
+
| {{file|openvr_api.dll}} || OpenVR
 
|-
 
|-
| sixense.dll || Sixense Core API
+
| {{file|sixense.dll}} || Sixense Core API
 
|}
 
|}
  
Line 322: Line 343:
 
! DLL file || Associated middleware  
 
! DLL file || Associated middleware  
 
|-
 
|-
| binkw32.dll, bink2w64.dll || Bink Video
+
| {{file|binkw32.dll}}, {{file|bink2w64.dll}} || Bink Video
 
|-
 
|-
| Smackw32.dll || Smacker  
+
| {{file|Smackw32.dll}} || Smacker  
 
|-
 
|-
| SwiffPlayer.dll || Swiff Player
+
| {{file|SwiffPlayer.dll}} || Swiff Player
 
|}
 
|}
  
Line 334: Line 355:
 
! DLL file || Associated middleware  
 
! DLL file || Associated middleware  
 
|-
 
|-
| CommunityExpress.dll, CommunityExpressSW.dll || Community Express SDK
+
| {{file|CommunityExpress.dll}}, {{file|CommunityExpressSW.dll}} || Community Express SDK
 
|-
 
|-
| EOSSDK-Win64-Shipping.dll || Epic Online Services
+
| {{file|EOSSDK-Win64-Shipping.dll}} || Epic Online Services
 
|-
 
|-
| pb*.dll || PunkBuster
+
| {{file|pb*.dll}} || PunkBuster
 
|}
 
|}
  

Latest revision as of 16:33, 5 April 2024

The Other Information section holds all information and downloads that are not critically essential, but useful all the same. It acts as a sister section to Essential improvements.

The API and Middleware tables also reside here. Note that both tables are always placed at the top of the section.

General

All guidelines that apply to to the Essential improvements section apply here as well.

Some examples of what would be placed in this section:

  • General console commands list
  • Steps to add alternate OS support
  • Wine setup tips
  • Cosmetic/enhanced visuals mods
  • Downgrading the game
  • Anything that would not fit in either the Essential improvements or Issues fixed sections

API table

See {{API}} for the condensed template documentation.

Syntax

{{API
|direct3d versions      = 
|direct3d notes         = 
|directdraw versions    = 
|directdraw notes       = 
|wing                   = 
|wing notes             = 
|opengl versions        = 
|opengl notes           = 
|glide versions         = 
|glide notes            = 
|software mode          = 
|software mode notes    = 
|mantle support         = 
|mantle support notes   = 
|metal support          = 
|metal support notes    = 
|vulkan versions        = 
|vulkan notes           = 
|dos modes              = 
|dos modes notes        = 
|windows 32-bit exe     = 
|windows 64-bit exe     = 
|windows arm app        = 
|windows exe notes      = 
|mac os x powerpc app   = 
|macos intel 32-bit app = 
|macos intel 64-bit app = 
|macos arm app          = 
|macos app notes        = 
|linux powerpc app      = 
|linux 32-bit executable= 
|linux 64-bit executable= 
|linux arm app          = 
|linux 68k app          =
|linux executable notes =
|mac os powerpc app     =
|mac os 68k app         =
|mac os executable notes=
}}

Example

Technical specs Supported Notes
Direct3D 6, 7, 8, 9, 9Ex, 10, 11
DirectDraw 7
OpenGL 2.0, 4.4 OS X and Linux only.
Glide 2.4, 3
Software renderer
Mantle support
Windows only.
Vulkan 1.0
DOS video modes CGA, VGA, SVGA
ExecutablePPC16-bit 32-bit 64-bitARM Notes
Windows
16-bit is automatically true if the infobox lists a Windows 3.x date; otherwise automatically false.
macOS (OS X)
ARM support was added in November 2020.
Linux
"Limited" for ARM can be used if a game only supports ARM32 or ARM64, and not both.
Mac OS (Classic)
For Mac OS 9.2.2 and earlier.

The first major table of the section, the API table tracks all the graphics APIs and rendering modes available for a game.

General rules

  • Fill in the relevant fields only. Leave the rest blank. If you know a particular 3D renderer is used but aren't sure which version of the renderer it is, set it to true.

Field breakdown

It is recommended to use a third-party tool such as MSI Afterburner or Special K to identify what rendering API is being used by a game, or this method for older games.
Some games may have multiple renderers available and can be toggled in the video settings.
Do not list render versions or APIs that can be forced for a game but are otherwise not confirmed as working entirely for the whole game! A present issue on PCGamingWiki is that editors mistakenly list various Direct3D versions as supported by games solely because the underlying engine supports such a version (most commonly for Unreal Engine games) and because a command-line argument can be used to force the engine to make use of that particular version — but without actually confirming full support for the game itself and its assets. This creates inaccuracies and misinforms other readers expecting a fully functioning game but instead ending up with a broken game that barely works, suffers from major limitations, or various bugs.
Field Definition How to find Notes
Direct3D versions The versions of Direct3D the game can be rendered in. See the Direct3D versions section below for further information. Also called D3D, and can only be found in Windows-based games.
DirectDraw versions The versions of DirectDraw the game can be rendered in. See the DirectDraw versions section below for further information. Also called DDraw. DirectDraw was deprecated in DirectX 8, making it a legacy API. The latest version available is 7. Very rare to find any modern game still using the API. Can only be found in Windows-based games.
WinG Support for the WinG API. The game may prompt to install WinG or it may be mentioned in the manual or readme. Old API used for some early '90s games on Windows, later superseded by DirectDraw/Direct3D/etc. Can only be found in Windows-based games.
OpenGL versions The versions of OpenGL the game can be rendered in. Check the minimum system requirements for the game. Sometimes the OpenGL version required is stated. If not, checking the latest OpenGL version supported by the GPU required can give an accurate ballpark figure. Use true if the exact OpenGL version being used cannot be determined. OpenGL is mainly found in macOS and Linux games, but can sometimes be found on Windows.
Glide versions The versions of Glide the game can be rendered in. Check the minimum system requirements for the game. Sometimes the Glide version required is stated. If not, checking the game installation folder for the DLL file can give the major version used (glide.dll=Glide 2.1, glide2x.dll=Glide 2.4, and glide3x.dll=Glide 3.0). Legacy API only found in early 3D games (1996-early 2000s). The latest version available is 3.10.00.30303. Some games refuse to run or provide higher quality visuals without a Glide-enabled GPU. Use a Glide wrapper like nGlide to bypass these restrictions.
Software mode The game has a software renderer available (i.e. rendering is all handled by the CPU). Check the video settings for a renderer toggle or option along the lines of "hardware acceleration", "hardware rendering", or "software mode". Usually found in early 3D games (1996-early 2000s). If the software mode uses another API (ex. DirectDraw), make note of it in the respective fields. Being able to toggle between software and hardware-rendered cursors does not count. Leave the field blank if a software mode is not available. Do not use this field for games that are only available for DOS or PC booter (use the DOS modes field for these systems).
Mantle support The game supports the Mantle API. Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. Legacy API that was made redundant as a mainstream graphics API by DirectX 12 and Vulkan, making existing support very limited. Only available for AMD GPUs. Leave the field blank if Mantle support is not available.
Metal support The game supports the Metal API. Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. Only available for macOS (OS X). Leave the field blank if Metal support is not available.
Vulkan versions The game supports the Vulkan API. Check the video settings for a renderer toggle. The developer's official website, game feature list, or game manual may also state it. Use true if the exact Vulkan version being used cannot be determined. Considered the successor of OpenGL and is equivalent to DirectX 12. Leave the field blank if Vulkan support is not available.
DOS modes The display modes available for a game. Check the system requirements for the game. Can also be found on the retail box. Only for games with a DOS/PC booter release or version. Some display modes may be exclusive to certain releases. This row is only shown when a DOS or PC booter release date row is present in the infobox.
Executable What executable (or binary) versions are available. Check the system requirements for the game. Sometimes a 64-bit OS is required. Alternatively, running the game on a 64-bit system and checking the game process in the Task Manager is a reliable method (32-bit applications will have a tag next to their process, 64-bit apps will not). 64-bit applications started appearing around the mid-2000s, but did not become more commonplace until the 2010s. Most modern AAA releases require 64-bit OSes. The field is not applicable for DOS-based games.

Direct3D versions

DirectDraw is an obsolete 2D rendering API from Microsoft that was used by game developers before 3D graphics card and rendering became common-place.

Direct3D (shortened to D3D) is the 3D rendering API of the corresponding DirectX suite of the same number. However as DirectX is ultimately a suite of APIs that spans 3D, input, audio, and even more obscure APIs such as online functionality or 2D, the specified DirectX version in the system requirements of a game does not necessarily correspond to the Direct3D version actually being used for the 3D rendering as a game might mix and match APIs from different DirectX versions or even implement backwards compatible hardware profiles in newer Direct3D API versions to support older or more limited graphics cards (a concept now known as Direct3D feature levels).

  • An example of the former would be a game using/supporting gamepads through DirectInput from DirectX 8, 3D rendering using Direct3D 9 from DirectX 9, with an optional rendering mode using Direct3D 11 from DirectX 11.
  • An example of the latter would be the Source and Unity game engines which makes use of Direct3D 9 (or newer) but implements compatibility fallbacks to support older graphcis card lacking support for newer hardware features such as shader models, HDR rendering, etc. For the Source engine in particular these compatibility modes can often be forced using the +mat_dxlevel or -dxlevel command line arguments.

As the direct3d versions parameter is meant to specify the actual Direct3D API version used by a game, it is recommended to use a third-party tool such as MSI Afterburner or Special K to identify the exact Direct3D version a game makes use of. Note hoever that for older APIs, DirectDraw and Direct3D 7 or earlier, a more in-depth investigation by checking used DLL files and/or dgVoodoo and tracing API calls must be used to properly determine the exact API being used, see Determine Direct3D/DirectDraw version for older games.

For unreleased games with an unconfirmed/unknown Direct3D version it is acceptable to fill out the field based on the DirectX version(s) listed in the system requirements as this allows the article to be populated within PCGW's various graphics APIs lists before it becomes available for detailed testing. An appropriate {{Citation needed}} must be added to the direct3d notes parameter as well to ensure that the game is tested as soon as possible to confirm the assumed version.

Direct3D 10 and newer are restricted to newer versions of Windows; Direct3D 10 was introduced in Windows Vista, Direct3D 11 in Windows 7, and Direct3D 12 in Windows 10.
Do not list render versions or APIs that can be forced for a game but are otherwise not confirmed as working entirely for the whole game! A present issue on PCGamingWiki is that editors mistakenly list various Direct3D versions as supported by games solely because the underlying engine supports such a version (most commonly for Unreal Engine games) and because a command-line argument can be used to force the engine to make use of that particular version — but without actually confirming full support for the game itself and its assets. This creates inaccuracies and misinforms other readers expecting a fully functioning game but instead ending up with a broken game that barely works, suffers from major limitations, or various bugs.

DirectX OpenGL equivalents

For DirectX 12.x, OpenGL has no equivalent version. The closest equivalents available are Mantle and Vulkan, both entirely separate APIs.
Use true when in doubt and a specific OpenGL version cannot be found.

For games using both DirectX and OpenGL it may be difficult to determine what version of OpenGL the game is using as the developer may not provide a specific version. That being said, knowing just the DirectX version used can sometimes give a rough estimate on the equivalent OpenGL version. Though when in doubt it is acceptable to fill out the parameter with true as well.

DirectX version Equivalent OpenGL version
9.0x 2.x
10.x 3.x
11.x 4.x

DirectDraw versions

DirectDraw is an obsolete 2D rendering API from Microsoft that was used by game developers before 3D graphics card and rendering became common-place. To determine the exact version of DirectDraw being used by a game, a more in-depth investigation needs to be performend by checking used DLL files and/or dgVoodoo and tracing API calls, see Determine Direct3D/DirectDraw version for older games.

Determine 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 depends on the following DLL files: DDraw.dll, and D3DImm.dll, and D3DImm700.dll.
    • Direct3D 2-6 depends on the following DLL files: DDraw.dll, and D3DImm.dll.
    • DirectDraw depends on 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 Direct Draw (e.g. movie 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 D3DImm700.dll ? This means that the game makes use of Direct3D 7.
    • Does the game make use of D3DImm.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 exact version being used by tracing the API calls.
    • Does the game make use of DDraw.dll ? This means that the game makes use of DirectDraw 1-7, and a tool such as dgVoodoo would need to be used to determine exact version being used by tracing the API calls.
  3. If dgVoodoo needs to be used, do XXXX to trace the exact API calls being made and then identify the exact version of the render API being used based on the following table:
Direct3D

2/3 = IDirect3D,    IDirect3DDevice
5   = IDirect3D2,   IDirect3DDevice2
6   = IDirect3D3,   IDirect3DDevice3
7   = IDirect3D7,   IDirect3DDevice7

DirectDraw

1   = IDirectDraw,  IDirectDrawSurface
2/3 = IDirectDraw2, IDirectDrawSurface2
5   = IDirectDraw2, IDirectDrawSurface3
6   = IDirectDraw4, IDirectDrawSurface4
7   = IDirectDraw7, IDirectDrawSurface7

Middleware table

See {{Middleware}} for the condensed template documentation.

Syntax

===Middleware===
{{Middleware
|physics          = 
|physics notes    = 
|audio            = 
|audio notes      = 
|interface        = 
|interface notes  = 
|input            = 
|input notes      = 
|cutscenes        = 
|cutscenes notes  = 
|multiplayer      = 
|multiplayer notes= 
|anticheat        = 
|anticheat notes  = 
}}

Example

Middleware Notes
Physics PhysX Lacks GPU acceleration on Linux.
Audio FMOD
Interface Scaleform
Input Object Oriented Input System (OIS)
Cutscenes Bink Video
Multiplayer Steamworks
Anti-cheat PunkBuster

The second major table of the section, the Middleware table lists all the known 3rd party middleware (i.e. not a proprietary in-house solution, integrated as part of the game engine or as part of a graphics API) included with the game.

There are six major types of middleware relevant to the wiki that are tracked:

Middleware type Definition Examples
Physics Middleware that simulates physics against objects in-game. Bullet Physics Engine, Havok, PhysX
Audio Middleware that provides support for audio playback. FMOD, Miles Sound System, Wwise
Interface Middleware that assists with rendering or the design of in-game user interfaces. Flash, FreeType 2, Scaleform
Input Middleware that provides support for or assists with input systems/controls (keyboard, mouse, gamepads, etc.) Object Oriented Input System (OIS)
Cutscenes Middleware that provides cutscene or pre-recorded video playback support. Bink Video, Smacker
Multiplayer Middleware that provides the base of multiplayer support or assists with other aspects related to it (matchmaking, etc.) Steamworks, GameSpy, Epic Online Services
Anticheat Middleware that protects against cheating or assists with other aspects related to it (anti-cheat, matchmaking, etc.) PunkBuster, VAC, Easy Anti-Cheat

Known middleware DLL files

One method of detecting what middleware a game uses is looking through its files for specific DLL files.

This is a list of all the DLL files associated with middleware (for more, see SteamDB File Detection rules.ini):

Physics

DLL file Associated middleware
APEX_*.dll, PhysX*.dll PhysX
FarseerPhysics.dll Farseer Physics Engine
Newton.dll Newton Dynamics
ode.dll Open Dynamics Engine

Audio

DLL file Associated middleware
bass.dll, bass*.dll BASS
fmod.dll, fmodex.dll FMOD
FonixTtsDtSimple*.dll Fonix TTS (Text to Speech)
irrKlang.dll irrKlang
mss32.dll Miles Sound System
OpenAL32.dll OpenAL

Interface

DLL file Associated middleware
CEGUI*.dll Crazy Eddie's GUI System (CEGUI)
RocketCore.dll, RocketControls.dll libRocket
wxmsw*.dll wxWidgets

Input

DLL file Associated middleware
OIS.dll Object Oriented Input System (OIS)
openvr_api.dll OpenVR
sixense.dll Sixense Core API

Cutscenes

DLL file Associated middleware
binkw32.dll, bink2w64.dll Bink Video
Smackw32.dll Smacker
SwiffPlayer.dll Swiff Player

Multiplayer

DLL file Associated middleware
CommunityExpress.dll, CommunityExpressSW.dll Community Express SDK
EOSSDK-Win64-Shipping.dll Epic Online Services
pb*.dll PunkBuster