RG351P Firmware Comparison Guide

Last updated: 12JAN2021 (see Changelog for details)

The Anbernic RG351P has several different firmware (operating system) options beyond the stock firmware that ships with the device. So let’s look at the various firmware options available to you, and see which one might be the right fit for you.

Table of Contents
First things first
Kernel vs Firmware vs Operating System
Stock firmware


First things first

I’ve personally waited a while to provide this guide, because some of these firmwares are very new. For example, the stock firmware debuted with the device in late September 2020, 351ELEC was first released on 12 November 2020, and ArkOS came out on 15 November 2020. Since then, there has been a ton of development and refinement on these firmwares, with new updates at least weekly, if not daily. So some of the features and pros/cons for each of these software solutions may change in the blink of an eye. For that reason, I will try to focus on the design philosophy of each firmware, as well as currently-implemented features, so that you can make a decision regardless of whatever update and improvement is on the horizon.

All of the RG351P firmwares share the same overall organizational structure: they use a platform called EmulationStation as its frontend (user interface), and mostly use RetroArch to emulate the game systems. So regardless of which firmware you use, the user experience is actually very similar. This is a good thing, since you can test out each firmware relatively easily, with no huge learning curve to overcome.

Flashing firmware is a relatively simple process. To start, I recommend you use a new microSD card since the generic card that comes with the RG351P is low quality and prone to failure. Check out my Buyer’s Guide for a list of recommended microSD cards. Once you have a new microSD card, you will want to download the software image and flash it onto the card using a program like Win32 Disk Imager (Windows) or ApplePiBaker (Mac). For more information, refer to my Stock Firmware Guide (and be sure to save your BIOS folder no matter which firmware you end up using).

Note that the new RG351M and the older RG351P share the exact same internal hardware, so this entire guide applies to both systems.

Kernel vs Firmware vs Operating System

To start, we’re going to be throwing around some terms in this guide and it’s a good idea to define them first.

Kernel: A kernel is the heart of an operating system. It functions as a bridge between applications and the actual data processing done at the hardware level. The kernel is the first part of the operating system to load into memory during booting (i.e., system startup). In the case of the RG351P, the kernel provides the bridge between the device’s hardware components (buttons, rumble, screen, etc.) and the software that uses those components.

Firmware: Firmware is a class of software that provides low-level control over the device’s hardware. It can either provide a standardized operating environment for more complex software, or act as the device’s complete operating system. The BIOS files you find on gaming systems (for example, the PS1 BIOS , or Amiga Kickstarter) are considered a form of firmware. In the case of the RG351P (and other similar handheld devices, like the RG350 series), firmware can function as its entire operating system.

Operating System: An operating system (or OS) functions like a firmware but is generally more complex. Like with firmware, it loads a kernel first before taking over further operations.

When it comes to handheld systems, the major distinction between firmware and operating system is the size and functionality of the software. So I would classify the RG350/280 series of devices as running on firmware, and classify the Retroid Pocket 2’s Android software as being an operating system. The RG351P is a bit of a mixed bag: I would say that its stock modified version of EmuELEC, 351ELEC, and Batocera are all firmwares, while ArkOS is technically an operating system since it is based on Ubuntu. In reality, as each of these firmwares take on more functions and features, they inch closer to “operating systems” with each update, so the terminology is fairly blurry at this point.

But to simplify things, I will refer to almost all software images as “firmware” in this guide. Similarly, some people refer to any non-stock firmware as “custom firmware” or CFW, but I will just use “firmware” for everything.

Stock firmware

“Stock” firmware is the software that comes pre-loaded on the device. It features a modified version of EmuELEC, which has been around since 2019. EmuELEC is based on CoreELEC, and features some options that are highly compatible with handheld devices. There is some controversy around Anbernic’s use of EmuELEC in their devices, since EmuELEC expressly forbids its use in commercial devices (like the RG351P):

However, the distro includes many non-commercial emulators/libraries/cores/binaries and as such, it cannot be sold, bundled, offered, included, or anything similar, in any commercial product/application including but not limited to: Android Devices, Smart-TVs, TV-boxes, Hand-held Devices, Computers, SBCs, or anything else that can run EmuELEC. with those emulators/libraries/cores/binaries included.

