Wine release 1.5.4

The Wine development release 1.5.4 is now available.

What’s new in this release (see below for details):
– A new DirectSound resampler.
– A Negotiate authentication provider.
– OpenGL support in the DIB engine.
– Beginnings of support for .NET mixed assemblies.
– Support routines for Internationalized Domain Names.
– Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.4:

5253 Starcraft/Diablo/ crashes from font metrics problem
5703 SpartanDemo crashes
6775 Sony CD Architect 5.2 crashes on startup (msxml domdoc_createTextNode should access/treat input BSTR data as wide-character string)
9665 Kings Quest 8 “Mask of eternity” crashes at startup
12623 yBook: doesn’t display page textures
14717 resampled sound is horrible
15508 Risk II crash while loading the game
17306 GTA2 Menu Discoloured and Unresponsive
17443 Launchpad Enhanced gets stuck in a loop trying to download updates
17631 LiteStep 0.3 refuses to install due to failing VC++ runtime detection in WinSxS (needs sxs.dll IAssemblyCache::QueryAssemblyInfo implementation)
17826 NotePad++ search in files
18130 VB APPS: Using edit controls context menu crashes application.
18223 Grim Fandango: unable to install
18231 Adobe Acrobat 7, 8 installers fail due to spooler service being disabled by default
18620 Braid puzzle problem
19643 Mankind: Page fault on program start
20220 Missing windowscodecs.dll.WICCreateImagingFactory_Proxy causes failure for many .NET 3.x/4.x (WPF) based installers/apps
21128 Envisioneer 4.5 Express Setup fails to write various data files under Application Data for the “Public” user
21616 Winamp uses 100% of CPU
21939 Several apps/games need “WMVCore.dll”
22060 regedit crashes when a long length key is renamed or deleted
22181 3D Maze screensaver doesn’t work if fullscreen is enabled
22611 WriteWay crashes at startup saying “ActiveX component can’t create object” and outputting OLE errors in terminal
22796 PopCap games installers crash with WinVer >= Vista (shell32 SHGetKnownFolderIDList stub needed)
23928 Missing clickable items in Monopoly Tycoon demo
24625 RSA SecurID Soft Token generator fails to start in 64 bit Ubuntu
24907 Can’t write ‘<’ character in firefox portable
25000 D-Link EMS requires “wsnmp32.dll”
25261 AutoCAD 2009 LT: Running AcDelTree.exe crashes
25672 Microsoft Office Word Viewer 2003 crashes downloading compatibility pack
25777 TurningPointAnyWhere24.exe fails to run (needs “HKCU\Control Panel\Mouse” registry key present)
25980 Duty Calls needs msvcm90.dll (purist) (support for mixed-mode assemblies, containing native and managed code)
26311 Sid Meier’s Railroads needs d3dx9_36.dll.D3DXOptimizeFaces
26709 When moving a Poser window the window is not released after move action
26985 1by1 Player version 1.74 freezes under normal use
27192 Regedit – import failure if reg-file contains ‘;’
27262 Google Chrome: videos show in all tabs (dogfood)
27603 Total Overdose: audio issues with ‘Diesel Power 3D’ sound system
27749 Still Life 2 runs without audio
27808 Celtic Kings crashes on launch (audio related)
27958 Powerpoint 2010 freezes on animations/transitions/slideshows
28061 Can’t connect to Bancho osu! online services (multiplayer,scores,chat…)
28336 MorphVox Pro fails to install
28468 wine chromium browser should not display a Linux native window title bar
29043 Performing searches in CHM files lead to a crash
29344 Multiple apps need Scripting.FileSystemObject implementation (Microsoft Scripting Runtime)
29497 Alonix only plays every other sound effect in menus
29870 unknown application: parse_script parser failed on parsing
30134 Wine on ARM: .init/.text sections passed to assembler need directives to allow for mixed/pure arm32/thumb2 builds (.init section thumb2 libc ctors vs. Wine arm32 ctor)
30137 Depth Hunter unable to take photos without native d3dx9_36 (D3DXSaveSurfaceToFileA not implemented)
30284 Mathematica 6.0 installer fails, reports error 0×80020006 (missing support for IShellDispatch2::IsServiceRunning)
30294 Crash in notepad when loading big text file
30372 UT3 audio echo w/ in-game sound (video sound works normally)
30513 Microsoft Office Communicator 2007 R2 Trial crashes in CDATA event handling while parsing rule XML from resource file
30531 Microsoft SQL Server Management Studio Express 2005: OLEPicture fails to set hotspot coordinates for hand cursor
30536 Avanquest PDF Experte Ultimate 7.0.x installer crashes with stack overflow (hot patching issue)
30543 Multiple apps crash/terminate because K32GetModuleFileNameExW overflows supplied buffer
30558 Multiple app installers fail on missing Session.FeatureRequestState property
30563 WinBuilder v082: Error “Invalid floating point operation.” occuring when running application.
30566 .NET 4.5 (beta) installer: native assembly generation fails due to unimplemented function KERNEL32.dll.FlushProcessWriteBuffers
30568 numeric keypad’s period (decimal point) does not work
30571 Office 2000 installation error at ODBC-driver installation
30573 Give kernel32.GlobalMemoryStatus(Ex) own/separate debug channel, different from +heap (ntdll)
30574 Installation of MS Office 2010, some service doesn’t start
30575 Silence FIXME from FlushProcessWriteBuffers stub to prevent console spam (.NET Framework/SDK installers)
30604 Ultra Fractal 5 hangs when selecting an item in the file browser
30606 Theatre of War 3 Korea installer crashes when clicking on Exit (audio related)
30614 Builtin richedit extremely slow at appending text when window is hidden
30626 Abbyy fine reader 11 needs rpcrt4.dll.RpcServerInqDefaultPrincNameW
30631 Steam client crashes on exit


