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

Recent Core Updates

As always, there have been many updates to various libretro cores from a number of contributors, some of whom are regular contributors and some of whom have never contributed to libretro projects before. Here are some of the highlights, in no particular order:

  • r5 and Twinaphex did a deep-dive on the Beetle PSX HW OpenGL renderer to resolve a host of issues that would lead to crashes whenever users messed with internal resolution and/or toggled fullscreen. Those context changes should now be handled gracefully and without any major issues.
  • RobLoach updated MelonDS to match StapleButter’s upstream v0.4 release and added to the ScummVM libretro core the ability to launch *.scummvm files located inside game directories. He also merged a variety of updates from upstream EasyRPG to the libretro core and added FFMMidi for MIDI support.
  • bparker snatched up the $50 bounty to fix a longstanding issue with 3DO emulator 4DO Libretro, which caused saving to be broken. Prior to this fix, saves were just garbage data and the core would try to load *other* garbage data. Everything should work fine now.
  • Twinaphex backported a slew of per-game hacks/fixes from upstream Mupen64Plus to ParaLLEl-N64 to fix audio sync in Resident Evil 2 FMVs, fix Indiana Jones, fix missing sound in Episode 1 Pod Racer and to fix Perfect Dark when using the Angrylion or ParaLLEl renderers, among other fixes and cleanups. He also added a toggle for dithering with the Angrylion renderer, which can provide a cleaner image and also squeeze out a few more frames per second for users who were hovering around full speed with that highly accurate plugin. He also added a fix for Mario Kart 64 when using the Rice video plugin. Twinaphex also added very high internal resolution multipliers for cores that support it, including Dolphin Libretro, Beetle PSX HW, OpenLara Libretro, Craft libretro and Mupen64plus Libretro, and he updated OpenLara Libretro to have an inventory screen and a working healthbar.
  • oxavelar added 4-player controller support to the still-nascent Dolphin Libretro core.
  • Meepingsnesroms improved rotation functionality in Beetle WonderSwan Libretro and fixed the Amiga emulator core, (P-)UAE Libretro core on Android x86.
  • frranck tweaked the AI in MrBoom Libretro to make playing against computer opponents a better experience.
  • danieljg backported to our FBA2012 core a turbo speedhack for Metal Slug 2.
  • r-type updated MAME Libretro to stay in lockstep with upstream MAME, as well as adding a bunch of new resolutions to the “alt renderer” core option, which should allow for clean, anti-aliased vector graphics, as well as clean use of MAME’s artwork feature. r-type fixed an issue with the MAME Libretro core where some games could launch with incorrect framerates. He also added more target systems to his libretro port of Vice, along with a core option to choose different models of C64 and/or VIC20.
  • yoshisuga has added iOS-ARM64 build targets for many cores to make them compatible with newer Apple iDevices. He also helped track down and squash a longstanding bug that was causing a handful of cores to display only a black screen on iOS devices.
  • Tatsuya79 added support for Colecovision/Spectravideo/Sega SG1000 and an option to crop overscan to the blueMSX libretro core, along with fixing a variety of mapper issues in that core. He also added a core option to Beetle PCE Fast to allow users to choose which CD-ROM BIOS to use, as well as adding a bunch of new functionality for Prboom Libretro, including keyboard and mouse support and savegame slots.
  • Gingerbeardman made significant updates to the fMSX core.
  • hunterk backported some minor fixes from upstream Higan to our bsnes and bsnes-mercury cores to fix an elusive hanging issue in Magical Drop and audio issues with several games using the performance core. He also added a fix for Nestopia-UE‘s libretro interface that was preventing autoselection of the Japanese 4-player adapter when using the NstDatabase. hunterk also added core options to increase the internal resolution of the Vectrex emulator core, Vecx Libretro, which greatly reduces the ugly jaggies caused by 1x rendering.
  • barbudreadmon updated FBAlpha Libretro to the upstream v0.2.97.42 and fixed a segfault that could occur with some pgm games.
  • radius fixed savestates in FBAlpha Libretro and re-applied a fix to Mupen64plus Libretro for stuttering that some users experienced with games that run at 30 fps. He and webgeek also added AArch64 build support for various cores to coincide with the compatibility of RetroArch Android on that architexture.
  • sergiobenrocha2 and shakalakka provided more intuitive button layouts for the MAME2014-libretro and MAME2016-libretro cores. sergiobenrocha2 also merged in endrift’s upstream changes from mGBA v0.6.0.
  • kivutar made a lot of improvements to the lutro-platformer core, while RobLoach added Love support to it.
  • markwkidd did a variety of quality-of-life improvements for MAME2003-libretro, including adding a catver.ini file that helps with categories and fixing the Makefile to compile in the MIPS engine for x86, which should fix Killer Instinct on x86 (that is, KI is still broken on x86_64 and ARM) with this core. He also added DAT and catver.ini for MAME2000-libretro and submitted a fix from RetroPie user poi to MAME2010-libretro to fix Xevious and Bosconian.
  • TylerLoch (with some cleanup help from radius) added a SuperFX chip 20 MHz overclock option (i.e., instead of starting at 40 Mhz) for snes9x-libretro.
  • andwn fixed a silly issue with NXEngine libretro whereby during the last-boss fight with Misery, her sprite would change to that of a large block.
  • SpiralBrad backported from upstream the ability to automatically set the BIOS time in Beetle Saturn based on the host system’s clock, which is particularly useful for the real-time holiday functionality in Christmas NiGHTS.
  • j-selby continued improving the already impressively complete Citra Libretro port to include touchscreen emulation using the mouse and optional right analog stick among other improvements.
  • Retro-wertz added additional mappers to FCEUmm.