from EmuELEC readme file

Given the fact that Anbernic used EmuELEC without permission, bundled it with a commercial product, and then loaded it up with illegal game files, the EmuELEC team does not support EmuELEC on the RG351P. What that means is that you shouldn’t go onto the EmuELEC GitHub page or Discord server for help, since the device is not supported. Moreover, any updates to the stock firmware will have to come directly from Anbernic. From this standpoint alone, I recommend switching over to another firmware once you have the device. But as you’ll see below, there are plenty of other reasons why the stock firmware has fewer features and quality-of-life options compared to other firmwares.

User interface: Like all of the firmwares available in this guide, the RG351P stock firmware uses the EmulationStation user interface for its frontend. This means that you will navigate to each system, then select a game from that system, and boot it up. After the game boots, its backend system, known as RetroArch, will load the game (there are some exceptions, like NDS and PSP, which run a different emulator backend). From there, you will close out the game in RetroArch and return to the main EmulationStation menu (press L3 + R3, then go to “Quit RetroArch”).

Within the main EmulationStation interface there are a number of configuration settings, where you can choose between a couple pre-loaded themes, set each system’s screen aspect ratio, and more. These settings aren’t the only configurations you can make on the device, and many of the most powerful configurations are actually in the RetroArch backend, so you’ll have to make those adjustments there. In general, check out my Starter Guide to see how to set up all of the configurations. If you have an OTG adapter and USB WiFi dongle, you can also connect to the internet and download new themes, load box art, set up RetroAchievements, or wirelessly connect to your device’s system files.

If you plug the microSD card into your computer, you will find two partitions: EmuELEC and GAMES. The first partition holds all of your firmware files, while the GAMES partition contains folders for your systems. If you want to delete or add games to your card, you would go into that respective folder (“snes” for Super Nintendo games, etc). Note that you need to be on MacOS or Windows 10 1703 in order to see the GAMES partition. The microSD card that ships with your device is generic and cheap, and they are prone to failure. For this reason, I recommend you backup and flash your card to another SD card from a reputable manufacturer like SanDisk or Samsung. Or, you could start with a clean install of the stock firmware and build your own library from there. Bear in mind that the original SD card has a folder named “bios” within its GAMES partition, which will allow certain systems (PS1, Dreamcast, GBA, Sega CD, and more) to boot. I recommend you save that folder to your computer and transfer it over to whatever firmware you end up using.

Emulator performance: Emulator performance on the stock firmware is what I consider to be the baseline for this device. In general, it plays the PlayStation 1 and older systems just about flawlessly. By default, the screen will need to be configured, because the RG351P’s 480×320 display is not ideal for retro gaming systems. Be sure to check out my Screen Configuration Guide to learn about how all of that works. More recent systems, like Nintendo 64, PlayStation Portable, Sega Dreamcast, and Nintendo DS, have poorer performance — I would expect about half of the games on each of those systems to be what I consider “playable” (~80% speed and with no game-breaking graphical/sound issues).

The most current firmware version of the stock firmware has some PSP improvements, making those games run a bit better than they did when they first shipped. If you have an older (pre-mid November) version of the firmware, you can update to 3.8 by following these instructions.


  • Preloaded with games. If you are not interested in creating your own game library, the stock SD card that comes with your device is loaded with games. You could always just transfer these games to other firmwares if you wanted, but this is the simplest solution out of the box. Bear in mind that these games are not in alphabetical order, and there are many misspelled titles and incorrect regions in these ROMs, so it’s not quite as handy as you might think.
  • EmuELEC interface. One nice thing about the EmuELEC interface is that you can configure most of your settings right there in the frontend. For those more specific settings, you’ll need to go into RetroArch and configure them.
  • External controller support. The stock firmware and Batocera are the only firmwares that support external USB controllers at this time, so if you want to use an OTG controller, this is one of your only options.


  • Not optimized. The stock firmware settings will account for about 75% of the changes you can make to your device. But that remaining 25% of tinkering can be a pain, with many simple functions (exiting a game and returning to the menu) that aren’t intuitive. Luckily, my Starter Guide will walk you through those processes.
  • Ethical quandary. I don’t like that this modified version of EmuELEC was used without permission, and it feels insulting to the EmuELEC developer to use their hard work without their permission.
  • Lack of updates. While Anbernic is likely doing their best to keep up with updates to the firmware, their production pales in comparison to the work being done right now with other, community-minded firmwares like 351ELEC and ArkOS. I expect that in the coming months, there will be even fewer reasons to stick with the stock firmware.
  • 32-bit firmware. While 32 vs 64-bit firmware differences are somewhat slight on a lightweight device like this, a lot of emulation development (in RetroArch, for example) is happening in the 64-bit userspace. This means that as a 32-bit firmware, the stock firmware will eventually have less room to grow than in firmwares that support 64-bit.

