PowKiddy RGB30 Starter Guide

Last updated: 31MAR2024 (see Changelog for details)

The PowKiddy RGB30 has quickly become one of my favorite budget handhelds. It has a wonderful 720p screen with a 1:1 aspect ratio, which makes it perfectly suited for emulating a variety of retro systems. It’s also comfortable and affordable — only $90 retail with free shipping!

This guide will help you get set up with the device, from the very basics to some of my favorite advanced settings.

Buy one here:
PowKiddy website (use code “retrogamecorps” for 5% off your order)
AliExpress (frequently has sales/coupons)
Amazon (more expensive but faster shipping and easy returns)

Table of Contents
Where to buy
Recommended accessories
Build your ROM library
JELOS installation
Adding ROMs and BIOS files
Configuring JELOS
Recommended settings
Adjust game positioning
Bezels & overlays
Hotkeys
Scrape game media
Pairing bluetooth controllers
Netplay
Charging tips and tricks
ArkOS
MinUI
Moonlight game streaming
PortMaster
Hardware mods

Changelog

Where to buy

There are two official places to buy the PowKiddy RGB30:

Official PowKiddy website: This is the official place to buy directly from the company. Shipping will be free, and if you use code “retrogamecorps” you will get 5% off the purchase price. There are other discounts available, like $5 off if you sign up for their newsletter (note that you can’t stack the discounts).

AliExpress page: This is the official PowKiddy vendor page on AliExpress, which is a popular online marketplace in China. They will often ship worldwide, and the site will also provide some discounts depending on their current promotions.

There are also unofficial ways to purchase this device, like through third-party retailers such as KeepRetro, and you can even find listings on Amazon. Just bear in mind that these third-party sites will often charge a markup over the official prices above.

Note that when buying the PowKiddy RGB30, there may be an option to buy “additional storage” for the device at a small fee. This means the device will come with an additional microSD card that is pre-loaded with games — the larger the card, the more games it will contain. But keep in mind that the ROMs that come with these games are often poorly organized, or with incorrect versions of the games (hacks or wrong region). It is always best to build your own ROM library (more info below).

SanDisk (left) and Samsung (right) microSD cards

Recommended accessories

The PowKiddy RGB30 will come with a single 16GB microSD card to host the operating system, and if you choose, you can buy a version with a second SD card (pre-installed with games) to accompany it. These cards are from a generic brand and are often prone to failure. Your safest bet is to replace your cards with microSD cards from a well-known brand, which will prevent the cards from getting corrupted over time. 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.

The “TF1” slot on your device holds the system firmware, so for that card 16GB is ideal. The “TF2” slot is for your game files, so you will want a larger card for that one. You can either use a single-card setup to host both your system files and the games on one card, or you can separate the two functions using a dual SD card setup. I recommend a dual-card setup for ease of use, and you can use that second SD card in other devices with a similar setup.

In general, I recommend the cards listed below, in order of preference. The prices fluctuate all the time, so keep an eye out for deals. In general, I would expect to pay about $8 for a 16GB card, $12 for a 128GB card, and $18 for a 256GB card. For the SD2 slot, I recommend a 128GB card or higher, which will allow you to load EVERY 8-bit and 16-bit game out there, all of the arcade games that work, and a large number of CD-based game files (Sega CD, PSX, Saturn, Dreamcast, and so on).

16GB cards: 
SanDisk Ultra  
SanDisk Industrial (more reliable but pricey)

128GB cards:
SanDisk Extreme
Samsung EVO Select
SanDisk Ultra

256GB cards:
SanDisk Extreme
Samsung EVO Select
SanDisk Ultra

If you don’t have a nice 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 had mine for years and it’s been rock solid.

As far as carrying cases go, I have found that 2.5″ HDD cases will often fit the RGB30 really well. I personally recommend this one, which fits the device perfectly and has a handy mesh pouch for your charging cable, too.

When connected your PowKiddy RGB30 to an external display, you will need a mini HDMI adapter or a mini HDMI to HDMI cable. A number of Bluetooth controllers will also work with this device, but I have found that the 8bitDo SN30 Pro is a nicely-built controller with wide compatibility.

The screen on the PowKiddy RGB30 is also mysteriously prone to smudging, so if you want to reduce the smudging you may want to invest in a screen protector. They are relatively hard to find for this unique screen, but I use these from Amazon and they are a perfect fit.

Build your ROM library

Since the PowKiddy RGB30 may take a while to ship, I would recommend that you build your ROM library now, if you haven’t already. Here is a general list of systems that can be played on the PowKiddy RGB30. For a more comprehensive list, check this page. Those noted with an asterisk cannot play every game at full speed, and so performance may vary. ROM file sources will not be shared on this website.

Home Consoles:

Panasonic 3DO *
Atari 2600/5200/7800
Atari Jaguar *
Colecovision
PC Engine (TurboGrafx-16)
PC Engine CD (TurboGrafx-CD)
Nintendo Entertainment System
Famicom Disk System
Super Nintendo
Nintendo 64 *
Sega Master System
Sega Genesis / CD / 32X
Sega Saturn *
Sega Dreamcast *
Neo-Geo / CD
NEC PC-FX
Sony PlayStation

Handheld Consoles:

Atari Lynx
Game and Watch
Nintendo Game Boy
Nintendo Game Boy Color
Nintendo Game Boy Advance
Nintendo DS
Nintendo Virtual Boy
Pokemon Mini
Sega Game Gear
Neo-Geo Pocket / Color
Sony Playstation Portable *
Wonderswan / Color

