Mostly we code...sometimes we write. Every once in a while, we podcast.

Celebrating the difficult; the release of CrossOver 19

My family likes to make fun of me because I enjoy hard problems. One of my favorite games of all time is Don't Starve. The way I played it - with no googling allowed - meant that I died all the time. While each death would make me pull out more and more of my hair, when I was finally able to master winter and find the portal, I felt a genuine sense of accomplishment.

That's true for CodeWeavers, as well. My first guiding principle is that I want to do challenging and meaningful work.

And, it turns out, working on Wine is the most challenging thing I've ever been part of. We are re-implementing the Windows operating system; our 43 employees work every day to keep up with the work of the 144,000 people at Microsoft.

Of course, then it was Apple that threw us the nasty curve ball. You see, we don't do all this work ourselves - we rely on the underlying operating system.  We don't draw windows on the screen - we use the operating system libraries to perform the actual drawing.  And a fundamental truth of Windows software is that pretty much all Windows programs are 32 bit programs. Even 64 bit programs will use a 32 bit installer, so you have to have 32 bit support in order to run them. So in order to run 32 bit Windows programs, we need to call a lot of 32 bit libraries.

So when Apple announced that they were removing all 32 bit support from macOS, I knew we had been presented with our most difficult challenge to date.

Fortunately, our Mac development expert Ken Thomases and our team here were up to the challenge. After some false starts and a lot of difficult technical discussions, and then with some help from Apple, we settled on a design strategy that allows us to run 32 bit code within a 64 bit process so we can make calls to the 64 bit system libraries. As you can imagine, there were a lot of details to get right; we had to not only modify Wine, but we had to invent a compiler feature set to support this new mode. However, we feel that it has come out well. Further, one of our fears - that performance would be terrible - has not come to pass. We think the performance is quite nice, all things considered.

I am excited that we have released CrossOver 19 and we are providing support for 32 bit Windows applications on an operating system with no 32 bit libraries - our own Christmas Miracle.

In the New Year, we are looking forward to Wine 5.0 and building new a version of CrossOver that leverages the incredible range of work that is going into Wine 5.0 as we speak.

I remain grateful to the many members of our community, from developers, to beta testers, to customers, that continue to support us in our work. I like to imagine that there are about 143,957 of you.

Join us in celebration by taking 40% off CrossOver with dealcode MIRACLE!*
*Offer not valid on LifeTime License. Offer expires on December 17, 2019 at 11:59 PM.

Cheers,

Jeremy

>>> Announcing a First Alpha Build for CrossOver 19 for macOS Catalina

>>> Quick Catalina Update — October 25, 2019

>>> CrossOver for Catalina Progress — October 3, 2019

>>> So We Don't Have a Solution for Catalina...Yet

The following comments are owned by whoever posted them. We are not responsible for them in any way.

Great Work ! 😀

Thanks so much for your great efforts.

?

Great Job!

Total Kudos to you! Wow! What an accomplishment. I am a developer and can imagine what you guys went through to pull this off. Amazing!

Amazing accomplishment - congratulations!!!!

you guys are as amazing as always

Yes, CrossOver 19 had been officially released!!

I am part of the beta testing community. I had seen all the beta reports that helped developers improving version 19, great work everyone.

Now we continue onto the next Crossover version, and WINE 5.0. I tested Origin and Starcraft 2 for ver 19. Surprisingly, I found a couple game breaking and crashing bugs within SC2. But I managed to get the latest version of Origin running in a Windows 10 bottle, and Command & Conquer 3 running from Origin. Origin itself is a DRM nightmare so getting anything to run is a breakthrough from the WINE developing point.

Congratulations! A job well done, I'd say.

Impressive. It looks like sooner or later you will need to do the same on Linux as Linux distributions drop support for running 32-bit processes too. Looking forward to Metal support. Regards, Pedro

Pedro Chamorro wrote:

Impressive. It looks like sooner or later you will need to do the
same on Linux as Linux distributions drop support for running 32-bit
processes too. Looking forward to Metal support. Regards, Pedro

The custom version of llvm/clang that was used to compile “wine32on64” already includes Linux sections so they were already thinking ahead.

I don't think most Linux distros will outright break the ability to run 32-bit code, they'll probably still allow it through some legacy mode or something.

Shawn Joseph wrote:

I don't think most Linux distros will outright break the ability to
run 32-bit code, they'll probably still allow it through some legacy
mode or something.

Allowing 32Bit code execution and providing 32Bit libs are two different things.

Ubuntu won’t be updating 32Bit libs instead will lock them at an ancient version until they eventually drop them entirely.

So the solution used on macOS will be useful for Linux down the line.

Cool...!!! It is work with Metatrader 5?

Hallo CodeWeavers,

