BattleBlock Theater

BattleBlock Theater

Spongie May 16, 2014 @ 7:58am
Gamepad/controller issue. (linux) SOLVED!
I have a Logitech PS2-style controller (Rumblepad 2), it does not work at all. When the game says "push any button" no button works and I cannot reassign any controls in the settings.

I recently bought Gigantic Army and Power Puff Girls, both games require a gamepad to be played and they work just fine. It also works in Euro Truck Simulator 2, HL2, KF, etc. To make a long story short: my gamepad works with lots of game, why doesn't it work with this one and how can I make it work?

EDIT: putting this edit here to save people reading through the posts.
As someone suggested, you edit your controller settings in big picture mode and then it should work.
Last edited by Spongie; May 19, 2014 @ 7:08am
< >
Showing 31-42 of 42 comments
Spongie May 18, 2014 @ 2:07pm 
Actually, it does work exactly like I said and like you said. Any joystick is just buttons and axes, I have stated this and so have others in this thread. This is the case on Linux, with or without SDL, joysticks are just an array of buttons and axes. Why this game handles it differently is a mystery to me.

If I'm still stuck after setting up the Steam controller, I'll just forgest about it and move on.

ps. between coders, yeah, the Linux joystick API works just like that even without SDL2's controller API. it's just an array of buttons and axes, like I stated. If you use the normal SDL2 joystick API you will get the same result, you don't even need the special controller API, it's just convience for Steam releases. ds.
maxine May 18, 2014 @ 2:08pm 
Well, no, that's the point. It's just buttons and axes, but each joystick may have them in a different order. That's why the GAMECONTROLLER API was introduced.
Spongie May 18, 2014 @ 2:12pm 
But my controller doesnt respond at all. I can't even rebind the controller buttons and axes in this game. THAT is the point, don't change the thread point please. :)

If you use the normal Linux joystick device or SDL's general joystick API you still get button and axes changes registered. If the issue was a controller button/axes mismatch and all I had to do was rebind, I would not have cared about that. I usually rebind anyway.
RIO May 19, 2014 @ 12:18am 
installed the program x360ce and now joysticks work
koder May 19, 2014 @ 2:07am 
I attempted using both big picture controller settings and x360ce, and neither work with my NEO.
Benjamin May 19, 2014 @ 2:17am 
Originally posted by Spongie:
But my controller doesnt respond at all. I can't even rebind the controller buttons and axes in this game. THAT is the point, don't change the thread point please. :)

If you use the normal Linux joystick device or SDL's general joystick API you still get button and axes changes registered. If the issue was a controller button/axes mismatch and all I had to do was rebind, I would not have cared about that. I usually rebind anyway.

You're only half right here, so you're missing soeb's point a bit. The SDL2 "GameController" api is built on top of the Joystick API. So, while it's true that SDL2 can see all joysticks, it doesn't recognise all of them as "GameControllers". This is why you need to configure it outside of the game (or use BPM) and feed the game a string.

Why is this the case? Joystick re-mapping is hard. Really hard to get right, especially with the large variety of analog stick and trigger joysticks that we have these days. The GameController API makes all joysticks look like a 360 controller internally, so that the game doesn't have to support re-mapping at all. It's easier for game developers, and you don't see a bunch of games with half-assed joystick mapping that doesn't always work right.

Ethan Lee, a prominant Linux/Mac porter, has an excellent blog post about exactly this subject.
https://plus.google.com/102593483001615978126/posts/6YshLR6pJMW

Whether or not you think it's better to have each game have thier own remapping ability, or the system-wide SDL2 GameController API way is better, is another topic.
Benjamin May 19, 2014 @ 2:18am 
Originally posted by K wow:
I attempted using both big picture controller settings and x360ce, and neither work with my NEO.

K wow, this thread is about Linux. I don't think BMP will work in your case, so you're best off trying to get x360ce working.
Spongie May 19, 2014 @ 6:55am 
@Benjamin:

Everyone else manage to make proper Linux joystick support, Steam big picture mode and games, both in and out of Steam. In fact, there are many open source games you can use for reference. It's just not hard enough to warrant this limitation, speaking from experience.

You can rest your case though, I'm giving up. I will make sure that the next game I buy has full support for my hardware. It's still a let down for this game and this limitation shouldn't exist.
koder May 21, 2014 @ 12:28am 
Ah, ok. Well, I've managed to get x360ce working now anyway, so I'll be leaving now. Thanks anyway!
Benjamin May 21, 2014 @ 2:13am 
Spongie, I'm not arguing that proper joystick can be managed. I agree that it can. But it's really hard, because of varios issues with modern controllers (such as triggers registering as as -3200 instead of 0 when released). SDL2's GameController API is the answer to that, and in fact it's what Steam uses as well for BPM. This is the best solution we have for seamless joystick support, from some of the smartest guys out there.
Spongie May 22, 2014 @ 10:59am 
@Benjamin:

My controller worked fine in big picture mode. If it's so hard, why does my controller work in every other game and in big picture mode without any change of settings? In any case, consider the thread closed since the bpm settings solved the issue.
abchk1234 Jul 2, 2016 @ 6:35am 
Originally posted by steev:
Originally posted by Spongie:
I don't know what BPM is. It's not a permission problem, it works fine with all other games, both steam and non-steam. This is a bug and needs to be resolved upstream.

BPM = Big Picture Mode

To make generic controllers work in SDL2 games you have to open Big Picture Mode, go to Settings>Controller, and map the buttons. Did you already do that?


Originally posted by Benjamin:
Yes, configuring in Big Picture Mode usually is necessary for less popular controllers. Once you do it though, all games using SDL2 can inherit that configuration automatically. If you havn't done that yet, do it now and try again.

If you HAVE already configured it there, then Battle Block Theater might not have implemented the GameController configuration import function. It's only a few lines of code to implement if not.

Thx @steev and @Benjamin, mapping the controls in BPM makes the controller work for me :-)

Thx to @Spongie for bringing up the issue and keeping at it.
Last edited by abchk1234; Jul 2, 2016 @ 6:41am
< >
Showing 31-42 of 42 comments
Per page: 1530 50

Date Posted: May 16, 2014 @ 7:58am
Posts: 42