WineHQ

World Wine News

All the news that fits, we print.

12/12/2016
by André Hentschel
Issue: 404

XML source
More Issues...

This is the 404th issue of the World Wine News publication. Its main goal is to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix. Think of it as a Windows compatibility layer. Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available. You can find more info at www.winehq.org


This week, 167 posts consumed 96 K. There were 28 different contributors. 10 (35%) posted more than once. 17 (60%) posted last week too.

The top 5 posters of the week were:

  1. 9 posts in 15K by hverbeet at gmail.com (Henri Verbeet)
  2. 8 posts in 11K by julliard at winehq.org (Alexandre Julliard)
  3. 7 posts in 8K by 00cpxxx at gmail.com (Bruno Jesus)
  4. 5 posts in 5K by lauri.kentta at gmail.com (Lauri Kenttä)
  5. 3 posts in 3K by stefandoesinger at gmail.com (Stefan Dösinger)

New Author

As with the last WWN, this time all the news are written by Stefan Dösinger! I just did the stats.

Enjoy!


Code Freeze Archive

Alexandre has released Wine-2.0-rc1 and imposed martial^H^H^H^H^H^H^H code freeze:

The release of 2.0-rc1 marks the beginning of code freeze towards 2.0.
Most of you probably know the drill already, but from now on, only
targeted bug fixes and other "safe" changes, like test fixes,
translation updates, etc. will be accepted.

I know that many people will soon be out for the holidays, but I hope we
can still make significant progress with the open bugs, particularly
with the bugs from the regression list. Now would also be a good time to
retest your favorite applications to make sure that there are no
regressions that we have missed.

As usual, I'll be making release candidates every week, until we run out
of bugs...

Thank you all for helping make Wine 2.0 as good as we can!

Direct3D 11 development Archive

Wine‘s Direct3D 11 implementation is making progress! Over the past months Józef Kucia and Matteo Bruni have been slowly, but steadily piling on work in d3d11.dll and wined3d.dll to restructure and add the necessary features. A lot of work is still missing, so don‘t expect fancy titles to run yet. Simpler games have started working a year ago .

Last month Andrew Wesie sent a big patchset consisting of 23 changes to wine-patches that promised to make Blizzard‘s Overwatch run on Wine. Not all of these changes concerned d3d11 – some were changes to the way certain CPU registers are handled in ntdll‘s exception handler. Andrew indicated that those changes are necessary to make the game‘s anti-debug protection work. The d3d-related patches add a few missing d3d11 pieces: Instancing-related shader registers, buffer shader resource views, primitive restart and so on. He also warned that these patches are not enough to make the game run, and more work was needed.

Matteo and Henri Verbeet have provided reviews for the patches. The main concern were missing tests and some implementation details. Andrew has submitted tests and an implementation for two sided stencil, tests for the primitive restart index and the return instruction in shader functions . These patches passed review and are already included in Wine git. Józef has cleaned up Andrew‘s implementation of the return instruction, which is upstream now too.

Besides helping Andrew, Józef has been busy implementing Unordered Access Views (UAVs). They provide read-modify-write access to resources from shaders. Historically resources could either be read (Textures, Buffers) or written to (Render Targets), and it was not allowed to use the same resource for reading and writing at the same time. The OpenGL equivalent of this feature is called image load/store .

An open issue with anything newer than Direct3D9 is that wined3d still depends on legacy OpenGL 2 features and many drivers do not expose some features necessary for d3d10/11 in legacy contexts. With the MaxVersionGL key set wined3d will request a core context, but certain blitting corner cases are still broken. Mesa and the Nvidia binary driver mostly work. On MacOS you are most likely out of luck.

And finally here is a screenshot provided by Andrew showing Overwatch running on his Linux desktop:

Again, the patches necessary to run the game are not in Wine or Wine-Staging yet, and they won’t make it in for Wine 2.0. So don’t hold your breath just yet!


Testbot Archive

CodeWeavers is running a set of virtual Windows machines to run Wine‘s tests against various Windows versions. These VMs are available for Wine developers under testbot.winehq.org . Francois Gouget is maintaining the Testbot and has posted the results of his recent update work :

