In the last month we've continued to make steady progress in our quest to run 32-bit Windows programs in a 64-bit Mac process, so they can work on macOS Catalina (10.15). As previously described in an earlier blog post , Catalina doesn't support running 32-bit processes, which is what we've always used in the past for running 32-bit Windows programs.
In our last post, we reported that we had gotten Wine's built-in Notepad running. That was a nice milestone, but it's a very simple app. Since then, we've gotten more apps to run, including some third-party apps of increasing complexity. The highlights are:
* Notepad++
* Some simple OpenGL test applications
This is why this build of Wine.app is still based on Wine 4.0.1. There might be some more 4.0.1 iterations before we move on to more current builds of WineHQ. Made included libs and binaries fully relocatable; Support for 64 bit prefixes in Wine.app; Support Darkmode on macOS Mojave in WineBottler and Wine.app. Download macOS Catalina - macOS Catalina gives you more of everything you love about Mac. Experience music, TV, and podcasts in three all-new Mac apps.
and, just today:
* Steam!
* and, via Steam, Plants vs. Zombies
Not only did Steam run PvZ, but it downloaded it and installed it from scratch.
Steam also did launch Team Fortress 2, which played the Valve logo video and then showed the Loading screen. But it got stuck there. Oh, well, still work to do!
But it's really encouraging to finally see some real stuff working!
Technical Notes
By: Ken Thomases
In order to get this far, we've had to overcome challenges in a few areas.
The greatest amount of work has been in 'exception handling'. An exception is an event that may require a special response from the program. Often, an exception arises due to an error or misbehavior of a program, such as attempting to access memory that's off limits. Sometimes, though, some programs use exceptions to control flow of execution through their code.
Either way, it can be tricky for us because our 32-on-64-bit Wine is running both 32-bit and 64-bit code. The exception handling code of a 32-bit app, though, can only understand the state of the 32-bit code. We needed to find a way to represent the state when 64-bit code encounters an exception in a form that the 32-bit exception handling could, well, handle.
The next biggest area of improvement has been OpenGL support. OpenGL is currently the main library Wine uses to render 3-D graphics. It's what Wine's implementation of the Direct3D interfaces is based on (except for D3D12). Once again, the challenge is bridging between the 32-bit interface to OpenGL that 32-bit apps will use and the 64-bit interface that the system OpenGL library provides.
Another issue that we had to solve was applications which 'hook' into the standard Windows OS functions, to alter their behavior. Steam's in-game overlay does this, for example. We had anticipated that need and designed for it. However, it turns out that the particular way that Steam hooks into the functions interacted badly with the way our custom compiler was generating them. It wasn't too hard to fix once we figured out what was happening. The figuring out was the hard part. It's always the way. :)
So, that's where we stand today. We'll keep you updated as we make progress.
Pro Tip — Turn Automatic Updates Off
By: Ryan Abhiram
Don't want your Mac to automatically update to Catalina so CrossOver can continue to run your Windows software? Then follow these two simple steps to avoid the automatic update:
1.) Turn off Automatic Updates. On Mojave, the setting is in System Preferences > Software Update. On High Sierra and earlier, the setting is under the App Store Preferences.
2.) You will still see occasional notifications that the update is available, but you can dismiss them and continue running your current version of macOS.
3) As always, be sure to have a current Time Machine backup. In the event that Catalina is installed, reverting to the previous OS will involve the assistance from Apple Support (1-800-275-2273) and a backup is needed to return to a working state. If you don’t already have a backup, you can find the instructions for setting one up at https://support.apple.com/en-us/HT20125
Marketing Ballyhoo —What This Means for Our CrossOver Users
By: Jana Schmid
Catalina has not dropped yet. But when it does, we've got your back.
As previously stated in our last Catalina update blog post So We Don't Have a Solution for Catalina...Yet, we are good people. And if our product doesn't work, we believe that you shouldn't have to pay for it. We are automatically extending the support period for CrossOver macOS for three months for anyone who had an active license as of September 10, 2019. If we need more time on our end, you get more free support time on your end. If we get Catalina compatible CrossOver up and running in two weeks, you will still get an additional three months of support for free.
The best way for you to stay informed about our Catalina progress is through our macOS Catalina Update mailing list.
>>> Sign Up Here
Now back to celebrating my 1/2 Birthday.
>>> See my 1/2 Birthday Celebration on Instagram
About Ryan
I was born and raised in the Caribbean, moved to Minnesota 18 years ago — don’t ask why, it’s a story to be told over beer. I love martial arts movies, metal, blues and reggae. I would like to be like Bruce Lee with a mix of Ghandi when I grow up. I fell in love with Apple while I was in college and worked for the company for 6 years. Now I bring my prowess and experience to CodeWeavers!
About Jana Schmid
Jana has been working in the marketing profession for over 15 years. She joined the CodeWeavers marketing department in 2010 and has earned oddities such as theMargaritaville Tahiti Frozen Concoction Makerand alifetime supply of sparkling waterfor her performance as Marketing Director. Contact Jana atjana@codeweavers.comand learn more about her professional accomplishments onLinkedIn.