Allow WASM-based aircraft to undock their avionics as pop-out windows

It has been brought to my attention that many home cockpit users are frustrated with the new 737 by PMDG due to the fact they can not program their windows to be popped out. I am being told by the developer that it is something Asobo is not allowing. This is a must have for many. PLEASE allow PMDG and future developers to provide pop out window functionality on their planes!

Hello,
Do you have a link to an official statement from PMDG on exactly what the technical limitation is?

https://forum.pmdg.com/forum/main-forum/general-discussion-news-and-announcements/181788-no-pop-out-screens-737-700-doa-for-a-lot-of-simmers

That thread has a lot of discussion, RSR commented a few times and seems to allude to there being a limitation on C++/WASM add ons and the ability to have pop out windows. I’m not sure if this is the whole reason or how indepth the explanation is but that’s what people are basing the wish list and votes on here.

2 Likes

That, and the fact that currently, Pop Outs on most systems, cause a significant Frame rate Hit, that Asobo have still to address. as well as allowing Touch Events in Pop-Outs …

Still a lot to be done to make Pop-Outs really usable …

2 Likes

I get no frame rate hits that are noticeable using 5 screens. I use the RSG G1000 suite, so I have 5 screens total. As a non-programmer, I am surprised by the fact that this is unavailable to PMDG. Of course, I am surprised that after two + years, Asobo still can’t squash CTD’s.

Thank you for that!

Hi there,
In consultation with other members of the team, and in consideration of the fact that this applies to all WASM-based aircraft, not just PMDG’s or the 737 in particular, I renamed your Wishlist post.

2 Likes

I’m not well-read into this particular issue, but my guess is that the reason is security concerns.
Some MSFS aircraft are built using JavaScript, which is a Web programming language. The PMDG 737 was built in C++, which is a heftier language that lets you build non-Web applications like Microsoft Word. Working Title’s avionics and the FlyByWire A32NX use JavaScript.

The problem is that in C++ [Edit for clarity: C++ without WASM], you can do things that JavaScript cannot, like access computer memory directly. That could cause security problems in an environment like Xbox, but WASM is the compromise that allows you to have a safe place while still maintaining most functionality. But it comes at a price like this.

I don’t do aircraft development, so I am not going to pass myself off as an expert in anything I just said, and this is definitely not an official statement of any kind. But my guess is that it’s either not easy or impossible to allow this with WASM. Again, that is a guess. Of course, I hope that the answer is not that it’s impossible.

2 Likes

[edited for clarification]

Note that WebAssembly was created to run C++ programs safely in a web browser in a JavaScript environment, based on existing C++ to JavaScript compilers previously in use – so it’s all sandboxed, and that’s where the compatiblity comes in.

Now, there may be some reason related to how Asobo uses a particular Wasm runtime that these don’t play together in MSFS – this is possible if the Wasm runtime is separate from the HTML/JS engine in order to get different compiler performance, for instance. We don’t know for sure yet! :smiley:

I am talking about the C++ language in general, not in the context of WASM.

I think we’re saying the same thing. I was trying to explain the case for why WASM exists and speculate on what the problem might be.
This is probably going to be on the feedback snapshot for the next 90 days, so we’ll see if it stays at “Investigating”. Hopefully it doesn’t go to “Not Planned”, but if it does, I’m guessing it might be for some compliance reason. But here’s hoping it doesn’t!

1 Like

nod I think you’re right, now that I look it over. No worries. :slight_smile:

(edited my earlier post for tone & clarity)

1 Like

INSERT IMOJI showing a hand going OVER MY HEAD! I have never been interested in actual computer programming. I like hitting the buttons AFTER it is built. Maybe if I had learned more about it, I would have a better understanding.
I am a pilot in real life and been involved with aircraft for many years. Configuring a plane is easy once its in the sim. As far as the programming language, I don’t know a C++ from a D–.

For us visually impaired folks, being able to pop out instruments onto different monitors is a huge feature.

I dont beleive the WASM compiler in MSFS allow you to compile anything that will write to the OS (that isi not limited and sandboxed) - so no “security” issues.

Yeah it’s a shame the 737 doesn’t have pop out panels. It’s one of the things that I’ve grown to love. Not having to constantly look down at my panels. I can pretty much keep my camera looking straight ahead and outside since I have both panels popped out, and using AviaServer for my CDU on a tablet. I really do hope this gets resolved…

WASM is compiled to and contained within a Win32 dll using the toolset from innative. The runtime support comes from a function table that is passed in to the WASM sandboxed code entry point on initialization, but MSFS is only passing in a very limited set of APIs. Since Javascript is also cross-platform, there is no technical reason why the necessary apis supported by the Javascript runtime couldn’t be passed in. However, it may be that it would be necessary to re-implement the needed functionality, which may or may not be a bunch of work.

I’d love to see the cross-platform story be less confining. There should be options to fully support X-box, to partially support X-Box, or to not support it at all. If developers had optional access to LoadLibrary/GetProcAddress from within WASM, then they could have the choice as to what level of support they wanted to provide for X-Box. This would instantly enable PMDG or anyone else to implement pop-ups (assuming that it truly can’t currently be done with the existing drawing APIs). I’d also like to see the ability to develop Win32 dll add-ons without WASM for those who don’t want to support X-Box at all.

1 Like

Gotcha. Total speculation on my part. Aircraft development and WASM is definitely not in my wheelhouse!

Why is no one pointing out that the Aerosoft CRJ is WASM and all external and yet can do POP outs?

2 Likes

Maybe because most do not know what ______________________ about , and are just repeating what they have heard others say.