RetroArch 1.6.9 -Released!

RetroArch 1.6.9 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store.

General changelog

– Audio: Fix the Audio DSP picker
– CHEEVOS: Add support for Atari Lynx cheevos.
– CHEEVOS: Add support for RetroAchievements Leaderboards.
– GUI: (MaterialUI) Fix crash that happened on context reset with Vulkan.
– GUI: (MaterialUI) Skip querying and drawing items that are not visible; Cache content height and bbox calculation.
– GUI: (MaterialUI) Fix entry box highlight calculation.
– GUI: (XMB) Skip drawing the fading list when it is already transparent. Optimization.
– GUI: (XMB) Comment out visible item calculation in xmb_draw_items().
– GUI: (RGUI) Prevent crashes when using a non-English language reliant on UTF8.
– GUI: Add menu option for OSD background color.
– GUI: Add menu option for OSD text color.
– GUI: Add menu option to remove frame count from OSD.
– GUI: Allow wraparound of int/float settings when pressing the left key
– INPUT/LIBRETRO: Add support for more mouse buttons (buttons 4/5)
– INPUT/LIBRETRO: Add support for analog buttons
– INPUT: Always show the controls menu even if descriptors are not set
– INPUT: Fix input descriptors not being set on cores that don’t implement the controllers interface
– INPUT: Apply descriptors only for the amount of cores the core supports
– INPUT: Implement keyboard to gamepad input remapping (limited to one gamepad device for now)
– INPUT: Fix absolute mouse move handling on the winraw driver
– INPUT: Ignore keyboard input if window is not active on udev driver
– INPUT: Sanitize the filenames of autoconfig profiles before saving
– LOBBIES: Fix crash on navigating left / right from the lobby menu
– LOCALIZATION: Update Dutch translation
– LOCALIZATION: Update Italian translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Portuguese-Brazilian translation.
– LOCALIZATION: Update Russian translation.
– LINUX/ARMHF: Set buildbot updater URL to armhf location instead of blank string
– LINUX/PI: Broadcom VC4: Add Videocore config option
– LINUX/UDEV: Fix – RetroArch reads keyboard input when not focused with the udev input driver.
– NETPLAY: Fix disconnection not fully deinitializing Netplay.
– NETPLAY: Fix lan rooms when there is more than one room
– NETPLAY: Fix lan rooms on systems where all addresses are treated as IPv6
– COMMON: Fix clear/free loop conditionals in playlists.
– WINDOWS/GDI: Fix flickering of text.
– WINDOWS/GDI: Fix graphics corruption on Windows 98
– WINDOWS/GDI: Allow compiling without DirectInput8 for NT support
– WINDOWS/WGL: Try to use wglSwapLayerBuffers instead of SwapBuffers if possible (for more optimal performance).
– WINDOWS: Fix menubar text corruption on Japanese locale systems
– WINDOWS: Support Unicode file I/O (can now display CJK characters in file browser for example).
– WINDOWS: Support Windows 95, NT3.51, NT4
– WINDOWS: add Makefile.griffin targets for msvc6,2003,2005,2010,2012,2013
– WII: Use custom, embedded libogc SDK.
– WIIU: Initial touchscreen support for WiiU gamepad.
– WIIU: Add Cheevos support.
– SCANNER: Fix archive scanning.
– SCANNER: Support CHD files.
– SCANNER: Support Gamecube ISO scanning.
– SCANNER: Use primary data track of disc images for CRC lookups rather than cue files. This is slower but finds matches more reliably, and is necessary for CHD files to work at all. Update your databases!
– SCANNER: Fall back on looking inside archives when matching MAME/FBA content (most recent cores only). If you had difficulty with content being detected before, you may have better luck now. Update your databases and core info!

Highlights

Scanner system supports more formats

CHD and Gamecube ISO files can now be scanned. A lot of libretro cores have gained the ability to use CHD image files, some of them being all the Mednafen-derived cores (also known as Beetle cores). There is also a new fallback used for scanning MAME/FBA content which looks inside an archive for matching files. If you had trouble having the scanner detect your content before, you might be more usccessful now.

Retro Achievements – Leaderboard support

Unicode support for Windows users

Unicode is now supported for file I/O (Input/Output). What this means, is that game content that uses CJK characters and/or other non-ASCII characters can now be read by RetroArch. These files will also show up from within the filebrowser. Useful for our Japanese users.

NOTE: MaterialUI (the default UI on Android) might still exhibit issues displaying Japanese on Android. This is due to a font renderer that will need to be improved in a future version in order to display these extra characters properly.

Kiosk Mode and more


You can now tailor RetroArch’s UI even more to your own personal preferences. You can choose which submenus to hide, and which to show.

There’s also a special mode called ‘Kiosk Mode’. When enabled, you won’t be able to access any settings, and/or install/upgrade any cores. The guy who implemented this feature likely intended it as a parental control feature to make sure that kids don’t get to mess with any of the internal settings by accident that could end up breaking something. There’s also a password lock you can enable so that any access to settings can still be curtailed.

See the PDF article here for a more detailed breakdown of Kiosk Mode –

https://github.com/libretro/RetroArch/files/1320429/RetroArch.Kiosk.Mode.v4.pdf

Input enhancements


The libretro API has been enhanced by David Walters in the following ways:

  • Button input was previously all-digital, now button input can be analog as well. As a proof of concept, this has already been implemented for the Beetle Saturn core. Analog triggers now work as expected. This feature will be necessary for future systems like PlayStation2, where each face button on the gamepad was an analogue button.
  • Mouse buttons 4 and 5 were added. A proof of concept has already been implemented for Beetle Saturn. The mouse on the Sega Saturn had at least 5 buttons instead of the PlayStation mouse’s 2.


