The main issue: UP and LEFT directions do not work
My Video from when i first got the device:
This isn't technically a fault with the Linux drivers, simply the Retrobit device is a little funky / non standard, windows doesn't seem to mind, but Linux will not tolerate such sloppiness... Unless you tell it to!
Luckily some smart folks have identified the issue and found a solution.(sources and links at the bottom of this article.)
This fix I'll discuss here is specifically for ARCH Linux and derivatives (for example Manjaro) But can be applied to other Distributions , you'll just need to grab the source code and compile it yourself (unless there's a package for your distro) The source i believe is available on GitHub. and can either be built as an external kernel module or compiled into the kernel but the latter requires compiling a whole new kernel / adding the code and recompiling your current kernel. I'd recommend the external kernel module approach as it's quick n easy.
**GitHub link for RPM/Debian based distros at the bottom**
I'd also recommend you have your Kernel headers installed before building the module.
So:
sudo pacman -S linux-headers
And install the headers for whichever kernel you are using, mine at the time of this post was linux40 ( 4.0.5-1-MANJARO )
Then using the AUR build and install the hid-retrobit-dkms package:
yaourt hid-retrobit-dkms
Or if you want you could do it manually, but yaourt is quick n easy and there's nothing we need to edit or change. Once this has finished building and installed, you then need to test it out and enable loading the module on boot, or if you're happy loading it manually each time that's fine also (could even create a udev rule maybe?)
So, loading the module:
sudo modprobe hid-retrobit
Now hook up your retro-bit USB adapter and connect a controller to it, then test it out with whatever you like, Personally I tested with QMC2 (sdlmame frontend) which is my preferred mame frontend, and has a joystick test / calibration section in it's options where you can easily test things out.
Worked first time for me which makes me very happy as for ages this was bugging me, until i came across the AUR package and the GitHub page.
Load the new module on boot:
make a new .conf file in /etc/modprobe.d/ directory
something like: hid-retrobit.conf
with the following:
#Retrobit hid driver module
hid-retrobit
That's it, the hid-retrobit module should now load every time on boot up.
Synrgy is a happy bunny now, can use my SEGA sticks and pads with the USB adapter and don't have to boot into windows to do it, wins all round!
Sources:
AUR package: https://aur.archlinux.org/packages/hid-retrobit-dkms/
GitHub: https://github.com/robmcmullen/hid-atari-retrobit
Also on Github looks like RPM and Debian builds?(I have not tried these!)
https://github.com/retuxx/hid-retrobit
Raspberry Pi forum: https://www.raspberrypi.org/forums/viewtopic.php?f=78&t=36564&hilit=retrobit&sid=a62529b02927d6379951594bfc5faaff