Changes since 1.5.3:

Akihiro Sagawa (2):
po: Update Japanese translation.
po: Refine Japanese translation to aid understanding.

Alexander E. Patrakov (5):
dsound: Clean up MixToTemporary().
dsound: Replace convert() functions with get() and put().
dsound: Clean up cp_fields.
dsound: Clean up channels.
dsound: Added a windowed-sinc resampler.

Alexandre Julliard (39):
kernel32: Fix buffer overflows in K32GetModuleFileNameExA/W.
gdi32: Add support for clipping source coordinates to the DC device rectangle.
gdi32: Always pass the actual coordinates to the get_pixel_ptr functions.
gdi32: Support drawing to a visible rectangle smaller than the whole bitmap in the DIB engine.
kernel32: Fix another overflow in GetModuleFileNameExW.
gdiplus: CreateDIBSection doesn’t need a DC for the DIB_RGB_COLORS case.
gphoto2.ds: CreateDIBSection doesn’t need a DC for the DIB_RGB_COLORS case.
wined3d: CreateDIBSection doesn’t need a DC for the DIB_RGB_COLORS case.
wing32: Use the correct constant names for CreateDIBSection.
wininet/tests: Add some optional COOKIE_SENT messages in various places.
iphlpapi/tests: Avoid test failures when IPv6 is not supported.
wininet/tests: Add more optional COOKIE_SENT messages.
urlmon/tests: Fix a test failure on COOKIE_SENT status.
urlmon/tests: Allow multiple COOKIE_SENT notifications, and trace received progress messages.
winex11: Remove support for the no longer used GET_GLX_DRAWABLE escape.
winex11: Remove obsolete escapes.
winex11: Update the pixel format through the DCE hook for window DCs to avoid races.
winex11: Always store the GL drawable in the device context.
winex11: Remove redundant code in ChoosePixelFormat.
msi/tests: Skip MsiEnumProductsEx tests if not supported.
wininet/tests: Add even more optional COOKIE_SENT messages.
urlmon/tests: Allow more COOKIE_SENT notifications.
winex11: Give XInitThreads yet another chance.
winex11: Define an enum to manage the various types of GL device contexts.
winex11: Use a standard Wine list for the OpenGL context list.
urlmon/tests: Allow some more optional progress notifications.
gdi32: Add a priority mechanism for pushing drivers on the stack in a defined order.
gdi32: Allow a driver to implement SelectBitmap but not CreateBitmap.
winex11: Add an OpenGL GDI driver.
winex11: Implement wglGetPbufferDCARB with a DC escape and remove it from the GDI driver interface.
winex11: Store the GL-specific information in the GL driver physdev.
ieframe/tests: Mark a failing test as broken.
wine.inf: Unify all the control panel settings.
winex11: Add support for OpenGL rendering in DIBs using an intermediate pixmap.
winex11: Use an intermediate pixmap also for DDBs to handle format mismatches.
gdi32: Pass OpenGL calls through to the display driver from the DIB engine.
opengl32/tests: Add some more tests for bitmap rendering.
wininet/tests: Mark a failing test as broken.
kernel32/tests: Remove a couple of invalid tests.

