Playstation 2 Dualshock 2 / SNES Controllers with adapters


Active Member

Thanks: 29
Messages: 186

Has anyone succeeded in getting original Playstation 2 Dualshock 2 controllers to work with FreeBSD?

I have two PS2 Dualshock analogue controllers, and a cheap USB adapter from ebay. It all works fine on PS2 / Windows (with adapter), so I know it is not a hardware issue.

My issue is this:

The emulators I am using (emulators/mednafen, emulators/snes9x, among others) receive intermittent signals such that when I hold down a button, D-pad, or joystick (E.g accelerate, or walk forward), the car/character/whatever on the screen moves with great delay, and only in short bursts.

This makes games unplayable.

Here is dmesg:
ugen2.4: <vendor 0x0810 Twin USB Joystick> at usbus2
uhid1 on uhub3
uhid1: <vendor 0x0810 Twin USB Joystick, class 0/0, rev 1.00/1.06, addr 4> on usbus2
random: harvesting attach, 8 bytes (4 bits) from uhid1
So it seems to be recognized properly.

I tried installing the x11-drivers/xf86-input-joystick driver, with and without a config file, but it hasn't made any difference. I'm not 100% the config file is being used. How can I check? Here are the contents of the /usr/local/etc/X11/xorg.conf.d/joypad.conf:
Section "InputDevice"
    Identifier     "Joy0"
    Driver         "joystick"
    Option         "Path" "/dev/uhid1"
    Option         "Device" "/dev/uhid1"
Is there anything else I can check? Do?

EDIT: Today I received another package from Japan, this time a set of two original SNES SHVC-005 controllers, and a Mayflash SNES Controller to USB Adapter.

The pads seem fine (although I don't have my old SNES to test them), but I am having exactly the same problem as with the PS2 pads; the emulators are receiving only intermittent signals, such that Mario will not run, only walk, stop, walk, stop, etc.

Again, seems to work fine on Windows.

ugen0.8: <HuiJia USB GamePad> at usbus0
uhid1 on uhub4
uhid1: <HuiJia USB GamePad, class 0/0, rev 1.10/1.11, addr 8> on usbus0
random: harvesting attach, 8 bytes (4 bits) from uhid1
Last edited:


Active Member

Thanks: 20
Messages: 106

I recently wrote short test program to read the HID data from the PS4 DualShock. I then sniffed the output and determined the packet format, so I'm confident I can use the PS4 controller (wired mode) in freeBSD when the time comes...negating the use of the rumble motors or the mouse pad "click"...but all the axis and pushbuttons are addressable. I don't intend to screw around at all with xorg-input-joystick or uhidd.


Active Member

Thanks: 59
Messages: 176

so I'm confident I can use the PS4 controller (wired mode)
FreeBSD's problem isn't actually a lack of driver (webcamd has all the Linux gamepad drivers for what it's worth), but the absence of appropriate joystick/gamepad API for talking to applications. Evdev porting effort should solve that problem but it's still not quite there. Currently stuck at I think.