Skip to content

nonoche2/the-macOS-game-workaround-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 

Repository files navigation

The macOS Game Workaround Repo

A centralized list of every known way to make games run on macOS

Table of Contents

  1. Native Mac Games
  2. iOS Versions
  3. Modern Windows Games
  4. Games Available on Other Platforms
  5. Game Engine Ports, Hacks, and Patches
  6. Mod Managers
  7. Making VR work

Native Mac Games

Native Mac games and ports are, most of the time, the best way to enjoy a game on your Mac. They are compiled for macOS, and the developer presumably offers support for running them on macOS. There are a few different places to find these games:

  • Mac App Store: Apple's main app store which has some exclusive Mac games. Some are only available with an Apple Arcade subscription. The Mac App Store sometimes offers Universal Purchase, which means you can play the game on every supported Apple platform for a single fee
  • GOG: Unlike the other stores, GOG provides games without DRM
  • Epic Games Store: Notable for offering free games each Thursday, although Mac games are quite rare (many games that offer a Mac version are only available for Windows on the Epic Games Store)
  • Steam: The store with the largest game selection by far
  • MacGameStore: More centered around casual games; a staple of Mac gaming for decades

Tip

When you buy a game on GOG, the Epic Games Store, or Steam, you also get a license for the Windows version, and Linux version when available.

Steam's Handling of 32-bit Mac Games

When Apple decided to drop 32-bit support with macOS Catalina, many Mac games became non-functional overnight. The games could still be played provided you didn't update macOS but since Steam eventually also dropped support for 32-bit on macOS, there is no way to run these games natively on macOS anymore.

Valve decided to make developers manually specify if their game was 64-bit in the SteamWorks database, making games 32-bit by default. Games assumed to be 32-bit are signaled as incompatible with macOS Catalina and newer on the game's page. They are also signaled in the game library by an icon (🚫) next to their name and a message on their description page. These games are filtered out when clicking on the Apple logo to filter the Mac-only games. Unfortunately, many 64-bit games are incorrectly assumed to be 32-bit. Some of them are listed here.

Additionally, games that were delisted from the store are all reported as 64-bit in the library, whether the database says so or not.

iOS Versions

Some Windows games have also been released for iPhone and iPad, and those apps can technically run on Apple Silicon-based Macs when allowed by their publishers on the App Store, which is arguably the closest thing to a native macOS version. However, many games are simply not allowed to run. There is a workaround for this with PlayCover and Sideloadly, which are free apps that allow sideloading and running decrypted iOS/iPadOS apps on Apple Silicon-based Macs. For 32 bits games that won't work with PlayCover, there is an emulator for the early iPhones called touchHLE.

Modern Windows Games

Translation Layers

Background

For those who want to run Windows games (with no native port/iOS version) on their Apple-silicon hardware (and not through a cloud provider), this is likely the best option. Modern windows games (from this century) are going to be x86, Windows, likely DirectX-based titles. This means multiple translation layers are necessary to play on an ARM (Apple silicon), macOS, Metal machine:

  • [Apple silicon only] Rosetta 2: Apple tool that translates x86 into ARM instructions
  • Operating system layer: Wine translates Windows API instructions into macOS API instructions on the fly
  • Graphics layers: : These translate the GPU instructions from DirectX API to Apple's Metal graphics API

Tools

Unless you are keen on building everything from source and integrating the layers yourself, you are best served using one of the following programs that combine them:

Winetricks is a script (embedded in CrossOver, Sikarugir, and Heroic) which allows installation of necessary dependencies (such as Microsoft DLLs and fonts), tweak settings, and workarounds to make games work with Wine and its derivatives.

Note