Andrew Eikum (5):
dsound: Convert from fixed to floating point.
dsound: Don’t derive the secondary position from the primary position.
winmm: Close open wave devices upon process detach.
dsound: Don’t destroy primary buffer until device is released.
winmm: Don’t call MMDevAPI during process exit.

André Hentschel (19):
ntdll: Correctly handle Thumb exceptions on ARM.
winebuild: Expect a Thumb mode toolchain on ARM.
configure: Check for Thumb2 on ARM and compile always in ARM mode.
libwine: Always use Thumb instructions on ARM.
rpcrt4: Avoid shadowing pProcHeader.
wine.inf: Start the spool service when needed.
winapi: Remove ALPHA from the architecture list.
iphlpapi/tests: Add simple tests for the Get*StatisticsEx functions.
d3drm: Implement IDirect3DRMFrameX_AddVisual.
d3drm: Implement IDirect3DRMFrameX_DeleteVisual.
d3drm/tests: Add tests for handling Visuals.
winedbg: Complete the Thumb disassembler.
d3drm: Add IDirect3DRMLight interface.
d3drm: Implement IDirect3DRMFrameX_AddLight.
d3drm: Implement IDirect3DRMFrameX_DeleteLight.
d3drm/tests: Add tests for handling lights.
winspool.drv: Support printer info level 8.
winspool.drv: Also convert printer info for level 8.
winspool: Implement SetPrinterW for level 2.

Aric Stewart (2):
strmbase: Implement BasicAudio.
quartz: Have DSoundRenderer use strmbase BasicAudio.

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

Austin English (7):
user32: Make a few more functions hotpatchable.
shell32: Add a stub SHGetKnownFolderIDList.
kernel32: Add a stub for FlushProcessWriteBuffers.
kernel32: Move GlobalMemoryStatus(Ex) to a different debug channel.
kernel32: Only print a fixme once for FlushProcessWriteBuffers.
wmvcore: Add a stub dll.
wine.inf: Add HKCUControl PanelMouseBeep key.

Christian Costa (26):
dmsynth: COM cleanup of IDirectMusicSynth8. Rename parameters.
dmsynth: Add some clock tests.
dmsynth: COM cleanup of IDirectMusicSynthSink and rename parameters.
dmusic: Add tests to enumerate master clocks.
dmusic: COM cleanup of IDirectMusic8.
dmusic: Implement IDirectMusic8Impl_EnumMasterClock.
dmusic: Check errors in IDirectMusic8Impl_Activate and remove FIXME.
include: Add definition of IKsControl interface in dmksctrl.h.
amstream: Add checks to GetFormat.
amstream: Add the corresponding pin to every media stream added to the media stream filter + add tests.
d3drm: Implement IDirect3DRMFrameX_GetParent and update tests.
d3drm: Implement IDirect3DRMFrameX_GetChildren method and IDirect3DRMFrameArray interface.
dmusic: Midi message takes 4 bytes space but only 3 are relevant.
dmusic: COM cleanup of IDirectMusicInstrument and get rid of separated IUnknown interface.
dmsynth: Create default clock for SynthSink object and assign it to Synth object when callink SetSynthSink.
dmsynth: Add tests for querying IKsControl for Synth and SynthSink objects.
dmsynth: Add stubbed IKsControl interface to DirectMusicSynth object.
dmsynth: Add stubbed IKsControl interface to DirectMusicSynthSink object.
dmusic: Simplify ParseDescriptor by checking DLS header first and exit if it is wrong.
d3drm: Implement IDirect3DRMFrameX_GetTransform.
d3drm/tests: Fix error message.
d3drm: Move some unsafe_impl_from_* call to where variables are declared.
dmsynth: Display new ref in trace for AddRef and Release.
dmsynth: Cleanup QueryInterface methods.
dmusic: Variable spelling fix.
dmusic: Display new ref in trace for AddRef and Release for IDirectMusicInstrument.

