RetroArch 1.7.5 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store. This is the 32bit version. We also have a brand new 64bit version for users with 64bit capable devices. You can grab that one here. More on that version later!

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. I am working on building those versions as we speak.

Highlights

Launch of Nintendo Switch version


Easily the main event of this release. Read our dedicated blog article here –

https://www.libretro.com/index.php/retroarch-1-7-5-introducing-libnx-switch-version/

Menu improvements – dropdown lists

We were fully cognizant of the fact that it was very inconvenient for many mobile users (such as Android users) to have to repeatedly click on a setting in order to adjust its value. So we have finally implemented dropdown lists now for the majority of the settings!

A dropdown list will appear when you either click on a certain setting or press the ‘OK’ button on your gamepad. Settings that have a dropdown lists are typically decimal/hexadecimal settings, or even string lists.

We have even made the core options feature dropdown lists, and they work uniformly across all currently existing menu drivers right now. So that means the dropdown lists work with RGUI, MaterialUI as well as XMB!

We hope this will smooth over some of the rough edges that have existed in the raster-based UI for quite some time!

Adaptive V-Sync implemented for OpenGL (Windows/Linux)

We have implemented the “swap_control_tear” extension for OpenGL when using WGL on Windows or GLX on Linux. In order to take advantage of this, your GPU needs to support either the “WGL_swap_control_tear” extension (for Windows) or “GLX_swap_control_tear” (for Linux).

Adaptive V-Sync is basically a conditional V-Sync mode. V-Sync is enabled until performance falls below the target refresh rate. If it falls below the target framerate, it will conditionally disable V-Sync. Basically the logic behind this is that tear lines is preferable vs. a sudden halving of the framerate (under a normal double buffered V-Sync configuration) from 60 fps to 30fps, and from 30 fps to 15fps, and so on. This can minimize stuttering when performance falls below real-time, and can be more energy efficient. It can also help with very intensive shaders that makes the framerate fall below fullspeed.

Adaptive V-Sync is commonly seen on current-generation game consoles such as Xbox One and PlayStation4.

Improved Vulkan performance (especially for Nvidia cards) – mailbox emulation

Thanks to Themaister’s latest patches implementing mailbox emulation for Vulkan, there should no longer be frame pacing / stuttering issues with Vulkan on Windows when using Nvidia graphics cards.

Please read his blog article for more details.

Easy recording/streaming options (for versions with ffmpeg support)

RetroArch video streaming feature was revamped with GUI support, automatic file naming and quality presets.

Live Streaming to YouTube and Twitch is now possible with a single click (after setting up your stream key of course). You can go to Settings -> User -> Accounts and configure your Youtube/Twitch stream key there.

UDP Streaming to another RetroArch instance

In addition to streaming to YouTube and Twitch (and to file) you can now stream to another RetroArch instance.

This is meant to be the backbone for Discord spectate mode. And streaming netplay (think parsec, gfe co-op)

An interesting fact about this is that you could stream at 1x without shaders and playback in another instance with shaders and at any scale you want.

Of course all these things still need more work, GPU assisted recording, custom FFMPEG, etc. But I’ll get there eventually.

To playback on another instance just do:
retroarch udp://127.0.0.1:56400

General changelog

– CAMERA: Fix Video4Linux2 driver that broke years ago.
– CONFIG: Add ‘Reset To Defaults’ setting in Configurations. This will reset your config file to defaults.
– CHEATS: Add support for Rumble when increase or decrease by the rumble value.
– CHEATS: Add cheat variables to allow for updating large portions of memory.
– CHEEVOS: Prevent loading states before achievements are fully loaded.
– CRT: New porches and interlaced bug fix.
– CRT: New functionality, ability to switch between 15KHz and 31KHz, etc.
– COMMON: Support for “OEM-102” key (usually ‘\’ on Euro keyboards).
– DISCORD: Add ‘Ask To Join’ Feature.
– EMSCRIPTEN: Add stb_font support.
– INPUT: Add new menu toggle combos ‘L3 + R’ and ‘L + R’ (useful for Switch).
– IOS: Use safe area to account for notch for iPhone X and adjust main view.
– LOCALIZATION: Update Portuguese / Brazilian translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Polish translation.
– LOCALIZATION: Update Spanish translation.
– MENU: Add dropdown lists for many settings.
– MENU: Fix crash that could happen when changing core’s options on Android.
– MENU/QT/WIMP: Add option to rename playlists.
– MENU/QT/WIMP: Add option to filter extensions inside archives when adding to a playlist.
– MENU/QT/WIMP: Rename playlist entries with 2 single clicks.
– MENU/QT/WIMP: Fix shader parameter checkboxes not working
– METAL: Add screenshot support.
– NETPLAY: Save lobby details received back from server after first announcement.
– OPENGL/GLX: Implement Adaptive VSync – GLX_EXT_swap_control_tear.
– OPENGL/WGL: Implement Adaptive VSync – WGL_EXT_swap_control_tear.
– RUNAHEAD: Fix performance degradation that could happen over time (after approx. 30 mins). Fixed input IDs outside of range 0-35 causing slow performance in runahead.
– SWITCH: Add stb_font support.
– SWITCH: Add Retro Achievements support.
– SWITCH: Add networking support.
– SWITCH: Add touchscreen support.
– SWITCH: Add OpenGL support.
– SWITCH: Merging of RetroNX Nintendo Switch port, based on libnx SDK.
– VULKAN: Fix race condition in threaded mailbox emulation.
– VULKAN: Maintenance fixes.
– WIIU: Fix menu lag when built with DevKitPro r32.