Pages

Showing posts with label Games. Show all posts
Showing posts with label Games. Show all posts

Friday, April 21, 2023

Lutris 0.5.13-beta2 has been released

 Lutris helps you install and play video games from all eras and from most gaming systems. By leveraging and combining existing emulators, engine re-implementations and compatibility layers, it gives you a central interface to launch all your games.


The client can connect with existing services like Humble Bundle, GOG and Steam to make your game libraries easily available. Game downloads and installations are automated and can be modified through user made scripts.

Changelog:

2nd beta release for 0.5.13

  • Add support for Proton
  • Add drag and drop on the main window. Dropped files will be matched
    No-Intro, Redump and TOSEC checksums.
  • Add support for ModDB links in installers (moddb python module required)
  • Added "Missing" sidebar option for games whose directory is missing
  • Re-style the configuration, preferences, installer and add-games windows
  • Group configuration options into sections
  • Added checkbox to stop asking for the launch config for a game
  • Added checkbox to sort installed games first
  • Support for launch-configs in shortcuts and the command line
  • Show platform badges on banners and cover-art
  • Installing games from setup files can now use different presets (Win98, 3DFX, ...)
  • Add filter field to runner list
  • Show game count in search bar
  • Workaround Humble Bundle authentication issues by allowing importing
    cookies from Firefox
  • Add Itch.io integration
  • Add Battle.net integration (protobuf dependency required)
  • Improve detection of DOSBox games on GOG
  • Added "Unspecified" Vulkan ICD option
  • Removed ResidualVM (now merged into ScummVM)
  • Detect obsolete Vulkan drivers, warn and default to DXVK 1.x for them
  • Improved High-DPI support for custom media
  • Performance improvements

 Download this version of Lutris from here.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Saturday, February 4, 2023

Proton 7.0-6 released

Valve has just published Proton 7.0-6 as the newest version of this Wine-based software that powers Steam Play for running Windows games on Linux. Proton 7.0-6 had been available in testing and release candidate form since the end of last year while now has been promoted to stable. 



With Proton 7.0-6 comes more Windows games that are playable under Linux. The newly-supported titles include Gotham Knights, UNCHARTED: Legacy of Thieves Collection, Heroes of the Dark, Super Arcade Racing, Crazy Machines 3, King under the Mountain, NinNinDays2, and Mahjong Ladies.

Proton 7.0-6 also fixes an Ubisoft Connect launcher failure, fixing a texture issue on the menu areas on Quake III Arena, several Microsoft Flight Simulator fixes, and a range of other game fixes. Proton 7.0-6 also ships with Wine Mono 7.4 and DXVK-NVAPI 0.6.

  • Now playable:
    • Gotham Knights
    • UNCHARTED: Legacy of Thieves Collection
    • Heroes of the Dark
    • Super Arcade Racing
    • Crazy Machines 3
    • King under the Mountain
    • NinNinDays2
    • 雀姬 (Mahjong ladies)
  • Fix Ubisoft Connect launcher failure caused by launcher update.
  • Fix Septerra Core hanging on redistributables installation.
  • Fix Persona 5 Royal crashing when creating game save data.
  • Fix Vampire Survivors intermittent error message.
  • Fix Super House of Dead Ninjas, Enemy Mind, and Out There Somewhere frame hitching every few seconds.
  • Fix Zeepkist freezing when using controller.
  • Fix Overcooked! All You Can Eat being unable to add a second controller-using player.
  • Fix Quake III: Arena and Quake III: Team Arena displaying weird texture over the menu.
  • Fix the new EA launcher displaying a blank window.
  • Fix Marvel Snap not being able connect to online services.
  • Fix Microsoft Flight Simulator crashing during longer flights.
  • Fix Microsoft Flight Simulator not displaying live traffic.
  • Fix Microsoft Flight Simulator not starting after a recent game update.
  • Fix Microsoft Flight Simulator crashing when starting next to big cities.
  • Fix Sackboy: A Big Adventure failing to start the first time it's launched.
  • Fix Spyro Reignited Trilogy playing intro video in a wrong language.
  • Fix Jurassic World Evolution 2 bad performance with recent Proton versions.
  • Fix multiple monitor support in Project Cars 2 and Project Cars 3.
  • Fix Korean not being rendered correctly in Romance of the Three Kingdoms XIII launcher.
  • Fix multiple languages not rendering correctly in Sins of a Solar Empire: Rebellion.
  • Fix Lost Lands: Dark Overlord, Lost Lands: Dark Lord, Lost Lands: Redemption, and Haunted Hotel: Silent Waters Collector's Edition crashing when trying to set a wallpaper.
  • Fix video playback regression with Chronos: Before the Ashes.
  • Improve video playback with OUTRIDERS and ToGather: Island.
  • Update wine-mono to 7.4.0.
  • Update dxvk-nvapi to v0.6.

Link to source code

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Monday, January 30, 2023

CodeWeavers CrossOver Mac 22 review

There will always be apps — mostly games — whose publishers won’t port them to the Mac for financial or contractual reasons. Codeweavers’ CrossOver offers a simple, convenient way to run many of those apps. The result isn’t as reliable or universal as other solutions, but it’s a lot cheaper and easier, and with CrossOver’s helpful database of app functionality and generous try-before-you-buy period, you can see whether it’ll run the apps you want to use before you commit your hard-earned cash.

 

CrossOver translates Windows commands into Mac ones on the fly — like hiring an interpreter to help you in a foreign country, rather than learning the language yourself. It’s based on the open-source WINE project, but its improvements to standard WINE make it a lot easier for everyday users to successfully run.

CrossOver 22 is only available from Codeweavers' web site. $74 gets you a full copy and a year’s worth of updates to the app. Once that period elapses, you can still use the copy you already have as long as you want to, but you won’t be able to download fresh updates. You'll have a limited window of time after your subscription expires to renew it for roughly $30.

 You can also pay $494 for CrossOver Life, which removes the need for annual renewals. The company tends to offer once-a-year discounts around Black Friday, sometimes slashing the cost of a year's updates to as little as $15.

After a quick installation, CrossOver does most of the hard work for you. It sets up a “bottle” — a contained virtual environment — in which you can install basic Windows or Linux underpinnings, plus any apps you’d care to run. CrossOver builds in shortcuts to install popular apps like Steam, and it can seamlessly install apps from the Internet, from downloaded ISO files, or from a physical disc, should you have an external drive.

You can have multiple separate bottles for different apps, or put all the apps you use in a single vessel. As with containerized software setups like Docker, this makes CrossOver easier and less stressful to use. In the unlikely event that something goes horribly wrong inside a bottle, it won’t affect your larger system. You can just delete the bottle and start fresh.

CrossOver 22’s biggest leap forward lies in its overhauled interface.

Each new version of CrossOver offers under-the-hood improvements to help all apps in general and specific titles in particular run better. But CrossOver 22’s biggest leap forward lies in its overhauled interface. 

