Software-update: Wine 4.0 final

Wine logo De final release van Wine versie 4.0 is verschenen. Wine is een opensource-implementatie van de Windows-api en maakt het mogelijk om DOS- en Windows-programma's op Linux, FreeBSD, Solaris en macOS te draaien. Een grote groep ontwikkelaars draagt bij aan Wine en er is voor gekozen om elke twee weken een nieuwe zogeheten ontwikkelversie uit te brengen in plaats van te wachten tot er een aantal nieuwe functies klaar is. Een paar keer per jaar verschijnt er een stabiele uitgave. De database met applicaties die onder Wine werken, al dan niet met behulp van kleine aanpassingen, bevat op het moment van schrijven 26.108 titels. In versie 4.0 treffen we onder andere ondersteuning aan voor Vulcan, DirectX 12 en gamecontrollers. De complete lijst met verbeteringen sinds versie 3.0 ziet er als volgt uit:

Direct3D
  • Initial support for Direct3D 12 is implemented. Direct3D 12 support requires the vkd3d library, and a Vulkan-capable graphics card.
  • The Multi-Threaded Command Stream feature is enabled by default.
  • OpenGL core contexts are always used by default when available. In the previous release, these were already used by default for Direct3D 10 and 11 applications on AMD and Intel graphics cards. That has been extended to all graphics cards, and all versions of Direct3D before 12.
  • Among others, the following notable Direct3D 10 and 11 features are implemented:
    • Multi-sample textures and views, as well as multi-sample resolves.
    • Per-sample fragment shading.
    • Support for 1D textures.
    • Draws without render target views or depth/stencil views.
    • Multiple viewports and scissor rectangles per draw.
    • Depth clipping control.
    • Depth bias clamping.
    • Stream output without geometry shaders.
    • Several more capability queries.
    • Several more resource formats.
  • The "depth bias clamping" feature mentioned above requires the ARB_polygon_offset_clamp/EXT_polygon_offset_clamp OpenGL extension. All Direct3D 10+ capable hardware should be able to support that extension, but it has come to our attention that some NVIDIA "Legacy Drivers" do not. We encourage affected users to explore whether the Free Software Nouveau drivers meet their needs.
  • Several Direct3D 11 interfaces have been updated to version 11.2, and several DXGI interfaces have been update to version 1.6. This allows applications requiring those newer interfaces to start working.
  • The first steps towards more fine-grained locking in the Direct3D implementation have been taken. This will be an ongoing effort to take better advantage of modern high core count CPUs.
  • Support for using the correct swap interval is implemented, for both DXGI and DirectDraw applications.
  • Application-configurable frame latency is implemented for Direct3D 9Ex and DXGI applications.
  • S3TC-compressed 3D textures are supported. S3TC-compressed 2D textures were already supported, provided the OpenGL drivers supported them.
  • When the ARB_query_buffer_object OpenGL extension is available, query results can be polled with lower latency, resulting in a modest performance improvement in specific cases.
  • Validation of Direct3D 8 and 9 resource pool and usage restrictions, as well as blit restrictions, has been improved.
  • The Direct3D graphics card database recognizes more graphics cards.
  • New HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys:
    • "MultisampleTextures" (REG_DWORD) Enable (0x1, default) or disable (0x0) support for multi-sample textures.
    • "Renderer" (REG_SZ) The backend API to target. Possible values are "gl" (default) for OpenGL and "gdi" for GDI.
  • Deprecated HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:
    • "DirectDrawRenderer" This has been superseded by the "Renderer" setting above.
  • Removed HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:
    • "StrictDrawOrdering" This feature was previously deprecated in favor of the multi-threaded command stream feature, and has been completely removed.
Graphics
  • A complete Vulkan driver is implemented, using the host Vulkan libraries under X11, or MoltenVK on macOS.
  • A builtin vulkan-1 loader is provided as an alternative to the SDK loader.
  • Icons in PNG format are supported, enabling loading high-resolution 256x256 icons.
  • The standard icons include a 256x256 version to take advantage of the PNG support.
  • Many Direct2D interfaces have been updated to version 1.2.
  • New HKEY_CURRENT_USER\Software\Wine\Direct2D registry key:
    • "max_version_factory" (REG_DWORD) Limit the interface version of the ID2D1Factory interface to the specified version. 0x0 for ID2D1Factory, 0x1 for ID2D1Factory1, etc. By default there is no limit.
  • Using an ARGB visual as default X11 visual is supported.
  • The old 16-bit DIB.DRV driver is implemented using the DIB engine.
  • Polygon drawing in the DIB engine is much faster for large polygons.
  • A0, A1 and A2 paper sizes are supported for generic printers.
  • Arrows are supported in GdiPlus.
