How to run Windows Games from Epic Games Store on macOS (2023 update)

Share this:

Yes. Seriously. You can indeed play Windows Games from Epic Games Store on macOS! If you have been wanting to play games like Rocket League on macOS or perhaps have a whole library of free but mostly Windows-only games you’ve accumulated on the Epic Games Store that you wish you could run on your Mac? Here’s how you can do it!

Running Windows Games from Epic Games Store on macOS

This updated guide assumes you are using an Apple Silicon Mac and is on MacOS Sonoma. I’ve recently upgraded my Mac to a Mac Studio powered by M2 Max.

  1. CrossOver translates Windows app (and games) instructions into macOS instructions in real-time

What’s the secret sauce? CodeWeavers CrossOver, specifically their latest version 23.5 release which supports DirectX 11 and DirectX 12, thanks to Apple releasing D3DMetal Game Porting Toolkit. CrossOver is a pretty amazing piece of software and the team that developed Wine, which is the underlying open source software that CrossOver is based on, is nothing short of geniuses in my opinion. CrossOver basically translates Windows code or instructions into macOS instructions and thus, allowing Windows applications to basically run on your Mac. Since it’s not an emulator, the performance you get off CrossOver is pretty good. You can see how I’ve gotten Witcher 3 to run on my MacBook here.

  1. Heroic, a 3rd party open source Epic Games launcher, that supports running games over Wine (and CrossOver) on macOS

The second part of the equation here is the Heroic launcher. One thing that I hate about most game launchers today is that you need to use the launcher to install and run games that you purchase. The only exception is GOG.com, which is why I prefer to get my games from GOG. So with Epic Games, you will also need to have its launcher to work well with CrossOver. However, it does not. So in the past, I could only really play some of the games like Rocket League on my Mac using Parallels to run a Windows VM.

With Heroic, I can now install and launch these games and have it executed by CrossOver, effectively allowing me to run Windows Games from Epic Games Store on macOS.

Preparing CrossOver 23.5 for Heroic launcher

First of all, you of course need to have a copy of CrossOver 23.5. There’s no two ways around it. You can purchase it here from their site. Once you have it downloaded and installed, you will need to create a new Windows 7 64-bit Bottle. You need to name the bottle “Heroic” as it will be the bottle that the Heroic launcher will look for.

Creating a new Windows 7 64-bit bottle on CrossOver 23.5 and naming it "Heroic"

Next, you will need to enable D3DMetal and ESync for the bottle.

Enable  D3DMetal and ESync on the Heroic bottle on Crossover 23.5

Installing and using Heroic Launcher

You can find the latest releases of Heroic here. Once you have it downloaded, install it as how you would usually do with any other Mac apps.

As Heroic is provided as an unsigned app, you will need to run the following command on Terminal. This will disable Apple’s quarantine for the Heroic app.

xattr -r -d com.apple.quarantine /Applications/Heroic.app

The latest version of Heroic launcher can run games from Epic Games Store, Amazon Prime Gaming and GOG. The first thing to do of course is to login on Epic Games Store. The process of logging in is the same as you would on the Epic Games Store. Once logged in, you will see all the list of games that you have on your Epic Games Store library.

Logging in from Heroic Launcher to run Windows Games from Epic Games Store on macOS

Next thing is to check and make sure Heroic can find and detect CrossOver on your Mac. Also, make sure the bottle is also set to Heroic.

Heroic launcher auto-detecting CrossOver 23.5

Installing and playing games on Heroic is pretty straightforward since it works just like any other game launcher. The only difference is of course that launching a Windows games on macOS automatically launches it through CrossOver.

Installing Rocket League through Heroic Launcher

If the game fails to find the default Wine version, just manually set it to CrossOver – 23.5 and “Heroic” as the CrossOver Bottle.

On my Mac Studio with an M2 Max, I can get up to about 150-200 FPS at 1440p with all settings at high quality.

Rocket League hitting 200FPS on Apple M2 Max using CrossOver 23.5 + D3DMetal
Rocket League on M2 Max with CrossOver 23.5 + D3DMetal

Check out the other games I’ve tried launching from the Epic Games Store using Heroic launcher.

DAEMON X MACHINA on Apple M2 Max using CrossOver 23.5 + D3DMetal
DAEMON X MACHINA on M2 Max with CrossOver 23.5 + D3DMetal
CONTROL running perfectly on M2 Max using CrossOver 23.5 + D3DMetal
CONTROL on M2 Max with CrossOver 23.5 + D3DMetal
Sable on M2 Max with CrossOver 23.5 + D3DMetal
Sable on M2 Max with CrossOver 23.5 + D3DMetal

