How do you set up the uConsole gamepad buttons for Retroarch

How does one go about getting the gamepad keys above the keyboard on the uConsole to work properly in RetroArch? I’m using @Rex’s Bookworm image. Got ARM cores and ROMs working.

“Port 1 Controls” under Settings/Input autodetects “ClockworkPI uConsole”, cool, but for example the yxba buttons are mapped to an unusable position at the lower left of the keyboard (a s z x) rather than the uConsole gamepad buttons. Any attempt to remap these keys adds a “(N/A)” when I push the yxba buttons.

Maybe if someone’s got the gamepad keys working perfectly they could take us through the process step by step. I know I’d definitely appreciate it and maybe others would too.

Bonus points: How do you set up the Nintendo Pro Controller for Port 2 (the left USB-C connector) as it also seems unresponsive although it is autodetected as well. Would be nice to have but getting Port 1 working is the main thing as the uConsole game pad should work standalone?!?

Thanks

the very best option will be to install QMK firmware as it has “gamepad mode”

2 Likes

If you’re on the stock keyboard firmware then the direction pad and gamepad buttons are separate. If you look in the forms for the community made QMK firmware, they Incorporated a gamepad mode where you can set the direction pad to be a standalone gamepad with the abxy buttons.

2 Likes

Ok, thanks! Link here for others

This won’t disable the direction arrows for cursor movement otherwise I assume?

1 Like

Make sure you read though the thread and get the newest one.

You have to switch the d-pad back and forth. Fn+g to toggle gamepad mode.

1 Like

Ok, got the flash in (after downloading the newest .bin and downloading and extracting the uconsole_keyboard_flash archive)

cd ~/Downloads
sudo ./uconsole_keyboard_flash/maple_upload ttyACM0 2 1EAF:0003 ./clockworkpi_uconsole_default.20250725.bin

I’m trying Super Metroid (SNES) as a test. The D-Pad works until I hit Fn-G, and the YXBA doesn’t work either way.

NOTE that in RetroArch there is a new Settings/Input/Port 1 Controls option, “Clockwork uConsole Keyboard System Control”. I selected this one instead of “Clockwork uConsole Keyboard”.

I then scrolled down to “A Button (Right)”, currently set to “x”, hit Fn-G to enter gamepad mode (this stops you from being able to scroll in RetroArch), hit Enter, then the A GamePad button. But no input is received and setting the keybind times out. :thinking:

Ok hang on. I put Port 1 back to the old “Clockwork uConsole Keyboard” and set the YXBA buttons so that they all read “(N/A)” after pushing the proper gamepad buttons for each of the YXBA settings and it works now. I did NOT try this on stock keyboard firmware, as I assumed the “(N/A)” additions in settings would not work. Would they have? The SELECT-mouseball scrolling is still a nice feature either way.

Confused. But it works without hitting Fn-G :person_shrugging:

1 Like

default implementation that cursor keys are keyboard cursor keys, but abxy are gamepad keys.
because it’s a weird mix of KEYBOARD + GAMEPAD devices – it doesn’t work all the time.

fn + g switches cursor keys to gamepad mode so all buttons related to the same device now and therefore should be easier detectable by software.

there are tools like xev (for x11) and wev (for wayland) to detect keyboard/mouse events, but they don’t catch gamepads.

for debugging gamepad you can try jstest or google online gamepad test and test via browser (my preferred way)

using xev/wev you can check difference between normal and gamepad mode

2 Likes

Would you mind sharing a screen shot or the config file you are using? I can not get this to work for GBA games. I’m new to this so how all the pieces work together is very opaque to me.