Mouse support and lightgun support has also been added to Beetle PSX, a much-requested feature. There are also some proposals on how to improve lightgun support in libretro so that it is more conducive to non-mouse based lightgun solutions. As ever, additions to the libretro API have to be backwards compatible and they should not break ABI, so that existing frontends will not be adversely affected but at the same time new frontends can reap the benefits of these new features all the same.

What’s coming next for RetroArch

We will have a separate blog post on this soon.

In the meantime, check out the addendum to this post –

https://www.libretro.com/index.php/core-updates-since-last-release/

This details all of the changes to the cores that have happened since the last release.

Core Updates Since Last Release (v1.6.7)

In anticipation of RetroArch 1.6.8, let’s detail all the work that has been performed on the libretro cores since the last frontend release (1.6.7).

higan

Themaister came out of retirement to collaborate with byuu on an upstream-friendly libretro-ization of higan. Currently, only the SNES emulator is available, but we hope to extend this to include all of his suite of emulators. Only the mainline ‘accuracy’ profile is available from the Online Updater currently, but we hope to add hex_usr’s ‘balanced’ profile soon. In the meantime, you can get it pre-compiled for Windows from his nSide github repo.
Notably, the higan core includes Super Game Boy support, including all special features, such as borders and music. Instructions for setting it up are here.

Yabause

raelgc has backported many commits from upstream, including a ton of accuracy and performance improvements.

Citra

j-selby has been keeping the libretro core up-to-date with upstream’s amazing progress. The version available in the online updater is lagging behind these updates a bit, since the buildbot is having trouble building it lately, but we hope to have this resolved soon. We also hope to get the recently announced network support hooked up to the libretro core, but no promises there.

PicoDrive

notaz provided a massive update to bring the libretro core up to date with upstream. This update included many accuracy improvements, along with some nice features like 68k overclocking.

mGBA

sergiobenrocha2 did the legwork to merge/update mgba-libretro to match the upstream 0.6.1 release, including a big pile of accuracy fixes from endrift.

Snes9x-git

hunterk backported qwertymodo’s MSU1 fixes, which should alleviate the crackling that some users reported, especially on Android devices, and he also added RTC support for the recently completed Tengai Makyo Zero (Far East of Eden: Zero) translation.

In addition to this, a hack got backported from Snes9x2010 which should prevent an annoying resolution flicker which occurs when switching from field mode to battle mode in the game Chrono Trigger.

Snes9x2010

Upstream Snes9x dev OV2 provided a patch to check for invalid VRAM access, which makes Hook work without massive artifacting.

ParaLLEl-N64

Massive amount of work from mudlord, AIO, bparker and Twinaphex to get the threaded angrylion RDP integrated. It started as a port of the angrylion-plus-rdp plugin, but the libretro version is now quite different, including being a true software renderer (that is, compatible with all video driver backends, including d3d). This plugin is very fast in Windows, reaching full speed on relatively modest CPUs, while Linux is only slightly faster than non-threaded angrylion. We hope to identify what’s holding back performance on non-MSVC compilers in the near future.

Beetle-Saturn

hiddenasbestos brought the libretro port up to parity with upstream v0.9.47 v0.9.48, which gives a few ton of nice accuracy improvements and the much-awaited savestate support (savestates made with the v0.9.47 version are not compatible with the v0.9.48 update, so beware if you made a bunch of states in the short time between updates). Tatsuya79 and retro-wertz provided a number of improvements to the overscan and cropping behavior.

Beetle-PSX

bkoropoff and simias did a lot of work on the CD reading code, including reduced stuttering during reading and a core option for increased CD loading speed. This *greatly* reduces the loading times on games, from the standard 15-30 seconds down to as low as 2-3 seconds. Do note that this is very much an experimental feature though, and it won’t work correctly for all games. r5 also added the ability to use unsupported BIOS files, which should make the core a little less picky about BIOSes. simias also backported new and improved triangle code from upstream, which unfortunately causes some issues with the PGXP features in some games. Zapeth also added support for CHD files.

Beetle-SuperGrafx

retro-wertz aded support for cheevos/RetroAchievements.

MAME

r-type continued his fantastic stewardship of the up-to-date MAME core, keeping it in lockstep with upstream releases.

MAME2016

Oggom backported support for the awesome sidescrolling Cave shmup Akai Katana, support for which was just added to upstream mainline MAME.

MAME2003

gamez-fan has been backporting dozens of patches and drivers from later versions of MAME to make more games work (or work better) with this core. markwkidd also fixed up a lot of the core’s reporting to correctly distinguish between working and nonworking games.

MAME2003_Midway

gamez-fan added in some speedhacks and fixed Rampage World Tour for this low-power spinoff of mame2003.

Final Burn Alpha

barbudreadmon continued his stewardship of Final Burn Alpha, bringing in many fixes from upstream and fine-tuning controls for specific problematic games.

FBAlpha2012

sergiobenrocha2 backported many fixes from the mainline FBA core for this low-power spinoff.

VICE

tschak909 added support for loading VIC-20 games. r-type improved screen resizing and handling for PAL/NTSC regions.

MrBoom

frranck greatly improved the AI in MrBoom, making it possibly the most advanced Bomberman AI in existence.

blueMSX

meepingsnesroms added disk swapping and, along with Tatsuya79, provided some nice quality of life improvements for this core, including machine auto-selection.

NP2Kai

AZO234 added a number of improvements to this core, including support for more disk formats (floppy and SCSI HDD), sound fixes and new soundcards and better savestate support.

Genesis Plus GX

nukeykt added a fantastic, cycle-accurate sound core. The older, MAME-derived core is still available for low-power devices. bkoropoff also added support for overclocking and the ability to remove per-line sprite limits (i.e., the cause of sprite-flickering).

gw-libretro

leiradel fixed some issues with high scores not updating properly and controller popups appearing behind game sprites.