Who I would recommend this firmware to: If you know nothing about emulation, and just want to turn on the system and start playing games, the default firmware is your easiest solution. The screen won’t be properly configured for the best visual experience, and it might be confusing to figure out how to close games, but the rest is just a matter of adjusting the EmulationStation menu settings. In time, as you get more comfortable with the device and you want to start improving the experience, I recommend you go through my Starter Guide and start making those tweaks one at a time.

Default RetroArch hotkeys:
L3 + R3 = RetroArch menu

How to exit non-RetroArch games:

351ELEC SSH/FTP login credentials:
Username: root
Password: emuelec


351ELEC was the first custom firmware to be released for the RG351P, in November 2020. Its primary developer, fewtarius, bought an RG351P and liked it so much that he decided to jump back into the world of Linux development to improve the stock user interface. 351ELEC is a fork of the EmuELEC 3.9 firmware, but has drifted from its base firmware significantly since then. It is 100% open-source and features a 64-bit userspace, which gives it more freedom to improve and update for future apps. This firmware also is in active development, with a small team of developers and contributors working daily on new features and improvements.

User interface: Because 351ELEC is forked from EmuELEC, the user interface is very similar to that of the stock firmware. The firmware comes with two themes pre-loaded: Art Book and Handheld. They are both very simple themes, but are easy to navigate. In general, you can set most of the system configurations in the main system menu, without having to dig too far into RetroArch. 351ELEC is unique in that you can adjust RGA scaling (an important option in smoothing out distorted pixels on the RG351’s display) within the EmulationStation menu. Essentially, you don’t need to know how to use RetroArch at all to enjoy this firmware.