Kernel
  • Support for running DOS binaries under Wine is removed. When execution of a DOS binary is requested, an external DOSBox instance is launched. This doesn't apply to Win16 binaries, which are still supported internally.
  • All the CPU control and debug registers can be accessed by kernel drivers, including on 64-bit.
  • Events, semaphores, mutexes and timers are implemented in kernel mode for device drivers.
  • The WaitOnAddress synchronization primitives are supported.
  • Reported processor information correctly distinguishes logical and physical CPU cores to support hyper-threading.
  • Detailed BIOS information can be queried on Linux platforms.
  • The various debugger APIs support manipulating a 32-bit Wow64 process from a 64-bit process context.
  • Application settings, compatibility information and execution levels are recognized in application manifests.
  • The various file I/O completion modes are implemented.
  • Debug registers are supported on NetBSD.
User interface
  • The infrastructure for setting DPI awareness and scaling of non DPI-aware applications is implemented. However, actual scaling of window contents is only supported on Android at this point. Scaling is disabled by default and can be enabled by setting the "DpiScalingVer" value under HKEY_CURRENT_USER\Control Panel\Desktop.
  • Window class redirection is supported, enabling support of Common Controls version 6 features for standard USER controls like buttons.
  • The standard USER controls Button, Listbox, Combobox, Edit and Static support version 6 features, including theming.
  • The standard Task Dialog is implemented, including support for icons, hyperlinks, progress bars, and various other UI elements.
  • Cue banners are supported in version 6 of the Edit control.
Desktop integration
  • Exporting MIME-type file associations to the native desktop can be disabled with a checkbox under the Desktop Integration tab in winecfg. It can be configured programmatically by setting the "Enable" value under HKEY_CURRENT_USER\Software\Wine\FileOpenAssociations.
  • The File Dialog can display file properties like size, times and attributes.
  • The File Dialog optionally shows the Places toolbar on the left-hand side.
  • The shell folder Public is used instead of AllUsersProfile to follow the behavior of recent Windows versions.
  • The shell File Browser supports keyboard shortcuts to rename (F2 key) and delete (Delete key) shell folders.
  • Many standard icons are added to the Shell library.
  • Shell Autocompletion is supported.
  • In desktop mode the taskbar won't be displayed on top of fullscreen windows.
  • Additional names are provided for standard cursors to better match existing X11 cursor themes.
Input devices
  • HID game controllers are supported in the XInput and Raw Input APIs.
  • An SDL driver is implemented to make SDL game controllers available through the HID interface.
Internet and networking
  • JScript has an EcmaScript compliant mode, which supports a number of features not available in legacy mode.
  • JavaScript property accessors are supported.
  • HTML style object is rewritten to support standard-compliant mode.
  • HTML documents respect X-UA-Compatible HTTP header, allowing web pages to request specific compatibility mode. The HKEY_CURRENT_USER\Software\Wine\MSHTML\CompatMode key may be used to override the requested mode.
  • MSHTML supports non-HTML elements, allowing limited SVG support.
  • A number of new HTML APIs are supported.
  • The proxy server can be configured through the Internet Control Panel applet.
  • Stream I/O is implemented in WebServices.
  • The Web Services on Devices API (WSDAPI) is implemented, including sending and receiving the various message types.
  • More system information is reported through WBEM, including CPU, BIOS, video controller, and network adapter properties.
Cryptography
  • Asymmetric encryption keys, as well as RSA and ECDSA signature verification are supported.
  • The GCM and ECB encryption chaining modes are supported.
  • Optimal Asymmetric Encryption Padding (OAEP) is supported in RSA encryption.
  • A Kerberos security provider is implemented, supporting Kerberos authentication.
  • A selection dialog for public key certificates is implemented.
  • If available, GnuTLS is used on macOS in preference to the CommonCrypto framework.
Text and fonts
  • Character tables are based on version 11.0.0 of the Unicode Standard.
  • The new subpixel font rendering of FreeType >= 2.8.1 is supported.
  • When a font face is missing, FontConfig is queried to provide possible substitutions.
  • The font selected in the console emulator properly scales with the display DPI.
  • Memory font resources are supported in DirectWrite.
  • The builtin Wingdings font contains clock images.
