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 2021 Hardware Roadmap Q1/Q2

2020 has been a year of accelerated growth for RetroArch, but 2021 looks set to surpass it by far! Here is what we are able to reveal of our current roadmap for now, but best believe us when we say this is only the tip of the iceberg!

Xbox Series

RetroArch raised a lot of heads last year when people figured out how to run it on the new Xbox Series consoles. Every Xbox console supports UWP (Universal Windows Platform), and every Xbox console can become a devkit by paying a one-time Developer fee, so this is not really reliant on any jailbreak/hack in the traditional sense. So all you have to do to make something be able to ‘run’ on an Xbox is to simply port your software to UWP, which is how RetroArch ended up being ojn Xbox. A good thing in our view, and it lets homebrew developers do what they want with the device from within a sandboxed environment. We hope more console manufacturers take a page out of Microsoft’s playbook there since the cat and mouse game that other companies like to play with their proprietary game consoles really has stopped making sense for a long time now.

We have made some significant improvements to the UWP (Universal Windows Platform) port that will definitely benefit Xbox users. Reading and writing to files used to be very slow in previous versions. It should be much faster now thanks to some generous improvements by contributor driver1998. We also intend to fix some of the display issues that might be going with certain hardware rendered cores like PCSX2 later on, there are some unfortunate menu rendering bugs right now when that core is running which shouldn’t be happening.

We are only providing RetroArch UWP as a stock version on our website that will run on both PC (Windows) and Xbox. We are not affiliated with the distribution of it anywhere else.

Apple Silicon – Mac M1


We’re happy to announce that RetroArch will start supporting the latest ARM-based Macs soon as a first-class citizen.

Right now, there are only three Mac devices you can buy that sport an ARM-based Apple M1 processor:

  • Macbook Air (2020)
  • Macbook Pro 2013 (2020)
  • Mac Mini (2020)

Features:

  • This will be a separate version from the currently existing Intel version. Metal will be the default video driver, since unlike RetroArch for Mac Intel, backwards compatibility is not a concern here.
  • It will require its own separate cores because of the processor architecture switch (ARM64/AArch64). This has been consuming quite a bit of time on our end building up the core library. So far, we have nearly 70 cores ready on our buildbot and more to come. NOTE: You won’t be able to run cores built for Intel RetroArch Mac on this new separate version.
  • There is no OpenGL support right now in the current Mac ARM64 version. However, while OpenGL has been deprecated for a while, it still works just fine on these ARM-based Macs, so we’d still like to find a way to include it so you can switch between the Metal and GL video driver.
  • Some dormant MoltenVK interfacing code has existed for a while in RetroArch but never really used before. We’d like to return to this. Once complete, it would allow us to run Vulkan-based cores on RetroArch Mac.

We’re impressed with the performance of these new Macs. While there is currently a lack of software on the platform in general, everything we have been able to run on them has so far exceeded our expectations in terms of performance. Expect RetroArch to run lovely on these new devices. It’s quite something when a laptop not only matches but exceeds modern Intel Core-based desktops in terms of CPU performance while being relatively noiseless but that seems to be mostly what we’re getting here. Everything runs great on RetroArch and with great frame pacing, and thanks to the Metal driver you’ll be able to use the slang shaders.

DE10-Nano


RetroArch will appear on the DE10-Nano this year. It’s basically an open source FPGA alternative to the likes of proprietary FPGA retro game consoles like the Analogue devices.

This port will rely in large parts on a member that we are collaborating with called Booger.

So far, RetroArch on DE10-Nano will be a plain-Jane port. RGUI works, it uses SDL for video, it works with gamepads, and it can run only software-based libretro cores for now (in other words, anything that is not an OpenGL/Vulkan-based hardware context core).

In terms of image enhancement, you are limited to basic software video filters, as there is no GPU, so the advanced stackable GLSL/Slang shaders in RetroArch remains a pipe dream for FPGA users unfortunately.

At RetroArch, we are building a platform. We do not think of our project as an emulator. Our stated goal is for this platform to be all-pervasive when it comes to being able to run it on as many different devices as possible. Giving people the choice to do with their hardware what they want is always the number one priority.

The DE10-Nano is an Intel SoC FPGA that can be bought off the shelf, and it’s currently intended as hardware subsidized for students. DE10-Nano right now is very much in a hobbyist realm where you need to source all these parts together and cobble them together to make them all work. There is also no affiliation between Intel and the homegrown efforts of these FPGA hardware cores. There’s a limited amount of places to buy this hardware from. The actual non-FPGA part of the hardware (ARM SoC) is rather weak compared to most modern ARM hardware. As mentioned before, there is also no GPU on the DE10-Nano, so OpenGL/Vulkan-based cores are not going to be able to be used on it. It’s important to keep expectations in check with regards to what will be able to be ran on it.

We don’t believe the future of emulation is necessarily going to end up either being software-only or hardware-only. Both are valid approaches and both have clear ups and downs. We think instead it will be complimentary, and that’s the way we want to approach it. We see a lot of possibilities for RetroArch as a platform on this, just like we do on other platforms. And the good thing about RetroArch is that precisely because it’s more than just an emulator, it doesn’t really matter, as a platform we can go whichever way the wind is blowing.

As ever with our project, whatever the DE10 Nano port can be and will be is going to depend in large part on where the community takes it. That’s the power of open source.

Below is a sneak peek of RetroArch running on DE10-Nano via HPS framebuffer on a CRT with TinyOS³.