Wine Announcement

The Wine development release 1.9.8 is now available.

What's new in this release (see below for details):
  - More work towards the WineD3D command stream.
  - Bug fix update of the Mono engine.
  - More WebServices reader support.
  - Still more Shader Model 5 support.
  - Support for gradients in metafiles.
  - Improved table formatting in WinHelp.
  - 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.9.8 (total 26):

   9030  army men hangs on black screen
  17918  AvsP Preview window fails to load
  22762  Multiple DirectX10 games need Texture2D DXGI_FORMAT_R24G8_TYPELESS format support for stencil operations (Battlefield Bad Company 2, Warhammer 40k: Kill Team)
  24421  MJ's Help Diagnostics crashes on startup (app provided MonitorEnumProc callback relies on ECX = lprcMonitor)
  31662  Office 2010 font embedding when exporting to PDF
  32007  AMD Demo - Whiteout crashes with null-ish pointer read after dxgi_output_GetDisplayModeList
  34070  Simutronics 'StormFront.exe' runs out of wndproc slots (ActiveSkin control)
  34851  Multiple applications need kernel32 GetFinalPathNameByHandleA/W (64-bit Autodesk Fusion 360, Microsoft OneDrive)
  35054  Dragon Age 2 system diagnostics tool fails to recognize GeForce GT 425M
  37460  Sid Meier's Civilization: Beyond Earth (Steam) crashes on startup
  39444  Fifa 2005 Demo version - black and flashing screen
  39573  GImageX v2.1.1 (gui for ImageX tool from Windows Assessment and Deployment Kit) crashes on unimplemented function wimgapi.dll.WIMCreateFile
  39605  GImageX v2.1.1 crashes with unimplemented function wimgapi.dll.WIMGetMountedImages
  39657  Tencent QQ 7.6  crashes on unimplemented function ntoskrnl.exe.PsRemoveLoadImageNotifyRoutine
  39730  FillRect() confuses 16bit brush handles with color constants
  39796  SCP Containment Breach page fault
  39863  Microsoft .NET Runtime Optimization Service 2.x terminates prematurely due to failure to hook up registry notifier ('RegNotifyChangeKeyValue' must treat NTSTATUS 'STATUS_PENDING' as success)
  39911  dxd9 PresentationInterval not propagated on device Reset
  40260  wine-mono 4.6 crash when starting .net app - SIGSEGV (APB Reloaded)
  40282  mIRC 7.43 options dialog does not accept focus / user input
  40286  Geforce 980 maxwell card is not properly detected
  40389  cmd.exe (native): Unimplemented function KERNEL32.dll.GetConsoleAliasExesLengthW
  40396  Windows SDK DirectWrite sample crashes on uninitialized parameter
  40397  Warhammer: Mark of Chaos - Battle March Demo needs unimplemented function sfc.dll.SRSetRestorePoint
  40406  Doom 4 requires bcrypt RNG provider
  40414  VirtualDub 1.10.4 crashes when attempting to play video with Directx9/11 backend


Changes since 1.9.7:

Aaryaman Vasishta (2):
      d3drm/tests: Add tests for IDirect3DRM*::CreateObject.
      d3drm/tests: Add tests for IDirect3DRMObject::Add/DeleteDestroyCallback.

Alexandre Julliard (4):
      makefiles: Support installing scripts from the tools directory.
      makefiles: Generate installation rules for static and import libraries.
      makefiles: Use the msvcrt build flags also for cross tests.
      winebuild: Mark the stack non-executable in static import libraries.

Alistair Leslie-Hughes (5):
      wined3d: Add detection for NVIDIA GTX TITAN.
      d3dx10: Add D3DX10UnsetAllDeviceObjects stub.
      wininet: Free socket when connection is freed.
      d3d11: Support NULL DepthStecilView pointer in ClearDepthStencilView.
      d3d11: Support NULL RenderTargetView pointer in ClearRenderTargetView.

Aric Stewart (6):
      hidclass.sys: Correct input vs output parameters for IOCTL_HID_SET_FEATURE.
      hidclass.sys: Improvements for IOCTL_HID_GET_FEATURE handling.
      hid: Implement HidD_SetNumInputBuffers.
      include: Define REGSTR_VAL_MAX_HCID_LEN.
      hidclass.sys: Implement IRP_MN_QUERY_ID for HID devices.
      hidclass.sys: Use the instance id for the device link.

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

