MSFS Pop Out Panel Manager (with Touch Panel Support)

I don’t honestly understand why they added the pop-out functionality in the first place, since they definitely weren’t doing a like-for-like feature parity exercise with FSX.

In the context of a simulator being designed to be used by PC or console users on a single screen with a mouse or Xbox controller (which is absolutely the primary use case that they considered), making it possible to pop out just the glass of the avionics while not making it possible to interact with the pop-out in any way doesn’t seem to give any type of user what they actually want or need. It’s almost like they started working on full-featured pop out panels a la FSX, got so far, abandoned it, and then forgot to take it out when they released the sim. People literally had to discover it for themselves. I was convinced for months that you could not do it until someone discovered the magic incantation.

I honestly think the way to drive this forward is through the wish list and getting people to vote because that does genuinely seem to get their attention; look at the number of changes in SU12 which are linked to wish list topics in the release notes.

1 Like

This has been reported and requested in multiple threads since the sim lauched. It has gotten zero traction or attention. And there are several archived / locked posts about it as well. It’s been asked about in Q&As and never addressed. It really doesn’t seem that they’re at all interested in addressing it.

Aug 2020

Sept 2020

Sept 2020

And this was a reply I got from one of the Asobo devs over on the devsupport forum about it earlier today.

While the new popout feature is appreciated and works well, it causes more problems than it solves. Literally, of the 4 main issues wiht popouts, this is the least important as we already had POPM to fix it.

It seems that if it isn’t a feature that supports all platforms, they’re not really interested in fleshing it out into a fully developed feature. We just have to look at the flight recorder and multi-screen support to see that.

2 Likes

It’s essentially exactly what users of Air Manager want and need. But I do understand that touch control of the popped-out instruments, themselves, would be useful to a large part of the user base.

Hi all,

Even though MSFS server is current down but… Great news, POPM should work with SU12!

Please see following SU12 beta thread for more information. It would be much appreciated to keep the SU12 discussion in that thread so we’re not mixing current release and SU12 beta information for POPM :slight_smile:

Stanley

1 Like

It’s not just Air Manager users. Since the recent addition of the HJet and Vision Jet, and now the TBM and Longitude with the new AAU I G3/5000, a lot of folks are now hooking up their tablets with Spacedesk and using POPM to enable touch on the GTCs.

The fact we have touch avionics in the sim, but can’t use them natively on touch screens is just unfathomable. Even less comprehensible is the fact that this is not considered in any way as being something worth prioritizing or looking into.

In any case, @RoastGnu has come through for us again as he always done. You should find some nice deposits in your PayPal account. You can have some beers on us for your weekend holiday. :slight_smile:

1 Like

Why do some planes work in MSFS2020 and others not?

I got most working but some, for example the Black Box Analog C208B I just get a black box popout? even though I see the GTN750 in the cockpit.

Any suggestions would be great.

Kind regards
Rob

Has anyone had any issues with the preferences not saving? My POPM does not start automatically with the sim, and I noticed in preferences there’s a checkbox for that which was unchecked. I check it, but then don’t see any kind of “save” button, so I just close the preferences screen. But when I go back in, it’s still unchecked. Sort of weird…

This isn’t a POPM issue, but rather an issue with the plane itself.

I don’t have the Caravan mod, but this problem also exists with the MilViz C310. It’s the way that the various avionics are “layered” in the virtual cockpit that’s the issue. Chances are, what it’s popping out for you is a GNS530 screen instead of the GTN screen.

The trick for this - at least on the C310 - is to click at the very bottom edge of the GTN screen to get it to pop out vs in the middle. You can test this by manually popping out the display. Find where the “magic spot” is that will pop out the GTN instead of the inop GNS, and that’s where you need to place the touch zone for POPM.

1 Like

I’ve found the ones that don’t work, manually turn on battery, standby battery and all avionics. Let it pop out and load and when done turn it all off. Yeah its not immersive like having it done automajically. But the only way I’ve found to work around the issue.

Well I’ve reloaded MSFS 2020 after removing several updates ago ticked off at the FPS loss on window pop out. Good news for me, with the 3070TI, the latest drivers and SU12 I’m at 50-63 fps now and no stuttering!

This is now with DX12 selected and DLSS set in the graphics. Before this never worked correctly..

Not sure what’s going on. Today, POPM started crashing on startup. Using the new SU12 compatible beta…

