RetroArch 1.12.0 has just been released.

Grab it here.

If you’d like to learn more about upcoming releases, please consult our roadmap here.

Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love to our users. This project exists because of your support and belief in us to keep going doing great things. We have always prioritized the endusers experience, and unlike others, we have never emburdened them with in-app ads, monetization SDKs or paywalled features, and we intend to continue to do so. If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!

Views

This view lists all games in your collection released in the year 2000.
This view lists all games in your collection released in the year 2000.

There is now an entirely new way to display and organize content – Views!

You can turn a filter set in the Explore menu into a so called “View” file which then gets listed alongside playlists. This also adds the ability to filter a category by range in the Explore menu and not just filter on exact matches.

The views are saved into .lvw (libretro view) files that just like playlist .lpl (libretro playlist) files are in JSON format and are stored in the same playlists directory.

You can combine several filters in whichever order you see fit and then save the results as a view
You can combine several filters in whichever order you see fit and then save the results as a view

Here’s some examples of views that are now possible with the new range filtering:

  1. Games made between 1992 and 1996 by developers Capcom and Capcom Production Studio 1
  2. Games supporting 5 to 8 players
  3. Games containing “Mario” in the title released between 1988 and 1994

These are just some examples of what is possible with this new system. It’s a pretty powerful system, and we hope this gives you a lot of flexibility to better organize your content.

How to use it

  1. Go to Explore screen/tab.
  2. Search through the list of games sorting through it however you want, then once you’re satisfied with the output, select ‘Save As View’. It will now add this ‘view’ to the playlist list. In Ozone, you can select it from the left popup toolbar. In XMB it will show up next to your playlists. NOTE: You can currently not rename views from within the application.

    Android – Haptic feedback for touch overlays

    Courtesy of neil4 who implemented this great feature
    This repurposes the setting ‘Vibrate On Key Press’, which previously enabled a 16ms vibration on any screen touch.

    Now the device’s standard keypress feedback is triggered on overlay key/button state changes, except when a finger leaves the screen.

    It’s currently only implemented for Android, but it can potentially be implemented for other systems with haptic feedback later. It’s not enabled by default for now so you will have to enable it manually. To do this, go to Settings -> Input -> Haptic Feedback/Vibration, and enable ‘Vibrate On Key Press’.

    iOS 13+ port

    The iOS ARM64 port is completely revamped and targets iOS 13 and later now. It leverages Swift and it has some unique features.

    iOS 13+ port now has a toolbar which lets you pull up an onscreen keyboard
    iOS 13+ port now has a toolbar which lets you pull up an onscreen keyboard

    For instance, it adds support for revealing the onscreen keyboard and enabling touch screen mouse input by adding a toolbar that is revealed by tapping the top of the screen.

    There is also now an iOS 16 lockscreen widget.

    WiiU improvements

    Some important WiiU platform improvements. Default directories should now be created on the fly (fixing a longstanding issue), and some of the networking issues that popped up in 1.11.x have now been fixed.

    Changelog

    1.12.0

    • CONFIG/CLI: Allow use of –appendconfig with override cfgs instead of getting ignored
    • CONFIG/LOGGING: No more console startup logging if logging to file
    • CONFIG: Saves config on exit only once instead of (worst case scenario) 3 times
    • DATABASE/EXPLORE/VIEW: Add View feature – Add saving of a filter set in the Explore menu into a so called “View” file which then gets listed alongside playlists. This also adds the ability to filter a category by range in the Explore menu and not just filter on exact matches.
    • FILEBROWSER: Fix regression – certain extensions keep disappearing
    • IOS: New modern iOS version (targeting iOS 13 and up), leverages Swift
    • IOS: Fixes to iOS toolbar
    • IOS16: Add iOS 16 lock screen widget
    • IOS13+: Added emulator keyboard
    • IOS13+: Add JIT support for non-jailbroken devices
    • IOS13+: Added support for touch mouse handler
    • IOS13+: Changed click-and-drag behavior to double tap hold and drag
    • INPUT/HAPTIC/OVERLAYS/ANDROID: Improve haptic feedback for input overlays
    • LINUX/MALI FBDEV: Add conditional support for OpenGL ES 3.x
    • LOCALIZATION: Updates
    • LOCALIZATION/ENGLISH: Add British English language option
    • LOGGING/QT: Increase log buffer to 2048 characters – Vulkan validation layer messages output correctly now.
    • MENU/XMB: Remember selection per main tabs. Addresses the following : collection playlists can contain hundreds or thousands of items. When scrolling through one, pressing left or right by accident can be common. This resets the playlist to the top
    • MIST/STEAM/STEAMDECK: Don’t expose Black Frame Insertion (BFI) if we are running on a Steam Deck
    • NETWORKING/WINDOWS: Disable poll support for MSVC 2010 and earlier. WSAPoll is not supported on Windows XP and earlier.
    • NETWORKING/WIIU: Fix socket_connect_with_timeout for WIIU
    • NETWORKING/WIIU: Fixes RetroAchievements login
    • NETWORKING/WIIU: Fixes other online updater functionality
    • SAVESTATES/NOTIFICATIONS: Add delay to savestate notifications, so that GPU savestate screenshots stay untouched
    • SAVESTATES/SCREENSHOTS: Avoid ‘video_gpu_screenshot’ with savestates. Allow GPU screenshots with savestates only when there is no other way of getting a screenshot.
    • SCREENSHOTS/VULKAN: Unload screenshot widget texture early. Fixes Vulkan crash when closing content while a screenshot widget is still on-screen
    • SCREENSHOTS/VULKAN: Fix screenshot widget crash when ticker animating
    • WAYLAND: Set correct app ID
    • WIIU: Add some missing default directories
    • WIIU: Get mkdir working on WiiU (directory creation)