Emulator performance: Emulator performance is about the same as on the stock firmware for most classic systems. 351ELEC has implemented rumble support to GBA, PS1, and N64 games, which is a nice addition. Additionally, 351ELEC features the latest patch for PPSSPP v1.10.3, which allows you to set a max frame rate limit. This feature will greatly improve performance on hard-to-play games like the God of War games, WipeOut Pulse, and OutRun 2006. But one of its most significant characteristics is that the emulators all have optimized default settings. So if you aren’t interested in tinkering with your screen settings, 351ELEC by far has the best-looking gameplay performance out of the box.


  • Familiar interface. Because it is forked from EmuELEC, the interface will feel pretty similar to the stock firmware. If you don’t want to take a huge leap in user interface, but still want a lot of nice improvements to your user experience, this is the perfect solution.
  • Optimized default settings. 351ELEC does a great job of optimizing some of its default settings so that the games just look and play better right away. For example, the default display settings for each system have been configured so that you will have proper aspect ratio (no more squished games), and handheld systems like Game Boy will default to integer scaling for the most true image quality available. Moreover, RGA scaling has been set by default for emulators that would benefit from them, and Dreamcast has been improved to have a nice crisp display.
  • Powerful menu configuration. In recent weeks, the developer has implemented some powerful configuration options in the 351ELEC main menu, such as RGA scaling, which is one of the best screen configuration settings available for the RG351P. On other firmwares, RGA scaling can only be turned on via RetroArch, and it’s a little tricky to set up properly. In 351ELEC, you just have to flip a switch in the main menu, and that’s it, allowing you to avoid RetroArch altogether.
  • Online updates. This is a new feature that is really awesome. With a proper WiFi connection, you can download and install the latest version of 351ELEC from your couch, bed, or even from the toilet. Additionally, you have the ability to update via release channels, so you can test nightly or release candidate builds if you are interested in getting the latest and greatest (with a few bugs) instead of the standard, stable update.
  • 64-bit and 32-bit userspace. 64-bit firmwares theoretically can allow for more multitasking and improved efficiency for high graphical loads. This may not be a tangible improvement on relatively low-powered devices like the RG351P, but a lot of the development work on emulator (especially RetroArch cores) is happening in the 64-bit userspace, and having a 64-bit operating system means that 351ELEC will be relevant for years to come. It can also run 32-bit apps, giving you the best of both worlds.
  • GAMES partition. This firmware supports a separate, exFAT partition on your SD card that will allow you to plug the card into your computer (Mac, Windows, or Linux) and simply drag and drop games into their appropriate folder. This is really handy when loading up your game library, since it requires no extra software. 351ELEC recently made the transition from FAT32 to exFAT partition, which will improve stability (especially for Mac users).
  • Significant community support. The 351ELEC community is super helpful and responsive. They even have their own Discord server, so you can hop on and ask questions from the team themselves, or help test their nightly builds. You can also check out the developers GitHub Issues page, and see what’s on their “to-do” list for future development. They also have periodic community surveys to see what features are the most requested.
  • Community packages. 351ELEC has a new feature in its Updates menu that allows you to install community packages. So if you are a developer and you want to add your project as an optional install in the firmware, you can set it up following these instructions.
  • Small software image. 351ELEC is source-based, and only provides what is needed for functionality of the distribution. That results in a small image file size (700MB) versus the ArkOS image (2GB).
  • Movie player. 351ELEC is the only firmware that has a built-in media player, and it works great. One note is that H265 encoded .mp4 files do not play well, but H264 work great. Here are the supported file types: .mp4 .MP4 .mkv .MKV .avi .AVI .mov .MOV .wmv .WMV .m3u .M3U .mpg .MPG .ytb .YTB .twi .TWI
  • Quality of life options. Like many of the other firmwares, 351ELEC contains a number of nice features, including:
    • Timezone setting (important for Pokemon and Animal Crossing games)
    • 26 language options in the menu
    • Retro Achievements (requires WiFi)
    • Bluetooth controller support (requires USB bluetooth adapter)
    • Screensaver (with game videos)
    • Frontend background music
    • Scraper (to download game media)
    • Brightness shortcut (L3 + L1 for less bright, or +R1 for more bright)
    • Built-in file manager (Dingux Commander) for local files
    • Retro loading screen that displays the game name when launched
    • Preset RetroArch hotkeys


Admittedly, this list of CONS used to be much longer, but the 351ELEC community has been hard at work turning these cons into pros, and there is very little I *don’t* like about this firmware today.

  • Nintendo DS requires WiFi. If you want to play NDS games, you have to use a WiFi adapter on your device, because the DS emulator (DraStic) must be installed from the internet first. This is a one-time thing, but will be an extra hurdle if you don’t have a WiFi adapter. This is due to distribution licensing issues with the application.

Who I would recommend this firmware to: If you are already familiar with the stock firmware experience, but want a firmware that provides better user interface, a small-but-active community support system, and improved performance, this is a great choice. Additionally, its powerful user configurations can be done right in the main menu, allowing you to avoid having to master RetroArch if you’d like.

Default RetroArch hotkeys:
L3 + R3 = RetroArch menu
SELECT = Hotkey enable
SELECT + START (x2) = Quit RA
SELECT + X = RetroArch menu
SELECT + Y = FPS toggle
SELECT + A = Pause emulation
SELECT + B = Reset game
SELECT + L1 = Load save state
SELECT + R1 = Save state
SELECT + UP (d-pad) = Save state slot +1
SELECT + DOWN (d-pad) = Save state slot -1
SELECT + L2 = Rewind (If supported/enabled)
SELECT + R2 = Fast-forward

351ELEC SSH/FTP login credentials:
Username: root
Password: 351elec


ArkOS was released a few days after 351ELEC, in November 2020. Its primary developer, christianhatian, had already developed an operating system called TheRA for other devices that use the RG351P’s RK3326 chipset, so he ended up naming this new operating system ArkOS (“Another RK3326 OS”). ArkOS is primarily focused on ease of use, performance, and online updates. Unlike EmuELEC and 351ELEC, ArkOS is based on Ubuntu 19.10, which gives it flexibility to incorporate a large number of emulators and applications in the future.

