The Wine development release 8.19 is now available. What's new in this release: - Mono engine updated to version 8.1.0. - More DirectMusic implementation. - Various bug fixes. The source is available at: https://dl.winehq.org/wine/source/8.x/wine-8.19.tar.xz Binary packages for various distributions will be available from: https://www.winehq.org/download You will find documentation on https://www.winehq.org/documentation You can also get the current source directly from the git repository. Check https://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 8.19 (total 44): - #8174 Ares P2P 2.x embedded media player fails to play .mpg files - #9027 No sound for rise of nations - all versions - #23489 Buccaneer: quits silently when entering the Tavern - #32395 Neverwinter Nights 2 : Broken sky with anti-aliasing turned on - #32896 Serious Sam: The Random Encounter has no sound - #34751 Aura: Fate of the Ages: sounds aren't played, but music works fine - #43372 valgrind shows a definite leak in dlls/d3dx9_36/tests/texture.c - #45072 Enabling csmt causes 100% CPU use in MikuMikuDance - #45135 Black Rockman Shooter has no sound - #45144 GED Keeper 2 (.NET 2.x based genealogical database app) fails to run with Wine-Mono - #45893 Midtown Madness: Extremely Slow with csmt on - #47767 Airport Mania First Flight - Very long loading times and awful performance - #49731 Shtriga: Summer Camp freezes with a black screen (PE-build only) - #49804 Multiple WPF 4.5+ .NET applications fail to run with Wine-Mono due to missing support of Ribbon control 'System.Windows.Controls.Ribbon' (OpenGL Extensions Viewer 6.1.2, CapFrameX v1.6.0) - #52014 Memento Mori freezes on launch - #52396 Stack overflows when running any 64-bit .Net 6 (.Net Core) program - #53264 mmdevapi:capture - test_audioclient() fails systematically on Windows 10 1909+ - #54704 Black screen with Dungeon Keeper 2 and Wine v8.4 - #55223 d3dx10_34:d3dx10, d3dx10_35:d3dx10, d3dx10_39:d3dx10 & d3dx10_42:d3dx10 sometimes fail on w11pro64-amd - #55228 kernel32:loader - test_ResolveDelayLoadedAPI() fails on Windows 10+ - #55267 gdi32:font - The 64-bit test_RealizationInfo() gets invalid parameter errors on Windows 8+ - #55269 ntdll:info - The 32-bit test_query_process_debug_port() gets a bad len on Windows 8 64-bit - #55555 secur32:secur32 - test_ticket_cache() crashes when Kerberos support is missing - #55560 The 64-bit dbghelp:dbghelp times out in Wine - #55577 advapi32:registry - The 64-bit test_performance_keys() sometimes crashes on Windows 10 - #55580 The 32-bit uiautomationcore:uiautomation sometimes times out in Wine - #55605 winmm:mci sometimes gets an assertion in GitLab CI's Wine tests - #55650 dbghelp:dbghelp fails on macOS - #55654 Multiple Direct3D 8/9 applications have increased memory usage / run out of memory since Wine 8.14 - #55688 dmusic:dmusic - test_default_gm_collection() crashes on macOS - #55718 Word 2007 is not able to print multiple copies of a page - #55720 msxml3:domdoc - test_domnode() fails in Wine - #55722 dmime:dmime - test_band_track_play() fails on macOS - #55725 The 32-bit amstream:amstream gets an assert and times out on the GitLab CI - #55744 psapi:psapi_main fails in Wine - #55745 tasklist.exe:tasklist - test_filter() fails to list ntdll.dll in Wine - #55746 wscript.exe:run - Dispatch_Invoke() gets wrong WScript.FullName in Wine - #55771 uxtheme:system - test_ShouldSystemUseDarkMode() fails on Windows 7 to 10 1909 - #55772 uxtheme:system - test_EnableThemeDialogTexture() fails on Windows 7 - #55777 user32:win - test_GetWindowModuleFileName() sometimes unexpectedly gets a filename on Windows 7 - #55790 Unreal II The Awakening: general protection fault when loading a level - #55792 Tron 2.0 crashes before the menu appears - #55808 Catalan translation inserted twice in wine.desktop - #55817 Myst V (GOG.com, demo): access violation when NPC begins to talk ---------------------------------------------------------------- Changes since 8.18: Akihiro Sagawa (1): cmd: Reset totals after trailer output. Alex Henrie (13): evr: Use debugstr_fourcc instead of debugstr_an. iccvid: Use debugstr_fourcc instead of debugstr_an. d3d10: Use debugstr_fourcc instead of debugstr_an. dwrite: Use the debugstr_fourcc function instead of reimplementing it. d3dx9_36: Use debugstr_fourcc instead of debugstr_an. d3dcompiler_43: Use debugstr_fourcc instead of debugstr_an. loader: Associate Wine with batch files. winemenubuilder: Disallow desktop integration for batch files. loader: Translate wine.desktop to Catalan. loader: Add separating dash to Spanish translation of wine.desktop. win32u: Use debugstr_fourcc instead of debugstr_an. wined3d: Use debugstr_fourcc instead of debugstr_an. commdlg: Set lCustData the same in GetSaveFileName as GetOpenFileName. Alexandre Julliard (20): makefiles: Always use the global SOURCES variable for .man.in files. makefiles: Always use the global SOURCES variable for .svg files. makefiles: Always use the global SOURCES variable for .l files. makefiles: Always use the global SOURCES variable for .y files. ntdll: Move the relay trace on thread startup to LdrInitializeThunk(). ntdll: Move RtlUserThreadStart implementation to the CPU backends. ntdll: Use .seh handler in RtlUserThreadStart on ARM64. ntdll: Also send segment registers to the server on suspend. zydis: Disable assertions. dbghelp: Fix a compiler warning on ARM64. Revert "loader: Translate wine.desktop to Catalan". ntdll: Simplify platform checks for exception handling functions. msvcrt: Simplify platform checks for exception handling functions. msvcrt: Export more exception handling functions on ARM platforms. kernel32: Export the Ums functions on ARM64. kernelbase: Export the extended context functions on all platforms. ntdll: Export RtlCopyMemory on ARM platforms. vcruntime140_1: Only build for x86-64. winebuild: Always use .balign for alignment. shlwapi: Remove unneeded UNALIGNED attributes. Alexandros Frantzis (2): winewayland.drv: Ensure outputs can access xdg information robustly. winewayland.drv: Ensure the logical output dimensions have sane values. Alistair Leslie-Hughes (4): msxml: Always increase error count when detected. msxml3: Don't call qsort if we have no data (Coverity). msxml3: Move tid_NULL out of possible enum values. msxml3: Do not leak bind context on error paths (Coverity). Arkadiusz Hiler (1): winex11.drv: Send missed KEYUP events on KeymapNotify. Bartosz Kosiorek (4): gdiplus: Optimize GDI32_GdipDrawPath (via prepare_dc function). gdiplus: Improve performance of units_to_pixels by not using division. gdiplus/tests: Add test for GdipIsOutlineVisiblePathPoint. gdiplus: Fix transformation in GdipIsOutlineVisiblePathPoint. Brendan Shanks (9): configure: Only build Wayland if linux/input.h is present. winemac.drv: Replace sprintf with snprintf to avoid deprecation warnings. makedep: Replace sprintf with snprintf to avoid a deprecation warning on macOS. ctapi32: Ensure unixlib function tables and enum stay in sync. dnsapi: Ensure unixlib function tables and enum stay in sync. wpcap: Ensure unixlib function tables and enum stay in sync. winscard: Ensure unixlib function tables and enum stay in sync. winemac.drv: Disable declaration-after-statement warnings in ObjC files. winemac.drv: Fix minimizing windows when Stage Manager is enabled. Connor McAdams (15): uiautomationcore: Release node lresult upon failure to allocate a node in uia_node_from_lresult(). uiautomationcore/tests: Add tests for COM API EVENT_OBJECT_FOCUS translation. uiautomationcore: Potentially raise focus event for serverside providers in response to EVENT_OBJECT_FOCUS. uiautomationcore: Potentially raise focus event on the currently focused serverside provider in response to EVENT_OBJECT_FOCUS. uiautomationcore: Add support for translating EVENT_OBJECT_FOCUS for native MSAA IAccessibles. uiautomationcore/tests: Add tests for cached value helper functions in the COM API. uiautomationcore: Implement IUIAutomationElement::get_CachedControlType. uiautomationcore: Implement IUIAutomationElement::get_CachedHasKeyboardFocus. uiautomationcore: Implement IUIAutomationElement::get_CachedIsKeyboardFocusable. uiautomationcore: Implement IUIAutomationElement::get_CachedName. uiautomationcore: Implement IUIAutomationElement::get_CachedBoundingRectangle. uiautomationcore: Remove accidentally leftover FIXME. uiautomationcore: Only print FIXME messages for missing default clientside providers once. uiautomationcore/tests: Fix test failure on Win10v1709. uiautomationcore: Don't return failure from ::get_FragmentRoot stub on the default BaseHwnd provider. Daniel Lehman (1): advapi32/tests: Add ReadEventLogW tests for direction. Dmitry Timoshkov (4): crypt32: Avoid truncating unicode chars. crypt32/tests: Add some tests for quoted RDN values. crypt32: Add support for CERT_NAME_STR_NO_QUOTING_FLAG to CertNameToStr(). cryptui: Use CertNameToStr(CERT_NAME_STR_NO_QUOTING_FLAG) to disable quoting. Eric Pouech (9): wbemprox: Use correct string id. dsound: Forward error code when device cannot be found. quartz: Return correct error when no audio devices are present. mmdevapi: Don't fail when no audio backends are present. dbghelp: Rename internal field (system -> host). dbghelp: Use is_host_64bit for handling bitness of mach-o libs. dbghelp: Set the machine type for mach-O modules. dbghelp: Simplified module_find_by_addr(). dbghelp: Remove unneeded parameter to pe_map_file. Esme Povirk (2): user32/tests: Reduce size demand in test_hvredraw. mscoree: Update Wine Mono to 8.1.0. Fabian Maurer (2): mf/tests: Increase buffer to prevent stack corruption. ntdll: Add WinSqmSetIfMaxDWORD stub. Gabriel Ivăncescu (4): jscript: Fix Array.map when last element doesn't exist. jscript: Fix Array.reduce when last element doesn't exist. mshtml: Set outer window to uninitialized page when document obj is released. mshtml: Return proper errors when navigating with no browser. Gerald Pfeifer (1): readme: Update FreeBSD information. Hans Leidekker (3): kernelbase: Trace global memory counters in decimal. advapi32/tests: Get rid of workarounds for old Windows versions. advapi32/tests: Skip WoW64 registry tests on 32-bit. Helix Graziani (1): uxtheme/tests: Skip the test if the SystemUsesLightTheme value isn't found. Jacek Caban (9): dwrite: Use DWRITE_FONT_FEATURE_TAG for tags argument type in shape_get_typographic_features. dwrite/tests: Avoid implicit DWRITE_RENDERING_MODE to DWRITE_RENDERING_MODE1 casts. dwrite: Avoid implicit casts between DWRITE_RENDERING_MODE and DWRITE_RENDERING_MODE1. d2d1/tests: Use D2D1_INTERPOLATION_MODE constants in DrawImage calls. d2d1: Pass interpolation mode as D2D1_INTERPOLATION_MODE to d2d_device_context_draw_bitmap. d2d1: Don't cast D2D1_THREADING_MODE to D2D1_FACTORY_TYPE in D2D1CreateDevice. wined3d: Use return type to return result from read_dword. wined3d: Remove unused parallel_point_count variable. wined3d: Use unsigned type for res_type bit field. Jeff Smith (4): gdiplus/tests: Add tests related to setting the page tranform. gdiplus: Implement GdipResetPageTransform. gdiplus: Fix a GdipSetPageScale return status. gdiplus: Fix GdipSetPageUnit parameter validation. Jinoh Kang (1): ntdll/tests: Use win_skip() for missing APIs in test_query_process_debug_port_custom_dacl. Louis Lenders (1): uxtheme: Add ShouldAppsUseDarkMode. Matteo Bruni (5): wined3d: Fix handling of system-memory GL vertex buffers. wined3d: Handle NULL push constant buffers with the ARB shader backend. wined3d: Allow FFP blits to non-render targets with the 'none' shader backend. wined3d: Implement shadow sampling for the ARB shader backend. wined3d: Don't skip setting clip planes if the view transform state is dirty. Mohamad Al-Jaf (16): windows.media.mediacontrol/tests: Remove flakey ref count test. include: Add ISystemMediaTransportControlsDisplayUpdater interface definition. windows.media.mediacontrol: Implement ISystemMediaTransportControls::get_DisplayUpdater(). windows.media.mediacontrol/tests: Add ISystemMediaTransportControlsDisplayUpdater::get/put_Type() tests. windows.media.mediacontrol: Implement ISystemMediaTransportControlsDisplayUpdater::get/put_Type(). include: Add IMusicDisplayProperties interface definition. windows.media.mediacontrol: Implement ISystemMediaTransportControlsDisplayUpdater::get_MusicProperties(). windows.media.mediacontrol/tests: Add IMusicDisplayProperties::get/put_Title() tests. windows.media.mediacontrol: Implement IMusicDisplayProperties::get/put_Title(). windows.media.mediacontrol/tests: Add IMusicDisplayProperties::get/put_Artist() tests. windows.media.mediacontrol: Implement IMusicDisplayProperties::get/put_Artist(). include: Add IMusicDisplayProperties2 interface definition. windows.media.mediacontrol: Add IMusicDisplayProperties2 stub interface. windows.media.mediacontrol/tests: Add IMusicDisplayProperties2::get/put_AlbumTitle() tests. windows.media.mediacontrol: Implement IMusicDisplayProperties2::get/put_AlbumTitle(). windows.media.mediacontrol: Return success in ISystemMediaTransportControlsDisplayUpdater::Update(). Nikolay Sivov (7): mfmediaengine/tests: Use a single helper to create engine instances. include: Add IMFMediaEngineAudioEndpointId definition. mfmediaengine: Keep engine extension pointer. mfmediaengine: Use extension object in CanPlayType(). maintainers: Add EVR to the Media Foundation section. mfmediaengine: Mask some source flags returned from GetResourceCharacteristics(). d3d10_1/tests: Add some more tests for fx_4_1 blend states. Paul Gofman (8): ntdll: Use .seh handler instead of __TRY in RtlUserThreadStart() on x64. ntdll: Set EH_NESTED_CALL flag in call_stack_handlers() on x64. ntdll: Use .seh handler in call_handler() on x64. ntdll/tests: Add test for collided unwind. ntdll: Use .seh handler in call_unwind_handler() on x64. winegstreamer: Add AVDecVideoAcceleration_H264 attribute for h264 decoder MFT. ntdll: Define heap block's BLOCK_FLAG_LFH as 0x80. shell32: Use SearchPathW() for %l/%L in SHELL_ArgifyW(). Piotr Caban (1): gdi32: Fix leak in GdiDeleteSpoolFileHandle. Rémi Bernon (56): include: Fix debugstr_fourcc printf format to print at most 4 chars. dmime: Rewrite message thread with a condition variable. dmusic: Set synth sink master clock when creating port. dmsynth: Do nothing in IDirectMusicSynth_SetMasterClock. dmusic: Forward IDirectMusicPort_Activate to synth and sink. dmime: Use port latency time for messages with -1 time. dmime: Update performance latency time with port latency. dmime: Use latency time to decide when to process messages. dmsynth: Create a render thread on sink activation. dmsynth: Implement sink rendering to DirectSound buffer. dmsynth: Correctly lookup instrument from the default drum bank. dmsynth: Avoid using fluid_ prefix for internal helpers. dmsynth: Fix DLS2 to FluidSynth conversion for CONN_SRC_CCx. dmsynth: Fix FluidSynth generators for direct connections. dmsynth: Convert modulator values from DLS2 to SF2 convention. dmsynth: Set default modulators according to the DLS2 spec. dmband: Download segment tracks if performance auto-download is set. dmband: Set DMUS_PATCH_PMSG bank LSB/MSB from instrument patch. dmime: Only use index if group is set in IDirectMusicSegment_SetParam. dmime: Don't interrupt track iteration if SetParam failed. dmime: Adjust MIDI message time with DMUS_NOTE_PMSG nOffset. dmusic: Use a dmusic_midi.h header for MIDI messages. dmime: Translate some DMUS_CURVE_PMSG messages to MIDI. dmime: Remove FIXME from methods now mostly implemented. dmime: Avoid crashing when purging notification messages. dmime: Return S_OK from wave track SetParam GUID_UnloadFromAudioPath. dmime: Return hr from wave track SetParam GUID_DownloadToAudioPath. dmusic: Implement IDirectMusicObject interface on wave objects. dmusic: Use the IDirectMusicObject interface for waves. dswave: Use the dmusic wave object implementation. dmime: Avoid releasing the newly created graph twice. dmime/tests: Remove flaky track playing state test. dmime/tests: Avoid checking message segment state reference count. dmime/tests: Ignore failure on missing gm.dls in test_band_track_play. dmusic/tests: Skip test_default_gm_collection if gm.dls is missing. dmsynth: Set loop and sample generators on the fluid_voice. dmime: Force recompute MIDI message reference time. dmband: Skip band / band track chunk on parsing failure. dmime: Skip sequence track chunk on parsing failure. dmime: Skip segment chunk on parsing failure (or success). dmime: Ignore badly formed wave if format and data have been found. dmime: Remove shadowing local hr variable. dmusic: Ignore some known wave chunks. gitlab: Run tests with LP_NUM_THREADS=4 env var. mf/tests: Avoid crashing if MF_BYTESTREAM_EFFECTIVE_URL is missing. dmime: Pass IDirectMusicPerformance8 to segment state functions. dmime: Pass PlaySegmentEx start time as track time offset. dmband: Use time_offset to align track start with music time. dmime: Use time_offset to align track start with music time. dmime: Use an internal performance message for segment end. dmstyle: Rename IDirectMusicStyle8Impl method prefix to style. dmstyle: Get rid of the IDirectMusicStyle8Impl typedef. dmstyle: Rewrite style part list parsing. dmstyle: Rewrite style pref chunk parsing. dmstyle: Rename style_motif to style_pattern. dmstyle: Rewrite style pttn list parsing. Sven Baars (2): wined3d: Don't override the default renderer in wined3d_dll_init(). nsiproxy.sys: Return STATUS_SUCCESS from ipv6_forward_enumerate_all() on non-Linux. Yuxuan Shui (1): mfmediaengine: Don't send event notify when engine is shutdown. Zebediah Figura (18): advapi32: GetNamedSecurityInfo() takes a const name argument. advapi32/tests: Use StringFromGUID2(). advapi32: Fix rewinding the last path segment in SetSecurityInfo(). advapi32/tests: Add more tests for GetSecurityInfo(). advapi32: Respect object type in GetSecurityInfo(). advapi32: Respect object type in SetSecurityInfo(). user32/tests: Add basic tests for GetUserObjectSecurity(). advapi32: Implement GetSecurityInfo(SE_WINDOW_OBJECT). wined3d: Rename buffer dirty ranges fields. wined3d: Use wined3d_array_reserve() to pre-allocate the buffer dirty ranges array. wined3d: Do not track dirty ranges for buffers without WINED3D_BUFFER_USE_BO. d3d10core/tests: Avoid POINT sampling exactly halfway between two mip levels. d3d11/tests: Avoid POINT sampling exactly halfway between two mip levels. include: Convert d3d10shader.h to an IDL. include: Convert d3d10effect.h to an IDL. ntdll: Do not reject data directories at the end of a file. ws2_32/tests: Make sure that WSARecv() completes synchronously in test_WSARecv(). ws2_32/tests: Wait for AFD_POLL_RESET in test_get_events_reset().