PSA: RetroArch 1.7.8 – Important changes for people using the Google Play build

Starting as of September, Google has started requiring app developers to update their apps with 64bit AArch64 support. Any app that fails to comply with this will no longer be able to upload any new APK to the Google Play Store.

Until now, the main RetroArch build has been built for 32bit ARM processors. This means that even on a 64bit device, if you were using this 32bit build, you would still have access to all the 32bit compiled cores.

This all changes now as a result. Under the new model, we are forced to build in both 32bit and 64bit support for the main RetroArch app. What this means is that 64bit devices will default now to the 64bit version, whereas 32bit devices will default to the 32bit version. It’s not possible to boot into 32bit mode for the Google Play Store version.

We unfortunately cannot do anything about this. What this means is the following:

  • Some of the cores available for 64bit ARM might lack a dynamic recompiler. As a result, cores like PCSX ReARMed and Picodrive might be significantly slower now as a result on a 64bit device. Fortunately, work is underway to backport a 64bit dynarec to PCSX ReARMed, and similar for Picodrive.

On the plus side, Aarch64 tends to have about a 10% performance boost in general for RetroArch vs. regular 32bit builds. So it’s not all bad news.

If you’d still like to use a 32bit only build, you can go to our buildbot and download the 32bit only version there. We just are not allowed to upload this version to the Play Store, since every app uploaded from now on has to work for 64bit as well.

Important news for people upgrading

If you are upgrading the app from 1.7.7 to 1.7.8, you might find that the core updater URL is still pointing to the 32bit cores, and you might find that a lot of the cores you downloaded will no longer work (because it boots you into 64bit mode now). 32bit cores cannot be ran on 64bit apps and vice versa. So, what you have to do is

  • First, make sure that you reset the Core Updater URL properly. Go to Settings -> Network, and scroll all the way down to ‘Updater’. Go to the entry ‘Buildbot Cores URL’, and long press. If done correctly ,it should reset the URL. Now exit the program and restart again.
  • From there, you will have to redownload the cores from the Online Updater.

Alternatively, if you don’t want to bother with all this, just reinstall the entire program from scratch, that way it will start out with sane defaults.

Other considerations

What this also means is:

  • The 64bit specific version on the Play Store is pretty much redundant now, and you might as well use the main Play Store version. We are unsure yet if we are going to delist the 64bit only version or have it remain up. Just know that it no longer serves a purpose.
  • RetroArch can now be built using Gradle/Android Studio. This should significantly reduce the barrier to entry for developers wanting to get to grips with RetroArch, but were unable to do so in the past as it required an old Android toolchain as well as tools like ant.
  • It might appear on Android TV soon for 64bit apps.

Hopefully this upgrade process will have as little bumps in the road as possible. We’re sorry for this inconvenience but this is really not our fault, and our hands are tied. As ever, if you want a 32bit version on your 64bit device, go to our buildbot, and download the latest dated version ending with ‘RetroArch_ra32.apk’.

Upcoming – RetroArch 1.7.8 – AI Service (Machine Translation / OCR / Text-To-Speech)

Written by Barry Rowe

What is the AI Service?

The AI Service lets you translate games, or add automated voice-overs capability in real time.  Instead of using a ROM patch, this is done by RetroArch taking a screenshot and then sending it to the AI Service listed in your config, which will do OCR (optical character recognition), machine translation, and/or text-to-speech.  The service will then return the result and will either be displayed on the screen, or played through the audio output of RetroArch.  As is the nature with AI though, accuracy can be an issue.  However, machine translation can give a good gist of what’s being said, especially for some language pairs, and text-to-speech can be of great benefit for accessibility.

How to set it up

See https://docs.libretro.com/guides/ai-service/ for a more detailed guide about how to setup the AI Service for your use case (translation or voice-over).  Any core using the RGB565 or RGB8888 pixel formats should work.  Cores using a hardware buffer however are not yet supported.  If you’re unsure if your core is supported, see the above documentation on how to check.  The main supported service is the vgtranslate project

Supported Services: VGTranslate, ZTranslate Service

VGTranslate ( https://gitlab.com/spherebeaker/vgtranslate ) is a lightweight server that you can run on windows or linux.  With it running, your RetroArch device can send its screen captures over your home network and the service will translate it and send it back to RetroArch.  This makes it possible to run the computationally expensive AI code off-device, so you can run translation on a Raspberry Pi or other device.  Local only translation is still in an experimental state, so using a Google Cloud key with VGTranslate is currently suggested.
It’s also possible to use an external service instead of running VGTranslate yourself.  ZTranslate.net has such a service listed in its documentation.

Caveats

Certain text will be easier to OCR than others.  Logos/title screens or very stylized text can be difficult for OCR engines to deal with, and some language pairs are easier to translate between than others.  Japanese-to-English in particular seems to be the most difficult use case, since OCR engines can have difficulty with Japanese pixel fonts on textboxes with transparent backgrounds.  Many games will work fine, but some may not work that well, depending on how the game draws the text.  Future developments will help improve this and expand the number of playable games with this feature.