Home Computers:

Amiga
Amstrad CPC
Atari ST
Commodore 64 (and C16/Plus4/C128)
Intellivision
MSX
PC (DOSBOX)
ScummVM
ZX Spectrum

Arcade Systems:

MAME 2003-Plus
Final Burn Neo
Atomiswave *
Naomi *

When getting ROM files, I recommend using the “No-Intro” naming convention, which is the standard naming used for ROM sets within RetroArch and other emulation communities. By using no-intro naming, you will be more likely to get box art automatically added when you load up your games and scrape their media. If you have a question as to how a game should be named, I recommend checking out the Libretro thumbnails directory. If your game name matches the thumbnail name found in this directory, chances are that it will properly download the media for it.

Additionally, an important component of a ROM library is maintaining BIOS files. BIOS files are system files necessary for some emulators (GBA, Sega CD, or PS1), and are helpful in improving accuracy with other systems. These files are copyrighted so you are on your own to find them, but a quick search for a RetroArch bios pack should get you on your way.  Here is more information about BIOS files.

Here is a listing of the most common BIOS files:

GAME BOY (for boot logo):
gb_bios.bin

GAME BOY COLOR (for boot logo)
gbc_bios.bin

GAME BOY ADVANCE:
gba_bios.bin

FAMICOM DISK SYSTEM:
disksys.rom

NEO GEO:
neogeo.zip (place in the neogeo folder)

SEGA CD:
bios_CD_E.bin
bios_CD_J.bin
bios_CD_U.bin

TURBOGRAFX-CD:
syscard1.pce
syscard2.pce
syscard3.pce

PLAYSTATION 1:
scph1001.bin

SATURN:
saturn_bios.bin

DREAMCAST (place in a folder named "dc" within the BIOS folder):
dc_boot.bin
naomi.zip (Naomi)
awbios.zip (Atomiswave)

JELOS installation

Update: as of March 2024, JELOS has been retired and the team members have forked it into a new OS, called ROCKNIX (Rockchip + Linux). In this guide I will keep the references to JELOS but link to the ROCKNIX installation page, since the installation process and configuration are the same.

Chances are, your PowKiddy RGB30 will already come pre-installed with JELOS. To get the latest version, simply connect to your home network (via the Network Settings menu) and then update the firmware via the System Settings menu. However, if you would like to use a newer, more reliable microSD card than the one that comes with your device, here is how to install JELOS from scratch.

This guide assumes you are working with new, blank microSD cards. If you are using cards that are not new, I recommend formatting them using the official tool from sdcard.org before starting.

  1. Download and install Balena Etcher. This is a special software application that will flash the JELOS image to your microSD card.
  2. Download the latest release of JELOS for the PowKiddy RGB30. You can find it on their Releases page, in the section labelled “Installation Package Downloads”. The file will be named “JELOS-RK3566.aarch64-########.img.gz”, where the “#” symbols will indicate the date that the build was created, and it will be about 1GB altogether.
  3. Using a USB card reader, insert your 16GB microSD card into your PC, then open up Balena Etcher. Click the “Flash from File” button and navigate to where your JELOS image file was downloaded, and select it. On the next tab, under “Target”, select your 16GB microSD card. Finally, click the “Flash!” button to being the process. You will get a prompt asking for your permission, just click through the prompt. The card will flash and verify your image, and once it is done, you can remove the card from your PC.
  4. Insert the 16GB microSD card into the “TF1” slot on the PowKiddy RGB30, and also insert a larger microSD card into the “TF2” slot. Power on the device and let it run through its initial setup. Once you see the main EmulationStation interface, press START to open the main menu, and navigate to SYSTEM SETTINGS > HARDWARE > STORAGE and choose “CREATE GAME DIRECTORIES”. Back on the main menu, navigate to QUIT > SHUTDOWN SYSTEM.

** Note that the “CREATE GAME DIRECTORIES” option above is new and not included in the video guide above. Additionally, if you run into any issues where the game directories are NOT created after following that step, insert your TF2 card into your PC and create a folder named “roms” (lowercase and without quotes) in the root directory of the SD card, and try to create game directories again.

Adding ROMs and BIOS files

  • Remove the larger microSD card from the TF2 slot and insert it into your PC using a USB reader. Inside this card you should find a series of subfolders, all named after various systems that will run on the PowKiddy RGB30. This is where you will add your ROM/game files. For a listing of each system, the corresponding folder, and accepted file types, consult this page from the JELOS wiki.
  • Adding BIOS files can be tricky, but most of them will go in the “bios” folder on your “TF2” microSD card. There are some exceptions; for example, the neogeo.zip BIOS file will go in the neogeo folder. See above for a list of recommended BIOS files for most common systems.

Games and BIOS files can be added and removed at any time from your microSD card, and every time you boot the device it will detect any changes to your games list and will update accordingly.

Where are my games? If you flash a new SD1 card of JELOS but also use an older SD2 (games) card, your games may not appear in the JELOS menu. That’s because in late 2023 JELOS shifted over to a merged storage feature, which allows you to store games on both SD1 and SD2 cards if you format them to ext4, which required some directory changes. Regardless, if you are not seeing your games but they are on the card, that’s because the games folders now go into a folder named “roms”. To set it up, insert your SD2 card into your PC, then create a folder named “roms” in the main directory if it isn’t there already. Now, move all your game folders into that roms folder. After that, JELOS will detect all your games.

