USB Joistick does not work...

I’ve an USB joystick laying around, that if i plug into my Ubuntu 20.04 PC get recognized as expected and works flawlessy:

[ 1491.734488] usb 1-1.3: new low-speed USB device number 3 using ehci-pci
[ 1491.847866] usb 1-1.3: New USB device found, idVendor=0079, idProduct=0006, bcdDevice= 1.07
[ 1491.847875] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1491.847880] usb 1-1.3: Product: Generic   USB  Joystick  
[ 1491.847884] usb 1-1.3: Manufacturer: DragonRise Inc.  
[ 1491.867464] hid: raw HID events driver (C) Jiri Kosina
[ 1491.873968] usbcore: registered new interface driver usbhid
[ 1491.873972] usbhid: USB HID core driver
[ 1491.888683] input: DragonRise Inc.   Generic   USB  Joystick   as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:0079:0006.0001/input/input16
[ 1491.888757] dragonrise 0003:0079:0006.0001: input,hidraw0: USB HID v1.10 Joystick [DragonRise Inc.   Generic   USB  Joystick  ] on usb-0000:00:1a.0-1.3/input0
[ 1491.888773] dragonrise 0003:0079:0006.0001: Force Feedback for DragonRise Inc. game controllers by Richard Walmsley <richwalm@gmail.com>

If i plug into my Vero 4k+, i got only the USB part, not the libinput part, and joystick does not work:

[  200.139623] usb 1-2: USB disconnect, device number 2
[  208.438616] usb 1-2: new low-speed USB device number 3 using xhci-hcd
[  208.578681] usb 1-2: Device not responding to setup address.
[  208.798647] usb 1-2: Device not responding to setup address.
[  209.018598] usb 1-2: device not accepting address 3, error -71
[  209.598619] usb 1-2: new low-speed USB device number 4 using xhci-hcd
[  209.772562] usb 1-2: New USB device found, idVendor=0079, idProduct=0006
[  209.772571] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  209.772576] usb 1-2: Product: Generic   USB  Joystick  
[  209.772588] usb 1-2: Manufacturer: DragonRise Inc.  
[  209.843308] usb 1-2: USB disconnect, device number 4
[  210.638677] usb 1-2: new low-speed USB device number 5 using xhci-hcd
[  210.822905] usb 1-2: New USB device found, idVendor=0079, idProduct=0006
[  210.822914] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  210.822918] usb 1-2: Product: Generic   USB  Joystick  
[  210.822921] usb 1-2: Manufacturer: DragonRise Inc.  
[  211.230284] usb 1-2: USB disconnect, device number 5
[  212.828643] usb 1-2: new low-speed USB device number 6 using xhci-hcd
[  213.002674] usb 1-2: New USB device found, idVendor=0079, idProduct=0006
[  213.002683] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  213.002687] usb 1-2: Product: Generic   USB  Joystick  
[  213.002691] usb 1-2: Manufacturer: DragonRise Inc.

while, if i plug something other things (a mouse, a keyboard, the Vero 4k+ remote, …) both USB and libinput logs appear, and the device works.

My Ubuntu had kernel 5.4.0-117-generic, vero 4k+ 4.9.113-64-osmc .

I’ve tried to understand why, but i don’t know libinput…

Thanks.

What’s the make and model of the joystick?

Have you tried the other USB port?

Sam

It’s a ‘clone’, no brand one; Anyway, this: https://www.amazon.it/Twodots-PRO-PAD-Analog-Gamepad/dp/B00AWCZXSK

Clearly i’ve tried other USB ports.

Some news?!

I’ve also tried to use an old Wiimote laying around, i can successful pair it to Vero 4K+, but when i go to the input device management, i add the Wiimote profile, i try to configure it does not work.

I plan to add the newer configuration options to our new kernel which will be available for testing at the end of the Summer.

Cool! I’ll wait for!

Ping me here! Thanks.

1 Like

Yes, write notification here pls, so that we can test. :slight_smile: Thank you for your work.

I believe this is already fixed here:

Cheers

Sam

Ok, sorry for the very very late answer.

