I read many articles online but many of them (most if not all) only mention the same tools to play Windows games on an Apple M1, e.g.:
- Parallels
- Crossover
- Emulation in general, not limited to Parallels but the latter is the only software at the moment which works very good
Boot Camp does not work on an Apple M1 as officially confirmed by Apple. As you can see you don’t have many options which are also free, you could also emulate Windows through UTM but it does not work that great. I wrote a post about the best software to use to emulate an OS if you want to check it out. Wine does not have an official binary for macOS Catalina 10.15 or later as mentioned here, but we can use this Wineskin Server project which supports MacOSX10.13 to macOS11. I am currently using macOS 12.0.1 but it works flawlessly.
Install Wineskin
As specified on the Github repository, we just need to run the following command to install Wineskin:
$ brew install --no-quarantine gcenx/wine/unofficial-wineskin
Which Windows games are supported ?
Steam games don’t work very well, I managed to install Castlevania Lords of Shadow Mirror Fate but Wineskin was running the game at 30 FPS or even less in some scenarios. However if you install a GOG game, it’s a complete different story from the moment you don’t need a client opened to play a game. You just need to download a game through the offline installer, of course you have to consider that not all games are supported but it’s much easier to get a game running. I noticed that some games on GOG which are also available on macOS, can only be downloaded for the Windows platform, in this case if you see the same game on Steam available on macOS, then buy the game on Steam from the moment you’ll get a better performance with Rosetta 2.
Let’s setup a Wrapper with Wineskin
When you open Wineskin you get an interface like this:
Before creating a Wrapper you need to install an engine, you can download the engine WineCX20 or greater. If you don’t see the engine from Wineskin, you can download it from here. After that you just need to copy and paste the file in the path ~/Library/Application Support/Wineskin/Engines
. Create a Wrapper and navigate to this path ~/Applications/Wineskin
you should see the Wrapper that you just created:
Keep in mind that you need to use the correct architecture, if you use a x64 engine on a x86 game it’s not going to work. You don’t need to use the installer to extract the game files to check the architecture of the exe, I’ll show you later another way to install a game without launching the setup.
Right click on the Wrapper and click on Show package contents, from here you can manage your Wrapper by copying files inside the drive_c folder and other settings through the Wineskin app:
Download the offline installer from GOG
Login into your GOG account and click on games under your profile icon to display your games list:
Click on a game and download the offline installer files:
Install the game with the offline installer
Follow these steps to install correctly the game:
- Drag and drop the files in the drive_c folder of your Wrapper
- Open the Wrapper and click on the advanced options to set the path of the installer, e.g.:
- Click on Test Run to launch the installer:
- After the installation is complete, repeat the step 2 by choosing the exe of the game, in my case is War2Launcher.exe keep in mind that if the game is working, you just need to open directly the Wrapper and it’ll launch the game without clicking on Test Run
If the game is supported and if you used the correct architecture, it should run without any issues:
Use innoextract to extract the files from the setup
Another way to play GOG games is to use the innoextract tool, which is used to unpack installers created with Inno Setup. From the documentation, the simplest way to install innoextract is using the Homebrew package:
$ brew update
$ brew install innoextract
If the GOG offline installer doesn’t include some kind of bin files, you just need to run the following command:
$ innoextract mysetup.exe
If it includes the bin files, run this command (all files need to be in the same directory):
$ innoextract mysetup.exe --gog
The files are extracted but how do we check which architecture the exe is using ? Run this command by passing the exe of the game:
$ file example.exe
Which prints:
example.exe: PE32 executable (GUI) Intel 80386, for MS Windows
After the files are extracted, you just need to choose the correct exe to run in Wineskin and you are ready to play (if there are not other issues to solve first).
TLDR
Wineskin Server is a good free alternative to Crossover and Parallels. Unless you have a Windows PC, before buying a game should check if that particular game is playable on an Apple M1, there are many websites that you can use, I recommend AppleGamingWiki. Each game requires different settings and tweaks to make it work, there isn’t a standard solution so you’ll need to google for some intel.