First of all many thanks for the warning not to upgrade to Catalina (wish that all companies has this service). It was worth waiting for.
As a “simple” user to this program I can’t imagine the efforts you all had to make the make it happen. Many thanks.
This is indeed a great Christmas gift.

Have a throughly deserved holiday season.

Greetings from NL,
Aernout

So glad I decided to buy Crossover when I heard you were working on this. I hope you’ve got a ton of new customers, because you earned it. Faster than I expected, too!

Dean Greer wrote:

Shawn Joseph wrote:

I don't think most Linux distros will outright break
the ability to run 32-bit code, they'll probably still allow it
through some legacy mode or something.

Allowing 32Bit code execution and providing 32Bit libs are two
different things.

Ubuntu won’t be updating 32Bit libs instead will lock them at an
ancient version until they eventually drop them entirely.

So the solution used on macOS will be useful for Linux down the
line.

Ubuntu are being stupid stubborn here IMHO, they're being lemmings to Apple, no wonder they're falling behind and have to stick to try to re-inventing their own wheels continuously just to abandon them after a couple of years due to the lack of support from the community and themselves.

There was no need to abandon 32Bit libraries in Linux, no need whatsoever.

Congratulations to the team!

The 32bit issue is a real challenge.

Congratulations! This version works even better than the last one -- at least for the Windows software I need. I am delighted! One wrinkle, though. My anti-malware software thinks Crossover 19 is malware. I spent all day yesterday trying AVG, Malwarebytes, and Avast. Each of them quarantined the guts out of Crossover. I tried endless permutations, installed and removed each several times to no avail. I've decided to forego anti-malware in the meantime. Is anyone working on this?

I just updated Crossover and reinstalled Medlin Payroll Pro Software. I am so happy that I have all my programs on one computer. I love having a Windows program run on my Catalina OS Mac!!

Thank you for all the hard work!

Lori - Cottonwood, AZ

Congratulations! Thanks for working with Apple to make this happen :).

Arlene Horowitz wrote:

Congratulations! This version works even better than the last one
-- at least for the Windows software I need. I am delighted! One
wrinkle, though. My anti-malware software thinks Crossover 19 is
malware. I spent all day yesterday trying AVG, Malwarebytes, and
Avast. Each of them quarantined the guts out of Crossover. I tried
endless permutations, installed and removed each several times to no
avail. I've decided to forego anti-malware in the meantime. Is
anyone working on this?

Antivirus warning on wine files are a false positive.

From Wine-4.8 the transition from ELF to PE format (the native format of Windows binaries) was started this also occurs when using recent winehq releases, even my own wine compiles.

The reason is the antivirus sees the replacement windows files and goes crazy, a lot of hack tools/malware would try replacing a legit windows file with a fake file, so your antivirus thinks that’s the cause and flags it.
The most people who flag the results as a fake positive will help resolve the issue with the current release.

The only way to potentially avoid these issues might be patching mingw-w64 (the cross-compiler used to build wine’s PE binaries) to provide a different windows header.

Proton’s builder does something like this already possibly that could work once this case too.
Personally haven’t tried this yet that would mean needing to build mingw-w64 from source and I don’t know if I’m up for maintain yet another custom Port for macports

I have the same problem. I use Bitdefender Endpoint Security for Mac. I am not able to install CrossOver 19 for MAC by default.

Vladimir Nemecek wrote:

I have the same problem. I use Bitdefender Endpoint Security for
Mac. I am not able to install CrossOver 19 for MAC by default.

As I’d posted above it’s a false positive, you need to whitelist CrossOver19 and the bottle location and mark as a false positive.

If enough people do so the Antivirus will no longer flag the files, that or contact your Administrator to add an exception to the organizations list.

This is wonderful. Love the work you are doing, and happy to support it. However, I am still on Mojave (getting ready to upgrade) but even after upgrading to Crossover 19, I still get a message that there is some 32 bit code in it (the popup warning in Mojave). The code that is showing as 32-bit (also confirmed by the 'Go64' app) is libFAudio.0.19.10.dylib.

I just want to make sure this won't pose a problem when I move to Catalina.

I got the 32 bit warning in Mojave as well for the release version of 19. So this works without issue in Catalina regardless of this warning?

Really, I admire your generous work. So much today is designed for a purely mercantile purpose in order to become the latest "dot.com" that will make a trillion dollars and tell everybody else what they should do and be (cf. Google, Uber, and cie). Having installed Catalina on my systems, I look forward to purchasing CrossOver and putting it to work for my needs. Cheers.

Thank you for all the hard work you put into this challenging effort.

Thank you very much for all of your hard-work and many hours spent towards this.