Audio
  • The Windows Media Player interfaces are implemented and support media playback.
  • An MP3 decoder is provided as DirectX Media Object.
macOS
  • The preloader is implemented on macOS, for better address space layout compatibility.
  • The Command key can be mapped to Ctrl, by setting the "LeftCommandIsCtrl" or "RightCommandIsCtrl" values under HKEY_CURRENT_USER\Software\Wine\Mac Driver.
  • The App Nap energy-saving feature is disabled by default in GUI processes. It can be re-enabled by setting the "EnableAppNap" value under HKEY_CURRENT_USER\Software\Wine\Mac Driver.
Android
  • Setting the mouse cursor is supported using the APIs available in Android >= 7.
  • The new version of the Android graphics buffer allocator API is supported, to enable graphics support on Android >= 8.
  • Android x86-64 platforms are supported also in 64-bit mode, however WoW64 mode is not supported yet in the WineHQ packages.
ARM platforms
  • Stubless COM proxies are implemented on ARM.
  • The Windows calling convention for variadic functions is supported on ARM64.
  • Exception handling and debugging is better supported on ARM64 platforms.
  • The MinGW toolchain is supported for cross-compilation to ARM64.
Built-in applications
  • The Ping program provides actual pinging functionality using IcmpSendEcho.
  • The SchTasks task scheduler program can create and delete tasks.
  • The RegEdit registry editor has an improved hex editor for binary values.
  • FOR loops are properly handled in the Command Interpreter.
  • The XCopy program supports the /k (keep attributes) option.
Internationalization
  • The Japanese 106 keyboard is properly supported.
  • Translation of timezone names is supported.
  • There is a partial translation to the Sinhala language.
  • More locales are supported in the Resource Compiler (wrc) and Message Compiler (wmc).
Development tools
  • winedbg supports debugging WoW64 processes.
  • In gdb proxy mode, winedbg supports a --port option to specify the port used to connect to gdb.
  • winegcc uses better heuristics for finding the appropriate lib directory for 32/64-bit cross-compiles.
  • winegcc supports building native subsystem libraries.
  • winegcc also looks for includes in the top-level include directory of the installation prefix.
  • winebuild supports a -mfpu option for specifying the FPU architecture on ARM platforms.
  • winedump supports dumping SLTG-format typelibs.
IDL compiler
  • Application Configuration Files (ACF) are supported.
  • Asynchronous interfaces are supported.
  • Type and method serialization using encode/decode attributes is supported.
  • The defaultvalue() attribute is supported for pointer types.
  • Generated files are always specific to the target platform. The target can be specified the same way as with the other tools, using the cpu-manufacturer-os platform specification.
  • Nesting of pointers and arrays works correctly.
  • Correct size and alignment are generated for encapsulated unions.
  • The __int32 type is supported.
  • The -robust command line option is recognized (but ignored) for compatibility with the Microsoft IDL compiler.
  • Multiple typelibs can be generated into a single resource file.
.NET
  • 32-bit CIL-only .NET binaries are supported on 64-bit.
  • The Mono engine is updated to version 4.7.5 with some upstream Mono fixes.
RPC/COM
  • The typelib marshaller is reimplemented. It generates format strings and then uses the standard NDR marshalling routines; this way it also works on 64-bit and ARM platforms.
Installers
  • MSI custom actions run in a separate process, enabling proper support for mixed 32/64-bit installers.
  • Deferred installation actions are supported in MSI.
Build infrastructure
  • The test framework supports building helper dlls inside a test, to allow testing features that require loading an external library.
  • The test framework supports testing Windows kernel drivers.
  • It is possible to build and run a WoW64 tree from inside the Wine source directory. Previously an out-of-tree build was required.
  • A .editorconfig file is provided with the recommended indentation parameters.
Miscellaneous
  • The Task Scheduler service and APIs are implemented.
  • The Windows Management Instrumentation service is implemented.
  • The OPC Services (Open Packaging Conventions, used for Microsoft Office XML files) library is implemented.
  • The HKEY_PERFORMANCE_DATA magic registry key is partially implemented.
New external dependencies
  • The Vulkan library is used to implement the Vulkan graphics driver.
  • The Vkd3d library is used to implement Direct3D 12 on top of Vulkan.
  • The SDL library is used to support game controllers.
  • The GSSAPI library is used to implement Kerberos authentication.