Dan Kegel (1):
riched20: Don’t need to redraw when changing selection from none to none.

Daniel Jelinski (1):
oleaut32: Added support for loading cursors in OLEPicture.

Detlef Riekenberg (1):
devenum: Remove tabs and duplicate newlines from TRACE.

Dmitry Timoshkov (10):
gdiplus: Add more traces to font APIs.
winex11.drv: Use XK_KP_Decimal as a fallback if XK_KP_Separator doesn’t work.
gdi32: Add a test for ntmCellHeight calculation.
gdiplus: Derive GpFont from GpFontFamily.
gdi32: Set tmDigitizedAspectX/Y to 96 instead of 300 for consistency.
gdiplus: Retrieve LOGFONT from a GpFont using GdipGetLogFontW instead of accessing it directly.
gdiplus: Use appropriate accessors to calculate font height instead of accessing GpFont internals directly.
gdiplus: Use OUTLINETEXTMETRIC instead of LOGFONT to store GpFont metrics.
gdiplus: Fetch font family metrics from truetype font data.
gdiplus: Add a bunch of tests for internal font metrics.

Dylan Smith (2):
richedit: Remove always FALSE parameter from ME_PaintContent.
richedit: Avoid scanning all text for paragraphs to invalidate.

Eric Pouech (2):
winedbg: Fix printing of fp registers for x86_64 CPU.
winegcc: Try harder to find out whether the compiler is from gcc family.

Erich Hoover (5):
ws2_32/tests: AcceptEx IOCP initialization cleanup.
ws2_32/tests: Test for AcceptEx IOCP behavior for cancelled sockets.
ws2_32/tests: Test for AcceptEx IOCP behavior for a duplicated handle.
ws2_32/tests: Test for IOCP behavior without AcceptEx call.
ws2_32/tests: Fix cleanup for first IOCP duplicated handle test.

Francois Gouget (10):
iphlpapi/tests: Fix compilation on systems that don’t support nameless unions.
msi: Tweak msiexec’s usage message.
kernel32: Some English (United States) spelling fixes.
po: English (neutral / Great Britain) spelling fixes.
wldap32: An English (United States) spelling fix.
comdlg32: An English (United States) spelling fix.
regedit: An English (United States) spelling fix.
d3dx9_36/tests: Add a trailing ‘n’ to an ok() call.
strmbase: The strmbase debug channel is unused in a couple of files so remove it.
mscoree: Make assembly_rva_to_va() and parse_headers() static.

Frédéric Delanoy (2):
po: Update French translation.
po: Update French translation.

Hans Leidekker (19):
fusion: CreateAssemblyNameObject is no longer a stub.
fusion: Add locking around operations on the assembly cache.
sxs: Add some helper functions.
sxs: Implement IAssemblyCache::UninstallAssembly.
sxs: Add locking around operations on the assembly cache.
msi: Add support for uninstalling global assemblies.
msi: Remove a workaround for missing Windows Script interfaces.
msi: Add the Session object as a global member to custom action scripts.
msi: Fix a couple of DispGetParam calls.
msi: Resolve the target path for the ODBC driver file if necessary.
advapi32: Return a fake handle from EventRegister.
advapi32: Add stub implementations of EventUnregister and EventWrite.
rpcrt4: Add a stub implementation of RpcServerInqDefaultPrincNameA/W.
secur32: Fix potential leaks of the NTLM session key.
secur32: Remove some unused variables.
secur32: Update NTLM capabilities to match native.
secur32: Add an option to disable use of cached Samba credentials.
secur32: Implement a Negotiate provider that forwards to NTLM.
secur32/tests: Add tests for the Negotiate provider.

