An Update To My Previous Handheld Post
Sometimes you need a second look
Last week I wrote a mostly effusive post about the Anbernic RG353M. I still stand by my overall thoughts, it's a really solid device, the emulator performance (for the most part) is excellent, and it having a metal body makes it feel very premium and rugged.
But I did the Android OS portion of it dirty during my write-up.
During that post I said:
The Android OS can run some emulators better (the ones I have seen mentioned are the PSP emulator and the Dreamcast emulator) but it doesn't have a great launcher by default and you have to jump through a LOT of hoops to get the Google Play Store installed (otherwise you are sideloading every app you want to install)
Which, to my understanding at the time, was true. But what I really needed to do was sit down with the Android interface and get it customized. The catalyst for this was this Reddit post by mitchchn about giving Android another shot on the device, with some tips of things to install and some settings to change. So being the tech obsessed nerd that loves setting things up that I am, I spent between 2 and 3 hours a few days ago just getting the Android side of things configured.
Please note: This is a high level overview of the steps I went through and it assumes that you do things like "join the device to your wifi network" or "actually search for and install appx". The Reddit post linked has very good step-by-step instructions that you should also follow.
Update Android
PLEASE NOTE: APPLYING THIS UPDATE WILL FACTORY RESET YOUR ANDROID PARTITION!
First things first, Anbernic had released a new Android 11 update for the device (available here) so I wrote that to a 16 GB Micro SD Card (having a card of that size is VERY important! I've read some posts about how it should be an 8+ GB card, but the tool that writes to the SD card flat out failed to do it on multiple 8GB cards I have. 16 GB or 32 GB are apparently required to apply this update) using the tool included in the update zip file (extract the tool and then edit the INI to have it use the english language, unless you can read Chinese.) Now that the card was written, I popped it into the TF1/INT slot and powered the unit on. It will spend quite a long time going through the Android update, mostly just showing a big wobbly circle. Once it asks you to eject the card in TF1/INT, the upgrade is done and the device will boot into a fresh copy of Android 11.
Aurora Store
Once you have Android up-to-date, the next order of business is to facilitate getting apps onto the device. Since Anbernic (probably? No one knows for sure why, but this is the common theory) didn't want to jump through the hoops of having the RG353M certified with Google, there is no Google Play Store or Play Store Services on the 353M. But thanks to the Reddit post linked above, I learned of an alternate storefront called the Aurora Store. It accesses content from The Google Play Store, and uses your Google account (so it can grab purchased apps, which is great for some stand-alone Android emulators.) I installed it by just downloading the APK from the FDroid site to my device and running it, but you could also grab the FDroid client (like they recommend) and install it from there.
Daijishō
Once I had the Aurora Store installed, I could install arguably the most important part of making the Android install useable: Daijishō. Daijishō is a ROM launcher and also an Android home screen replacement (meaning if you set Daijishō as your default home screen, Android always starts up into an excellent emulator interface which is key.) The only real downside to Daijishō is that it's a bit of a bear for initial set-up, even though it does a lot on it's own. Since the Anbernic Android image that I just applied already has RetroArch 64 Bit plus key Android stand-alone emulators installed, I went straight into getting systems added, but Daijishō recommend before setting it up that you have all the emulators installed on your device before you install it since it auto detects the emulators when it first starts up.
First step is getting the platforms you have ROMs for installed, which is pretty straight forward from the user interface. What's less straightforward is pointing Daijishō at the ROM directories and making sure it's using the emulator you want. Once the platforms have been set up, you will have a horizontal list of all the consoles/handhelds, each with 0 items in them.
To add the ROM directory, you will have to tap on "🎮 Paths" button at the bottom right of the platform card. Tap "Add More" on the "Sync paths (Click to remove)" pop-up and browse to where your ROM library is and tap on the proper directory for the platform you are setting up then tap the "USE THIS FOLDER" button at the bottom of the screen. You should see something like "/tree/LETTER-NUMBER:romdir
" in the "Sync paths" pop-up now. If you have more locations (some arcade systems like Capcom CPS1, 2 and 3 can be run by the same emulator) add them now and then press Finish. Congratulations! You have one platform one step closer to usability!
While you are on the platform card, tap the "✏️" button beside the "🎮 Paths" button to make sure the emulator core to use is set up properly. The "Edit the platform (Platform Name)" screen will show now. Scroll down until you find the "Player settings" drop-down box. This will be a list of the (potentially hundreds of) emulators that Daijishō knows about/has detected. Nine times out of 10 you will want to leave this at the default, which is usually something like "### - snes - RetroArch 64 - snes9x". The only times you will want to change this is for platforms that work better with a non-RetroArch emulator in Android (example: I use Mupen64 Plus for Nintendo 64 ROMs so I have "### - n64 - org.mupen64plusae.v3.fzurita.pro" selected) or if you want to use a different RetroArch core (bsnes, for example.)
Once you have the ROM directory set and the Emulator (Player) that you like selected, you can now tell Daijishō to scan your ROMs by clicking on the "🔁 Sync" button visible at the middle bottom of the Platform card. This will go through the directory and find all the ROM files, then go out to the internet and scrape images to display when the ROM is selected. I would recommend only doing a couple at a time as the CPU in the 353M isn't super beefy and scraping large ROM sets can take a fairly long time.
So now that you have ROMs in your Platforms (you should see something like "252 items" listed on the platform card now) you should be able to select the platform (either by tapping on it or pressing the A button) and see the alphabetical list of ROMs for that platform! If it uses RetroArch, it should just work! For the most part. I had some trouble with Sega Saturn (which is only sort-of supported by the Anbernic RG353M. I am having trouble getting the stand-alone emulator working, and can only find 1 RetroArch core that works) and getting Mupen64 stand-alone to work properly is an ongoing struggle... If I start a game for the first time I sometimes get a black screen, but if I exit and start it again it loads... usually. But once it works, it works well!
At this point, you should be able to set Daijishō to be your default home screen.
RetroArch
The Reddit post I linked has a lot of helpful settings to change in RetroArch to make things work a little better (using Vulcan instead of GL as the default video driver or turning off VSync to take full advantage of the display in the 353M for example) but there are two settings that are must-do in my opinion.
First: Configure the shortcut keys in RetroArch. I have cribbed the portion of the post about this below:
Configure Hotkeys in Settings > Input > HotKeys. The F button is hard-mapped to Back and you can't use it in RetroArch on Android, but Select works really well as the combo starter. Here are mine:
Hotkey Enable: Select
Menu Toggle: X
Quit: Start
Fast Forward: R1
Save State: R2
Load State: L2
Rewind: L1
Show FPS: Y
To access the settings either launch RetroArch as an app (tap R1 until you are on the "Apps" tab and tap on the RetroArch icon) or load up a ROM that runs on RetroArch and use the "Menu Toggle" hotkey (once we have it set up it would be Select+X.)
The other setting was "Write Saves to Content Directory" and "Write Save States to Content Directory". This means that once I made this change to Android and all of my Linux RetroArch setups I can load save states or save games regardless of what OS I have decided to use. This is a GREAT quality of life change! But I did have some problems finding the option (as you can probably see in the Reddit thread.) To see that option you first have to go to Settings > User Interface and turn the "Show Advanced Options" on. Then once that's enabled, go into Settings > Saves and scroll down until you see "Write Saves to Content Directory" and "Write Save States to Content Directory" options and turn them on. Don't forget to make those changes on your Linux OSes too!
Once you have made all these changes, be sure to save the RetroArch config! go to Home > Configuration File > Save Current Configuration to make sure your changes persist!
Oh, and just for your information, here are the Menu and Video Drivers (Settings > Drivers) that I use in RetroArch:
Menu: ozone
Video: vulkan
The rest are at the defaults.
So that is a broad overview of the changes I made in Android. I HIGHLY recommend going through mitchchn's Reddit thread and following the changes they suggest. At this point I would say that Android is my daily driver OS on the RG353M, with UnofficialOS the Linux OS of choice when I want to go that route. If I could get Yaba Sanshiro 2 working properly as a stand-alone emulator for Saturn I think it would be perfect, but using Yabuse in RetroArch is okay for the time being.