Civilization IV d.m.v. Wine

Versienummer 4.0
Releasestatus Final
Besturingssystemen Linux, BSD, macOS, Solaris
Website Wine HQ
Download https://www.winehq.org/download
Licentietype GPL

Door Bart van Klaveren

Downloads en Best Buy Guide

23-01-2019 • 05:36

20

Submitter: job_h

Bron: Wine HQ

Update-historie

14-07 Wine 10.12 5
29-06 Wine 10.11 0
14-06 Wine 10.10 9
02-06 Wine 10.9 14
17-05 Wine 10.8 0
03-05 Wine 10.7 77
18-04 Wine 9.0.1 6
05-04 Wine 10.5 5
22-03 Wine 10.4 0
08-03 Wine 10.3 0
Meer historie

Reacties (20)

20
20
17
2
0
0
Wijzig sortering
Zelf geen Mac/Linux-gebruiker, dus veel weet ik er niet van.

Maar heb ik het goed voor als ik zeg dat Wine de programma's rechtstreeks op MacOS/Linux draait? Dus niet via een virtuele machine waar eerst Windows op moet komen?
Je hoeft inderdaad geen virtuele machine te installeren zoals met virtual pc bij Windows.
Het is niet ingewikkeld, maar het is natuurlijk niet zo eenvoudig als een .EXE file installeren op Windows. Je moet het even weten, maar dan werkt het best goed.

https://www.linux.com/lea...indows-applications-linux
Ze hebben veel stappen gemaakt om het makkelijker in gebruik te maken. Veelal werkt een simpele `wine programma.exe` al of kun je zelfs dubbelklikken op een executable om hem uit te voeren.

Dat gezegd hebbende, er zijn altijd wat moeilijkere programma's die wat meer werk nodig hebben, maar ik kom ze, persoonlijk, steeds minder tegen :)
Anoniem: 1128097 @Septimamus23 januari 2019 14:17
Die uitleg is wel heel erg overdone. Ik speel al jaren via wine, en een simpele [quote]wine game.exe[\quote] is al genoeg in 99 % van de gevallen. Soms moet je een extra parameter meegeven, maar dat is echt een uitzondering.
Klopt, het stelt je in staat om Windows exclusieve applicaties (dus vooral games) te draaien op Linux. Dit werkt doordat Wine de systeem-aanroepen van de applicatie afvangt en deze doorgeeft aan Linux. Als de applicatie vraagt "win32, teken daar eens een vierkantje op het scherm", dan vangt Wine die boodschap af en maakt daarvan "gtk, teken daar eens een vierkantje op het scherm".

Het is ook ingebouwd in Steam tegenwoordig, onder de merknaam Steam Play. De resultaten zijn zeer indrukwekkend en je kunt nu makkelijk Doom 2016, The Witcher 3 of Skyrim draaien. Zie https://www.protondb.com/ voor een community index van de gamen en diens prestaties.

Zonder Steam kun je het ook gebruiken, middels een commerciële front-end van Code Weavers, welke de originele zakelijke sponsors zijn van dit project (https://www.codeweavers.com/). Mocht 60.- in het jaar je iets te gortig worden, dan kun je ook altijd nog een community front-end gebruiken zoals q4Wine (https://q4wine.brezblock.org.ua/), Lutris (https://lutris.net/), PlayOnLinux (https://www.playonlinux.com/en/) en dergelijke.

Het systeem is niet perfect, maar het is ook nog nooit zo goed geweest als afgelopen jaar. Je ziet duidelijk dat de bezorgdheid van Valve en het toenemende commerciële interesse in Linux zijn vruchten afwerpen.

Toevoeging: Voor Linux is de focus van Wine voornamelijk rond videogames. Op Mac OS X is de focus van Wine vooral zakelijke applicaties. Code Weavers bied bijvoorbeeld Microsoft Office garantie op Mac OS X. Dit is vooral voor de zakelijke markt nogal een ding, want dat betekend dat je onder andere Visio en Access ondersteuning hebt, maar ook SharePoint intergratie.

[Reactie gewijzigd door Eonfge op 22 juli 2024 19:08]

Anoniem: 1128097 @RRV23 januari 2019 14:18
Wine is not an emulator. Wine is een acroniem ;)

