It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
hollunder: Hi there,
I just tried this game.
I was confused because it showed the xbox buttons instead of keyboard keys even though I had no gamepad plugged in. I then plugged in the gamepad and restarted the game, yet the game does not recognize any button presses.

I think I figured out what is going on, but it is really odd. Here is part of the console output:

Controller 0, SynPS/2 Synaptics TouchPad, will use generic MonoGameJoystick support.
Controller 1, Xbox Gamepad (userspace driver), will use generic MonoGameJoystick support.

Yep, it looks like the game recognizes my touchpad as controller, which is really stupid. And indeed, the game reacts to the touchpad, but it's obviously unplayable this way.

Does someone know a fix or workaround?
Hello hollunder,

It seems like the issue with random devices being detected as joypads is quite common:
http://askubuntu.com/questions/173376/how-do-i-disable-joystick-input/624151#624151

A programmer from Brazil came up with a solution and shared it on GitHub:
https://github.com/denilsonsa/udev-joystick-blacklist

It blacklists udev devices from being wrongly detected as joysticks. You should be able to add the problematic touchpad using it's vendor and product hexadecimal IDs. You can obtain them by running the following command:

cat /proc/bus/input/devices

Let me know what you think about using this workaround!
avatar
hollunder: Thanks for your help, but this is not my problem.
Without any gamepad plugged in there is no /dev/js*.

<snip>
From ArchLinux wiki:
"Linux has 2 different input systems for Joysticks. The original 'Joystick' interface and the newer 'evdev' based one. (...) SDL2 supports only the new 'evdev' interface."
Rogue Legacy uses SDL2, which means it looks for joystick in /dev/input/event* devices instead of /dev/input/js* (which are deprecated).

And to quote the udev-joystick-blacklist README file:
"This repository contains rules that will prevent the non-functional /dev/input/js* and /dev/input/event* devices from being recognized as joysticks."

So I still think that blacklisting your touchpad using udev-joystick-blacklist (or manually if you know how to do so) would solve your issue :)

Sources:
https://wiki.archlinux.org/index.php/Gamepad#Joystick_input_systems
https://github.com/denilsonsa/udev-joystick-blacklist
Post edited January 30, 2017 by linuxvangog
avatar
hollunder: (...)
However, because there are no additional or wrong js or event devices present and no other program recognizes the touchpad as joypad I am of the opinion that the game is at fault.

I found one way to work around this issue: remove the kernel module responsible for the touchpad. In my case: rmmod i8042

However, I do not think that should be necessary.
I completely agree, that should not be necessary. However, since such issue affects a variety of devices and Linux 4.9 kernel brings a patch fixing it for some of them, I believe it is a kernel bug, thus using a workaround is justified.

If you believe that this issue could be solved by changes in the game code, you are free to contact the programmer behind the Linux port of the game: http://www.flibitijibibo.com/