Adding Pico-8 is a different process. Go to the Lexaloffle website and purchase Pico-8 for $15, then download the Raspberry Pi version of the console (you can also download the other versions and use them on your Mac/PC!). Then unzip the file and put all of its contents in the pico8 folder on your TF2 card. Make sure you device is connected to the internet, then launch Pico-8 from the JELOS menu. You can browse and download games directly on the device.

Configuring JELOS

When first starting up JELOS, here are the steps I recommend to initially set up your device.

The very basics: Power on the device by pressing and holding the POWER button for a few seconds. To power off the device, press START then choose QUIT > SHUTDOWN SYSTEM. The RGB30 should be considered a small PC, and in that sense, it is best to shut the device down via the Menu instead of pressing the POWER button to turn it off.

  • When the device is turned on, press the START button to bring up the Main Menu. This will be your main location for adjusting JELOS options.
  • First, go to the Network Settings section and turn on the “Enable Network” option, then add your WiFi credentials to connect to your home network. If you aren’t seeing your WiFi network after enabling the network, back out of Network Settings and then go back in, and try again. If you would like, you can also enable Samba or SSH within this menu for wireless file sharing.
  • In the Game Settings section, you can adjust configurations like overall aspect ratio and integer scaling. If you are just starting out, I recommend using the default options. One exception is the “Auto Save/Load” option, I recommend setting this to “Show Save States if not Empty”. This will auto-save your game when you exit it, and if there is an auto-save associated with your game when you boot it, it will give you the option to choose that auto-save or start the game from the beginning.
  • Within the Game Settings section, there is an option for Per System Advanced Configuration. Here, you can make adjustments specific to a certain console. Here are some scenarios where this might be important:
    • If you want to change out the default emulator for a specific console, you can do that here. For example, NES uses Nestopia as its default emulator, but you could change it to FCEUMM, QuickNES, or Mesen instead.
    • You could specify a certain aspect ratio for each console, like 4:3 or 8:7 for SNES.
    • In the Shader Set section, you can choose a shader to load with each console. For handheld systems, I recommend using the Handheld/LCD3x shader to give an LCD-like feel.
    • For Game Boy, you can set a colorization option to mimic older LCD panels. My favorite is called “Special 1”.
    • For harder-to-run systems like N64, Dreamcast, Saturn, and PSP, I recommend adjusting the Default CPU Governor to PERFORMANCE to improve their overall speed.
  • Finally, at the bottom of the Game Settings section, you can add your RetroAchievements login credentials.
  • In the System Settings section, you can set your time zone, display options (like saturation level), and update your JELOS firmware.
  • In the UI Settings menu, you can change your theme or configure the current theme. You can use a tool like ThemeMaster to download new themes for the device, but bear in mind that very few have been optimized for the RGB30’s 1:1 screen at the time of making this guide. Here is a link to the theme gallery if you’d like to have a look.
    • Also within the UI Settings menu you can set the EmulationStation language, choose to swap the A and B buttons within the menu, and choose to see the frames per second (FPS) when playing games in RetroArch.

Recommended settings

The unique aspect ratio and resolution found on the RGB30’s screen presents some wonderful opportunities for crisp, chunky pixels when playing retro systems. Here are my recommended JELOS settings for each major system. Note that some of these settings will not provide complete integer scaling, but they are my preferred configurations for an optimal balance between screen size and square pixels. If you would like to come up with your own configurations, I recommend using Shaun Inman’s “Console to Screen” tool.

SYSTEMEMULATORASPECT RATIOINTEGER SCALINGCPU GOVERNORSHADER
Game BoyDefaultCore ProvidedONPowerSaveHandheld/LCD3X
Game Boy ColorDefaultCore ProvidedONPowerSaveHandheld/LCD3X
Game Boy AdvanceDefaultCore ProvidedONDefaultHandheld/LCD3X
Game GearDefaultCore ProvidedONPowerSaveHandheld/LCD3X
Neo Geo Pocket ColorDefaultCore ProvidedONPowerSaveHandheld/LCD3X
Nintendo DSDefaultN/AN/APerformance
Pico-8DefaultN/AONDefault
MAMEMame2003-PlusCore ProvidedOFFDefaultCRT/CRT-GEOM
FinalBurn NeoDefaultCore ProvidedOFFDefaultCRT/CRT-GEOM
Neo GeoDefaultCore ProvidedOFFDefaultCRT/CRT-GEOM
NESDefault8:7OFFDefault
SNESDefault8:7ONDefault
Sega GenesisDefault4:3OFFDefault
Sega CDDefault4:3OFFDefault
Sega 32XDefault4:3OFFDefault
TurboGrafx-16/PCEDefault8:7OFFDefault
TurboGrafx-CDDefault8:7OFFDefault
PlayStationDefault4:3OFFPerformance
Nintendo 64Mupen (standalone)4:3OFFPerformance
SaturnDefaultN/AN/APerformance
DreamcastDefault4:3OFFPerformance
PSPN/AN/AN/APerformance
Note that not every N64, Saturn, Dreamcast, and PSP game will play at full speed on this chipset, no matter the settings configuration.