Austin English (7):
      sfc_os: Add SRSetRestorePointA/W stubs.
      ntoskrnl.exe: Add PsRemoveLoadImageNotifyRoutine stub.
      ntoskrnl.exe: Add KeDelayExecutionThread stub.
      kernel32: Add GetConsoleAliasExesLengthA/W stubs.
      wimgapi: Add WIMGetMountedImages stub.
      wimgapi: Add WIMCreateFile stub.
      sfc_os: Return success in SRSetRestorePointA/W.

Bernhard Übelacker (1):
      ntoskrnl.exe: Make IoAllocateIrp not crash on negative values.

Caron Wills (2):
      wined3d: Add Nvidia GeForce 820M.
      wined3d: Add Nvidia GeForce 830M.

Daniel Lehman (8):
      msvcr120: Add scalbn.
      ucrtbase: Add some wide functions called on startup.
      ucrtbase: Add _get_initial_wide_environment.
      ucrtbase: Return initial env snapshot in _get_initial_narrow_environment.
      msvcr120: Add remainder.
      msvcp90: Add codecvt<wchar_t>::do_encoding that returns 0.
      ucrtbase: Add __stdio_common_vfwprintf.
      ucrtbase: Add __std_exception_destroy/copy.

Dmitry Timoshkov (4):
      user32: Avoid dereferencing NULL pointer in a trace.
      windowscodecs: Fix a copy/paste mistake.
      user32/tests: Add some tests for dialog owner disabled state.
      windowscodecs: Allocate correct amount of memory for PNG image data.

François Gouget (13):
      wined3d: Fix a typo in an error message.
      shell32/tests: Fix a race condition in the DDE ShellExecute() tests on Windows 10.
      hidclass.sys: Fix spelling of a private struct's name.
      wintrust: Fix spelling of a variable name.
      quartz: Fix spelling of a BaseOututPin method implementation name.
      msctf: Fix spelling of a private struct's field name.
      ole32/tests: Fix spelling of a few variable names.
      mshtml: Fix spelling of an HTMLEmbedElement method implementation name.
      tools: Fix spelling of a variable name.
      include: Fix spelling of a method's parameter name.
      wineps.drv: Fix spelling of a prototype's parameter name.
      ole32/tests: Fix spelling of a test function name.
      ole32: Rightmost spelling fix.

Hans Leidekker (15):
      bcrypt: Add support for BCRYPT_RNG_ALGORITHM.
      webservices: Pass exact size in read_type_struct_field.
      webservices: Add support for item ranges.
      webservices: Use addition in read_skip.
      webservices: Reset the read position if an opening bracket is not followed by a valid name character.
      webservices: Always skip comment and empty text nodes in WsReadType.
      webservices/tests: Add more tests for repeating element field mappings.
      webservices: Fix reader movement for text field mappings.
      webservices: Fix a typo.
      webservices: Reject field mappings without a description.
      webservices: Add support for reading enum values.
      include: Add missing Web Services declarations.
      webservices: Implement WsCreateChannel and WsFreeChannel.
      webservices: Implement WsGetChannelProperty and WsSetChannelProperty.
      webservices/tests: Add channel tests.

