Last updated 22SEP2020 (see Changelog for details)
The RG350 has an excellent button layout, and it feels great in the hands. So why would you want to hook an external controller into your device? For starters, you could map the external gamepad to control a second player. Pair that with an HDMI update and you’ve got a pretty sweet mini 2-player console setup.
So if you’re hoping to try out some two-player gameplay on an RG350, I’m here to tell you that yes, it’s possible. But it’s also a little tricky, so this guide will walk you through the required equipment and settings.
Table of Contents OTG adapter Controller/gamepad Supported emulators See it in action Changelog
First, let’s discuss how connections are made on the RG350. The left USB-C port (you know, the one you probably don’t touch) is a USB OTG (“On-The-Go”) port, which was first introduced in 2001 as part of the USB 2.0 specification. In order for you to use a gamepad on the RG350 devices, you must first connect them via a USB OTG adapter. They are relatively cheap, and I prefer this one from Anker, which costs less than $10 as of this writing.
Okay, so once you have an OTG adapter to plug in your controller, which controllers will work? This is where things get tricky, because there is no documentation out there to describe what connections work over the RG350’s OTG port. I’ve done a series of tests with half a dozen hookups, and this is what I’ve discovered:
- The X-Input API (computing interface) does not work. This is the standard Windows input that came out around the same time as the Xbox 360 was released, in 2005. Most Windows-based controllers that have wired USB inputs (like the Xbox One controller when plugged into a USB cable) provide X-Input signals, which cannot be read by the RG350.
- iCade, Switch, and Mac APIs do not work. I tried a number of Mac-friendly controllers and they do not function on the RG350.
- DirectInput (or “D-Input”) DOES work. This is an older API, from the mid-90s, but is still supported on Android devices. A number of controllers provide wired D-Input signals, like the first-gen PS4 controller (ZUH-ZCT1U), the Logitech F310, or the entire line of excellent 8bitdo controllers. The Xbox 360 controllers also provide both D-Input and X-Input signals, so they should also work. I also found out that the controllers that come with the PlayStation Classic work perfectly with the RG350, so if you find one of them on sale that’s an easy way to score two controllers. In the end, as long as the gamepad says it supports D-Input, you should be fine.
- In addition to D-Input controllers, D-Input-capable USB wireless dongles also work. For example, I have the 8bitdo USB wireless adapter and was able to successfully connect my PS3, PS4, Xbox One (S), and Nintendo Switch Joy Cons, and Switch Pro controllers like a dream. Let me just say that this wireless adapter has been of incredible value for me: for $20, I can use it on my Switch, PC, Mac, Raspberry Pi, and RG350 seamlessly. Note that you must make sure that the USB wireless adapter is in D-Input mode by pressing and holding SELECT + Left for 3 seconds (more info in the manual).
- Bottom line: look for anything that supports D-Input, or “Android OTG”. If you have any spare controllers lying around that connect via bluetooth, I recommend the 8bitdo wireless adapter.
As of this writing, five different arcade and console emulators support external gamepads:
- Stella (Atari 2600). You have to map the controller in the settings, but it works great!
- Picodrive (Sega Genesis, Sega CD, Sega 32x). This also needs to be mapped, but it works flawlessly.
- PCSX4All (Sony PlayStation 1). This one is actually a fork of the most recent emulator I recommend, but you’ll find a link to the one that supports external controllers near the bottom of the PS1 section. Map this one in the settings once you’ve opened a game.
- ReGBA (Game Boy Advance). Unlike the others, this doesn’t support two-player gameplay (which makes sense since this was a handheld device). Depending on the gamepad you use, the controls may already be mapped; if not, just go ahead and map them in the settings.
- XMAME (Arcade). The other two didn’t recognize external gamepads for me, but XMAME worked like a charm. You’ll have to start up a game, them press START + L1 to bring up the menu, and map the controls from there.
Some home computer emulators also support external keyboards, mice, and gamepads:
- UAE4All (Amiga 500)
- Vice (Commodore 64)
- DOSBox (MS-DOS)
- OpenMSX (MSX/MSX2)
- ScummVM (classic point-and-click adventures)
Additionally, some native OPK games allow you to toggle joysticks and play with an external gamepad. From my very brief testing, I can verify that FreeDoom and ZDoom (to include the Brutal Doom mod) both work.
See it in action
Here’s a quick video showcasing gameplay using an external controller. You’ll see wired and wireless connections with a variety of controllers and emulators. Hope it’s helpful, and be sure to let me know if you have any questions in the comments below.
Affiliate disclosure: If you click on any of the Amazon links above and make a purchase, I may make a small commission off that sale at no extra cost to you.
– fixed wording re: GBA gamepad support
– added ZDoom/Brutal Doom as working with external controllers
– added home computer emulator support info
6 thoughts on “Guide: External Gamepad Support for the RG350”
Excellent job!, I have two questions about this topic. The first one is to know about it you try to use two controllers connected (using a USB hub multiport) for a concentrated tabletop use of the RG350. And the second concern is related with the OpenBOR games, because in the guide there isn’t dedicated references. Thanks again for all of your explanations and greetings from Chile.
So, I picked up an 8bit SN30 Pro controller and the USB dongle. I’ve got it set to D Input, but it’s not working with reGBA or the PSX emulator.
If I go in to reGBA, load a game, then quit… I can get the d pad working, but no other buttons.
Am I missing something?
I should note: Both the dongle and controller are set to D Input Mode.
Hello, I have an RG351P with 351ELEC version 20210510. I’m trying to connect a USB XBOX360 controller, when I plug it in, the console recognizes it. I the go to menu->controller settings->configure a controller and proceed to map the buttons. So far so good but when I try to use it for a second player in the NES emulator it just doesn’t work. Am I doing something wrong? or or its just that you cant use it for NES games? What can I do to play NES games with a friend?