I'm having substantial problems with the File->Joystick Configuration. It looks like I'm going to need to manually roll my own joystick config file, which is beyond the capabilities of the typical user -- and thus, not a minor bug. I tried searching the tracker, but don't see this one. I apologize if it's a duplicate.
When I first load up, the axis all behave correctly, but the buttons aren't optimal. When I change anything, the axis go crazy (swapping throttle and rudder).
But there is at least one problem evident even before I make a change (see attached image). When I manipulate the throttle, the engine responds accordingly, and the "throttle" label at the bottom of Joystick Configuration changes correctly. HOWEVER -- the input-axis3:Throttle does NOT respond. Instead, input-axis2:Rudder DOES.
When these two behaviors are compared, it seems clear that the UI is not presenting the configuration that the simulator is actually using. Changing any setting causes the loaded configuration to be clobbered by the displayed configuration.
Further, the displayed configuration doesn't seem to completely match either. If I set button2 to "Total Freeze", the UI still displays "None", even though the button works to pause and unpause the simulator.
The initial load-up uses our built-in config files for standard joysticks (which includes the Extreme 3D pro). When you customise the configuration, I think we make a new one from scratch (we can't base it off the previous default one, is my understanding).
It sounds as if the default axis ordering from the configuration tools is wrong, but that's expected: Unfortunately not all joysticks tell us the order of axes: we can assume X then Y (so roll then pitch) but after that, the order of axes 3 and 4 (throttle and rudder) varies, so I guess the configuration tool just picks one or the other. (And relies on the user to swap if it's incorrect)
However, the above is a bit of a guess since I didn't touch the configuration dialog; I'm CC-ing Stuart who was involved in its development
I can certainly understand that it would be unreasonable for the dialog to "edit" a hand crafted configuration file, but "can't base it off the previous default one" makes no sense whatsoever.
You mean to say that you cannot query the simulator to see what it's currently using? It's clear that the simulator is using the correct assignment because it has pulled it out of the default file. But the dialog can't figure that out from the current simulator in vivo? That makes this sound like a design issue. The dialog shouldn't need to parse the default file all over again. That code already works. All it needs to do is populate its fields based on what the simulator already knows. (I really didn't think I was filing a feature request...)
It also doesn't explain why "Total Freeze" is displayed as "None" after assignment.
My understanding (but @stuartbuchanan may need to correct it) is that the config dialog 'starts from zero' in building the configuration; we don't inspect the loaded (runtime) state, since I don't think it has all the information we might need.
The 'Total freeze' part is also new territory for me (I'm not even sure what that command does, I'd not heard of it before)
As near as I can tell "Total Freeze" is Flight Gear lingo for "pause". It seems to pause the simulator, and there is no "pause" option that can be mapped using the dialog. It seems to correspond to what the 'p' button does. It's possible there's a distinction, but I don't know what it might be.
And not to be too petulant, but "I don't think it has all the information we might need" isn't the same as "has none of the information we might need". Maybe there aren't good accessor functions, but it clearly has some information that you clearly do need.
Sorry, I was unclear: I knew that 'Freeze' = pause, I just never heard of 'Total Freeze' before, I was assuming it must be different (better? stronger?) than our regular Freeze, but maybe it's just weird naming choices. For the other bits, I guess someone has to dig into the configurator code/dialog and see what's going on: personally I've never touched it, and don't have the time to start, but I can ask if anyone else is interested in taking a look.
Hi Folks,
This quite interesting, and I don't think it's behaving as it should.
It's been ages since I wrote this code, but the Configuration Dialog should be modifying the current configuration, not starting from scratch.
That the dialog is getting confused about which axes are which is suspicious, and may be the key here. Some joysticks report axes differently on windows vs. other OS. The Logitech you are using is one of these, and I see that the config file (https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Input/Joysticks/Logitech/extreme-3d-pro.xml) has the throttle/rudder axes swapped for Windows.
I think what's happening here is that the joystick configuration dialog is not picking up OS-specific axes indices from the config file, and ends up writing the wrong ones to the config.
I'll assign this to myself and try to fix. A simple workaround would be to swap the rudder and throttle axes sections in the XML file. Then it should work fine on Windows but be broken on Linux :).
I'm not sure what's going on with the "Total Freeze" button - I'll investigate that one as well.
-Stuart