Last updated: 08JUL2021 (see Changelog for details)
The RG350 and RG280 devices run on a Linux-based firmware called OpenDingux. This operating system was originally intended for the GCW-0 retro handheld device, which was part of a successful Kickstarter campaign back in 2013. And while this old firmware presents some advantages (like 7+ years of app development history), its kernel has become outdated over time. Luckily, developer zcrc has been working on getting the current upstream Linux onto these devices, and for about a month now there have been nightly builds of a public beta for this new firmware, which is simply called “OpenDingux” (I’ll refer to it as “OD beta” throughout this guide). To read more about its development, check out this update from this past summer.
Long story short, I’ve been following this beta release for a couple months now, and I think it’s time to say that you should consider flashing this firmware onto your device. I first touched on this beta in my Super Mario 64 guide, but at the time I didn’t see any real benefit to loading it other than to play SM64 on a device that shouldn’t really be able to play this game so dang well. But since then, the OD beta has been getting better and better, including added support for the RG280 devices.
So in this guide I’ll show you how to install the OD beta firmware, and also provide a list (with links!) to all the OPKs/apps that run on it. This guide applies to the RG350, RG350P, RG350M, RG300X, RG280M, and RG280V devices.
Table of Contents: First and foremost Features and improvements in the OpenDingux beta firmware Potential or "in progress" features Known issues or bugs Installation instructions How to update OpenDingux Beta Optimized and compatible emulators / OPKs RetroArch for OpenDingux Beta Shortcuts/hotkeys Notes Changelog
First and foremost
THIS IS BETA FIRMWARE. You should expect some bugs when you are using this update, and many of the apps you have on your device will likely not work. I would recommend that you try out this software on an SD card that is NOT your primary card. In general, this OD beta firmware should be for those who like to experiment with their device and see what it can do, and are comfortable with apps crashing, etc.
Features and improvements in the OpenDingux beta firmware
So far, here are a list of working features and improvements on the beta OD firmware.
- Single OPK: Instead of trying to hunt down a specific firmware file, a single .opk file will cover upgrade app for the RG350, RG350P, RG350M, RG280V, and RG280M (plus the original device, the GCW-0).
- USB MTP Mass Storage: This feature allows you to simply plug your RG350/280 device into your PC or Mac and access both SD cards from the Windows/MacOS environment. No more need to FTP! Note that for Mac, you will need to install this Android File Transfer app.
- Sleep mode: Simply tap the power button to enter and exit sleep mode.
- 640×480 GMenu2x interface for RG350M: This allows for a high-resolution display on the 350M menus, including full-size wallpaper images, which isn’t possible on the stock firmware. This also means you can fit more icons on the screen!
- Improved performance: There are a lot of under-the-hood updates to the firmware which should see some nice performance gains for emulators that are optimized for it.
- Sleep mode: Simply press POWER +Y to enter sleep mode, and tap the POWER button to bring the device back to life.
- Bicubic scaling: This will give a clearer scaling image for games, compared to bilinear scaling.
- External gamepad support: You should be able to plug in external gamepads (including the Xbox 360 controller)
- Mass storage device support: You can plug in low-power flash drives and external hard drives.
- Updated upstream kernel/drivers/buildroot for more modern ports (like the Super Mario 64 port)
- Linux Kernel 5.10 (instead of 3.12 from 2013 on stock firmware)
- KMSDRM video drivers
- updated Etnaviv GPU drivers
- huge pages support
- 8-bit paletted mode
Potential or “in progress” features
Here are some of the features that have been discussed for this firmware. It’s not a guarantee that they’ll appear in the future, but something that is on the developers’ radar:
- Bluetooth (dongle) support
- HDMI support
- WiFi support (currently implemented in the GCWconnect app)
- Sharpness controls (formerly POWER + UP/DOWN)
- Screenshot hotkey/shortcut (formerly POWER + X)
- Left analog mapped to left d-pad (formerly POWER + B)
Known issues or bugs
Like any new software, this beta has several bugs that I discovered during my testing. I expect these to be fixed in the future, and with near-daily updates, some of these may already be fixed by the time you read this. If you’d like to follow along with the published commits, here is the link.
- The MTP Mass Storage (USB) mode is temperamental — it will often disconnect in the middle of a transfer. It’s easy enough to reconnect, but it can be a pain.
Although this beta release is relatively stable, I recommend you experiment with a separate SD card so that you can go back to your primary stock SD card.
To start, you want to begin with clean stock firmware. If you have the HDMI patch installed on your RG350, RG350P, or RG350M, you are going to want to re-flash it with the clean stock firmware instead. To check whether you have the HDMI patch installed, go to the Settings tab on your device, and open System Info. If the “Root File System Version” was compiled on May 21, 2020, then you have the HDMI patch installed. Additionally, if you use the Rogue custom firmware, it also won’t work. It’s best just to start with a brand new SD card with clean stock firmware.
Here are links to clean stock firmware:
RG350 / RG350P
Once you have clean stock firmware installed, download the latest OD beta firmware (choose the one labeled “gcw0-update”), and place it on your external SD card (“TF2”), in a folder named “APPS”. If you don’t have an Apps folder, just create one. This folder should be in your main/root folder on your external SD card, same place as your “ROMs” folder.
Boot up your system, then in the Applications tab you should see a new app called “OD Update”. Simply run that app and follow the on-screen instructions to update to the OD beta firmware.
How to update OpenDingux Beta
It’s super easy to periodically update your system. Just download the most recent version of the beta firmware, place the OPK file in your APPS folder and re-run the installation. All of your apps and saves will be preserved.
Optimized and compatible emulators / OPKs
Here is a comprehensive list of emulators and ports/OPKs that work on the OpenDingux beta firmware. I’ve divided them into two categories: optimized and compatible. Optimized means that the program was recompiled specifically for the OD beta. Compatible means that the OPK works but was not optimized for the OD beta.
To add these apps to your device, you will want to plug your device into your PC or Mac via USB cable. On PC, you should see a “Mass Storage Drive” appear in your Windows Explorer. On a Mac, you need to install and run the Android File Transfer app first, and then plug in your device. Now, all you need to do is navigate to the media/data/apps folder on your device, and add these OPKs.
3DOh (Panasonic 3DO)
Arnold (Amstrad GX4000)
FCEUX (gameblabla) (Nintendo Entertainment System)
FCEUX (plrguez) (Nintendo Entertainment System)
Final Burn Alpha (Arcade)
Fuse (ZX Spectrum)
Gambatte DMS (Nintendo Game Boy, Game Boy Color)
Genesis Plus GX (Sega Master System, Genesis, Game Gear, Sega CD)
Handy (Atari Lynx)
Mupen64 Plus (Nintendo 64)
NGPCemu (Neo Geo Pocket Color)
PCSX4All (gameblabla) (Sony PlayStation 1)
PCSX4all (jdgleaver) (Sony PlayStation 1)*
Picodrive (Sega Genesis, Sega CD, Sega 32X)
PocketSNES (Super Nintendo)**
Pokemini (Pokemon Mini)
ReGBA (pcercuei) (Nintendo Game Boy Advance)
ReGBA (jdgleaver) (Nintendo Game Boy Advance)*
ScummVM (Point-and-Click PC)***
SMS Plus GX (Sega Master System, Game Gear, SG-1000, ColecoVision)
Temper (PC Engine / TG-16)
UAE4All (Amiga 500)
VBAnext (Nintendo Game Boy Advance)
VBemu (Nintendo Virtual Boy)
* My preferred emulator when there are multiple options
** For PocketSNES, be sure to use the “PocketSNES_new.opk” file.
*** ScummVM boots, but is buggy.
Genesis Plus GX (2019-12-23) (Sega Sega Master System, Genesis, Game Gear, Sega CD)*
*For Genesis Plus GX (2019-12-23), Sega Genesis games must be in .zip format to run. Sega CD games must be in .ISO format.
** Arcade games must be selected via the Explorer UI versus the typical app UI. Many games don’t load.
Note: the OpenDingux community has been hard at work getting many ports working for OD Beta. Here is a comprehensive list from GitHub user neilswann80.
Optimized standalone ports/OPKs:
Commander (file manager)
Heart of Darkness
HeborisC7EX (Tetris clone)
Sonic Robo Blast 2
Sonic Robo Blast 2 Kart
Super Mario War
Super Mario 64
Compatible standalone ports/OPKs:
Odamex (Doom, Doom II)*
SaveSync (backup save games)
Streets of Rage Remake
* Doesn’t work on RG280V.
– The source for many of these files is gameblabla’s excellent repository. Be sure to click on the actual file name, then select the “Download” button within that subpage.
– GBA bios (gba_bios.bin) must be placed in the home/.gpsp folder
– PSX bios (scph1001.bin) must be placed in the home/.pcsx4all/bios folder
– Sega CD bios (bios_CD_E.bin, bios_CD_J.bin, bios_CD_U.bin) must be placed in the home/.genplus/bios and home/.picodrive folders.
RetroArch for OpenDingux Beta
RetroArch was recently built specifically for the OpenDingux Beta, with huge performance gains thanks to the OD Beta improvements. Check out this full RetroArch guide for more info.
POWER + START + SELECT = reboot POWER + UP = volume up POWER + DOWN = volume down POWER + RIGHT = brightness up POWER + LEFT = brightness down POWER + B = mouse mode (formerly POWER + L1) POWER + A = hardware scaling ratio mode POWER + SELECT = kill current app POWER + Y = sleep mode (tap POWER to resume)
Note that hotkeys need to be pressed sequentially (POWER and then the next button), and not simultaneously.
- If you’d like to install new wallpaper on your device, you will need to place it in the home/.gmenu2x/skins/320×240/(name of skin)/wallpapers folder. You will likely have to create the “wallpapers” folder. The image must be in .png format, and 320×240 pixels for 350/350P/280M/280V devices.
- I didn’t personally test the RG350M, but my guess is that it will be in the home/.gmenu2x/skins/(name of skin)/wallpapers folder. Given that the wallpapers app doesn’t work on the 350M at this time, it may be irrelevant.
– added link to neilswann80’s Ports list
– added additional FCEUX emulator link
– added note about pressing hotkeys sequentially vice simultaneously
– added new emulator (FinalBurn Alpha)
– updated emulators (SimpleMenu, pcercuei’s ReGBA)
– updated to reflect RetroArch update
– updated emulators
– updated FCEUX and Genesis Plus GX links
– added HeborisC7EX
– published guide
– added Fuse (ZX Spectrum) emulator
– added Arcade emulators
– fixed typos
– added SaveSync
65 thoughts on “OpenDingux Beta Firmware for RG350 and RG280 Devices”
It just seems… less. I’ve been using the latest Rogue firmware, and No Bugs! It supports way more emulators and ports, and the only upside to this is Mario 64? This is a hard pass. Mario 64 looks better on the retroid pocket, and this build is just missing way too much.
What about the swap partition, is it still enabled?
I get many hiccups with the stock software, and one of the reasons could be the swap partition. Don’t understand why it is enabled at all, given the RAM amount.
I’ve added this firmware and the Mario 64 port all work great., so thanks for sharing this Russ.
I’m having a few issues with PlayStation, most games work fine, however I can’t get Destruction Derby 1 and 2, Soviet Strike and Nuclear Strike along with MGS running. I’ve tried multiple roms of these, some boot and get stuck in the menu.
I appreciate this is a new firmware and a few bugs may happen but was curious if anyone else has the same problem?
Has anyone tested simple menu using this firmware? And does it fix the crackle and pop issue when playing snes or gba?
So I got a fresh install running on a new 32GB card, and for some reason I can’t copy files onto it after activating the mass storage protocol via USB.
My computer is reading that the Apps and Home folders have free storage but the Media folder has used up 4 KB which is apparently also the total amount of storage.
Is there an easy fix for this that I’m missing? Or should I wait out the official release to fix all the bugs?
Hi, I saw this same comment on YouTube, sorry to hear it’s happened to you. I think it’s a bug with the system, unfortunately, and hopefully they can fix it in the future.
mupen64 crashed od 350m after choose ANY game
just need the FCEUX emulator to work on 350m and I’ll be happy, any update on it at all? everything else I want to play seems ok. on the new 27/12 update
Does anyone know if Quake and EC wolf run on beta? There doesnt seem to be a list of what will? wont work
How to set the Clock on OpenDingux?
Thank you for the great page, I am using a RG350M with this beta firmware, mainly because of the better support of the large display.
And I can set wallpapers now with the latest version, the app no longer crashes.
FYI… on recent revisions, Pwr+X works for screenshots again. And also, there’s now a Clock app that lets you set the time, in response to @Doc’s comment above.
Hi, congratulations on the guide, it’s clear and up-to-date!
Unfortunately I don’t have a backup of the original microsd because I got a used RG350M, so I tried some stock images found on the net and the rogue firmware, but I’ve always had problems with pcsx4all crashing or unstable with some games.
Now I have installed the latest version of OD Beta, but have not solved the pcsx4all crash, I do not know if it’s a configuration problem, incompatibility with specific game or something else.
Could you give me some advice?
thanks, I installed it and it runs retroarch and psx fine, but I can’t get UAE4all working at all.
Doesn’t matter how many times I try putting the kick.rom in the said folder, it just can’t find it.
Anyone got any idea ? I couldn’t find anything useful about that.
You should put kickstart 1.3 in the folder specified in the error message using this command (for example in a terminal) :
scp kick.rom firstname.lastname@example.org:/media/data/local/home/.uae4all
You can add a file explorer, like a Dinguxcmdr, called Commander a two pane explorer:
Useful if you don’t want to go to PC and have everything in second SD before switching on RG350, or in my case a Powkiddy Q80 (also a called RG350 on a budget).
I tested firmware od-beta-2021-04-17, and some emulators have better performace, like PocketSNES_new.opk, Yoshi’s Island (SFX2) has better framerate, Kirby Dream Land 3 (SA-1) now runs 60 fps, but has some issues with pad on emulartor menu, it goes too fast.
Retroarch snes9005, still is a no, -sad I know-, and mame2003-plus, has better perfomance, tested with Battle Toads, from 48 ~51 to 55~58 FPS.
Any working ports of Stella(Atari 2600) or Vice(C64) for OpenDingux Beta?
I’ve been using the OpenDingux Beta for a few weeks now and it’s been great. Except for FBA… I’ve tried several different OPKs, they all do the same thing. The barebones FBA Explorer that shows the list of short file names loads and plays games just fine but FBA UX (sometimes labeled FBA-RG350 depending on the OPK) doesn’t run anything. FBA UX will scan and render a nice readable list of games but when I select any game and try to run it, FBA UX immediately closes, I briefly see the OpenDingux loading screen, and I end up back at the list of installed emulators. I’ve looked all over and see no other reports of this behavior. I’ve been poking at it for a few days. Any idea what might be the problem?
now you can replace loading screen its so cool
Having used a beta from months ago (just to test SM64) I was running into so many issues. But the current state is very, very impressive!
I always hated that after a reboot the RG350M comes up so loud in volume, and the lowest volume is sometimes still to loud. In this beta, the sound-mixer is missing. At least the shortcut is. So for those who have volume-issues:
In ‘/data/local/home/.gmenu2x/sections/settings’ put a file named ‘alsamixer’ with the folowing content:
description=Configure sound settings
After a reboot of GMenu2 (just reboot your RM350M) the Sound mixer is back in the Settings screen. If you want it in another screen, just move the file to another section-folder, ie applications.
Now if you want to have it set to a certain volume at startup:
Create a file called S99_setvolume.sh and put it in /media/data/local/etc/init.d
Content of the S99_setvolume.sh file:
amixer -c 0 sset Headphones 30%
Just those two lines. Obviously set the 30% to whatever you want it to be. I think if you use a second SD card, it works just like that. If you use only one SD card (ie the ‘internal’ one), you’ll probably need root permissions to put a file in /media/data/local/etc/init.d. So in that case:
– SSH into the machine, usually on ip 10.1.1.2
– Login with od and your password (or blank if you set it like that).
– Enter ‘sudo -i’ and give your password (or enter) again
– Your prompt should now be # instead of $ – presto; you are root
– Enter ‘cd /media/data/local/etc/init.d’
– Enter ‘vi S99_setvolume.sh’
– In vi press the letter i for insert mode, and paste the two lines above in it.
– press escape, and type ‘wq!’ to quit and write the file
– now you need to make it execuble by typing ‘chmod +x S99_setvolume.sh’
Reboot your machine to test. Again, I believe if you use a second SD card with FAT32, there’s no linux permissions at all on those files, so you’ll not need root to put a file there and you don’t have to make it executable I guess.
Latest beta of today 2021/05/12 doesn’t work for me, freeze my device (RG350p).
Hangs my RG350M as well. Doesn’t even show a boot-screen. When powered on, it’s just black. So better avoid this update for now.
The 2021/05/13 update works on my RG350M, boot fine and runs fine so far.
The may 15th release works fine on my RG350M as well.
anyone have issues with the psx4all and it not saving to memory card?
im having trouble playing any mame games. itll say game files not found.
Hey, I’m trying to create a custom skin theme, but I cant for the life of me figure out what the “Password” app name is, and I can’t seem to find the .opk file so I can decipher what it is called in the system.
Anyone knows what it is called? It’s the app that helps with the WinSCP connections
python /usr/sbin/od-passwd-config od
I have downloaded cave story from your site and loaded it om my rg350m. The problem is that I cannot save the game. It says the game is saved, but every time I die I get save file error. Is this a known problem?
oh god, please help. been messing with the rg280v for about a week now, and thanks to these amazing guides i have EVERYTHING just how i want it. running OD beta with retroarch and it’s grand. even figured out how to rename/reorganize the emulator icons with an opk program. I CAN’T EDIT THE SECTION NAMES AND IT’S DRIVING ME CRAZY. i’ve tried renaming in cmdr, as well as thru the USB and it just creates a new section rather than editing the name of the existing one. do i just have to live with this in OD beta since i don’t want to use simplemenu or rogue or any of that? i gift massive bonus points to be redeemed in the afterlife to anyone who has an answer, or even better, a solution. thanks, friends. be well.
Hi Chuck, unfortunately I don’t have an answer for that one. If you’re up for it, you could ask zcrc (the developer of OD Beta) in the RGHandhelds discord server (https://discord.com/invite/SHq4ssp), you can find him in the opendingux-beta development channel.
Loving the OD beta update; I’ve actually been able to get my 8bit dongle/controller to work with reGBA!
On a semi-unrelated note; is there a way to remove the “stock” games section from the device?
Hi, I’m not sure you can adjust the tabs in OD Beta. In the stock firmware you can remove entire sections/tabs, but I don’t see an option in the Beta.
big thanks for the response! when i was still running the stock firmware, i could remove entire sections, but still couldn’t edit them by name. i just wanted to change the order so the emulator tab popped up first on startup. i know this is neurotic, i’ve kind of gotten used to it. in any case, good looking out. sounds like it’s time to sign up for discord and dive in to the deep end on this one. your bonus points await you in the afterlife! be well.
Hi, I can’t get sleep mode to work on the latest 2021-07-06 update on RG350M. Power+Y has no effect.
Nevermind, it does work, you just have to press power *then* Y, power acts as a function button of sorts.
Thanks for the note, I’ve added it to the guide.
I’ve been using the beta for a couple months now and it has working HDMI support… should that move from potential features?
zcrc.me has migrated to opendingux.net – may want to update your link
hello! thanks for your guides!!! amazing job
sorry, do you or anyone here know if it is possible to add also mixer volume to the opendingux beta firm and how to do it?
Yeah, read in the comments above. I wrote there how to do it. It’s beyond me why that simple shortcut / icon is missed in every beta so far.
My bad, terrible habit of asking prior reading… I’ll give it a go right now.
Thanks for your time an reply !!!
**Last update so far is working flawlessly (even the USB connection seems to have learnt some modals and is not as temperamental as pointed)
RGQuake has been updated with OD Beta support!
Hi, just been flashing and updating my rg350m and rg280v – thanks for the guides – great performance increase. There’s a broken link for the odamex.opk doom 1/2 – should be: https://github.com/retrogamehandheld/OpenDingux/blob/master/Games%20%26%20Ports/odamex.opk
thanks god ! 8/25 is updated !!!
Is there a battery indicator yet in this firmware? I’m currently using rogue fw on my 350m.
Yes there is, just like in Rogue (which is based on the previous version 2014-ish of OpenDingux, developped for the GCW0).
Thanks! I will be upgrading then tommorow. 🙂
So I upgraded today and absolutely love the higher resolution on GMenu2X.
However I still have 2 problems, I can’t connect to my device anymore by USB/SSH (won’t connect, even after setting it in the USB Mode.) and then Windows 10 will crash with a blue screen.
and FCEUX doesn’t scale correctly on my screen. for example in Gradius NES the score line is cut at the bottom.(after pressing power+A) It used to work fine on Rogue FW.
Nevermind the connecting problems. after my lost post the network function suddenly started working so that’s cool. 🙂 Just the FCEUX scaling issue remaining.
Sorry about the triple post. I found a workaround for FCEU.
Using RetroArch with the installer (https://github.com/eduardofilo/RG350_auto_ra_installer/releases) to install a ‘core shortcut’. So now I got the FCEU icon in GMenu2X. 🙂
I don’t mind using the rgui in RetroArch, used it since the Wii release. (3ds as well and on my older phones)
Does Adam image already contains all the updated Apps, or you have to do it manually after installing Adam image?
I installed v.1.1. Suggest reading the release notes provided for each release before making up your mind.
gcw0-update-2021-09-07.opk boots into a black screen on my RG350M. The thing itself is up and running, SSH is reachable and works. But no video output. So be warned!
And of course, after 15 minutes of reboots and such, 10 seconds after I posted that I though let’s turn the brightness up. And there it is! The update turned the brightness all the way to 0… Still be warned 😉
Does anyone have a problem that the FBA emulator(fba-by-prg-for-odbeta-7jul2021) cannot load games progress?
Yes, that was the first fix I made for OD Beta and the savestates fail becouse I did not have some libraries installed with that build.
Use this version https://github.com/plrguez/fba-sdl/releases/download/r19_2021-07-29-.44_od_beta-fix-05/fba-multi.opk
Or better use the latest citral’s build, that is built with hugepages https://github.com/citral23/fba-sdl/releases/download/v0.1/fba_odbeta_20211109.opk
Thank you very much.
It can really save/load the game progress normally. FBA for OD bata is more efficient to run the game, and the game becomes smoother.Thank you for solving this problem.Continuously evolving OpenDingux Beta system for RG350 worth looking forward to.
The 2021 october 4th update makes my RG350M boot extremely slow. It takes about a minute now – mounting the blockdevice takes a huge amount of time and after that it stalls a bit on setting up swap. It works fine though after that – just be warned that the latest might not always be the greatest.
There’s an actively maintained FCEUX for OD beta: https://github.com/plrguez/fceux-for-retrogame
I think the emulator list in this article should link to that github repo.
Thanks, just added it.
gcw0-update-2021-10-15.opk firmware release still has the slow mount-issue while booting on my RG350M. Anyone else with this issue?
@Russ – is this list up to date for the OD Beta optimised and compatible ports? Just wondering if there’s been any new since you last updated this list?
Also the Odamex (Doom, Doom II)* link doesn’t work on my laptop. Should be updated to: https://github.com/retrogamehandheld/OpenDingux/blob/master/Games%20%26%20Ports/odamex.opk