FCEUmm

retro-wertz continued his work on this core, providing many fixes and updates for the mapper code, as well as greatly improving the Zapper functionality.

SameBoy

radius worked with LIJI32 to get the libretro-ization upstreamed in this extremely accurate Game Boy emulator. radius also hooked up savestates and SRAM/in-game saves, along with a variety of options that weren’t previously exposed to the libretro port, such as audio and video tweaks and rumble, while leiradel added cheevos/RetroAchievements support.

melonDS

radius worked to keep this core in lockstep with upstream. hunterk fixed an issue that was causing the red and blue color channels to be swapped and also closed a significant memory leak.

DeSmuME

moose65468 fixed loading Dragon Quest 5.

Nestopia

meepingsnesroms added support for 2x overclocking, while rdanbrook added preliminary Famicom Mic support (get ready to yell at those Pols Voices) and Tatsuya79 provided some edge-case fixes for Zapper functionality.

Atari800

nanoant fixed building on Android and made the core look for BIOS ROMs in the libretro ‘system’ directory, which puts this core more in-line with good libretro behavior. Meanwhile, r-type added support for more keys.

PPSSPP

Twinaphex collaborated with hrydgard to get an updated PPSSPP core ported over and to upstream a few things that should make it easier for the libretro port to stay up-to-date.

PCSX-ReARMed

meepingsnesroms fixed some polygon issues and radius fixed building this core for Windows. However, it’s still not something people should use on non-ARM hardware for general purposes.

DOSBox

Tatsuya79 fixed an annoying key-repeat bug.

Across many cores, bparker added support for Travis continuous integration, so we can better determine whether commits will break building on the many platforms we support, yoshisuga added support for arm64 builds on iOS targets and radius added support for mapping cores’ keyboard keys to the retropad, which is very useful for classic computing cores. Also, retro-wertz fixed a bug that prevented the beetle-* cores from cleaning up after themselves when loading zipped ROMs.

Parallel N64 Multithreaded Angrylion update

Here is a quick update on some new patches we have pushed to the Parallel N64 core –

1 – You can now get anywhere from a 6fps (conservative) to a 10fps or more performance boost with multithreaded Angrylion core by enabling a new option called ‘Send Audio Lists To RSP HLE’. Instead of sending audio lists to the low-level RSP plugin (cxd4), it will instead send these to the HLE (High-Level Emulated) RSP plugin instead. Note: If a game does not use the RSP for audio processing, you will not notice a speedup by enabling this. Nevertheless – many games benefit from this already.

NOTE: Indiana Jones and the Infernal Machine might have bad audio with this option enabled, my guess is that the MusyX HLE audio code is still not perfect or we need to have something backported still to make it so. Will look into that tomorrow.

2 – We followed the advice of ata8 (the original Angrylion RDP Plus plugin) and refactored some of the RDRAM code. As a result we are getting a very minor performance boost now on Linux. It’s still not anywhere near it should be compared to the Windows version but it is an improvement nonetheless –

Mario 64 – VI overlay on – 77fps (after) instead of 72fps (before)
Mario 64 – VI overlay off – 87fps (after) instead of 84fps (before)

Hope you enjoy these low-hanging fruit performance gains. Back to getting RetroArch 1.6.8 ready!

RetroArch Snap Packages Now Available

Adding to our existing FlatPak packages for distro-independent installation, RetroArch is now available as a snap package, as well. We’re using Canonical’s SnapCraft.io build service, which produces i386, x86_64 and armhf builds. Canonical’s official instructions for installing snap packages on a variety of distros are available here:

https://snapcraft.io/docs/core/install

If you already have the snap package manager installed, you can download the snap package directly from uApp Explorer:

https://uappexplorer.com/snap/ubuntu/retroarch

and Ubuntu users can search for and install RetroArch directly from the Ubuntu Software store:

If you run into any issues with the snap package, please report them at the retroarch-snap meta-repo, located here:

https://github.com/libretro/retroarch-snap

This package includes assets, database, cheats, joypad autoconfig, info cores, overlay and shaders. After installation, you’ll also need to connect 2 interfaces to get joysticks working:

sudo snap connect retroarch:raw-usb

sudo snap connect retroarch:joystick

If you’re going to use any cores that require BIOS files, you’ll probably want to stop by settings > directory and select a system/BIOS directory, as well. Other than that, you should be good to go!

Atari800 Core Improvements

Thomas Cherryhomes has been hacking on the atari800 libretro core. Atari800 is an emulator that supports the Atari 8-bit computers and game systems. Much needed core options have been added to improve the overall user experience, including:

* System type (400/800, 800XL, 130XE, and Atari 5200)
* Video Standard (NTSC or PAL)
* SIO Accelleration (while this improves boot time, many copy protected games will fail to load if this is enabled)
* Internal BASIC (so that games that need BASIC can be played)
* Hi-Res artifacting (for NTSC games that utilize the high-resolution faux color artifacting, such as Choplifter!, and Drol)
* Boot from Cassette (needed for bootable cassette titles)

State saving is coming soon, not quite debugged yet, as well as trying to find the best way to add the keypads for the Atari 5200 controllers, with an eye to extending such support for other game systems of the same vintage that also sported keypads on their joysticks. Also, some build targets are not compiling (e.g. Wii, PS3, etc.), and this needs to be fixed.

The changes thus far, with the exception of the preceding paragraph have been merged upstream and accepted.

RetroArch 1.6.7 -Released!

NOTE: This is a bugfixed and spit-and-polish update. The initial release notes below are still from the 1.6.6 release.

RetroArch 1.6.7 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store.

General changelog