Henri Verbeet (25):
d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetIndices().
d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetStreamSource().
d3d9: Properly retrieve an interface pointer in d3d9_texture_2d_GetSurfaceLevel().
d3dx9: Use proper size types in D3DXLoadSurfaceFromMemory().
d3dx9: Add a FIXME for unsupported filter types to D3DXLoadSurfaceFromMemory().
d3d9: Properly retrieve an interface pointer in d3d9_texture_2d_LockRect().
d3d9: Properly retrieve an interface pointer in d3d9_texture_2d_UnlockRect().
d3d9: Properly retrieve an interface pointer in d3d9_texture_cube_GetCubeMapSurface().
d3dx9: Cleanup parameter names for D3DXLoadSurfaceFromMemory().
wined3d: Keep track of “all_vbo” in the stream info structure.
d3d9: Properly retrieve an interface pointer in d3d9_texture_cube_LockRect().
d3d9: Properly retrieve an interface pointer in d3d9_texture_cube_UnlockRect().
d3d9: Properly retrieve an interface pointer in d3d9_texture_3d_GetVolumeLevel().
wined3d: Figure out the index size inside drawPrimitive().
wined3d: Figure out the index data pointer inside drawPrimitive().
d3d9: Properly retrieve an interface pointer in d3d9_texture_3d_LockBox().
d3d9: Properly retrieve an interface pointer in d3d9_texture_3d_UnlockBox().
ddraw: Get rid of the flag_info typedef.
wined3d: The wined3d object doesn’t need a parent.
wined3d: Determine index buffer location based on vertex buffer locations.
ddraw: Get rid of the member_info typedef.
d3d8: Add a separate function for d3d8 initialization.
d3d8: Get rid of IDirect3D8Impl.
wined3d: Use the wined3d_matrix structure for the identity matrix.
wined3d: Properly check for transformed position in buffer_check_attribute().

Hwang YunSong (1):
po: Update Korean translation.

Jacek Caban (31):
oleaut32: Added BSTR cache implementation.
wininet: Use hostname stored in server_t in NETCON_secure_connect.
jscript: Added support for VT_I2 in disp_propget.
jscript: Added support for VT_I2 in disp_call.
jscript: Added support for VT_I2 in invoke_prop_func.
jscript: Added VT_I2 tests.
oleaut32: SysStringLen code clean up.
oleaut32: SysStringByteLen code clean up.
mshtml.idl: Added DispHTMLHistory declaration.
mshtml: Added IHTMLWindow2::get_history implementation.
oleaut32: Use a struct for internal BSTR representation to avoid pointer magic.
oleaut32: Added warn+heap support for cached BSTRs.
jscript: Properly test if double may be converted to int32.
jscript: Better handling of to_integer result in Array.splice.
jscript: Better handling of to_integer result in String.charAt.
jscript: Better handling of to_integer result in String.charCodeAt.
jscript: Bettter handling of to_number result in String.indexOf.
jscript: Better handling of to_integer result in String.lastIndexOf.
jscript: Better handling of to_integer result in String.slice.
jscript: Better handling of to_integer result in String.substring.
jscript: Better handling of to_integer in String.substr.
jscript: Return double from to_integer.
wininet: Clean up HTTP_QUERY_STATUS_CODE tests.
wininet: Store status code in http_request_t and use it in set_content_length.
wininet: Use stored status code in HTTP_HttpSendRequestW.
wininet: Use stored status code in HTTP_HttpEndRequestW.
wininet: Added special case for HTTP_QUERY_STATUS_CODE in HttpQueryInfo.
wininet: Set status code OK for responses without headers.
jscript: Skip failing tests on old jscript versions.
jscript: Added support for VT_INT.
mshtml: Fixed tests on old IEs.

Jeff Muizelaar (1):
gdi32: Improve performance of common case of AlphaBlend.

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