The gist of the work was upgrading one of the host machines from Debian 7 to Debian 8.6, which brings in newer versions of QEMU and the Linux kernel. While this fixes a few known test failures, Francois is not happy with the performance of the upgraded machine yet. Memory writes went up mysteriously when restoring the virtual machines, slowing down the test process. Jonas Maebe and Henri Verbeet had some ideas what might be wrong, but at the time of the writing of this article the issue had not been solved yet. The updated host is back in active duty, but running only one virtual machine until the performance can be improved.

Francois has also updated Windows 7 in the client VMs, which caused some test failures that Hans Leidekker has looked into and fixed.


WinMM Driver Messages Archive

Bruno Jesus tried to fix the old bug 3930 : www.winehq.org/pipermail/wine-patches/2016-December/156112.html . The bug is quite complicated: The affected games – there seem to be a few – uses the old Windows Multimedia Extensions (winmm) API to play sound. Winmm calls callback functions provided by the application. In one of these functions the games call SuspendThread() and put themselves to sleep indefinitely.

This was working at the time the games were written because in Windows 9x winmm had a separate worker thread and called the callback functions from this thread. The callback put the main thread to sleep and would wake it up later, resuming operation. But in Wine and the Windows NT line winmm dispatches messages from the application‘s main thread. Once the winmm callback calls SuspendThread it won‘t be able to wake itself up any more.

Our tests show that Wine behaves like modern Windows versions, and Bruno tried to reproduce the game‘s behavior on a modern Windows version, and sure enough, his test code died the same way the games do on Wine. He found the changelog of the sound middleware responsible for this behavior, and they changed it because it years ago because it was broken on Windows XP . But yet, the games themselves are working fine on the same Windows installation.

A discussion unfolded between Bruno and Andrew Eikum about how to proceed. Bruno‘s patch changed winmm‘s behavior depending on the Windows version set in winecfg. This would require a user to manually configure the Windows version to run these games – with the additional complication that a modern 64 bit WINEPREFIX will not allow you to set anything older than Windows XP – and having version specific code is always ugly. Bruno‘s tests show that Windows has a magic behavior switch for these games which either ignore the SuspendThread call or made winmm behave in a Windows 95 way.

The issue is not yet resolved. Bruno was going to look deeper what triggered the different behavior on Windows and would try to replicate it automatically in Wine. It may require a more complicated shim layer for application compatibility similar to that on Windows or deeper changes in winmm. Either of those involves a lot of work and risk of regressions, so he decided to wait until after the upcoming stable release.


COM Port Sniffing Archive

Bill Lionheart wrote to wine-devel about a different kind of problem : He tried to use an amateur radio GPRS tracker with its Windows software and intercept the communication between software and device.

The device shows up on Linux as a USB to serial device - /dev/ttyUSBx. He created a symlink to ~/.wine/dosdevices/com0:, and luckily the Windows software is able to talk to the device and it functions properly. But using the software was not his actual goal.

He unsuccessfully tried Linux tools to sniff serial port traffic and various Windows tools. None of them were able to read the traffic. Christopher Harrington came asked a few questions to make sure Bill‘s setup was correct, which it was.

Henri Verbeet asked for more details about the tools Bill tried: socat and wireshark on the Linux side. They saw outgoing communication, but stopped replies from the device from getting back to the Windows app. But by luck he ran across a tutorial that used a tool called tshark to analyze the USB traffic, which luckily worked. This left Henri a bit puzzled because tshark and wireshark work essentially in the same way, through the usbmon module.

The bottom line is that Bill achieved what he wanted. We‘re all hoping that the records of his endeavor help someone in the future.


Weekly AppDB/Bugzilla Status Changes Archive
AppDB / Bugzilla
Bugzilla Changes:

Category Total Bugs Last Issue Total Bugs This Issue Net Change
UNCONFIRMED 2897 2876 -21
NEW 3053 3057 +4
ASSIGNED 21 21 0
STAGED 205 204 -1
REOPENED 122 122 0
NEEDINFO 153 156 +3
RESOLVED 302 344 +42
CLOSED 35146 35179 +33
TOTAL OPEN 6176 6158 -18
TOTAL 41899 41959 +60



AppDB Application Status Changes