– SCANNER: Fix directory scanning.
– SCANNER: Fix file scanning.
– COMMON: Fix ‘Disk Image Append’ option.
– FREEBSD: Compatibility fixes for Video4Linux2 camera driver.
– GUI: (MaterialUI) Add disk image append icons.
– GUI: (MaterialUI) Improve word wrapping when menu icons are enabled.
– GUI: (MaterialUI) Add User Interface -> Appearance -> Menu Icons Enable. You can turn on/off the icons on the lefthand side of the menu entries.
– GUI: Performance optimizations for XMB menu driver – only calculates visible items.
– LOCALIZATION: Update Italian translation.

Core updates since previous version (1.6.6)

  1. Picodrive should hopefully work now again on Android after notaz‘ updates.
  2. Beetle PSX’s OpenGL renderer should now work on various AMD GPUs thanks to rz5‘s efforts. There were previously some black screen issues on certain non-Polaris AMD GPUs.
  3. Beetle PSX – Fixed bugs (geometry updates had max width and height unset, other ones) (by albertofustinoni).
  4. Beetle Saturn – Unloading game leaves core unusable fix (by albertofustinoni).
  5. Beetle Supergrafx – add turbo on/off for 2-button controller mode (by retrowertz).
  6. Prosystem – NTSC Color Palette updates and DB updates (by underball).

RetroArch 1.6.6 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store.

General changelog

– 3DS: Fixes serious performance regression that affected every core; rewind was always implicitly enabled.
– AUDIO: MOD/S3M/XM sound should now be properly mixed in with the core’s sound.
– GUI: Visual makeover of MaterialUI.
– GUI: Added ‘Music’, ‘Images’ and ‘Video’ collection options to RGUI/MaterialUI.
– GUI: Allow the user to add ‘Favorites’.
– GUI: Allow the user to rename entries.
– GUI: Performance optimizations for XMB menu driver.
– LOCALIZATION: Update Italian translation
– INPUT: Overlay controller response – when we press buttons on the gamepad or keyboard, the corresponding buttons on the overlay will be highlighted as well.
– NETBSD: Silence some compilation warnings.
– COMMON: Fixed bug ‘Deleting an entry from a playlist would not update the list view inside XMB’.
– COMMON: Fix inet_ntop_compat on *nix

If you want to read about the latest bounty and core updates, read this post instead here.

Complete overhaul of the mobile User Interface! (MaterialUI)

On mobile devices, RetroArch uses the mobile UI, MaterialUI, by default. This interface is designed around touchscreen and pointer devices like a mouse/trackball.

We have given this menu interface a significant overhaul now for version 1.6.6! We are aware that there is a significant percentage of people that to date have been completely unsatisfied with the current state of the menu system on mobile devices like Android and iOS. Our menu UI improvements in version 1.6.6 is our first step to try to remedy this. In later releases, we might follow it up with more elaborate animations, more advanced widgets, etc.

The menu should look less monotonous now due to the usage of context-specific icons. We have also made some other UX improvements:

– The opacity of the game’s image clashed quite badly with the ingame menu before. This has been rectified.
– We have added ‘Music’, ‘Image’ and ‘Video’ playlists to the ‘Favorites’ tab.

Music, Video and Images which have previously been loaded in RetroArch can be easily accessed from the Playlists tab now.
Music, Video and Images which have previously been loaded in RetroArch can be easily accessed from the Playlists tab now.

– The file browser is easier to read now because files show up with specific icons to indicate what they are. For instance, music files have a music icon, a directory has a folder icon, selectable content files show up as a plain file, etc.

The file browser is easier to read now because files show up with specific icons to indicate what they are. For instance, music files have a music icon, a directory has a folder icon, selectable content files show up as a plain file, etc.
The file browser is easier to read now because files show up with specific icons to indicate what they are. For instance, music files have a music icon, a directory has a folder icon, selectable content files show up as a plain file, etc.

Usability tips

You can customize the color theme of the menu in MaterialUI at any time.

1 – Go to User Interface.
2 – Go to Views.
3 – Go to ‘Menu Color Theme’ and set it to the color theme you want.

General menu improvements

Favorites

You can now add a game to a ‘Favorites’ list for easy access! This has been an often-requested feature for years, and in the past we always felt that ‘Load Recent’ was good enough. However, if you load a lot of content, that can easily get cluttered over time.

To add a game to the Favorites list, do the following:
1 – Once a game is running, go to ‘Quick Menu’.
2 – Select ‘Add To Favorites’.
3 – Once added, you can now start the game at any time from the Favorites list.

On RGUI – go to Load Content -> Favorites.
On MaterialUI – go to the Playlists tab -> Favorites.
On XMB – go to the Favorites tab.

To add a game to the 'favorites' list, inside Quick Menu, select 'Add To Favorites'. It should now be added to the Favorites list. You can access the 'Favorites' list inside MaterialUI by going to the Playlists tab. On RGUI, you go to Load Content -> Favorites. On XMB, you go to the Favorites tab instead.
To add a game to the ‘favorites’ list, inside Quick Menu, select ‘Add To Favorites’. It should now be added to the Favorites list. You can access the ‘Favorites’ list inside MaterialUI by going to the Playlists tab. On RGUI, you go to Load Content -> Favorites. On XMB, you go to the Favorites tab instead.

Renaming entries inside playlists

You can now rename an entry from any playlist!

To do this, do the following:

1 – Go to a playlist of any type (it can be the history list, a system playlist, favorites, music/video/images playlists, etc).
2 – There should be an option called “Rename”. Select it. If you are using MaterialUI and/or XMB, an onscreen keyboard will now pop up. Input the new title for the entry and then hit either the Enter key on your keyboard ,the Start button on your gamepad or press the ‘Enter’ key on the onscreen overlay in order to confirm the changes.

You can now rename any entry! Say for instance you loaded a Quake data file. Instead of the playlist showing 'PAK0.PAK', you can rename it to Quake 1 instead.
You can now rename any entry! Say for instance you loaded a Quake data file. Instead of the playlist showing ‘PAK0.PAK’, you can rename it to Quake 1 instead.

Overlays show button presses

Previously, overlays would only show button presses if they were actually being clicked on by either the touchscreen or the mouse.

A user submitted a bounty to make onscreen reactions possible through the gamepad and/or keyboard. A bounty hunter has now successfully completed this bounty and has been paid out. We have enabled this feature by default. If you want to turn it off, you can do so by doing the following:

1 – Go to Onscreen Display -> Onscreen Overlay.
2 – Go to ‘Show Inputs on Overlay’. Set this to off if you don’t want the overlay to react to keyboard/gamepad input, turn it on if you want this to happen (turned on by default).

Nintendo 3DS regression fix – all cores were running slower

A serious issue has been fixed in the Nintendo 3DS RetroArch port which compelled us to push this release sooner rather than later.

It appears that by mistake, rewind was always forcibly enabled in the 3DS port, which led to a halving of performance. This should now be fixed.

What’s next?

The new cores

We are still determined to get the promised cores like PPSSPP into your hands before the end of the month. We just felt it very important to get this release out of the door so that people can see that we are determined to improve the menu on mobile, and also so that the 3DS RetroArch port is repaired again.

Wii input fix

Finally, after years of struggling with this very pesky issue, it seems we are on the verge of a breaktrhough here that could lead to this random input issue finally being fixed –

https://github.com/SuperrSonic/RA-SS/commit/29d6467d28a835136b8ab87e209feb34421983ff

it seems there was a regression in libogc at some point which lead to this input regression. Superssonic reports that going back to an older version of Wiiuse fixes the issue. What we are probably going to do is make a custom baked-in libogc version for the Wii port for the next release.

RetroArch 1.6.6 – Released!

RetroArch 1.6.6 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store.

General changelog

– 3DS: Fixes serious performance regression that affected every core; rewind was always implicitly enabled.
– AUDIO: MOD/S3M/XM sound should now be properly mixed in with the core’s sound.
– GUI: Visual makeover of MaterialUI.
– GUI: Added ‘Music’, ‘Images’ and ‘Video’ collection options to RGUI/MaterialUI.
– GUI: Allow the user to add ‘Favorites’.
– GUI: Allow the user to rename entries.
– GUI: Performance optimizations for XMB menu driver.
– LOCALIZATION: Update Italian translation
– INPUT: Overlay controller response – when we press buttons on the gamepad or keyboard, the corresponding buttons on the overlay will be highlighted as well.
– NETBSD: Silence some compilation warnings.
– COMMON: Fixed bug ‘Deleting an entry from a playlist would not update the list view inside XMB’.
– COMMON: Fix inet_ntop_compat on *nix

If you want to read about the latest bounty and core updates, read this post instead here.

Complete overhaul of the mobile User Interface! (MaterialUI)

On mobile devices, RetroArch uses the mobile UI, MaterialUI, by default. This interface is designed around touchscreen and pointer devices like a mouse/trackball.

We have given this menu interface a significant overhaul now for version 1.6.6! We are aware that there is a significant percentage of people that to date have been completely unsatisfied with the current state of the menu system on mobile devices like Android and iOS. Our menu UI improvements in version 1.6.6 is our first step to try to remedy this. In later releases, we might follow it up with more elaborate animations, more advanced widgets, etc.

The menu should look less monotonous now due to the usage of context-specific icons. We have also made some other UX improvements:

– The opacity of the game’s image clashed quite badly with the ingame menu before. This has been rectified.
– We have added ‘Music’, ‘Image’ and ‘Video’ playlists to the ‘Favorites’ tab.

Music, Video and Images which have previously been loaded in RetroArch can be easily accessed from the Playlists tab now.
Music, Video and Images which have previously been loaded in RetroArch can be easily accessed from the Playlists tab now.

– The file browser is easier to read now because files show up with specific icons to indicate what they are. For instance, music files have a music icon, a directory has a folder icon, selectable content files show up as a plain file, etc.

The file browser is easier to read now because files show up with specific icons to indicate what they are. For instance, music files have a music icon, a directory has a folder icon, selectable content files show up as a plain file, etc.
The file browser is easier to read now because files show up with specific icons to indicate what they are. For instance, music files have a music icon, a directory has a folder icon, selectable content files show up as a plain file, etc.

Usability tips

You can customize the color theme of the menu in MaterialUI at any time.

1 – Go to User Interface.
2 – Go to Views.
3 – Go to ‘Menu Color Theme’ and set it to the color theme you want.

General menu improvements

Favorites

You can now add a game to a ‘Favorites’ list for easy access! This has been an often-requested feature for years, and in the past we always felt that ‘Load Recent’ was good enough. However, if you load a lot of content, that can easily get cluttered over time.

To add a game to the Favorites list, do the following:
1 – Once a game is running, go to ‘Quick Menu’.
2 – Select ‘Add To Favorites’.
3 – Once added, you can now start the game at any time from the Favorites list.

On RGUI – go to Load Content -> Favorites.
On MaterialUI – go to the Playlists tab -> Favorites.
On XMB – go to the Favorites tab.

To add a game to the 'favorites' list, inside Quick Menu, select 'Add To Favorites'. It should now be added to the Favorites list. You can access the 'Favorites' list inside MaterialUI by going to the Playlists tab. On RGUI, you go to Load Content -> Favorites. On XMB, you go to the Favorites tab instead.
To add a game to the ‘favorites’ list, inside Quick Menu, select ‘Add To Favorites’. It should now be added to the Favorites list. You can access the ‘Favorites’ list inside MaterialUI by going to the Playlists tab. On RGUI, you go to Load Content -> Favorites. On XMB, you go to the Favorites tab instead.

Renaming entries inside playlists

