RetroArch 1.7.7 – Released!

UPDATE May 11, 2019: RetroArch 1.7.7 has been updated again. This latest hotfix release should fix several crashing issues that could happen at startup on the 3DS and WiiU. It should also be a generally more stable release than the previous version. If you already downloaded RetroArch before May 11, be sure to download it again and upgrade your existing version!

RetroArch 1.7.7 has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

Buildbot/release woes – and a new Patreon goal

On a special note, this release took several days due to our buildbot no longer being up to the task of being able to process all of these builds within a timely manner. We have set out a new Patreon goal that would allow us to significantly upgrade our rented servers so that release cycles don’t have to take 10+ hours anymore. Please consider pledging to our Patreon.

New tiers and perks

We have created new tiers, there is now a $1 tier that gives you a special Discord badge and access to a Patron-only Discord channel. The $5 tier gives you all the perks of the $1 tier including a special subflair on our RetroArch subreddit page. There is now also a $10+ tier, if you become a member of this, you can choose to have your name/nickname inserted into RetroArch’s Credits screen in future versions of the program.

So, we reiterate, the release could have happened this past weekend, but unfortunately, we were met with the stark reality of a buildbot that has long since outgrown its shoes, and we now need to throw better hardware at it in order to make it perform much faster. So we ask for your help in that endeavor.

Highlights

Experimental alpha version of UWP/Xbox One version!


NOTE: This is a pre-alpha version of RetroArch for UWP/Xbox One! Please be aware that the current product is far from polished, and that whatever you see here might not be reflective of the finished product later on. Our sole purpose for releasing this is that Dominater01 had already made a release and we felt it would be remiss not to share this with our users, regardless of its current level of polish.

To learn more about this, read this article here.

Desktop UI – Settings

Ever since its inception, RetroArch users on the desktop have been clamoring for a Desktop UI that would allow them to manipulate all of the settings available in RetroArch. The most often heard complaint was that it was cumbersome to change these settings with a gamepad. Of course, our intention is to have a unified UI that mostly works the same across desktop, game consoles and mobile phones, but a reasonable argument could be made that it was counterintuitive to force a desktop user to go through a gamepad-centric UI.

So, to address these criticisms, a few versions back we debuted a companion Desktop UI that can be invoked by pressing F5. This was step 1. We have made this process a bit easier now too for Windows users. You can now go to the menubar, go to ‘Window’ and then select ‘Toggle Desktop Menu’ in order to go to the Desktop UI.

Step 2 was adding an actual settings screen. This has now been done as of version 1.7.7. Thanks to the great efforts of CozmoP and also due to some refactoring on our end, starting as of version 1.7.7, RetroArch will finally allow you to change settings inside the nice and easy Desktop UI (that can be triggered at any time by pressing F5 on your keyboard).

NOTE: The Desktop UI is only available for Mac, Windows and Linux. The desktop UI is powered by Qt 5.

Menu widgets

In this video, you will see some of the widgets in action when:
* Taking a screenshot
* Downloading a core

But there are many more widget elements available, such as:
* Fastforwarding
* Rewinding
* Showing the framerate onscreen
* Achievement notifications

Etc.

This is all courtesy of natinusala. More widgets will be added in the future.

Generic message widget, shader previous/next hotkey

Achievement notification widgets

New OpenGL Core driver supports Slang universal shader spec!


A new OpenGL driver has been made that targets OpenGL 3.2 and up. And unlike the older GL driver, this one supports only slang shaders. This means that this OpenGL driver can now finally use the same shaders as Vulkan, Direct3D 10/11/12, and Metal. This marks an important milestone for us since we are well on our way to having a true universal shader spec now that can cross around graphics API barriers.

To learn more about this, read this article here.

Legacy OpenGL 1.1 driver for GPUs with no vendor-supplied drivers!

Up until now, RetroArch required at least OpenGL 2.x support on the desktop. If your GPU did not have a driver supporting at least OpenGL 2.x, RetroArch would simply not run with the OpenGL driver.

There are plenty of integrated Intel video cards that have no real OpenGL support on Windows 10, so they have to rely on a fallback driver provided by Microsoft called ‘GDI Generic’. This limits these cards to OpenGL 1.1.

Now, those inconvenienced users can still use the OpenGL 1.1 fallback driver. Do note that it will be impossible for shaders to ever work with this video driver – OpenGL 1.1 dates back to 1997. It would take until 2003/2004 before pixel and vertex shaders would become a standard feature of any video card worth its salt.

