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³.

Buildbot status update

An update on the progress we have been making on our new infrastructure

  • We have figured out a way for now to make Visual Studio-based cores that rely on CMake to build. So, Dolphin, Citra, PPSSPP, and DuckStation should now be building again for 64-bit Windows. Cores that rely on CMake will not be available yet for Mac/iOS, but we hope to figure that out soon as well.
  • Other MSVC cores (like cores for MSVC 2003/2005/2010 – cores for older Windows versions) have yet to be figured out since there are still problems with the Mingw/Msys environment we were reliant on for building some of these cores. There are some hurdles to overcome with our current Gitlab-based infrastructure.
  • We have been busy adding macOS ARM64-based cores. If you compile and build RetroArch Metal for Mac right now on your own Mac, it will point you to the Core Downloader where you will be able to grab these cores from.
  • Code signing will be figured out for Mac-provided cores and software soon.
  • RetroArch Mac nightlies/stables are coming soon.
  • The RetroArch installer for Windows is still unavailable and is coming soon.

We have also updated our previous blog post here.

You can see our current checklist here :

https://github.com/libretro/RetroArch/issues/11858

We are working hard on setting everything up again for the new infrastructure. After about a month of grueling work, the light at the end of the tunnel is nearly upon us, and we can’t wait to get back to regular development after this. After this is all over, we can push out a new RetroArch stable again (version 1.9.1.