User interface: ArkOS uses EmulationStation as its frontend, which means it’s not that far off from EmuELEC or 351ELEC. The frontend experience is a little barebones compared to those other firmwares, which means that most of your configuration is done via RetroArch. Personally, I prefer it that way, since I am very comfortable in the RetroArch interface. It has a bit of a learning curve, but RetroArch behaves predictably once you have it figured out.

ArkOS is unique in that it has its own OPTIONS menu independent of the main menu. Within this OPTIONS menu you can set up WiFi, update your operating system over the internet, adjust the CPU clock speed, and backup your OS settings.

Emulator performance: Emulator performance is about the same as on the stock firmware for most classic systems. ArkOS has also implemented rumble support to GBA, PS1, Dreamcast, Pokemon Mini, and N64 games. The OS also supports two different standalone versions of Mupen64plus, which have very nice performance — all told, you have four different N64 emulators to choose from. It also runs the latest patch version of PPSSPP (1.10.3) that has a pretty nice speed hack. And unlike with 351ELEC, the Nintendo DS emulator (DraStic) works without having to download and install anything first. For more information about supported platforms and ports, check out this page.


  • Online friendly. In addition to the ability to update the OS via WiFi, you can also go into RetroArch and update individual cores over the internet, a feature that isn’t available in the other firmwares. This basically means that once you flash ArkOS on your SD card, you never really need to remove that card from your device again. Additionally, you can also remotely access your device via any web browser, which is really handy if your computer runs Windows that is older than Windows 10 1703.
  • Comprehensive wiki. ArkOS has a very handy wiki page that includes comprehensive installation instructions, detailed information about supported emulators and ports, FAQs for common issues, and even a primer on how emulation works on the RG351P.
  • Flexibility with other devices. In addition to the RG351P, ArkOS has been released for the PowKiddy RGB10 (and by extension, the RGB20) and the RK2020 devices. This means you can use any of these devices to run online NetPlay via RetroArch, giving you a ton of variety and flexibility.
  • Ability to incorporate Linux apps. Because ArkOS is built on Ubuntu 19.10, it has a lot of flexibility to import Linux apps into the operating system. It’s not as simple as dropping a file into the SD card, but it does give the OS a good amount of potential. Theoretically, Raspberry Pi apps could someday make their way to this OS, which is exciting. One example of a recent port to ArkOS is LZDoom, which allows users to play DOOM mods that weren’t previously possible on the RG351P. Additionally, games like Half-Life have been ported over, and there are more coming all the time.
  • Custom themes. A user named Jetup has been updating existing EmulationStation themes to better fit the RG351P’s small screen (most themes are built with monitors/TVs in mind). ArkOS currently has several pre-built themes packaged with the OS, making it very easy to find a theme that works for you.
  • 64-bit and 32-bit userspace. 64-bit firmwares theoretically can allow for more multitasking and improved efficiency for high graphical loads. This may not be a tangible improvement on relatively low-powered devices like the RG351P, but a lot of the development work on emulator (especially RetroArch cores) is happening in the 64-bit userspace, and having a 64-bit operating system means that 351ELEC will be relevant for years to come. Not only that, but ArkOS also supports 32-bit emulators too. This means that if there is a 32-bit emulator that performs better than its 64-bit counterpart, you can use that one as well — the best of both worlds.
  • exFAT EASYROMS partition. This firmware supports a separate, exFAT partition on your SD card that will allow you to plug the card into your computer (Mac, Windows, or Linux) and simply drag and drop games into their appropriate folder. This is really handy when loading up your games library, since it requires no extra software. exFAT is known to be more compatible with MacOS, and slightly faster than FAT32 partitions.
  • GitHub issues page. While ArkOS doesn’t have the formal community support that 351ELEC enjoys, the ArkOS developer does have a GitHub Issues page, where you can see what issues have been submitted (or submit your own) to help improve the OS.
  • Quality of life options. Like many of the other firmwares, 351ELEC contains a number of nice features, including:
    • Timezone setting (important for Pokemon and Animal Crossing games)
    • 8 language options in the menu
    • Retro Achievements (requires WiFi)
    • Screensaver (with game videos)
    • Brightness shortcut (R3 + DOWN for less bright, or +UP for more bright)


  • Requires familiarity with RetroArch. RetroArch is a powerful emulation backend, but it can be quite intimidating to new users. As one person pointed out to me, “it feels like it was made for developers, and not users”. Once you get the hang of how it works, it can be quite useful. ArkOS delegates a lot of its system and screen configurations to RetroArch (where they should be, in my opinion), so you do have more flexibility, at the cost of requiring you to understand RetroArch. My Starter Guide will walk you through some of those fundamentals, like setting hotkeys, configuring overrides, and adjusting the screen.
  • Limited community support. ArkOS has a nice wiki page, but is really the work of just one developer. For that reason, it can sometimes be difficult to find answers to questions (although the aforementioned wiki does cover most issues). And because the development “team” is small, new feature implementation may not happen as quickly as you may wish — the developer has only so much time to devote to the OS each day, so he must prioritize his work. In general, ArkOS is a fully-realized OS already, so new features aren’t critical to enjoying the excellent OS that already exists.
  • Large(r) software image. ArkOS is somewhat “heavy” in file size due to all of the overhead files contained in Ubuntu 19.10. Conversely, 351ELEC is source-based, and only provides what is needed for functionality of the distribution. The ArkOS image is about 2GB, compared to the small 351ELEC image size (700MB).