To learn more about this, read this article here.

RGUI – Particle effect animation system and numerous improvements

RGUI is a low-fi CRT-friendly raster-based menu UI that in the past has been kept purposefully minimalist.

jdgleaver has really taken the bull by the horns and significantly improved upon RGUI, to the point where it now has:

  1. Thumbnail support (with scaling support)
  2. Theme support
  3. Fancy particle animation effects
  4. Drop shadow icons for text
  5. Extended ASCII character support (for accented characters)
  6. Much-needed performance improvements

To learn more about this, read these articles here and here.

Menu framerate is now framerate independent

Previously, the menu would be capped at 60fps. Users acclimatized to higher refresh rates would find the 60fps update to be lacking when they are inside one of the fancy raster menus inside RetroArch (XMB/MaterialUI/Ozone).

The menu framerate in RetroArch is now framerate independent. So, for instance, if you’re using a 120Hz resolution, XMB will animate at 120fps, and you will see smooth animation with menu shader effects like the ribbon effect, snow, or bokeh.

When you’re running a game that is capped at 60fps, it will cap the menu along with it. But once the game with the lower refresh rate cap is loaded out of memory again, the menu should return again to that native framerate.

Menu Font text issues fixed on Android and macOS

Severe font text issues have been fixed on both Android and macOS. Languages like Japanese should now display properly on Android without any of the graphical bugs that appeared on earlier versions.

We are also now using STB_font unicode as our font driver for macOS and iOS, so for the first time languages like Japanese and other non-Western languages should finally be rendered properly.

Press Quit Twice To Exit

RetroArch traditionally exits the program immediately when you press the ‘Escape’ key on your keyboard. This has been one of the most commonly heard complaints usability-wise, so while this is an acquired taste, it’s understandable that some wouldn’t want the program to function like this.

So now there is a new option for those who dislike it – ‘Press Quit Twice To Quit’. Go to Settings – Input, and enable it. You will notice that when you hit the Escape key now to exit, it will remind you through a popup message first that you need to hit the key another time for it to truly exit.

Android phones: Vibrate on touch

You can enable this by going to Settings -> Input, and turning on ‘Vibrate on key touch’.

Your Android phone will vibrate every time you touch an UI element inside the menu or overlay. This could be useful in order to get a sense of tactile feedback from your button interactions while playing a game.

Automatically set the user language based on your system language

This is a new feature at first-time startup. Right now, it should work on Android, Linux and Windows.

When starting up RetroArch for the first time, it will check what your system language is set to, and then make RetroArch use that same language. This way, you don’t have to manually change your language after starting up RetroArch for the first time.

If you find that for whatever reason you want to use either another language or revert to English, you can go to Settings -> User and set Language back to English.

Changes for macOS

The macOS version ‘Apple macOS High Sierra (and later) with Metal2’ now requires Metal, the new graphics API. If your system does not have Metal support, it will not run. There is no backwards compatibility support for OpenGL, as Apple is fast-tracking the deprecation of this API and it might not be there for much longer. This version requires macOS High Sierra and/or later (10.13).

Please be aware that cores which rely on Libretro GL will not work with this version of RetroArch.

Conversely, there is also a separate build where OpenGL support is still a thing, but there is no Metal driver. This version requires macOS/OSX Tiger or higher (10.7).

And so much more…

We could write an entire book about all the new features we added to RetroArch 1.7.7. The list is so exhaustive, in fact, that we had to split this release blog post up into several mini articles in order to properly do justice to all of the major features and platform releases that have happened as a result of this release. We might go into some more of the standout features later on in a future blog post, but for now, below is the massive CHANGELOG of this release.

General changelog