Previous versions hid important toggles and features behind poorly designed contextual menus. CrossOver 22 takes its design cues instead from the Mac App Store, putting crucial options in full view. It’s easier than ever to run apps you’ve already installed, or add new ones. 

Codeweavers’ database of popular apps and their compatibility, maintained by volunteer testers, is now more directly integrated into the app itself, rather than requiring a separate visit to Codeweavers's web site. That database isn’t comprehensive — some titles I’ve personally used under CrossOver aren’t included — but it’s a good place to start when you’re curious about whether a particular app will run there.

The path between original Windows code and successful Mac execution isn’t always straight. For instance, Windows games use a set of tools known as DirectX to enable 3D graphics. CrossOver has to pass those commands through an open-source translator called DXVK, which maps them to the open-source Vulkan 3D standard. These Vulkan commands must then go through another interpreter, MoltenVK, to run under Apple’s own 3D toolkit, Metal.  Each of these handoffs eats up processing power and makes the resulting games run slower and less reliably than they would if coded for the Mac from the get-go. 

The beefier your processing power, the better performance you’ll get from CrossOver. Even though it’s an Intel native app, it runs best on Apple silicon under Rosetta 2 emulation, thanks to the sheer horsepower of the M1 and higher.  (CrossOver plans to eventually support Apple silicon, but Codeweavers says that transition is likely years away.)  Popular launcher apps like Steam, and simpler 2D games like Guacamelee, ran without a hitch in my tests, but more sophisticated titles had various degrees of tradeoffs.

If you want to game with CrossOver, having more than 8GB RAM or something more powerful than a basic M1 will likely serve you well.

When I ran 2017’s Star Wars: Battlefront II on my stock M1 Mac Mini, the game looked great. But depending on the game mode and the size and type of the environments I found myself in, performance ranged from fast and fluid to an unplayable crawl. I’ve seen YouTube videos of other CrossOver users playing the game much more smoothly, even on levels that choked my computer. If you want to game with CrossOver, having more than 8GB RAM or something more powerful than a basic M1 will likely serve you well.

Furthermore, Metal has different aims and priorities than DirectX, trading some measure of tech sophistication for the ability to run across MacOS, iOS, and tvOS. Even under Apple’s recently announced Metal 3, there are just some things DirectX does for which Metal lacks an easily translated equivalent. 

Though the game mostly ran smoothly barring some pauses for loading, the world around my protagonist rendered as a mass of flickering black triangles.

I saw this firsthand playing Jedi: Fallen Order. Though the game mostly ran smoothly barring some pauses for loading, the world around my protagonist didn’t render right, presenting a mass of flickering black triangles instead of realistic surroundings. I was able to adapt and still enjoy the game, but if you’re looking for absolute fidelity, consider this fair warning.

And even if everything else goes swimmingly, there are some facets of Windows software that just won’t work outside that platform, no matter what. Barring some miracle in a future version, I’ll never know how well Star Wars: Squadrons runs on CrossOver, because the anti-cheating software for its multiplayer mode won’t cooperate, shutting down every attempt to install the game.

ntel Macs can directly install Windows through Boot Camp, but this option isn't available on newer Apple Silicon-powered Macs. 

Virtual machines like VMWare Fusion and Parallels Desktop let Mac users run Windows and its apps. By emulating the entire Windows operating system, they  offer better compatibility with more kinds of PC apps, especially games. 

Both apps are Apple Silicon native and can, with various degrees of workarounds, run Apple Silicon-friendly ARM-based versions of Windows 11 (and their apps) natively. CrossOver tops out at apps for Windows 10, and because of the engineering complexities involved, Codeweavers says it won't offer a native Apple Silicon version for several more years.

But Parallels and VMWare each cost more than a year of CrossOver updates, and neither will work without a copy of Windows itself. Even an older version of that can run you as much as $140.

CrossOver 22 is impressive in its simplicity — at least in terms of how easy it is to get select Windows applications up and running on macOS. It's by no means perfect, and your mileage will vary dramatically depending on the complexity of the applications you're looking to run, not to mention the power of your Mac computer itself. But with prudent use of the free trial to test your must-work apps, it's a great opportunity to bridge the gap between Apple and Microsoft's computing worlds.

 Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Sunday, December 11, 2022

Wine development release 8.0-rc1 is now available for Linux FreeBSD and macOS

The Wine development release 8.0-rc1 is now available.

This is the first release candidate for the upcoming Wine 8.0. It marks the beginning of the yearly code freeze period. Please give this release a good testing and report any issue that you find, to help us make the final 8.0 as good as possible.