RetroArch 1.6.3 – Released!

RetroArch 1.6.3 has just been released! Grab it here.

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

General changelog

IOS: Fix GL regression – 32bit color format cores were no longer rendering
CHEEVOS: Add support for N64 cheevos and other small fixes.
CHEEVOS: Add ‘Achievements -> Achievements Verbose Mode’. Ability to display cheevos related messages in OSD, useful for RetroAchievements users.
AUDIO: Audio mixer’s volume can now be independently increased/decreased, and muted.
AUDIO: Mute now no longer disables/enables audio but instead properly mutes the audio volume. Mute is also independent from the audio mixer volume.
INPUT: Add mouse index selection; ability now to select between different mice
INPUT: Fix ‘All Users Control Menu’ setting
LINUX: Add a tinyalsa audio driver. Doesn’t require asoundlib, should be self-contained and lower-level.
LOBBIES: Announce the RetroArch version too
LOCALIZATION: Add Traditional Chinese translation
LOCALIZATION: Update French translation
LOCALIZATION: Update Italian translation
LOCALIZATION: Update Japanese translation
LOCALIZATION: Update Russian translation
MENU: Add ‘User Interface -> Views’. Ability to display/hide online updater and core updater options.
NETPLAY: Disconnecting one client shouldn’t cause everyone to disconnect anymore
NETWORK: SSL/TLS support, disabled by default
SCANNER: Fix PS1 game scanning
SCANNER: Move content list builder into scanner task with progress, fixes menu freeze with large playlists
SDL2: Fix ‘SDL2 driver does not see the hat on wired Xbox 360 controller”
SETTINGS: Fix regression ‘Custom Viewport is no longer overridable per-core or per-game’
VITA: Add cheevos support
VITA: Add support for external USB if mounted
WAYLAND: Fix menu mouse input
WII: Add support for single-port ‘PS1/PS2 to USB controller adapter’

Platform highlights

Windows

There are now installers available for the Windows version! We offer installers for both the Windows Vista and up version, and the Windows XP version.

RetroArch will be installed by default to your user roaming profile, however, you can change this to any particular directory you’d prefer instead. The reason why we do not try to install to “Program Files” by default is because RetroArch needs read/write permissions in order to write downloaded core files directly to its folders.

Our installer installs RetroArch in ‘portable’ fashion. What this means is that you can take the directory that RetroArch was installed in, deploy it to another drive, and it will still run, and the default paths will automatically change their paths.

Windows XP

So MinGW has broken backwards compatibility with Windows XP sometime ago. This was a problem for us, since Libretro/RetroArch treats backwards compatibility very seriously.

So, what we have done is make a separate version of RetroArch for Windows primarily targeted at people running Windows XP. Instead of MinGW, we are using Microsoft Visual Studio 2010 / MSVC 2010 as the compiler for this. We have also already ported at least 30+ cores over to MSVC 2010 so that they will run on this new Windows XP version.

We will not simply just stop at a Windows XP version – sometime later on next week, a Visual Studio 2005 version of RetroArch will be launched which will run on Windows 98 / ME / 2000! Where other projects are dropping older OSes and even entire architectures in order to cut down on maintenance and development time, we instead are adding even more platforms, and primarily because we both care about this and see the value in a platform/program that truly extends everywhere, and also because our infrastructure is set up in such a way that we can easily deal with any ‘maintenance’ burden this would otherwise entail for other projects.