Henri Verbeet (50):
      wined3d: Use the texture dimension helpers in wined3d_device_create_cursor_texture().
      wined3d: Use the texture dimension helpers in wined3d_device_set_cursor_properties().
      wined3d: Use the texture dimension helpers in surface_get_rect().
      wined3d: Use the texture dimension helpers in surface_create_dib_section().
      wined3d: Use the texture dimension helpers in surface_is_full_rect().
      wined3d: Try harder to create a converted surface in surface_convert_format().
      wined3d: Also update the swap interval when not recreating the context in wined3d_device_reset().
      wined3d: Avoid surface_from_resource() in swapchain_gdi_present().
      wined3d: Avoid surface_from_resource() in surface_load_ds_location().
      wined3d: Return a wined3d_texture_sub_resource structure from wined3d_texture_get_sub_resource().
      wined3d: Use the texture dimension helpers in surface_download_data().
      wined3d: Use the texture dimension helpers in surface_upload_from_surface().
      wined3d: Use the texture dimension helpers in read_from_framebuffer().
      wined3d: Use the texture dimension helpers in surface_load_fb_texture().
      wined3d: Use the texture dimension helpers in fb_copy_to_texture_direct().
      wined3d: Recognise Intel Ivybridge on MacOS.
      wined3d: Explicitly pass a wined3d_state structure to context_apply_clear_state().
      wined3d: Use struct wined3d_ffp_attrib_ops for generic attributes as well.
      wined3d: Merge drawStridedSlow() and drawStridedSlowVs().
      wined3d: Merge drawStridedFast() and drawStridedInstanced().
      wined3d: Use the texture dimension helpers in fb_copy_to_texture_hwstretch().
      wined3d: Use the texture dimension helpers in surface_translate_drawable_coords().
      wined3d: Use the texture dimension helpers in surface_blt_special().
      wined3d: Use the texture dimension helpers in surface_load_ds_location().
      wined3d: Use the texture dimension helpers in surface_load_texture().
      wined3d: Don't evict mapped resources in wined3d_device_evict_managed_resources().
      wined3d: Store sub-resource map counts in the sub-resource structure.
      ddraw/tests: Rewrite GetDCFormatTest().
      ddraw/tests: Add some more surface GetDC() tests to test_getdc().
      d3d9/tests: Add some more surface GetDC() tests to test_getdc().
      wined3d: Use the texture dimension helpers in surface_load_renderbuffer().
      wined3d: Use the texture dimension helpers in surface_load_location().
      wined3d: Use the texture dimension helpers in wined3d_surface_blt().
      wined3d: Use the texture dimension helpers in texture3d_prepare_texture().
      wined3d: Use the texture dimension helpers in wined3d_texture_update_overlay().
      wined3d: Be more lenient with wined3d_texture_get_dc() calls from ddraw.
      wined3d: Be more strict with wined3d_texture_get_dc() calls from d3d9.
      ddraw/tests: Add some tests for the properties of the DC returned by surface GetDC().
      d3d9/tests: Add some tests for the properties of the DC returned by surface GetDC().
      gdi32: Implement DC creation from pre-existing memory.
      wined3d: Use the texture dimension helpers in wined3d_volume_upload_data().
      wined3d: Use the texture dimensions in swapchain_gdi_frontbuffer_updated().
      wined3d: Avoid wined3d_texture_get_sub_resource() in surface_load_ds_location().
      wined3d: Store the power-of-two dimensions in the texture.
      wined3d: Use the texture dimension helpers in arbfp_blit_set().
      wined3d: Introduce a helper function to map a wined3d_bo_address.
      wined3d: Implement texture DC creation on top of D3DKMTCreateDCFromMemory().
      wined3d: Track SFLAG_DISCARD per-texture.
      wined3d: Check texture usage/pool/flags in texture_init().
      wined3d: Check texture usage/pool in volumetexture_init().

Hugh McMaster (2):
      reg: Clean-up and inform the user if RegDeleteValueW fails when deleting all values in a registry key.
      reg: Exit with an error message if RegQueryInfoKeyW fails.

Huw D. M. Davies (7):
      oleaut32: Fix VarDateFromStr for the case of a trailing meridiem indicator.
      gdi32: Implement recording of the GradientFill EMF record.
      gdi32: Implement playback of the GradientFill EMF record.
      oleaut32/tests: Test against floats not integers to silence a clang warning.
      oleaut32/tests: Fix the size test in the case of an underflow of Lo.
      gdi32: Use abs() on an integer argument to avoid a clang warning.
      gdi32/tests: Allocate the font enum data structures.

Jacek Caban (19):
      mshtml: Allow events without event object specified and EVENT_DEFAULTLISTENER flag in dispatch_event.
      mshtml: Pass node as an object to fire_event.
      mshtml: Added support for focusin event.
      mshtml: Added support for focusout event and IHTMLElement4::onfocusout property.
      mshtml: Added focusin and focusout event tests.
      mshtml.idl: Added IDOMMessageEvent declaration.
      mshtml: Added IHTMLWindow6::onmessage property implementation.
      mshtml: Added IHTMLWindow6::postMessage semi-stub implementation.
      mshtml: Event tests code clean up.
      mshtml: Skip headers problematic for cache.
      mshtml: Added support for sending BSTR over IHTMLXMLHttpRequst::send.
      mshtml: Added more IHTMLXMLHttpRequst::send tests.
      user32: Use top level window as dialog parent for modal dialogs.
      user32: Use GWLP_HWNDPARENT to find an owner in EndDialog.
      user32: Don't enable owner in DIALOG_DoDialogBox.
      user32: Use the original owner used to create the dialog for WM_ENTERIDLE messages.
      user32: Added more tests of handling parent/owner by dialog.
      winex11.drv: Use InitOnceExecuteOnce in has_opengl.
      taskschd.idl: Added IDailyTrigger declaration.

