Cabinets Cabinet custom build - ES-DS not recognizing the controllers

EnthusiastGuy

Young Hero
Level 1
32%
Joined
Aug 20, 2025
Messages
49
Level up in
51 posts
Reaction score
95
Points
127
Alright, so I started building one of these. The idea was simple. I'm going to put it together, have a miniPC hooked up to a monitor and some arcade button kit pair. Using Peppermint with ES-DS that launches retroArch when starting a game from any emulator.

Everything actually went smooth up to the point where I tried to hook up the controller kits. And that proved to be a ridiculously complicated step. What happened was that neither controller had ES-DS respond to input even though the controllers ARE in fact working, on the same system even. I know they do since I opened a browser, went to an online testing app and noticed the controllers DO work.

However, when starting up ES-DS, it's not detecting either, it says no controllers connected. The controller firmware seems to be something called DragonRise INC. It's being reported when doing
Code:
ls /dev/input/by-id/
When I do
Code:
ls /dev/input/by-path/
I even see both instances of the controller that way. If I use a keyboard to start a game, RetroArch kicks in and guess what (?), I CAN use the controllers then. RetroArch sees them with no problem. The only difficulty is with ES-DS itself.

So I said, hell, there has to be a workaround, and I did find one. I installed xboxdrv, set up some scripts that register two identical services, such as /etc/systemd/system/xboxdrv_p1.service which they attempt to hook up the controllers at startup (sudo systemctl enable xboxdrv_p1.service):

Code:
[Unit]
Description=Xboxdrv Daemon for Player 2
After=multi-user.target

[Service]
Type=simple
ExecStartPre=/bin/sleep 5
ExecStart=/usr/bin/xboxdrv \
    --silent \
    --detach-kernel-driver \
    --evdev /dev/input/by-path/pci-0000:00:10.0-usb-0:4:1.0-event-joystick \
    --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
    --evdev-keymap BTN_BASE=a,BTN_BASE2=b,BTN_TOP2=x,BTN_PINKIE=y,BTN_THUMB=lt,BTN_THUMB2=lb,BTN_TOP=rt,BTN_TRIGGER=rb,BTN_BASE5=back,BTN_BASE6=start \
    --mimic-xpad
Restart=on-failure

[Install]
WantedBy=multi-user.target

That "kind-of" works, but weirdly. I actually need to physically disconnect and reconnect one of the controllers and then ES-DS sees them. But I cannot for whatever reason have it work directly. That is the closest progress I had so far. I did a lot of running around the issue thinking it's a race condition or anything but I am as of yet unable to make the controllers work directly after you boot up the machine.

My guess is that ES-DS uses SDL2 and that thing doesn't see the controllers correctly.

Just for the hell of it, connected an XBox Series X controller which works with no problem... Though, while writing this, I don't remember if I ever tested restarting the cabinet with the controller attached to see if that works directly..

Well, any pointers anyone has are most welcome. My plan Z on this if EVERYTHING else fails is to actually take apart two XBox 360 compatible controllers that I have laying around and wire their controls to the cabinet buttons. It's a creppy last-ditch solution, but at least that will hopefully work.

I also attached a few images with the cabinet and controller board. It's work in progress and that piece of wood that holds the keyboard is there just for that. It will look better once I finish it.

C3.jpgC2.jpgC1.jpg
 
I'm assuming by ES-DS you're meaning ES-DE? I find that to be a good enough system for common hardware and controllers, but I prefer RetroPie's implementation and robustness on Linux. Multiple suggestions here, but skip to the last paragraph for the easiest one to try.

RetroPie also includes EmulationStation and RetroArch, alongside a default set of emulators and Libretro cores, but it additionally has a bit more of a granular sort of "package manager" specifically for additional tools and emulators, as well as some other advanced settings. It theoretically should run without issue on Peppermint, but here's a quick terminal command script I use for Debian, which gets you to the setup utility for RetroPie out of a fresh install:
sudo sed -i "/^deb cdrom:/s/^/#/" /etc/apt/sources.list && sudo apt update && sudo apt upgrade && sudo apt install -y git dialog unzip xmlstarlet && git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git && cd RetroPie-Setup && sudo ./retropie_setup.sh

It is likely your controller board is utilizing xinput, as the majority of these sorts of boards do. I'm not sure if a default input API option is present in ES-DE, but that is adjustable in RetroPie. RP does also have multiple Xbox\xinput drivers available through the configuration tool.

