RetroArch for Apple Mac M1 softlaunches today!

We’re happy to announce that RetroArch for Mac M1 will be available for download starting today on our website! Get it here.

We’ve put a significant amount of effort into our new infrastructure to ensure that all the RetroArch binaries for Mac (whether they are nightlies or stables) are now codesigned and notarized. This way, it no longer requires you to disable GateKeeper or start up the program in an obtuse way to get the program to start.

Two versions/where to get it

There are two versions for now:

  • RetroArch with OpenGL (for x86 x64 Macs) (latest nightly here)
  • RetroArch with Metal (for x86 x64 / ARM Macs) (latest nightly here)

As always, you can find these versions on our Download page. If you browse the Download page on a Mac, it will even show a convenient ‘Stable’ and ‘Nightly’ button for both versions.

NOTE: There is no Qt support yet in these versions. This means that the Desktop Mode (triggered with F5) is not available in these builds as of this time. When/if we add this we will inform you of this in a future blog post. Stay tuned for further information on that.

There is also another problem with Qt that pertains to ARM Macs – there is no official support yet. All the stable binaries out right now are for Intel Macs. Hopefully this situation will improve later on so that ARM Mac support comes out of the box.

RetroArch with Metal (for x86 x64 / ARM Mac – Universal app

RetroArch with Metal (for x86 x64 / ARM Macs) is a ‘universal’ version. This means that it will work on both ARM and Intel Macs. It uses the latest technologies available in modern Macs, like a new CoreAudio 3 driver, and a Metal graphics driver. The only disadvantage is that there is no OpenGL support. We might want to include this later on still in the build, but we are not sure yet if this will make sense for the universal build. I guess it all depends on how long Apple will keep it in ‘deprecated’ mode before removing it altogether.

RetroArch with OpenGL (for x86 x64 Mac)

RetroArch with OpenGL (for x86 x64 Macs) will only work on Intel Macs. You will be able to run it on an ARM Mac with Rosetta2, but for a more optimized experience you definitely want to go with the former version (Metal). You might still want to use this version though if you need some OpenGL-based libretro cores to work.

State of the ARM Mac RetroArch port

There are currently 75 Libretro cores available as of this writing. You can get them by going to Online Updater -> Install Cores inside RetroArch. We are going to be adding more as time goes on.

The ARM Mac version uses Metal as the video driver. There is no OpenGL driver. This means that OpenGL-based cores will currently not work on this version. If you want to use a core that requires OpenGL to function, you will have to download and install the x86 x64 version of RetroArch (with OpenGL) on your Mac and rely upon Rosetta2 emulation. Yes, it’s slightly inconvenient to have two versions of the same app installed on your computer. Hopefully later on we can find a solution so that this is no longer necessary, whether it’s through adding OpenGL driver support (assuming OpenGL remains available and won’t be removed altogether as we fear Apple might do) or whether that means going with some middleware wrapper that translates OpenGL to Metal.

Setup

In order to install RetroArch on your Mac, you need to make sure that your Mac is configured to allow apps downloaded from “App Store and identified Developers”. Go to System Preferences, Security & Privacy. Go to the tab 'General' and make sure that 'Allow apps downloaded from' is set to 'App Store and identified developers'. If it isn’t, click on the lock to make the necessary changes.

After this, you should have no problem installing RetroArch from our website. Download the zip file from our site, unzip it, this will give you a .dmg file. Mount the dmg file by clicking on it. Now simply drag the RetroArch icon over to the Applications icon. And you should be done!

NOTE: We changed the way assets are dealt with in RetroArch for Mac. Previously, assets were bundled in the .app itself and they would be stored there as well. Now, they are stored in a support directory in your user partition instead.

There is now also a first-time asset extraction process. Be aware that if the file ~/Library/Application Support/RetroArch/configs/retroarch.cfg already exists, it won’t try to extract the assets at first-time startup. Please keep this in mind in case you see low-resolution bitmapped fonts without any icons. Alternatively, you can always just update the assets directly from within the app by going to Online Updater, and selecting ‘Update Assets’.

Final thoughts

Lastly, we can tell you that the ARM-optimized version of RetroArch runs great on current Apple M1-based hardware. We are quite impressed with the overall level of performance on display, and our first priority will be to expand the amount of cores that are supported. Right now we have 75 Libretro cores available but we should be able to reach a number closer to the x86 x64 version.

Special thanks

Special thanks to Xer The Squirrel, kivutar, harakari and others for helping out with the key signing and work on our new infrastructure. We wouldn’t be at this stage right now without them!

RetroArch 1.7.4 – Metal 2 macOS version available now!

RetroArch with Metal 2 support for macOS High Sierra users!

Up until now, we had three versions of RetroArch for macOS/OSX users:

  • RetroArch for OSX PowerPC (10.5) – For users with an old PowerMac or iBook/Powerbook. You should have at least Mac OS X version 10.5 (Leopard) installed in order for this version to work. Cores are packaged with this version because our buildbot does not serve fresh 32bit PowerPC cores for OSX.
  • RetroArch for OSX 32bit Intel (10.6) – For users with an old MacBook that has a 32bit Intel processor (for instance, 1st generation MacBook). In order to use this, you should have at least MacOS X version 10.6 (Snow Leopard) installed. Cores are packaged with this version because our buildbot does not serve fresh 32bit Intel cores for OSX.
  • RetroArch for macOS/OSX 64bit Intel (10.6) – This is what you are likely wanting to use on a modern Mac computer. You should have at least MacOS X/macOS version 10.7 (Lion) installed. Cores are distributed separately on our buildbot.

We are now adding a fourth one:

  • RetroArch for macOS 64bit Intel with Metal 2 support (10.13) – This version has all of the features of ‘RetroArch for macOS/OSX 64bit Intel’ plus a Metal 2 video driver. This version requires at least macOS 10.13 (High Sierra), a fairly modern version of macOS. For this version, we default to the Metal video driver by default.

If you have relatively modern Mac and you want to enjoy the latest in cutting edge technology, you should definitely try out this latest version. Get it by going to our Downloads page, and click on the download link below macOS High Sierra (or later).

Some important things you should know about Metal 2 – not all of the devices that can run macOS 10.13 necessarily support this. Here is a compatibility list of all supported hardware:

  • MacBook (Early 2015 or newer)
  • MacBook Pro (Mid 2012 or newer)
  • MacBook Air (Mid 2012 or newer)
  • Mac mini (Late 2012 or newer)
  • iMac (Late 2012 or newer)
  • Mac Pro (Late 2013)

What is Metal, and why is it relevant?

Up until the ’10s, Mac OS X has relied on the crossplatform OpenGL API to provide hardware accelerated rendering to developers writing Mac applications. However, since 2014, there has been an industry-wide push towards lower-level APIs, and Apple in specific decided to go with its own proprietary graphics API. This API is called Metal, and was first premiered with iOS 7 and Apple A7 devices. It has since some years ago made the switch to macOS as well, and this year the API has been bumped to version 2.

Apple has announced OpenGL will be deprecated in the future, its graphics driver stuck with the dated OpenGL 4.1 spec for years now. While we regret this industry wide push away from a standardized, cross-platform graphics API, we have been forced to move with the times and instead cater to all the major graphics APIs. There is no longer the potential for one single graphics API to cater to all platforms.

With the release of RetroArch 1.7.4, we have achieved an important milestone: we now have fully functioning graphics drivers for the three major next-generation graphics APIs. This includes Khronos’ Vulkan API (added to RetroArch since 2016), Microsoft’s Direct3D 11/12 (added to RetroArch since earlier this year), and now Apple’s Metal 2 for macOS. Thanks to Hans-Kristian Arntzen’s SPIRV-Cross middleware, we can reuse the same shaders across Direct3D/Vulkan/Metal. We therefore are very close to having a universal shader specification that will work on all the major platforms.

We are now ready for a future when Apple will outright kill OpenGL support, while at the same time we have ensured that we have one common set of shaders that can be used across all these video drivers. The developer who has added Metal 2 support to RetroArch has already indicated he intends to bring this over to iOS and tvOS as well. And who knows, maybe even backwards compatibility with Metal 1 could arrive.

How complete is the Metal video driver right now?

Fairly complete. You get:

  • Fully functioning menu drivers. XMB, MaterialUI and RGUI should work fine.
  • XMB shader pipeline effect should work as expected.
  • You can take screenshots.
  • You can go into fullscreen mode.
  • You can use slang shaders with the Metal video driver, the same shaders that can be used with Vulkan/D3D10/D3D11/D3D12.

Things that have still yet to be added which the author is considering adding:

  • Recording support independent of ffmpeg.
  • Support for the libretro API’s RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER.
  • Hardware renderer context support, so that libretro cores could make use of the Metal API.

General changelog

– COMMON: Support for “OEM-102” key (usually ‘\’ on Euro keyboards).
– MENU/QT/WIMP: Add option to filter extensions inside archives when adding to a playlist.
– METAL: Add screenshot support.