Difference between revisions of "Useful Registry Keys"
(Add SampleCount) |
(Add CheckFloatConstants) |
||
Line 58: | Line 58: | ||
| | introduces fallbacks in some drivers and exposes bugs in others. There may be a | | | 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; set to "disabled" to disable.] | | | performance hit depending on the specific driver. Enabled by default since wine-1.5.10; set to "disabled" to disable.] | ||
+ | | | | ||
+ | | +->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.] | ||
| | | | | | ||
| +->DirectDrawRenderer | | +->DirectDrawRenderer |
Revision as of 11:52, 16 July 2016
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:
- In a terminal, type wine regedit and hit enter
- Open the tree on the left to the section where you need to add it (e.g., HKEY_CURRENT_USER\Software\Wine)
- Select the section you are going to add the new key to (e.g., Wine)
- Right click and select New->Key
- Type the name of the new key (taken from the list below)
- 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; set to "disabled" to disable.] | | | +->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.] | | | +->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.] | | | +->MaxShaderModelGS | | [DWORD Value (REG_DWORD): Limit the maximum supported shader model for geometry shaders. | | Set to 0 to disable support for geometry 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) 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)] | | | +->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.] | | | +->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 | | [Sets the amount of reported video memory (in megabytes). The default is a simple | | auto-detection based on the card type guessed from OpenGL capabilities.] | | | +->VideoPciDeviceID | | [DWORD Value (REG_DWORD): sets the pci device id of the video card. See next value.] | | | +->VideoPciVendorID | [DWORD Value (REG_DWORD): sets the pci vendor id of the video card. By default Wine estimates | these values based on OpenGL info but this doesn't work well in all cases. If you want to | override our estimates check the output of e.g. lspci -n on Linux. For a video card this | could show 05:00.0 0300: 10de:0402 (rev a1). In this result 0x10de (Nvidia) is the pci vendor | id and '0x0402' (Geforce 8600GT) is the pci device id. The '0x0300' means video card.] | +-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: vista, win2003, winxp, win2k, winnt, 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:\windows\Profiles\<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.