What's new in this release:

  • Bundled vkd3d upgraded to version 1.6.
  • Vulkan and OpenGL thunking optimizations.
  • More support for print processors.
  • Improved joystick control panel.
  • Long types printf format conversion finished.
  • Various bug fixes.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

 


 Bugs fixed in 8.0-rc1 (total 52):

 - #28290  shell32:shelllink - test_load_save() crashes randomly in Wine
 - #36681  ws2_32/tests/sock.c fails on gentoo without IPX support
 - #46649  Multiple applications need D3DXDisassembleShader() implementation (Tom Clancy's Rainbow Six: Vegas 2, The Void)
 - #48105  kernel32:console fails on Japanese and Chinese Windows
 - #51234  user32:clipboard test_ClipboardOwner() has a race condition with clipboard managers
 - #51456  oleaut32:typelib: test_CreateTypeLib(SYS_WIN32) fails in 64-bit Wine
 - #51457  The 32-bit version:install fails in 64-bit wineprefixes (now todo)
 - #51780  The user32:msg output is too big in Wine
 - #52507  user32:win has some spurious GetScrollInfo failures
 - #52875  riched20:editor fails with the UTF-8 code page
 - #52877  user32:msg - test_dbcs_wm_char() fails in Wine in the Japanese and Chinese locales
 - #52909  rpcrt4:ndr_marshall crashes on the latest Windows 8.1, 21H1 and 21H2
 - #52910  mshtml:htmldoc fails on Windows with the UTF-8 codepage
 - #52965  kernel32:locale - test_GetLocaleInfoW() and test_invariant() fail on Windows in Hindi
 - #52980  conhost.exe:tty - test_tty_input() fails in most locales on Windows
 - #53183  shell32:shelllink - test_load_save() randomly fails to delete test.lnk in Wine
 - #53199  dinput:force_feedback - test_windows_gaming_input() sometimes has unexpected reference counts in Wine
 - #53207  user32:msg - test_button_messages() fails randomly in Windows and Wine
 - #53208  user32:msg - The SW_SHOWMINIMIZED test in test_messages() succeeds in Wine with fvwm
 - #53211  ddraw:ddraw1 has over 255 failures on the debian11 TestBot VMs
 - #53233  ddraw:ddraw1 - test_clear() has rare failures in Wine on the debian11 VM
 - #53240  dinput:device8 - test_sys_mouse() has some rare failures on the TestBot VMs
 - #53254  urlmon:url - test_URLDownloadToFile_abort() sometimes fails on Windows 7+
 - #53327  Ragnarok Online bad performance
 - #53342  quartz:mpegaudio - The 64-bit test_streaming_events() times out on fg-deb64
 - #53530  mshtml:htmldoc - test_editing_mode(TRUE, TRUE) sometimes fails
 - #53568  16bit applications refuse to start wine 7.15+
 - #53646  Multiple installers crash in user32 (Drakan, Star Wars, Colin McRae, X-COM, etc.)
 - #53678  vbscript can not compile CaseClausules that do not use a colon
 - #53684  ntdll:info is broken on Windows 8 to 10 1709 in the GitLab WineTest builds
 - #53686  The 64-bit kernel32:console is broken on Windows in the GitLab WineTest builds
 - #53783  vbscript can not compile private const expressions
 - #53814  TMUnlimiter 1.2.0.0 requires ini files with whitespace in the section to be parsed properly
 - #53895  ddraw:ddraw1, ddraw:ddraw2, ddraw:ddraw4, ddraw:ddraw7 - test_cursor_clipping() fails on dual screen setups in Wine
 - #53927  script56.chm help file pages not functioning properly due to wine missing beforeprint and afterprint html events
 - #53950  dup2 error returns ENFILE instead of EBADF
 - #53964  Redim should fail on fixed arrays
 - #53966  NCryptExportKey is not implemented
 - #53968  NCryptSignHash is not implemented
 - #53971  postgresql installer 9.3 needs support for Username in WScript.Network
 - #53972  BCryptSignHash does not support BCRYPT_PAD_PSS
 - #53987  Regression in print handling in Framemaker 8
 - #53996  MDB Viewer Plus: can not open database
 - #53999  JGlossator crashes
 - #54009  Wine segfaults on startup on macOS 12 and 13
 - #54012  kernel32:heap - The 64-bit test_GlobalAlloc() fails on Windows 7
 - #54043  Studio One Professional 5 crash on launch with an unimplemented function USER32.dll.RegisterSuspendResumeNotification
 - #54057  prints do not work in any application
 - #54075  wldap32:parse - test_ldap_paged_search() sometimes gets LDAP_SERVER_DOWN in Wine, crashes
 - #54087  mshtml:events sometimes gets a failure in Protocol_Continue() on Windows
 - #54098  winhttp:notification fails and times out systematically in Wine
 - #54111  Unable to run "make install" after "makedep: Add a helper function to skip spaces in strings."

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Monday, November 21, 2022

Wine development release 7.21 is now available for Linux FreeBSD and macOS

The Wine development release 7.21 is now available.

What's new in this release:

  • OpenGL library converted to PE.
  • Support for multi-architecture PE builds.
  • More preparation work for Vulkan 32-on-64 support.
  • Support for creating import libraries without dlltool.
  • Locale data updates.
  • Various bug fixes.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

 

Bugs fixed in 7.21 (total 25):


 - #29974  StarBurn 13 crashes on disabling skins
 - #51418  fotoBiz X - Fatal error on startup
 - #51779  Visual Studio msvsmon fails to bind server socket in child processes
 - #52467  Kaseya Live Connect 9.5.0.28 management software sub-component crashes
 - #53081  Retina Mode broken since 7f7f9fa22c5cbe629e79a54257d5bd21403e80db
 - #53100  Euphoria: freezes every second while controllers are plugged in
 - #53153  SetWindowPos() incorrectly computes exposure region of parent window with WS_EX_COMPOSITED
 - #53484  dxgi:dxgi times out on the debiant VM
 - #53590  GetFileInformationByHandleEx() not fully implemented causing boost::directory_iterator failures with boost v1.79 and newer
 - #53606  First intro stops on last frame in multiple games (Darksiders Genesis, The Medium)
 - #53617  Imaris fails at exit with error, and keeps a process running.
 - #53631  Multiple 64-bit applications have issues with dialogs (DipTrace, foobar2000 installer)
 - #53676  vbscript can not exec_script - invalid number of arguments for Randomize
 - #53738  Cherry MIDI sequencer cannot read files with a path including CJK characters
 - #53749  Hotel Giant 2: black screen after changing resolution or enabling anti-aliasing
 - #53768  Winfile crashes due to unimplemented user32.dll.DragObject
 - #53798  Port Royale 2: incomplete text rendering
 - #53849  Apiset DLLs broken in non-PE builds
 - #53856  Wine 7.20 installs some windows files to the wrong location
 - #53859  Hades shows black screen at Vulkan mode
 - #53861  Non-PE builds fail after "makefiles: Add support for multiple PE architectures."
 - #53872  Adobe Reader XI crash opening settings in Protected Mode
 - #53879  Gothic 1 doesn't launch (msdbi.dll failed to initialize)
 - #53888  vbscript does not allow Mid on non VT_BSTR
 - #53893  ws2_32:sock - test_WSASocket() gets an unexpected raw protocol name in French on Windows

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Tuesday, November 8, 2022

Wine stable release 7.0.1 is now available for Linux FreeBSD and macOS

The Wine development release 7.0.1 is now available.

What's new in this release:

  • Various bug fixes
  • Translation updates

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

 


 Bugs fixed in 7.0.1 (total 32):

 - #12732  Nota Bene crashes on install
 - #44202  undname.c fails to parse symbols with rvalue-reference semantics '&&'
 - #45916  x64dbg fails to load debuggee, needs ThreadScheduler_ScheduleTask
 - #50352  Maximum sockets per process is set very low
 - #50370  Gothic 1 doesn't start correctly when screen resolution of the game matches display resolution
 - #50433  'MsiBreak' custom action debugging aid should use custom action's name from 'CustomAction' table (currently uses 'Target' field)
 - #50869  Killing Wine process in Wine 6.5 doesn't terminate the application because of the new use of start.exe
 - #51163  WinOffice Pro 5.3 stops after splashscreen, needs WMI class SoftwareLicensingProduct
 - #51619  advapi32:registry fails in Wine because French & German timezone name translations are too long
 - #51900  regression: REAPER scrollbars flash between themed and non-themed
 - #52163  postgresql-9.3 installer expects scrrun:filesys_GetTempName to return filename with TMP suffix
 - #52298  Opening PPT with Freeoffice Presentations crashes on unimplemented function ole32.dll.OleConvertIStorageToOLESTREAMEx
 - #52426  BCryptSignHash mishandles empty arguments
 - #52434  Light Blue theme has rendering errors in tree views
 - #52436  In Light Blue theme, checkable toggle buttons (BS_AUTOCHECKBOX) look unchecked when hovered
 - #52446  Normal dlls with native subsystem id are no longer processed when importing system dlls with uppercase names
 - #52476  QuickLOAD (VB5 app) input value is changed by factor 10
 - #52494  shell32 progman_dde tests crash if run immediately after prefix creation
 - #52510  alt:V mod for Grand Theft Auto V fails due to missing concrt140._Byte_reverse_table@details@Concurrency@@3QBEB
 - #52562  advapi32:registry fails in Wine because some French timezone name translations are too long
 - #52581  Internet MIDI crashes with Light Blue theme enabled
 - #52583  ApiSetView does not display export ordinals correctly
 - #52616  SteelSeries GG installer crashes on unimplemented function setupapi.dll.SetupQueryInfVersionInformationW
 - #52618  32-bit EXEs do not launch from build dir on macOS 10.14 in WOW64
 - #52626  MahjongSoul needs unimplemented function combase.dll.RoSetErrorReportingFlags
 - #52667  DTS Master Audio Suite can't select save file location when wine's "Light" theme is used
 - #52679  Anno 1602 / 1602 A.D. graphics too dark / black
 - #52704  FreeHand 9 demo: invalid handle exception (0xc0000008) when attaching uxtheme.dll
 - #52787  Invalid function prototype for "RegisterUserApiHook" when compiling for C++
 - #52953  GuiPy crashes on unimplemented function xmllite.dll.CreateXmlReaderInputWithEncodingCodePage
 - #53034  Lazarus: menu text disappears under mouse if light theme is enabled
 - #53430  urlmon:url fails due to unexpected redirection
 

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Friday, August 5, 2022