You can now rename an entry from any playlist!

To do this, do the following:

1 – Go to a playlist of any type (it can be the history list, a system playlist, favorites, music/video/images playlists, etc).
2 – There should be an option called “Rename”. Select it. If you are using MaterialUI and/or XMB, an onscreen keyboard will now pop up. Input the new title for the entry and then hit either the Enter key on your keyboard ,the Start button on your gamepad or press the ‘Enter’ key on the onscreen overlay in order to confirm the changes.

You can now rename any entry! Say for instance you loaded a Quake data file. Instead of the playlist showing 'PAK0.PAK', you can rename it to Quake 1 instead.
You can now rename any entry! Say for instance you loaded a Quake data file. Instead of the playlist showing ‘PAK0.PAK’, you can rename it to Quake 1 instead.

Overlays show button presses

Previously, overlays would only show button presses if they were actually being clicked on by either the touchscreen or the mouse.

A user submitted a bounty to make onscreen reactions possible through the gamepad and/or keyboard. A bounty hunter has now successfully completed this bounty and has been paid out. We have enabled this feature by default. If you want to turn it off, you can do so by doing the following:

1 – Go to Onscreen Display -> Onscreen Overlay.
2 – Go to ‘Show Inputs on Overlay’. Set this to off if you don’t want the overlay to react to keyboard/gamepad input, turn it on if you want this to happen (turned on by default).

Nintendo 3DS regression fix – all cores were running slower

A serious issue has been fixed in the Nintendo 3DS RetroArch port which compelled us to push this release sooner rather than later.

It appears that by mistake, rewind was always forcibly enabled in the 3DS port, which led to a halving of performance. This should now be fixed.

What’s next?

The new cores

We are still determined to get the promised cores like PPSSPP into your hands before the end of the month. We just felt it very important to get this release out of the door so that people can see that we are determined to improve the menu on mobile, and also so that the 3DS RetroArch port is repaired again.

Wii input fix

Finally, after years of struggling with this very pesky issue, it seems we are on the verge of a breaktrhough here that could lead to this random input issue finally being fixed –

https://github.com/SuperrSonic/RA-SS/commit/29d6467d28a835136b8ab87e209feb34421983ff

it seems there was a regression in libogc at some point which lead to this input regression. Superssonic reports that going back to an older version of Wiiuse fixes the issue. What we are probably going to do is make a custom baked-in libogc version for the Wii port for the next release.

RetroArch 1.6.4 – Released!

RetroArch 1.6.4 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store. You might see it appear on the Amazon App Store soon too!

General changelog

ANDROID: Fire Stick & Fire TV remote overrides gamepad port 0 on button press and viceversa like SHIELD devices
ANDROID: Provide default save / system / state / screenshot locations
AUDIO: Audio mixer supports MOD/S3M/XM file types now!
INPUT: input swap override flag (for remotes) is cleared correctly
INPUT: allow specifying libretro device in remap files
INPUT: allow specifying analog dpad mode in remap files
INPUT: allow saving libretro device to remap files
INPUT: allow saving analog dpad mode to remap files
INPUT: allow removing core and game remap files from the menu
COMMON: Cores can now request to set a ‘shared context’. You no longer need to explicitly enable ‘Shared Hardware Context’ for Citra/OpenLara/Dolphin.
COMMON: Add ‘Delete Core’ option to Core Information menu.
COMMON: Allow Max Timing Skew to be set to 0.
COMMON: Change the “content dir” behavior so it works on either a flag or an empty directory setting, now platform drivers can provide defaults for save / system / state / screenshot dirs and still allow the content dir functionality, these settings are under settings / saving and flagged as advanced
GUI: You can turn on/off ‘Horizontal Animation’ now for the XMB menu. Turning animations off can result in a performance boost.
GUI: Fix sublabel word-wrapping in XMB where multi-byte languages were cut off too soon
LOCALIZATION: Update Dutch translation
LOCALIZATION: Update Traditional Chinese translation
LOCALIZATION: Update Italian translation
LOCALIZATION: Update Russian translation
WINDOWS: Provide default save / system / state / screenshot locations
LOBBIES: Show what country the host is in
MENU: Enable OSD text rendering for gdi and libcaca drivers
WINDOWS 98/ME/2K: Set default directory for MSVC 2005 RetroArch version.
WII: Better V-Sync handling, backported from SuperrSonic.
WIIU: Exception handler rewritten.

Bounty system gathering steam!

Several bounties have either been completed over the past few days or are nearing completion. Let’s cover a few of them.

In case you’re interested, here is a list of bounties we are currently funding which still have yet to be completed and where you could come in. Check out this list here.

Play MOD / S3M / XM files music files now in-game!


Remember that audio mixer we added a few releases back? This allows you to have external music files playing while any core/game is running. So far, you could only play Wave (WAV) and Ogg Vorbis files with this feature, but now you can playback Mod files too!

Developer Romain Tisserand did the leg work on this bounty, and the nice thing about it being added to libretro-common is that the improvements and additions made to the audio mixer can be used now by either the libretro cores and/or the frontend, RetroArch in this case!

How to use this feature – simply go to ‘Load Content’, and select any MOD/S3M/XM/WAV/OGG file on your file system. Select ‘Add To Audio Mixer’. If you are using the XMB menu driver, it will now be added to the horizontal menu’s ‘Music’ tab.

Start up any core/game now. At any point in time while playing, go back to the music, go to the main menu, go to the Music tab, select any of the music files and choose ‘Add to audio mixer’. Toggle the menu again to go back to the game and you can hear the music being mixed in with the game’s sound.

TIP: You can mix several music files at the same time! You can run up to 8 music files together at the same time. As ever, RetroArch allows you power features beyond what is commonly offered.

MAME CHD support for Beetle Saturn / PC Engine Fast!