Maar het vertaald windows api / sys calls naar calls die de kernel kan begrijpen. En het is zeer simpel in gebruik. In 99 % van de gevallen is [quote]wine programma.exe[\quote] genoeg om het programma op te starten.
Lees ik dat goed: Dosbox integratie in Wine? Erg Nice. Toch een van de betere manieren om oude Dos games te draaien.
Oudere DOS spellen kan je beter direct via DOSBox draaien en niet via Wine. Wine als wrapper heeft weinig toegevoegde waarde.

Het verbaast mij wel dat ze nog steeds Win16 ondersteunen. Dat is dan betere backwards compatibility dan Windows, want Win16 werkt niet onder 64-bit versies van Windows.
Er zit heel veel software ondersteund door Wine waarvan je denkt dat het zinloos is maar de gedachtengang is dat elke API call door meerdere programma's wordt gebruikt en dat als 1 programma niet werkt er een fout zit in de implementatie die hersteld moet worden.
Oh, ik begrijp de ondersteuning nog wel. Er is bijvoorbeeld wat legacy software dat 32 bit is, maar waarvan de installer 16 bit is. De software zou dus prima kunnen werken onder Windows x64, maar de installer niet.

Goed om te zien dat Wine dit beter doet.
Niet alleen voor Win16, al moet ik er direct bij zeggen dat dat soms echt wel handig is. Software voor Win 9x of zelfs XP werkt in mijn ervaring regelmatig beter in Wine dan in Windows.
Anoniem: 1128097 @Henkje.doc23 januari 2019 14:20
Tjah, de grap is dat inderdaad een hele zooi games van vroeger, die nog steeds leuk zijn, wel werken via wine, maar niet op windows. Ergens klopt dat niet.
Ik denk dat Wine sinds kort zeer veel gebruikt wordt in de vorm van Proton. Proton is een fork geoptimaliseerd voor games, en wordt onder de motorkap gebruikt voor Steam Play - het spelen van Windows-only games vanuit Steam directly in Linux.

Officieel worden er maar een handjevol games gesupport door de Proton integratie in Steam, maar in werkelijkheid kun je in de Steam settings een Proton-beta optie aanzetten om alle Windows-only games een Steam Play knop te geven. In mijn ervaring werken veruit de meeste games daarna out of the box. Voor sommige moet je misschien iets van configuratie aanpassen (gewoon even zoeken online) en ik heb van anderen gehoord dat ze enkele games hebben die het helemaal nog niet doen.
Ik heb er ook geen verstand van maar een Windows programma op Wine draaien zal toch altijd trager zijn dan in Windows zelf?
Misschien is dat voor Microsoft Word niet merkbaar maar bij games toch zeker wel?
Is het dan niet sneller om Virtualbox of gewoon dual boot te gebruiken?
Dat is niet waar.

Wine is geen VM of virtualisatie, maar een alternatieve implementatie van (bijna) alle Windows APIs.

Waar Microsoft het efficienter geïmplementeerd heeft zal Windows sneller zijn, waar Wine het efficienter geïmplementeerd heeft is Wine sneller. Vaak loopt dat niet ver uit elkaar, op sommige taken zal er wel een merkbaar verschil zijn. Maar dat is heel afhankelijk van wat je precies aan het doen bent, en of de drivers die je gebruikt enigzins geoptimaliseerd zijn (da's op Windows vaak een hoop beter).

Het is zelden tot nooit sneller om Virtual Box te gebruiken. Deze gebruikt namelijk wel virtualisatie, met de performancekosten die daarbij komen.
Inderdaad, Wine Is Not an Emulator. Daardoor zijn er zelfs spellen geweest die sneller werkte onder Linux + Wine. WoW was daar een voorbeeld van.

Ik denk wel dat door Vulcan, Valve en veel indie developers er een shift naar Linux ontstaan is als game platform. Helaas nog niet erg ver, maar wel merkbaar in aanbod.
Denk dat het nog een kwestie van tijd is.
Ben hier bezig met (thuis) migratie naar linux platform. Het zal nog enige tijd in beslag nemen.
Anoniem: 1128097 @Jazco2nd23 januari 2019 14:21
Nee, er zijn games die beter draaien op wine dan op windows.

Wine doet alleen maar api/sys calls vertalen.
Dit valt goed in lijn met het plan van Valve om alle Windows games geschikt te maken voor Linux. Het zal niet lang meer duren voor dat Linux een veel betere positie krijgt als OS om op te gamen. Wat de ontwikkeling van Vulkan weer ten goede zal komen.

Op dit item kan niet meer gereageerd worden.