Jactry Zeng (1):
      gdi32: Load system fonts on Android.

Jarkko Korpi (1):
      wined3d: Add detection for NVIDIA GeForce 425M.

Jean-Christophe Cardot (6):
      winhlp32: Replace magic numbers by symbols.
      winhlp32: Add some trace calls.
      winhlp32: Add a warning trace.
      winhlp32: Prepare winhlp32 for more font types.
      winhlp32: Rework and rename HLPFILE_HalfPointsToTwips.
      winhlp32: Fix table formatting.

Józef Kucia (40):
      wined3d: Print FIXME() for unknown SM4+ register types.
      wined3d: Print "state_id" for undefined states.
      wined3d: Recognize SM5 vDomainLocation register.
      wined3d: Recognize SM5 vicp register.
      wined3d: Recognize SM5 vOutputControlPointID register.
      wined3d: Recognize SM5 vpc register.
      wined3d: Recognize SM5 hs_control_point_phase opcode.
      wined3d: Recognize SM5 hs_join_phase opcode.
      wined3d: Implement SM4 ult instruction.
      d3d11: Allow to query ID3D11Predicate interface when predicate was created by CreateQuery().
      d3d11: Allow to pass NULL as "query" to d3d11_device_CreateQuery().
      d3d11: Allow to pass NULL as "predicate" to d3d11_device_CreatePredicate().
      d3d11: Allow to pass NULL as "predicate" to d3d10_device_CreatePredicate().
      d3d11: Allow to pass NULL as "query" to d3d10_device_CreateQuery().
      d3d10core/tests: Add test for ID3D10Device_CreateQuery().
      d3d11/tests: Add test for ID3D11Device_CreateQuery().
      d3d11/tests: Also trace feature level when HAL device cannot be created.
      d3d11: Fix return values returned by D3D11CreateDevice functions.
      d3d11/tests: Test exact return values returned by D3D11CreateDevice functions.
      include: Add D3D11_KEEP_* constants.
      d3d11: Partially implement OMSetRenderTargetsAndUnorderedAccessViews().
      d3d10core/tests: Add more tests for texture data initialization.
      d3d11/tests: Add more tests for texture data initialization.
      d3d10core/tests: Test creating 2D array textures.
      d3d11/tests: Test creating 2D array textures.
      d3d10core/tests: Test creating 2D array texture views.
      d3d11/tests: Tests creating 2D array texture views.
      dxgi/tests: Add tests for reference counting.
      dxgi/tests: Add test for IDXGISwapChain_GetParent().
      dxgi: Implement dxgi_swapchain_GetDevice().
      d3d11/tests: Add more tests for D3D11CreateDeviceAndSwapChain().
      dxgi: Partially implement dxgi_swapchain_GetContainingOutput().
      dxgi/tests: Add test for IDXGISwapChain_GetContainingOutput().
      dxgi: Do not store IDXGIOutputs in IDXGIAdapter.
      dxgi: Store IDXGIAdapter in IDXGIDevice.
      dxgi: Do not store IDXGIAdapters in IDXGIFactory.
      dxgi: Do not store IDXGIFactory in IDXGIDevice.
      dxgi: Implement dxgi_swapchain_GetParent().
      wined3d: Add shader limits for SM 4.1.
      d3d11/tests: Add test for creating SM 4.1 shaders.

Ken Thomases (1):
      ntoskrnl.exe: Fix SIB_INDEX() to use REX_X, not REX_R.

Lauri Kenttä (1):
      po: Update Finnish translation.

Michael Müller (6):
      krnl386.exe16: Emulate 'mov Eb, Gb' instruction on x86 processor architecture.
      winex11: Add 320x240 as supported resolution in desktop mode.
      kernelbase: Add missing forwards to advapi32 and user32 functions.
      kernel32/tests: Add additional tests for overlapped handling of CreateNamedPipe.
      kernel32: Implement GetFinalPathNameByHandle.
      compobj.dll16: Fix implementation of StringFromGUID2.