Lutris 0.5.11-beta1 has been released

Lutris helps you install and play video games from all eras and from most gaming systems. By leveraging and combining existing emulators, engine re-implementations and compatibility layers, it gives you a central interface to launch all your games.

The client can connect with existing services like Humble Bundle, GOG and Steam to make your game libraries easily available. Game downloads and installations are automated and can be modified through user made scripts.

Download this version of Lutris from here.

Changelog :

  • Fix for some installers commands exiting with return code 256
  • Change shortcut for show/hide installed games to Ctrl + i
  • Show/hide hidden games is assigned to Ctrl + h
  • Install game launcher before login for services that use one.
  • Added SheepShaver, BasiliskII and Mini vMac runners
  • Don't perform runtime updates when a game is launched via a shortcut
  • Fix crash when Lutris is unable to read the screen resolution
  • Enable Gamescope on Nvidia >= 515
  • Fixes for Steam shortcuts
  • Add Gnome Console and Deepin Terminal to supported terminal emulators
  • Fix crash when Mangohud is used alongside Gamescope
  • Translation updates

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Monday, November 9, 2020

Run Windows software on your Chromebook

CrossOver is a commercial compatibility layer by CodeWeavers, based on the Wine project, which aims to run popular Windows software on Unix-based operating systems. CodeWeavers released the first beta of CrossOver for Chrome OS three years ago, and now it's finally ready for the masses.

CrossOver 20 was released today as the first version that officially supports Chrome OS. It comes configured to run thousands of popular Windows applications, including World of Warcraft, Steam, Quicken, GOG Galaxy, Microsoft Office, and others. Unlike the Parallels-based VM that Google is working on, CrossOver translates Windows API calls as needed, rather than emulating the entire operating system.

The Chrome OS version now runs on top of the Linux container, instead of running as an Android application like earlier betas did. CodeWeavers said in a blog post, "We feel that providing CrossOver using this route provides a superior user experience." However, this does mean that older Chromebooks without support for Linux apps won't be able to use the newer version.

CrossOver is paid software with three packages available. You can buy the current version for $39.95, and a Pro version with free software upgrades for a year (plus discounts on future releases) and additional customer support is available for $59.95. Finally, if you think you'll use CrossOver until the heat death of the universe, a lifetime support option is available for $494.00.

 Full Article

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

 


Putty for Mac
Putty for Mac
$15.00

https://winereviews.onfastspring.com/putty-for-mac



Wednesday, October 14, 2020

CrossOver 20 for Chrome OS Mac and Linux Has Shipped

CrossOver® 20 for macOS and Linux has arrived! Additionally, Chrome OS joins its cousins, macOS and Linux, in bringing a smooth Windows application experience with CrossOver 20.

Across All Platforms
CrossOver 20 includes Wine 5.0 (with over 3,400 improvements) and the ability to rate applications within the CrossOver UI.

Mac
The macOS version offers support for macOS 11, including Apple Silicon. The macOS version also includes major improvements to support for games, including 32 bit games that are no longer available for the Mac, DirectX11 and 12 games and the Steam client.

Linux
The Linux version undertook a thorough review of Linux distribution support, with an effort to integrate cleanly with all modern distributions and support for CrossOver to upgrade itself.

Chrome OS
Our CrossOver Chrome OS product shares about 99% of its DNA with our CrossOver Linux product. Our initial Chrome OS product was built on Android, because Google provided support for Android applications. However, since then, Google has provided support for Linux applications. We feel that providing CrossOver using this route provides a superior user experience. Using Google’s Linux container support, CrossOver enables a Chromebook to run various Window applications as if they
were native and without requiring a Windows operating system. Not only does it integrate directly with the Chrome OS shelf, it also works in offline mode as well as it does in online mode.

It’s not just cosmetic...
Yes! We have a new look. The completely reimagined corporate branding and its sub-brands, CrossOverTM, PortJumpTM and ExecModeTM reveal the evolution of the company over the past 14 years, while maintaining our ongoing commitment to the open-source community and its talent.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 


Putty for Mac
Putty for Mac
$15.00

https://winereviews.onfastspring.com/putty-for-mac



Saturday, July 4, 2020

PlayOnMac 4.4 is available on Catalina

 Please note

Your antivirus program may report that some PlayOnMac .exe files contain malware. Don't be alarmed! This is a false positive due to the fact that these .exe may interact with emulated Windows system registry and that could be considered harmful behavior for some antivirus programs. These .exe are safe to use, especially on macOS which do not use registry. If you encounter false positive, we really advise you to report it to your antivirus software company. Even the commercial version of Wine (Codeweavers) or ports relying on wine have the same issue.


Sources :
  • https://www.playonmac.com/en/topic-17525-Bitdefender_finds_many_qthreadsq_when_launching_PlayOnMac.html
  • https://www.codeweavers.com/support/forums/general/?t=27;msg=222870
  • https://forums.eveonline.com/t/possible-virus-malware-in-wine-components-of-eve-for-mac/197462
  • https://osu-mac.readthedocs.io/en/latest/issues/malware.html
Download PlayOnMac 4.4.3
Version 4.4.3  •  607MB  •  macOS 10.15 or macOS 11+ 
 
Version 4.3.3  •  228MB  •  macOS before 10.15

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Wednesday, December 11, 2019

CodeWeavers released CrossOver 19.0.0 for Linux and MacOS

CodeWeavers just released CrossOver 19.0.0 for both macOS and Linux!

The capstone of CrossOver 19 is the new ability to run 32 bit Windows applications within a 64 bit process.  This enables us to support 32 bit Windows applications on the new macOS release, Catalina, which removed all support for 32 applications in October.

