• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Official Airport to SDK project: here is a small app to help you (draft)

Hello.. Support,
Sorry, i understand not, i download "Airport2Project_1_0_0_22.zip", but how install it? i found not Readme..! Where? Or Install to ADE 2020?

There's nothing to install.

Unzip it and click on this and you do everything inside the box that opens.

Screenshot 2024-01-28 145620.jpg
 
Hello.. Support,
Sorry, i understand not, i download "Airport2Project_1_0_0_22.zip", but how install it? i found not Readme..! Where? Or Install to ADE 2020?
Thanks yours A2P Tools..!
The app is created by Patrick Germain. To install, simply unzip it to the directory of your choice. It has nothing to do with ADE 2020, excepting the resultant airport xml can be imported to ADE. Enter an approximate latitude and longitude and then select an icao from the dropdown list.
 
Hallo. This late in the history of MSFS and after a lot of fun work with ADE I get the tip to download your app/pgm/utility. I have read through this thread and it seems to me that your utility decompiles the stock airport bgls. I need a tool to decompile the "updated" / de luxe versions of a number of airports. I have used ADE for editing taxiways and taxyway signs in MSFS, but when using it on improved/updated MSFS airports (Asobo-Microsoft, not addons) I often get scenery errors, terraforming issues (LSZH) and missing objects, as ADE decompiles the base airports and cannot find or handle the improved ones (LFPG, EDDT, EDDB, EHAM...)
I really would love a decompiler for the improved ones. I know I can get into the SDK and start a project with the ADE decompiled xml. Is this what your tool would do - create the base airport xml?

Maybe I should add that I have very little programming knowledge, but I have managed to use ADE for editing jetways, parkings, taxiway signs and taxiways.
 
Some deluxe airports and Marketplace airports are encrypted and cannot be decompiled.
 
OK. Maybe that makes sense economically. Is there a way to know if the .bgls are encrypted? Or perhaps I am more interested in if this utility can decompile .bgls in general. It seems from my limited expertise that the redone/deluxe airports have several separate .bgls that concern different aspects of the airport, but not the scenery as a whole, and perhaps these can be decompiled and added to a project?
 
OK. Maybe that makes sense economically. Is there a way to know if the .bgls are encrypted?

The encrypted ones will show up as a fsarchive file rather than a bgl.

It's only the premium and deluxe airports and payware airports bought through the marketplace that are encrypted, not the world update or other free Microsoft airports.

Those are regular bgls.

This program seems to ignore terraforming and custom materials. There might be a separate shape/ shp bgl with some airports that could be decomplied, but others don't have it.
 
Thanks for clarifications! I suppose the best (?) way to handle this is to add adjusted signs, taxiways and other features next to or over the stock airport features, and then use the delete command to remove everything double. At least for signs. To copy/add all taxiways and signs before deleting the default ones seems a bit tedious though, for airports like EHAM, EGLL and LFPG. Perhaps covering the default signs with new ones is where my stamina ends.
 
Hey guys, I'd love to use this tool (again), but I'm having issues. I can neither unpack stock 2020 airports nor my own. I use Windows 11 with what should be newest patches and .NET runtimes

