Updates to the FSX SDK in SP1 
 
by Michael Zyskowski 
         

   
Sections
Introduction Terrain and Scenery
General SDK Changes Modeling
SimConnect SimObjects
Graphics Gauges
Missions
   

Introduction

In an effort to better support our customers and our community, we're releasing an update to Microsoft Flight Simulator X: Service Pack 1 (SP1). We had three main goals in developing this update:

  • Improve performance
  • Fix bugs blocking third-party add-ons
  • Fix egregious bugs

We always strive to release code of the highest quality, but it's a fact in software engineering that no piece of software ever is shipped "bug free." The work we've done in developing SP1 is a testament to our dedication to providing the best experience possible for our customers.

In addition to updating the run-time FSX executable for performance and general bug fixing, we've also made some significant changes to the Software Development Kit (SDK) and related run-time components for improving the third party extensibility mechanisms.

This is actually the second update to the SDK. The first update (FSX_SDK_SP1) was shipped in December 2006, primarily to support the 3D modeling exporting tools. In an effort to avoid confusion between naming of run-time vs. SDK updates, we're calling this SDK update "SDK SP1A."

There are two downloads required as part of this SDK update process:

  • FSX SP1
  • FSX SDK SP1A

Because the SDK ships only in the Deluxe version of FSX, in order to install the SDK SP1A update you must have the RTM or SP1 version of the SDK already installed.

The list of bug fixes is provided in the Readme documentation. This article is provided to offer a more extensive explanation of the changes made to support FSX SP1 and the associated updates to the FSX SDK SP1A.

General SDK Changes

GMax
Removed GMax install exe and tutorial exe's for space. If you still need to install GMax, please visit turbosquid to download, install and register for use.

Samples
We've provided some new source samples to help explain use of different SDK components:

  • VB.NET
  • Updated .exe's
  • Menu sample
  • Facilities sample
  • Aircraft texture livery source samples

Simulation Variables
The primary change to the simulation variables includes the ability to "FREEZE" the run-time simulation of AI SimObjects in position and orientation. This allows programmatic manipulation of user and AI SimObjects by external networks or high-fidelity run-time simulations. We also added support for Hydraulic Reservoir Percent, documented which variables are part of the shared cockpit experience, and updated the documentation where bugs were found.

Documentation
We've made significant changes to almost all areas of documentation, either to fix erroneous information or to add information that helps clarify new or existing extensibility methods. Some of these include:

  • Custom FSX extentions to the .X file format.
  • Living world (jetway) extensibility explanation.
  • Updates to bugs and incomplete SimConnect documentation.

SimConnect

Versioning Support
Key functionality implemented, tested and documented on how 3rd parties can maintain compatibility with multiple versions of the SimConnect Side-by-side (SxS) and Global Assembly Cache (GAC) assemblies. We're also setting a precedent for how we'll continue to provide legacy interface information in the SDK.

Facilities API
This was a top-level request from the community for programmatic access to our internal data set for things like airports, navigational aids and waypoints. Full support through both the native and managed interfaces, including new samples and documentation.

Modeless Dialog API
Ability to utilize an ATC-like XUI menu to allow modeless interaction with a SimConnect client. This was the last remaining feature of SimConnect required to meet the needs of FSUIPC interaction without binary offset manipulation. Supports both native and managed interfaces, and includes ability to manipulate a subset of the text format. Documentation and samples are also provided.

Multiplayer Support
FSX RTM was shipped with a bug that prevented SimConnect clients from properly receiving object IDs. This has been fixed, and the ability for SimConnect add-ons to work during MP sessions should be fully supported.

Weather
A significant amount of work has gone into cleaning up the weather interface and making sure the right variables are being read and written. There are a few limitations in our own internal weather system that prevents things like setting the wind variance for multiple layers and directly setting the cloud layer height, but in general the API now works much better given these limitations. Specifically, we allow the setting of cloud layers and wind varience.

Support for Tagged and Delta Changes on custom Client Data structures
This allows the same functionality and performance tuning for custom-defined data blocks as is available in the native SimConnect data structures.

