Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Closed] Venom Arcade Stick Gamepad incorrectly mapped
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gamers & Players
View previous topic :: View next topic  
Author Message
leylanator
n00b
n00b


Joined: 10 May 2024
Posts: 32

PostPosted: Fri Nov 08, 2024 2:23 am    Post subject: [Closed] Venom Arcade Stick Gamepad incorrectly mapped Reply with quote

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
View user's profile Send private message
Ionen
Developer
Developer


Joined: 06 Dec 2018
Posts: 2887

PostPosted: Fri Nov 08, 2024 3:37 am    Post subject: Reply with quote

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
View user's profile Send private message
leylanator
n00b
n00b


Joined: 10 May 2024
Posts: 32

PostPosted: Fri Nov 08, 2024 5:26 am    Post subject: Reply with quote

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
View user's profile Send private message
leylanator
n00b
n00b


Joined: 10 May 2024
Posts: 32

PostPosted: Fri Nov 08, 2024 5:33 am    Post subject: Reply with quote

Model and make clarification:

Venom Arcade Stick
VS2797 SLEH-00276
Batch code 1880
Back to top
View user's profile Send private message
leylanator
n00b
n00b


Joined: 10 May 2024
Posts: 32

PostPosted: Fri Nov 08, 2024 3:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
leylanator
n00b
n00b


Joined: 10 May 2024
Posts: 32

PostPosted: Sun Nov 10, 2024 6:10 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gamers & Players All times are GMT
Page 1 of 1

 
Jump to:  
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