– 3DS: Add unique IDs to prevent cores overwriting each other.
– 3DS: Fix screen tearing when running 50Hz content.
– ANDROID: We now target API level 26 (minimum is still API level 9).
– ANDROID: Add option to vibrate on touch (works in menu or overlay).
– ANDROID: Add device vibration option for cores that support rumble.
– ANDROID: Add gamepad vibration support for cores that support rumble.
– ANDROID: Allow stylus/pen to move mouse without pressing down.
– AUDIO: Avoid deadlocks in certain audio drivers when toggling menu sounds on.
– BLISS-BOX: Support PSX Jogcon (requires firmware 3.0).
– CHEEVOS: Fix crash when reading memory that is out of range.
– CHEEVOS: New Cheevos implementation enabled by default.
– CHEEVOS: Pop-up badges when an achievement is triggered.
– CRT: Dynamic super resolution support.
– DISCORD: Fix potential crash when username is empty and discord is disabled.
– DISCORD: Ask to join support for Linux.
– INPUT/ANDROID: Add “Input Block Timeout” option.
– COMMON: For platforms without HAVE_THREADS, don’t automatically resume content when saving/loading states
– COMMON: Make playlist sorting optional and consistent.
– COMMON: Fix sorting of playlists with blank labels.
– COMMON: Fix content scanner creating false positive playlist entries that also have wrong label and crc32.
– COMMON: Add some MMX-optimized pixel conversion routines.
– COMMON: Fix typo preventing some SSE2-optimized pixel conversions from being used.
– COMMON: Add option to track how long content has been running over time.
– COMMON: Fix buffer overflows in system information.
– COMMON: Add option to change screen orientation via the windowing system (Android, Windows, X11).
– COMMON: Show CPU model name in log.
– COMMON: Add “Help -> Send Debug Info” option (and F10 hotkey) to send diagnostic info to the RetroArch team for help with problems.
– COMMON: Show GPU device name/version in log.
– COMMON: Add menu option to write log info to a file.
– COMMON: Add subsystem support for playlists. Subsystem info is automatically saved to the history playlist for easy relaunching.
– GL: Add new “gl1” OpenGL 1.1 compliant video driver for legacy GPUs and software renderers
– GL: Add a new “glcore” driver with slang support (requires GL 3.2+ or GLES3).
– GL: Draw OSD on top of overlay.
– GONG: Add savestate support.
– GONG: Add video refresh rate core options.
– GONG: Two player support via core option.
– GUI: Fix text alignment when using stb_unicode.
– GUI: Fix text display issues when using Japanese (and other unicode-dependent language) text with stb_unicode.
– GUI: Set language on first startup to the user’s preferred OS language (Windows, *nix and Android).
– INPUT: Add (scaled radial) analog deadzone and sensitivity options.
– LIBRETRO: Add Turkish language support.
– LIBRETRO: Allow non-accelerated video to rotate the display.
– LOCALIZATION: Update Chinese (Simplified) translation.
– LOCALIZATION: Update Chinese (Traditional) translation.
– LOCALIZATION: Update Dutch translation.
– LOCALIZATION: Update French translation.
– LOCALIZATION: Update German translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Polish translation.
– LOCALIZATION: Update Russian translation.
– LOCALIZATION: Update Spanish translation.
– LOCALIZATION: Add new Turkish translation.
– MIDI: Fix startup crash in midi driver.
– MENU: Bugfix – you can no longer get stuck in Online Updater -> Update Core screen when toggling between ingame and menu.
– MENU: Selectively hide ‘Take Screenshot’ for video drivers that don’t support taking screenshots.
– MENU: Framerate independent menu rendering. MaterialUI/Ozone/XMB/RGUI can now run at higher framerates.
– MENU: Thumbnails work in history list.
– MENU: Menu widgets.
– MENU: Add memory statistics support to more context drivers.
– MENU: Enable ozone driver for UWP builds.
– MENU: Add optional “looping” menu text ticker with configurable speed.
– MENU: Fix core video rendering when using ozone with GL cores that implement the scissor test.
– MENU: Add optional playlist sublabels (associated core + play time, where available).
– MENU: Dropdown list settings now apply immediately.
– MENU: Add setting to require pressing the “Exit RetroArch” hotkey twice to confirm.
– MENU: Now able to run at higher refresh rates than 60Hz.
– MENU: Enable “Add to Favorites” without loading a core.
– MENU: Allow core name to be hidden on history/favorites playlists.
– MENU: Populate crc32 and db_name fields when adding history/favourites playlist entries.
– MENU: Fix TTF files not showing in OSD/menu font selection screen.
– MENU: Fix audio/video filters not showing in file browser.
– MENU/MaterialUI: Add subsystem support.
– MENU/MaterialUI: Add currently selected entry in dropdown menus.
– MENU/OZONE: Add mouse support on entries (no sidebar yet).
– MENU/OZONE: Allow collapsing the sidebar.
– MENU/OZONE: Add thumbnail support.
– MENU/OZONE: Battery notifications.
– MENU/OZONE: Add wifi icon for network entries.
– MENU/QT/WIMP: Add git version and build date to Help->About window.
– MENU/QT/WIMP: Fix content loading via the file browser.
– MENU/QT/WIMP: Add new settings window to control all RetroArch settings.
– MENU/RGUI: Improve playlist titles.
– MENU/RGUI: Add option to hide associated cores in playlists.
– MENU/RGUI: Add internal upscaling option.
– MENU/RGUI: Add subsystem support.
– MENU/RGUI: Add menu sublabel support.
– MENU/RGUI: Re-enable “Load Core” option when content is loaded.
– MENU/RGUI: Add optional “Collections” entry to main menu.
– MENU/RGUI: Add “Lock Menu Aspect Ratio” option.
– MENU/RGUI: Add “full width” layout option.
– MENU/RGUI: Ensure menu color theme is applied immediately.
– MENU/RGUI: Fix “Lock Menu Aspect Ratio” option when using custom viewports.
– MENU/RGUI: Add widescreen support.
– MENU/RGUI: Allow text to be centred when selecting widescreen layouts.
– MENU/RGUI: Add inline playlist thumbnail support.
– MENU/RGUI: Add optional shadow effects.
– MENU/RGUI: Performance optimizations.
– MENU/RGUI: Add optional extended ASCII support.
– MENU/RGUI: Add optional delay when loading thumbnails.
– MENU/RGUI: Add on-screen keyboard.
– MENU/RGUI: Battery notifications.
– MENU/XMB: Prevent crashes when resizing to a tiny window.
– MENU/XMB: XMB honors the ‘show menu sublabels’ setting now – was previously RGUI only
– NETPLAY: Fix stall-out causing total disconnection with >2 players.
– NETPLAY: Different (more intuitive?) default netplay share policy.
– NETPLAY: Add hotkey option to toggle hosting on/off.
– NETWORKING: Encode URLs to allow for spaces in directory names.
– OSX: Prevent crash on exit.
– OSX: Metal is now the default video driver for the RetroArch Metal build.
– OSX: Enable CoreAudio v3 driver for Metal.
– OSX/MACOS/IOS: Now uses the STB Unicode font driver.
– PS2: CDFS support.
– PS2: Implemented analog support for ps2 controllers.
– PS2: Fix audio freeze after restarting core.
– PS2: Fix issues with load state and the font driver.
– PS2: File I/O now works for USB and network host.
– PS2: Support cores with extra padding in their frame buffers.
– SCANNER: New option ‘Scan without core match’. When this is enabled,
supported extensions by all installed cores are not checked, and instead
it will add all content it finds to a playlist. This way, you can install the core you need later on after scanning. Not enabled by default.
– SHADERS: Don’t alphabetize shader presets.
– SWITCH: Add rumble support.
– SWITCH: Add USB keyboard support.
– VITA: Add bluetooth mouse and keyboard support.
– VULKAN: Fix color issues with RGBA8888 swapchains in readback (screenshots).
– WII: Don’t init overlay when RAM is beyond 72MB.
– WII: Skip CRC calculation on content load, can improve load times of larger games by several seconds.
– WINDOWS: Fall back to gl1 driver if accelerated GPU driver is unavailable.
– WINDOWS: Allow winraw and xinput to work without dinput (needed for WinRT).
– WINDOWS: Add MSVC2017 ARM desktop support.
– UWP: Fix rewind by opting for slower codepath.
– UWP: Fix relative path name issues when loading shaders.
– UWP: Optimizations for VFS system.

