The Wine development release 1.5.6 is now available.

What's new in this release (see below for details):
  - Automatic installation of the Mono add-on package.
  - Control panel applet for joysticks.
  - Device bitmap rendering now done through the DIB engine.
  - Support for video rendering through DirectX (VMR-9).
  - First steps towards a D3D shader compiler.
  - Build fixes for DragonFly BSD.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.5.6.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.5/wine-1.5.6.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

You will find documentation on http://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

----------------------------------------------------------------

Bugs fixed in 1.5.6:

  11482  Airline Tycoon Demo fails to start
  11895  GeoControl installer hangs
  13186  Warcraft III TFT fails to start with prefixes never used by <wine-0.9.61
  15092  Adobe Flash Player 9 and 10: movies and images are messed up
  16209  The Lord of the Rings Online: Mines of Moria doesn't start
  17893  The Alien Nations / Die Völker crashes: amstream GetFormat stub
  21460  Construct 0.99.8 "File" menu does not work
  23706  d3dx9_36.dll.D3DXSaveSurfaceToFileInMemory is needed by Ship Simulator 2008 demo, King's Bounty demo
  24210  Sound does not work in Big Fish Games when acceleration is set to full
  25103  Medieval Total War Gold DVD Italian - Unload the debugger error
  25287  Rise of Nations Gold Edition Nuclear Blast Effect Looks Awful
  25533  Machinarium window does not show any contents and hangs desktop
  25535  .NET Framework 4.0 Fails to install with HRESULT 0x80070643
  26203  ie7 can connect to https://mail.google.com, but not https://gmail.com ?
  26476  builtin IE cannot open https://ebank.njcb.com.cn:8001/perbank/logon.jsp
  26928  Midi messages MTC trashed
  27690  Just Cause crashes on first level load (texture resolution 'high')
  27939  SQLyog crashes when displaying data
  28486  Office Professional Plus 2010 install fails without machine.config file (does not need it on Windows)
  28799  d3dx9_36/tests/mesh.ok: memcpy source and destination overlap in weld_float16_2() triggered by test_weld_vertices()
  28898  Blizzard Launcher/Installer needs AcceptEx improvements (Affects WoW, D3...)
  29359  DSOUND_BufPtrDiff: Assertion `ptr1 < buflen' failed.
  29561  graphedt crash while expand "DirectShow Filters"
  30249  Sanitarium crashes/hangs frequently with OpenGL renderer
  30659  GTAVC crashes when car is visible at some angle
  30705  usb joystick not working with virtuanes
  30719  SmartFTP 4.0 crashes on startup (crypt32 CertCreateSelfSignCertificate failure)
  30729  EVE Online crashes on attempt to move window
  30766  Microsoft SQL Server Management Studio Express 2005: hangs with .NET Fatal Execution Engine Error
  30777  Dr.com v3.71 infinitely asks for reboot due to missing registry entry
  30781  Construct needs D3DXSaveTextureToFileInMemory
  30784  CodeJock's XTPToolBar renders transparent areas of icons black
  30799  "automatically grab mouse in full-screen windows" doesn't grab mouse with regard to Gnome 3 tray bar
  30818  BMFont crashes on startup with Unhandled page fault
  30842  Take Command 14 from JPSoftware wants KERNEL32.dll.SetConsoleIcon
  30848  Windows 8 release preview upgrade assistent crashes due to unimplemented function ntdll.dll.NtQuerySystemEnvironmentValueEx
  30854  OSForensics crashes on 1st launch
  30868  Wine has troubles installing dotnet20 (using winetricks) and doesn't run some games like osu! or Path of Exile (which worked before)

----------------------------------------------------------------

Changes since 1.5.5:

Akihiro Sagawa (2):
      readme: Update Japanese translation.
      po: Update Japanese translation.

Alexandre Julliard (29):
      gdi32: Improve support of bitmaps without a color table in PutImage.
      gdi32: Fix StretchBlt color mapping for monochrome bitmaps without a color table.
      gdi32/tests: Add some more tests for monochrome bitmap blits.
      gdi32: Always use the DIB engine for DDB rendering.
      gdi32: Remove the null driver Get/PutImage fallbacks for bitmaps.
      gdi32: Add a helper function that implements GetImage on a bitmap.
      gdi32: Add a helper function that implements PutImage on a bitmap.
      winedbg: Fix some pointer conversion warnings.
      gdi32: Remove the bitmap parameter from the Get/PutImage entry points.
      gdi32: Remove the CreateBitmap and DeleteBitmap driver entry points.
      winex11: XRender repeat mode is no longer needed in functions that use a DC.
      winex11: Always allocate a new GC for bitmap operations.
      winex11: Remove the support for device-dependent bitmaps.
      ntdll: Export _local_unwind.
      appwiz.cpl: Specify a default download URL for add-ons.
      setupapi: Add support for a WinePreInstall section for registry keys that need to be created before anything else.
      gdi32: Make sure the bounds are always updated in ExtTextOutW.
      gdi32: Move DC hook private definitions out of wingdi.h.
      gdi32: Don't implement the gamma ramp functions in the DIB driver.
      gdi32: Keep the source DC locked until the end in StretchBlt and AlphaBlend.
      winex11: Use XGetKeyboardMapping instead of XKeycodeToKeysym.
      winex11: Don't free a variable that is no longer allocated on the heap.
      gdi32: Take into account the DIB rectangles when determining overlap for blits.
      gdi32: Clip output to both the DIB visible rectangle and the total DIB extents.
      shell32: Use a default icon for control panels without one.
      shell32: Convert the control panel list to a standard list.
      shell32: Remove the applet valid flag and improve the error handling.
      mountmgr.sys: Don't try to close the dbus connection.
      libwine: Avoid memrchr.

Alistair Leslie-Hughes (2):
      mscoree: Use .NET 2.0 for 1.0 assemblies.
      mscoree: Correct possible uninitialized variable (clang).

André Hentschel (39):
      kernel32: Add stub for SetThreadStackGuarantee.
      server: Add checks for DragonFly BSD.
      kernel32: Add checks for DragonFly BSD.
      loader: Add check for DragonFly BSD.
      libwine: Add checks for DragonFly BSD.
      d3drm: Implement IDirect3DRMDeviceX_[Get|Set]Dither.
      d3drm: Implement IDirect3DRMDeviceX_[Get|Set]Quality.
      d3drm: Implement IDirect3DRMDeviceX_[Get|Set]RenderMode.
      d3drm: Implement width and height handling in device interfaces.
      d3drm: Improve stub for IDirect3DRMWinDevice_HandleActivate.
      d3drm: Implement IDirect3DRMLight_[Get|Set]Type.
      d3drm: Implement IDirect3DRMLight_[Get|Set]Color and IDirect3DRMLight_SetColorRGB.
      d3drm: Implement IDirect3DRMLight_[Get|Set]Range.
      ntdll: Enhance FreeBSD checks to also check for DragonFly BSD when appropriate.
      ntdll: Add default COM device for DragonFly BSD.
      ntdll: Change default COM device for FreeBSD 8.0.
      ntdll: Get the unix tid on DragonFly BSD.
      iphlpapi: Fix check for icmpstat.icps_outhist.
      iphlpapi: Check for the right IP statistics structure name (for DragonFly BSD).
      iphlpapi: Check for the right TCP statistics structure name (for DragonFly BSD).
      ntdll: Add a helper function that returns the record length of a dirent struct.
      libwine: Improve bin directory detection on kFreeBSD and DragonFly BSD.
      ntdll: Add stub for NtQuerySystemEnvironmentValueEx.
      kernel32/tests: Add tests for LCMapStringEx.
      d3drm: Implement IDirect3DRMLight_[Get|Set]ConstantAttenuation.
      d3drm: Implement IDirect3DRMLight_[Get|Set]LinearAttenuation.
      d3drm: Implement IDirect3DRMLight_[Get|Set]QuadraticAttenuation.
      d3drm: Implement IDirect3DRMLight_[Get|Set]Umbra.
      d3drm: Implement IDirect3DRMLight_[Get|Set]Penumbra.
      d3drm: Implement IDirect3DRMViewportX_[Get|Set]Back.
      d3drm: Implement IDirect3DRMViewportX_[Get|Set]Front.
      d3drm: Implement IDirect3DRMViewportX_[Get|Set]Field.
      d3drm: Implement IDirect3DRMViewportX_[Get|Set]Projection.
      d3drm: Improve IDirect3DRMViewportX_Clear stub.
      d3drm: Improve IDirect3DRMViewportX_Render stub.
      d3drm: Improve IDirect3DRMDeviceX_Update stub.
      d3drm: Improve IDirect3DRMWinDevice_HandlePaint stub.
      iphlpapi: Check for struct udpstat (for NetBSD).
      iphlpapi: Check for struct icmpstat (for NetBSD).

Aric Stewart (11):
      usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Arabic.
      usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Hebrew.
      usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Syriac.
      usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Thaana.
      usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Thai.
      usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Lao.
      usp10: Correct glyph caching beyond the BMP.
      quartz: Implement default Surface Allocator for vmr9.
      quartz: Allocate surfaces in VMR-9.
      quartz: Create the rendering window for VMR-9.
      quartz: Hookup the VMR-9 to directX and the Allocator-Presenter.

Aurimas Fišeras (1):
      po: Update Lithuanian translation.

Austin English (2):
      wine.inf: Add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9\Catalog_Entries registry entry.
      kernel32: Add a stub for SetConsoleIcon.

Christian Costa (15):
      d3drm: Implement IDirect3DRMFrameXImpl_GetLights and IDirect3DRMLightArray interface.
      d3drm: Implement IDirect3DRMMesh_GetGroupTexture.
      d3drm: Implement IDirect3DRMMeshImpl_GetGroupMaterial.
      d3drm: Generate normals automatically when there are not present in the x file.
      d3drm: Handle material list in mesh.
      d3drm: Implement IDirect3DRMMeshImpl_SetGroupMaterial and forward material from mesh builder to created mesh.
      d3drm: Implement IDirect3DRMMeshBuilderX_SetColor and IDirect3DRMMeshBuilderX_SetColorRGB.
      d3drm: Implement IDirect3DRMMesh_GetGroupColor.
      d3drm: Load mesh color to mesh builder.
      d3drm: Implement IDirect3DRMMeshImpl_SetGroupColor.
      d3drm: Pass mesh builder color to newly created mesh.
      d3drm: Implement IDirect3DRMMesh_SetGroupTexture.
      d3drm: Pass texture of mesh builder to newly created mesh.
      d3drm: Fix SetMaterial macros.
      d3drm: Implement IDirect3DRMMeshBuilderX_SetMaterial.

Damjan Jovanovic (1):
      libwine: Improve bin directory detection on FreeBSD.

Daniel Jelinski (9):
      ntdll: Add missing parameters to syscall call.
      kernel32: Make SetThreadStackGuarantee stub return TRUE.
      regedit: Make key names editable also with native comctl32.
      regedit: Adding new subkey to a key with no subkeys now works with native comctl32.
      comdlg32: Fixed support for deleting items other than the first.
      comdlg32: Make tests pass with native comctl32.
      shell32: Make folder names in folder picker editable.
      comctl32: Allow label edit only if treeview style allows editing.
      comctl32/tests: Treeview shouldn't modify cChildren if it was explicitly set.

Detlef Riekenberg (4):
      ntdll: Implement RtlGetProductInfo.
      kernel32/tests: Add tests for GetProductInfo.
      kernel32/tests: Remove debug code from GetProductInfo.
      localui/tests: Do not fail when the spooler service was stopped.

Dmitry Timoshkov (17):
      windowscodecs: Fix the test for rational IFD tag.
      windowscodecs: Add support for preferred vendor guid in CreateDecoderFromStream.
      windowscodecs: Extend IWICImagingFactory to IWICComponentFactory.
      gdi32/tests: GetGlyphOutline should fail for a bitmap font.
      oleaut32: Recognize icon and cursor in the being loaded data.
      oleaut32: Explicitly initialize idReserved field in the icon directory header.
      oleaut32: Simplify bitmap saving code.
      oleaut32: Always write header to stream when saving an icon.
      oleaut32: Add a test for saving an icon into a stream.
      gdi32: Fix parameters of some GDI stock fonts.
      server: Make sure that region and rectangle have the same origin before calling rect_in_region().
      windowscodecs: Add a stubbed out IWICMetadataBlockReader to TIFF decoder.
      kernel32: Print in the CopyFileW trace also fail_if_exists parameter.
      windowscodecs: Protect from invalid input some metadata handler methods.
      windowscodecs: Implement MetadataHandler_GetCount.
      windowscodecs: Add WICIfdMetadataReader stub implementation.
      windowscodecs: Add WICIfdMetadataReader registration.

Eric Pouech (1):
      dbghelp: Use build-id information to locate debug information (and prefer it over .debug_link when both are present).

Erich Hoover (3):
      server: Access the completion from the file descriptor instead of the async object.
      server: STATUS_MORE_PROCESSING_REQUIRED indicates that an async operation should not send a completion.
      ws2_32: Use STATUS_MORE_PROCESSING_REQUIRED to indicate that the AcceptEx async should not send a completion.

Francois Gouget (8):
      wined3d: We must include Wine's port.h before using NAN.
      wineqtdecoder: Fix the spelling of a QTSplitter_loading_thread() variable.
      msvcp90: Add a trailing '\n' to a TRACE() message.
      Assorted spelling fixes.
      windowscodecs/tests: Fix compilation on systems that don't support nameless structs.
      d3dcompiler_43: Make debug_{base,node}_type() static.
      quartz: Make VMR9_{Break,Complete}Connect() static.
      iphlpapi: Don't rely on the HAVE_XXX macros having a numeric values.

Gerald Pfeifer (2):
      dbghelp: Avoid unconditional use of NT_GNU_BUILD_ID.
      ntdll: Omit unused typedef in test_query_timeofday.

Hans Leidekker (3):
      msi: Don't terminate the string in msi_id2stringA.
      msi: Don't create empty values for special registry entries.
      fusion: Account for the version prefix when building the file mask.

Henri Verbeet (20):
      wined3d: Properly preload index buffers.
      ddraw/tests: Move test_window_style() to ddraw7.c.
      ddraw/tests: Add test_window_style() for older ddraw versions.
      d3d9: Get rid of IDirect3DDevice9Impl.
      d3d9: Get rid of IDirect3DVolume9Impl.
      wined3d: Use NAN.
      ddraw/tests: Move test_redundant_mode_set() to ddraw7.c.
      ddraw/tests: Add test_redundant_mode_set() for older ddraw versions.
      d3d9: Get rid of IDirect3DSwapChain9Impl.
      d3d9: Get rid of IDirect3DSurface9Impl.
      wined3d: Update nouveau card info.
      ddraw/tests: Move test_coop_level_mode_set() to ddraw7.c.
      d3d9: Get rid of IDirect3DVertexBuffer9Impl.
      d3d9: Get rid of IDirect3DIndexBuffer9Impl.
      ddraw/tests: Add test_coop_level_mode_set() for older ddraw versions.
      ddraw/tests: Split up test_initialize().
      ddraw/tests: Split up test_coop_level_surf_create().
      d3dx9: Use wine_dbgstr_rect() in some more places.
      d3d9: Get rid of IDirect3DStateBlock9Impl.
      d3d9: Get rid of IDirect3DVertexDeclaration9Impl.

Huw Davies (2):
      include: Add a couple of missing printer status values.
      winspool: Change get_dword_from_reg to accept a unicode value name.

Jacek Caban (37):
      urlhist.idl: Added missing flags.
      wininet: Handle error flags only for masked-error mode.
      wininet: Fixed grouping security error flags.
      wininet: Get rid of no longer used serverName and serverPort from http_session_t.
      port.h: Added NAN macro.
      jscript: Get rid of ret_nan hack.
      jscript: Get rid of num_set_nan hack.
      mshtml: Fixed Exec_ShellDocView_84 tests.
      jscript: Added missing port.h include to lex.c.
      wininet: Use CRLF separator in INTERNET_CERTIFICATE_INFO.
      mshtml: Added IWindowForBindingUI stub implementation.
      mshtml: Added support for BSCallback::QueryService(IID_IWindowForBindingUI).
      mshtml: Forward BSCallback::QueryService call to document.
      mshtml: Added IWindowForBindingUI tests.
      urlmon: Set INTERNET_ERROR_MASK_COMBINED_SEC_CERT flag for HTTP requests.
      urlmon: Correctly handle BINDF_NO_UI in handle_http_error.
      dxgi.idl: Added IDXGIKeyedMutex declaration.
      wininet: Properly set security flags for ERROR_INTERNET_SEC_CERT_DATE_INVALID.
      urlmon: Added support for more error codes in handle_http_error.
      wininet: Set correct security flags in InternetErrorDlg for ERROR_INTERNET_SEC_CERT_ERRORS.
      ieframe: Added IHttpSecurity implementation.
      wininet: Added support for undocumented InternetQueryOption(98).
      wininet: Added InternetGetSecurityInfoByURL* stubs.
      wininet: Properly set flags in InternetSetOption(INTERNET_OPTION_SECURITY_FLAGS).
      wininet: Improved handling ERROR_INTERNET_INVALID_CA error.
      wininet: Added support for undocumented InternetSetOption(99) call.
      wininet: Store request object instead of handle in error dialog.
      wininet: Set SECURITY_FLAG_SECURE when error dialog ignores invalid certificate.
      wininet: Added support for ERROR_INTERNET_SEC_CERT_REV_FAILED in InternetErrorDlg.
      wininet: Added more security flags and errors tests.
      urlmon: Improved ERROR_INTERNET_SEC_CERT_REV_FAILED error handling.
      wininet: Simplify proxy server access in dialogs.
      wininet: Access directly host name from request object in dialogs.
      wininet: Access request object directly in WININET_SetAuthorization.
      wininet: Read status code directly from request object in InternetErrorDlg.
      wininet: Skip security flags tests on too old wininet versions.
      widl: Added --help command line option.

Juan Lang (6):
      crypt32/tests: Don't shadow a variable with a variable of a different type.
      crypt32/tests: Add more tests of CertCreateSelfSignCertificate and the CERT_KEY_PROV_INFO parameter.
      crypt32: Don't fail if HCRYPTPROV and PCRYPT_KEY_PROV_INFO parameters are both non-NULL.
      crypt32: Fail earlier if CryptExportPublicKeyInfo fails.
      crypt32/tests: Add more tests for CertCreateSelfSignCertificate.
      crypt32: Initialize key spec correctly.

Julian Rüger (1):
      po: Update German translation.

Józef Kucia (17):
      windowscodecs: Implement IWICStream::InitializeFromIStream.
      d3dx9: Implement D3DXSaveSurfaceToFileInMemory.
      d3dx9: Forward D3DXSaveTextureToFile to D3DXSaveTextureToFileInMemory.
      d3dx9: Implement D3DXSaveTextureToFileInMemory.
      d3dx9/tests: Add tests for D3DXSaveTextureToFileInMemory.
      d3dx9/tests: Add tests for DDS header handling.
      windowscodecs/tests: Fix the expected values in some ok() messages.
      d3dx9/tests: Add tests for loading surfaces from non-lockable render targets.
      d3dx9/tests: Fix indentation.
      d3dx9: Add stub for D3DXCreateRenderToSurface.
      d3dx9/tests: Add basic tests for D3DXCreateRenderToSurface.
      d3dx9: Add ID3DXRenderToSurface interface stub.
      d3dx9: Implement ID3DXRenderToSurface::GetDesc.
      d3dx9: Implement ID3DXRenderToSurface::GetDevice.
      d3dx9: Implement ID3DXRenderToSurface::BeginScene and ID3DXRenderToSurface::EndScene.
      d3dx9/tests: Add tests for ID3DXRenderToSurface interface.
      d3dx9/tests: Add tests for device state changes for ID3DXRenderToSurface interface.

Ken Thomases (1):
      winex11: Be more conservative when matching keys from built-in layout tables.

Kimmo Myllyvirta (1):
      wined3d: Add NVIDIA GeForce GTX 680.

Lauri Kenttä (2):
      po: Update Finnish translation.
      po: Update Swedish translation.

Lucas Zawacki (8):
      dinput: Implement GetProperty for JOYSTICKID (Linux driver).
      dinput: Implement GetProperty for JOYSTICKID (LinuxInput driver).
      dinput/tests: Added a test for DIPROP_JOYSTICKID.
      joy.cpl: First version of the joystick configuration applet.
      joy.cpl: Added joystick listing.
      joy.cpl: Added joystick testing tab and button tests.
      joy.cpl: Added a Graphical Axis test.
      joy.cpl: Added trace messages to show joystick input.

Matteo Bruni (9):
      d3dcompiler: Use a separate bytecodewriter debug channel.
      d3dcompiler: Flesh out the lexer more.
      d3dcompiler: Add identifiers parsing.
      d3dcompiler: Parse variable declarations.
      d3dcompiler: Dump preprocessed shader sources.
      d3dcompiler: Distinguish between scalars, vectors and matrices.
      d3dcompiler: Parse modifiers.
      d3dcompiler: Parse variable initializers, basic expressions.
      d3dcompiler: Parse variable references in expressions.

Michael Geddes (1):
      kernel32: Add timed wait capability flag to COMM Port properties.

Michael Stefaniuc (9):
      user32/tests: Fix the expected values in some ok() messages.
      shlwapi/tests: Fix the expected value in an ok() message.
      msxml3/tests: Fix the expected values in some ok() messages.
      include: Move "inline" right after the storage specifier.
      d3drm/tests: Remove stray backslashes at end of lines.
      comctl32/tests: Remove stray backslashes at end of lines.
      msctf: Remove a stray backslash at the end of a line.
      wineqtdecoder: Remove duplicated assert.h include.
      mscoree: Remove duplicated include.

Oleksij Rempel (2):
      shell32: Return empty list instead of NULL.
      krnl386.exe: Fix drive spec in get_media_id call.

Piotr Caban (9):
      msvcrt: Fixed typo in DEFINE_EXCEPTION_TYPE_INFO macro.
      msvcrt: Handle rethrown exception in cxx_frame_handler.
      msvcp90: Added partial basic_ostream<char> implementation.
      msvcp90: Fix streamoff and streampos definition.
      msvcp90: Rename sentry_char_{create,destroy} functions.
      msvcp90: Call correct setstate function in basic_ostream class.
      msvcp90: Added partial basic_istream<char> implementation.
      msvcp90: Added codecvt_base class implementation.
      msvcp90: Added codecvt<char> implementation.

Rico Schüller (1):
      d3dx9: Crop the input in ID3DXBaseEffect::SetBool().

Roderick Colenbrander (1):
      winex11.drv: Limit formats to nMaxFormats in wglChoosePixelFormatARB.

Stefan Leichter (2):
      kernel32: Fix OutputDebugStringA called with NULL pointer.
      setupapi: Add stub for SetupAddToSourceListA.

Vincent Povirk (11):
      propsys: Add test for saving/loading an empty property store.
      mscoree: Install Wine Mono on prefix update.
      wine.inf: Do not install .NET registry keys and fake dlls.
      windowscodecs: Add tests for IWICMetadataBlockReader on handler classes.
      Revert "windowscodecs: Add a stubbed out IWICMetadataBlockReader interface.".
      wine.inf: Add .NET keys to the 64-bit registry.
      windowscodecs: Add test for IWICMetadataBlockReader interface.
      windowscodecs: Add stub IWICMetadataBlockReader to PNG decoder.
      include: Add declarations for metadata handler info interfaces.
      windowscodecs: Add test for IWICMetadataReaderInfo.
      windowscodecs: Add metadata reader information to the registry.

--
Alexandre Julliard
julliard@winehq.org