Who I would recommend this firmware to: If you’re looking for a single, self-contained operating system for your device, and you consider yourself to be fairly tech-savvy, ArkOS is a great solution. It behaves much like a smartphone, with online updates and a seamless user experience. Getting your display settings perfect will require knowledge of RetroArch, but once it’s set up you won’t need to mess with it again. I would expect that as time marches on, 351ELEC will gain new features more quickly than ArkOS (since 351ELEC has more organized community support), but since 351ELEC is open-source, these features may make it to ArkOS at some point anyway.

Default RetroArch hotkeys:
SELECT + X = RetroArch menu
SELECT + L1 = load save state
SELECT + R1 = save state
SELECT + A = pause current game
SELECT + B = reset current game
SELECT + START (x2) = exit game and return to main menu

ArkOS SSH/FTP login credentials:
Username: ark
Password: ark
note that "Enable Network Services" must be set upon every reboot


Batocera is a lightweight Linux distribution that concentrates on retro gaming. It recently released an RG351P version of its .29 software. The Batocera firmware is 100% open-source, and has been around for about five years at this point. That being said, the RG351P version is brand new, and there are still a lot of issues with this firmware.

User interface: Batocera also uses EmulationStation as its main user interface, so navigating the game systems should be relatively straightforward. One thing to note is that its CONFIRM and CLEAR buttons, usually A and B respectively, are swapped on this firmware (so the B button is “CONFIRM”); this may take some time to adjust to.

