I recently bought a new 8bitdo switch controller, mainly for the price point and the 6 axis gyroscope
I was quite disappointed seeing the gyro did not work out of the box (not displayed in any emulator, nor antimicrox which is very reliable), but I saw it worked on steam so there was hope
After a little digging, I found that the main controller inputs and the gyroscope (accelerometer) inputs are separated in two special input files.
Doing
evemu-describe /dev/input/by-id/usb-Nintendo.Co.Ltd._Pro_Controller_000000000001-event-if00
displays the accelerometer properties and
evemu-describe /dev/input/by-id/usb-Nintendo.Co.Ltd._Pro_Controller_000000000001-event-joystick
all other inputs
The idea I had was trying to create a new input, which would combine the two previous ones and use this one as my controller, with gyro control
However, while I have coding knowledge I have very little about drivers and input devices and documentation on the internet about all that is very hard to find because it’s a precise topic and search engines are so shitty
So if anyone could help me linking to some documentation or trying to come up with an implementation would be very helpful
this is the output for the two commands
first one:
# EVEMU 1.3
# Kernel: 6.9.3-arch1-1
# DMI: dmi:bvnHewlett-Packard:bvrJ61v03.69:bd03/25/2014:br3.69:svnHewlett-Packard:pnHPZ420Workstation:pvr:rvnHewlett-Packard:rn1589:rvr0.00:cvnHewlett-Packard:ct6:cvr:skuLJ449AV:
# Input device name: "Nintendo.Co.Ltd. Pro Controller"
# Input device ID: bus 0x03 vendor 0x57e product 0x2009 version 0x8111
# Supported events:
# Event type 0 (EV_SYN)
# Event code 0 (SYN_REPORT)
# Event code 1 (SYN_CONFIG)
# Event code 2 (SYN_MT_REPORT)
# Event code 3 (SYN_DROPPED)
# Event code 4 ((null))
# Event code 5 ((null))
# Event code 6 ((null))
# Event code 7 ((null))
# Event code 8 ((null))
# Event code 9 ((null))
# Event code 10 ((null))
# Event code 11 ((null))
# Event code 12 ((null))
# Event code 13 ((null))
# Event code 14 ((null))
# Event code 15 (SYN_MAX)
# 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 309 (BTN_Z)
# Event code 310 (BTN_TL)
# Event code 311 (BTN_TR)
# Event code 312 (BTN_TL2)
# Event code 313 (BTN_TR2)
# 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)
# Event type 3 (EV_ABS)
# Event code 0 (ABS_X)
# Value 241
# Min -32767
# Max 32767
# Fuzz 250
# Flat 500
# Resolution 0
# Event code 1 (ABS_Y)
# Value -258
# Min -32767
# Max 32767
# Fuzz 250
# Flat 500
# Resolution 0
# Event code 3 (ABS_RX)
# Value 165
# Min -32767
# Max 32767
# Fuzz 250
# Flat 500
# Resolution 0
# Event code 4 (ABS_RY)
# Value -131
# Min -32767
# Max 32767
# Fuzz 250
# Flat 500
# Resolution 0
# Event code 16 (ABS_HAT0X)
# Value 0
# Min -1
# Max 1
# Fuzz 0
# Flat 0
# Resolution 0
# Event code 17 (ABS_HAT0Y)
# Value 0
# Min -1
# Max 1
# Fuzz 0
# Flat 0
# Resolution 0
# Event type 21 (EV_FF)
# Event code 80 (FF_RUMBLE)
# Event code 81 (FF_PERIODIC)
# Event code 88 (FF_SQUARE)
# Event code 89 (FF_TRIANGLE)
# Event code 90 (FF_SINE)
# Event code 96 (FF_GAIN)
# Properties:
N: Nintendo.Co.Ltd. Pro Controller
I: 0003 057e 2009 8111
P: 00 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 fb 7f
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 1b 00 03 00 00 00 00 00
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 03 07 01 00 00 00
A: 00 -32767 32767 250 500 0
A: 01 -32767 32767 250 500 0
A: 03 -32767 32767 250 500 0
A: 04 -32767 32767 250 500 0
A: 10 -1 1 0 0 0
A: 11 -1 1 0 0 0
second one:
# EVEMU 1.3
# Kernel: 6.9.3-arch1-1
# DMI: dmi:bvnHewlett-Packard:bvrJ61v03.69:bd03/25/2014:br3.69:svnHewlett-Packard:pnHPZ420Workstation:pvr:rvnHewlett-Packard:rn1589:rvr0.00:cvnHewlett-Packard:ct6:cvr:skuLJ449AV:
# Input device name: "Nintendo.Co.Ltd. Pro Controller (IMU)"
# Input device ID: bus 0x03 vendor 0x57e product 0x2009 version 0x8111
# Size in mm: 15x15
# Supported events:
# Event type 0 (EV_SYN)
# Event code 0 (SYN_REPORT)
# Event code 1 (SYN_CONFIG)
# Event code 2 (SYN_MT_REPORT)
# Event code 3 (SYN_DROPPED)
# Event code 4 ((null))
# Event code 5 ((null))
# Event code 6 ((null))
# Event code 7 ((null))
# Event code 8 ((null))
# Event code 9 ((null))
# Event code 10 ((null))
# Event code 11 ((null))
# Event code 12 ((null))
# Event code 13 ((null))
# Event code 14 ((null))
# Event code 15 (SYN_MAX)
# Event type 3 (EV_ABS)
# Event code 0 (ABS_X)
# Value -392
# Min -32767
# Max 32767
# Fuzz 10
# Flat 0
# Resolution 4096
# Event code 1 (ABS_Y)
# Value -29
# Min -32767
# Max 32767
# Fuzz 10
# Flat 0
# Resolution 4096
# Event code 2 (ABS_Z)
# Value 4214
# Min -32767
# Max 32767
# Fuzz 10
# Flat 0
# Resolution 4096
# Event code 3 (ABS_RX)
# Value 42886
# Min -32767000
# Max 32767000
# Fuzz 10
# Flat 0
# Resolution 14247
# Event code 4 (ABS_RY)
# Value 9000
# Min -32767000
# Max 32767000
# Fuzz 10
# Flat 0
# Resolution 14247
# Event code 5 (ABS_RZ)
# Value -1000
# Min -32767000
# Max 32767000
# Fuzz 10
# Flat 0
# Resolution 14247
# Event type 4 (EV_MSC)
# Event code 5 (MSC_TIMESTAMP)
# Properties:
# Property type 6 (INPUT_PROP_ACCELEROMETER)
N: Nintendo.Co.Ltd. Pro Controller (IMU)
I: 0003 057e 2009 8111
P: 40 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 3f 00 00 00 00 00 00 00
B: 04 20 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 -32767 32767 10 0 4096
A: 01 -32767 32767 10 0 4096
A: 02 -32767 32767 10 0 4096
A: 03 -32767000 32767000 10 0 14247
A: 04 -32767000 32767000 10 0 14247
A: 05 -32767000 32767000 10 0 14247
PS: I already tried joycond + cemuhook which is quite frankly the worst to set up and did not work
TuTiuTe is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.