Windows Games from Epic Games Store on macOS an Intel-based Mac with an eGPU

You can still run Windows Games from Epic Games Store on macOS using Heroic + CrossOver. However, you will be limited to Direct X 11 games since DXVK only supports DX 11. From my old version of this post, I’ve listed the following games I’ve tried so far with Heroic and CrossOver, namely Rocket League, Darkest Dungeons and Galatic Civilisations III. All of them played really well. I do have to say that my MacBook is also powered with an eGPU enclosure with an AMD RX 580 GPU. With this setup, I can easily get 70+ fps on average running Rocket League at 1440p at the highest graphics settings.

Playing Rocket League at 60 fps via CrossOver on macOS
Playing Rocket League at 60 fps via CrossOver on macOS

Here’s a screenshot of Darkest Dungeons running on my Mac.

Darkest Dungeons on CrossOver on macOS

And finally, here’s Galactic Civilizations III. It’s hard to see on the screenshot but I get an average of 50+ fps at 1440p with the AMD RX 580 eGPU.

Galatic Civilizations III running on macOS using CrossOver 21

Let me know if this works as well for you too and feel free to share with me the list of games that works well using Heroic and CrossOver.



If this post has been useful, support me by buying me a latte or two 🙂
Buy Me A Coffee
Share this:

You may also like...

9 Responses

  1. Lorenz says:

    Heroic recognises CrossOver as the Wine version, however despite creating a bottle named “Heroic” as per instructions, Heroic reports that it doesn’t exist and can’t launch. The only slightly non-standard thing is that I have my CrossOver bottle directory on an external drive rather than the default location, but I don’t see anywhere in the Heroic interface to specify that. I assumed if CrossOver knew where the bottles were, Heroic would too?
    Any suggestions?

  2. Ken Ng says:

    How are you getting Crossover bottles to run on external drives? Did you use the “defaults write com.codeweavers.CrossOverGames BottleDir ” method?

    I have a suspicion that Heroic would look at where CrossOver usually has its bottles located. I’ll take a look at this further and confirm it.

    Perhaps you can create a symlink of the bottle to where the usual location of the bottles are in “/Users/(username)/Library/Application Support/CrossOver/Bottles”

  3. Ken Ng says:

    OK. As I suspected, it is indeed looking at the location to see if the bottle exist. So, I think you need to create the symlink of the bottle from your external drive to the default location –> /Users/(username)/Library/Application Support/CrossOver/Bottles/Heroic

    Here are the Heroic code to detect the bottle: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/blob/4d481f3703c985fa45ef519c0598e386694a4ce8/src/backend/launcher.ts#L310
    if (isMac && gameSettings.wineVersion.type === 'crossover') {
    const bottleExists = existsSync(
    join(
    userHome,
    'Library/Application Support/CrossOver/Bottles',
    gameSettings.wineCrossoverBottle,
    'cxbottle.conf'
    )
    )

  4. Lorenz says:

    Thx Ken, yes I used the “defaults write…” to change CrossOver Bottles default location.
    What is the right terminal code to create a symlink that Heroic can actually use?
    Thx again for your help!

  5. Ken Ng says:

    You would use the ln -s

    Example: ln -s "/Volumes/External Drive Name/Bottles/Heroic" "/Users/(username)/Library/Application Support/CrossOver/Bottles/Heroic"

    And please let me know if it works for you.

  6. Lorenz says:

    Still no luck. Or maybe I don’t know how to use this command…
    It’s very frustrating that there is no simple way to do via Heroic preferences.

  7. Lorenz says:

    OMG I just see your comment on GitHub about default CrossOver bottle directory (I was about to write the same thing..)
    THX again.

  8. Ken Ng says:

    I’ve put in a feature request. So let’s see if it gets picked up. https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/3177

    I’ll also try on my side to see if I can get it to work on an external drive and report back.

  9. Ken Ng says:

    I manage to test it by the creating the symlink and it worked for me. So I wrote it up here (https://www.atpeaz.com/move-run-crossover-bottle-external-drive/) as a guide. I think I had an error in the command I gave you, the any space in the path needed to be escaped by a \. I thought the “” would have covered it, but it seems it does not anymore. Also, you can actually also use “tab” to help autocomplete the paths.
    Anyways, this should have worked ln -s /Volumes/External\ Drive\ Name/Bottles/Heroic /Users/(username)/Library/Application\ Support/CrossOver/Bottles/Heroic

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.