Hopefully you will not enable wine32on64 in the WG Game Center Mac Wrapper. Not being able to run 32-bit will fundamentally change those games and most likely spur a move to 64-bit both by Wargaming and mod developers and accelerate the move away from 32-bit.

Also personally I like having 64-bit only versus any kludging to accommodate 32-bit code in a 64-bit OS.

xgman wrote:

I got the 32 bit warning in Mojave as well for the release version
of 19. So this works without issue in Catalina regardless of this
warning?

Tim Irvin wrote:

This is wonderful. Love the work you are doing, and happy to
support it. However, I am still on Mojave (getting ready to
upgrade) but even after upgrading to Crossover 19, I still get a
message that there is some 32 bit code in it (the popup warning in
Mojave). The code that is showing as 32-bit (also confirmed by the
'Go64' app) is libFAudio.0.19.10.dylib.

I just want to make sure this won't pose a problem when I move to
Catalina.

The 32Bit warning on macOS Mojave/High Sierra can be ignored safely.

The new solution is only used on macOS Catalina, below still uses a real 32Bit version of wine not wine32on64.

Ian Sliwinski wrote:

Thank you very much for all of your hard-work and many hours spent
towards this.

Hopefully you will not enable wine32on64 in the WG Game Center Mac
Wrapper. Not being able to run 32-bit will fundamentally change
those games and most likely spur a move to 64-bit both by Wargaming
and mod developers and accelerate the move away from 32-bit.

Also personally I like having 64-bit only versus any kludging to
accommodate 32-bit code in a 64-bit OS.

It’s not exactly up to CodeWeavers if the developer doesn’t provide a compatible 64Bit version then they will be forced to use wine32on64 to get it functioning.

The issue is does a 64Bit client support DirectX9 rendering or does it not require some DirectX10/11/12 API calls so the hacked up version of MoltenVK can be used along with DXVK/VKD3D

I mostly see wine32on64 as comparability for older applications/games, but some 64Bit applications/games still use 32Bit API calls or use a 32Bit installer.

Dean Greer wrote:

The issue is does a 64Bit client support DirectX9 rendering or does
it not require some DirectX10/11/12 API calls so the hacked up
version of MoltenVK can be used along with DXVK/VKD3D

Is this really a feature in the Mac version? The changelog at https://www.codeweavers.com/products/more-information/changelog suggest only that the Linux version is DXVK compatible. The description of the Mac version is rather silent on it. Can we try DX11 games in Crossover 19 on Mac? And does it use (hacked, not entirely functional) version of DXVK and MoltenVK?

Getting MoltenVK and potentially DXVK working would be a second miracle, after the first miracle of 32bit apps in 64bit Mac OS. You need only three for sainthood 😇.

Oscar van Vliet wrote:

[Is this really a feature in the Mac version? The changelog at
https://www.codeweavers.com/products/more-information/changelog
suggest only that the Linux version is DXVK compatible. The
description of the Mac version is rather silent on it. Can we try
DX11 games in Crossover 19 on Mac? And does it use (hacked, not
entirely functional) version of DXVK and MoltenVK?

Getting MoltenVK and potentially DXVK working would be a second
miracle, after the first miracle of 32bit apps in 64bit Mac OS. You
need only three for sainthood 😇.

It's possible, CodeWeavers did it for there FINAL FANTASY XIV Port https://www.codeweavers.com/about/news/press/20190628 (it uses a custom version of MoltenVK and DXVK)

As not all Vulkan extensions needed for DXVK are available via MoltenVK, calling an unimplemented function would cause a crash. (some Vulkan features are just faked to get DXVK to somewhat function)

I really don't see much happening on the MoltenVK front until wine32on64 patches all get into upstream wine then maybe we might see some more work on that front.

Congrats!!

Thank you for this.

Once you open AVG, it immediately quarantines the bottle software in Crossover 19. If you restore the quarantined files and mark them as false positives, Crossover no longer works properly. Uninstall the AVG and everything goes back to normal and the bottles work flawlessly.

Tim Irvin wrote:

This is wonderful. Love the work you are doing, and happy to
support it. However, I am still on Mojave (getting ready to
upgrade) but even after upgrading to Crossover 19, I still get a
message that there is some 32 bit code in it (the popup warning in
Mojave). The code that is showing as 32-bit (also confirmed by the
'Go64' app) is libFAudio.0.19.10.dylib.

I just want to make sure this won't pose a problem when I move to
Catalina.

Yes, I'm quoting myself!

I just wanted to confirm that I cloned my Mojave drive, updated the clone to Catalina and confirmed it is no problem. Crossover 19 works fine. The 32-bit code that "Go64" and Apple's own profiler reports is not used under Catalina, so it does not cause an exception. I just wanted to set the record straight in case anyone was concerned about my earlier remarks.

Tim Irvin wrote:

I just wanted to confirm that I cloned my Mojave drive, updated the
clone to Catalina and confirmed it is no problem. Crossover 19
works fine. The 32-bit code that "Go64" and Apple's own profiler
reports is not used under Catalina, so it does not cause an
exception. I just wanted to set the record straight in case anyone
was concerned about my earlier remarks.

Well yeah CrossOver19 contains dual support.

CrossOver19 contains wine/wine64 and wine32on64, also the required universal dylibs, on macOS Catalina wine32on64 is used but below wine is used instead.

I’d honestly have preferred wine32on64 also being used below macOS Catalina but as it was a rush job I’m thinking it was preferable to keep wine around for macOS Mojave and below for the moment.

Very nice!

Can I suggest you put updates in all your other posts about this saying that it's now released? I've been checking by just searching for it in Google and not realised its been released ages ago. I missed the release and the promotion voucher as well.

Searching "crossover Catalina" in Google brings the first four results "alpha build", a snippet saying "don't update so you can still run", "now in beta", "so we don't have a solution yet".

The reddit threads that come up just talk about it being in the future and it not being available.

You should be flooding everywhere with the news that this is released now. Homepage and crossover page just have one mention of "catalina" each, blended into the heading.

Are there any plans for any more upcoming promotions? :)