Some notes:

  • Turning Integer Scaling ON will make the image slightly smaller, but with balanced pixels. The size of the image will vary depending on the system you are emulating. If you would rather have it take up the full screen at the expense of unbalanced pixels, simply turn Integer Scaling OFF. Thankfully, the 720p resolution on the device makes it really difficult to see unbalanced pixels!
  • Shaders are nestled in their own subfolders within the Shaders listing. The LCD3X shader is found in the “Handheld” section of the Shaders listing. Shaders are optional and very subjective! Another shader I like to use for arcade and home console systems as the CRT-GEOM shader (found in the “CRT” section of the Shaders listing). You can also create your own custom shader configurations by following this guide.
  • For Nintendo DS, press the L3 button after starting a game up, and go into the “Configure Options”. In “Video Options”, make sure that Frame Skip Type is set to “none”, and “High-resolution 3D” is set to “yes”. Under the “Configure Controls” section, go to “Extra Controls” and make sure that “Swap Orientation A” is set to L2, and “Swap Orientation B” is set to R2. Select “Exit save for all games” when leaving each menu. Now when playing a game, you can press L2 and R2 to swap between vertical/horizontal or full screen orientations, depending on the game you are playing.
  • For NES, start up a game then press SELECT + X to bring up the RetroArch Quick Menu. Go to Core Options > Video and set the Mask Overscan option to “8” for Top/Bottom/Left/Right. Within Core Options > Emulation Hacks, you can remove the sprite limit and set the CPU Speed to 2x if you prefer to bypass the inherent slowdown that came from playing NES games on the original console.
  • For SNES, you can use Integer Scale Overscale to get the best image. Set the configurations as seen in the table above, then start up a game and press SELECT + X to bring up the RA Quick Menu. Navigate to Video > Scaling and turn Integer Scale Overscale to ON. Navigate back to Main Menu > Quick Menu > Overrides, and choose “Save Content Directory Override”.
  • For PS1, start up a game and press SELECT + X to bring up the RetroArch Quick Menu. Go to Core Options > GPU Plugin and turn ON both Enhanced Resolution and Enhanced Resolution Speed Hack. Now every game will be upscaled to at least 480p. If you run into any game that doesn’t play at full speed with these settings, turn them OFF and then go to Core Options > Manage Core Options and choose “Save Game Options”. This means that the game will not have the enhanced resolution, but the others will.
  • N64 performance varies by game, if you run into performance or compatibility issues, it may be in your best interest to experiment with the emulator for each game. To do so, hover over a game in the JELOS menu, then press the X button, then select “Advanced Game Options” and choose a different emulator to see how it performs. Some have noted that the best default performance experience will be by using the standalone Mupen64Plus emulator, GlideN64 video plugin, and the “Fast” Core and RSP plugins. Not every N64 game will play at full speed on this chipset.
  • Saturn works best with its default standalone emulator. Start up a game and press SELECT to bring up the Quick Menu. Under Config, set the Resolution to “Original”, the Aspect Ratio to “4:3”, and Rotate Screen Resolution to “Original”.
  • PSP is a standalone emulator, press L3 to bring up the menu. I recommend setting the rendering resolution to 1x for the best performance.

Adjust game positioning

By default, the games you launch in RetroArch (the main emulator backend) will display in the center of the screen, giving you black borders on the top and bottom of the display. If you would prefer to have the games positioned at the top of the screen instead, here is how to set that up.

  • In the Per System Advanced Configuration menu, choose the system you want to adjust.
  • Under Aspect Ratio, choose CUSTOM. It should default to whatever aspect ratio you were previously using.
  • Start up a game with that system, then press SELECT + X to bring up the RetroArch Quick Menu
  • Back out to the Settings menu, then choose Video > Scaling. Under “Custom Aspect Ratio (Y Position)” change the value to 0
  • Go back to the RetroArch Quick Menu, then choose Overrides > Save Content Directory Override

Not this will only work with Integer Scaling turned OFF. If you want integer scaling and the image at the top of the screen, you’ll need to turn Integer Scaling ON, then set the aspect ratio to “Custom” and then turn OFF Integer Scaling. This will keep the original integer scale values in the “Custom Aspect Ratio (Width/Height)” section, while allowing you to adjust the Y Position as well.

That’s it, now any time you start up a game from that system, the screen will be displayed at the top. Note that if you change the aspect ratio to anything else within the JELOS menu, the image will re-center on the display. In terms of aspect ratio, this will default to the “Core Provided” aspect ratio for that system, but you can adjust it manually by adjusting the “Custom Aspect Ratio (Width/Height)” values, or by setting a different aspect ratio before toggling back to the Custom option. For reference, a standard 4:3 aspect ratio will be 720×540 pixels.

N64 configuration is a little more involved, since many games have various levels of screen size depending on the game, so each game would need to be saved individually. We’re going to use Banjo Kazooie as our example. In JELOS, go to Tools > Start 64-bit RetroArch. Then in RetroArch go to Settings > User Interface > Menu Item Visibility > Quick Menu > Show ‘Save Game Overrides’ > ON. Then, go to the main RetroArch menu > Configuration > Save Current Configuration. Now, in JELOS, hover over the game and press the X button, then select “Advanced Game Options” and change the aspect ratio to CUSTOM. Next, start up Banjo Kazooie through the main JELOS menu with the default N64 emulator (Mupen64 core). Press SELECT + X to bring up the RetroArch Quick Menu, then go to Settings > Video > Scaling and set the following values:

  • Custom Aspect Ratio (X Position): -48
  • Custom Aspect Ratio (Y Position): 32
  • Custom Aspect Ratio (Width): 800
  • Custom Aspect Ratio (Height): 600

If that looks good to you, go to Quick Menu > Overrides > Save Game Override. Now every time you start that game, it will be properly configured. Because the screen size may vary between N64 titles, you may have to adjust the values above to really dial in those graphics.