Emulator performance: Emulator performance is generally on par with the other firmwares. One exception is the default standalone Nintendo 64 emulator, which has an excellent balance of graphical fidelity (640×480 by default), accuracy (some minor graphical issues), and speed. Batocera was also the first firmware to implement the PPSSPP 1.10.3 patched version, which features a max framerate hack that allows for greatly improved performance. But this new PPSSPP version is already added to 351ELEC and ArkOS. So its one big advantage now exists elsewhere.


  • Online updates. Like ArkOS, Batocera is set up for online updates. I’m not sure if it works at this time, since no updates have come out since the firmware’s initial release.
  • Superb N64 emulation. When I started writing this guide, the Nintendo 64 emulator on this device seemed to be the best mix of accuracy, graphical fidelity, and speed that I’ve seen on the RG351P so far. However, within a few days, this emulator has been implemented in ArkOS, and the 351ELEC team is working on adding it as well.
  • Lots of themes. Batocera has many themes available to download, more than the other firmwares. Note that these themes are not optimized for the RG351P’s screen, so many of the assets will appear very small. One theme, “Batocera Club” is 3.3GB in size — definitely not ideal for a small handheld like this.
  • NetPlay settings in menu. NetPlay is possible via RetroArch, but it is confusing and unreliable on the RG351P. Batocera simplifies the process by porting all of its functions to the main EmulationStation menu, allowing you to set everything up in a familiar interface. This feature is not available in other firmwares at this time.
  • Small software image. Batocera has a small image file size (750MB) versus the ArkOS image (2GB).
  • Quality of life options. Like many of the other firmwares, Batocera contains a number of nice features, including:
    • 26 language options in the menu
    • External controller support (in menus only, requires RA configuration)
    • Bluetooth controller support (requires USB bluetooth adapter)
    • Retro Achievements (requires WiFi)
    • Screensaver (with game videos)
    • Frontend background music (pre-loaded)
    • Custom loading/splash screen (must be 320×480, with image facing right)
    • Scraper (to download game media)


  • Lots of bugs. This is a big one. This firmware is not optimized for the RG351P, and it shows. For example, the battery indicator isn’t accurate, the led light is orange instead of yellow, RetroArch will crash if you try and use any menu driver besides RGUI, and you have to toggle WiFi on/off with every reboot in order to have network access. In general, I dealt with a large amount of crashes on this firmware. If I was able to find these issues in the first few minutes of testing the firmware, there are likely many more issues I didn’t find.
  • No default GAMES partition. We’ve been spoiled by the innovative GAMES/EASYROMS SD card partition on most of the other firmwares, which allow you to insert your microSD card directly into your PC/Mac and drag & drop game files onto the system. Batocera does not have this feature by default, so you will have to transfer everything over WiFi FTP. This method is much slower, and can take a looong time for systems like PSP, PS1, Dreamcast, etc. Luckily, Batocera functions as a local server, so depending on your computer’s network settings your computer may actually identify the device without having to use an FTP client at all. To set up an exFAT partition, go into the Main Menu > System Settings > Developer > “Format a Disk” and change the File System to exFAT and select “Format Now”. Note that this will delete all the content from your roms folder, so you will need to reload all of your game files.
  • No sleep mode. All of the other firmwares support sleep mode, where you tap the power button to put the device to sleep without fully powering it down. This is a really handy feature for when you want to pause your gameplay for a bit. Unfortunately, Batocera doesn’t have this option.
  • One of MANY distributions. Batocera has many different distributions, to include support for Windows PC (x86 and x64), Mac, Intel NUCs, GPi case, Odroid Go Advance, RGB10, RK2020, Odroid boards, Rockchip boards, and NINE different Raspberry Pi models. While the amount of versatility is nice, I worry that the RG351P version will be neglected in favor of more popular devices. For example, there is very seldom any mention of the RG351P on the Batocera Discord server. By comparison, ArkOS and 351ELEC have dedicated development teams focused primarily on the RG351P. A large team like the Batocera development team may be able to bring in new features more quickly, but they likely won’t be tweaked to perfection for the RG351P like the other more focused teams can.

Who I would recommend this firmware to: If you’re already a fan of how Batocera works on other platforms, then this might be a good choice for you. Its PSP performance was the best available on this device until a few days ago when 351ELEC incorporated the same emulator into its firmware (and I expect ArkOS will follow suit shortly). So unfortunately, at this time I would recommend 351ELEC or ArkOS over Batocera, because its cons currently outweigh its pros.

Default RetroArch hotkeys:
SELECT + B = RetroArch menu
SELECT + X = load save state
SELECT + Y = save state
SELECT + A = reset current game
SELECT + L2/R2 = change shader
SELECT + Right (D-Pad) = fast forward (hold)
SELECT + Up/Down (D-Pad) = change save state slot
SELECT + START = exit game and return to main menu

Batocera SSH/FTP login credentials:
Username: root
Password: linux


So which firmware is best for you? Honestly, it’s highly subjective. I prefer not to use the stock firmware because Anbernic is using the EmuELEC firmware without permission (it also has fewer features than the other options). Batocera needs to work out a lot of kinks before I consider it to be fully fleshed out. I really like the online RetroArch core update functions of ArkOS, but I also love the community support and Discord server for 351ELEC. For the most part, I use ArkOS for my personal needs, but I also keep an SD card loaded with 351ELEC around because it’s also really great, and more geared towards the new user.