SimObject Category
Changed from returning an integer to returning a string. This now works and is documented properly.

Managed Data Arrays
Marshalling of arrays in the managed interface was not working properly; now they are.

VB.NET
Added samples for VB.NET that show how to use the SimConnect interface with this language.

Bug Fixes
Engine fire, smoke system, tug events and hydraulic system interface bugs were fixed.

Exceptions
Added new, more descriptive Exceptions to help add-on programmers debug their code.

Versioning
Updated version format returned when opening a SimConnect connection to help clients better differentiate between versions of the SimConnect server.

Graphics

Custom Event Support
Ability to identify and export custom event IDs in a Virtual Cockpit model, and then the ability to reference those IDs via the panel system or SimConnect add-on to drive custom functionality.

Virtual Cockpit Lighting
Re-enable the ability to define gauge lighting as a single texture mapped 1:1 with the gauge texture map as was available in FS9.

Emissive Textures
The default emissive "Additive" mode was shipped with a bug where these textures would not display during the day. The documentation was also incorrect, in that it indicated this was the mode that should be used to generate nighttime textures. In order to maintain backwards compatibility with FSX RTM, we elected to keep the behavior of "Additive" (now called "AdditiveNightOnly"), and add new modes for "Multiply."

Animation Limits
FSX and the associated 3DStudioMax and GMax exporters defaulted to a 255 bone animation limit. This has been increased into the thousands, so should no longer prevent many-boned objects from behaving properly in the run-time code.

Round Earth Corrections
Made significant progress to try to better map large, legacy add-on scenery to correct for the new round Earth modeling in FSX. NOTE:  There will still be some problems seen with this, but we've done our best to minimize the visual artifacts.

Autogen Lighting
We had a bug in the way roof textures were lit during the night in certain areas. They should now not "glow" like in FSX RTM.

Landing Lights
Back-compatability for FS9-style landing lights is fixed, along with better night lighting support for AI aircraft.

Terrain and Scenery

Resampler
Tool updated to better handle malformed data and prevent crashing, and to properly handle dithering with alpha and water masking.

Alpha-blend Threshold
Fixed problem related to black "lines" around legacy autogen scenery edges.

Exclusions
Fixed multiple problems with exclusion logic, including multiple rects in the same BGL, marinas and missing boats, overlapping BGL files, freeway traffic and Autogen.

Autogen Polyline Buildings
Using photo scenery resulted in very thin-walled building to be created from Autogen tools. This should now be fixed.

Autogen Objects
Ability to use MDL objects as autogen.

Add-on Scenery
Changes in the add-on scenery library in-game would not stick across multiple runs of FSX.

Runways
Support for FS8-style "invisible" runways.

Modeling

Exporters
New 3DSMax and GMax Exporters:

  • Expanded bone limit (see above)
  • Support for custom event IDs (see below)
  • Fixed XtoMDL script bugs that were preventing proper creation of lighting in models.
  • Prevent output of duplicate animation part names and GUIDs. Use of duplicates would result in crashing FSX run-time, which has also been fixed.
  • Reduction in model size by 24-40% to improve runtime performance.

Scripts
AttachPoints.ms script bug was preventing updating FS9 models to FSX format.

Samples
Additional documentation and sample source textures for creating custom liveries (textures) for the Boeing 737 and 747 aircraft as shipped in FSX.

SimObjects

Texture.cfg
Re-enabled support for aliasing SimObject textures.

Gauges

Infix2Postfix
New tool to assist in the RPN style of XML gauge programming.

GaugeEditor
Multiple improvements to the Gauge Editor:

  • Export as binary (SBP) format
  • Preview mode comes up by default when you load a gauge
  • Run-time validation of gauges

PSD2XML
New tool and documentation on its use for creating gauge artwork.

Custom Events
Support for custom event IDs to be consumed by Code Gauges.

Ace Editor
"View XML" menu option does not work.

Missions

Units
Modified the units used to specify G-force to use the units of "G."

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

     
  NOTE!

A complete uninstall of the previous SDK will take place with this update. Please make sure to backup any files stored in your existing SDK install directory before proceeding with this update.