![]() Of course DirectInput only shows the first 6, but the rest are there if you go down to the HID level like I do.Īnyway, you got your issue working, I'll stop ranting now. A DualShock4 controller has 16 analog axes: But then says there's only 8 axes possible, and returns a single POV as the 7th and 8th axes, which should be the first 2 sliders.Īn example of a common device that would break this limit if fully supported: Playstation controller. But there's no way to query how many axes or POVs there are.Īnother issue, it sets up the Direct Input format for 4 groups of analog values, each having 6 axes and 2 sliders (so 4*(6+2)=32 total). SFML does allow you to query how many buttons are really on a joystick, but clamps the value to 32 max. Unless I missed something it's doing in there. (c_dfDIJoystick2 is the already set up by DirectInput 32 axis, 128 button, 4 POV format) Result = m_device->SetDataFormat(&c_dfDIJoystick2) On a side note, since nothing dynamic is being done there (like allocating exactly the number of axes/buttons on the device by enumerating all controls), the 80+ lines of format setup could be replaced with: ![]() The joystick setup code is ignoring AxisCount and is hard coded to 32 anyway (just won't let you look at them due to AxisCount), while it does use ButtonCount to set up the buttons. So by the look of it (haven't tested) changing ButtonCount to 128 and AxisCount to 32 in joystick.hpp (and recompiling SFML) should be enough. Combining design, incredible functionality, ergonomics and an attractive price, this is the flight stick to get if you want the best all-around solution to upping your Flight. Currently it's set to 8 axes and 32 buttons (and 4 POVs, but they don't get a count constant).īut the setup code is using a custom format structure with 32 axes, 32 buttons and 4 POVs.īut then the setup code says the number of objects in that struct is 32 axes, 128 buttons and 4 POVs (with 96 buttons undefined) by saying the format was the same size as DIJOYSTATE2 afterall. Looking at the SFML joystick code, it seems at least for Windows they may have forgotten to update the counts. (It's a pet hate of mine, I've got Virpil hardware with more than 32 buttons and have to use software like Joystick Gremlin and vJoy to redirect my throttle through multiple virtual 32 button devices) Support for 128 buttons came out in 1997 in DirectInput 5.īut we still have games like Elite Dangerous that refuse to support it. Nonetheless sf::Joystick::isButtonPressed() returns false for all buttons 0-31 no matter what I do. Sf::Joystick::getIdentification() describes the devices ok, and sf::Joystick::IsConnected() tells me they are both connected, and sf::Joystick::getButtonCount returns 32. The thing I'm suspicious of is both the flight sim devices have more than 32 buttons which I know DirectX doesn't support, but the buttons I'm interested in all have DirectX ID's less than 32, and for example I can still see the correct button status for the buttons I care about in their Windows properties test popups (e.g. The same program has no issues seeing correct status on a traditional joystick that is also connected. Sort it out PLEASE.In my SFML based Windows program, I'm trying to get status of some buttons from two flight simulator devices that show up under windows as USB joysticks, but for neither of them does sf::Joystick::isButtonPressed() ever return anything but "false" even when pressed. When I couldn't unfold my weeder because the key wasn't bound to my controller anymore, I chose reset default controls and it didn't put it back! Even resetting to default doesn't always work. Except if I choose to reset to default when I stuff up the settings myself. The game shouldn't be setting anything by itself. I also cant manually setup buttons because when I click these blue arrows nothing shows up. When I click the 'sensitivity' area in control settings all the axis are working no problems. The game detects my joystick fine but none of the buttons work and I cant control the yoke. I've spent 20 hours trying to map my controls, only to have them lost or changed by the system at some random launch. FS2020 detects joystick, but doesnt let me control the plane. Sometimes I can launch the game 3 or 4 times without them being reset. Every time I launch the game, the BEEF FEED device is there and bound. I've tried manually editing the input bindings.xml to remove all references to BEEF FEED. The game picks up some controller to which it maps multiple options and calls it BEEF FEED. If I have to unplug them just to play this one game, then I'd rather not play it because of the hassles it will cause with all the other setups.ĭeleting input bindings.xml has no effect. ETS2, ATS, iracing, dirt rally and DCS to name a few. ![]() They remain connected at all times so that I don't have to remap bindings in other games. Keyboard, Razer Nostromo PAD, Mouse, G920, X52 Pro and x-box controller.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |