|
|
Line 1,805: |
Line 1,805: |
| |{{✗}} | | |{{✗}} |
| |{{✗}} | | |{{✗}} |
− | |✓ | + | |{{✓}} |
| |? | | |? |
| |} | | |} |
Revision as of 05:27, 5 May 2023
macOS
|
Developer
|
Apple
|
Type
|
Operating systems
|
Release date
|
1984
|
Latest release
|
macOS Ventura
|
- This page is about emulators that run on macOS.
- For software that emulates macOS (previously Mac OS X) on other hardware, see Macintosh line.
The Mac has changed considerably over the years, both in terms of hardware and software. It is important to understand these changes so you can choose the best emulators for your Mac.
CPU Architecture:
The Mac has gone through four major cpu architecture changes: Motorola 68k, IBM PowerPC (PPC), Intel x86/x64 and most recently Apple Silicon (Arm64). There have also been minor architectural changes such as moving from Intel's 32-bit x86 to 64-bit x64. Each time there was a hardware transition, Apple provided ways to continue to support older software on the new systems. Rosetta was a software emulation layer that helped PPC applications to run on x86/x64 Macs, but was dropped in macOS 10.6 Snow Leopard. Rosetta 2 currently facilitates x64 software to run on Arm Macs. While Rosetta performs very respectably for most software, it adds extra overhead which can reduce performance on demanding games and emulators.
Operating System:
The Mac has had two main operating systems over its history. The original System/Mac OS, which is now referred to as “Classic" macOS, was closed-source and proprietary. It had 9 major versions. However it had severe technical limitations, so Apple developed macOS which is Unix-based. The first several releases up to 10.4 Tiger contained support for Classic applications, but this was later dropped. Another major event for compatibility was the dropping of support for 32-bit x86 software in macOS 10.15 Catalina.
Graphical Backend:
Another aspect to consider is the graphical backend of the emulator. For many years OpenGL was the main cross-platform standard for developing graphical software. However in recent times this has changed. More modern backends such as Vulkan and Metal are superseding it. OpenGL on macOS has now been marked as deprecated, meaning it is stuck on the older OGL 4.1. It doesn't receive any support or bug fixes and will someday be removed from macOS completely. Apple recommends for developers to create native Metal backends for their apps.
One issue with this is that a lot of emulators are cross platform, and Metal is for Macs and other Apple products only. The Vulkan backend for Windows and Linux is similar to Metal, but does not have support on macOS. So many emulators will develop a Vulkan backend and use the MoltenVK translation layer, which will take Vulkan instructions and convert them into their respective Metal equivalent. However not every Vulkan instruction has a Metal version, so either workarounds have to be designed, or some features cannot be supported at all.
Using one of these backends is not mandatory, of course. Some emulators may use a different backend or handle graphics themselves.
Choosing an Emulator:
All this means that to find an emulator that works well for your Mac you should understand its specs first. Choose an emulator that supports your CPU architecture natively where possible. The emulators shown here will indicate the processor architecture it supports.
Generally you should choose an emulator that supports Metal where available if you are on a modern Mac. MoltenVK should be more performant than OpenGL, although there may be compatibility issues. OpenGL may work, but some emulators need to use a version newer than OGL 4.1 that macOS doesn't support. In cases like this the emulator will be marked as not having OpenGL support.
Lastly, remember that emulators can have different levels of completion or compatibility. If a game you are trying to run does not work properly with a recommended emulator, try a different one.
Frontends
OpenEmu
Many emulators for macOS can be played very conveniently with OpenEmu which provides an iTunes-like interface for your game collection and uses various different emulator cores to play them, including command line only emulators such as MAME and Mednafen. The systems emulated are listed here. In keeping with their goal of simplicity, some advanced features such as upscaling are generally not available. There is also no Arm build of OpenEmu available at time of writing.
Fightcade
Fightcade is a matchmaking frontend for playing many arcade fighting games online with other players. There is no Arm build at time of writing.
Game-Specific Emulators
Some emulators target specific games rather than emulating whole systems.
Arcade
Most Arcade Cabinets
Atomiswave
Naomi/Naomi 2
SNK Neo Geo AES/MVS
Apple
Apple I + II + III
Nintendo
NES/Famicom
Super Nintendo
N64
GameCube
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Dolphin
|
5.0
|
✗
|
✗
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
Wii
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Dolphin
|
5.0
|
✗
|
✗
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
Wii U
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Cemu
|
2.0-80
|
✗
|
✗
|
✓
|
✗
|
✗
|
✓
|
✗
|
✓
|
✓
|
✓
|
Switch
Game Boy/Color
Game Boy Advance
DS
3DS
Sega
SG-1000
Master System
Mega Drive/Genesis
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
ares
|
v139
|
✗
|
✗
|
✓
|
✓
|
✓
|
✗
|
✗
|
✓
|
✓
|
✓
|
Mega CD
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
ares
|
v139
|
✗
|
✗
|
✓
|
✓
|
✓
|
✗
|
✗
|
✓
|
✓
|
✓
|
32X
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
ares
|
v139
|
✗
|
✗
|
✓
|
✓
|
✓
|
✗
|
✗
|
✓
|
✓
|
✓
|
Saturn
Dreamcast
Game Gear
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
ares
|
v139
|
✗
|
✗
|
✓
|
✓
|
✓
|
✗
|
✗
|
✓
|
✓
|
✓
|
Sony
PlayStation
PlayStation 2
PlayStation 3
PlayStation 4
PlayStation Portable
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
PPSSPP
|
1.17.1
|
✗
|
✗
|
✓
|
✓
|
✓
|
✓
|
✗
|
✓
|
✓
|
✓
|
PlayStation Vita
Microsoft
MSX/MSX2
XBox
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Xemu
|
Releases
|
✗
|
✗
|
✓
|
✓
|
✓
|
✗
|
✗
|
✓
|
✓
|
✓
|
Commodore
C64
Amiga
Atari
Atari 8-bit family
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Rainbow
|
1.6.1
|
✗
|
✗
|
✗
|
✗
|
✗
|
✗
|
✗
|
✗
|
✓
|
?
|
Atari 2600
Atari 5200
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Rainbow
|
1.6.1
|
✗
|
✗
|
✗
|
✗
|
✗
|
✗
|
✗
|
✗
|
✓
|
?
|
Atari ST
NEC
PC-98
PC-Engine/TurboGrafx/SuperGrafx
Tandy
TRS-80
Sinclair
ZX Spectrum
Amstrad
Amstrad CPC
Acorn
Electron
BBC Micro
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Horizon
|
2.1.1
|
✗
|
✗
|
✓
|
✓
|
?
|
✗
|
✗
|
✗
|
✓
|
✓
|
RISC PC
Thompson
MO5
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
MO5
|
2.6.7
|
✗
|
✗
|
✓
|
✓
|
?
|
✗
|
✗
|
✗
|
✓
|
✓
|
TO7
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
Thom
|
1.6.5
|
✗
|
✗
|
✓
|
✓
|
?
|
✗
|
✗
|
✗
|
✓
|
✓
|
TO8
Name
|
Latest Version
|
PPC
|
x86
|
x64
|
ARM
|
OpenGL
|
MoltenVK
|
Metal
|
FLOSS
|
Active
|
Recommended
|
TEO
|
1.8.7
|
✗
|
✗
|
✓
|
✓
|
?
|
✗
|
✗
|
✗
|
✓
|
✓
|
IBM PC Compatible / MSDOS
References
- ↑ No official Arm build. Needs to be built from source
- ↑ MAME is run through the command line or through a frontend like OpenEmu.
- ↑ No official Arm build. Needs to be built from source
- ↑ MAME is run through the command line or through a frontend like OpenEmu.
- ↑ No official Arm build. Needs to be built from source
- ↑ MAME is run through the command line or through a frontend like OpenEmu.
- ↑ Seems to have good compatibility, but has no controller support.
- ↑ No official Arm build. Needs to be built from source
- ↑ MAME is run through the command line or through a frontend like OpenEmu.
- ↑ No official Arm build. Needs to be built from source
- ↑ MAME is run through the command line or through a frontend like OpenEmu.
- ↑ Must compile from source.
- ↑ Must compile from source.
- ↑ Classic Mac OS only.
- ↑ Due to using a non-commercial license. Source code is still publicly available.
- ↑ Mednafen is run through the command line or through a frontend like OpenEmu.
- ↑ Classic Mac OS only
- ↑ Your mileage may vary depending on the game.
- ↑ Some games may work with an x64 Intel Mac, but performance will be sub-par.
- ↑ Must build yourself. Not stable, Mac not officially supported yet
- ↑ Requires paid add-on to access extra features
- ↑ Must be built from source at time of writing.
- ↑ v3.4.0 does not work with Rosetta. 3.4.1 should work when it is released.
- ↑ No Audio. Must compile yourself and run from Terminal.
- ↑ Classic Mac OS only
- ↑ Requires paid add-on to access extra features
- ↑ Must be built from source at time of writing.
- ↑ v3.4.0 does not work with Rosetta. v3.4.1 will have Arm support when released.
- ↑ Not open sourced yet, but will likely be opened later in development
- ↑ There are no official Arm releases yet, but some beta versions support Arm
- ↑ Vulkan/MoltenVK backends are currently in beta
- ↑ Mednafen is run through the command line or through a frontend like OpenEmu.
- ↑ Charges money for features such as upscaling
- ↑ Mednafen is run through the command line only.
- ↑ Mac OS 9 only
- ↑ Unofficial 32-bit builds available here.
- ↑ Based on PCSX2, so it is partially FLOSS. The ARM parts are currently closed source.
- ↑ Your mileage may vary depending on the title
- ↑ Very early in development. There is currently no graphics backend.
- ↑ Mednafen is run through the command line or through a frontend like OpenEmu.
- ↑ There is a fork of Boxer that supports x64
- ↑ There is a fork of Boxer that supports Arm
- ↑ No official Arm build. Needs to be built from source
- ↑ MAME is run through the command line or through a frontend like OpenEmu.