[Linux] Problems With Controller Logitech F310


ChemBro

Recommended Posts

I bought the Humble Indie Bundle 9 and used the Steam key to play Mark of the Ninja on Steam for Linux. And I have a problem with my controller (Logitech F310 in XInput mode, which mimics a Xbox 360 controller).

 

First, I always run, always being detected the whole game. I cannot sneak on the enemy, not even while climbing or walking through the vents.

 

Second, some buttons are not correctly mapped, like "Focus" (is on RT instead of LT), "Run" (I always run), "Camera View" (i push right and it goes up, I push left and it goes down, or the other way around). Start, Back, A, B, X, Y work as intended and the grappling hook (RB). I don't know what LB does. LT pans the camera to the right.

 

I use Arch Linux 64bit.

Link to comment
Share on other sites

Arch Linux 64-bit here, I have the same issues (always running) but with a wireless Xbox 360 controller. I'm using xboxdrv with the xinput profile.

 

Needless to say, only this makes the game nearly unplayable with a controller. Unless you launch the game with -nocontroller you always run, even with the keyboard controls.

Link to comment
Share on other sites

We are currently looking into this issue and hope to have a fix for it in the next day or so.

 

We appreciated your patience.

Thank you all, we really appreciate Klei's effort of bringing your games to other platforms.

But at the risk of being a little obnoxious, I should point out when something isn't quite working. Not in a disrespectful manner, in any shape or form, don't get me wrong.

Thank you again, I hope this gets solved as soon as you can, I'm eager to play this fenomenal game :grin:

Link to comment
Share on other sites

I think, I had a similiar controller problem with the beta of Strike Suit Zero and it might be, that the standard controller configuration (if you use SDL2) by SDL2 is not correct, but this is just a pure guess. I know, that my controller has a profile in SDL2.

Link to comment
Share on other sites

 
 
 

I think, I had a similiar controller problem with the beta of Strike Suit Zero and it might be, that the standard controller configuration (if you use SDL2) by SDL2 is not correct, but this is just a pure guess. I know, that my controller has a profile in SDL2.

 