I basically need this tool to save my airport projects, as I lost the source files in a hardware crash that killed two SSDs (yes, I know, backups ...)

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei Airport2Project.MainForm.selectAirport()
bei Airport2Project.MainForm.btnSelectFile_Click(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9282.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
Airport2Project
Assembly-Version: 1.0.0.22.
Win32-Version: 1.0.0.22.
CodeBase: file:///C:/Users/USERNAME/Downloads/Airport2Project_1_0_0_22/Airport2Project.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9251.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9282.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
PGAirportDecompiler
Assembly-Version: 1.1.0.22.
Win32-Version: 1.1.0.22.
CodeBase: file:///C:/Users/USERNAME/Downloads/Airport2Project_1_0_0_22/PGAirportDecompiler.DLL.
----------------------------------------
System.Configuration
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Core
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9277.0 built by: NET481REL1LAST_B.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Xml
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
Accessibility
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
----------------------------------------
Bgl2020
Assembly-Version: 2.0.0.17.
Win32-Version: 2.0.0.17.
CodeBase: file:///C:/Users/USERNAME/Downloads/Airport2Project_1_0_0_22/Bgl2020.DLL.
----------------------------------------
mscorlib.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
 

Attachments

  • Screenshot 2024-11-24 124326.png
    Screenshot 2024-11-24 124326.png
    59.5 KB · Views: 91
I am wondering if anyone can help me with this one. I decomplied (no errors) a 3rd party airport scenery bgl using A2P. Since the airport (obviously) has quite a few simobjects and bespoke apron markings I decompiled that bgl using MCX. As a result I have an xml file with scenery placements which I set up as BGL library and a ModelLib library with all the 3D models gltf files, plus a texture folder with all the textures. The issue is that the MSFS20 compiler generates Schema/DTS errors, because (I think) GUIDs in the scenery xml do not match object GUIDs of the objects in the ModelLib folder. Example of an entry in scenery xml below, the GUID EDD6C638-C81E-453C-BCA4-571B7F6F67BE is not matching any object GUIDs

<SceneryObject lat="50.4708259552717" lon="19.0677496790886" alt="0" pitch="0.000" bank="0" heading="180.9998" imageComplexity="VERY_SPARSE" altitudeIsAgl="TRUE" snapToGround="FALSE" snapToNormal="FALSE">
<LibraryObject name="{EDD6C638-C81E-453C-BCA4-571B7F6F67BE}" scale="1" />

</SceneryObject>

In the scenery xml there is also (my assumption) an airport perimeter fence whose GUID seems not to be referenced at all. MSFS compiler also throws an error here.

<VectorPlacement profile="{A6CA169F-8FD3-4E73-B08A-2B5C7023844A}" spacing="5.6000" heading="0.0000" scale="1.0000" scaleDelta="0.0000" avoidDiscontinuity="TRUE" castShadow="TRUE" snapToVertices="FALSE" rotation="Follow Edge">
<Vertex lat="50.46877452525" lon="19.08782895096" />
<Vertex lat="50.46877571555" lon="19.08772605293" />
<Vertex lat="50.46882669173" lon="19.08772204893" />
<Vertex lat="50.46901230258" lon="19.08518023131" />
<Vertex lat="50.46900104907" lon="19.08285146153" />
<Vertex lat="50.46944389223" lon="19.08142797557" />
<Vertex lat="50.46989350517" lon="19.08004192110" />
<Vertex lat="50.47045125419" lon="19.08019691570" />
<Vertex lat="50.47054363038" lon="19.08001819433" />
<Vertex lat="50.47056689003" lon="19.07898502933" />
<Vertex lat="50.47096099392" lon="19.07900404236" />
<Vertex lat="50.47096778806" lon="19.07656493380" />
<Vertex lat="50.47027838128" lon="19.07642038994" />
<Vertex lat="50.47029710360" lon="19.07604394380" />
<Vertex lat="50.46967030246" lon="19.07599510975" />
<Vertex lat="50.46966561967" lon="19.07588901501" />
</VectorPlacement>


First question is, am I on the right track here thinking that the problem is with GUIDs? If yes, is there a solution to connect the GUIDs from the scenery file with 3D objects? Of course I can chnage them manually, but no idea which are referring to what! What about the perimeter fence?
Finally what is puzlling for me is why is it that they do not match in the first place? I had no errors during decompilation with A2P and MCX.
 
Last edited:
I am wondering if anyone can help me with this one. I decomplied (no errors) a 3rd party airport scenery bgl using A2P. Since the airport (obviously) has quite a few simobjects and bespoke apron markings I decompiled that bgl using MCX. As a result I have an xml file with scenery placements which I set up as BGL library and a ModelLib library with all the 3D models gltf files, plus a texture folder with all the textures. The issue is that the MSFS20 compiler generates Schema/DTS errors, because (I think) GUIDs in the scenery xml do not match object GUIDs of the objects in the ModelLib folder. Example of an entry in scenery xml below, the GUID EDD6C638-C81E-453C-BCA4-571B7F6F67BE is not matching any object GUIDs

<SceneryObject lat="50.4708259552717" lon="19.0677496790886" alt="0" pitch="0.000" bank="0" heading="180.9998" imageComplexity="VERY_SPARSE" altitudeIsAgl="TRUE" snapToGround="FALSE" snapToNormal="FALSE">
<LibraryObject name="{EDD6C638-C81E-453C-BCA4-571B7F6F67BE}" scale="1" />

</SceneryObject>

In the scenery xml there is also (my assumption) an airport perimeter fence whose GUID seems not to be referenced at all. MSFS compiler also throws an error here.

<VectorPlacement profile="{A6CA169F-8FD3-4E73-B08A-2B5C7023844A}" spacing="5.6000" heading="0.0000" scale="1.0000" scaleDelta="0.0000" avoidDiscontinuity="TRUE" castShadow="TRUE" snapToVertices="FALSE" rotation="Follow Edge">
<Vertex lat="50.46877452525" lon="19.08782895096" />
<Vertex lat="50.46877571555" lon="19.08772605293" />
<Vertex lat="50.46882669173" lon="19.08772204893" />
<Vertex lat="50.46901230258" lon="19.08518023131" />
<Vertex lat="50.46900104907" lon="19.08285146153" />
<Vertex lat="50.46944389223" lon="19.08142797557" />
<Vertex lat="50.46989350517" lon="19.08004192110" />
<Vertex lat="50.47045125419" lon="19.08019691570" />
<Vertex lat="50.47054363038" lon="19.08001819433" />
<Vertex lat="50.47056689003" lon="19.07898502933" />
<Vertex lat="50.47096099392" lon="19.07900404236" />
<Vertex lat="50.47096778806" lon="19.07656493380" />
<Vertex lat="50.47027838128" lon="19.07642038994" />
<Vertex lat="50.47029710360" lon="19.07604394380" />
<Vertex lat="50.46967030246" lon="19.07599510975" />
<Vertex lat="50.46966561967" lon="19.07588901501" />
</VectorPlacement>


First question is, am I on the right track here thinking that the problem is with GUIDs? If yes, is there a solution to connect the GUIDs from the scenery file with 3D objects? Of course I can chnage them manually, but no idea which are referring to what! What about the perimeter fence?
Finally what is puzlling for me is why is it that they do not match in the first place? I had no errors during decompilation with A2P and MCX.
I'm sorry, I can't help you with your issue, but it seems like you are able to do what I am not in my reply above yours? How do you go about decompiling 3rd party scenery? Could you maybe decompile mine, if possible? I need to save/reconstruct my projects :(
 
You need to dowload Airport2Project app, run it, hit "Select" box, choose the scenery bgl and ouput path where you want the xml.

1740345626460.png
 
You need to dowload Airport2Project app, run it, hit "Select" box, choose the scenery bgl and ouput path where you want the xml.

View attachment 95770
that's what I tried back in Novembre, and just now again, but I when I select my BGL file, I immediately get this error message. If it works on your end, could you decompile my files? I'll send you a PM.
 

Attachments

  • Screenshot 2025-02-23 224507.png
    Screenshot 2025-02-23 224507.png
    55.1 KB · Views: 44
I am getting the same error. I can't be 100% certain but it may be due to the fact that there is cgl file (satellite images) in the structure of this airport. If the code in the bgl is referencing it (which it most likely will) then maybe A2P is not able to decompile that part and does not open it all.
The airport I decompiled does not contain a cgl file.
 
I am getting the same error. I can't be 100% certain but it may be due to the fact that there is cgl file (satellite images) in the structure of this airport. If the code in the bgl is referencing it (which it most likely will) then maybe A2P is not able to decompile that part and does not open it all.
The airport I decompiled does not contain a cgl file.
bummer, but thanks a lot for trying
 
Hello:

Do not give up yet. :)

IMHO, there may be some misinterpretation of XML Element structure as errors here:

Code:
https://www.fsdeveloper.com/forum/threads/official-airport-to-sdk-project-here-is-a-small-app-to-help-you-draft.450344/post-931755


As for the error in this post:

Code:
https://www.fsdeveloper.com/forum/threads/official-airport-to-sdk-project-here-is-a-small-app-to-help-you-draft.450344/post-931759

...that 'may' be a 'status' error due to ARP2PROJ not (initially) finding the actual path to an airport.

Be aware that Asobo changed the folder location of generic airports to distinguish them from newer "World Hub" designated airports in the \Official folder chain.

It is likely that now anyone can eventually find- and access- a MSFS default airport ( due to de-compilers :stirthepo).

If you tell us which airport ICAO you are looking for, we are likely able to help you- and ARP2PROJ- find it. ;)