This has been a remarkably difficult challenge, and I appreciate everyone's patience with us as we strove to make this happen.  I particularly want to call out and celebrate the work of Ken Thomases, the senior developer  at CodeWeavers who has worked tirelessly on this for the past year and a half.

In addition to that change, CrossOver’s core technology Wine has been updated to bring much of the developments of the past year to all of our users on both Mac and Linux.  These changes include over 5,000 individual improvements, all of which will act together to improve the end user experience with CrossOver.

We have improved installation compatibility with recent Linux distributions and also taken the step of upgrading CrossOver to rely on Python 3...
 


Putty for Mac
Putty for Mac
$15.00

https://winereviews.onfastspring.com/putty-for-mac


Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Monday, July 8, 2019

Wine development release 4.12.1 is now available for Linux FreeBSD and macOS

Wine development release 4.12.1 is now available for Linux FreeBSD and macOS

The Wine development release 4.12.1 is now available.

What's new in this release:
  • Fixes for broken 64-bit prefix initialization.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.

Bugs fixed in 4.12.1 (total 5):

  46473  Settlers IV History Edition
  47403  ALT+TAB results in a sticky ALT in the application when switching back
  47464  64-bit WINEPREFIX creation/update fails with Wine 4.12 (wineboot crashes after building as PE file)
  47467  WINEPREFIX creation/update: setupapi fails to register several dlls after building as PE file starting with Wine 4.12
  47468  LINE 5.x launcher crashes on startup

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Saturday, July 6, 2019

Wine development release 4.12 is now available for Linux FreeBSD and macOS

Wine development release 4.12 is now available for Linux FreeBSD and macOS

The Wine development release 4.12 is now available.

