Make your own Android Retro handheld device!
Created on: 06 May 23 15:03 +0700 by Son Nguyen Hoang in English
Introductions to Game Emulators for Android Devices!
Having a job that involves 8 hours of sitting in front of the computer screen sometimes makes you tired of doing anything related to the PC, even gaming. In addition, getting mature means that our brains sometimes tricks us into the memories of some good old days, despite of the fact that these “good days” were very likely illusions produced by the mind and nothing more than desperate, tragic wishes. Although such wishes and forgotten pasts can be annoying and haunting, I strongly believe that a deep look into the past can reveal valuable insight into history, culture and even humanity as a whole.
As a game developer, trying to craft my own work, retro gaming recently got my attention. The world of old game aesthetics gave me such inspiration that modern video games rarely achieve. This, of course, is not only about aesthetic or visual imagery of classic games that should be analyzed but also game programming technique and gameplay design of such titles. It’s often said that developers of the past, due to the limitation of hardware capabilities of their time, had to invent new methods and creative ways to make the game visually attractive. The classic Silent Hill was an example, the fog in the town was added due to hardware limitations, but it makes the spooky town even more thematic and nightmarish.
So, for educational purposes, I want to put my hand into such retro-esque video games but playing them on PC with an emulator is simply not a great experience. Buying a retro handheld device could be an excellent choice but not a very optimal solution for now. The current market for retro devices has changed a lot and for the last two to three years, many manufacturers (Retro Pocket, Ayn Odyn) and companies (Logitech, ROG, SteamDeck) got into the market. I would argue that the market will be inflated by even more competitors in the next several years. Overall, at the time of writing (May 2023) I would divide the current market into three segments:
- Low-end device: Devices that can play up to GBA titles. Some PSX might be played too. Some devices in this tier were designed to play one unique console (for example GBA), one good device in this tier is Powkiddy V90. Devices in this group often cost less than 50 USD.
- Average device: Devices that often come with Linux or Android operating systems. They are much more powerful and some can play PS2 titles. The best of this tier is Ayn Odyn, other notable devices are RetroPocket 3+ and Anbernic series. These devices’ prices can cost up to 300 USD.
- PC Console: They are basically PC-powerhouse! Steamdeck, Logictech G Cloud. As you can guess, the price of these monsters can reach upto 1500 USD!
I have no interest in buying low-tier devices that are too cheap and unreliable. On the other hand, a PC Console is not my type. The price was simply too high and such huge computing power would be unnecessary for retro gaming after all. So a Retro Pocket would be great! However, these devices on average-tier evolve rapidly in recent years. In the last 2 years, 4 different models of Retro Pocket were released! The latest one can play some titles on the PS2 console and costs only 150 USD! Who knows what next year’s model can do? The market changes so quickly that I believe I should wait a few more years until we have machines that are so cheap (less than 300 USD) but can play/emulate all consoles of 7th Generation!
So, in the waiting time what should I do? Of course, it turns out that my lovely Android phone costs mostly the same as the most expensive Average Devices (Ayn Odyn). Then why I don’t make it into a retro handheld device? The only limitation was the console has no solid buttons and the touchscreen of smartphones cannot replace traditional buttons & joystick. Fortunately, it turns out that there are many external gaming controllers available for mobile phones to bring better experiences. Some notable names could be Razer Kishi, V1 and GameSir X2. Some even used an Xbox Controller with clip that connected to Android through Bluetooth.
So, my journey to turn my phone into a gaming device started! After a while of testing game of PSX, PSP, GBA & Nintendo DS, I confidently agree that playing retro games on Android was very possible, and personally for me this is also the economically cheapest way! This blog will list the basic things required to play your favorite retro game on your Android machine.
Overview of my machine
- Android Model: Samsung Galaxy A22
- Android Level: 13 Tiramisu
- CPU: Mediatek Helio G80
- GPU: Mali-G52 MC2
Up to now, I tested my devices with Nintendo Ds, GBA, Sony PlayStation, and Sony PlayStation Portable. All four emulators work decently, and games are playable at a stable frame rate. In the future, I might test with other retro systems and announce updates later.
Basic Requirements
- SD Card for Games (optional).
- AirDroid App to wirelessly send files from your PC to your phone (optional), any USB Type-C cable could also work well, as long as they are still properly working.
- A Type-C Android Phone (of course).
- Android Game Controller: I bought a used GameSir X2 Type at the cost of 800,000 VND, plus shipping costs around 40,000. So, the total cost was around 35 USD. You should pick one that fits your device. If your devices don’t have a Type-C port, you may consider buying a controller that supports Bluetooth connection.
- Software: Console Emulation software, you may consider using RetroArch on Android.
- Software: A Front-end for Emulator in Android. This is the most important one to be considered.
- Game Files.
For each console emulator, you may require to have additional files and setup (for example BIOS file for PSX titles). Such details I will note in my second post.
Emulator Software
Each console requires specialized software to emulate. In Android, you can look for it in AppStore and even get some in ApkPure. Some are free, some are not. Most paid apps require an internet connection so this could be terrible sometime. Some applications I have tested were:
- melonDs: Emulator for NintendoDS
- PPSSPP: Emulator for PSP
- Duckstation: Emulator for PSX (Sony Playstation 1)
They are all free and can be found on AppStore. Basically, this software is optimal for a single console, thus all setup (such as keybinding) must be done repeatedly for all apps. These could be annoying sometime. It’s recommended that you should use this software if the console to be emulated belonged to 5th Generation (like PSX) or above. For consoles before 2000s, you might want to try RetroArch!
RetroArch
In short, RetroArch on Android was a complex, end-to-end software that provides:
- Software Interfaces for emulators
- Manager environment for emulators
Briefly, instead of installing 10, 20 separate standalone apps, you only need one RetroArch (RA). From RA, emulators are treated as “Core”, which can be downloaded from the RA app. RA is free on Android AppStore, however, you can grab the apk directly from RA website, which is often more up-to-date.
Ideally, if you only want to play your childhood game on Android, then RetroArch would be enough. However, playing games with RetroArch (version 1.9.12) only is not recommended because:
- The software has terrible UI and provides clunky, bad user experiences.
- The software provides too simplistic methods to load your game. Loading games from RetroArch is super-annoying and inconvenient, sometime the software can’t find games on the External SD card.
- The software has no method to group games into a game library.
Unfortunately, what we all agree on is a better front end that can manage all of the retro emulators and video games in a more intuitive, fancy way.
Daijisho: A Front-end for Emulator
First of all, let me briefly how you can load a game (aka a content in RetroArch) and play it. Before loading a game, you must choose and start a Core (an actual emulator), then select a content file. More often than not, the file browser of the built-in interface in RA will make you confused, and after many, many, many scrolling (yes, RA Interface has too many buttons and scroll lists that sometimes make me questions my own sense of being in this world), you may get luck and find your game.
So, what you need is a better front-end system. Several applications (on Android) can help you, here they are:
- LaunchBox (the best one, but it is not free)
- Dig
- Daijisho.
Daijisho provides an intuitive interface for end-users. How Daijisho can do this, and why you may love it?
- Daijisho groups games by the emulator console
- Daijisho scrapes games file in the folder (you choose) and create a game library based on scraping result.
- Daijisho allows users to select which emulator backend to run with each gaming console.
- Daijisho allows users to run an emulator directly from the app itself.
In short, here are the steps I am required to do to setup Daijisho:
- Installing configs of consoles that I want to add to my library (PSX, PSP, GBA, etc …). This is done easily in the application itself.
- Selecting folder game for each gaming console. The app then will collect all the games of matching consoles and create beautiful art covers for me.
- Selecting the emulator or standalone app for each gaming console. Daijisho is smart enough to detect standalone apps or installed Cores from RetroArch.
And that’s pretty much everything you need.
Actual Implementation
Above introductions were actually a very brief summary of what you require to install to your Android phone. Below, I list the actual steps I did to start a simple GBA game from Daijisho.
- Prepare game files. Grouping all GBA games into one single folder. The naming convention is up to you.
- Copy all files to the External SD. You can use internal SD instead. This is up to you.
- Install RetroArch from Google Store
- Plug my GameSir X2 Type C into the phone.
- Bind key in RetroArch to match with my controller. This can be done in a setting. Just play with the app for a while then you will find the option to map buttons & keys.
- Hide overlay console layout of Retro Arch. This can be done in a setting. Just play with the app for a while then you will find the toggle.
- Install Core VBA (emulator for Game Boy Advanced). Search in the RA app for a while, the option to download external core can be found easily.
- Install Daijisho from Google Store.
- Setup Daijisho (discussed above)
- Run The Game!
That’s the end of this blog. I will write more tips & advice for each emulator console in a separate post.
Thanks for reading! Below is the whole setup with the game Megaman Zero
References and Extra Reading:
https://retrogamecorps.com/2022/03/13/android-emulation-starter-guide/ Some images were collected in Unsplash