Mmm... In that case here is my configuration (if they're using Mono) ~/.config/MonoGame/MonoGameJoystick.cfg:

<?xml version="1.0" encoding="utf-8"?><MonoGameJoystickConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  <BUTTON_START>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>7</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_START>  <BUTTON_BACK>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>6</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_BACK>  <BUTTON_A>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>0</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_A>  <BUTTON_B>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>1</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_B>  <BUTTON_X>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>2</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_X>  <BUTTON_Y>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>3</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_Y>  <SHOULDER_LB>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>4</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </SHOULDER_LB>  <SHOULDER_RB>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>5</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </SHOULDER_RB>  <TRIGGER_RT>    <INPUT_TYPE>Axis</INPUT_TYPE>    <INPUT_ID>5</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </TRIGGER_RT>  <TRIGGER_LT>    <INPUT_TYPE>Axis</INPUT_TYPE>    <INPUT_ID>2</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </TRIGGER_LT>  <BUTTON_LSTICK>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>9</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_LSTICK>  <BUTTON_RSTICK>    <INPUT_TYPE>Button</INPUT_TYPE>    <INPUT_ID>10</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </BUTTON_RSTICK>  <DPAD_UP>    <INPUT_TYPE>PovUp</INPUT_TYPE>    <INPUT_ID>0</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </DPAD_UP>  <DPAD_DOWN>    <INPUT_TYPE>PovDown</INPUT_TYPE>    <INPUT_ID>0</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </DPAD_DOWN>  <DPAD_LEFT>    <INPUT_TYPE>PovLeft</INPUT_TYPE>    <INPUT_ID>0</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </DPAD_LEFT>  <DPAD_RIGHT>    <INPUT_TYPE>PovRight</INPUT_TYPE>    <INPUT_ID>0</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </DPAD_RIGHT>  <AXIS_LX>    <INPUT_TYPE>Axis</INPUT_TYPE>    <INPUT_ID>0</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </AXIS_LX>  <AXIS_LY>    <INPUT_TYPE>Axis</INPUT_TYPE>    <INPUT_ID>1</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </AXIS_LY>  <AXIS_RX>    <INPUT_TYPE>Axis</INPUT_TYPE>    <INPUT_ID>3</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </AXIS_RX>  <AXIS_RY>    <INPUT_TYPE>Axis</INPUT_TYPE>    <INPUT_ID>4</INPUT_ID>    <INPUT_INVERT>false</INPUT_INVERT>  </AXIS_RY></MonoGameJoystickConfig>

According to this wiki page:

 

SDL_GameController, a new subsystem added by Alfred Reynolds at Valve. This takes configurations for known controllers and automatically configures them for the virtual 360 controller, so if your controller is recognized, manual configuration is not necessary. If you run a MonoGame-SDL2 title through Steam, your controller will automatically be configured using the Big Picture Mode configuration.

 

 

So, if the Big Picture Mode configuration isn't correct then the game controller config is wrong as well, I think.

Link to comment
Share on other sites

There is an update, but it didn't fix the issue. Also I noticed, that if I push "up" on the right analog stick, I can walk without running (and without getting detected all the time), though push "up" on the right analog stick all the time...

Link to comment
Share on other sites

I've now got my Logitech F310 working (mostly, you seem to start every level in focus, but hitting focus once clears it). Basically, I'm using xboxdrv, but because the F310 isn't automatically detected by xboxdrv, you have to supply the --device-by-path info. To do this automatically, I'm using this quick Python script:

 

#! /usr/bin/env pythonimport reimport subprocessbus_regex = re.compile(r'Bus (\d\d\d)')dev_regex = re.compile(r'Device (\d\d\d)')lsusb_output = subprocess.check_output(['lsusb']).decode('utf-8')lsusb_lines = lsusb_output.split('\n')for line in lsusb_lines:    if 'F310' in line:        bus = bus_regex.search(line).groups()[0]        dev = dev_regex.search(line).groups()[0]bus_dev = bus + ':' + devsubprocess.call(['xboxdrv', '--type', 'xbox360', '--device-by-path', bus_dev,                 '--detach-kernel-driver', '--silent'])

If you save that as ninja_controller.py, and run it with "sudo python ninja_controller.py", it should set you up. Please remember that in doing so, you're running arbitrary code, and doing it with administrative privileges. The script is simple enough that anyone who knows Python should find it pretty easy to understand, but don't run it if you don't trust it.

Link to comment
Share on other sites

 

I've now got my Logitech F310 working (mostly, you seem to start every level in focus, but hitting focus once clears it). Basically, I'm using xboxdrv, but because the F310 isn't automatically detected by xboxdrv, you have to supply the --device-by-path info. To do this automatically, I'm using this quick Python script:

 

If you save that as ninja_controller.py, and run it with "sudo python ninja_controller.py", it should set you up. Please remember that in doing so, you're running arbitrary code, and doing it with administrative privileges. The script is simple enough that anyone who knows Python should find it pretty easy to understand, but don't run it if you don't trust it.

 

Thanks for this, onesandzeros.  I had never used xboxdrv and had no idea if it would work for this.  I adapted your work into a shell script that udev can run on startup.  The schell script uses --device-by-id instead of --device-by-path but otherwise makes the same call to xboxdrv.

 

If anyone would like to do this, here's the code:

 

/usr/local/bin/logitech-f310.sh:

#!/bin/shif test "$ACTION" = "add"then    xboxdrv --type xbox360 --device-by-id 046d:c21d --detach-kernel-driver --silent &else    killall -9 xboxdrvfi

/etc/udev/rules.d/logitech-f310.rules:

SUBSYSTEM=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c21d", RUN+="/usr/local/bin/logitech-f310.sh"

This works on Ubuntu 13.04.  The path for udev rules might be different on other systems.  Also, I'm assuming that all F310's have the same USB vendor/product ID.

Link to comment
Share on other sites

Could you please try starting the game with the "-triggeraxis" command line option after downloading the update? On Steam this can be done by right clicking on the game in the games list, choosing properties, and then pressing "Set launch options" in the General tab.

Link to comment
Share on other sites

I tested "-triggeraxis".

 

Good:

I don't always run.

 

Bad:

Once I press "Focus" (still on RB instead of LB), I can't unfocus again. It stays that way, even if I restart the level. Also camera (right analog stick) still doesn't do what it should, LB, which should be Focus or Run is camera to the right. Couldn't test which one is the run button, because I couldn't unfocus.

Link to comment
Share on other sites

  • Developer

I tested "-triggeraxis".

 

Good:

I don't always run.

 

Bad:

Once I press "Focus" (still on RB instead of LB), I can't unfocus again. It stays that way, even if I restart the level. Also camera (right analog stick) still doesn't do what it should, LB, which should be Focus or Run is camera to the right. Couldn't test which one is the run button, because I couldn't unfocus.

 

Okay, we'll continue to look at the controller map functionality. The fact that the focus remains on afterwards gives us some ideas where to look.

 

Thanks!

Link to comment
Share on other sites

Okay, we'll continue to look at the controller map functionality. The fact that the focus remains on afterwards gives us some ideas where to look.

 

Thanks!

 

I have been running my head into walls trying to get this to work... I will post a full description of the experience here now

 

1) When alt+tabbed out of the game, the game is constantly trying to get me back into the game. Right now my mouse cursor looks like a schizoid/crack addict on withdrawals. No, really. Please do something about this, because I have spent nearly as much time trying to fix my Logitech 510 as I have trying to fight with your game to trouble shoot the problem. (Closing game now because it is annoying)

 