While not every Windows game will work flawlessly (most notably, games with anti-cheat protection won't run), translation layers are usually the best option to try before virtualization

If you want to know if a specific game runs, there are compatibility lists:

Launchers

Sometimes, the Windows version of specific store launchers (GOG Galaxy, Epic Games Launcher, Amazon Games) have updates which break support for the above software translation layers. A workaround is to use a 3rd-party launcher that calls the stores' APIs, such as:

  • Heroic Games Launcher: supports GoG, Epic Games Store, and Amazon Games; can run games with external versions of Wine such as CrossOver
  • Mythic: only supports the Epic Games Store and only runs Windows games with its own embedded version of Wine based on deprecated Whisky project

Note there are also other launchers which do not call stores' APIs directly and serve only to consolidate/facilitate game launching, including:

Handling AVX, AVX2, FMA, F16C, and BMI

Some Windows games will sometimes require specific CPU instruction set extensions found on Intel/AMD x86 processors to run, such as AVX, AVX2, FMA, F16C, or BMI. As of macOS Sequoia: AVX, AVX2, and FMA are handled by Rosetta 2. Apple added F16C and BMI support to Rosetta 2 in macOS 15.4; previous versions of macOS require individual patches for specific games as a workaround (see footnote)4

To advertise support for these instructions, ROSETTA_ADVERTISE_AVX=1 must be added in the launch parameters of your game (for Steam: select your game properties and paste it in the launch options field at the bottom of the General tab). Note that as of CrossOver 25, this isn't necessary anymore as it is handled automatically. Some other tools also handle it automatically now.

Virtualization

Virtualization aims to setup a guest operating system, sharing resources with the macOS host. It differs from emulation because it attempts to run the operating system natively and share the host processor between the host and guest. For instance, a Nintendo Switch runs on an ARM processor, and thus can be virtualized on an Apple Silicon-based Mac. While there is an overhead compared to running a game on its original platform since the hardware is shared with macOS, it's generally faster than emulation, which converts one instruction set to another. Unlike translation layers, virtualization requires installing complete operating systems (like Windows or Linux) and is therefore usually more focused on general-purpose computing than gaming. In fact, currently none of the following virtualization tools support DirectX 12.

Caution

Limitations should be kept in mind. For example, UTM does not support any GPU acceleration. Also, while you technically can use some virtualization tools to emulate Windows x86 on Apple Silicon, there will be a huge performance penalty. For this reason, almost all the tools above only support Windows for ARM on Apple Silicon. This means you would need to verify your game will run on that version of the operating system without issue.

Cloud Gaming

Cloud gaming runs games on a remote machine and streams the video output to your Mac in real-time, while your Mac just displays the video stream and sends controller inputs to the server. It requires a good internet connection, but it can sometimes be the only solution for specific games. Note that most of these only support a limited selection of games and require monthly payments.

Local Area Streaming

If you have another gaming machine, there are also local streaming solutions which allow you to play a streamed game, running on your (or a friend's) gaming machine, on your Mac:

  • Steam Link (Mac App Store link) : a selection of Steam games can be run on your PC and played on your Mac. You can also play games friends own, running on their PC
  • PS Remote: allows streaming games from your PS5 to your Mac
  • Moonlight: allows low-latency streaming from a NVIDIA GPU-powered PC to your Mac over your local network
  • Greenlight: 3rd-party app that allows streaming from your Xbox One or Series X/S console (using Remote Play) as well as xCloud titles to your Mac

Dual Booting

Windows (Intel-Only)

Intel-based Macs can boot Windows like any other PC thanks to Boot Camp. This will run any Windows game.

Note

Apple Silicon-based Macs cannot boot Windows, though Apple has said it is open to making Boot Camp available to run Windows for ARM, pending Microsoft's approval.

Linux

Additionally, Intel-based Macs can dual-boot on Batocera, a Linux distribution centered around launching emulators and ROMs with a dedicated interface.

Apple Silicon based Macs can dual-boot on Asahi Linux, which allows running Windows games with Proton translation right from within Steam. However, this is essentially using translation layers on a different operating system, and the operating system itself needs to overcome compatability with Mac hardware.

Games Available on Other Platforms

These games can be run either through emulation or virtualization depending on the processor of the platform it runs on. There are countless emulators available for macOS, supporting the most famous to the most obscure platforms, so this list won't be exhaustive and will only feature the most prominent emulators. Some Windows games were also released on these platforms (or inversely, some games first released on older platforms were eventually released on Steam through emulation), which provides an alternative, and sometimes superior, way of playing them on macOS. Some emulators provide improvements to how the original games ran, for instance by increasing their resolution, or even supporting bespoke HD graphical packs, effectively offering a "remastered" experience.

Detailed "how-to" video from Retro Game Corps for setting up various emulators on Mac

Multiple Platform Emulators

  • OpenEmu, a scarcely updated, very polished, Mac-only app that emulates many platforms
  • RetroArch, also available on Steam and the Mac App Store
  • Ares
  • Nostlan (paid): a front-end for multiple emulators focused on ease of use and automatic setup

Sony PlayStation Series

If you have a PlayStation and want to stream your games to play on your Mac, look at Local Area Streaming.

Xbox Series

  • Xemu: Xbox
  • Xenia: Xbox 360, the emulator has no Mac port but can be run through Software Translation Layer (video guide)

If you have a Xbox and want to stream your games to play on your Mac, look at Local Area Streaming.

Nintendo Consoles

Android

Note

This is technically virtualization and not emulation since Android runs on ARM processors just like Apple Silicon-based Macs.

MS-DOS Games

  • Boxer (turns MS-DOS games into macOS apps with an intuitive interface)
  • DOSBox
  • DOSBox-X (a more flexible version of DOSBox, with more features)
  • DOSBox Staging (a more modern version of DOXBox, complete with CRT emulation)
  • Dreamm (a bespoke emulator for LucasArts games and some other miscellaneous MS-DOS games)

Windows 95/98

MacOS 9

Older versions of macOS X once allowed to run apps made for MacOS 9 in a dedicated environment called Classic. You can relive those days with emulators such as Basilisk II, SheepShaver and even the classic black and white Macintosh of yore with MiniVMac. Edward Mendelson even made a custom distribution of SheepShaver with additional features such as a shared folders and printer support, ready to use, called Mac OS 9. (thanks u/HomeStarRunnerTron!)

Additionally, Snow emulates 680x0-based Macs, from the original Macintosh 128K to the Macintosh IIx, IIcx, and SE/30. UTM can also run Intel-based Mac apps, including 32 bits ones, on Apple Silicon, but it's probably too slow to run most games decently enough.

To emulate PowerPC-based Macs, you can use UTM (to run MacOS X 10.0 to 10.5), SheepShaver (for up to MacOS 9.0.4), or InfiniteMac.org to run Mac emulators directly in your web browser.

Game Engine Ports, Hacks, and Patches

Unity and Adobe Air Games

It is possible to make a selection of Windows and Mac 32-bit games made with Unity or Adobe Air run on recent Macs, on occasion even as Universal Binaries.

RPG Maker games:

You can run RPG Maker 2000/2003 games with EasyRPG Player. And another very recently created tool for running RPG Maker MV, MZ, XP, VX and VX Ace games is RPG-Maker-MacOS-Launcher. It isn't perfectly compatible with every game built on this software, especially if it uses Windows 32 API stuff, or additional Ruby scripts, but there are workarounds for a lot of issues. (thanks u/HomeStarRunnerTron!)

Mac Source Ports

These are games or game engines which either became open source or were retro-engineered, compiled, signed, and notarized for macOS by Tom Kidd, supporting 156 games when this guide was published.

ScummVM

ScummVM is a port of various game engines that supports 381 different games when this guide was published.

Nintendo 64 Recompilations

These tools will provide native recompilations, with many quality-of-life improvements, of Nintendo 64 games if you provide the original N64 ROM:

Sonic Ports

The first four are decompilations of Christian Whitehead's various versions of the Retro Engine, the last one is a recompilation of the XBox 360 version of the game. For obvious copyright reasons, you must provide game files for these to work.

Individual Mac Ports

Mod managers

Making SteamVR work

People have made some progress with running tethered VR games:

Footnotes

  1. DXVK used on Mac is a special macOS version based off an older version of the DXVK used in Linux.

  2. CrossOver usually offers the best compatibility and most up-to-date versions of Wine and the various DirectX translation interfaces. Codeweavers is also the biggest contributor to the Wine project, so supporting them helps everyone, especially because almost all the other projects use CrossOver's Wine sources. A common misconception about CrossOver is that the fee only allows you to use it for a year, whereas in reality you can use it forever, but you only get a year's worth of free updates. Historically, they have had a good sale around Cyber Monday. CXPatcher is a non-official tool that allows updating CrossOver's dependencies, such as updated graphics layers. CrossOver also comes with CrossTies, a list of game-specific fixes and workarounds for games that don't run out of the box through Wine, but starting with CrossOver 25 this will be phased out due to better general compatibility.

  3. For injecting trainers, cheats, and debuggers, one can use the ChooChoo Loader Engine to act as a pre-loader. This ensure all processes are able to see and interact with each other in a Wine gaming enviroment.

  4. patch for God of War: Ragnarok
    patch for Ghost of Tsushima
    patch for Horizon Forbidden West

About

a centralized list of every known way to make games run on macOS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published