RetroArch 1.7.7 – Experimental alpha version of UWP/Xbox One version!

NOTE: This is a pre-alpha version of RetroArch for UWP/Xbox One! Please be aware that the current product is far from polished, and that whatever you see here might not be reflective of the finished product later on. Our sole purpose for releasing this is that Dominater01 had already made a release and we felt it would be remiss not to share this with our users, regardless of its current level of polish.

PLEASE BE AWARE, THIS IS A ROUGH DRAFT OF RETROARCH AS A WINDOWS 10/XBOX APP. THE FINAL PRODUCT WILL BE MUCH BETTER AND IN NO WAY IS THIS REFLECTIVE OF THE QUALITY OF THE FINAL PRODUCT.

We ask for your patience while testing this; you might find file system performance lacking and some manual steps might need to be performed that are obviously not user friendly. Do note that we are very conscious of these current limitations and we hope to have them resolved in future versions.

Where to get it

Go to our RetroArch Downloads page.

For Windows 10 PCs, go to the Windows 10 logo and download both the certificate and the .appx file.

For Xbox One users, just go to the Xbox One logo and download the pre-alpha.

NOTE: This won’t replace the regular Windows version on PC. For regular PC users, the UWP port is nothing but a downgraded/gimped version of our main Windows version. You can use this version for academic purposes, but I would not recommend using it primarily on Windows.