I’ve finally managed to upgrade to bulseye, upgrade went well, but when i run ‘Internet Archive Game Launcher’ extension, i see only the default controller, also if i’ve installed and configured the most similar controller the PlayStation DualShock.

I’ve also tried many time to configure my controller, but every time i end to a non functional one.

Probably is also a trouble with IAGL… there’s some ‘controller test app’ to install? Or some other way to test the controller?

Thanks.

Since you are mentioning IAGL, I’m guessing we are still in Kodi. And yes you got diffrent controller profiles, but what is less known, is that each emulator, is “tied” to a bunch of controller profiles.

So for SNES emulator in Kodi, you need to install and enable I think it’s like 4 profiles.

The profiles doesn’t have anything to do with your joystick/gamepad/controller, it’s there to match the buttons on your real controller to the “expected input” of that emulator. The default controller i Kodi is a “Xbox like” controller, and it covers most emulators need, but one “default” controller wouldn’t map to a light gun in a NES emulator, without manual labor. There for there is “controller profiles” to map your actual controller to the expected input of the emulator.

So are you gonna use an emulator from the binary-repro zack morris have published, which i mentioned in some other threads, you also need to install the needed profiles. I unsure if it’s done automatically, but you still have to configure that profile, which the emulator(+game?) is dependent on, via Settings/System/input… a head of playing that game in that emulator.

Here some good reading:
https://kodi.wiki/view/HOW-TO:Map_multiple_controllers

Ps. All this is dependent that the OS recognize your controller, which as far as I understood Sam had fixed.

I think i’m not understood well.

I can configure controllers (kodi and SNES seems the default), but i’m not clear how KODI maps controller profiles to my phiscal controller, and how libretro use it.

Reading your link, i’ve seen that there’s a profile for my controller (a Dragonrise compatible one) and downloaded peripheral.joystick/DragonRise_Inc._Generic_USB_Joystick_12b_6a.xml at Nexus · xbmc/peripheral.joystick · GitHub as .kodi/userdata/keymaps/joystick.xml but nothing changed.

The strange thing is that when i’ve plug the controller and started a libretro/MAME game, worked (i can jump, go left/right but no fire); trying to fix it, now does not work at all…

Well for example, lets say you want to play a sega 8/16bit game (master/mega-drive/genesis), if you look at the dependencies , there is a controller profile if i remember correctly, that retro-core (emulator).

Now , I don’t have access to a v.19 and display right now, but from memory:
Settings-System-Input-Configure attached controllers

On the left side you should have a controller-profile for every emulator you have installed, plus the once that comes shipped with OSMC.

In this example you should chose Sega Master system controller, to play “Alex the kid”-game on your sega master system emulator. Then you get the nice picture of the controller in the middle and on the right side a list of buttons, Navigate through that list hitting the “actual button on your real controller” to map it to the button you activated on the right side.

That’s for having “buttons on your controller” mapped to the “emulated controller buttons”.

What you downloaded, is a multi emulator mapping. But I’m unsure, without testing, if such a mapping, without having the actual controller-profile installed, would remain if you installed the controller-profile. I know the only profile comes with OSMC, last time I checked anyhow, was default (xbox 360-ish) and a snes-controller.

When we install a libretro core, it needs a few profiles installed into the system. But all of them have “default mappings” and should “work” out of the box. But take a for example SNES 4-player conversion toolkit, the emulator has support for it, but i doubt any one had that actual hardware connected to their OSMC/Kodi device, so a remapping might be needed. But for the emulator to be able to play the games which needs the 4-ppl-ctrlr, the core needs a mapp for it.

Sorry if this get’s a bit “cloudy” but I got a feverish one year old in my lap while trying to write and explain from memory, how I’ve learnt and understood it.

Edit: Remember I am talking about the Kodi part of this, the fire butrton you are talking about, can you map it on the default controller? Or doesn’t Kodi notice when you trigger it, then it’s back to @sam_nazarkos table

OK, i think i’ve (mostly) understood.