Not sure what happened. It worked during a flight. Came back for another one a bit later, and I can’t get it started any more. Tried rebooting the machine, of course, but no dice…

It drops 2 entries in my event viewer:

Entry 1:  

Faulting application name: MSFSPopoutPanelManager.exe, version: 3.4.6.0, time stamp: 0x63cf6d31
Faulting module name: KERNELBASE.dll, version: 10.0.22621.1194, time stamp: 0xfaa44dd0
Exception code: 0xe0434352
Fault offset: 0x000000000009051c
Faulting process id: 0x0x1040
Faulting application start time: 0x0x1D9551C81777E55
Faulting application path: F:\Games\Popout Manager\MSFSPopoutPanelManager.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 6909caa3-bf78-4460-8264-e360a9813e47
Faulting package full name: 
Faulting package-relative application ID: 

Entry 2:

Application: MSFSPopoutPanelManager.exe
CoreCLR Version: 6.0.1423.7309
.NET Version: 6.0.14
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.DeferrableContent' threw an exception.
 ---> System.Xaml.XamlObjectWriterException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
 ---> System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.DeferrableContent' threw an exception.
 ---> System.BadImageFormatException: 
File name: 'ControlzEx, Version=4.0.0.0, Culture=neutral, PublicKeyToken=69f1c32f803d307e'
   at System.Reflection.RuntimeAssembly.GetType(QCallAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive, ObjectHandleOnStack assemblyLoadContext)
   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
   at System.Reflection.Assembly.GetType(String name, Boolean throwOnError)
   at System.Windows.Baml2006.Baml2006SchemaContext.ResolveBamlTypeToType(BamlType bamlType)
   at System.Windows.Baml2006.Baml2006SchemaContext.GetClrType(Int16 typeId)
   at System.Windows.Baml2006.Baml2006Reader.Process_DefAttributeKeyType()
   at System.Windows.Baml2006.Baml2006Reader.ReadKeys()
   at System.Windows.ResourceDictionary.SetDeferrableContent(DeferrableContent deferrableContent)
   at System.Windows.Baml2006.WpfSharedBamlSchemaContext.<>c.<Create_BamlProperty_ResourceDictionary_DeferrableContent>b__297_0(Object target, Object value)
   at System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(XamlMember member, Object obj, Object value)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
   at MS.Internal.AppModel.AppModelKnownContentFactory.BamlConverter(Stream stream, Uri baseUri, Boolean canUseTopLevelBrowser, Boolean sandboxExternalContent, Boolean allowAsync, Boolean isJournalNavigation, XamlReader& asyncObjectConverter)
   at MS.Internal.AppModel.MimeObjectFactory.GetObjectAndCloseStream(Stream s, ContentType contentType, Uri baseUri, Boolean canUseTopLevelBrowser, Boolean sandboxExternalContent, Boolean allowAsync, Boolean isJournalNavigation, XamlReader& asyncObjectConverter)
   at System.Windows.ResourceDictionary.set_Source(Uri value)
   at System.Windows.Baml2006.WpfSharedBamlSchemaContext.<>c.<Create_BamlProperty_ResourceDictionary_Source>b__342_0(Object target, Object value)
   at System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(XamlMember member, Object obj, Object value)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
   --- End of inner exception stack trace ---
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
   at MS.Internal.Xaml.Runtime.PartialTrustTolerantRuntime.SetValue(Object obj, XamlMember property, Object value)
   at System.Xaml.XamlObjectWriter.SetValue(Object inst, XamlMember property, Object value)
   at System.Xaml.XamlObjectWriter.Logic_ApplyPropertyValue(ObjectWriterContext ctx, XamlMember prop, Object value, Boolean onParent)
   at System.Xaml.XamlObjectWriter.Logic_DoAssignmentToParentProperty(ObjectWriterContext ctx)
   at System.Xaml.XamlObjectWriter.Logic_AssignProvidedValue(ObjectWriterContext ctx)
   at System.Xaml.XamlObjectWriter.WriteEndMember()
   at System.Xaml.XamlWriter.WriteNode(XamlReader reader)
   at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter, Boolean closeWriter)
   at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter)
   at System.Windows.SystemResources.ResourceDictionaries.LoadDictionary(Assembly assembly, String assemblyName, String resourceName, Boolean isTraceEnabled, Uri& dictionarySourceUri)
   at System.Windows.SystemResources.ResourceDictionaries.LoadGenericDictionary(Boolean isTraceEnabled)
   at System.Windows.SystemResources.FindDictionaryResource(Object key, Type typeKey, ResourceKey resourceKey, Boolean isTraceEnabled, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean& canCache)
   at System.Windows.SystemResources.FindResourceInternal(Object key, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference)
   at System.Windows.FrameworkElement.FindResourceInternal(FrameworkElement fe, FrameworkContentElement fce, DependencyProperty dp, Object resourceKey, Object unlinkedParent, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, DependencyObject boundaryElement, Boolean isImplicitStyleLookup, Object& source)
   at System.Windows.StaticResourceExtension.FindResourceInAppOrSystem(IServiceProvider serviceProvider, Boolean allowDeferredReference, Boolean mustReturnDeferredResourceReference)
   at System.Windows.StaticResourceExtension.FindResourceInEnviroment(IServiceProvider serviceProvider, Boolean allowDeferredReference, Boolean mustReturnDeferredResourceReference)
   at System.Windows.StaticResourceExtension.TryProvideValueImpl(IServiceProvider serviceProvider, Boolean allowDeferredReference, Boolean mustReturnDeferredResourceReference)
   at System.Windows.ResourceDictionary.SetOptimizedStaticResources(IList`1 staticResources, IServiceProvider serviceProvider, StaticResourceExtension staticResourceWorker)
   at System.Windows.ResourceDictionary.SetKeys(IList`1 keyCollection, IServiceProvider serviceProvider)
   at System.Windows.ResourceDictionary.SetDeferrableContent(DeferrableContent deferrableContent)
   at System.Windows.Baml2006.WpfSharedBamlSchemaContext.<>c.<Create_BamlProperty_ResourceDictionary_DeferrableContent>b__297_0(Object target, Object value)
   at System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(XamlMember member, Object obj, Object value)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at MSFSPopoutPanelManager.WpfApp.App.InitializeComponent()
   at MSFSPopoutPanelManager.WpfApp.App.Main()

