nguyenquyhy / Flight-Recorder

Record and replay flights in Microsoft Flight Simulator
https://flightsim.to/file/8163/flight-recorder
GNU General Public License v3.0
209 stars 22 forks source link

Engine reverse is not displayed in the replay #25

Open PatriceCesson opened 3 years ago

PatriceCesson commented 3 years ago

Hi

I use the A320 from FBW (FBW version)

Improvement: When the plane is landing and touches the runway I activate the reverse of the engine to slower it. This can be seen with the drone in external view, the engines opening the reverse. This is not displayed in the replay (in the replay, the engines remain in idle with no reverse).

Issue: Also during final approach, during the replay, I can hear "don't sink (or something like that)" continuously until touching the runway.

By the way, ecellent tool, simple, works fine with no flaws.

nguyenquyhy commented 3 years ago

Can you please provide me with the following information? I would really want to figure this issue out because I don't see it in any of my recording.

  1. Are you able to attach the saved .flightrecorder file that have the issue?
  2. Which variant of the 32NX are you using (stable, dev, experimental)?
  3. Do you have any external throttle?
  4. When you are on final (before retard), inside the flight deck, is the throttle at idle position?

Basically the tool does replay the throttle position, which controls the reverser. My guess is that you have an external thrust lever that fight with the replay and keep sending throttle idle command. I think this would trigger Don't sink and prevent reverser from activating.

PatriceCesson commented 3 years ago

Hi Nguyen,

1 Attached is such a replay file: 2021-02-23-14-57.zip. I set an approach of runway 20 at Southampton EGHI directly in FS2020

  1. Presently it use the latest (23 feb 2021) experimental version of the FBW A320.

  2. For the trhrottle, I use a Thrustmaster T-flight Hotas X (and the middle posotion of the Throttle slider is set to be the CLB position of the Airbus).

  3. During approach and on final (before retard), the Throttle is in CLB position. On retard I move the slider to Idle and start the reverse using a key on the Hotas (and I see the throttle levers moving to reverse). For the replay, I tried CLB and Idle position on the Hotas, behavior is the same, no reverse displayed on the engines.

Regarding the callouts during approach: When I perform the standard approach and landing, I hear normal callouts regarding altitude. But on replay, I have only "Don't sink", whatever is the position of the Throttle slider on the Hotas..

Thanks.

Patrice

nguyenquyhy commented 3 years ago
  1. Do you see the thrust lever move itself in the flight deck? If it doesn't move, where does it stay?
PatriceCesson commented 3 years ago

I have to check. Come back afterwards.

Come back. So I tested the file I gave to you.

Two things to notice:

  1. Before the replay, I move my Hotas throttle slider and the throttle levers in the cockpit move accordingly. I loaded the file and run it in replay. Doing this if I move the throttle slider on the Hotas, the throttle levers move also in the cockpit.

  2. And also, loadng and playing the file, I do not hear the "don't sink" messages, but I hear the normal callout altitude messages.

So, during replay, when I hear "retard" in the replay, the throttle levers in the cockpit do not move despite having being moved in the recording.

In fact, the throttle levers remain directly connected to the hotas during the replay and if I engage the reverse duiring the replay, now I can see the engines making a reverse. But the real effect I can see durung the replay is the correct one (the plane slowesr down rapidly) whatever is the position of the throttle levers and the slider of the Hotas.

So, the replay allows mix of actions (not all actions are recorded and the throttle levers can be moved).

What do you think?

Thanks.

Patrice

nguyenquyhy commented 3 years ago

I just tried your replay. So I can see that the thrust level is correct set at CL for the whole approach, then go down to 0 near touch down, and finally pulled back to reversed.

image

I don't have a Hotas X at hand right now, so if it is not too much trouble, can you please help me to try this:

  1. Create a clone profile for the Hotas X and remove the Thrust lever binding
  2. Replay again and see if the thrust lever in the flight deck move as expected
PatriceCesson commented 3 years ago

So I tested with a clone profile and removed throttle slider.

I started my approach replay levers in CLB. On retard, the levers do not move and no reverse.

One question: how do you start the replay? What do you initialize in the sim?

For me: I set my approach in the sim (vicinity of EGHI, RW 20) and FLY button. Once the scenery is loaded, I press "Press to fly". I set the throttles in CLB position. I pause the sim. I load the replay file. I restart the SIM and play the replay file.

Doing this gives me a speed that is too fast. But also I see a lot of settings missing in the cockpit during the replay (no LS, AP1, ATHR, ILS)