(click image to enlarge)

Bezels & overlays

If you want to use integer scaling with your RGB30 but also want to fill in the black bars at the same time, then you can use bezels or overlays. The RGB30 has some set up by default, you can see them in action by watching this video from TechDweeb. Be sure to check out the link he has in the video description for TechDweeb-inspired bezels he created!

To set up overlays, download a pack below and then add the files to the “bezels” folder of your SD2 card. Then, open a game and press the SELECT + X button to bring up the RetroArch Quick Menu. Navigate to On-Screen Overlay > Display Overlay > ON, then go to Overlay Preset and navigate to the roms folder (you’ll need to select “Parent Directory” twice before it appears). Then go to roms > bezels and find the cfg file for your desired overlay. You can now back out to your game and see if you like the way it looks. If you are satisfied, go into the Quick Menu > Overrides > Save Content Directory Overrides so that all future games from that system will use that overlay.

Here are some repositories of other RGB30-friendly overlays if you’d like to explore further:

Note that the Jetup overlays were pulled from the RGH discord, and so you may want to visit their RGB30 channel for further updates.

Hotkeys

There are two sets of hotkeys that are important to consider: those while in the main (EmulationStation) menu, and those while in a game (RetroArch for most systems).

JELOS hotkeys:
X while hovering over a game = Quick Menu
X (hold) while hovering over a game = add to favorites
SELECT + Volume Up = increase brightness
SELECT + Volume Down = decrease brightness
L1 + Start + Select = force close any app

RetroArch hotkeys:
Select + Start (2x) = quit game
Select + X = RetroArch quick menu
Select + Y = toggle FPS
Select + R1 = save state
Select + L1 = load state
Select + R2 = fast forward
Select + L2 = rewind (if enabled in Game Settings)

Some emulators have their own hotkeys. For example, to bring up the menu in Yabasanshiro (the default Saturn emulator), press the SELECT button. In PPSSPP (PSP emulator), press the L3 button. More info can be found here.

Scraping game media

Once you have added all of your game files, let’s scrape the media to improve the navigation experience.

  • To start, head over to ScreenScraper and create a free account if you haven’t already. Make note of your login credentials.
  • On your PowKiddy RGB30, press START to bring up the Main Menu. Navigate to the Scraper section, then in the USERNAME and PASSWORD sections, add your ScreenScraper credentials.
  • From there, choose which types of media you wish to download. I like to use “Box 2D” as my image source, and I also turn on the “Scrape Videos” option. Everything else I leave unchecked.
  • Once you are ready to scrape, select the “Next” button and on the next page, under the “Systems Included” menu, choose which systems you want to scrape for media. Then, select the “Start” button and the scraping process will begin. Depending on the size of your library, it may take some time.

If you come across any games that don’t have proper media art, you can hover over the game with your cursor, press the X button, and in the quick menu select “Scrape” to scrape the game individually. This will give you the option to change the search keywords to help you find the correct game.

Pairing bluetooth controllers

Setting up bluetooth controllers is pretty simple. In the Main Menu, open the Controller & Bluetooth Settings menu. Turn on the Enable Bluetooth option, then put your controller in pairing mode (this will vary depending on your controller’s instructions). Once the controller is attempting to pair, on your RGB30 select the “Pair a Bluetooth Device” option. It will scan and find your controller, and you should be paired.

Once the controller is paired, navigate to the Controller Mapping section and follow the prompts to pair your bluetooth controller’s buttons. Finally, configure the settings within “P1’s Controller” and “P2’s Controller” so that the controller is assigned the right player for however you’d like to set up your play session.

From then on out, when you turn on your controller, the RGB30 should find the controller automatically and assign it to the appropriate player. If hooking the device up to an external display via HDMI, press L1 + START + SELECT to toggle between on-screen and HDMI output (or restart the device with the HDMI plugged in).

Netplay

JELOS has some robust Netplay options, including the ability to play over the Internet, or locally (no Internet required!). In the video above I show you how to set it up across multiple JELOS-based devices, and it will all work seamlessly with the PowKiddy RGB30 as well.

JELOS also has a written guide on their wiki.

Charging tips and tricks

The RGB30 (and really any RK3566 chipset device) has some strange charging/battery quirks. Some of these are conjecture based on user experiences, but here is a summary of some of the issues and resolutions I’ve noticed:

  • Charge the device using the leftmost (“USB”) port. Use a USB-A to USB-C cable (instead of a C-to-C cable), and for best results, charge it with a smaller cell phone charging brick, or plugging it directly into a PC. You will know the device is charging when the LED turns orange when plugged in.
  • If you charge the device while powered off, it will partially “turn on” to accept the charge. This is perfectly fine, and the device will charge as expected. However, if you unplug the device while it is charging in this state, it will remain in this partially “turned on” state, and drain the battery fairly quickly — you can see this because the green LED will stay on after you unplug it. To fully power it down after unplugging it, simply hold on the POWER button for a few seconds until the green LED goes away.
  • Note that battery/charging behavior can depend on what firmware cards you are using. For example, with no cards in the device, the LED will be orange when charging, but red when charging with a JELOS card inside. So if your device isn’t performing exactly as described in the point above, don’t worry — like I said, the charging behavior of this device is quirky.
  • If your battery fully discharges, it may have issues booting up or charging. This is an issue with the chipset itself. To resolve it, you may have to open the device up, unplug the battery cable, and plug it back in.
  • You can get an average of about six hours of gameplay on a single charge. Older/lighter systems like Game Boy will give you more battery life, and more heavy-duty systems (N64) will give you less.
  • Within JELOS, there are some additional options in the System Settings menu for power saving: “Enhanced Power Saving”, “CPU Power Saving”, and “Audio Power Saving”. Enabling these options will likely improve battery life even more.

