My first open source handheld was the original GP32. It had a reflective LCD screen that could only be used in ideal lighting conditions; crackly audio; and an awful mini joystick that only worked if I shoved a folded piece of paper into it.

Despite the flawed hardware, it was a system designed to enable, rather than inhibit, homebrew software; and for a time its quirky combination of amateur hardware and amateur software made it my favorite console. It was the first in a long line of homebrew-supporting handhelds that includes the GP2x, Dingoo, GCW-Zero and Pandora.

My last venture into open source handhelds was the Dingoo A320. Somehow a sizable homebrew scene grew up around this tiny machine. It gained a Linux port, multiple SDKs, and dozens of emulators and game ports. I threw mine out when the screen cracked, and I lost interest in the open source handheld world.

The RG350M made me take another look. It’s a direct descendent of the Dingoo in that it runs a fork of the Dingoo’s Linux port, OpenDingux. It can run GCW-Zero software without recompilation.

It’s a great looking machine with an aluminium shell, 640x480 IPS screen, two SD card sockets, two USB-C ports, two analogue sticks, and four shoulder buttons. The screen is by far the most vibrant and clear I’ve seen on a handheld. The shell is solidly built. The d-pad is perfect. The other buttons are responsive and clicky.

As is typical with open source handhelds, there are problems. The device is well designed but it has abysmal quality control. Mine has a misshapen right shoulder button. A little chunk of plastic on the button sometimes catches on the inside of the shell, preventing it from working reliably.

Internet complaints about other issues abound, including DOA units; pressure damage to the screen; screen discoloration; loose screens; flickering screens; dead screens; dead batteries; malfunctioning buttons; incorrect buttons; unreliable SD cards; bent shells; badly-soldered components; audio artifacts; nonfunctional speakers; components detaching from the device; and the device allegedly overheats and damages itself if charged whilst powered on.

The OS is solid. It boots quickly (under 10s) and is easy to use. It has a built-in SFTP server that’s accessible via USB, which makes copying files to the device simple. I’ve tried a handful of emulators and games:

  • Gambatte (GB/GBC; excellent);
  • Genesis Plus GX (Mega Drive/SMS; muffled audio);
  • Picodrive (Mega Drive/SMS; good but some compatibility/accuracy issues);
  • SMS Plus GX (SMS; poor frame rate);
  • UAE4All (Amiga; noticeably slower than real hardware);
  • UnrealSpeccy (ZX Spectrum; excellent);
  • Fceux-RG350 (NES; excellent);
  • Handy (Lynx; slower than real hardware);
  • GPSP (GBA; some screen tearing);
  • Doom (too slow at max resolution; too fast at lower resolutions);
  • XRick (unplayably slow; slower even than playing the original in UAE, which is very odd).

It even has a port of MilkyTracker. It’s impractical to use for composition without a keyboard, but it works well for playback. It has a dual-pane file manager, too.

Here’s a list of RG350M-compatible software, and here’s where to get the latest firmware

In terms of emulator performance the RG350M seems to be roughly on par with a PSP. I don’t think there’s anything that the RG350M can do that the PSP couldn’t do equally well.

Overall, it’s easily the best designed open source handheld that I’ve used, with great controls and an excellent screen. However, the lack of quality control is a major concern, and its capabilities aren’t a noticeable step up from the PSP despite the 16 years between them.

Obscure Handhelds has a much more in-depth review, but it makes no mention of the QC issues.