GaryGB
 
Hello:

Do not give up yet. :)

IMHO, there may be some misinterpretation of XML Element structure as errors here:

Code:
https://www.fsdeveloper.com/forum/threads/official-airport-to-sdk-project-here-is-a-small-app-to-help-you-draft.450344/post-931755


As for the error in this post:

Code:
https://www.fsdeveloper.com/forum/threads/official-airport-to-sdk-project-here-is-a-small-app-to-help-you-draft.450344/post-931759

...that 'may' be a 'status' error due to ARP2PROJ not (initially) finding the actual path to an airport.

Be aware that Asobo changed the folder location of generic airports to distinguish them from newer "World Hub" designated airports in the \Official folder chain.

It is likely that now anyone can eventually find- and access- a MSFS default airport ( due to de-compilers :stirthepo).

If you tell us which airport ICAO you are looking for, we are likely able to help you- and ARP2PROJ- find it. ;)

GaryGB
I can decompile the stock MSFS content just fine with the tool now, but I can'd decompile my own compiled mod bgl. I made a scenery mod for ETNW Wunstorf (https://flightsim.to/file/56481/etnw-fliegerhorst-wunstorf-wunstorf-air-force-base), that's my account, that's my upload. But I lost most of the source files in a drive crash last summer, most importantly the main C:/ project folder and all the xml files. I was hoping I could at least get to the xml data for the airport layout back, as I spend weeks working on that.
 
