
Last updated: 11APR2023 (see Changelog for details)
ArkOS is a custom operating system that is available for many retro handheld devices. It features optimized performance, a simple user interface, online updates, and a very stable experience thanks to years of development work.
This guide will help you get set up with ArkOS, to improve your handheld device in just about every way. Don’t worry, it’s pretty easy.
If you would like to support the developer and their work, please consider leaving them a donation for their time and effort over the years.
Table of Contents Compatible devices Recommended accessories Build your own ROM and BIOS collection Install ArkOS Add ROM files and scrape artwork Getting to know ArkOS RetroArch configurations HDMI, bluetooth, and external controllers Tips and tricks Changelog
Why ArkOS?


custom firmware options (click to enlarge)
There are many custom firmware options available for handhelds, and my recommendation is to try as many as you’d like until you find one that suits you the best.
For me, I appreciate ArkOS because it has a simple user experience and wide device support, but also gives you a lot of freedom to tweak the settings as you please. However, it doesn’t have some standard community support options, like a dedicated Discord server, so you will need to consult their wiki page (or guides like this one). For more information, check out the video below, or the images above.
Compatible devices
The following devices are officially supported by ArkOS:
Anbernic RG351P*
Anbernic RG351M*
Anbernic RG351V
Anbernic RG351MP
Anbernic RG503
Anbernic RG353V
Anbernic RG353M
GameForce Chi
Odroid Go Advance 1.0
Odroid Go Advance 1.1 (Black Edition)
PowKiddy RK2020
PowKiddy RK2023
PowKiddy RGB10
PowKiddy RGB10S
PowKiddy RGB20
* Ongoing support for the RG351P and RG351M devices was discontinued in 2021. However, it has been forked and receives regular updates thanks to wuMMLe Gaming. Here are instructions on how to update to this fork, and their GitHub page has a Changelog if you want to read up on any updates. Alternatively, I recommend using AmberELEC for these two devices, since they are officially supported and have a robust user support platform.
Some other devices are unofficially supported. For example, the Anbernic RG351MP ArkOS image will work on the PowKiddy RGB20S, and the Anbernic RG353M image will work with the Anbernic RG353P. Unofficially supported devices may have some controller/input inconsistencies, and you are generally on your own to troubleshoot issues since they do not have official support.
Recommended accessories

