WineHQ

Useful Registry Keys: Difference between revisions

No edit summary
(Update Direct3D registry keys default values)
Line 67: Line 67:
       |  |
       |  |
       |  +->csmt
       |  +->csmt
       |  |  [DWORD Value (REG_DWORD): Enable (0x1) or disable (0x0, default) the multi-threaded
       |  |  [DWORD Value (REG_DWORD): Enable (0x1, default) or disable (0x0) the multi-threaded
       |  |    command stream feature. This serialises rendering commands from different threads into
       |  |    command stream feature. This serialises rendering commands from different threads into
       |  |    a single rendering thread, in order to avoid the excessive glFlush()'es that would otherwise
       |  |    a single rendering thread, in order to avoid the excessive glFlush()'es that would otherwise
Line 120: Line 120:
       |  |
       |  |
       |  +->MultisampleTextures
       |  +->MultisampleTextures
       |  |  [DWORD Value (REG_DWORD): Enable (0x1) or disable (0x0, default) multisample textures.
       |  |  [DWORD Value (REG_DWORD): Enable (0x1, default) or disable (0x0) multisample textures.
       |  |    If multisample textures are disabled, renderbuffers are used for multisampling.]
       |  |    If multisample textures are disabled, renderbuffers are used for multisampling.]
       |  |
       |  |

Revision as of 22:08, 23 February 2018

Users should never have to play with the registry. That said, sometimes there's no other way to do what you need to do...

For a description of the registry, see the Wine User Guide or Wikipedia.

Here you'll find useful registry keys that cannot be changed in Self:winecfg. You should edit the registry using Self:regedit. In older Wine versions (pre 1.0), Self:wineprefixcreate needs to be run after updating Wine, in order to update the registry as well.

If a key or value does not exist, create it. All values are strings (REG_SZ) unless stated otherwise.

To create a new key if it does not exist:

  1. In a terminal, type wine regedit and hit enter
  2. Open the tree on the left to the section where you need to add it (e.g., HKEY_CURRENT_USER\Software\Wine)
  3. Select the section you are going to add the new key to (e.g., Wine)
  4. Right click and select New->Key
  5. Type the name of the new key (taken from the list below)
  6. Hit enter

I'll try to keep this list accurate but you might want to check it against current Wine source code (for Wine related keys that is): $ find . -exec grep "@@" {} \; | grep registry

In the following +- means key and +-> means value.

HKEY_CURRENT_USER (a.k.a HKCU)

|
+-Software
   |
   +-Wine
      |
      +-AppDefaults
      |  |
      |  +-*<app.exe>
      |       [Application specific defaults. Replace app.exe with the name of the
      |        application you want to override defaults for. And use the same subtrees
      |        as the Wine subtree (i.e. DllOverrides, X11 Driver, etc.).]
      |
      +-Debug
      |  |
      |  +->RelayExclude
      |  |   [Use this key to exclude some calls from the (overwhelming) +relay debug logging. Example:
      |  |    "RelayExclude"="ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection"]
      |  |
      |  +->RelayFromExclude
      |  |   [Exclude calls made from listed dlls in the the +relay debug log. Example:
      |  |    "RelayFromExclude"="kernel32" - omit all calls made from kernel32.dll]
      |  |
      |  +->SpyExclude
      |  |   [Exclude listed messages from the +message debug log. Example:
      |  |    "SpyExclude"="WM_TIMER;WM_MOUSEMOVE;WM_PAINT"]
      |  |
      |  +->SpyInclude
      |      [Include only listed messages in the +message debug log. Example:
      |       "SpyInclude"="WM_CREATE"]
      |
      +-Direct3D
      |  |
      |  +->AlwaysOffscreen
      |  |   [Use offscreen rendering for all render targets. The main effect this has is
      |  |    avoiding the depth buffer copy between offscreen and onscreen targets, which
      |  |    introduces fallbacks in some drivers and exposes bugs in others. There may be a
      |  |    performance hit depending on the specific driver.
      |  |    Enabled by default since wine-1.5.10; removed in Wine 2.1.]
      |  |
      |  +->CheckFloatConstants
      |  |   [Range check float constants in d3d9 shaders. Use this to workaround
      |  |    application bugs like https://bugs.winehq.org/show_bug.cgi?id=34052,
      |  |    usually resulting in geometry glitches. Enabling this has a small performance
      |  |    impact, default is disabled.]
      |  |
      |  +->csmt
      |  |   [DWORD Value (REG_DWORD): Enable (0x1, default) or disable (0x0) the multi-threaded
      |  |    command stream feature. This serialises rendering commands from different threads into
      |  |    a single rendering thread, in order to avoid the excessive glFlush()'es that would otherwise
      |  |    be required for correct rendering. This deprecates the "StrictDrawOrdering" setting.
      |  |    Introduced in wine-2.6.]
      |  |
      |  +->DirectDrawRenderer
      |  |   [Select what backend to use for ddraw. Valid options are:
      |  |        gdi - Use GDI to draw on the screen
      |  |        opengl - Use OpenGL (default)
      |  |    The "gdi" option mostly exists for legacy reasons. Aside from bugs in the GL
      |  |    renderer, only change this if you have a setup without OpenGL. Installing a software
      |  |    GL implementation is the preferred solution in that case though.]
      |  |
      |  +->MaxShaderModelCS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for compute shaders.
      |  |    Set to 0 to disable support for compute shaders.]
      |  |
      |  +->MaxShaderModelDS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for domain shaders.
      |  |    Set to 0 to disable support for domain shaders.]
      |  |
      |  +->MaxShaderModelGS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for geometry shaders.
      |  |    Set to 0 to disable support for geometry shaders.]
      |  |
      |  +->MaxShaderModelHS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for hull shaders.
      |  |    Set to 0 to disable support for hull shaders.]
      |  |
      |  +->MaxShaderModelPS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for pixel shaders.
      |  |    Set to 0 to disable support for pixel shaders.]
      |  |
      |  +->MaxShaderModelVS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for vertex shaders.
      |  |    Set to 0 to disable support for vertex shaders.]
      |  |
      |  +->MaxVersionGL
      |  |   [DWORD Value (REG_DWORD): Choose the maximum GL version to request. Currently defaults to version 1.0.
      |  |    Set it to 30002 (hexadecimal) or greater to request a core profile context.]
      |  |
      |  +->Multisampling
      |  |   [Set to "disabled" to prevent applications from seeing Wine's multisampling support.
      |  |    This is another legacy option that will most likely disappear at some point. There
      |  |    should be no reason to set this.]
      |  |
      |  +->OffscreenRenderingMode
      |  |   [Select the offscreen rendering implementation.
      |  |        backbuffer - Render offscreen render targets in the backbuffer
      |  |        fbo - Use framebuffer objects for offscreen rendering (default)]
      |  |
      |  +->MultisampleTextures
      |  |   [DWORD Value (REG_DWORD): Enable (0x1, default) or disable (0x0) multisample textures.
      |  |    If multisample textures are disabled, renderbuffers are used for multisampling.]
      |  |
      |  +->SampleCount
      |  |   [Override swapchain sample count. It can be used to force enable multisampling
      |  |    with applications that otherwise don't support it, like the similar control panel setting
      |  |    available with some GPU drivers. Differently from the driver setting this one also
      |  |    works with AlwaysOffscreen set to enabled (which is the default).
      |  |    Not all applications are compatible with this setting.]
      |  |
      |  +->StrictDrawOrdering
      |  |   [This option ensures any pending drawing operations are submitted to the driver, but at
      |  |    a significant performance cost. Set to "enabled" to enable. This setting is deprecated
      |  |    since wine-2.6 and will likely be removed after wine-3.0. Use "csmt" instead.]
      |  |
      |  +->UseGLSL
      |  |   [When set to "disabled", this disables the use of GLSL for shaders.
      |  |    In general disabling GLSL is not recommended, only use this for debugging purposes.]
      |  |
      |  +->VideoMemorySize
      |  |   [Set the amount of reported video memory (in megabytes). By default Wine will use 
      |  |    GLX_MESA_query_renderer to determine the amount of video memory on the graphics
      |  |    card. On (mostly proprietary) drivers not supporting GLX_MESA_query_renderer, Wine
      |  |    will instead estimate the amount of video memory based on the card's PCI IDs. The
      |  |    The "VideoMemorySize" setting allows the value determined by Wine to be overridden.]
      |  |
      |  +->VideoPciDeviceID
      |  |   [DWORD Value (REG_DWORD): Set the PCI device ID of the graphics card. See "VideoPciVendorID".]
      |  |
      |  +->VideoPciVendorID
      |      [DWORD Value (REG_DWORD): Set the PCI vendor ID of the graphics card. By default
      |      Wine wil use GLX_MESA_query_renderer to determine the PCI IDs of the graphics card.
      |      On (mostly proprietary) drivers not supporting GLX_MESA_query_renderer, Wine will
      |      instead try to pick an appropriate set of PCI IDs based on the OpenGL GL_RENDERER,
      |      GL_VENDOR, and GL_EXTENSIONS strings. The "VideoPciVendorID" and "VideoPciDeviceID"
      |      settings allow the values determined by Wine to be overridden. For most applications
      |      there should be little reason to touch these settings, but there exists a limited set of
      |      applications that will choose a broken code path based on the PCI IDs. Note that only
      |      combinations listed in wined3d's gpu_description_table[] are valid here.]
      |
      +-DirectInput
      |  |
      |  +->MouseWarpOverride
      |  |   [Override default mouse pointer warping behavior:
      |  |    enable:  (default) warp pointer when mouse exclusively acquired
      |  |    disable: never warp the mouse pointer
      |  |    force:   always warp the pointer]
      |  |
      |  +->*<joystick name> = <axes mapping>
      |  |   [This maps axes of joystick "joystick name". The "axes mapping" is
      |  |    comma-separated list of "axis type"s - one for each joystick axis (hat-pov uses 2 axes).
      |  |    "axis type" is one of: X, Y, Z, Rx, Ry, Rz, Slider1, Slider2, POV1, POV2, POV3, POV4.
      |  |    To find the joystick name run
      |  |    'WINEDEBUG=+dinput wine game.exe 2>&1 | grep joydev_enum_device'
      |  |    Example output: trace:dinput:joydev_enum_deviceW Enumerating the linux Joystick device: /dev/input/js0 (Logitech Logitech Dual Action)
      |  |    Example registry entry: "Logitech Logitech Dual Action"="X,Y,Rz,Slider1,POV1". (two "Logitech"s not a typo)]
      |  |
      |  +->DefaultDeadZone
      |  |   [Sets a default value for every joystick axis dead zone. Should be a value between 0 and 10000.
      |  |    The value represents the percentage of the axis which will seen as dead (applications will think of it as being centered).
      |  |    For example 3000 will extend the dead zone to only the first 30% of the axis, while 0 will use the whole axis extension.]
      |  |
      +-DirectSound
      |  |
      |  +->HelBuflen
      |       Hardware emulation buffer length - default is 65536
      |
      +-Drivers
      |  |
      |  +->Audio
      |  |    Which audio backend to use. Should be a string such as "pulse" or "alsa" or "oss" or "coreaudio".
      |  |    Set to the empty string to disable audio entirely. Given a comma-separated list of
      |  |    drivers, Wine will attempt to make the most appropriate choice.
      |  |
      |  +-winealsa.drv
      |  |  |
      |  |  +->ALSAOutputDevices (REG_MULTI_SZ, "Multi String Value")
      |  |  |    A list of auxiliary output devices, not enumerated by ALSA's hardware enumeration
      |  |  |    methods. For example, you might put software devices here.
      |  |  |
      |  |  +->ALSAInputDevices (REG_MULTI_SZ, "Multi String Value")
      |  |       A list of auxiliary input devices, not enumerated by ALSA's hardware enumeration
      |  |       methods.
      |  |
      |  +->Graphics
      |       Which graphic driver to use. Currently only useful on Mac.
      |       mac: Use the native quartz driver (default)
      |       x11: Use the X11 driver
      |
      +-Explorer
      |  |
      |  +->Desktop
      |  |    The name of the Desktop to use. Should be a string such as "Default".
      |  |    You also can choose a Desktop giving it's name to the explorer.exe command line.
      |  |
      |  +-Desktops
      |     |
      |     +->*
      |          Should be a string such as "1024x768" or "1400x1050" that specifies the size of the virtual Desktop
      |
      +-Fonts
      |  |
      |  +-Replacements
      |  |  |
      |  |  +->*<font name> = <replacement font name>
      |  |      ["Wingdings"="Winedings" would enumerate the Winedings font both as Winedings and
      |  |       Wingdings. However if a real Wingdings font is present the replacement does not
      |  |       take place.]
      |  |
      |  +-ExternalFonts
      |     |
      |     +->*<font name>
      |         [ExternalFonts has a list of font names whose
      |          values are the name of the actual font]
      |
      +-Mac Driver
      |  |
      |  +->AllowVerticalSync
      |  |   [Set to "n" to disable vsync support.]
      |  |
      |  +->CaptureDisplaysForFullscreen
      |  |   [Set to "y" to capture the displays when a full-screen window is presented even if
      |  |    the resolution hasn't been changed. Capturing the displays disables hot corners.]
      |  |
      |  +->UsePreciseScrolling
      |  |   [Set to "n" to emulate a "clicky" mouse wheel. Some programs react badly, usually
      |  |    by scrolling too far, when they get many small scroll wheel events.]
      |  |
      |  +->WindowsFloatWhenInactive
      |      [Controls whether Win32 "TOPMOST" windows stay in front of other apps even when the
      |       Wine process is in the background. Set to "none" to prevent windows from floating
      |       when in the background. Set to "all" to have all TOPMOST windows float. Set to
      |       "nonfullscreen" (the default) to let TOPMOST windows float unless they cover the screen.]
      |
      +-MSHTML
      |  |
      |  +->GeckoPath
      |  |   [Path to the where Gecko engine is installed. Example: "c:\Program Files\wine_gecko".]
      |  |
      |  +->GeckoUrl
      |      [This is the url to the Wine Gecko required by MSHTML.
      |       Default is http://source.winehq.org/winegecko.php.
      |       You can change it to a local file like file://Z:\path\to\wine_gecko.cab
      |       so you don't need to redownload it each time you create a new wineprefix.]
      |
      +-Network
      |  |
      |  +->UseDnsComputerName
      |      [Set to N if you need a persistent NetBIOS ComputerName that possibly
      |       differs from the Unix host name. You'll need to set ComputerName in
      |       HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName]
      |
      +-OpenGL
      |  |
      |  +->DisabledExtensions
      |      [Space separated list of OpenGL extensions that are not reported to applications.
      |       Example: "GL_ARB_vertex_buffer_object GL_ATI_fragment_shader".]
      |
      +-Printing
      |  |
      |  +->PPD Files
      |  |  |  [When CUPS does not find any printers (Wine compiled without CUPS,
      |  |  |   libcups not loadable or required functions not found in libcups),
      |  |  |   then this key must exist to use your printers from "/etc/printcap"]
      |  |  |
      |  |  +->*<printer name> = <PPD File with full Unix path>
      |  |  |    [If no value with the name "PPD file" is found in the registry in
      |  |  |     the settings for a printer ("<printer name>\\PrinterDriverData"),
      |  |  |     then this key is tried next.]
      |  |  |
      |  |  +->"generic" = <the default PPD file with full Unix path>
      |  |        [This PPD file is used when every other key has failed.
      |  |         "wineps.drv" needs a PPD file for every printer.]
      |  |
      |  +->Spooler
      |     |  [You can redirect any printer port to a Unix file or pipe it to a
      |     |   Unix application. This is also useful when a Windows program has
      |     |   disabled the "Redirect to File" option in the Print dialog.]
      |     |
      |     +->*<portname> = <unixfile or "|unix_application">
      |         [All printers with the given portname can be redirected.
      |          Example of unixfile: "LPT1:" = "/tmp/printer_data.ps"
      |          Example of pipe: "LPR:Print with KDE" = "|kprinter" ]
      |
      +->Version
      |   [This is the version of Windows Wine will report.
      |    Values: win10, win81, win8, win7, win2008, vista, win2003, winxp, win2k
      |    Also supported, but less useful these days: nt40,  winme, win98, win95, win31]
      |
      +-VDM
      |  |
      |  +-ppdev
      |     |
      |     +->*<port_number> = </dev/parportN>
      |         [This sets mapping between port_number and /dev/parportN device.
      |           For example  "378  /dev/parport0".]
      |
      +-WineBrowser
      |  |
      |  +->Browsers
      |  |   [List of browsers that Wine will attempt to launch when running winebrowser
      |  |    command or clicking on a link in a Windows application. Default value is
      |  |    xdg-open,firefox,konqueror,mozilla,netscape,galeon,opera,dillo]
      |  |
      |  +->Mailers
      |      [List of mail clients that Wine will attempt to launch when running winebrowser
      |       Default value is xdg-email,mozilla-thunderbird,thunderbird,evolution]
      |
      +-WineDbg
      |  |
      |  +->BreakOnFirstChance
      |  |   [DWORD value. Set this to "0" to let applications handle exceptions themselves.
      |  |    winedbg then only catches exceptions that are not handled by the app,
      |  |    which makes debugging a bit easier.
      |  |    Default value is "1" (enabled)]
      |  |
      |  +->ShowCrashDialog
      |      [DWORD value. Set this to "0" to disable the GUI crash dialog.
      |       Default value is "1" (enabled)]
      |
      +-X11 Driver
         |
         +->ClientSideGraphics
         |   [Set this to "N" if you don't want to use the Dib engine to render client side windows]
         |
         +->ClientSideWithRender
         |   [Set this to "N" if you don't want to use the Render extension to render client side fonts]
         |
         +->ClientSideAntiAliasWithRender
         |   [Set this to "N" to disable font anti-aliasing when X-Render extension is present]
         |
         +->ClientSideAntiAliasWithCore
         |   [Set this to "N" to disable font anti-aliasing when X-Render extension is not present
         |    or disabled]
         |
         +->Desktop (removed as of 2012-10-22. see Explorer->Desktops)
         |   [This key is set to the size (resolution) when you are using the
         |    "Emulate a virtual desktop"-option in winecfg.
         |     The value is used as is (if not "n", "f" or "0") for the X11 geometry.]
         |
         +->GrabFullscreen
         |   [Set this to "Y" to force full-screen windows to capture the mouse.]
         |
         +->GrabPointer
         |   [Set this to "N" to disallow mouse capture.]
         |
         +->Managed
         |   [Set this to "N" to disallow the window manager to control created windows.]
         |
         +->Decorated
         |   [Set this to "N" to disallow the window manager to decorate created windows.]
         |
         +->Synchronous (removed as of 2006-02-24. use "synchronous" debug channel instead)
         |   [In case of X errors it sometimes helps to set it to "Y".]
         |
         +->UseXRandR
         |   [Set this to "N" to prevent wine from switching the resolution using XRandr extension.]
         |
         +->UseXVidMode
             [Set this to "Y" to allow wine switch the resolution using XVidMode extension.]

HKEY_LOCAL_MACHINE (a.k.a HKLM)

|
+-Software
|  |
|  +-Microsoft
|     |
|     +-DirectDraw
|     |  |
|     |  +->ForceRefreshRate      (added in Wine 0.9.58)
|     |      [DWORD value (REG_DWORD): Set this to the refresh rate you wish to
|     |       force for DirectX games.  This is analogous to forcing the refresh
|     |       rate in Windows using dxdiag as described in KB315614 (main article),
|     |       KB230002, and KB217348.  If this key does not exist, the default
|     |       refresh rate will be used.]
|     |
|     +-Internet Explorer
|     |  |
|     |  +->Version
|     |  +->W2kVersion
|     |  |   [Useful to make application believe that you have Internet Explorer
|     |  |   installed (if you set it manually, you might need some IE-provided
|     |  |   dlls). Set them to "6.0.2800.1106" for IE6SP1.]
|     |  |
|     |  +->Build
|     |     [Same as above. Set it to "62800.1106" for IE6SP1.]
|     |
|     |
|     +-Windows
|     |  |
|     |  +-CurrentVersion
|     |     |
|     |     +-Add Paths
|     |        |
|     |        +-IExplore.exe
|     |           [this key explains where to find iexplore.exe.
|     |            It is needed if you install the gecko engine.
|     |            Default: "C:\Program Files\Internet Explorer\iexplore.exe"
|     |            "Path": "C:\Program Files\Internet Explorer;"]
|     |
|     +-Windows NT
|        |
|        +-CurrentVersion
|           |
|           +->FontSubstitutes
|           |   [Define font substitutes.
|           |    For example: "Tahoma"="Arial" will substitute 'Tahoma' font with 'Arial' font.]
|           |
|           +-AeDebug
|              |
|              +->Debugger
|                  [Command to execute on unhandled exception. The environment
|                   variable WINEDEBUG is cleared before execution.
|                   Default: "winedbg --auto %ld %ld"]
|
|
|
--System
   |
   +-CurrentControlSet
      |
      +-Control
      |  |
      |  +-Windows
      |  |  |
      |  |  +->CSDVersion
      |  |      [Current service pack version.
      |  |       On Windows XP, SP2 is 0x00000200 and SP3 is 0x00000300]
      |  |
      |  +-ComputerName
      |  |  |
      |  |  +->ComputerName
      |  |      [Current computer name.
      |  |       Updated automatically from Unix host name unless UseDnsComputerName=N]
      |  |
      |  +-Session Manager
      |     |
      |     +->GlobalFlag
      |     |   [DWORD. Used to enable various internal diagnostics, such as heap checking.]
      |     |
      |     +-Environment
      |        |
      |        +->ComSpec
      |        |   [Location of the system's command prompt.
      |        |    Default: c:\windows\system32\cmd.exe]
      |        |
      |        +->PATH
      |        |   [Path environment variable for searching programs.
      |        |    Default: c:\windows\system32;c:\windows]
      |        |
      |        +->ProgramFiles
      |        |   [Location of the Program Files directory and ProgramFiles environment variable.
      |        |    Default for English: C:\Program Files]
      |        |
      |        +->SYSTEMROOT
      |        |   [Location of the windows system root and SYSTEMROOT environment variable.
      |        |    Default: c:\windows]
      |        |
      |        +->TEMP
      |        |   [Location of the temporary files directory and TEMP environment variable.
      |        |    Default: c:\windows\temp
      |        |
      |        +->TMP
      |        |   [Same as above.]
      |        |
      |        +->USERPROFILE
      |        |   [Location of the user's profile directory and USERPROFILE environment variable.
      |        |    Default: c:\users\<unix username>]
      |        |
      |        +->windir
      |        |   [Location of the windows system root
      |        |    Default: c:\windows]
      |        |
      |        +->winsysdir
      |            [Location of the system libraries directory
      |             Default: c:\windows\system32]
      |
      +-Hardware Profiles
         |
         +-Current
            |
            +-Software
               |
               +-Fonts
                  |
                  +->LogPixels
                      [DWORD value (REG_DWORD): Sets current DPI (font size).
                       Some dialogs resize themselves according to this value.
                       Default: 96 (decimal).]

See also

  • winecfg -- The Wine configuration tool
  • regedit -- The Wine registry editor
  • DirectDraw -- Discussion of performance-related issues (relevant to some registry settings listed here)
  • Debug Channels -- How to turn on and off debug channels (i.e. relay)
  • Wine Man Page -- Documents environment variables which could be an alternative to editing the registry.
This page was last edited on 23 February 2018, at 22:08.