Linux – Flatpak

RetroArch/Libretro has from Day One always treated Linux not only as a first-class citizen, but also pretty much as a reference platform. Unlike so many other projects that treat Linux simply as a quick and dirty port where they choose the path of least resistance and just use some middleware like SDL/WINE, RetroArch has custom audio, video and input drivers all written from scratch. It was one of the first programs outside of demo programs to support newfangled technologies like DRM/KMS, was very quick in adopting new rendering servers like Wayland, and unlike other software that simply uses middleware like SDL and/or PortAudio to provide sound, we have custom audio drivers written from scratch for ALSA/PulseAudio/JACK/OSS basically since Day One.

The problem with Linux though is that all of these features are highly distro-dependent, and each and every Linux distribution has enough differences that a traditional binary that runs on every Linux distribution is close to impossible. So, for now, we have simply left the responsibility of maintaining and packaging up RetroArch to individual distributions. Distributions like Arch Linux, Debian, and others have RetroArch and the various cores inside their package management repos, and they maintain it separately from us. Similarly, committers like sergio-br2 maintain Ubuntu repositories for RetroArch and its various cores.

But now, there are finally options for those who would like to try out RetroArch on Linux in a distro-agnostic fashion! Read all about it in our Flatpak article that we launched a few days ago. Within a few days, we will also be offering AppImage support.

iOS

A serious regression in the iOS version which made 32bit color format cores no longer render has been fixed. Also, a user has been helping us prepare for iOS 11 support.

If you’d like to learn how to compile RetroArch for yourself on iOS for your non-jailbroken device, read this article here.

macOS / MacOS X

RetroArch has been updated for both macOS/OSX Intel (for 64bit) and for OSX PowerPC (for PowerMacs/Powerbooks that have OSX 10.5 installed). The version for PowerPC comes bundled with the cores since we don’t host these on our buildbot (yet?).

PS Vita

Not only has Cheevos support been added, but it’s also possible now to use external USB devices if they are mounted! In order to use RetroArch on Vita, you need a jailbroken PS Vita and/or PSTV. Instructions on how to do that can be found elsewhere and falls beyond the scope of this article.

Wii/WiiU/3DS/Gamecube/PSP/Android

RetroArch has been updated for all other platforms that we actively support.

PlayStation3

We have posted a DEX version. We hope that separate community members can convert this to CEX and then offer it to us so we can host it.

Updates on cores

A separate article will be posted later that will detail all the work that has gone into the various cores. Stay tuned for this! 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’.

What’s up next?

* We are working hard right now on getting the PPSSPP / Supermodel cores that we have promised ready.
* An AppImage version of RetroArch for Linux will be available soon.
* A Visual Studio 2005 version of RetroArch for Windows will be available soon, which will run on Windows 98/ME/2K.
* 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.

RetroArch with Flatpak – Distro-independent Linux version!

Flatpak LogoInstalling RetroArch on Linux has just become a whole lot easier with the use of Flatpak. Flatpak provides a common standard in which to install sandboxed applications across many different Linux operating systems and desktop environments. Along with the Flathub repository, installing RetroArch with Flatpak becomes a breeze.

Install Flatpak

The first thing to do when getting up and running with Flatpak is to install it. There are many different ways to install Flatpak, so I’ll let you decide the best for your distribution. Once installed, you should be able to run the following command to see how to use it:

flatpak --help

Welcome to Flathub

Add Flathub

Much like your favourite package manager, Flatpak uses repositories to manage available applications. Flathub is a quickly-growing Flatpak repository, which is where RetroArch is available from. To let Flatpak know about Flathub, you’ll have to add the repository to your remotes:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Install RetroArch

Now that the flathub remote is available, you can now install RetroArch on Flathub:

flatpak install --user flathub org.libretro.RetroArch

Run RetroArch with Flatpak

When RetroArch is installed through Flatpak, it will automatically become available through the system menu and you can run it as normal. Alternatively, you can also run it through the terminal:

flatpak run org.libretro.RetroArch
Screenshot of RetroArch running through Flatpak
RetroArch running through Flatpak

With Flatpak, you can install applications on Linux very easily, no matter what distribution or desktop environment you use. Flatpak repositories like Flathub provide a central hub in which to keep applications up to date. This revolutionises the way applications can be installed on Linux, and provides just one more easy way to install RetroArch.

Resources