Your device will likely come bundled with a single microSD card, and in some cases two SD cards, but they are from a generic brand and will be prone to failure. In most cases, the “TF1” slot on your device holds the system firmware, and for that card 16GB is ideal. The “TF2” slot is for your game files, so you will want a larger card for that one. Your safest bet is to replace your cards with microSD cards from a well-known brand. I recommend you store that original card somewhere safe in case you run into any issues in the future, and buy new SD cards from a reputable brand like SanDisk or Samsung to use in your device.
In general, I recommend the cards listed below, in order or preference. The prices fluctuate all the time, so keep an eye out for deals. In general, I would expect to pay $7 for a 16GB card, $20 for a 128GB card, and $30 for a 256GB card. A 128GB card will allow you to load EVERY 8-bit and 16-bit game out there, all of the arcade games that work, and quite a few PS1, Dreamcast, PSP, and Sega CD games (those systems have the largest file sizes). A 256GB card will allow you to store even more of those larger games.
16GB cards: SanDisk Ultra SanDisk Industrial (more reliable but pricey) 128GB cards: Samsung EVO Select SanDisk Ultra 256GB cards: Samsung EVO Select SanDisk Ultra
One more accessory to consider: if you don’t have a reliable microSD to USB adapter, you might want to think about getting one. A nice adapter like this one from Anker will give you the fastest transfer speeds possible, and won’t cause any corruption issues with your card. I’ve owned one for several years and have never experienced an issue, even after flashing hundreds of cards.
Build your ROM and BIOS collection
One of the most important parts of setting up a retro handheld is to build your ROM and BIOS collection.
Building your ROM library can take some time. If you have a large collection of cartridges, you could use something like the Save the Hero cartridge reader to carry over your games (and saves). But for most people, you’re likely going to the Internet. ROM files are copyrighted and will not be shared on this website. As you are building your collection, I recommend consulting the ArkOS emulators page, which will show all the supported systems, the file types that are compatible, and any requisite BIOS files. Speaking of which…
Collecting BIOS can be more challenging. These are copyrighted system files that are generally extracted from original consoles. If you don’t already have these files, then you can pull them from the SD card that came with your device. Inside the first (“TF1”) SD card you should find a GAMES partition, and within that will be a series of folders, and one should be named “bios”. Copy all of the contents of this folder onto your computer somewhere for safe keeping. If you do not see the GAMES partition, you may be using an older version of Windows (for example, Windows 7 or 8); in which case, you’ll want to use a program called “bootice” in order to see the GAMES partition. More info can be found in this guide.
If you are sourcing your own BIOS files, these are the files I recommend using. For a full listing, check out the ArkOS emulators page.
GAME BOY (for boot logo): gb_bios.bin GAME BOY COLOR (for boot logo): gbc_bios.bin GAME BOY ADVANCE: gba_bios.bin PLAYSTATION 1: scph5501.bin SEGA CD: bios_CD_E.bin bios_CD_J.bin bios_CD_U.bin SATURN: saturn_bios.bin (optional) DREAMCAST: /bios/dc/dc_boot.bin /bios/dc/dc_flash.bin (place in a "dc" subfolder) NEO GEO: neogeo.zip (place a copy in neogeo ROM folder too)
Install ArkOS
Installing ArkOS is relatively straightforward: simply flash the ArkOS image to an SD card. Here are the steps:
- Head over to the ArkOS wiki page and scroll down to the bottom of the page. There you will see a listing of devices and links via GDrive and Mega to download an SD card image. Find your corresponding device and download the file to your computer. The file will be in .xz format.
- Use a decompression tool like 7Zip (Windows) or The Unarchiver (Mac) to extract the .xz file into .img format. It should be around 8GB in total size after extracting it.
- If you are not using a brand new microSD card, I recommend formatting the card using the sdcard.org formatter tool (available for both Windows and Mac). This is an extra step but I have found that it often saves me headaches later down the line.
- Using a flashing software tool like Rufus or Win32DiskImager (Windows) or ApplePiBaker (Mac) to flash the img file to a microSD card. Balena Etcher also works for Windows/Mac but there have been reports of it not working well with ArkOS. I recommend using a 16GB card if you have a dual-card setup, or 128GB (or larger) in you are using a single-card setup.
- Once you have flashed the card, eject it from your computer and place the card in the SD1/TF1 slot on your device. Boot the device up, and it will resize your partitions. When it is done initializing the system, you will see the main ArkOS page.
- If you are going to use a two-card setup, insert a blank microSD card (if it is not a brand new card, you can format it first on your PC using the sdcard.org formatter just to be safe), then navigate to Options > Advanced > Switch to SD2 for ROMs. This will populate the cards with all the appropriate ROM folders. Note that after making this switch, you will need to have both cards in your device to boot with this setup.
After that, you are ready to add games!
Add ROM files and scrape artwork
In this section we’re going to add your game files, and then add their boxart so the user interface looks nice and fancy.
- Add game files: Turn off your device by pressing START and going to Quit > Shutdown System. Eject the SD2 card from your device (or SD1 if using a single-card setup), and insert the card into your PC. You can now start adding your ROM and BIOS files, and be sure to use the ArkOS emulators page to see the appropriate folder, file format, and BIOS files for each system. Once you are done, you can eject the card, re-insert it into your device, and start playing games.
- Connect to WiFi: In order to scrape boxart, you need to be connected to WiFi. While on the main ArkOS menu, navigate to Options > WiFi and follow the prompts to connect your device to your WiFi network. Some devices (like the RG351P, RG351MP, and RGB10) do not have WiFi chips, so you will need to use a USB WiFi dongle.
- Scrape artwork: To start, you will need a free account from screenscraper.fr. Next, connect your device to WiFi, and then press the START button and navigate to SCRAPER. Here you can adjust the parameters (for example I prefer to have “Box2D” as my Image Source, then add your username/password from screenscraper. Next, choose “Scrape Now”, determine which systems you want to scrape art for, and then choose “Start”. It may take some time to scrape everything if you have a large collection. If you prefer to keep your device offline or if you have a device without WiFi capability (like the RG351MP), you can scrape the boxart using a Windows PC (here is my guide).
Getting to know ArkOS
It might take some time to get acclimated with the ArkOS experience. To start, there are three main places to make configuration changes.
EmulationStation Menu: While browsing through the main system interface, you can press the START button to bring up the EmulationStation Menu. Here you can set the theme, adjust your emulators, and more.
Options Menu: As you navigate through the systems, you will see a section called OPTIONS. This section contains all the ArkOS options, like setting up WiFi, Bluetooth, and more. You can also boot into other apps like PortMaster and ThemeMaster from here. If you can’t find what you’re looking for in the EmulationStation Menu, this one might have it.
RetroArch: The majority of emulators run using RetroArch, which is a multi-system emulation frontend. You’ll want to enter this program to make specific configurations (detailed in the section below).
Now that you’re oriented with the places you will need to go to make tweaks, let’s go over some ArkOS basics.
- The devices that run ArkOS should be considered little computers, and as such, they need to be properly shut down. To turn off the device, press START while in the main menu, and then select QUIT > Shutdown System.
- Updating your ArkOS installation is very easy. First, you need to be connected to WiFi, then go to Options > Update and follow the prompts.
- To adjust emulator settings, press START > Emulator Settings. Here you can set the default emulator for each platform, although the default settings are well optimized already. If you want to adjust a specific game’s emulator, hover over the game in the menu and press SELECT and choose “Edit this Game’s Metadata”. Within that menu you can set that game’s emulator.
- You can change the system theme by pressing START and going to UI Settings > Theme and choosing one of the pre-installed themes. You can also download new themes by going to Options > Tools > Thememaster.
- After scraping boxart/media, you can use the screensaver function. Press START to bring up the ArkOS menu, then navigate to UI Settings > Screensaver Settings. Here you can set Screensaver Behavior > Random Video. Now if you leave the device idle for 5 minutes while in the main menu, videos will start appearing. You can also initiate the screensaver by pressing SELECT while in the main menu. While a video is playing you can press SELECT to go to the next video, or START to being playing that game.
- If you transferred over you games using MacOS, you may have a bunch of duplicated files in your ArkOS menus, with a “._” prefix. You can remove these by going to Options > Remove ._ Files.
- On the RG353 devices, you can press START to go to the main menu > Display Settings and adjust screen parameters, like saturation and contrast. This is awesome.
RetroArch configurations
Many RetroArch settings are configured out of the box, but there are a few that I like to do with a fresh ArkOS installation. To get started, navigate to the RetroArch section and choose to open either “RETROARCH” (the 64-bit version) or RETROARCH32 (the 32-bit version, mostly for PS1 emulation).
- Configuration file: this is the most important file, which will save your changes in RetroArch. Once you have made any of the changes below, be sure to go to Configuration File > Save Current Configuration.
- Menu driver: by default, the ArkOS RA menu is rgui, which is the boxy UI with green text. You can change this to something else by going into Settings > Drivers > Menu and choosing from your options. I like the xmb menu myself. You will need to save your configuration and exit/enter RA to see the changes.
- Quick Exit: To exit out of any game running via RetroArch in ArkOS, you need to press SELECT + START twice. Personally, I like to only press it one time. To set this up, go to Settings > Input > Confirm Quit and toggle it off.
- Hotkeys: Go into Settings > Input > Hotkeys to make any adjustments from the ArkOS defaults. Personally, the two I like to adjust are:
- Fast Forward (Toggle): R2
- Show FPS (Toggle): Y button
- Manual save state (SELECT + R1) and load state (SELECT + L1) are already configured in ArkOS.
- Auto Save/Load: Go into Settings > Saving > and toggle ON these two settings: Auto Save State and Load State Automatically. Now, when you close out of a game, it will save your spot, and then when you load the game, it’ll resume that same place.
- Achievements: You can set up RetroAchievements by going into Settings > Achievements and entering your username/password from a retroachievements.org account (which is free to set up). Be sure to disable hardcore mode if you want to use save states while playing.
Once you have made your desired changes, be sure to save your configuration by going to Configuration File > Save Current Configurations. If you mess up your RetroArch settings, you can go to the main ArkOS menu and go to Options > Advance > Restore Default RetroArch Settings.
Another element you may want to tweak are core options. For example, you can adjust colorization for Game Boy, or remove sprite limits for NES. You can access these by opening a game and press SELECT + X to bring up the RetroArch Quick Menu, and scroll down until you find Core Options. Check out the video above for a demonstration.
For a more in-depth look into how RetroArch works, check out my RetroArch guide.
HDMI, bluetooth, and external controllers
If you have a device with video out, you can potentially “consolize” the device by hooking it up to a TV via HDMI cable, and you could use it with an external controller or a bluetooth controller (if the device supports it). This setup will work best with RG353 devices.
For HDMI out, you will need to insert the cable with the device powered OFF or restart the device before HDMI out will work. ArkOS scales the 4:3 image properly which is a great feature.
For controllers, you have two options. You should be able to hook up most x-input or d-input USB controllers, but bear in mind they will need an OTG adapter to plug into the device’s USB-C port. Once connected, navigate to the EmulationStation options by pressing START, and select “Configure Input”. This will allow you to map the buttons to your controller, and it will automatically work with EmulationStation and RetroArch emulator cores. Standalone emulators (like PPSSPP) will still need to be re-mapped manually.
For bluetooth controllers, the process is the same, but you will need to connect to the controller first. To confirm that BT is on, press the START button in the main menu and look at the bottom of the EmulationStation settings screen. If it says “BT: On” then you are good to go. If not, press the F button + R3 and it will toggle it on.
To set up bluetooth (either for controllers or headphones), go to Options > Bluetooth and launch the Bluetooth Manager app. Here you can toggle on/off Bluetooth, connect to a new device, delete any device, or check to see what is currently connected.
If you are experiencing audio delay while using bluetooth headphones, you can try reducing audio latency in RetroArch. To do so, open RetroArch and select Settings > Audio > Output > Audio Latency (ms) and adjust it down from the default 128, all the way down to 64, to see if that improves the experience.
Tips and tricks
Here are some more advanced tricks to help you get the most out of your ArkOS installation.
- The SD2 cards are generally interchangeable between handheld devices. For example, you could use the same SD2 card with your Anbernic RG353M and RG351V devices to play the same games on each platform. Note that your RetroArch configurations on the SD1 card, and so they won’t be interchangeable. This means to have a seamless experience where you can resume your auto saves/loads from one device to the next, each device will need to be configured for auto save/load (more info in the RetroArch configuration section above).
- PortMaster is a wonderful service that will allow you to download and install ports directly on the device. You will need to supply your own commercial files for certain games, but many are freeware and can be downloaded and launched immediately. Check out the PortMaster wiki for specific instructions for each port. I also have several videos and guides for various ports, which you can see in my Ports category.
- ArkOS has its own battery indicator setting. The power LED will turn red when battery life is below 20%, and will blink red every second when battery is below 10%.
- ArkOS will generate a .m3u file for multi-disc PS1 games. Load your cue/bin or chd files into the folder, and each multi-disc game should have the word “disc” as part of its file name (disc 1, disc 2, etc). Boot the system up, go into Options and choose “PS1 – Generate m3u Files”. If you add games later, use the same tool to delete your m3u files and then generate them again.
- For a more stripped-down version of ArkOS, you can use BaRT (Boot and Recovery Tools). Hold down the B button while booting the device, and you will get the BaRT menu. From there you can choose “RetroArch” and the device will boot into just RA and nothing else. This limits certain emulators (like DraStic, PPSSPP, etc) but will also give you a very pure RetroArch experience. This setting will persist between boots, so if you want to go back to the standard ArkOS interface, press and hold B again while booting, and choose “EmulationStation”.
- Be sure to check out the FAQ section for your device on the ArkOS wiki, it is full of useful information like how to set up your own background music, enable rumble with certain emulator cores, and more.
Changelog
11APR2023
– added the RK2023 as an officially-supported device
27MAR2023
– published guide
of course, i only looked at the first line and knew there was a probl
LikeLike
I’ve been using AmberElec on my RG351MP and been thinking about trying ArkOS. Can I use the same roms card or will it be overwritten when I install ArkOS?
LikeLike
It won’t be overwritten, but the folder naming conventions (and I believe save locations) won’t be identical, and so you may experience quite a few bugs. I would recommend using a different SD2 card.
LikeLike
Hey, thanks for this, great guide & video.
But… im just having no luck whatsoever, and i dont know what’s goign wrong.
Brand new RG353M, ScanDisk 16G Sd card, when i flash it (i’ve used all of the flashers, and some other ones) and i get the exact same issue each time.
It turns on, i get the Anbernice Logo, then it boots to android. Not matter what i do, it just doesnt seem to start to do it’s own ArkOS thing, it’s as is it has no SD card in it.
I’ve followed the guide to the letter, and i’ve check the sd card is ok, and it seems to be. It works for windows, mac, Ras Pi, in a GoPro. I have both quick and fuly formatted it in the SD Card Formatter tool etc.
i feel like i’m doing something very simple wrong.
LikeLike
Hmm, that is a weird one. It sounds to me that the card is not initializing upon boot, you shouldn’t see an Anbernic logo at all. So it’s bypassing your card and going straight to the Android side. Two very simple questions (and please don’t take it the wrong way that I’m asking!) – are you using the RG353M ArkOS image, and are you putting it into the INT/TF1 card slot? If those are correct and it’s still having the issue, this is what I would do. Reformat the card with the sdcard.org formatting tool, re-download the file from the ArkOS page, and then flash it with Rufus. If that’s not working, my only guess is that there is something going on with the card.
LikeLike
Hi Russ,
I’ve recently ordered a RG353PS, and in your video review you showed how from day one it is possible to run ArkOS. I would like to do so, instead of using stock firmware, but I have few questions about external controllers.
Since I would like to use my handheld also connected via HDMI to play with my family, I was looking around on Discord and several website if it is possible to connect more than one external controller also with ArkOS. In addition, is it possible to connect, for example, two controllers with different connections (e.g. one via bluetooth and the other through the OTG port)?
If the answer is yes, I will definitely install ArkOS once I will receive my RG353PS! It will be my first retrogaming handheld device, and I became passionate to this world even thanks to your videos 🙂 I am following you from Italy, and I warmly want to thank you for your work!
I wish you all the best
Claudio
LikeLike
I can’t open the android os on my RG353M using the “hold down the function button while pressing the power button” method, is there any other way to open the android os or am I doing something wrong?
LikeLike
Hello everyone, I just recently got my RG353V. However, I ran into an issue after going to settings and clicking “Update”. The device downloaded what it needed to and it restarted. However, now I get a blank black screen. Does anyone know how to resolve this?
LikeLike