Or at least this explain me because i’ve had the SNES contoller profile non uninstalable, probably because was a dependency for libretro/MAME. But still i’ve not found the way to check for addon dependencies, so is my suggestion.

So i’ve configured the SNES controller, and now i can play MAME games! So, for me:

  1. controller profiles have to be explained better
  2. controller profile dependencies have to be made explicit

Anyway, thanks!!!

1 Like

Since OSMC has a goal to be best media center, emulation isn’t part of that goal. So no real effort has been made since nightlys of v.18.

I did start to build an osmc-entertainment version with all compuleable cores, added and enabled, all controller profiles installed and enabled Inorder to “not have to be bothered”, with grabbing controller profiles “one by one”.

Due to time and energy restraints, when I learned about Zack’s game-binary-repo, I stopped my efforts. I will try to set up a secondary v.19, bullseye environment and see if i can’t make some simple controller install script.

Will get back to you about it later. To get to know the controller profiles needed for a core, you have to locate the emulator and check dependencies in info page for addon

As a step to make this more painless for users, I’ve started building a more automated setup, like my “X-windows install script”. Also like my X-windows installer, it’s not an Official OSMC solution, but more a “user contributed” or as it’s called in literary world: “fan fiction”. It doesn’t come with any real support, but I will strive to keep it functional as long as i can, but since it’s based on repos out of my control, I wont make any promises.

It will download/enable the components needed:

  • enable the libretro addon(comes with osmc, just not enabled)
  • download all controller-profiles
  • install all controller-profiles
  • enable all controller-profiles
  • download kodi_libretro_buildbot_game_addons-repository
  • install kodi_libretro_buildbot_game_addons-repository
  • show link to my guide how to setup an emulator

Thus eliminating the need to understand the ins and outs of controller-profiles, since they are allready there, and most are mapped rather good by default. =)

I’ve tried to look at, but at least for MAME, there’s no controller as dependencies, at least in addon info page (i’ve not seen on other source).

Cool! Say me when it is ready, or at least in good shape for a test!

Was gonna test it here at home this coming weekend, it’s some automation of advancesettings.xml editing I’m unsure about. I’ve never used that python module before. I’ll post a link to the github project when I’ve uploaded it.

After a few hours of blood, sweat and tears. And thanks to @anxdpanic we got a working script. It’s a lot like my oldest son, labor of love that works but the result ain’t pretty.

In short, it’s slow but under correct circumstances it does what it is supposed to do.

Things that kill this script, at least right now, is if you have a automounted drive drive (usb/sd-card) with a label starting with i,gh,I,G orH. And if you have a folder in /home/osmc bagining with w,x,y,z,W,Y,X orZ. The reason is I’m using a a old mobil-keyboard, to blindly naviate to folder i know exists. But I can’t predict every users enviroment. So if the script detects a violation of those two terms it will abort.

Other wise it will, install and enable all controller profiles, allow unknowsources for installation of zip files, install two emulator related repositories, enable libretro-addon to run the emulators, disable some addons that will hog .zip/rar. extension. Remove some file extension mappings of .zip and bin files.

After you have run the script installing emulators is rather easy, still I’ve noticed some emulators need BIOS.roms, other are starting and loading the files but seems to have problem displaying anything, just black screen. And one of the ones I’ve tested so far just crash mediacenter and leave the Framebuffer in a strange mode for like 15-30 seconds, then the mediacenter restarts.

I’m am gonna have to point out that every time you install en emulator, in order to get it to run, you have to restart your Vero (unknown if that goes for Pi as well). And to install an emulator i’m gonna refer to my previus post on Snes on 19 in that post the install procedure for an emulator is bulletpoint 3. And consequensly bullet point 4. Remember reboot before trying any installed emulator.

As I said, I still haven’t tested them all, still working on a way to automate the most of the needed BIOS and other emulator-core dependencies.

REMEMBER this script is still in early alpha stage

Install:

 sudo apt-get update
 sudo apt-get install git
 git clone https://github.com/zjoasan/emuprep_osmc.git
 cd emuprep_osmc
 chmod +x emu_prep.sh
 ./emu_prep.sh

Good luck and Enjoy