Hello all, first time poster and fairly recent FreeBSD convert after jumping from Slackware. Anyway, I've run into a minor issue with using USB gamepads/joysticks on FreeBSD, and was hoping someone could help or alternatively let me know that I should file a bug report (I'd wager the former is the case). It's a bit complicated, so I will break it down step by step.
I apologize if I'm missing something obvious, I'm no expert on these USB devices, and did a forum and a mailing list search before asking. After trying alternative drivers and making sure the USB hid daemon has started properly, I'm a bit out of ideas. Also, just to clarify, I am on 10.0.
Edit: I have partially fixed the issue. First, it turns out that the problem with the Sidewinder controllers only occurs when a 360 controller is plugged in a USB port at the same. So unplugging the 360 controller, and rebooting with only the Sidewinder connected, solves that. I have also partially resolved the 360 controller issue; in Snes9x, there is a software joystick calibration option. Running this allows the 360 controller to work properly with that emulator. PCSX-R doesn't have any joystick calibration option, and the issue persists with it, so I'm guessing it's some type of issue with the 360 controller driver.
- I first tried using an Xbox 360 controller (wired), both an OEM model and a Mad Catz Brawl Pad (made like a Saturn controller and lacking analogue sticks). They are detected and at first seem to be working. But, when I try to assign keys in an emulator (PCSX-R, Snes9x, Hugo), as soon as I try to input the new key value it automatically assigns the 2- axis (which correlates to the right trigger). So in other words, before I can even press a button, the controller is already outputting at that 2- axis as if I had pressed the right trigger.
- I had similar issues under Slackware a few years ago, and solved it by removing xf86-input-joystick based on a post I read over at linuxquestions.org. So, I thought that just maybe it would work on FreeBSD. I therefore tried deinstalling the x11-drivers/xf86-input-joystick port and rebooting, but the issue persisted.
- I decided to try some other USB plug and play gamepads, and see if this was just an issue with the 360 controller driver. So, I reinstalled the xf86-input-joystick port, rebooted, and tried using two older Microsoft Sidewinder gamepads (one with an analogue stick, one even older that only had a d-pad). With both of these, they again are detected, but when I try to assign keys, they output the 1- axis, which correlates to down on their d-pads.
- I tried installing the devel/libgamepad port, the issue persisted with the Sidewinder controllers.
- I was able to find a passable workaround, by manually assigning all of my keys and analogue stick/d-pad axis with the 360 controllers while avoiding 2- (and not being able to use the right analogue trigger as a result), or using the analogue stick (and not the d-pad) on the newer Sidewinder.
I apologize if I'm missing something obvious, I'm no expert on these USB devices, and did a forum and a mailing list search before asking. After trying alternative drivers and making sure the USB hid daemon has started properly, I'm a bit out of ideas. Also, just to clarify, I am on 10.0.
Edit: I have partially fixed the issue. First, it turns out that the problem with the Sidewinder controllers only occurs when a 360 controller is plugged in a USB port at the same. So unplugging the 360 controller, and rebooting with only the Sidewinder connected, solves that. I have also partially resolved the 360 controller issue; in Snes9x, there is a software joystick calibration option. Running this allows the 360 controller to work properly with that emulator. PCSX-R doesn't have any joystick calibration option, and the issue persists with it, so I'm guessing it's some type of issue with the 360 controller driver.