2) The right trigger is locked to focus. Always. It doesn't matter what method I used to alter the controllers behavior, it seems to hook it and never let go. It doesn't matter which method I choose to try to change this, it locks to it. (Part of me wants to go into great pornographic/brutally painful detail with how frustrating this is.)

 

3) The right joysticks left, right, and down may be configured to w/e I like. The vertially up direction is locked to the sneak/walk/run button. It is impossible to map the run button to anything else on the controller.

 

I could map focus to whatever button I liked, but that would always leave me with focus being on the right trigger + w/e other button. The run button was never able to be mapped to any other button than vertically up on the right joystick. <insert graphic desprition of my frustration>

 

4) Changing the keyboard settings in game, and then changing the controller configuration in ubuntu by any of the methods mentioned here or elsewhere had no effect on the focus and run being stuck to their previously mentioned controller axi.

 

I appreciate any help you guys give us, as this is really more of a Linux issue with having horrible controller support/development. I would go complain to Linux devs/ubuntu guys, but they will only tell me it is because M$ and Logitech dont support Linux. The former will never support it, and the latter is unlikely to ever try.

Link to comment
Share on other sites

Hello,

 

I'm trying to play on Linux with the controller Logitech RumblePad 2, I can't get xboxdrv to work. 

And when I play without trying any driver, the A B X buttons are swapped somehow (A is left, B down, X right) and none of the trigger button are working :( (Actually LT = map and RT = pause) No button do running for instance.

 

Any help ? :(

 

Thanks !

Link to comment
Share on other sites

Hello,

 

I'm trying to play on Linux with the controller Logitech RumblePad 2, I can't get xboxdrv to work. 

And when I play without trying any driver, the A B X buttons are swapped somehow (A is left, B down, X right) and none of the trigger button are working :( (Actually LT = map and RT = pause) No button do running for instance.

 

Any help ? :(

 

Thanks !

 

I've got same problem. I have a generic "PS2" gamepad, and I use Mageia3.

Why doesn't developers put the option to customize gamepad configuration like kb+mouse?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.