ArkOS

There are several custom firmware options available for the RGB30. ArkOS is very similar to JELOS but its configuration is a little different. Instead of making system/console/game adjustments within the EmulationStation interface, most of the configuration is done directly in RetroArch. For further instructions on how to set up and use ArkOS, check out the video above and this written guide.

I would consider the setup of ArkOS to be more advanced than JELOS, but does provide more direct control over your RetroArch settings. Anecdotally, I have also seen reports that ArkOS performs better with the higher-end systems like N64, Dreamcast, and Saturn.

MinUI

There is now a version of the pared-down MinUI custom firmware available for the RGB30 as well. This barebones OS provides an extremely simple user interface, optimized screen configurations, and a universal menu system. However, because this is a simpler OS experience, it only officially supports certain portable and home console systems. Notable absences include arcade emulation, Neo Geo Pocket Color, Nintendo DS, and native Pico-8.

MinUI supported systems: NES, SNES, GB, GBC, GBA, Genesis, PS1, Super Game Boy, Pokemon Mini, Virtual Boy, Sega Master System, Pico-8 (emulated), Game Gear, and TurboGrafx-16. Those in bold are part of the “base” installation, and the others are part of the “extras” paks (more info below).

There are also community “paks” of emulator cores that have been made for MinUI, and some of these may work on the RGB30 as well. Here is an example collection, but note that in my testing, this collection is not yet working with the RGB30. I’ll add more as they are developed.

Despite these (deliberate) limitations, this OS has some advantages over the others. For example, its menu system is so simple that anyone can navigate it without issue: find the system, then the game, and then launch it by pressing the “A” button; to exit a game, press either L3 or R3 (press down the analog stick), and then choose to save/load a save state, or quit the game. To turn the device off, simply press and hold the POWER button. Additionally, if you hold down the power button while in a game, it will save your state and power down the device – when powering it back on, it’ll resume your game exactly where you were. The resolution scaling has also been curated for the RGB30’s screen, giving you an ieal visual experience without any additional configuration. Additionally, the second (GAMES) SD card can be used interchangeably with other MinUI-supported devices, like the Miyoo Mini (and Plus), RG35XX, and TrimUI Smart.

MinUI on the RGB30 is designed to be used with two microSD cards, a smaller one (e.g. 16GB) for the underlying OS subsystem (called “MOSS”), and a second/larger card for storing your ROMs, BIOS, and saves.

First card installation:

  • Download the latest MOSS release from its repo. MOSS = “MinUI OS Subsystem”, and is a pared-down fork of JELOS.
  • Using Balena Etcher or your flashing application of choice, flash the MOSS img.gz file to a smaller (e.g. 16GB) microSD card.