This bounty came about when several users saw the value in more emulators being able to read MAME CHD images and chipped in the funds for a bounty.

Developers Romain Tisserand and inolen (Redream) have written a new C-based library called libchdr. This should interface with CHD images. After the library was written, Romain decided to put the work in to backport CHD support to the Mednafen-based cores, Beetle Saturn and PC Engine Fast.

This means that both the Mednafen Saturn and PC Engine Fast cores can now read MAME CHD images! MAME CHD is a compressed image file which can save a ton of storage for disc/CD-ROM based images. The implementation also supports FLAC support for redbook audio.

New bounties have been created for more cores to have this compatibility, such as Genesis Plus GX (and Eke seems interested in having this in his upstream repository as well). This is just one of the ways in which we think bounties can trickle down beneficially to downstream projects as well.

The upshot in all this is that pretty soon it could be possible to use the same MAME CHD image sets for both MAME and these various cores. More interoperability between cores is definitely a good thing to see.

MAME 2003 – DCS sound issues fixed! Proper sound now in Mortal Kombat/NBA Jam/WWF Wrestlemania!


For a long time, the MAME 2003 core has suffered from an issue where the sound could deteroriate after a couple of minutes for about 30 seconds before restoring itself. This would happen in Midway DCS-based games such as Mortal Kombat 1/2/3/Ultimate, NBA Jam, etc.

A bounty had been submitted by dankcushions some time ago and finally this bounty is on the verge of being completed! It should finally be possible to play these games at fullspeed on something as low-fi as a Raspberry Pi without being put out of the game by sound bugs and being reminded you are running an inaccurate emulated version of the game.

New big bounty for Beetle PSX upcoming in next few days – dynarec!

For quite some months now, a bounty has existed for Beetle PSX which has steadily increased in value. Up to $250 now, the pledgers are asking a developer to create a dynamic recompiler for the Wii U system in hopes of being able to run PlayStation games at fullspeed.

Unfortunately, we think that in order for this bounty to first get traction, some groundwork needs to be laid out first. Right now, Beetle PSX has no dynarec system in place at all, only a CPU interpreter. Therefore, it would be very hard for a developer to start right out of the gates with a PowerPC-based dynarec since no framework is in place yet that would allow him/her to slot in a dynarec backend like this.

So, what we are going to do is we want to sweeten the pot a bit and create a new bounty dedicated solely to building a dynarec. We believe that once the groundwork is laid out, this WiiU dynarec bounty has more chance of being successfully completed.

The conditions will be:
* A dynarec system for Beetle PSX, preferably written in C or else C++98.
* A working backend for x86 32bit and x64 (64-bit).
* Should be engineered in such a way that new backend implementations for other architectures (like ARM and PowerPC) can be easily implemented.
* Should be signifcantly faster than the interpreter CPU core, and should lower Mednafen/Beetle PSX’s CPU system requirements considerably.

We will start out this new bounty at $100. Other users can feel free to chip in on this endeavor. You will see this bounty being announced over the next few days.

Release highlights

Windows 98 SE/2000/Millennium Edition version – now with 29 cores!


So we announced a Visual Studio 2005 version of RetroArch this past week which runs on Windows 98 SE / Millennium / 2000. Upon release however, there were no cores.

We now have 29 cores available on our buildbot! You can get them by starting your copy of RetroArch 1.6.4 and going to Online Updater -> Update Cores. Note that because it’s Visual Studio 2005/MSVC2005 we are relying on as our compiler, certain cores might never become available for this. For instance, cores that rely on C11 (like SameBoy) or C++11/C++14 (like Dinothawr/Dolphin/Citra) will not make the cut. Fortunately, most of our cores can happily compile as either C89 and/or C++98, so backporting is not as big an issue for it as it would be for other projects which are not as careful when it comes to code maintenance.

Here are some general hints and advice in case you want to run RetroArch on your retro battle station:
* Keep in mind that Windows 98 SE GPU drivers in most cases won’t support OpenGL 2.0. There is one exception apparently, which is the nVidia Geforce 6 series. This GPU series should support OpenGL 2.0 and there should still be drivers somewhere available for Windows 98. In case you have such a GPU, you could opt to use the OpenGL driver which should be more full-featured than our GDI and/or Direct3D9 drivers.
* In most cases, your GPU driver will probably support Direct3D 9. If you want to use Direct 3D 9, you should only use the menu driver RGUI with it. Neither MaterialUI and/or XMB will render properly as of yet with Direct3D.
* For lower-end GPU hardware where neither Direct3D 9 or OpenGL is desirable or possible (because you don’t have hardware accelerated 3D video drivers), a GDI video driver is also available. For this release, we added OSD font rendering to it. There are still issues remaining with this GDI driver though on certain OS configurations. Bparker might be able to use some help with getting some of those niggles sorted out. Reminder that if you want to use a menu driver with GDI, it’s best to use the RGUI menu driver.

RetroArch PlayStation3 version is getting nightlies!

Long overdue, but we are finally getting ready to start providing nightly support for RetroArch on PS3. This way, PS3 users can download the latest nightly version at all times and enjoy the latest improvements! This is not yet ready since we are going through some last-minute buildbot issues, but we expect this to be sorted out within the next few days.

Beetle Neo Geo Pocket Color (if the big endian patches are any indication) should have its controls fixed now!

We are also going to provide CEX/DEX builds from this point on instead of just the usual DEX builds like before.

Citra/OpenLara/Dolphin cores can now be easily used!

You no longer need to enable ‘Shared Hardware Context’ anymore in order to use these cores. RetroArch’s underlying API, the libretro API, has gained a new environment callback. The Citra/OpenLara/Dolphin cores make use of this to signify to the frontend that they need a shared hardware context.