*Disclaimer: These lists of changes are automatically generated by information entered into the AppDB. These results are subject to the opinions of the users submitting application reviews. The Wine community does not guarantee that even though an application may be upgraded to 'Gold' or 'Platinum' in this list, that you will have the same experience and would provide a similar rating.

Updates by App Maintainers

Application Old Status/Version New Status/Version Change
Battlefield 2142 1.51 Gold (1.7.55) Platinum (1.9.23)
+1
Borderlands Steam Gold (1.9.2) Platinum (1.9.20)
+1
Silent Hunter 4 1.5 Silver (1.5.22) Platinum (1.8.5)
+2
VUDUToGo 2.x Bronze (1.7.33) Silver (2.0-rc1)
+1
Defiance NA Retail Platinum (1.9.11) Bronze (1.9.23)
-3
Altium Designer 16 Bronze (1.9.0) Garbage (1.9.23)
-1
Guitar Hero World Tour 1.x Silver (1.3.15) Garbage (1.9.23)
-2
Saturn PCB Design Toolkit 6.7+ Silver (1.8-rc3) Garbage (1.9.23)
-2
Total Change
-3

Updates by the Public

Application Old Status/Version New Status/Version Change
EAC - Exact Audio Copy 1.3 Gold (1.6.2) Platinum (1.9.24)
+1
Grand Theft Auto III 1.1 Gold (1.7.22) Platinum (1.9.21)
+1
1Heroes of Might and Magic III Complete (gog.com v... Gold (1.6.2) Platinum (1.9.23)
+1
Heroes of Might and Magic III Horn of the Abyss Silver (1.8.3) Platinum (1.9.24)
+2
LEGO Indiana Jones: The Original Adventures 1.0 Gold (1.5.16) Platinum (1.9.24)
+1
LEGO Star Wars II: The Original Trilogy 1.0 Gold (1.7.38) Platinum (1.9.24)
+1
LEGO Star Wars: The Video Game 1.0 Silver (1.4.1) Platinum (1.9.24)
+2
Netscape Communicator 4.8 Bronze (1.3.27) Platinum (1.8.5)
+3
Neverwinter Nights Diamond Edition (GoG) Gold (1.8.5) Platinum (1.9.23)
+1
No Man's Sky GOG Gold (1.9.16) Platinum (1.9.24)
+1
Railroad Tycoon 3 1.05-gog-6 Gold (1.6.2) Platinum (1.9.24)
+1
Sins of a Solar Empire Rebellion Gold (1.7.19) Platinum (1.8.5)
+1
Adobe Audition CS6 (5.0) Garbage (1.9.17) Gold (1.9.23)
+3
2Buzz Aldrin's Space Program Manager 1.1 (Boxed Co... Silver (1.7.28) Gold (1.8.5)
+1
Final Fantasy XIV Heavensward (Official Client) Silver (1.9.11) Gold (1.9.23)
+1
Magic: The Gathering - Battlegrounds 1.4 Silver (1.5.18) Gold (1.9.24)
+1
Sayonara Umihara Kawase Steam Bronze (1.9.11) Gold (1.9.24)
+2
Caesar III GoG.com version (1.0.1.0) Platinum (1.8.1) Silver (1.9.21)
-2
Crysis Crysis 1.x Platinum (1.9.11) Silver (1.9.23)
-2
Desperados: Wanted Dead or Alive 1.x Platinum (1.7.51) Silver (1.9.24)
-2
Family Tree Builder 8.x Garbage (1.8.3) Silver (1.9.24)
+2
Sonic Utopia Demo v1 Garbage (1.6.2) Silver (1.9.23)
+2
Europa Universalis IV Non-Steam "Offline" Gold (1.9.23) Bronze (1.9.24)
-2
Silver Chaos 1 1.2 Silver (1.3.37) Bronze (1.9.23)
-1
iTunes 12.x Silver (1.9.21) Bronze (1.9.24)
-1
LEGO Digital Designer 4.x Platinum (1.6.2) Garbage (2.0-rc1)
-4
Paladins: Champions of the realm .33 Gold (1.9.18) Garbage (1.9.23)
-3
Total Change
+11

All Kernel Cousin issues and summaries are copyright their original authors, and distributed under the terms of the
GNU General Public License, version 2.0.