And the throttle levers do not move down on retartd.

So, could you explain how you proceed?

Thanks.

nguyenquyhy commented 3 years ago

Let me try again with the experimental variant then. I was on dev and that is the only difference I can think of.

About your question, I simply load the A32NX on a random runway then press Relay in the tool 😂.

PatriceCesson commented 3 years ago

I tried your method and did not get the engine to make a reverse unless I forced the reverse via the keyboard (keys F1 to F4). So, I do not know what to do with this. It is annoying. And at the beginning of the repaly the throttles remain in idle position and I had to set up them at CLB manually. And you you can see the throttles make a reverse? Very strange. The same file and 2 different behaviors. I will try with the other version of the A320.

PatriceCesson commented 3 years ago

So, I have tried with the development version and the reverse is OK. So, this is a problem related to the version of the bus, the experimental one is different in these aspescts. Wee have to wait a correction from the FBW team. Thanks.

nguyenquyhy commented 3 years ago

Yep I can confirm the same. I have also file an issue in FBW repo https://github.com/flybywiresim/a32nx/issues/3703. There is a very recent change related to SimConnect in FBW branch, so it might be the culprit https://github.com/flybywiresim/a32nx/commit/41bea72017a0eae6d8eddc24114e7f8410dfccb3.

omarsmak commented 3 years ago

Hey @nguyenquyhy , I wanted to ask, did you manage to try to capture the other simvar as suggested by Andreas for the throttles?

nguyenquyhy commented 3 years ago

Those are not simvar. Those are events, which are marked as Legacy in latest MSFS docs, so I'm a bit concern spending effort there. Also, the suggested way feels very hacky and can have performance impact, so again more concern.

I haven't started any real work yet though, but I guess I can't really prioritize that until at least I can see that the CRJ requires the same workaround. Right now for me it is still a 32NX's bug since it is the only aircraft that ignores the correct simvar.

aguther commented 3 years ago

No plane will ever be able to implement a custom ATHR system without doing it the way we have done it (only if there is a change in the interface). It‘s simply because the only way to control the engine appropriately is to set that simvar. If you override the engine using other simvars - no that‘s what I call hacky. I did that as workaround for the AP for a while.

I‘m happy to implement a better way if there is one.

Saying those are legacy events and it’s a hacky way is not appropriate in my eyes. Furthermore the _EX1 events are not declared legacy and we also use them. So be prepared for those to stay.

nguyenquyhy commented 3 years ago

No plane will ever be able to implement a custom ATHR system without doing it the way we have done it

I'm not saying you are doing the wrong thing. I understand that is because of the current interface, but the impact is definitely a worse experience in certain regards. Take it this way, for the naked eyes, all aircraft works; only the 32NX experimental and WT CJ4 doesn't. Sounds like a bug of the aircraft to me.

Again I understand the problem is not something you can fix, but I still believe teams with relationship with Asobo should try to do something to improve the situation rather than just saying it is what it is, it breaks what it breaks.

And believe me I tried so much to reach Asobo and Microsoft, they don't care about small freeware dev (or at least me).

Saying those are legacy events

Are you talking about events here? https://docs.flightsimulator.com/html/Programming_Tools/SimVars/Legacy_Event_IDs.htm

I'm not the one saying those are legacy. Asobo says so. And I really don't know the exact meaning of "Legacy" they way to put here. I'm just a little bit concerned.

it’s a hacky way

Maybe we are not really on the same page on this. I'm not saying the 32NX using that event is hacky. I'm saying recording and replaying that event is hacky because of all the traps around that implementation that can break the functionality.

aguther commented 3 years ago

Well, I’m pretty sure today the next aircraft will join the group of not working aircraft: the Aerosoft CRJ.

Some time ago there was a similar discussion with YourControls but they adapted and now it seems to work fine using the events.

Talking in real world terms: what you currently do is that you capture the values inside the FADEC of the engines and are surprised that the throttle in the cockpit does not move…

omarsmak commented 3 years ago

Hey @nguyenquyhy , I have tested it in the CRJ and the reverse doesn't work as well as the engine thorttle itself, similar issue to FBW issue

nguyenquyhy commented 3 years ago

Yup, but at least the sound is working 😄.

omarsmak commented 3 years ago

Yup, but at least the sound is working 😄.

Lol. Out of curiosity, do you think it would make sense to experiment on the workaround that @aguther purposed? I mean I know it can be hacky but really everything from FSX to P3D to MSFS have been very hacky lol

nguyenquyhy commented 3 years ago