Michael Stefaniuc (4):
      comctl32/tests: Use SetRect() instead of open coding it.
      shell32/tests: Use SetRect instead of open coding it.
      quartz: Use SetRect instead of open coding it.
      quartz: Simplify a RECT transformation.

Nikolay Sivov (22):
      t2embed: Implement TTIsEmbeddingEnabledForFacename().
      t2embed: Implement TTIsEmbeddingEnabled().
      msxml3/mxwriter: Implement notation declaration output.
      msxml3/tests: Remove duplicated test check.
      po: Update Russian translation.
      usp10: Trace RECT arguments in text output functions.
      usp10: Some spelling fixes.
      gdi32: Increase first gdi handle value.
      comctl32/listview: Handle DPA_SetPtr() failure (Coverity).
      user32/tests: Message filtering tests for broadcast messages.
      user32: Limit broadcast messages to system and registered ones.
      dwrite/tests: Test underline/strikethrough metrics for all system fonts.
      dwrite: Always return non-zero metrics for strikethrough/underline thickness.
      ieframe: Simplify IPersist_Load, make error handling more straightforward.
      ieframe: Convert to integer without additional string buffer allocation.
      ieframe: Handle storage opening failure in shortcut Load().
      dwrite: Only use fsSelection to switch to sTypo* metrics, remove table version check.
      webservices: Fix unsupported options detection (Coverity).
      wordpad: Use correct buffer size when calling SHGetFolderPathW() (Coverity).
      dwrite/tests: A test for glyphBox* metrics.
      po: Update Russian translation.
      dwrite/tests: Test for superscript/subscript font metrics.

Paul Gofman (3):
      d3dx9: Implement preshader parsing.
      d3dx9: Implement preshaders disassembly dump.
      d3dx9: D3DXVec3Transform should support input and output parameter overlap.

Piotr Caban (4):
      msvcrt: Fix i386 rethrown exceptions handling.
      ieframe: Restore closed IOleClientSite in DoVerb.
      ieframe: Improve setting different client site in OleObject_SetClientSite.
      ieframe: Test setting different client site in OleObject_SetClientSite.

Qian Hong (1):
      loader: Fix wld_prctl prototype.

Rodrigo Rivas Costa (1):
      user32: Make DeferWindowPos() fail on invalid window handles.

Sebastian Lackner (11):
      ntoskrnl.exe: Add missing linebreak to FIXME in KeDelayExecutionThread.
      advapi32: Fix return value of RegNotifyChangeKeyValue for pending events.
      msi: Fix stack alignment in CUSTOMPROC_wrapper.
      ntdll/tests: Fix some test failures on Win 8+.
      ntdll/tests: Add tests for iosb.Status value after pending FSCTL_PIPE_LISTEN call.
      ntdll: Do not update iosb.Status after FSCTL_PIPE_LISTEN call.
      ntdll: Preinitialize OS version data in thread_init.
      ntdll: Handle stack guard pages on x86_64.
      kernel32/tests: Use inline implementation of NtCurrentTeb for virtual tests.
      kernel32/tests: Port stack commit tests to x86_64.
      services: Initialize environment block immediately after startup.

Sergei Bolotov (2):
      widl: Handle "midl_pragma warning" statement in parser.
      widl: Support for toggling and checking status for warnings, support for warning 2368.

Stefan Dösinger (10):
      wined3d: Remove the dead wined3d_volume_invalidate_location declaration.
      d3d10core/tests: Remove dead code.
      d3d11/tests: Port swapchain_flip() to d3d11.
      wined3d: Get rid of wined3d_texture_ops.texture_sub_resource_load().
      wined3d: Pass a texture and sub-resource index to wined3d_texture_ops.texture_sub_resource_upload_data().
      wined3d: Discard default pool surfaces on unload.
      d3d9/tests: Add a system memory miptree layout test.
      d3d8/tests: Add a system memory miptree layout test.
      wined3d: Explicitly pass a wined3d_state structure to draw_primitive().
      wined3d: Explicitly pass a wined3d_state structure to context_apply_draw_state().

Vincent Povirk (5):
      mscoree: Update Wine Mono to 4.6.2.
      gdiplus: Fix bounds of recorded Metafile objects.
      gdiplus: Add test for creating a metafile with NULL frameRect.
      gdiplus: Allow recording metafiles with a NULL frame.
      gdiplus: Implement GdipRecordMetafileStream.

Alexandre Julliard