Second card installation:

  • Download the latest MinUI release from its repo. The “base” file includes all of the standard systems, and the “extra” file is necessary if you want additional systems like SGB, PokeMini, VB, SMS, GG, Pico-8, and TG-16. Unzip the contents of each package.
  • Format the card using your OS (this can be done by right-clicking on the SD card and selecting “Format” on Windows, or the “Erase” option within Mac’s Disk Utility app. If the card is 32GB or smaller, it will be formatted to FAT32. Rename the card to “TFGAME”
    • If the card is larger than 32GB, I recommend you do a special process to format the card to FAT32, so that it can be cross-compatible with other devices like the Miyoo Mini, RG35XX, and TrimUI Smart.
    • If using Windows, use the guiformat tool to format the card to FAT32. Rename the card to “TFGAME”.
    • If you have a Mac, “Erase” the disk using the Mac’s built-in Disk Utility app, with the format MS-DOS (FAT), rename the card “TFGAME”
  • Once the card is formatted, add the contents of the “base” folder to the card. You can also add the “extra” folder contents, choosing to “merge” any conflicts with the file system.

Insert both cards into your device, then power it on. It will take a couple minutes to initialize, but once you are done you should see the main MinUI interface. Hold the POWER button to turn the device off, then remove the SD2 card and add your games to their respective subfolder within the ROMS folder on the card. If needed, add your BIOS files (more info can be found in the MinUI readme file that is part of the zip package you first downloaded).

Notes:

  • MinUI on the RGB30 is a 64-bit architecture, which may cause compatibility issues when using the same card for 32-bit architecture devices (Miyoo Mini/Plus, RG35XX, TrimUI Smart). So far this has only manifested in save states not being cross-compatible between RGB30 and other devices (in-game saves still work fine).

Moonlight game streaming

Above is an older video showing how to set up Moonlight game streaming, and there is also an accompanying written guide, but I’ll walk you quick through how I set up Moonlight streaming on my (non-NVIDIA) Windows PC. This process can be done with either JELOS or ArkOS, although these steps were written with JELOS in mind.

First, we need your PC’s IP address. To find it, go to Windows Menu > Settings > Network > Properties, and it will be listed under IPv4 address (usually it will be 192.168.86.XX, with XX being a serialized number on your home network). Make note of that IP address.

To get the PC to properly detect your PowKiddy RGB30 controller, I recommend installing the ViGEmBus driver. Simply download the latest release from their GitHub page, then run the exe file on your PC to install the driver. Restart your PC after the setup is complete just to be sure the driver is properly loaded.

Next, on your PC, download the Sunshine app. I recommend the “sunshine-windows-portable.zip” file found within the Assets section of their latest release. You may need to select the “Show all 24 assets” link near the bottom of the Release to see the file. Once downloaded, unzip this file on your PC and place the Sunshine folder somewhere handy, like your Desktop.

Start up the sunshine.exe file within the Sunshine folder, and a Command Prompt window will appear with a bunch of code. Once you see the “Registered Sunshine mDNS service”, you are ready to start. On your PC web browser, type in https://localhost:47990 — you will likely get a warning about an unsafe connection, go ahead and accept and proceed to localhost. You will be prompted to create a username and password for Sunshine, I recommend making it something very simple. Once you have created your credentials, it will ask you to log in.

Once logged in, navigate to the Configuration tab and scroll down. Under “Advertised Resolutions and FPS”, remove all options except 1280×720 and 60 FPS, then scroll to the bottom and click on the “Save” button. Click on “Apply” to restart Sunshine. If you’d like you can also create custom resolution options to reflect the device’s square aspect ratio (like 720×720 or even 1440×1440 for wider compatibility). Once Sunshine has restarted, scroll to the top banner and choose the “PIN” tab and then return to your PowKiddy RGB30.

On the device, go to Main Menu > Moonlight Game Streaming. In the Settings > Server IP section, enter the IP address of your PC. Next, make note of the “Pairing PIN” listed on the screen, then select the “Pair with Server” option. Back on your PC, type that PIN into your Sunshine page, and the two devices should pair. On the RGB30, choose the “Update Moonlight Games” option; after that, you should see a Moonlight section in your main EmulationStation menu, with two options: Desktop and Steam Big Picture. You should be able to choose either of these options to connect to your PC.

From here on out, any time you want to connect your PowKiddy RGB30 to your PC, you will need to go into the Sunshine folder on your PC and start the sunshine.exe file. After that, you should be able to connect by launching either the Desktop or Steam Big Picture options from your RGB30’s menu. To disconnect, press L1 + SELECT + START on your device.

PortMaster

PortMaster is a powerful tool for both ArkOS and JELOS that will allow you to download and install ports directly onto your device. Note that some of these ports may not work properly with the RGB30 and its unconventional 1:1 aspect ratio, or because some of these ports were specifically made for older devices and haven’t been updated to account for the RGB30. These ports can be broken up into two options:

  • Ready to Run Ports. These are games that are freeware or open source. You can download the entire game directly from PortMaster.
  • Commercial Ports. These are games that have been ported over to Linux-based devices like the PowKiddy RGB30, but require commercial files to actually run. You can download the game’s boot/shell files from PortMaster, but afterwards you will need to add your own commercial files by following the instructions on this page.

To start PortMaster, make sure you are connected to WiFi, then go into Tools > Start PortMaster. Navigate to the “All Available Ports” and download any games that interest you, then add any necessary gamedata files based on the PortMaster wiki.

Some ports will work on the PowKiddy RGB30 but may not be a part of PortMaster, such as TMNT: Shredder’s Revenge and Super Mario 64. Guides for those games can be found in my Ports category on this website.

For the best results, I recommend changing the default CPU Governor to PERFORMANCE for most ports. Hover over the game in the Ports menu and press the X button to bring up the Quick Menu. Select “Advanced Game Options” and within there, change the CPU Governor to PERFORMANCE.

(stick and rumble images courtesy of C0unt_Zer0 on the Retro Handhelds discord server)

Hardware mods

The PowKiddy RGB30 has some excellent hardware for its price, but it is not perfect. In particular there are a few mods you can do to improve the experience of owning this device.

Add Hall-sensor analog sticks. You can swap out the default analog sticks for Hall-sensor sticks, to give you a more accurate analog signal, and to prevent stick drift. The Hall sticks from the Anbernic RG353M have a nice grippy texture to them, but you will have to contact the company via their AliExpress store page to request them. Otherwise, the GuliKit Switch sticks will also work, but are not as grippy.

Add rumble. If you have the tools, you can solder in your own rumble motors to enhance your experience with the devices that support it. See the photo above for guidance. Note that as of making this guide, only ArkOS supports rumble on the RGB30.

Improve d-pad diagonals. You can add electrical or kapton tape to the center of the d-pad connections to prevent false diagonals (see the Starter Guide video above for a demonstration). Somewhere between a 16mm and 17mm square placed in the center of the d-pad connections seems to do the trick. See the image above for an example, I found that for best results you want to cover about 50% of the d-pad connection.

Add a new d-pad and membranes. People in the community have figured out that the rubber membranes from the Anbernic RG353 devices, and the d-pad from the RG353M are a perfect fit for the RGB30, and give the device a much nicer and more tactile feel. Whether you want to cannibalize a $100+ device to improve a $90 device is totally up to you! You can also contact Anbernic directly via their AliExpress store page to request them, which will cost about $10 altogether. For my part, I did replace the membranes with those from an RG353VS and it felt immediately better — more tactile and responsive. However, I tried using the RG353VS d-pad and found that it sat too low in the case, so I changed it back to the original RGB30 d-pad. After some investigation, the RG353VS d-pad is 7.74mm in height, whereas the RGB30 (and RG353M) d-pads are 8.0mm, so that is where the difference is coming from.

Add d-pad spacer. Discord user drkhrse made a d-pad spacer that you can 3D-print to increase the height on the d-pad, which further prevents d-pad diagonals. Here is a copy of the STL file (right-click and select “save file as”). According to drkhrse, “I personally am using the higher STL file that has a slightly higher center point (I did not fully test the lower one, but included it just in case anyone wanted to use it)…alongside the d-pad tape mods, it solved my issues and makes it feel much better, especially in directional games like Ms Pacman, which was damn near unplayable for me before.” Others have noticed that you will need to fine-tune the 3D-printed model with a polishing block, and add a piece of packing tape under the pivot point to eliminate friction.

Reduce rattling of the shoulder and trigger buttons. If you’d like, you can reduce rattling of the top buttons by adding layers of felt to the sides of the buttons and the inside case. This video from Joe Bleeps demonstrates the process.


Changelog

31MAR2024
– updated JELOS link with a link to ROCKINX instead

29FEB2024
– added note about JELOS build pause for RGB30 with link to latest release

05FEB2024
– added instructions for N64 screen size adjustment

01FEB2024
– added instructions in case your games are not appearing in the JELOS menu

05JAN2024
– updated installation instructions to accommodate new “create game directories” function in JELOS

19NOV2023
– added link to stock overlays

12NOV2023
– added more overlays to the bezels section

29OCT2023
– added more N64 performance recommendations

28OCT2023
– added instructions on how to center the image at the top of the display in RetroArch
– updated hardware mods with additional information

27OCT2023
– publish guide
– added bezels section

35 thoughts on “PowKiddy RGB30 Starter Guide

  1. Hi ! Excellent guide, just two questions for thing you may add :
    – can you explain how to connect to the console via samba and ssh ?
    – can you explain how to save an overlay for a specific core ? I tried and all my cores have the same overlay, which is a pain

    Thanks !

    Like

  2. Is there somehow a way to add more than one WiFi network?
    Since JELOS uses Linux it should be capable of this (and I think it’s only a shortcoming of EmulationStation that there’s only the option to add a single one, right?).

    I really love the concept of retro-achievements, but being only able to use them when connected to a specific WiFi is a little bit counterproductive on a portable device.

    Liked by 1 person

  3. Amazing guide! Thanks so much for making this simple and convincing me to finally take the dive into retro gaming.

    Question, what mode do I need to put the 8bitdo controller in to pair with the RGB30?

    Like

  4. Do we decompress the .img.gz file for JELOS into a .img file, or leave it as a img.gz file when flashing to the 16GB SD card?

    It shows .img when you flashed yours in Balena Etcher in the video, but you selected the .img.gz file.

    Like

      1. Thanks for the clarification, was just confused by the video in the guide. Got everything up and running today.

        Like

  5. Hi I was wondering if besides swapping with another device, is there any advantage/disadvantage to using one larger card in slot one?

    Like

  6. Hi! Is there a way to fully reset the console to all original settings? I am asking because my buttons dont work as they should.

    Like

  7. Just wanted to let you know that at least on my rgb30 (running JELOS) the green led instantly turns off when unplugging after charging.
    Maybe there are different hardware revisions (or JELOS changed something).

    Like

  8. Hi! I’m trying to connect different controllers as I have so many different ones. I was wondering if you can connect a DS3 or DS4? I’ve got it to see my DS4 but it won’t save it and can’t figure out how to even start with a DS3.
    Thanks!

    Like

  9. It would be really helpful if this guide could include instructions on configuring some of the more exotic systems. I have been trying to get MSX and TI99 4/A ROMs to load but the JELOS wiki is quite bare in its coverage.

    Like

  10. Hey, csn you add advice how to save multidisc games for psx? I have chd format for each CD and point to folder with m3u, but scraper also downloads inages and videos for each cdh CD in folder.

    Thanks!

    Like

  11. Hi! Thanks for the guide! Is it possible to develop commercial games for that kind of handheld devices? Is there any app store?…

    Like

  12. Hi, Russ. Please, share the stock theme for the RGB30. The update froze and corrupted my card. Had to start from scratch. Thank you.

    Like

  13. Hi Russ, I want to swap the Dpad on my RGB30 as it has sharp edges and gets uncomfortable after some time, any suggestions on which Dpad to go with or which ones will fit? Thank you.

    Like

  14. People on reddit suggest this setting improves things with audio
    ————-
    If you go into RetroArch, audio settings, sound filters, and use the crystalizer filter, it sounds MUCH better.
    ————-

    Like

  15. Excellent tutorial. I just got my RGB30 (with JelOS and roms preinstalled on a 64gb sd). I noticed that with some emulators (including Genesis, NeoGeo and PSX) the audio in games does not work with the “default” emulator. For NeoGeo I solved it by changing it, ditto for PSX, but for Sega Genesis there is no way to get the audio to work in games. Any suggestions?

    Like

  16. Great article! Does anyone know to backup my booting SD cards as a single image, I am afraid I will screw up the card. By the way, I am using Windows.

    Like

  17. Hey Russ, great guide as always. The MinUI section needs a little update. Pico8 native and wifi are both supported now it seems. 

    Like

  18. Do you know how to map controller settings and what the optimal control setup is? I tried playing Tony Hawk after making your changes and graphically it runs fine but the controls are horrendous. Any helps or tips on recommended setups is appreciated.

    Like

  19. Doesn’t look like Rocknix has a build for RGC30 yet. Their releases page has a SHA file for RK3566 but nothing else.

    Like

Leave a comment