Is this ever coming to open source Wine? I ask this, because of two reasons.

One, there are rumors of Apple speculating on using AMD processors and/or APUs in future Macs, as determined by examining parts of the latest 10.15.4 beta. So it would be beneficial if this 32 on 64 layer could work on AMD processors as well, assuming it's not a limitation of the modifications currently necessary to force an Intel-only kernel to work on AMD processors. Time will tell if this comes to fruition.

However, I don't depend on that sort of hackery to have a basic Mac experience, as I have a 2014 15" MacBook Pro, it's just not as easy to use it from my desktop, which is my preferred workstation and gaming setup.

Even without considering that, I also consider a piece of software I'd love to see ported to Catalina: MCPELauncher, a project which already works on 32 bit macOS, which is somewhat of a miracle, considering what it's doing. It takes the x86 32 bit ELF .so from the Android version of Minecraft, which it supports acquiring through your own Play Store account where you have already purchased it, and loads it into memory, fulfilling all of its imports, and providing the bridge work that the Java parts of the app normally provides, and then some. The result is the only way to play the Bedrock version of Minecraft outside of Windows 10, game consoles, and mobile devices.

Unfortunately, as I said, this miraculous bridge work requires a 32 bit system. Or, a 32 on 64 layer translating it for Catalina. It would be great if the knowledge and base code for making this possible were available, since you already did much of the hard work. I fully intend to help the developer (or at least, a fork developer) in implementing this bridge.

Either way, I'll be looking forward to supporting the Wine project in the future by purchasing a CrossOver 19 license. I just wish it worked on my less than blessed "Mac" as well as my real Mac. And I don't know that it's a limit of the kernel, as I am able to run Windows virtual machines on it, and run 32 bit code from within them.

If I have touched on subjects that bar this post from being made public, please at least send me a private reply to answer some of my questions. I also mostly idle on Freenode's #winehq, if there are any Codeweavers developers there.

Hi there,

I'm curious if CrossOver might save my bacon!

I just got a new 64 bit Mac, and then tried getting FCP 7 running - my old editing software which is 32 bit.

Obviously it doesn't work, and was citing hardware incompatibility.

Would crossover 19 be able to help me in running this older 32-bit software?

I hope so. Right now my only fix is trying to track someone down with an old laptop, and then converting the whole project to FCPX or Premiere Pro. Or buying an old Mac which I am trying to avoid as I travel a lot.

Any heads up would be welcomed!

Kiya

I'm really interested how have you implemented the running of Win32 apps as 64bit. Do you translate 32 bit calls to 64 bit ones? Or do you built up from Apple just disabling 32bit support and not deleting it from the Darwin kernel? I'm trying to run Wine 5.0 on my Mac and it is possible to run simple, command line, 32bit Mac apps when you enable 32bit support by using this command ' sudo nvram boot-args="no32exec=0" ' but running any more complex apps requires 32bit libraries which I'm trying to harvest from a MacOS Mojave Installation. I'm not sure which libraries are needed and where to put them, I don't know can I build Wine statically just linking the libraries. If you're translating the calls it's probably very tedious and should very time consuming, but you write that it doesn't make a greater performance impact. So what exactly have you done?

Thanks for contributing to the Wine project!
Hope you'll to upstream your 32bit -> 64bit Mac code to the main Wine Branch

1 to 41 of 41

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi02LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzMxNDM1MjAzLCJjc3JmX3Rva2VuIjoiM1lndkVUMkFydjk0NVp4SiIsImdkcHIiOjB9