A frontend can feel free to implement this or not, however, it goes without saying that cores which make use of this feature might simply not work correctly if left unimplemented.

Deleting cores

Installed a core, but you feel like you no longer need it? It’s now possible to delete it from within RetroArch.

How to do this –
1. Load the core.
2. Go to the main menu, and go to Information.
3. Select ‘Core Information’.
4. Select ‘Delete Core’ at the bottom of the list.

Configuration changes

Saving Stuff on Content Dir

The new behavior is to always provide a sane default directory for Saves, Savestates, System Files, and Screenshots. Windows and Android have been historically problematic in this regard since the content directory may not be writable at all times.
The old behavior relied on the setting strings being empty, now we provide a default value for these dirs on both Android and Windows which means the string will never be empty. Other platforms should follow this convention shortly.

So if you want to use content dir after 1.6.3 do the following:

  1. Navigate to Settings / User Interface
  2. Enable Show Advanced Settings
  3. Navigate to Settings / Saving
  4. Enabled the respective settings among the last four settings for the stuff you want to reside with your content

We apologize for any inconvenience this may cause to existing users but we need to make some changes to make progress.

Core Input Remapping Improvements

You can now delete core and game remaps from the Quick Menu.

Core Input Remapping has also been improved. The following will now be saved:
* The libretro device
* Analog Dpad mode

You can also save these in overrides but remaps is a far more convenient place for these.

Updates on cores

Read here what updates have been pushed to the cores since the last release –

As always, you can always install the latest version of every core from RetroArch’s builtin ‘Core Updater’ (accessible from the menu by going to ‘Online Updater’ -> ‘Update Cores’.

Retroarch on Amazon App Store coming soon!

We have often been begged by Amazon for years now to please publish RetroArch on the App Store. So far, we always felt the time was not right.

With this release, though, we have finally fixed a fundamental issue where using the Remote would make it no longer possible to use a gamepad as Player 1. This has now been rectified.

We will inform you when the Amazon App Store build has been published. For now, users can sideload it by just downloading the APK from our website.

What’s up next?

Priority number one absolutely right now is PPPSSPP and Supermodel. We are going to get that into your hands ASAP as promised.

After that,

* An AppImage version of RetroArch for Linux will be available soon.
* Lots of core work like we always do each week.
* More yet unannounced stuff? Stay tuned!

View this page if you’d like to explore donating to us. By popular demand, there is now the ability to send one-off donations through Bitcoin, and we have put up links so that you can directly send funds to the Bountysource bucket. You can also pledge to our Patreon.

NOTE: the OSX PowerPC version will be uploaded tomorrow. Thanks for your patience.

Core updates (since version 1.6.3)

Despite the short release cycle, there has been a fair bit of core work since the 1.6.3 release, including some significant contributions driven by the recently implemented bounty system. In no particular order:

  • r-type fixed Beetle NGP‘s longstanding bugs with big-endian architecture, which should allow that core to control properly on those architectures. He also fixed compilation of the atari800 and Hatari cores on Wii U and fixed some issues with the cap32 core on that platform.
  • Twinaphex and r5 continued overhauling Beetle PSX HW‘s OpenGL renderer, doing much behind-the-scenes work that isn’t particularly visible to end-users but should improve stability and lay the groundwork for future improvements.
  • Twinaphex also added MSVC2005 solutions for many cores, making them compatible with our Win98 port of RetroArch.
  • bparker fixed some memory and GL issues with the Craft Minecraft clone core, which should correct an issue where the core was crashing at launch for some people.
  • markwkidd backported C-based MIPS3 support to MAME2003, which gets Killer Instinct and Killer Instinct 2 working with this core. Without a MIPS dynarec, they’re too demanding for most ARM devices, unfortunately (Killer Instinct 1 is not quite full speed on my Shield ATV, while Killer Instinct 2 is pretty far from full speed; Raspberry Pi is, of course, not even close), but they should work fine on x86 and x86_64 devices.
  • Bounty hunter rtissera added CHD support to Beetle Saturn and Beetle PC Engine Fast – with plans to add support for this format to several other disc-based cores in the near future–and hooked up support for the Saturn’s 3D pad. He also fixed an issue with MAME 2003 with Midway DCS games that would lead to audio issues at set intervals. This should fix the sound in Mortal Kombat 1/2/3/Ultimate, NBA Jam, Total Carnage, etc. other games.
  • casdevel, another active bounty hunter, fixed mouse input in Desmume libretro.
  • albertofustinoni submitted changes for a variety of cores to make them compatible with his RetriX UWP libretro frontend, which is compatible with Windows 10, Windows Phone and Xbox One developer mode.
  • orbea committed some buildfixes for the early work-in-progress Basilisk2 core.
  • yoshisuga continued adding build targets for iOS ARM64 in various cores.
  • hunterk did the mind-numbing work of bisecting and correcting a regression in Snes9x Libretro that apparently broke the game Phalanx back in May.
  • psyke83 fixed a crash with Tyrquake that could happpen on Raspberry Pi-based devices (e..g. Retropie).
  • Citra / OpenLara / Dolphin will now work without having to explicitly enable ‘Shared Hardware Context’ in RetroArch.

RetroArch for Windows 98 SE/ME/2000 pre-release!

RetroArch for Windows 98 SE / Windows ME / Windows 2000 has just been released! Note that this will require cores specially made for it, and as of now there are none, so just consider this a pre-release for now!

Get it here!

Users should note: this is taking no time or resources away from the other stuff we are doing. Supermodel and PPSSPP cores are still being worked on, all our other work is still ongoing, so to repeat – this is not coming at the cost of other development!

Note that for these old operating systems, you might want to consider using the GDI video driver for optimal performance instead. Menu support is still premature though; XMB renders but with no textures and with dithered graphics, so for all practical purposes, the Direct3D driver is still the way to go here (with RGUI).