Running this on PC

1. Download and extract this version of RetroArch on your PC.

2. Make sure you download the certificate too, you will need it immediately afterwards –
Download certificate here.

3. First, make sure that you can actually install Windows/UWP apps from outside the Windows Store. Go to Settings -> Applications. At ‘Installing Apps’, select ‘Allow apps from anywhere’. In case you’d prefer it to be limited to Store-only apps, you can change this back later after you have finished these instructions and installed RetroArch already on your PC.

Created with GIMP

4. Now we need to install the certificate that we downloaded in step 2. Double click on it.

5. Click on ‘Install Certificate”.

When you are at this screen and it asks for any dependencies, you might have to add this file :

Microsoft.VCLibs.x64.14.00.appx.

6. A Certificate Wizard will now appear. Of the two questions, select “Local Machine”.

7. Check ‘Place all certificates in the following store’, click on ‘Browse…’, and select ‘Trusted Root Certification Authorities’.

8. After we have verified that the certificate is successfully installed, we start up RetroArch.appx. If an app identical to this was already installed, you would not be able to install this program right now. As it is, click on ‘Install’.

Running this on Xbox One

1. Download and extract this version of RetroArch on your PC.

2. Go to your Xbox. Make sure you have changed your Xbox to ‘Developer Mode’ (see here for more information on how to do that).

3. On the Developer home screen, go to “Remote Access Settings” and enable Xbox Device Portal. You might have to setup a username and password as well. You can do this by selecting Remote Control settings.

When you connect to the IP on PC and you see this page, make sure to click ‘Show Advanced’ and click ‘Proceed’.