– updated info with latest versions of 351ELEC and ArkOS

– published guide

12 thoughts on “RG351P Firmware Comparison Guide

  1. That’s awesome. But how do you pull up the keyboard in DosBox on the ArkOS firmware? I’m trying to run Blood and other DOS games, but the startup requires that you press 123 or 4 to get it started. I’ve checked ChristianHatian’s Github, and it didn’t say. Also, I’ve noticed lessening Rumble in PS1 games. Most notably in Midevil. Thank you for helping me out with my favorite hobby, and have a great Christmas.


    1. I don’t think the onscreen keyboard works for that version of DOSBox. But did you see that the latest ArkOS update now has DOSBOX Pure, which was literally released today by Libretro? That’s crazy. I haven’t dug into it yet but I heard it’s amazing. That’s weird about rumble on PS1, I hadn’t noticed but I’ll keep an eye out for it. Hope you have a nice Christmas as well!


      1. The Dos pure works a lot better, but it’s still not running the good stuff. I can get Blood to the title screen, and that’s it . Shadow Warrior started gameplay, but it’s an uncontrollable mess. I’m trying the PSP homebrews that Tech James previewed on his channel, and so far Call of Duty Zombies runs… Just very slowly. PS1 rumble is still decreased except in save states of games I was playing (Resident Evil HD remake PS1 hack and RE3 Nemesis.) I’m also figuring out the Half Life port which might be interesting. I appreciate the hard work you put into your videos, and making it so that anyone can follow the instructions. Trial and error isn’t fun. Have a good one!


  2. Thanks for writing this! Almost immediately after getting my 351p (my first dedicated retro handheld since the GP2X), I installed ArkOS based on your recommendation. It’s been a fantastic experience. I recently started wondering if I should experiment with other firmwares like Batocera, but this confirms I’ll be sticking with ArkOS for now.

    I just wanted you to know how invaluable your site has been for me. Thank you for being so generous in sharing your knowledge and insights. I hope you have a merry Christmas/happy holidays!


  3. Your guides have been incredibly helpful! I received my RG351P last week and installed ArkOS. I’m happy with it, except for the PSX emulation. The audio is choppy and the video is stuttery, despite getting 40-50 FPS. The PSX emulation is actually better on the stock firmware using the SD card that came with the device. Is your PSX performance on ArkOS also bad? I might try 351elec to see how it does.


    1. From one Tim to another, my PSX has had zero audio issues like that on ArkOS. Both PSX and PSP have been silky smooth. N64 is the one that is stuttery for me.


  4. Hi,
    What I love about ArkOS is the fact that it is a real OS. You can find `perl’, `vim (tiny)’, etc.
    Just with `perl’ it unlocks a lot of possibilities.

    However, there is something that really bothers me like hell. All of them, EmuELEC, 351ELEC, ArkOS, Batocera, create too small partitions. For instance, you cannot download all the theme without resizing partitions,
    They really should put that kind of stuff with the roms.


  5. Hi, I have a question about the latest versione of ArkOS running on the RG351P: when i put my device in standby mode, pressing the power button, the power led remains green. Is it expected or do I have power saving issues?

    Liked by 1 person

    1. Hi, this is a deliberate feature. It’s to make sure you know that the device is in sleep mode vs powered off. The light doesn’t drain much battery — after a 24-hour cycle on sleep mode, I only lose about 1-2% battery.

      Liked by 1 person

  6. I had several issues about charging mine. It was the cable I had to change it, even with some adapter it wasn’t enough. So I bought a USB 3 to USB-C fast charging and a charger at 2.4A. Now when it says 100% it is 100% ^^.

    I don’t think it’s ArkOS. I just plug mine (I have the last version as you) and it’s orange.

    I’m not saying that you have a power issue, I’m just saying I had one, and I do not have this issue at this moment.

    Liked by 1 person

  7. thanks for the great guide, I have tested all 3 well, and I can assure you that belonging to the battery indicator batocera 29 both on PSP and Dreamcast is much better in terms of performance, even if the others have the same ppsspp patches do not go as smoothly, even with the same settings. even on Dreamcast with 640 x 480. until the others catch up there is no possibility of evaluating other firmware

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s