That all being said, I can't find much information on your particular board, and given the cost and lack of documentation, it could also be partially what's causing you grief. Something like a Zero-Pi Fighting Board EASY (If you're in Europe\UK) or I-PAC2 (for North America) would be two boards I might suggest to replace it with if that would be within budget and/or scope, although they'd of course require some more fiddling with electronics and connections.

Depending on the specs and age of your MiniPC, and your general feelings on a commercial OS, you might also just go the route of a Windows 10 or 11 LTSC install with RetroBat. I have an old TMNT arcade cabinet converted into a somewhat similar setup, and I have that running on Windows with an I-PAC4 connected to the controls. It tends to handle any additional controllers I throw at it without issues, and is running 24/7. This is now what I use for most of the new systems I set up, due to sometimes significantly reduced hassle, with little to no practical tradeoffs on any capable hardware.

All that said, if you want a quick and dirty (but effective) hack, you could also just utilize something like AntiMicroX to remap the buttons and joysticks to keyboard inputs, which will likely pick up just fine in ES-DE.
 
Last edited:
I'm assuming by ES-DS you're meaning ES-DE?

Yes, indeed. Sorry about that, got the letters mixed-up.

RetroPie also includes EmulationStation and RetroArch, alongside a default set of emulators and Libretro cores, but it additionally has a bit more of a granular sort of "package manager" specifically for additional tools and emulators

Yeah, I did consider using RetroPie initially. I think I decided on the ES-DE since I liked the UI more. I didn't know RetroPie actually can have ES-DE in it.

All that said, if you want a quick and dirty (but effective) hack, you could also just utilize something like AntiMicroX to remap the buttons and joysticks to keyboard inputs, which will likely pick up just fine in ES-DE.

Whoa, that's what I'm looking for. Indeed, this will work, THANK YOU! It was already getting ridiculous. Sat on this problem for quite some time! I'll take it! :D
 
Yeah, I did consider using RetroPie initially. I think I decided on the ES-DE since I liked the UI more. I didn't know RetroPie actually can have ES-DE in it.
Not only can, it's actually an integral part and main interface for both RetroPie and RetroBat! It's a great piece of software, but the added functionality under the hood brought by both of those packages is definitely something that's enabled my projects to be a lot more feasible.
Whoa, that's what I'm looking for. Indeed, this will work, THANK YOU! It was already getting ridiculous. Sat on this problem for quite some time! I'll take it! :D
Let me know if there's any issues! I had an unrelated problem recently that had it on my mind, and it seemed like a simple fix for your situation, but I didn't want to provide something so hacky as the only solution to a technical issue.
 
Let me know if there's any issues! I had an unrelated problem recently that had it on my mind, and it seemed like a simple fix for your situation, but I didn't want to provide something so hacky as the only solution to a technical issue.
I appreciate that. However, I believe the circumstances warrant it. This is a sort-of one-time deal, so to say. I am building this for a friend and because I started and progressed in one direction setting everything up this way it's rather cumbersome to start over. When properly documented, this "hack" is maintainable. Also, I am pretty certain it's also stable.

And I do believe it beats the other hack of taking apart two Xbox controllers and do a lot of soldering in places I may not be able to do that well.

Thanks! Well keep this thread updated with progress once I get to this.
I like how it's turning out.
 

Users who are viewing this thread

Connect with us

Support this Site

RGT relies on you to stay afloat. Help covering the site costs and get some pretty Level 7 perks too.

Featured Video

Latest Threads

help on converting files

yello, i downloaded some games for a psp, but the files are in 7z and i need iso. cannot find...
Read more

Share your opinion about the other person's profile picture and personality

I start what is my profile picture and what is my personality what do you think of me
Read more

What's the hardest boss in video gaming?

I'd have to say Wizzpig from Diddy Kong Racing, like that race battle is TOO hard, I still...
Read more

Which Atelier game should be my second?

Hi, everyone!

So, two days ago I realized I owned Atelier Sophie DX on my Switch. I bought it...
Read more

Sonic x Shadow Generations

2x1_NSwitch_SonicXShadowGenerations_image1600w.jpg

Sonic games these days, should be taken with a grain of salt most titles featuring...
Read more

Online statistics

Members online
156
Guests online
191
Total visitors
347

Forum statistics

Threads
12,076
Messages
294,828
Members
859,535
Latest member
Antozell

Advertisers

Back
Top