I will. I'm not against it even though I am saying it's hacky (as you said, a lot of things in flight sim are the same). I was just hoping that if it is a problem with the platform, FBW would attempt to talk to Asobo to improve the situation given their good relationship with Asobo, but I guess it's a lost cause then.

omarsmak commented 3 years ago

I will. I'm not against it even though I am saying it's hacky. I was just hoping that if it is a problem with the platform, FBW would attempt to talk to Asobo to improve the situation given their good relationship with Asobo, but I guess it's a lost cause then.

I know what you mean but with the amount of issues the platform currently has, this will sit at the bottom and I am pretty sure, this bug MSFS has inherited it straight from FSX and I doubt even if they have an idea how fix it (just picture thousands of legacy C++ code with tons of loop and ifs) 😆

nguyenquyhy commented 3 years ago

Yah but that's also how the platform never grows. When influenced people, how little the influence is, gives up voicing before even trying. ;(

aguther commented 3 years ago

I agree with you that it would be really cool to have a simulation variable for the throttles and one for the engines. That would really easy a lot of stuff. Same goes for all other flight controls.

On the other hand: those events are kind of the variable…you just have to listen…

Looking at the amount of events I also need to capture…not a lot of fun. That‘s one of the things that could be solved first. Now there are sometimes multiple events for the same thing…

Let‘s face it: I don‘t expect an update there in the near time frame. I also think that stuff like being able to read LVAR over SimConnect is far more important. It will become an issue for you as well at a certain point…by the way it would also solve that issue. Bc. the TLA of the Throttles and the animation position is a LVAR on our side. So setting all of those would very likely also solve it.

nguyenquyhy commented 3 years ago

Let‘s face it: I don‘t expect an update there in the near time frame. I also think that stuff like being able to read LVAR over SimConnect is far more important. It will become an issue for you as well at a certain point…by the way it would also solve that issue. Bc. the TLA of the Throttles and the animation position is a LVAR on our side. So setting all of those would very likely also solve it.

Does that mean setting LVAR would control the sound and the reverser? That would be awesome. And I agree with you that LVAR over SimConnect is so important. Do you happen to know if we are going to get any improvement on that from Asobo 😥.

And besides, I really appreciate your participation in the conversation. I'm so sorry for being a bit impatient and frustrated before, but that really comes from the immense respect and really high (and probably unreasonable) hope from what FBW has achieved.

aguther commented 3 years ago

Let‘s face it: I don‘t expect an update there in the near time frame. I also think that stuff like being able to read LVAR over SimConnect is far more important. It will become an issue for you as well at a certain point…by the way it would also solve that issue. Bc. the TLA of the Throttles and the animation position is a LVAR on our side. So setting all of those would very likely also solve it.

Does that mean setting LVAR would control the sound and the reverser? That would be awesome. And I agree with you that LVAR over SimConnect is so important. Do you happen to know if we are going to get any improvement on that from Asobo 😥.

And besides, I really appreciate your participation in the conversation. I'm so sorry for being a bit impatient and frustrated before, but that really comes from the immense respect and really high (and probably unreasonable) hope from what FBW has achieved.

Yeah…internally it’s handled the following way: The inputs events are captured and based on the user mapping the original TLA value is generated. That value is then used by the ATHR but get’s also converted into an animation value (which is unfortunately not the same) that is used by the 3D model.

No one issue could be that when you do the replay, that your input and the original one are fighting each other (because if you move the hardware throttle, the input events get captured again and the LVARs are overridden).

I just thought about adding a special LVAR to express “IN REPLAY” so the hardware axis does not override the values. But unfortunately this will not help you due to the lack of access via SimConnect.

The other way are custom events…but also very special thing.

I will continue to raise this request to MS/Asobo…we will see.

omarsmak commented 3 years ago

I just thought about adding a special LVAR to express “IN REPLAY” so the hardware axis does not override the values. But unfortunately this will not help you due to the lack of access via SimConnect.

Some guys from FBW and also other developers like GSX .. etc, bootstrapped this project to export LVARs to outside world using WASM module https://github.com/theomessin/jetbridge

The source of the discussion: https://forums.flightsimulator.com/t/demo-lvar-write-access-for-any-aircraft-control/353443:

omarsmak commented 3 years ago

@nguyenquyhy besides @aguther, also Mathijs Kok from Aerosoft is welcome to provide the custom LVARs as he mentioned here. The way I see it, I think some serious thinking how to support every complex add-one, pretty sure QW, PMDG ..etc will have the same exact story :/