What's new in this release:
  • Still more DLLs are built as PE files by default.
  • Support for Plug & Play device drivers.
  • Better support for the Visual Studio remote debugger.
  • More support for enumerating display devices.
  • Various bug fixes.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.
 
 Bugs fixed in 4.12 (total 27):

  18490  Multiple games fail to set pixel format on D3D device context created on desktop window (Empire: Total War, Napoleon: Total War, Utopia City)
  21378  lego digital designer crashes on scrolling
  27576  RT Se7en Lite installer hangs
  31260  Tomb Raider 4 Broken Lighting
  31737  Need For Speed Hot Pursuit (2010): Gamepad is not configured
  34978  Many applications need a EnumDisplayDevicesW implementation for multi-monitor environment support (DisplayFusion, Turbo Tax 2012, WPF 4.x .NET apps, CEFv3 apps, VS Code < 1.16.0)
  35413  err:module:import_dll Library libgcc_s_sjlj-1.dll not found needed by mono-2.0
  36061  winedbg crash dialog shows a leak in imm32
  37709  All Qt5 based applications have broken menu/combos positioning in multiple monitor setup due to GetMonitorInfo() returning the same hard-coded device name for all monitors
  38421  Windows Media Player 9 & 10: mp3 sound plays too fast
  41608  Golden Krone Hotel fails to launch (InitializeProcThreadAttributeList is a stub)
  42374  Hardwood Solitaire can not connect to his server
  45656  Acronis Storage Filter Management Driver 'fltsrv.sys' crashes on unimplemented function 'ntoskrnl.exe.KeBugCheckEx' in 'CrashOnError' mode
  47013  winebus.sys: hidraw_set_feature_report buffer too small for some devices in SteelSeries Engine
  47014  Multiple kernel drivers need 'ntoskrnl.exe.ExInitializePagedLookasideList' implementation (Norton 360/Symantec Eraser Control Driver)
  47017  Symantec Eraser Control Driver 'eeCtrl64.sys' (Norton 360) crashes on unimplemented function ntoskrnl.exe.IoGetStackLimits
  47340  Adobe Acrobat Reader DC crashes on startup with corefonts installed
  47352  Levelhead: Can't connect to game's network
  47367  Some WPF 4.x apps from Windows 10 SDK (10.0.17763.x) spam console with fixme:d3d:wined3d_driver_info_init Unhandled OS version 6.3, reporting Win 8. (WinVer set to 'Windows 8.1')
  47385  Overwatch crashes on unimplemented function mfreadwrite.dll.MFCreateSinkWriterFromURL
  47392  Drakensang Online crashes when exiting fullscreen
  47399  Mozart 11-13 crashes on startup
  47410  Regression in 4.10, Dune 2000 installer crashes in winevdm
  47418  Quickbooks 2018 installer crashes on Validating Install
  47424  DataTransferLength in SCSI_PASS_THROUGH and SCSI_PASS_THROUGH_DIRECT *must* have return value
  47431  Multiple applications and games show too high CPU usage and UI slowness/lag with wine-4.11-84-g074abfe097 (EnumDisplayMonitors implementation uses expensive registry accesses)
  47443  compile error: undefined reference to `clock_gettime'
 

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Saturday, June 22, 2019

Wine development release 4.11 is now available for Linux FreeBSD and macOS

Wine development release 4.11 is now available for Linux FreeBSD and macOS

The Wine development release 4.11 is now available.

What's new in this release:
  • Updated version of the Mono engine, including Windows.Forms.
  • More DLLs are built as PE files by default.
  • Faster implementation of Slim Reader/Writer locks on Linux.
  • Initial support for enumerating display devices.
  • Various bug fixes.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.


Bugs fixed in 4.11 (total 17):

   8848  SWAT4 Areas that should be in shadow and people are rendered solid black
  22253  Horizontal scrolling with the mouse wheel does not work in list views
  24211  ispq crashes on 'create account' with devenum enabled and without native qcap
  28153  AutoIt v3.x @DesktopRefresh macro returns 0 (device caps VREFRESH hard-coded to 0)
  30822  Max Payne 3 not running
  34687  Port Royale 2 crashes on startup (SymGetLineFromAddr() returns unix-style path for source file)
  34741  Catzilla 1.0 doesn't work: EAccess violation
  34742  Catzilla 1.0 doesn't allow to use any display resolutions other than 576p
  35477  'epsilon' 64K demo/intro by mercury crashes on start up
  39071  7-Zip 15.06 looks broken after being minimized
  39337  Legacy of Kain: Soul Reaver crashes at intro video when being run in desktop resolution > 640x480
  45218  Fallout 4 Script Extender fails to allocate trampoline buffers
  47164  .NET Framework 4.0 installer fails when Wine is compiled with GCC 9.1.1
  47167  Chromium Embedded Framework (CEF) applications display no content when wine is compiled with gcc-9
  47327  Japanese texts are overlapped in notepad when using bitmap font.
  47371  Nero CoverDesigner doesn't install - missing support for BCRYPT_RSA_SIGN_ALGORITHM
  47378  ole32: native build (without-mingw) is broken

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Monday, April 1, 2019

How Proton helped improve Wine 4.2

On Tuesday (March 26, 2019), Valve released Proton 4.2, a new update to their Steam Play compatibility layer based on Wine 4.2. The previous major version of Proton was based on Wine 3.16.



As with CodeWeavers's own projects, the strong preference for work going into Proton is to also get the changes into upstream Wine. There are many benefits to this. First, all Wine users will benefit from these fixes, whether they are end users of Wine itself, CrossOver users, or users of any other Wine fork. There are also benefits for the maintainers of Proton. For example, upstreaming patches helps prevent regressions, thanks to Wine's extensive test suite; it lowers the maintenance burden, as there are fewer changes to move between Wine versions; it ensures code quality, since patches to Wine are reviewed by the Wine community; and it widens the pool of users to test, since Wine is used in many, many places other than Proton.

Proton 3.16-8 has 380 commits on top of Wine 3.16. After rebasing onto Wine 4.2, there are 214 commits. That means that 166 patches from the 3.16 branch have either been upstreamed, or are otherwise no longer needed going forward. In addition, a lot of work we have done for Wine 4.2 never got pulled back into Proton 3.16.

Let's take a look at how upstream Wine has improved thanks to Valve's sponsored work on Wine. Below is a list of changes to upstream Wine that were made in order to improve games running in Proton.

Full Article
 

Friday, March 29, 2019

Wine development release 4.5 is now available for Linux FreeBSD and macOS

Wine development release 4.5 is now available for Linux FreeBSD and macOS

The Wine development release 4.5 is now available.

What's new in this release:
  • Support for Vulkan 1.1.
  • Better support for kernel objects in device drivers.
  • Still more Media Foundation APIs implemented.
  • Support for SVG elements in MSHTML.
  • Fixes for case conversion troubles in Turkish locale.
  • Various bug fixes.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.


Bugs fixed in 4.5 (total 30):

  19098  Regedit randomly crashes when deleting registry keys
  23455  FileAlyzer 1.6.0.4, Affinity-installer-1.6.5.123 can't load PE images (needs imagehlp.ImageLoad and imagehlp.ImageUnload implementation)
  26445  URLDownloadToFileW does not support FTP URLs
  38087  Settlers III: mouse not working on start screen and menu (after fixing raw input bug 33479)
  38801  Settlers Heritage of Kings crashes when loading a map
  41591  Solidworks 2016 installer needs ADVAPI32.dll.RegLoadAppKeyW
  45322  League Of Legends installer on tr_TR.UTF-8: unknown color "systemhighlight"
  45429  Inno Setup v5.x based game-installers using 'wintb' plugin fail with: 'Runtime error 229 at
' (Win7+ ITaskbarList3 ThumbBar/Thumbnail semi-stubs needed)
  45497  Biamp Systems Nexia v3.3: Button labels missing in DSP controls
  45998  64-bit FACEIT Anti-cheat client claims "Your system is out of date, you are missing important Windows updates!" (needs 'wintrust.CryptCATAdminAcquireContext2' stub)
  46115  Cursor in unity games moving down and to the right one pixel on any mouse interaction
  46222  Star Citizen hang on splash screen
  46643  Belarc Advisor Computer Inventory 9.0 crashes on unimplemented function advapi32.dll.AuditQuerySystemPolicy with WinVer >= Windows Vista
  46807  The Sims hangs when opening menus
  46812  PS4 Remote Play installer 2.8.x fails, claims 'You need the Media Feature Pack' (MsiGetDatabaseState is called from a custom action)
  46830  Gaea 1.0.x installer stops: err:msi:ITERATE_Actions Execution halted, action L"WixSchedInternetShortcuts" returned 1603 (MsiViewGetErrorA/W() needs to be RPC-compatible)
  46833  Multiple application installers fail with err:msi:ITERATE_Actions Execution halted, action L"" returned 1603 (iTunes 12.9.3.3, Dameware Mini Remote Control 10.x)
  46845  Freelancer: character glitches in cutscenes after loading a saved game
  46846  msi x64 installer does not display splash and other texts like a license agreement
  46848  PTC Mathcad Prime 3.0 Web installer crashes on unimplemented function api-ms-win-crt-convert-l1-1-0.dll.wctrans
  46851  Can't input Japanese text after updating to 4.4.
  46881  Power World Simulator installer needs unimplemented function msi.dll.MsiSourceListForceResolutionW
  46885  Multiple applications fail to install with wine-4.4-114-g15f852015a+, reporting err:msi:ITERATE_Actions Execution halted, action L"BindImage" returned 1615  (MS Office 2007, AstroToaster 2.x. MS .NET Framework 4.x)
  46892  redefinition of typedef ‘UUID’
  46894  SIMATIC WinCC V15.1 Runtime installer (.NET 4.0) fails in CoreLib::GetPhysicalMemoryAmountWmi() (missing 'DeviceLocator' property of 'Win32_PhysicalMemory' WMI class)
  46895  SIMATIC WinCC V15.1 Runtime installer (.NET 4.0) fails due to missing 'OperatingSystemSKU' property of 'Win32_OperatingSystem' WMI class
  46906  SIMATIC WinCC V15.1 Runtime installer: SeCon tool 'SeCon_Win32.exe' crashes due to hnetcfg 'INetFwRules::get__NewEnum' not initializing out parameter
  46907  msi crashes in RemoveFiles action for a broken msi
  46908  Support msvcp mtx_init 'mtx_try' flag (0x2) to create a mutex object that supports test and return
  46909  Missing (black) textures in Black & White

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Monday, February 4, 2019

Wine stable release 4.1 is now available for Linux FreeBSD Android and macOS

Wine stable release 4.1 is now available for Linux FreeBSD Android and macOS

What's new in this release:
  • Support for NT kernel spinlocks.
  • Better glyph positioning in DirectWrite.
  • More accurate reporting of CPU information.
  • Context handle fixes in the IDL compiler.
  • Preloader fixes on macOS.
  • Various bug fixes.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.


Bugs fixed in 4.1 (total 30):

  11070  importpfx fails, needs PFXImportCertStore implementation
  33456  D3DXMatrixTransformation: Broken calculation when scalingrotation and scaling is used
  38274  White water in Heroes VI (DXTn volume textures)
  38558  cmd.exe bundled with Windows XP messed up when using FOR /F
  39663  GOG Galaxy client 1.x hangs or reports 'Something went wrong during DeelevateStrategy'  error in Win7 mode (GOG Galaxy service needs wtsapi32.WTSQueryUserToken implementation)
  39890  Orcish Inn fails to start with exception System.NotImplementedException
  40441  Chicken tournament crashes when loading texture
  42491  wine builds are not reproducible (widl needs initializization of datatype2 in add_typedef_typeinfo)
  43252  IcmpSendEcho doesn't work with a ReplySize<56 br="">  43322  Regression in Test Drive Unlimited 2, visual artifacts
  44469  Multiple apps using Windows 10 v1507+ UCRT crash due to multiple missing api-ms-win-crt-private-l1-1-0.dll._o__xxx stubs/forwards (Win10 DISM pkgmgr.exe, MS DirectX Shader Compiler)
  44941  Bioshock Remastered doesn't start in windowed mode
  45326  Multiple 64-bit kernel drivers crash on unimplemented function ntoskrnl.exe.__C_specific_handler (NoxPlayer 6.x, MTA:SA 1.5.x)
  45447  [World of Tanks] Borderless window broken since 1.0.2
  46137  NI Kontakt 5 crashes on unimplemented function msvcp140.dll.?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W
<56 br="">@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z
  46298  Middle-earth: Shadow of War (steam appid 356190) crashes on launch
  46303  Warcraft 3: Reign of Chaos (Czech language) can't be installed from CD
  46453  The Testament of Sherlock Holmes crashes while loading level with builtin d3dx9_43
  46465  Visual Studio 2015 crashes on unimplemented function msvcp140.dll._Equivalent
  46469  Only the first XInput controller is detected in wine 4.0
  46479  64-bit mono crashes in RtlAddGrowableFunctionTable
  46482  Gas Guzzlers Combat Carnage crashes when changing screen resolution
  46485  PBM_STEPIT crashes with division by zero when MinVal == MaxVal == 0
  46488  Diablo 2 LoD: Direct3D regression: Unhandled exception: Access_violation (c0000005)
  46489  ClrMamePro crashes on update attempt
  46494  64bit WinMerge crash after clicking "About WinMerge"
  46499  Multiple games crash in GetRawInputData when exiting(House Party, Murderous Pursuits, ICEY)
  46520  Kindred Spirits on the Roof crashes
  46536  Empire Earth (GOG version) main menu rendering is broken
  46569  ToDoList 7.1 : fails to launch after WINE upgrade to 4.0 version

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Thursday, January 24, 2019

Wine stable release 4.0 is now available for Linux FreeBSD Android and macOS

Wine stable release 4.0 is now available for Linux FreeBSD Android and macOS

The Wine team is proud to announce that the stable release Wine 4.0 is now available.
This release represents a year of development effort and over 6,000 individual changes. It contains a large number of improvements that are listed in the release notes below. The main highlights are:
  • Vulkan support.
  • Direct3D 12 support.
  • Game controllers support.
  • High-DPI support on Android.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.


What's new in Wine 4.0
======================


*** 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.


--
Alexandre Julliard
julliard@winehq.org

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Tuesday, January 22, 2019

Working on Wine Part 6 Sending Your Work Upstream

Andrew Eikum a CodeWeavers employee and Wine developer is writing a series of post to introduce people to Wine usage and development.

About This Guide


This is a series of guides intended to introduce software developers to the Wine ecosystem. It will cover what Wine is, how to use Wine, how to debug Wine, how to fix Wine, and what to do with your fix once you've made it.

The guide will be published throughout January.

  • Part 1 describes what Wine is and provides a short description of various popular forks of Wine.
  • Part 2 describes Wine's build process.
  • Part 3 describes how to use Wine as a developer.
  • Part 4 describes how to debug Wine in general.
  • Part 5 describes Wine's source tree layout and how to edit the source.
  • Part 6 describes how you can send your work upstream.

If you recall from Part 1, there are many forks of Wine. Where your fix belongs can vary depending on what fork of Wine you use, the nature of the bug you fixed, and how you fixed it.

 

 

Choosing the right place to send your fix


The ideal place for your fix is in upstream Wine. This is the origin point of all Wine forks. If you fix it in upstream Wine, then all users of Wine will eventually benefit from your work as the various forks pull in changes from upstream.

Sending your fix upstream should be the default choice for your work. If none of the exceptions below apply, or if you're unsure where your fix belongs, work with upstream first.

 

When upstream is the wrong choice


Your patch may be built on top of an existing patch in wine-staging. In that case, it should be sent to the wine-staging maintainers. If you, or they, think that the patch is ready to be sent upstream, then go ahead and do that instead.

If your patch fixes the issue, but you failed to fix the tests you wrote, or your patch causes some other test failures, it may belong on the bug tracker, or possibly in wine-staging.
If your patch provides a useful feature that upstream Wine is not interested in, it may belong in wine-staging.

If your patch is builds on a feature exclusive to some fork of Wine, like Proton or CrossOver, it may belong in that fork and not upstream. Work with the fork maintainers to determine if it's appropriate for upstreaming.

 

Upstreaming your fix


Hopefully, your patch is going upstream. Wine's patch submission process is done via email. Your patch should be sent in plain text to wine-devel@winehq.org. You should subscribe to this mailing list to avoid being placed into the moderation queue.

It is recommended to use git send-email to send the email through your mail server. You can also use git format-patch and attach the resulting file in an email client. Be careful that your mail client doesn't wrap, or otherwise corrupt, the attachment as if it were a text document.

Patches that are sent upstream should have your Sign-off. This can be applied by Git automatically with the -s switch during git commit and/or git format-patch. You must use your real name in the Author field when submitting a patch.

If you are submitting a series of patches, try to limit yourself to about four patches per submission. Your patches should be self-contained anyway, so there is no harm in submitting them in several batches. Smaller patch series are easier to review, and keep from cluttering up the mailing list if you have to re-send the series with changes.

 

Receiving feedback


Wine has a patch status webpage which will track the status of your patch. Your patch will be tested by the Wine Test Bot to ensure any new tests pass on various Windows versions. If the area of Wine changed by your patch has a maintainer, it will be assigned to that person for review. If not, it will be reviewed by the general community, or by the Wine maintainer.

Be patient, it may take a few days for your patches to receive review. Wine reviewers try to reply to every patch within a week, but if you don't get feedback you may send an email to wine-devel asking for a review. Be sure you are subscribed to wine-devel, as some reviews may be sent to that mailing list instead of directly back to the author.

If you received some suggestions, take those suggestions into account and send a new version of the patch. Feedback from Wine reviewers should not be seen as criticism or an attack. Wine is a very complicated piece of software, and it has a high standard of code quality for contributions. Rejections aren't made lightly—everyone wants Wine to improve. Instead, understand that there are reasons for the rejection, apply the suggestions, and resend the patch. If you do not have the time or interest in making the requested changes, consider sending your patch to wine-staging so some other person may take up the patch in the future and try to get it upstream. Or, attach it to a Bugzilla bug so it is not lost.

If your patch is accepted, then congratulations! You have just made Wine better. It's time to move on to the next bug.

Full Article

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Thursday, January 17, 2019

Working on Wine Part 5 Fixing Wine

Andrew Eikum a CodeWeavers employee and Wine developer is writing a series of post to introduce people to Wine usage and development.

About This Guide


This is a series of guides intended to introduce software developers to the Wine ecosystem. It will cover what Wine is, how to use Wine, how to debug Wine, how to fix Wine, and what to do with your fix once you've made it.

The guide will be published throughout January.

  • Part 1 describes what Wine is and provides a short description of various popular forks of Wine.
  • Part 2 describes Wine's build process.
  • Part 3 describes how to use Wine as a developer.
  • Part 4 describes how to debug Wine in general.
  • Part 5 describes Wine's source tree layout and how to edit the source.
  • Part 6 describes how you can send your work upstream.

Once you've got some idea of what is causing the problem with your application, it's time to go understand how those APIs are implemented in Wine so you can fix it. You may also need to change Wine's code to debug the application in the first place.

 

Search for existing bugs


Before digging into the source, it's always useful to first search for existing bugs. You can search Wine's Bugzilla for your application, or for the symptoms you're seeing. As you begin to debug your issue, you may find other search terms to try. If you find a bug, you may find some useful analysis or work has already been done for the issue.

You may also want to look through the Wine Staging patches, especially once you have some idea of what the problem is. You may find someone has already written a patch to fix this problem, but it isn't ready to go upstream yet. You can pick up the torch and try to upstream the work.

 

Wine source layout


Wine implements the Windows operating system, which is composed of libraries, programs, and kernel functionality. You can find the code for Wine's implementation of each of those components in dlls, programs, and server, respectively. To give you some idea of how different components of Wine work together, some important, core components are listed here.
  • dlls/ntdll – This is where many of the core OS APIs are implemented, like file handling, thread creation and synchronization, timing, and much more. Applications typically use kernel32 instead of ntdll directly.
  • dlls/kernel32 – This is the application-facing interface for the core ntdll APIs mentioned above.
  • dlls/user32 – This is where much of the Windows GUI handling lives, like window creation, message handling, terminal services, and so on.
  • dlls/winex11.drv and dlls/winemac.drv – These libraries map the Windows GUI interfaces, and some other platform-specific functions, to the native platform. user32 calls into these platform drivers.
  • dlls/d3d* and dlls/wined3d – These libraries implement the Direct3D graphics API on top of the platform's OpenGL implementation.
  • programs/services – This program manages background services, both those created by Wine and those provided by installed applications.
  • programs/wineboot – This program kicks off initial prefix creation and other tasks when a prefix is booted.
  • programs/winecfg – This is Wine's configuration program.
  • server – The Wine server implements all cross-process functionality, including message routing, multi-process synchronization primitives, registry handling, and much more. The Wine server is always running if an application is running.
While debug channels are often named after the component in which they are declared (e.g. the dsound channel is declared in dlls/dsound), this is not always the case. You can use git grep to find the relevant debug trace line if it isn't obvious.

 

Writing tests


In most cases, your work should be driven by tests. Study the documentation for the relevant APIs and write tests first to confirm that Windows's implementation behaves how you expect it to. Then, change Wine's source to pass the tests that you wrote.

Wine has an extensive suite of unit tests. The unit tests comprise well over one million lines of code as of this writing. Any patch you submit must pass all of these tests. Patches should contain more tests proving that the new behavior is correct.

In general, you should focus your work on what a real application actually does. That is, you don't need to implement a bunch of unrelated functionality if the application doesn't actually need it. You should write tests to show how an application is using an API, and how Wine fails to meet its expectations. Then fix Wine to also pass those tests without breaking any existing tests. Any change to Wine has the potential to break other applications. Simply passing tests that you wrote is insufficient reason to change Wine.

You can find the tests for a given component in the tests subdirectory. For example, the tests for dsound live in dlls/dsound/tests. You will find .c files in that directory. The tests start in the START_TEST function and exercise the component being tested. The ok function demonstrates correct behavior. Again, "correct" is defined to mean "like Windows." For example:

    hr = IDirectSound_CreateSoundBuffer(ds, &bufdesc, &primary, NULL);
    ok(hr == S_OK, "CreateSoundBuffer failed: %08x\n", hr);
 
Here you can see the return value from IDirectSound::CreateSoundBuffer is expected to be S_OK. If it is not S_OK, then the test will fail.

Your tests should demonstrate how your application behaves when interacting with that API. Since you are fixing a bug in Wine's implementation of the API, your tests should demonstrate that Wine will fail without your fix. It isn't necessary, or even recommended, to fully exercise all inputs to an API in the Wine tests. Instead, be thoughtful about how your application might use the API given different inputs from the user, and write tests that reflect those possibilities.

Your tests should be self-contained. They should initialize the necessary functions, test the APIs, and then clean up before continuing. If you need to create files on disk, create them in a temporary location and/or clean them up afterwards. If your test may leave changes to the system, expect to have to clean up after a previous run that crashed, before you run your tests.

After you have written some tests, you need to verify that they pass when run on Windows. To do this locally, run make crosstest, which will use your system's mingw-w64 compiler to build a Windows executable. Run this executable on Windows in the command prompt to verify Windows's behavior. If you do not have a Windows system or VM available, you can upload your patch or test binary to the Wine Test Bot.

Once your tests pass on Windows, run them in Wine with make test. If your tests meaningfully demonstrate a Wine bug, they should fail. Now it is time to fix Wine to pass those tests, as well as all existing tests.

 

Working with Wine's source


As you develop your fix, there are some rules you should know if you intend to send your work upstream.

For better or worse, Wine does not have a coding style standard and likely never will. The rule is to try to match the surrounding code as best as possible. Especially in older code, you will find a horrible mish-mash of tabs and spaces and brace styles. Do your best to make the code no worse than it was. However, extraneous changes are discouraged as they make review difficult and looking up the source history in Git more cumbersome. If you are changing a line, or even one line in a short code block, it can be re-formatted to be less ugly than it was. But don't reformat an entire function to fit some style, no matter how ugly it is.

Wine only accepts code that adheres to the C89 standard, because some compilers that Wine cares about don't support anything later. The three most common snags here are that your code must declare its variables at the top of the block, you cannot use //-style comments, and function declarations with no arguments must be declared with void arguments:

    int some_function(void);
 
Resist the urge to gut an entire function or module and re-write it. Small, discrete changes that can be easily understood are the right way to fix Wine. Wine is more than two decades old. There is a lot of hard-won knowledge in much of Wine's source, and throwing out all of that history because it's easier than working in the existing code is not likely to pass review.

Make your changes as obviously correct as possible. Unrelated changes must be placed into their own commits. You should not introduce unused code in an early patch, which begins to be used in a later patch.

Write your patches with the reviewer in mind. It may be unintuitive, but understand that it is more important for your patch to be easy to review than make Wine's code perfect. Reviewer time is one of Wine's most valuable assets. Patches that are easier to review are more likely to pass that review.
Be aware that some tests are "flaky." This is an unfortunate reality of a system as complex as Wine. Ideally all tests would pass on all Windows and Wine environments, but due to bugs, differing platform behavior (especially window managers) and timing differences, they don't. Most modules have well-written tests that should always pass. Some, like the user32 messaging tests, and some audio and graphics tests, fail with some frequency, even on Windows.

Full Article

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.