View previous topic :: View next topic |
Author |
Message |
leylanator n00b
Joined: 10 May 2024 Posts: 32
|
Posted: Fri Nov 08, 2024 2:23 am Post subject: [Closed] Venom Arcade Stick Gamepad incorrectly mapped |
|
|
Hi all, I've got a Venom PS3/PS4 Arcade Stick, which I typically use in PS4 mode, which doesn't have its buttons assigned properly. I'm assuming it's dinput.
For some reason, the trigger buttons affect a non-existent (not even programmed onto the mainboard) Right Stick, and the buttons are all jumbled up. It works completely fine on console, the wires are laid out correctly.
Is there a reliable way to remap buttons, or stop whatever issue has mapped them weirdly?
I'm wondering, since I didn't have this issue on another distribution (Artix), but then it came about once I used Debian briefly, and has persisted in Gentoo. That could be a Red Herring, since I don't have information on what the input sanity was while using Artix - I could have simply only used Steam Input + an default official fix profile the whole time. Maybe it's a kernel version thing? Issues persist whether on Wayland or X11. DE is KDE Plasma 6.1.5, kernel is current dist kernel (6.6.58-gentoo-dist), though I do have 6.10.11-gentoo-dist on-hand from previously using Testing branch.
Here's some outputs:
`udevadm /dev/input/event21`
Code: | P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:0079:181B.0009/input/input28/event21
M: event21
R: 21
U: input
D: c 13:85
N: input/event21
L: 0
S: input/by-path/pci-0000:00:14.0-usb-0:7:1.0-event-joystick
S: input/by-path/pci-0000:00:14.0-usbv2-0:7:1.0-event-joystick
S: input/by-id/usb-Venom_Limited_PS3_PS4_Arcade_Joystick-event-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:0079:181B.0009/input/input28/event21
E: DEVNAME=/dev/input/event21
E: MAJOR=13
E: MINOR=85
E: SUBSYSTEM=input
E: USEC_INITIALIZED=1736482681
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_BUS=usb
E: ID_MODEL=PS3_PS4_Arcade_Joystick
E: ID_MODEL_ENC=PS3\x2fPS4\x20Arcade\x20Joystick
E: ID_MODEL_ID=181b
E: ID_SERIAL=Venom_Limited_PS3_PS4_Arcade_Joystick
E: ID_VENDOR=Venom_Limited
E: ID_VENDOR_ENC=Venom\x20Limited
E: ID_VENDOR_ID=0079
E: ID_REVISION=0100
E: ID_TYPE=hid
E: ID_USB_MODEL=PS3_PS4_Arcade_Joystick
E: ID_USB_MODEL_ENC=PS3\x2fPS4\x20Arcade\x20Joystick
E: ID_USB_MODEL_ID=181b
E: ID_USB_SERIAL=Venom_Limited_PS3_PS4_Arcade_Joystick
E: ID_USB_VENDOR=Venom_Limited
E: ID_USB_VENDOR_ENC=Venom\x20Limited
E: ID_USB_VENDOR_ID=0079
E: ID_USB_REVISION=0100
E: ID_USB_TYPE=hid
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:7:1.0
E: ID_PATH=pci-0000:00:14.0-usb-0:7:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_7_1_0
E: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_7_1_0
E: LIBINPUT_DEVICE_GROUP=3/79/181b:usb-0000:00:14.0-7
E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:7:1.0-event-joystick /dev/input/by-path/pci-0000:00:1>
E: TAGS=:seat:uaccess:
E: CURRENT_TAGS=:seat:uaccess: |
Last edited by leylanator on Sun Nov 10, 2024 6:25 am; edited 2 times in total |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2870
|
Posted: Fri Nov 08, 2024 3:37 am Post subject: |
|
|
Most times gamepads/mappings are handled by libsdl2 (wine uses it, linux games often do as well or at least use its gamepad db), so it's likely related to it.
It should be possible to remap using SDL_GAMECONTROLLERCONFIG env var, not that I can really help you with that.
Have you tried PS3 mode (assuming there's such a thing)? Maybe it defaults to PS3 mappings and doesn't make the distinction.. also fwiw there's this comment in libsdl2's source: Code: | { MAKE_CONTROLLER_ID( 0x0079, 0x181a ), k_eControllerType_PS3Controller, NULL }, // Venom Arcade Stick
{ MAKE_CONTROLLER_ID( 0x0079, 0x181b ), k_eControllerType_PS4Controller, NULL }, // Venom Arcade Stick - XXX:this may not work and may need to be called a ps3 controller | ID_USB_MODEL_ID=181b seems to match the latter entry, maybe it's bogus.
wrt artix, maybe an older version of libsdl2/gamecontrollerdb.txt used to do things differently assuming it's been a while.
Mappings-wise, it's probably using this from src/joystick/SDL_gamecontrollerdb.h (not that it's very intuitive to look at): Code: | "03000000790000001b18000000000000,Venom Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,", |
Hope this gives some hints to figure out what's wrong anyhow, hard to tell without having the device. |
|
Back to top |
|
|
leylanator n00b
Joined: 10 May 2024 Posts: 32
|
Posted: Fri Nov 08, 2024 5:26 am Post subject: |
|
|
Ionen wrote: |
wrt artix, maybe an older version of libsdl2/gamecontrollerdb.txt used to do things differently assuming it's been a while.
Mappings-wise, it's probably using this from src/joystick/SDL_gamecontrollerdb.h (not that it's very intuitive to look at): Code: | "03000000790000001b18000000000000,Venom Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,", |
Hope this gives some hints to figure out what's wrong anyhow, hard to tell without having the device. |
Fwiw, this seems way off of how the layout is intended (and it even doesn't match my jumble?) I really hope this isn't an inconsistent controller on PC/Linux or anything - maybe they silently used different boards/firmware and have them all showing up the same? If so, booo
The behaviour:
Code: | Intended (Standard layout):
[ X ] [ Y ] [RB ] [LB ]
[ A ] [ B ] [RT ] [LT ]
Button Codes (on my controller):
[B0 ] [B3 ] [B18] [B2 ]
[B1 ] [B17] [B5*] [B4*]
*B4 affects Axis 2 (Right Stick Horizontal). high = high, low = low. Normally Open, Push to Close
*B5 affects Axis 3 (Right Stick Vertical). high = high, low = low. Normally Open, Push to Close.
Where Buttons are according to codes:
[ X ] [ Y ] [N/A] [ B ]
[ A ] [N/A] [RB ] [LB ]
Actual Output:
[ A ] [ X ] [N/A] [ Y ]
[ B ] [N/A] [RB ] [LB ] |
This is very odd. The "face button" cluster on mine seem to have rotated positions clockwise to where they're supposed to be according to the mapping you linked. And the mapping there itself is also iffy regardless of that.
PS3 and PS4 modes have the same button-to-code mapping, except for the Right-Stick bug on what should be the Trigger (R2 L2) buttons. |
|
Back to top |
|
|
leylanator n00b
Joined: 10 May 2024 Posts: 32
|
Posted: Fri Nov 08, 2024 5:33 am Post subject: |
|
|
Model and make clarification:
Venom Arcade Stick
VS2797 SLEH-00276
Batch code 1880 |
|
Back to top |
|
|
leylanator n00b
Joined: 10 May 2024 Posts: 32
|
Posted: Fri Nov 08, 2024 3:26 pm Post subject: |
|
|
Also, in the interest of completeness, here's the rest of the intended buttons to their codes according to gpadtester:
Code: | D-Pad.Up=B12
D-Pad.Down=B13
D-Pad.Left=B14
D-Pad.Right=B15
Cross/A=B1
Circle/B=B17
Square/X=B0
Triangle/Y=B3
R1/RB=B18
R2/RT=B5
L1/LT=B2
L2/LB=B4
Home=B16
Start=B7
PS4.Share=B6
PS3.Select=B6
Touchpad?=B17 |
I'm trying to look around to see if other users have different button outputs. If it's all the same, I'll be more confident in pushing for a general fix.
For now, should I build my own local libsdl2 where the only difference is the header file and what I assign the Venom Controller's buttons to? |
|
Back to top |
|
|
leylanator n00b
Joined: 10 May 2024 Posts: 32
|
Posted: Sun Nov 10, 2024 6:10 am Post subject: |
|
|
I tried another controller (emulated on GP2040-CE firmware). And where its xinput and dinput modes give normal output, its Nintendo Switch controller output is very similar to the Venom stick's output - the buttons in cardinal directions are jumbled in the exact same way (xinput ABXY=SEWN, Nintendo ABXY=ESNW).
Meaning this is a more general issue than I thought it was. We'll leave this at: unsupported controllers go weird. Unsupported is unsupported, so best thing to do is leave a ticket. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|