4. Go to the Device Portal on your PC. This is the IP of your xbox one (it will show up on the Developer home screen) (if its being picky do this https://ip:port)

5. Goto “Add” on device portal and choose the .appxbundle (see step 1) then hit next

6. Goto “Choose File” if there are any dependency files needed (you will have to install all files one at a time) then hit next.

7. It will install. After this is finished, you can go to the Xbox One and run RetroArch.

8. You should now be able to run RetroArch UWP on Xbox One.

Compatibility list

Dominater01 has made a Google Spreadsheet compatibility list for RetroArch on Xbox One.

First-time setup procedures

As has hopefully been stressed before, this is a very early version of RetroArch for UWP devices. As such, the first time you start it up, you need to do some first-time configuration before everything looks properly and is ready to go.

In this video, you can see the first-time setup procedure – it is the same for both Xbox One and Windows 10 –

Set type of RetroArch App on Xbox One to ‘Game’ in order to get faster USB disk access

By default, any app you install gets assigned with type ‘App’. In order for RetroArch to become much quicker at accessing USB storage, we will need to change it to ‘Game’.

Be aware that after making this change, you will need to reboot your Xbox One for the changes to take effect. Otherwise you might run into issues.

NOTE: You will only be able to use USB 3.0 HDDs/storage on Xbox One.

Gain access to files beyond the sandbox

By default, your level of access to the filesystem with an UWP app is limited to the basic sandbox directory your app lives in. This is of course far too limiting for most RetroArch users, so to enable full filesystem access, go to Load Content, and then select ‘Enable external file access’.

You will be presented with a screen looking like this:

Go to ‘Choose Which Apps Can Access your file system’ and make sure that RetroArch is enabled there. This dialog screen might then close, and you might have to restart the program again.

What works

  1. Fully working Direct3D 11 driver
  2. Menu drivers like XMB/MaterialUI/Ozone/RGUI work as you would expect.

Already known issues

  1. Very slow filesystem performance.
  2. [Core issues] Closing content when running a PSP game with PPSSPP crashes RetroArch.
  3. [Core issues] Loading savestates on the PCSX ReARMed core crashes.
  4. [Core issues] Dolphin Core doesn’t work.
  5. GL Cores aren’t compatible/loadable (this is because only Direct3D 11 is being used right now, and we arent’ using ANGLE right now).
  6. RetroArch on Xbox One won’t highlight the text on the onscreen keyboard unless set to a white background.
  7. Having the rewind feature on slows the PCSX core
  8. Setting directories to USB by default isn’t saving correctly.
  9. Scanning content currently does not work.
  10. Leaving retroarch idle for hours crashes.

RetroArch 1.7.6 – Released!

RetroArch 1.7.6 has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

NOTE: Currently the following versions have not yet been released – Xbox OG and OSX PowerPC. We will keep you up to date on Twitter and update this blog post accordingly.

Highlights

PlayStation2 port – now available!

RetroArch has been ported to the PlayStation2 by fjtrujy, and starting as of version 1.7.6 you can already try it on your own homebrew-enabled PS2!

A couple of cores have been included as part of this initial release:
* 2048
* FCEUmm (NES emulator)
* QuickNES (NES emulator)
* Picodrive (Mega Drive/Genesis/Master System emulator)

NOTE: To run Picodrive and FCEUmm at fullspeed, you need to set Vsync to off. QuickNES will be fullspeed with vsync on.

How to use it on a PS2

You will need a PS2 capable of running homebrew programs. For the purpose of this quick step-by-step tutorial, we are going to assume you are using something like FreeMcBoot.

  • Start up your PS2.
  • Go to a file manager such as LaunchELF.
  • Take a USB stick, and extract the contents of RetroArch_elf.7z for PS2 to your USB stick. Insert the USB stick into your PS2.
  • Inside LaunchELF, navigate to mass:
  • Start up any of the ELF files depending on the core you want to use.

PlayStation4 port (public release TBD)

RetroArch has been ported to PlayStation4 by Frangarcj, Big Boss and others!

A few cores have been ported and have been confirmed running already, such as SameBoy and 2048.

The PlayStation4 port is using a homebrew SDK called liborbis, and thanks to this SDK we are able to use OpenGLES 2 on the PS4. This means that from Day One we have a fully functioning GL driver and working XMB/MaterialUI/RGUI drivers. It also means that OpenGL hardware accelerated cores should be possible.

Frangarcj wants to wait with a public release until OELF format support has been added to the SDK, so until then we will ask for your patience. It might be possible to provide you with a compilation guide in case you want to build it for yourself later on.

NOTE: In order to use this RetroArch port, you will need a PlayStation4 system that has been jailbroken. Right now this means your system should be on either firmware 4.55 or firmware 5.05.

Xbox One port (public release TBD)


RetroArch has been ported to the Xbox One courtesy of krzys_h! While we want to wait a while longer before we do a public release, we do want to let you know that unofficial builds are already available on the Internet, and it’s up to you to try them out to check the current state of development.

To be specific, the Xbox One port has been made possible as part of a larger endeavor to port RetroArch to Microsoft’s UWP platform. This means it can now function as a Windows 10 UWP app as well as a Xbox One app.

The Xbox One port of RetroArch uses a Direct3D 11 driver (Direct3D 12 for whatever reason turned out to have worse performance, so we aren’t using that). It is already running out of the box with full menu support such as XMB/MaterialUI. Full shader support is provided, and most slang shaders work fine out of the box.

So, to keep a long story short, check some of the unofficial builds out there. In order to use RetroArch on your Xbox One, you simply need to buy Developer Activation from Microsoft, which should only cost you about 20 dollars/Euros (it might even be free right now as part of a special discount going on). You do NOT need to jailbreak your console or anything, which makes RetroArch a very feasible option for the layman on Xbone. Do note that if you want to use RetroArch, you will have to restart into Developer Mode. When you want to go back to playing regular games, you will need to restart again into Retail Mode. This is the only inconvenience to the process.

RetroArch in its full-fat form would not be possible to be published on the Microsoft Store given all the console emulators. A neutered version bereft of all its emulators might be possible to be published, but it’s debatable how many people would be truly interested in that right now. So, Developer Mode is the best compromise/alternative for now.

NOTE: In case you try any of the unofficial builds, do note that one of the reasons we are not releasing a public build yet ourselves is that there are currently some slow file loading issues that we’d like to resolve first.

Apple TV/tvOS port

RetroArch has now been ported to Apple TV/tvOS courtesy of yoshisuga!

Right now it is using the OpenGL video driver for rendering and it’s using the Ozone menu driver by default. Support for Metal is planned, and there are some other developers that have an interest in making that happen as Apple has already begun deprecating OpenGL as of the latest Xcode SDKs.

How to use/install

The following is a non-developer guide to install RetroArch on non-jailbroken iOS devices. We’re going to try to improve the process and possibly include the iOS cores in a download, but until then, here is a way to build RetroArch to get it running on your iPhone, iPad, or Apple TV –

https://docs.libretro.com/guides/install-ios/

Ozone – new menu driver

Written by author natinusula

Created by natinusala, ozone is a new menu driver based on the Nintendo Switch’s user interface, look and feel. It has been developed completely clean-room. In the works since last September, it is finally ready to be used as a daily menu driver. Don’t forget to update your assets!

This new menu driver features a sidebar where you will find the tabs you already know from XMB: Main Menu, Settings, Favorites, History, Netplay Rooms, Import content and all your playlists. You can use the left / right keys to navigate between the main entries and the sidebar. The driver also displays the time and battery level in the status bar, if applicable. Finally, the virtual keyboard has been redesigned to look more like the one of the Switch’s operating system.

The driver has two different themes, a light one and a dark one. The configuration will default to the dark theme, but you can select which one to use in Settings > User Interface > Appearance > Menu Color Theme. On the Switch, the system theme will automatically be used, how handy!

ozone is available on all platforms with hardware acceleration (assuming you use the correct video driver), and is even selected by default on the Switch platform. If your device supports XMB and GLUI / MaterialUI, it will support ozone, the only exception being Android (see the missing features below). You can even use it on Lakka if you want!

The driver is ready to be used, but it still lacks some features such as:
– thumbnails display (both playlists and save states)
– DPI scaling (the menu will look super tiny on a 4K monitor, and super big on a 360p screen)
– touch and mouse support
– portrait layout (for mobile phones)

All those features will be added over time. Nice things are planned for the future of ozone!

RGUI improvements

Written by author jdgleaver
RGUI now has a new ‘theme preset’ configuration file format (e.g. my_theme.cfg). This has the following contents:

rgui_entry_normal_color = “0xAARRGGBB”
rgui_entry_hover_color = “0xAARRGGBB”
rgui_title_color = “0xAARRGGBB”
rgui_bg_dark_color = “0xAARRGGBB”
rgui_bg_light_color = “0xAARRGGBB”
rgui_border_dark_color = “0xAARRGGBB”
rgui_border_light_color = “0xAARRGGBB”
rgui_wallpaper = “wallpaper_file.png”

This also adds wallpaper support. rgui_wallpaper is the (relative) path to a suitable wallpaper file. If it is omitted (or left empty), no wallpaper is used. Wallpaper files must have the following properties:

– A resolution of exactly 320×240.
– They must be pre-converted to a reduced colour depth of 4 bits per pixel.

(NB: Normal background/border colours are still used for message boxes and the title background when showing thumbnails – it looks better this way!)

Theme preset files can be loaded via a new ‘Custom Menu Theme Preset’ option under ‘User Interface > Appearance’. They are enabled by setting ‘Menu Color Theme’ to ‘Custom’.

A small collection of themes have been added as assets. Here are some screenshots of what the included .cfg files look like:

Desktop UI improvements

Detailed file browser

Drag and drop for thumbnails

Discord matchmaking


It is now possible to use our Discord server for matchmaking purposes!
We will describe the process from the perspective of using Windows on PC (on Linux/OSX you can ignore step 5, you will need to continue to start RetroArch before launching the Discord application, otherwise it will not work)
NOTE: Discord matchmaking will not work through the webbrowser. You will need to use the Discord desktop app instead.
NOTE2: Port forwarding needs to be enabled on your router for this to work.

1) Make sure first that the game you want to play with a friend has already been scanned and is inside a playlist. Alternatively, you have to make sure the game is in your Recent History list.
2) Start RetroArch first before launching the Discord desktop application.
2) Make sure that you have the core that the person you want to play with is using. You can tell this by going to their Discord user handle and clicking on them. You will see the core’s name and the game that is being played.
3) Click on the button ‘Ask to Join’.
4) A message will pop up now ‘waiting for user’s game’. If all goes well, the game will start up now and you can play a netplay game with your friend.
5) (Windows only) From now on, you no longer need to start up RetroArch before launching the Discord desktop client. You can just select ‘Ask to join’ and RetroArch will automatically start up.
The Discord matchmaking will also automatically use your Discord username for the game session.