Ouch... that is a shame to lose such nice work on a complex project. :oops:

Did you already over-write the original hard drive ? :scratchch

If, not, you may still be able to resurrect it via recovery software (I have done that my self after HD crashes).


If you have already over-written the original hard drive, you best bet is de-compiling your BGL files.

If I get some time free, I may take a look at what can be done with (2) or (3) de-compilers for MSFS BGLs.


Nice work, though; and glad to see it appears to display OK in MSFS 2024. :)


PS: All 3 de-compilers failed on your ETNW.BGL file from flightsim.to.

However, since ARP2PROJ and the (3) de-compilers work OK on default MSFS BGLs:

I would wonder if flightsim.to has done something to your files; see if they have your original upload intact.

GaryGB
 
Last edited:
I hope this works as it should. Had to edit the BGL to decompile it. This is the XML from your Flightsim.to .BGL.

The problem is the *Landmark Location*
 

Attachments

I hope this works as it should. Had to edit the BGL to decompile it. This is the XML from your Flightsim.to .BGL.

The problem is the *Landmark Location*

Very interesting what was achieved here. :wizard:

Would you please tell us what / how you edited the *Landmark Location*, and in 'which' BGL ? :scratchch

IIUC, that "edit" seems to have allowed ARP2PROJ to complete a de-compilation. :)


It would be very helpful for FSDEV Community to know how to do this, as I fear Patrick Germain has now "retired".

GaryGB
 
Very interesting what was achieved here. :wizard:

Would you please tell us what / how you edited the *Landmark Location*, and in 'which' BGL ? :scratchch

IIUC, that "edit" seems to have allowed ARP2PROJ to complete a de-compilation. :)


It would be very helpful for FSDEV Community to know how to do this, as I fear Patrick Germain has now "retired".

GaryGB

I 00'd the byte at Offset 60 (hex) 31 > 00 ETNW.BGL
 
Last edited:
Back
Top