Weird.

ControlzEx is a theming library - ControlzEx: Shared Controlz for WPF (github.com) - which evidently POPM is using to build its UI. The exception looks to be thrown when the XAML for the UI is being read from resources in the binary. That suggests you’ve got a broken dependency somewhere.

I would preserve your settings json file, delete your installation and re-install it and see if it still does it.

Edit: for it to be throwing from KERNELBASE.dll is potentially odd… I might do a system check / sfc scannow etc just in case.

Reinstalled POPM, ran sfc /scannow (it found nothing wrong). Still no worky.

Hmm. Maybe environmental. Quick experiment: turn off Windows time syncing and set your clock back a week.

Hi Otto Pilot,

Would you please try deleting all exiting POPM binaries? These binaries are self extracted packages when .NET single file POPM exe is being run. Please try removing all the folders inside your hidden POPM user profile folder in the path below (you should see a bunch of folders with cryptic folder names inside this POPM folder). Hopefully this will clear up any corrupted files when you rerun the actual POPM exe and it will re-extracrt POPM binaries.

%userprofile%\AppData\Local\Temp.net\MSFSPopoutPanelManager

The path above I typed above is from my memory recollection (so the path is close to that). I am currently out of town until March 28th and am so sorry that I am not able to have access to my MSFS game machine and POPM development machine to debug this issue.

As for Controlzex, it is indeed a dependency library that is used by MahApps metro dark theme library I used in POPM UI. Something newly updated or installed could be conflicting with this library all of a sudden, maybe a Windows update?

Please report back if removing all existing extracted POPM binaries resolve your issue.

Stanley

Deleted the %userprofile%\AppData\Local\Temp \ .net\MSFSPopoutPanelManager folder contents, and it seems it’s all working again.

Odd problem, but hey, it’s working now. That’s what matters.

Thank you again, especially for taking the time to do this while out of town.

Just taking a first look at this, how does the “Include in-game menu bar panels” option work, what’s the process?

This is so weird. Something must be caching in Windows for POPM .Net app that caused your issue. I will try to figure out what is going on when I get home.

Well, it works for now, so I’m happy and know how to fix it if it happens again.

As always, appreciate what you do greatly.

Hello
Does it still work with SU12 ?
For me I can’t rezise the pop out panel with the interface anymore, so for me it is not working any more
Same for others ?