And more

There’s lots more to talk about in this release, but that will be it for now. We might release some followup blog posts in the upcoming days that will go into more detail on some of the other features that have not really been covered during this blog post.

You can also expect further blog posts about important new core updates.

General changelog

– ANDROID: Fix Xperia Play input binding.
– CHEEVOS: Reset when hardcore mode is toggled.
– CHEEVOS: Update the hashing methods to identify NES, SNES and Lynx games (more accurate and accepting headerless ROMs).
– COMMON: Add new JSON playlist format.
– COMMON: Fix playlist corruption when deleting items.
– COMMON: Fix archive progress display calculation.
– COMMON: Fix playlist entries appearing with previously used names.
– COMMON: Fix screenshot filename with no core or content.
– COMMON: Allow compiling without menu support.
– CORE UPDATER: Allow sideloading cores from the menu.
– CPU FILTERS: Add Normal2x filter.
– CRT/LINUX: New Linux switching method partially implemented.
– CRT/LINUX: Linux restore desktop resolution fixed.
– CRT/LINUX: Monitor index switching and auto enumerate for output detection in Linux (still working on the windows method).
– CRT/RASPBERRY PI: Initial support.
– DATE: Add Date / Time style options.
– DEBUGGING: Add an integrated crash handler for debug builds (see https://docs.libretro.com/tech/debugging)
– DISCORD: Discord matchmaking.
– DISCORD: Register the application name properly.
– DISK CONTROL: Remember the last used folder / current active folder to make disk-swapping faster.
– INPUT: Add new menu toggle (hold start button for 2 seconds)
– INPUT: Fix arrow keys being incorrectly bound as numpad keys
– INPUT/SDL: Flush the joypad events. Decreases cpu usage over time with the SDL joypad driver.
– LOCALIZATION: Add Greek translation.
– LOCALIZATION: Update German translation.
– LOCALIZATION: Update Italian translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Simplified Chinese translation.
– LOCALIZATION: Update Spanish translation.
– MENU: New “ozone” menu driver.
– MENU: Only show CRT SwitchRes if video display server is implemented (Windows/Linux for now)
– MENU: User Interface -> Appearance -> ‘Menu Font Green/Blue Color’ settings now work properly.
– MENU: Add option to enable in-menu sound effects.
– MENU/D3D: Scissoring support (will be used for Ozone and menu widgets).
– MENU/QT/WIMP: Allow building with MSVC2017.
– MENU/QT/WIMP: Add detailed file browser table.
– MENU/QT/WIMP: New grid view implementation that is faster and loads thumbnails on-demand.
– MENU/QT/WIMP: Thumbnail drag and drop support.
– MENU/RGUI: Overhaul custom theme interface + add wallpaper support.
– MENU/RGUI: Thumbnail support and thumbnail downscaling.
– MENU: Hide password values.
– MENU/SOUNDS: Implement in-menu sound effects (not enabled by default for now, still experimental).
– MIDI: Add a Linux ALSA driver for MIDI.
– NETPLAY: Force fast-save-states when netplay is enabled.
– NETPLAY: Allow quick joining subsystem lobbies.
– OSX: Initial CoreAudio V3 audio driver (not yet used in release builds).
– OSX: OpenGL 3.2 Core support for cores.
– PS2: Initial PlayStation2 port.
– PS4: Initial PlayStation4 port.
– RECORDING: Implement recording options in the menu complete with quality profiles, streaming, and proper file naming
– SCANNER: Fix GDI disc scanning.
– SHADERS: Fix auto shader preset loading on D3D10, D3D11, D3D12
– SUBSYSTEM: Allow more than 10 subsystems
– SUBSYSTEM: Cores that use subsystem for complex scenarios can now load content without starting a regular content first
– SUBSYSTEM: Remember the last used folder to make loading subsystem type content faster
– SWITCH/LIBNX: Improve touch scaling calculation.
– SWITCH: Proper button labels.
– TVOS: Initial tvOS port.
– VULKAN: Fix RGUI crashing at startup.
– VULKAN/RGUI: Enable ‘Menu Linear Filter’ option.
– VULKAN: Fix secondary screens in overlays not working.
– WAYLAND: Implement idle-inhibit support (needed for screensaver suspend).
– WAYLAND: Fix fullscreen toggle.
– WIIU: Initial netplay peer-to-peer support. Network information working.
– WINDOWS/WSA: Network Information info is blank until first network operation.
– WINDOWS: Fix an ancient bug that caused wrong mappings for keyboard arrows.
– WINDOWS: Remember window size and position if so desired.
– WINDOWS: SSL/TLS connections now work properly.
– WINDOWS: Fall back to GDI driver if no accelerated graphics driver is found.
– UWP: Initial UWP port.
– VFS: Update to version 3.
– XBONE: Initial Xbox One port.
– XMB/OZONE: Add more icons
– XMB: Add Automatic Inverted theme
– ???: Easter Egg