libretro / libretro/RetroArch

[Feature Request] Support for Joy-con d-pad and right stick on Android

Open
#18,769 1 comment 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

There's a known issue in Android that Nintendo joycons have buggy support. The d-pad on the left joycon shows up as "button 0" for all four buttons, and the right stick shows up as "RX" and "RY" which aren't recognized by most apps. Both of these are possible to work around in software, however.

The half-open app KeyMapper is able to understand the left d-pad. I don't understand exactly how it works but it reads "scancodes" and it's able to distinguish between all four buttons. Gamepad Tester is able to detect RX and RY analog inputs when the right stick is moved. So it's possible for an app to recognize joy-cons.

It would be great if RetroArch implemented both of these workarounds so that joy-cons can be used. Many people already have joy-cons and an android phone, and brackets to mount one on the other are cheaply available either commercially or via 3D printing. So this would be a great way to support "DIY" handheld gaming.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Joy-Con behavior on Android and compare the left d-pad scancodes and right-stick RX/RY inputs with the behavior described for KeyMapper and Gamepad Tester. Done means RetroArch distinguishes all four left d-pad buttons and recognizes right-stick movement when using Joy-Cons on Android.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, c
Domain
mobile
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.