TeamPandory / pandory500

65 stars 4 forks source link

THEGamepad Dpad Not Working Properly in Amiberry 5 #12

Closed CommodoreOS closed 7 months ago

CommodoreOS commented 2 years ago

I just tried Amiberry 5 in Pandory, I used the link in Retroarch to run it and its has a Dpad gamepad problem, when you press up on the Dpad it goes up/right and if you press left on the Dpad it goes left/down, it don't go up or left properly , down and right works ok so there is a problem with Up and Left on the Dpad, the other buttons work ok.

CommodoreOS commented 2 years ago

About how THEGamepad works: It uses the same GH001 Game Hub 001 IC as the one in THEC64 Joystick and SDL see its UP, Down, Left and right as analogue so not a digital pad so maybe thats why it has a problem with it. THEGamepad is a clone of THEC64 Joystick. If you look at its GUID string you see it uses leftx:a0,lefty:a1 for analogue: 03000000591c00002600000010010000,Retro Games LTD THEGamepad,a:b2,b:b1,x:b3,y:b0,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Linux, TheC64 Joystick is the same: and they almost have the same GUID too. 03000000591c00002300000010010000,Retro Games LTD THEC64 Joystick,b:b1,a:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, I did a lot of work looking into THEC64 Joystick, THEGamepad uses the same names in Linux to for its buttons so THEGamepad is THEC64 Joystick really. This might help too:


THEC64 Joystick Evtest Code(just in case I need it for something)... and A500 Gamepad buttons in (brackets)
----------------------------------------------------------------------------------------------------------------------------------------------
BTN_TRIGGER = Left Fire(Y),  BTN_THUMB = Right Fire(B),  BTN_THUMB2 = Triange Left Fire(A),  BTN_TOP = Triange Right Fire(X), 
BTN_TOP2 = Button A(Left Shoulder Button), BTN_PINKIE = Button B(Right Shoulder Button), BTN_BASE = Button C(Menu), BTN_BASE2 = Menu(Home).
THEGamepad -                Y     B     A      X   LSB RSB Menu Home
THEC64 Joystick -         LFire Rfire TLfire TRfire A   B   C   Menu
Joy2key BASH Code -         0xd  0x9     1     2    3   4   5    6
----------------------------------------------------------------------------------------------------------------------------------------------```
dajoho commented 7 months ago

This is fixed if you use the retroarch autoconfig mappings to map your controller. The internal udev of the a500 is faulty and causes this up/left-bug.