Józef Kucia (11):
d3dx9: Add partial DDS support implementation for D3DXGetImageInfo functions.
d3dx9: Implement conversion from DDS pixel format to D3DFORMAT.
ddraw: Correct wrong comment in ddraw.h.
d3dx9: Implement mapping from WICPixelFormat GUIDs to D3DFORMATs.
d3dx9: Forward D3DXSaveSurfaceToFileA to D3DXSaveSurfaceToFileW.
d3dx9: Implement D3DXSaveSurfaceToFileW.
d3dx9: Implement the pixel format conversion in D3DXSaveSurfaceToFileW.
d3dx9/tests: Add tests for D3DXSaveSurfaceToFile.
d3dx9/tests: Use consistent naming for DDS defines.
d3dx9: Print a real pixel format in a FIXME message.
d3dx9/tests: Move tests for texture functions from surface.c to texture.c.

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

Matteo Bruni (4):
d3dcompiler: Remove shader_type typedef.
d3dcompiler: Make set_parse_status() more general.
d3dcompiler: Generalize message reporting function.
d3dcompiler: Rename asm_alloc/realloc/free functions to more generic names.

Michael Mc Donnell (2):
d3dx9: Added D3DXOptimizeFaces semi-stub.
d3dx9: Added D3DXOptimizeFaces test.

Michael Stefaniuc (1):
strmbase: Print the debug string and not the pointer to it.

Nikolay Sivov (9):
msxml3: Use dispex support for IDispatch implementation of process instruction node.
msxml3: Test for attribute value normalization.
shell32: Added a stub for IShellDispatch2.
msxml3: Make ::put_data() use passed BSTR as general WCHAR buffer.
shell32: Implement IShellDispatch2::IsServiceRunning().
msxml3: Protect content callbacks from being called on reset content handler pointer.
msxml3: Add a helper to check that lexical handler is set.
msxml3/tests: Correct variant type.
msxml3/tests: Really test load() on files with leading spaces.

Piotr Caban (7):
kernel32: Support multiple labels in IdnToNameprepUnicode.
kernel32: Added IdnToAscii implementation.
kernel32/tests: Added IdnToAscii tests.
kernel32: Added IdnToUnicode implementation.
kernel32/tests: Added IdnToUnicode tests.
comctl32: LVM_SETITEMTEXT is not supported on LVS_OWNERDATA.
comctl32: Make icons not overlapping in LVS_ICON mode.

Stefan Leichter (1):
wsnmp32: New stub dll.

Thomas Faber (3):
jscript: Add missing port.h include for isnan.
msvcrt: Fix malloc_func_t/free_func_t calling convention.
rpcrt4/tests: Fix build with PSDK headers.

Vincent Povirk (20):
mscoree: Detect when a CLR DLL requests vtable fixups.
mscoree: Use the main HMODULE in _CorExeMain instead of loading a new exe.
mscoree: Change _CorDllMain fixme to a trace.
winebuild: Allow angle brackets in export names.
msvcm80: Add stub dll.
msvcm80: Add stub DoDllLanguageSupportValidation function.
msvcm80: Add stub RegisterModuleUninitializer function.
msvcm80: Add __setusermatherr_m stub.
msvcm90: Add new dll based on msvcm80.
windowscodecs: Implement WICCreateImagingFactory_Proxy.
windowscodecs: Add wrapper functions for IWICImagingFactory methods.
windowscodecs: Add wrapper functions for IWICFastMetadataEncoder.
windowscodecs: Add wrapper for IWICColorContext_InitializeFromMemory.
windowscodecs: Add wrapper functions for IWICBitmapSource methods.
mscoree: Implement vtable fixups.
windowscodecs: Add wrapper functions for IWICBitmapLock methods.
windowscodecs: Add wrapper for IWICBitmapFlipRotator_Initialize.
windowscodecs: Add wrapper functions for IWICBitmap methods.
windowscodecs: Add wrapper functions for IWICPalette methods.
windowscodecs: Add wrapper functions for IWICComponentInfo methods.

Alexandre Julliard

Comments are closed.