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:
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
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.
We've provided some new source samples to help explain use of different SDK components:
- Updated .exe's
- Menu sample
- Facilities sample
- Aircraft texture livery source samples
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.
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.
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.
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.
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.
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.
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.
Added samples for VB.NET that show how to use the SimConnect interface with this language.
Engine fire, smoke system, tug events and hydraulic system interface bugs were fixed.
Added new, more descriptive Exceptions to help add-on programmers debug their code.
Updated version format returned when opening a SimConnect connection to help clients better differentiate between versions of the SimConnect server.
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.
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."
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.
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.
Back-compatability for FS9-style landing lights is fixed, along with better night lighting support for AI aircraft.
Terrain and Scenery
Tool updated to better handle malformed data and prevent crashing, and to properly handle dithering with alpha and water masking.
Fixed problem related to black "lines" around legacy autogen scenery edges.
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.
Ability to use MDL objects as autogen.
Changes in the add-on scenery library in-game would not stick across multiple runs of FSX.
Support for FS8-style "invisible" runways.
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.
AttachPoints.ms script bug was preventing updating FS9 models to FSX format.
Additional documentation and sample source textures for creating custom liveries (textures) for the Boeing 737 and 747 aircraft as shipped in FSX.
Re-enabled support for aliasing SimObject textures.
New tool to assist in the RPN style of XML gauge programming.
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
New tool and documentation on its use for creating gauge artwork.
Support for custom event IDs to be consumed by Code Gauges.
"View XML" menu option does not work.
Modified the units used to specify G-force to use the units of "G."