Linux Input/HID development
 help / color / mirror / Atom feed
From: Shehriyar Qureshi <thatdevsherry@gmail.com>
To: linux-input@vger.kernel.org
Cc: jikos@kernel.org, bentiss@kernel.org
Subject: hid: dragonrise: map gamepad buttons to BTN_GAMEPAD?
Date: Sun, 2 Aug 2026 14:00:30 +0500	[thread overview]
Message-ID: <am8GOnuoT_7Q3jr1@thatdevsherry.pk> (raw)

Hi,

I have a Ucom ps2-style usb game controller.

I noticed that the controller exposes BTN_JOYSTICK events rather than
BTN_GAMEPAD. I first noticed this when using raylib/glfw, which treats
BTN_GAMEPAD events as standard gamepad buttons.

One possible solution would be in userspace. However, I was wondering
whether `dragonrise` should remap it to BTN_GAMEPAD codes or if the
existing joystick mapping is intentional.

I understand that mapping based on the HID descriptor to joystick
events is expected behaviour, but I was wondering if this device should
be treated differently because it is physically a gamepad.

Sharing details of hardware below.

Hardware:
=========

Controller: DragonRise Inc. PC TWIN SHOCK Gamepad
USB ID: 0079:0006

Kernel log:
===========

$ dmesg | grep -E "Microntek|dragonrise"
[    2.268782] usb 1-3: Manufacturer: Microntek
[    3.653949] input: Microntek              USB Joystick           as /devices/pci0000:00/0000:00:02.1/0000:02:00.0/0000:03:0c.0/0000:09:00.0/usb1/1-3/1-3:1.0/0003:0079:0006.0001/input/input7
[    3.654013] dragonrise 0003:0079:0006.0001: input,hidraw4: USB HID v1.10 Joystick [Microntek              USB Joystick          ] on usb-0000:09:00.0-3/input0
[    3.654018] dragonrise 0003:0079:0006.0001: Force Feedback for DragonRise Inc. game controllers by Richard Walmsley <richwalm@gmail.com>

USB info:
=========

$ lsusb
Bus 001 Device 003: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad

$ lsusb -t
|__ Port 003: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

HID descriptor:
===============

when bound to the `dragonrise` driver.

$ hid-decode /sys/bus/hid/devices/0003:0079:0006.0001/report_descriptor
# device 0:0
# 0x05, 0x01,                    // Usage Page (Generic Desktop)        0
# 0x09, 0x04,                    // Usage (Joystick)                    2
...

evtest reports:
===============

$ evtest
Input device ID: bus 0x3 vendor 0x79 product 0x6 version 0x110
Input device name: "Microntek              USB Joystick          "
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 288 (BTN_TRIGGER)
    Event code 289 (BTN_THUMB)
    Event code 290 (BTN_THUMB2)
    Event code 291 (BTN_TOP)
    Event code 292 (BTN_TOP2)
    Event code 293 (BTN_PINKIE)
    Event code 294 (BTN_BASE)
    Event code 295 (BTN_BASE2)
    Event code 296 (BTN_BASE3)
    Event code 297 (BTN_BASE4)
    Event code 298 (BTN_BASE5)
    Event code 299 (BTN_BASE6)
    ...

for comparison, this is evtest report for the xbox style controller.

$ evtest
Input device ID: bus 0x3 vendor 0x45e product 0x28e version 0x110
Input device name: "Microsoft X-Box 360 pad"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 304 (BTN_SOUTH)
    Event code 305 (BTN_EAST)
    Event code 307 (BTN_NORTH)
    Event code 308 (BTN_WEST)
    Event code 310 (BTN_TL)
    Event code 311 (BTN_TR)
    Event code 314 (BTN_SELECT)
    Event code 315 (BTN_START)
    Event code 316 (BTN_MODE)
    Event code 317 (BTN_THUMBL)
    Event code 318 (BTN_THUMBR)
    ...

                 reply	other threads:[~2026-08-02  9:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=am8GOnuoT_7Q3jr1@thatdevsherry.pk \
    --to=thatdevsherry@gmail.com \
    --cc=bentiss@kernel.org \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox