MSFS 2024 (And 2020) using FSX code in 2025?

I am a owner of not only Asobo’s MSFS versions (2020 and 2024), but of P3Dv5, which builds upon FSX’s engine. While digging through files, the 3 sims are eerily similar. I will show screenshots for both P3Dv5 and MSFS 2024, keep in mind MSFS2020 is identical to 2024 minus the a CFG file having a slightly different name.

P3D in Appdata folder:


MSFS Local Cache folder:
image
P3D SimObjects folder:
image
MSFS Sim objects folder:
image

There are many other similarities such as both using SimConnect, the scenery index folders are similar with both using .dat files, and similar names for files such as “SimObjects” being identical in both sims. Also, I vividly remember going into a MSFS file to make an adjustment to use Aerowinx PSX along with it and saw “FSX” plain as day in the file.
While some other people have mentioned that 2020 uses FSX code, and I am surprised but also not surprised to see that 2024 follows the tradition. It really all makes sense when you think about it. FSX having no rain effects and MSFS 2024/2020 also having none, freeware aircraft being ported over from FSX, developers “remaking” products for FSX in the newer sims, such as GSX which uses the same exact Coatl exe for both P3D/FSX and MSFS.

It is obvious that the “new” uses code that is 20 years old, so that isn’t even a question at this point. The real question for Asobo is how long do you plan do keep using this, albeit reliable, but aging engine? When are you actually going to build a new sim completely from the ground up instead of making a decades old sim cloud based and giving it fancy shaders? Are you gonna finally do it in 2028 or are you going to push into the next decade?

People say P3D is FSX on steroids, and I would completely agree with that.
Because of that I like to say MSFS 2020/2024 is FSX after a s** change operation.
When are you going to modify your sim to a modern engine that is built for the new age in technology and can let the sim have the things a flight sim should have, such as rain effects?

Not the case. We ship 4 different versions of the Couatl engine:

  • A 32 bit version built with the FSX-SP2 Simconnect SDK, so it can connect with FSX, P3D V1, V2 and V3, which is the last 32 bit version of P3D.

  • A 64 bit version for P3D, built with the P3D V4 SDK, which connects with P3D V4, V5, V6.

  • A 64 bit version for MSFS 2020, built with the latest 2020 SDK, which connects with MSFS 2020.

  • A 64 bit version for MSFS 2024, built with the latest 2024 SDK, which connects with MSFS 2024.

The installer will configure each sim by starting the correct version for each simulator.

The Couatl engine is a custom Python interpreter, and the whole GSX code is written in Python, and because the Python scripts “knows” which version of the Couatl engine they are running under, they can branch out different versions of the code and do different things when required. So, for example, if we are running in P3D 4/5/6, we can create custom Camera Views on the fly, or use the Mouse to drag objects, because those P3D versions have a Camera API which can interact with the mouse, if we run under FSX or MSFS, we don’t do that, something like this:

if isMSFS():
    print("I'm running under MSFS any version")
    if isMSFS2024():
      print("I'm running under MSFS 2024, let's do something specific for it")
elif isP3D4orMore():
   print("I'm running on a 64 bit P3D version")
else:
  print("ouch, the sim seems to be very old...")

That’s something you might find in an hypothetical piece of GSX code, but it will up to the Couatl engine to sort out the differences between simulators.

For example, you want to write to an L:Variable ? GSX Python code would look like this:

lvar = LVariable("MY_LVAR")
lvar.setValue( 1 )

But, what will happen “inside” will be very different depending on the version of the Couatl engine that would run this code:

  • The 32 bit version for FSX will use the named variables in the PANELS API
  • The 64 bit version in P3D will use the PDK
  • The MSFS version will use Simconnect

This way, the same code can communicate with different simulators, using the most suitable method for each one, so we can still offer support for FSX, but still being a “native” application for the most modern simulators.

This topic is not related to a sim developer query regarding the SDK, and should be closed. This forum is for developer questions only.

The answer to that is: in 2020.

A smattering of folder and config files is not an analysis of the source code itself, and of course would be expected in a product supporting backwards compatibility of over 30 years of APIs. 2020 runs on top of a completely custom engine tailored specifically for large worlds and flight simulator, as does 2024, which is even more advanced engine-side still.

Is there still some FSX era code that exists? Absolutely, code just doesn’t start to become wrong or bad over time, and some areas don’t really benefit from modern technology; rewriting things just because doesn’t really have any tangible value, and things still have to maintain API compatibility. But there are countless, countless areas where new functionality supercedes the old, even if the old is still around.

But, does it run on the FSX engine? Definitively, absolutely, no.

-Matt

2 Likes

Don’t feed the troll.

Thanks for the insight to how the sim works, from first glance it seemed that it was just copy and paste. But there are a bit “too much” similarities with FSX, and that’s most likely a design choice from what I’ve seen here. But you can never be too skeptical.