FSUIPC History
FSUIPC History
1 Fixes a possible FS freeze when changing aircraft if an [Auto] section invokes a Lua plug-in. This problem was introduced
by an omission in change #2 in version 3.999z5.
1 Includes a correction to the cowl flap axis mapping for 3 and 4 engined aircraft.
Bug Fixes
1 An error in the ipc.exit function, which could in some circumstances cause subsequent Lua executions to hang
FS, has been fixed. This applies also to FSUIPC and WideClient.
2 The FSUIPC options assignment and calibration tabs could be fooled into making a Profile assignment to a
Profile with no name, if the INI file had somehow been corrupted and ended up with a [Profile.] section and
accompanying [Axes.] etc sections. To avoid the latter corruption in future, such bad sections are deleted
automatically when FS is started.
3 An error which can cause spurious generation of phantom Profile assignments, and unwanted additional sections
in the INI file such as [Buttons.] and [Keys.], has been found and fixed.
4 Errors in the Calibration "sync pos" facility could result is poor alignment despite the positions synchronised,
and when using the "No reverse zone" option could produce entirely the wrong range.
Note that, as part of the fix, the reverse range part of the axis, if any, is not subject to synchronised positioning,
and any positions defined there are discarded.
Users already with Sync Pos usage may wish to re-do this with this version for better accuracy.
5 Fixed an error which could cause FS to hang when any [Axes ] assignments section in the INI file includes a
scaling entry in an incorrect format.
6 Avoided changing the main Windows DLL search path so that RealityXP addons do not fail to find a needed
DLL. The Lua DLLs can still be found when needed because the Modules\DLL path is now added to the
'PATH' environment variable.
7 Fixed a problem with the LVar macro format "L:<name>=DEC,0", to decrement the named L:Var value down
to 0. The "0" was taken as omission and so did not limit the decrementing process.
8 Fixed an error in the Lua event.key function. This caused it to fail to act upon any subsequent shifted keys
(Ctrl, Shift, or Alt plus a keypress) after the first such event. It was recording the key down but not the key up,
so did not see any more key downs.
9 Fixed an error which could cause some Lua plug-ins to crash FS when being repeatedly killed and restarted (as
in the case of assignment to a rotary encoder).
10 The Lua sound.playloop function now works, correctly looping, even when the option is set for not playing
when FS doesn't have the focus (i.e with a negative volume value).
11 A newly introduced bug causing L:VAR SET macros to fail when called with parameter = 0 is fixed.
12 The Lua function ipc.setdisplay now succeeds in not only setting the size and position of an existing Lua
Display window, but also of presetting those parameters for one about to be created.
13 A problem with accessing the KEY file of registered users when FS is being run in Windows 7 or Windows
Vista without being set to run in XP Compatibility mode is fixed.
Note that in Windows 7 or Vista modes the FSUIPC INI, KEY and LOG files are placed in and used from the
Flight Simulator Files folder in your "Documents" folder. This is to avoid write permission problems. It is best,
though, to run FS in XP compatibility Mode, for many other reasons too.
14 Any Lua control type other than the basic Lua <name> control (to load and execute the named lua plug-in)
assigned to Axis ranges on the right-hand side of the Axis assignments tab reverted to that basic Lua function,
because in error they were saved incorrectly. This long-standing error is now fixed.
15 The use of LuaValue controls to set the ipcPARAM value for a currently running Lua plug-in was actually
changing that parameter on the plug-in's stack immediately. This could very occasionally cause a crash,
depending where in the Lua interpreter the plug-in was currently engaged.
To remove this cause of crashes, FSUIPC now only changes the parameter when either an ipc.sleep function is
being executed, or any event function is actioned to call its target function.
Note that the ipcPARAM variable should never be used by the plug-in for its own values as it is liable to be
changed in both of the above circumstances even without the use of the LuaValue control.
16 FSUIPC3 had a built-in expiry date of 31st December 2012, so registrations later that that looked wrong. Seems
that I never expected it to be still being purchased after all of 8 years! Fixed in version 3.999y5.
Version 3.999 (February 2012)
Additional Facilities
1 The Lua serial port library, com, has been expanded to include special support for joystick HID devices.The
data being read using the usual com.read (or a new com.readlast) function can be analysed to extract joystick
axis or other analogue values and button or switch states. The capabilities offered far exceed those of the
standard joystick interface supported in FSUIPC. Up to 16 axes of each of 12 different types, and up to 256
buttons or switches, can be read. The revised Lua package should be downloaded for full information, included
an example plug-in (HidDemo.lua).
2. The Lua File System library (lfs), by the "Kepler Project" is now built into FSUIPC. Reference information is
provided within the latest Lua plug-ins package.
3. A new Lua event is available: event.terminate, to do up to 5 mSecs of processing before FSUIPC forcibly
terminates the Lua thread.
4. Full support for the GoFlight GF-WP-6 modules is included. The Lua gfd library is extended with new
indicator colour setting facilities.
5. The Profile facilities in FSUIPC are extended by allowing a new Profile to be created based on an existing one.
When the Profile drop-down is selected for an as-yet unassigned aircraft, the option "New, based on ..." leads to
another selection where the Profile to be copied can be selected, before the new name is chosen.
6. A new Lua function is provided to test button flag states:
ipc.testbuttonflag( joynum, btn )
This operates exactly like the testbutton function but tests the button flag state instead the button itself. Note
that there are no flags associated with the POV setting, so the button number is in the range 0 - 31 only.
7. In order to encourage new or developing FSUIPC users to switch to Profiles for assignments, instead of the
older aircraft-specific arrangement, the INI settings for UseProfiles and ShortAircraftNameOk are
automatically changed to Yes and Substring respectively if upon loading FSUIPC detects no existing use of the
aircraft specific facilities.
8 GoFlight devices are now re-scanned for new connections whenever the "reload" button is pressed in the
FSUIPC Buttons & Switches options. Note that there is a small possibility that this could crash any running Lua
plug-in which is currently accessing GF devices through the Lua gfd library, but this risk has been kept as small
as possible.
9. The new VRInsight Boeing and Airbus style MCP combi modules are now recognised and supported, like the
original MCP-combi. The names are MCP2B and MCP2A, respectively.
10 A new function is provided in the Lua ipc library, to read assigned joystick axis values, as read from the device
(not after calibration). This function is:
val = ipc.axis(joy#, axis)
where joy# is the Joystick number (or "letter" when joystick letters are in use), and axis is one of "X", "Y", "Z",
"R", "U", "V",. These values are as shown in the axis assignment option screen.
11. The GoFlight “DIO” (Digital Input-Output) device is now supported, both in the recognition of its buttons and
switches (up to 56) for assignment, and in the handling in the Lua gfd library, where it’s 32 outputs can also be
switched.
12. A new Lua library called ext is added (also in WideClient 6.899h) which loads, handles and closes external
programs and, to some extent, program windows such any those undocked from FS. The latest Lua plug-ins
package includes full documentation. THe 'ext' library was then extended with shell, keys and message posting
functions. This also applies to WideClient 6.899j and later.
13. Additional offsets are now provided to allow applications to get weather data relevant to the user aircraft's
current altitude. These are basically an extension to the provisions for populating the old FS98 weather values
and are the same as those added to FSUIPC4 some time ago..
The new values provided are:
0E84 1 byte Cloud type, 1–10, if the aircraft is in a cloud layer. Otherwise 0
0E85 1 byte Cloud coverage, 0–8 "Oktas" or eighths of the sky.
0E86 2 bytes Cloud icing level 0–4
0E88 2 bytes Cloud turbulence level, 0–255 (as for older offsets 0EFC etc).
0E94 2 bytes Wind gusting value (max speed in knots, or 0 if no gusts)
0E96 2 bytes Wind directional variation—degrees in the same units as wind directions
0E98 2 bytes Wind turbulence value, 0–255, just like offset 0ED2, etc.
Bugs Fixed
1. Some of the user registration checks have been modified in order to get around some recent security changes in
Windows.
2. An extraordinarily long delay between sending the KEYDOWNs and KEYUPs for a button press programmed
to send keypresses has been eliminated. That delay could previously range from 100 mSecs to over 8 seconds!!
This fix ensures it is always within about 150-200 mSecs, and generally nearer 80.
3. The joystick polling for the Axis and Button recognition in the assignment tabs is now restricted to those
devices which have correct DirectInput entries in the registry. This is the case even though DirectInput isn't
actually used in FSUIPC3 (only FSUIPC4). This follows a problem report where FSUIPC was causing FS
hangs on a system where some old forgotten driver was apparently trying to respond when interrogated by the
previous FSUIPC3 global scanning technique.
4. The Lua facilities for loading and running external modules have been improved and should now allow C DLL
modules as well as Lua modules to run okay, if they are designed to run on the standard Lua interpreter. These
fixes do need more extensive testing, but it seems the main cause of problems, the alignment of members of
structures, was the culprit: All FS structures are single-byte aligned (i.e. no alignment), so FSUIPC had to be so
arranged to interface to it correctly, whereas the default C alignment to by member size, up to 64-bit or 8 bytes
max. FSUIPC now arranges for the Lua structures to be so aligned so that they match the assumption in the
external modules.
5. Fixed offsets 332E–3336, and 3412, 3416, 3418 to provide the axis values is the correct range, calibrated if so
subjected. For clarification, for throttles the correct range is 0-16k for forward thrust, with negative values
providing reverse. These values are then suitable for application directly to the FS control offsets, as
documented.
These offsets have been wrong for a long time, often providing the incorrect range (-16k to +16k). Therefore, in
case this bug fix messes up any programs which have assumed the offsets were behaving correctly, and made
their own "fix" already, a parameter in the [General] section of the FSUIPC.INI file is available to force these
back to their old (wrong) behaviour: just set "AxesWrongRange=Yes.
6. The Lua com library function gethidvalues now gives proper values for some non-standard implementations,
such as the dials on GoFlight devices.
7. The "slopes" option in FSUIPC's joystick calibration facilities now also apply correctly to brakes. Previously
the slopes could be assigned but were ignored.
8. An odd error in the Joystick Calibration pages is corrected which could make the NRZ (No Reverse Zone)
option selection in the pages which feature this affect other pages in this tab. This would have been noticeable
only when setting (or resetting and setting) one of those others immediately after selecting the NRZ option
elsewhere. The centre selection would disappear. If the dialogue was closed and reopened in-between these
actions no problems would have been observed.
9. The use of [ and ] characters in Profile names has always been disallowed (they are replaced by ( and )
respectively), but if the 'new profile' entry contained only [ and ] characters an invalid null profile section would
have been produced. This is now fixed.
10. Section names in the FSUIPC.INI file which are incomplete -- not featuring [ ... ], or invalid for Windows --
having multiple or missing [ or ] characters -- are now automatically fixed, normally be deleting the offending
line altogether.
11. When a Lua plug-in thread is forcibly terminated, the correct tidy-up procedures actions in the interpreter are
now correctly executed.
12. Problems caused by macro files of greater than 32 kb are fixed.
13. FSUIPC now no longer makes auto-assignments for PFCHID quadrant axes if the main PFC driver (PFC.DLL)
is also loaded.
14. Two problems are fixed which caused incorrect output values to be provided for non-linear slopes in the
negative parts of the axis range.
15. The mouse macro making facility has been made more crash-proof in circumstances where a delay in updating
files on disk allows the macro naming window to remain on screen after closing the making session.
16. An error in the filtering option (in the joystick calibrations options) could have resulted in occasional spurious
incorrect values creeping through any filtered axis assigned in FSUIPC as "direct to FSUIPC calibration". This
is corrected.
17. Fixed a problem with Lua plug-in names beginning with 'Set', "Clear', 'Toggle', 'Kill', 'Debug' or 'Value' where,
for example, the macro "Lua SetADF" would have been incorrectly treated as "LuaSet ADF" and therefore not
actually run the one called "SetADF" but set a flag for a running one called "ADF" instead.
A space between the Lua and Set (or whatever) is still accepted if present, however, as in, for example "Lua Set
ADF" to set a flag for a plug-in actually named "ADF".
18. Fixed the new "wind turbulence at aircraft" offset to give the correct maximum 255, not 256.
Other improvements
1. Axis values written to the erstwhile "PFC axis" offsets, 3BA8 - 3BC4, are now automatically ranged if RAW
mode is not selected and the axis has not yet been assigned. This makes those offsets much more suitable to use
by additional hardware which is not recognised by Windows as a joystick type, or (especially) to using any sort
of joystick axes from a WideClient application or Lua plug-in.
2. DLLs which are used by Lua plug-ins can be placed in a sub-folder in the Modules folder called DLL.
Previously they had to be placed in the main FS folder, or in windows or Windows System folders.
3. The FSUIPC logging options can now be read and set via offset 3400 (16-bit word).
4. Combat Flight Simulators 1 and 2 are now supported more fully, with joystick calibration possible if "direct to
FSUIPC" assignment is used.
5. The process of killing and restarting Lua plug-in threads has been a little more foolproof, avoiding some other
possible reasons for subsequent deadlocks at the cost of a little extra delay executing the reload.
6. Reading local gauge variables L:Vars) in Lua plug-ins has been made a lot more efficient by calling the
appropriate FS functions directly in the Lua thread, rather than queuing the requests in the FS main thread.
Originally the latter method was chosen on the assumption that the said functions were not programmed for re-
entrant use, but recent testing seems to show that they are amenable to this treatment.
7. The GoFlight display facilities in the Lua gfd library has been changed to use standard string functions to write
any digital displays, rather than the LED/LCD segment-setting functions. This is to get over a problem where
the older firmware in some (and particularly the MCP, not the Pro) displays '0' for the correct segments for a '9'
using the lower horizontal segment. (Apparently a simpler 9 using only 5 segments would have worked). This
change has been tested on several display devices, but not all.
This sets the amount of braking needed to release the parking brake. The number is a percentage of total braking
-- so the default here is 75%. If you set 0% it turns the facility off. Pressure on both brakes to at least the set
level is required, and the release action is not "re-armed" until both brakes have returned to "off". The toe brakes
must both be calibrated in FSUIPC.
• Facilities have been added to automatically execute a list of Lua plugins or FSUIPC Macros when an aircraft is
loaded (i.e. changed). This allows switches, offsets, and other things to be set specifically for an aircraft when it
is first loaded. It is done by adding new sections to the INI file with the title [Auto] or [Auto.xxxx...]. Full
documentation on this will be found in the Advanced User's guide.
• Added an extra facility for joystick calibration, in order to try to cope with some different add-on practices
(notably, in this case, the Wilco A320). Normally, the 4-Throttles, 4-mixtures and 4-Prop pitch calibrations
result in an output with either a range which includes the reverse zone, or, if the "no reverse zone" option is
checked, a range from 0 (idle) to 16383 (max). These are sent to FS using the older "????n_SET" controls
(THROTTLE1_SET, etc), since these are the ones providing the reverse zone below zero.
If you set the [JoystickCalibration] INI file parameter UseAxisControlsForNRZ to "Yes", then the NRZ (no
reverse zone) option for all three axis types will use the AXIS_????n_SET controls (e.g.
AXIS_THROTTLE1_SET) instead, with a range of -16363 (idle) to +16383 (Max). This, of ocurse, can be
Aircraft or Profile-specific by editing it in the appropriate calibration section of the INI file.
• Added full support for network and internet access via Lua plugins, using the LuaSocket package available from
the Internet, with the main modules pre-loaded (i.e. built into FSUIPC). Examples and details are provided in the
Lua Plug-ins package.
• Added a Lua library for reading Go-Flight switches and knobs directly, and writing to their displays and
indicators. Full details are included in the Lua PlugIns package.
• Added a new Lua event library function "intercept", which is similar to the offset one except it intercepts writes
to a specified offset by FSUIPC or WideFS client applications, providing the intended value to the Lua plug-in
instead. The plug-in can then either manipulate the value and write it to its original destination, or divert it to
some other place or use, or simply discard it so no action results. Full details will be found in the Lua library
documentation.
• Added another new Lua facility, "ipc.keypressplus" which is able to switch focus to and from FS and deliver
keystrokes to FS's menu dialogues. Documentation and two example plug-ins are provided in the Lua package.
• The way Lua plug-ins are started and terminated has been changed a little, to avoid problems with repeating
controls (buttons and keypresses set to repeat whilst held). Whereas previously each repeated call to execute a
plug-in would actively try to "kill" the previous incarnation then load and run a new one, the current repeat of
the control is now discarded if the plug-in is still running. A repeated control only manages to load and run the
plug-in if the previous incarnation has by then terminated.
This effectively makes such plug-ins run at their own speed, and not even attempt to repeat at the set repeat
speed. Short fast Lua programs will repeat quickly, while longer more complex ones will repeat only slowly --
and non-terminating ones cannot be killed or restarted by a repeated control, only by a fresh one or an explicit
"Kill" control.
This makes assignment of Lua plug-ins to repeating buttons or keypresses more reliable. it was quite easy to
crash FS before, due to a continuous build-up of pending thread terminations and creations.
Note that, if a Lua plug-in is really intended to be used repetitively, it may be much more efficient to actually
program it with a loop in the Lua code and have it checking the state of the relevant button or key itself.
• Minor adjustments to the way the clock (seconds) sync option works makes it operate more promptly when the
FS seconds are seen to drift off the systems seconds value.
• Panel L:Var access (reading and writing) facilities, like those in FSUIPC4, are now available in FSUIPC3. These
include the logging (via the new List control), and the L:Var macro facilities, with Lua plug-in support as
demonstrated by the Log Lvars plug-in.
• Registration with 2010 purchased keys works in this update (in fact since version 3.957).
• Fixed a bug in the automatic button flag toggling which affected button flags for joysticks 0-15.
• The FSUIPC options dialogue and other windows have been enlarged by 20% in order to cope with some of the
variations now seen in the Windows "Shell" fonts. (FSUIPC was switched over to using Shell fonts rather than
its own selected fonts because of an occasional clash which made the inside tabbed dialogues too large for the
holding tabbing window).
• Some minor timing changes have been made to the wind smoothing option which might improve its chances or
removing more of the nasty wind shifts which FSX is prone to.
• The Registration mechanism now allows for a different email address for WideFS and FSUIPC.
• An extra check has been incorporated into the Button scanning routines (used when in the FSUIPC options to
assign buttons and switches). If any joystick device takes more than 15 mSecs to respond, FSUIPC stops polling
it on the assumption that it is either faulty, or has a bad driver. The ban on that device stays operative for the rest
of the FS session.
This is intended to prevent the odd hangs some folks get in the Buttons options which are thought to be due to
rogue joystick drivers without connected joysticks. The timeout used (15 mSecs by default) can be changed via
the parameter in the FSUIPC4.INI file called "JoystickTimeout". This has a minimum of 5 and a maximum of
5000 milliseconds.
• The "mouse macro" creation facilities have been extended to enable multiple-entry gauge routines to be detected
and the correct entry selected. When creating macros, if a mouse click brings up the usual Window for the
macro name entry and this contains the annotation (for example) "(1 of 4)", this means that the mouse click may
use one of 4 different ways into the same routine, and FSUIPC is unable to tell which is correct.
When this occurs, use TAB to test as usual. If it works the correct switch in the correct way, okay, name it as
you require. If not, click that same switch again—it will change to "2 of 4" (say). Then re-test using TAB. And
so on. Only when the correct action occurs when pressing TAB do you want to name the macro and move on.
The main example of this found so far is on the throttle quadrant in the PMDG 747 (both FS9 and FSX
versions). The four fuel cutoff/idle switches are 1, 2, 3 and 4 (of 4), with otherwise the same details. With this
new facility programming these switches becomes easy to deal with!
• Fixed a bug which caused attempts to run a Lua plug-in from a Macro failed, usually with an error logged saying
that the file ".lua" could not be found. The construction "CLn:R,<param>" where 'n' is a valid LuaFiles
reference number, and <param> is an optional parameter value, now runs the specified Lua file even when used
in a macro.
• The G-force value provided at offset 11BA is now also updated at offset 11B8 except when the user aircraft is
on the ground. This can be used to read the touchdown G-force after landing.
• A bug is fixed which caused Macro files numbered greater than 16 (in the [MacroFiles] section of the INI file) to
fail -- an earlier numbered file is loaded instead!
• An overall limit on the size of the INI file, of 128000 bytes, is removed. Until version 3.912 the file would be
truncated, possibly resulting in loss of settings.
• Fixed an FS crash which would occur if a Lua plug-in was loaded containing an Event library call specifying a
Procedure Name in anything but a string form ("name"). This error is now reported correctly in the Log.
• Offset conditions in the [Keys] and [Buttons] sections of the INI file had their masks corrupted each time the INI
file section was reloaded.
• The axis delay facility (obtained by following the Delta value by /n) resulted in a truncated and inoperative
parameter line in the INI file.
• The Axis assignment facilities have been augmented with the ability to send axis values direct to FSUIPC
offsets, by assignment to one of five Offset controls -- Byte (8-bit), Word (16-bit), Dword (32-bit) Float32 (32-
bit floating point) or Float64 ("double" floating point, 64-bit). Up to two offsets can be selected, with different
Offset controls. Note that with the Byte assignment, any value exceeding the 8 bit capacity will be simply
truncated, only the lower 8 bits surviving.
Care must be taken using this facility not to overwrite critical offsets. Normally the offsets chosen will be one of
the user-assigned batch (66C0 - 66FF) or some specifically assigned to an FSUIPC application program.
• Four additional FSUIPC controls have been added for "It's Your Plane" (IYP), to toggle the mike monitoring on
and off.
1115 IYP Listen On
1116 IYP Listen Off
1117 IYP ComeFly Active
1118 IYP ComeFly Inactive
These work with the latest version of IYP. For WideFS use you also need the latest WideClient (6.786 or later).
• Fixed a bug which could cause FS98, FS2000 or FS2002 to crash when FSUIPC options are selected.
• Fixed an error in the automatic axis assignment for the PFChid add-on driver module.
These should be self-explanatory. For the “Set” ones, put the value to be set as the parameter—only whole
numbers, but okay for testing (degrees, knots, or 100 x mach). For the “on” and “toggle” controls the current
pitch, bank, speed or mach becomes the target to maintain.
Note that these are not perfect. In particular the Mach control facilities are inclined to hunt too much and really
need tuning for each aircraft (which can be done by programmers, via information in the FSUIPC SDK). The
bank and pitch hold facilities work quite well, however.
One consequence of the changes to make these controls generally available is that they programmers version of
the facilities no longer “time out”—previously the program operating the facilities would need to refresh the
enabling values every few seconds, otherwise they would relinquish back to user control. This no longer
happens, so programmers supplying such autopiloting programs to users should advise them how to cancel the
modes explicitly (e.g. via one or more of the “off” controls listed above) in the event of their program
terminating prematurely.
• The “RemoveATC=Yes” facility now works in the German version of FS2004. It seems that the place where
FSUIPC was obtaining the ATC window name, in Language.DLL, was only used for the Options menu, and in
the German version of FS Microsoft appear to be abbreviating “Flugsicherung” to "FS" in that menu. It seems
the ATC messages are included in the ATC.DLL, including the Window name (and despite the version numbers
matching), so FSUIPC now gets the Window name from there.
Version 3.22 (May 2004) is a consolidation and fixes release, with a few technical additions that may be useful to
engineers. Here’s the list:
• Problems getting the Project Magenta controls “by parameter” working correctly are resolved. Additional
logging for button actions is also incorporated to assist in any future additions in this area.
• Now that Project Magenta components process controls themselves where applicable, without the need always
for the MCP to be running, the list of PM controls is not restricted when there’s no MCP running.
• A problem in button processing could sometimes cause FS to crash. This was due to certain things being done in
another thread, and was very timing dependent. The most affected controls were the traffic density ones added
by FSUIPC. The work-around was to add the line “PollInterval=66” to the main [Buttons] section of
FSUIPC.INI to prevent FSUIPC using the thread. This is no longer needed and should be removed for most
effective button control.
• A bug in the Cloud options page for FS2004 caused the checkbox for random cloud icing to appear unchecked
even when the option was enabled. This is fixed.
• The manual registration of Gauges and DLL modules did not work when the filename contained multiple points
(full stops, i.e. ‘.’). The entry in the options page would be truncated to the first such character. This is fixed.
• A general tidy-up of the logging of registration problems with gauges and modules has been included in this
version. It should be a lot clearer to see exactly what is wrong when using an unregistered copy of FSUIPC.
• On FS2004, FSUIPC now detects changes made, through the IPC interface, to the Zulu hour at offset 023B, and
submits the appropriate broadcast through the FS chain system so that all parts of FS are aware of this.
Previously such a change could get FS into an odd state which would reduce the frame rate considerably
thereafter.
• Additional offsets are supported for a variety of technical things, as follows (all applicable at least to FS2004,
some will also be correct in FS2002. Full details will appear in an SDK update):
08F4 4 Torque percent value is now correctly mapped for helos in FS2004
08F8 4 Fuel pressure is now correctly mapped for helos in FS2004
08FC 2? Electrical load on helos (FS2004). Possibly.
28C0 8 Ambient density (double)
28C8 8 Ambient pressure lbs/sqft (double)
28D0 8 Static air temperature F (double)
28D8 8 Static air temperature R (double)
28E0 8 Standard temperature ratio (double)
28E8 8 Standard pressure ratio (double)
28F0 8 Standard density ratio (double)
337C 1 Prop anti-ice switch (BYTE boolean)*
337D 1 Structural anti-ice switch (BYTE boolean)*
3470 8 Ambient wind X (double)
3478 8 Ambient wind Y (double)
3480 8 Ambient wind Z (double)
3488 8 Ambient wind velocity (double)
3490 8 Ambient wind direction (double)
3498 8 Ambient pressure (double)
34A0 8 Sea level pressure: QNH (double)
34A8 8 Ambient temperature (double)
3590 4 Engine 1 fuel valve (BOOL)
3594 4 Engine 2 fuel valve (BOOL)
3598 4 Engine 3 fuel valve (BOOL)
359C 4 Engine 4 fuel valve (BOOL)
35A0 8 Airspeed mach (double)
* The two anti-ice switches operate the FS controls for these, and reflect the values of them as read
from the gauge token variables. However, they do not appear to operate correctly in any default
aircraft. Possibly they are not fully implemented in FS yet.
Version 3.212 (April 2004) was released a few days after 3.21 to correct a problem with the joystick calibration
facilities, where maximum and centre calibrations could get mixed up between axes and each other in some
circumstances. Additional improvements were made to the timings of joystick button scans, to make them rather
more consistently responsive.
Other, minor, changes are:
• The byte at offset 3366 reflects the FS2004 “Engine on Fire” flags. I’m not sure if FS actually simulates such
events, but it appears to have allocated Gauge-accessible variables to indicate them. This byte uses bits 2^0–2^3
as flags for fires in Engines 1 to 4, respectively.
• The byte at offset 3367 shows doors that are open (FS2004 only). At present this only provides bit 2^0 for the
main doors. If I ever find other flags I’ll add them too.
Version 3.21 (April 2004) includes a mixture of fixes and small additions and improvements. Not a major release,
but important nonetheless:
• Fixed a problem with GoFlight rotary dual-speed operation if the GoFlight configuration includes a GF-TQ6
throttle quadrant module.
• Fixed a problem with aircraft-specific Buttons and Keys programming, where a change of aircraft was not being
recognised in FS2002 at all, or in FS2004 if there was no change of AIR file.
• Fixed a long-standing error where pulsed (“P”) and held (“H”) keystrokes, programmed in Buttons, were mixed
up and sometimes operating incorrectly.
• The programming of some Project Magenta controls (especially the GC controls defined by parameter) is made
more reliable by different timeouts and more ruthless error correction, catering for PM components which may
not always clear the indications as per protocol.
• Added joystick facilities for analogue cowl flap adjustment. This is via a new Joysticks page, allowing up to four
separate control axes to be calibrated, and one or two axes mapped to control 2–4 flaps. Since FS doesn’t supply
axis controls for the cowl flaps, the user needs to assign otherwise unused FS axis controls and tell FSUIPC
which these are by editing parameters in the INI file.
• The aircraft-specific Keys and Buttons programming can now be applied to groups of aircraft (for instance,
multiple paints of the same model). This is done by allowing an aircraft name to match a shorter version of the
name. This involves editing the FSUIPC.INI file to shorten the name in the section titles created there, and, to
prevent confusion for existing users, the whole option is disabled until a parameter in the [General] section
(“ShortAircraftNameOk”) is changed to “Yes”. Further, the name of the active aircraft section is displayed in
the options title bar when the Keys or Buttons pages are open with the aircraft-specific option selected.
• Additional FSUIPC controls are added for programming in the Keys and Buttons pages, for default FS autopilot
values. These are:
Ap Alt Var Dec Fast (–1000)
Ap Alt Var Inc Fast (+1000)
Ap Mach Var Dec Fast (–.10)
Ap Mach Var Inc Fast (+.10)
Ap Spd Var Dec Fast (–10)
Ap Spd Var Inc Fast (+10)
Ap Vs Var Dec Fast (–1000)
Ap Vs Var Inc Fast (+1000)
Heading Bug Dec Fast (–10)
Heading Bug Inc Fast (+10)
Vor1 Obi Dec Fast (–10)
Vor1 Obi Inc Fast (+10)
Vor2 Obi Dec Fast (–10)
Vor2 Obi Inc Fast (+10)
• Additional Project Magenta controls are provided, each taking a parameter which is forwared to PM:
PM Whazzup keys (by Param), see Pm offsets list, 542E
PM Quickmap keys (by Param), see Pm offsets list, 542C
PM GC keys (by Param), see Pm offsets list, 542A
PM CDU keys (by Param), see Pm offsets list, 5428
PM MCP Kcodes (by Param), see Pm offsets list, 04F2
• The PM MCP Flight Director controls are now changed (in PM) to operate the left FD (i.e. the Captain’s). This
is denoted by naming the FD “FD1” in the controls list. Two new controls, for FD2 on and FD2 off control the
First Officer’s FD.
• A small change is made to the way FSUIPC sets gustless wind layers on behalf of external programs. Before it
set the gust value equal to the wind speed, as appeared normal FS practice. In this version the gust speed is set to
zero instead. Whether this actually helps at all is uncertain, but it certainly doesn’t appear to do any harm and
matches FS’s own downloads better.
• Flags are provided via IPC to indicate whether FSUIPC is handling toe brake operation or not (i.e. whether the
user has “Set” toe brake operation in the Joystick options). This is via two one byte values at offsets 336E (left)
and 336F (right). These will be non-zero if the relevant toe brake axis is “set”, zero if “reset”.
• A counter of FSUIPC-detected frame rate calls is maintained as a 16-bit value (wrapping at 65535 back to 0) at
offset 336C (2 bytes). This might be used, for instance, to try to synchronise an external program more precisely
to FS’s actual operating speed. [Note that this is not guaranteed to be accurately synchronised with every FS
frame on every version of FS, but it seems pretty good with FS2004].
Version 3.202 (March 2004) is another minor release with only two changes:
• A bug in the Button programming for PFC devices is fixed. PFC buttons programmed without being “aircraft
specific” failed to override the pre-programmed action for the same buttons in the PFC driver.
• A flag is provided in the byte at offset 3365 which indicates when FS is effectively frozen because of menu
access or modal dialogue action. Full details can be provided to those who need to use this before the next SDK
update.
Version 3.201 (February 2004) fixes a problem with the Keys page in the options—it was previously possible to
hang FS by deleting the last Key assignment left in a section (global or aircraft specific). It also makes it impossible
to program an action for releasing a key without first selecting an action for pressing it.
Finally, the FSUIPC proportional toe brakes are now proportionally effective on pressure release, as well as
application. It seems that, ever since the braking facilities were added several years ago, FSUIPC has always held the
highest pressure attained during application until the brakes are fully released, and then it lets them off over a second
or two.
Version 3.20 (February 2004) is a relatively major release, hence the jump in version numbers. These are the
changes:
• Buttons and dials on GoFlight equipment can be programmed in the FSUIPC Buttons page. Rotary dials have
four effective buttons (fast and slow in either direction), toggles and buttons are a single button each. This
facility requires a library module (GFDev.dll, not an FS module!), which is automatically installed by the latest
GoFlight driver package.
• Support is added for programming buttons connected to a separate PC on a Network and supplied by the latest
version of WideFS (6.22 or later). This includes normal Windows joystick buttons, EPIC buttons and GoFlight
buttons (with the GFDev.dll module installed on the Client too).
• Buttons and Keys can now be programmed differently for each aircraft, with default global actions for aircraft
not so selected.
• Up to 2048 button actions are now handled (up from 512), this including the total of the global programmed
buttons and the largest aircraft-specific list.
• Conditional button programming (in the FSUIPC.INI file only) now allows up to 16 conditions per entry, up
from 2 in previous versions.
• New controls in the Keys and Buttons pages can be assigned to control FS2004 AI Traffic labels—turn them on
or off or change the data being displayed.
• Those Project Magenta controls not usable without the PM MCP or FCU program running are now not listed in
the Keys and Buttons drop-downs if the MCP or FCU program is not running at the time.
• Offset 3324 (altimeter reading) is now updated at the FS frame rate. Previously it was only updated twice per
second.
• A more sophisticated method for identifying calling modules has been incorporated, one which is hopefully
foolproof, so there should be no more module or gauge registration problems.
• The BGL user variables 2–5 (offsets 0DD8–0DDE) are now working correctly in FS2004.
• A serious bug in the Keys programming facility in version 3.14 (only) is fixed. This inserted an extra unwanted
comma (,) into the INI file entries for every defined Key, and this in turn wrecked the programming next time
FS was loaded. Worse, the errors compounded themselves if you then edited the Keys again … and so on.
Version 3.14 (January 2004) includes these new facilities:
• A maximum icing value can be applied to clouds set by third party weather programs. This defaults to 3 to
prevent severe icing, even in unregistered FSUIPC installations. This option is only applicable to FS2004 and is
introduced to help deal with the more extreme effects of icing in that FS version.
• There are additional FSUIPC controls in the Keys and Buttons pages, allowing any FSUIPC offset to be written
or changed by key or button press (these controls all begin "Offset ..."). Byte (8 bit), word (16 bit) and double
word (32 bit) values can be written, and specific bits can be set, cleared or toggled.
• A program option is provided for a number of the user options on the Technical page to be inhibited by program
(see offset 32F6).
• Facilities are added for programs to obtain the default path for FS FLT+WX files, and the pathnames for the
traffic BGLs containing the routings for specific AI aircraft. See offset 0FF0 onwards and the new section in the
text preceding the table in the revised Programmers’ Guide (part of the latest FSUIPC SDK concurrently
released).
Version 3.135 (December 2003) was another relatively minor update, to clear a few things up by the end of the
Year. There were the changes:
• In FS2004, the A.I. traffic files being used are logged on first access, along with their file number. This is to help
resolve any traffic conflicts with the increasing traffic add-ons.
• The radio navaid status at offset 3300 now includes a bit to indicate whether NAV2 is an ILS or not.
• The wind transition option control bit (2^3) in offset 04DE/F now operates the wind smoothing option in
FS2004 (where wind transitions aren’t implemented). If enabled this way on an unregistered copy of FSUIPC
the default smoothing rate of 5 knots/degrees per second will be applied to global wind changes.
• An FS2004 facility is added to allow applications to request departure and arrival runway information for a
specific airport, this being derived from in-range AI traffic allocations.
• The graduated visibility and visibility maxima are now applied on FS2000 and FS2002 even if the FS-specified
visibility exceeds the upper altitude visibility by a good margin. Apparently recent FS “real weather” downloads
for FS2002 have included many visibility specifications in the hundreds of miles (many at 150 miles, but some
as high as 500–600 miles!). These values previously made a bit of a mess of the way the FSUIPC visibility
limits and graduation values are applied.
Version 3.129 (December 2003) was released quickly after 3.128 to fix a problem caused by an extra safety
precaution built into that version. It delays connecting to most parts of FS until the latter is fully ready to fly.
However, unfortunately this check was placed incorrectly, and this in turn made FSUIPC return zeroes to some
legitimate requests made by DLLs or Gauges which managed to connect to FSUIPC before FS is fully ready. This
caused problems with complex aircraft and add-ins that initialised when FS is started rather than which are loaded
later.
Version 3.128 (December 2003) is a relatively minor release, with one important correction and a few small
additions, mainly requested by programmers:
• Potential programs with accredited DLL access to an unregistered installation are fixed. The recent re-
compilation with a newer Microsoft compiler introduced some additional optimisations that defeated some of
the identification checks being made. The problem would most likely have been noticed by a spate of illegal
accesses being logged after any aircraft or flight change.
• On FS2004, if FSUIPC sees the spoilers change from any non-parked position to parked, it now automatically
clears the “armed” flag. Apparently this little FS2004 bug can otherwise cause problems.
• Again on FS2004 only, some BGL scenery variables (those addressed in BGLs by 312 to 31A) are relocated
from G3D.DLL to the GLOBALS.DLL, to the offsets in which they resided in at least FS2002 and probably
long before (0DD6 onwards). In case this causes any problems, which seems unlikely, it can be prevented by
changing the INI parameter “MoveBGLvariables” to ‘No’.
• A single byte at offset 330E counts the number of (apparently) new attempts to connect to FSUIPC by an
external application (on the same PC). Once this count reaches 255 it stays there.
• The autofeather arming switch at offset 2E88 now operates correctly on FS2002 and FS2004.
• The erstwhile Roger Wilco “push to talk” controls added by FSUIPC have been re-named just as PTT controls,
as they are now also applicable to recent releases of Advanced Voice Client (AVC).
Version 3.125 (November 2003) was issued a few days after 3.12 to fix a timing issue that affected accredited third
party Gauges which use FSUIPC in unregistered mode.
Version 3.12 (November 2003) adds the following to FSUIPC:
• Four new controls have been added to the FSUIPC Keys and Buttons drop-down lists:
Traffic density set: which sets the AI traffic density to the value provided in the parameter field, from 0 to 100
percent.
Traffic density toggle: which alternately sets zero AI traffic and the percentage set in the parameter field,
except if that is omitted or set zero then 100% is assumed. When first used, if the AI traffic is currently off this
control sets it on with the density specified (or 100%). If the AI traffic is enabled when it is used, it toggles it
off.
Spoiler inc: raises the spoilers (or speed brakes) by one increment – by default 1/32nd of the full extent, or 512
FS units in the range 0–16283. The actual unit can be changed by editing the SpoilerIncrement parameter in the
INI file.
Spoiler dec: similarly lowers the spolers by one increment. See above.
• An option is provided (on the Technical page) to make the Throttle Sync hot key apply also to Propeller Pitch
and Mixture values, when these are applicable (i.e. not for jets or helicopters). This is best used when you have
multiple axis inputs for these, calibrated through FSUIPC. It operates by copying the engine 1 values to the
others.
• The TCAS table data provided for FS2004 AI aircraft is extended by additional tables in the offset range D000–
DFFF. The additional information includes departure and arrival airport ICAO codes, runways assigned, and
traffic file and file entry ID numbers. This only applies to FS2004 AI traffic. Full information will be included in
the next SDK update, but programmers needing this earlier should apply to Pete Dowson.
• TrafficLook version 1.52, supplied with this FSUIPC release, is enhanced in several ways:
Additional columns have been added to show the departure and arrival airport ICAO codes and the assigned
runways (when applicable), on FS2004 only.
All columns are sizeable, and moveable, and the list can be sorted on any of them. The settings are retained,
separately for Airborne and Ground aircraft, in an INI file. It is easy to configure it to display the most important
information in a thinner window and have the two side-by-side on one screen. An example INI is provided for
such a layout, suiting a screen of at least 1280 x 1024 resolution.
The print-out now follows the arrangement (but not sizing) of the screen columns.
• Facilities are provided in the FSUIPC interface to send FS controls to selected AI aircraft. Many of them appear
to do nothing, or at least nothing useful, but certainly some may be useful. Experimentation is the key. I’ve
already verified, for instance, that the brakes can be applied on the ground, and the engines can be shut down
and started up again.
Additionally, a special FSUIPC control is added which will actually delete a specific AI aircraft.
These facilities operate through offsets 2900–200B inclusive, and will be documented in the next SDK update.
Advanced information for programmers who need this can be obtained now from Pete Dowson.
• A “ready-to-fly” indication is now provided at offset 3364, for FS2004 only. This single byte is set to FF
initially, and during aircraft or flight loadings, and cleared to zero when the simulation is ready.
• The ready-to-fly flag just described is now used by the FS Run-Program “READY” option, which didn’t really
work too well in FS2004 before now. It may solve some window focus-changing problems for automatically
loaded programs.
• The menu control facility at offset 32F1 is extended to provide separate control over three of the FS menus, thus:
2^10 World menu
2^11 Aircraft menu
2^12 Flight menu
These are in addition to the already allocated bits.
• The menu control for the FS2004 ‘world’ menu now works. There was a bug in earlier versions (actually due,
surprisingly, to the removal of the Scenery Library entry from that menu).
Version 3.11 (October 2003) includes:
• An error in the TCAS tables for FS2004 resulted in the longer airline+flight name strings using 15 characters
instead of the (newly restricted) 14, thereby losing their zero string terminator. The 16th character has been re-
assigned to provide the ATC status of the aircraft on FS2004, and so is not zero. The error resulted in some
program displays showing spurious characters at the end of the 15 valid characters—my own TrafficLook was
one of the programs affected!
• The Technical page option for axis “spike removal”, designed to fix some rather special programming errors in
certain complex panels, did not work in all such panels on FS2004 because of a small change in the way the FS
Command is formulated. The facility has been changed to deal with this and any future such similar differences.
• Compound button programming is now extended to allow them to use repeat actions too. For this the prefix
“CP” (for Compound Press) is changed to “CR” (Compound Repeat).
• Separate left, right, inboard, outboard, leading edge and trailing edge flap read-outs (both actual angle and
percentage of max) are now available under FS2002 and FS2004 at offsets 30E0–30FF. Full details will be in
the next update to the SDK.
• A table containing a lot of the data being currently used in the FS2004 GPS has been mapped to offsets 6000–
61FF. Not all of this has yet been decoded, and I am not sure if writing to any of it will do anything useful, but
as much information about this as is known will be included in the SDK update.
• A 16-bit count at offset 333E is incremented each time the FS “clear weather” routine is called, no matter
whether this is by something inside FS itself or explicitly by FSUIPC on behalf of an application program or
User Hotkey. This works on FS2000, 2002 and 2004. It may be useful as a signal to weather control programs to
re-initialise the weather, particularly after a Flight reload (such as one to an AutoSaved flight, after a crash).
Version 3.10 (September 2003) superseded version 3.09 before the latter was truly available, but both included all
these changes except the first, which was only in 3.10:
• DLLs which are accredited and which register themselves directly through the IPC interface are now
automatically also listed in the user’s KEY file. This allowed the registration system for GAUges to be
streamlined without any adverse effects on DLLs.
• A bug is fixed which prevented gauges or DLLs being manually registered by the user if their names contained
any non-alphanumeric characters (i.e. not one of A–Z, a–z, or 0–9). This did not affect the correct registration
automatically, by the gauge or DLL writing to offset 8001.
• The registration checks for DLLs and Gauges in an unregistered FSUIPC installation is made much more
efficient, so that if it is repeated often because the DLL or gauge is unaccredited and keeps retrying the access to
FSUIPC, it now has no noticeable affect on frame rates. Of course, the DLL or gauge will probably not be
working correctly because of this lack of access. The FSUIPC Log now records instances of access by DLLs and
Gauges so that this can be checked more easily.
• The Button programming repeat action is now fixed. It has not worked correctly in recent releases except for
PFC buttons and switches.
• A number of changes have been made to the IPC interface, as follows:
Offset Size Use
02FB 1 Provides ADF2 ident sound switching and indication (FS2004 only)
05E4–05EE varies Slew controls now work reasonably accurately with FS2004
31D8–31E2 2 (x 6) Provide the slew axis input values (all versions of FS)
32FC 2 The AIR file change counter is incremented when the FS2004 control to reload
the user aircraft is used—provided that control is assigned to a button, or
assigned to a Key in FSUIPC, or executed through FSUIPC’s interface. Controls
assigned to keys in FS’s dialogues aren’t detected.
3300 2 Bit 11 now indicates a good signal on ADF2 (FS2004 only)
3370 4 Provides “active” counts for assorted PFC.DLL threads—see PFC release 1.63
3374 4 Provides the millisecond counter used to label Log file entries
3378 4 Provides the millisecond count of the last Log entry
• If you are running the PFC driver too (PFC.DLL), the FSUIPC Hot Key page provides a setting to reset the PFC
serial port access. This is mainly to help restart the PFC driver after any power outage or mishap on the serial
port. It only works with PFC DLL version 1.63 or later.
Version 3.08 (September 2003) includes an important bug fix for FS2002 users, and several small improvements:
• The button and key allocation option pages are now working correctly again on FS2002. In version 3.07 (only)
the access to FS2002’s CONTROLS.dll was messed up and this caused FS to crash when any attempt was made
to access the drop-down lists of controls. This also had the same effect with PFC.DLL because that uses
FSUIPC for this function.
• The Tail Hook position, mapped at offset 3BA0, now works correctly on FS2002 as well as FS2004.
• The initialisation changes that come about because of the default setting of InitDelay being set to 0 may have
been too drastic on some systems. In this version several operations in FSUIPC are now again delayed for a
number of seconds. Only the Window subclassing is affected by the InitDelay setting.
• In an attempt to try to reduce the stutters that have been reported by some users, the frequency of the weather
data updates (for read access by other programs) in reduced on FS2004. It used to be once per 4 FS frames, and
this is now reduced to one every 16 frames, by default. It can be changed with a new FSUIPC.INI parameter in
the [General] section—WeatherReadInterval. This is the exponent of 2 for the number of frames per read. The
default is 4 (2^4 = 16). A value of 0 makes the updates occur on every frame, a value of 32 will effectively stop
them altogether.
Note that this also controls the rate at which any weather is updated using the old FS98 or AWI interfaces.
However, it does not alter weather setting capabilities using the New Weather Interface (NWI).
• The New Weather Interface facility for reading weather at a location or at a specific ICAO station is changed a
little. If the signature is not refreshed within the timeout, as well as freeing up the facility for other programs to
use, the continuous updating of the last-read station or location is stopped. The ICAO, Latitude, Longitude and
Altitude are all zeroes to indicate this. This is part of an overall attempt to make the weather operations more
efficient.
WeatherSet2 is enhanced to refresh the ICAO or location requested in its “Station” entry at regular intervals, so
that it can reflect changes in real time. However, it uses a signature of zero, which means any other application
can take over at any time and read whatever it likes instead. Of course, when that happens the display in
WeatherSet2 changes to match.
• Additional values are now accessible through the IPC interface, for FS2004 (and FS2002 in one case). These
are:
02D4–02FB Assorted values related to reading and setting ADF2
13FC The number of payload stations for this aircraft
1400 and ff. Data for each of up to 61 payload stations, including weight, position and name.
2DC6 The Heli “Beep” value, whatever that is (sorry). [FS2002 also]
As well as this, the offsets for access to some BGL-accessible variables are now known and are published in the
revised Programmers Guide (available in the SDK update being released simultaneously with FSUIPC 3.08).
Version 3.07 (September 2003) contains several new minor features and some fixes and improvements:
• The sub-classing of FS’s main window is now done immediately FSUIPC is initialised, though it can be delayed
by using a previously undocumented parameter (InitDelay=<milliseconds>) in the [General] section of the
FSUIPC.INI file. This change is part of an attempt to reduce the probability of FS suffering black screen
problems when switching between windowed and full screen modes. Full details of this will be found in the
back of the User Guide. In previous versions the delay was 3 seconds, so if anyone finds FSUIPC worse with the
delay omitted they can restore it by using “InitDelay=3000”.
• A problem in some systems, where the Joysticks tab in FSUIPC’s options doesn’t appear, has been fixed. This
seems to arise when the FS Controls.DLL is loaded into a different location than usual, but why this occurs
sometimes on a few systems hasn’t been determined.
• A small memory leak in FSUIPC’s weather routines for FS2004 has been plugged. This has been reported as
causing insufficient memory reports after 12–14 hours flying.
• The flight loading facility in the IPC interface now operates correctly on non-English versions of FS2004.
Previously the correct folder may not have been used—it varies according to the Language. FSUIPC now gets
the folder name from FS’s own Language.DLL.
• An “Autobrake Set” control is added to the Keys and Buttons programming facility.
• A hotkey facility for selecting all engines is added. Apparently there are times when FS’s own key sequence for
this (E 1 2 3 4) doesn’t work—notably on 3-engined aircraft it seems. This facility selects all engines by writing
the correct bit pattern to the location that matters.
• Facilities are added for external programs to utilise FSUIPC’s Buttons programming capabilities by altering
“virtual button” indications via the IPC interface. Virtual joysticks 64–72 have 32 buttons each, mapped to
offsets 3340 to 3363 inclusive. Setting a bit in one of the nine DWORDs is seen a pressing the corresponding
button, and clearing a bit as releasing it. The 9 x 32 button capacity is chosen to suit the available button
connections possible on the Aerosoft 747 MCP (4 x 72), but it should be easily adequate for any
implementation.
• The Tailhook Position (a 64-bit floating point value, or ‘double’) in FS2002 and FS2004 is now mapped for
reading and writing at offset 3BA0. This has not been tested prior to release though. Whether writing to it
actually positions the tail hook is not known.
• The logging is improved for developers by logging the details of illegal access attempts—that is, attempts to
access parts of FSUIPC’s offsets which are not allowed for unaccredited programs in an unregistered installation
of FSUIPC.
Version 3.06 (August 2003) includes two important fixes, and an extra facility:
• It turns out that the rain/snow rate value in FS2004 runs from 0 (light) to 4 (heavy), whereas in FS2002 and
before it varied from 0 (none) to 5 (heavy). This wouldn’t be too bad, if it wasn’t for the fact that FS2004 hangs
quite nastily, with a black scenery window, if any program tries to set rate 5! I think it may be trying to load and
set rain or snow graphics that don’t actually exist, and doesn’t handle the failure very well. In this version,
FSUIPC converts the FS2000/FS2002 precipitation rate values used by weather programs into FS2004 terms,
and vice versa.
• The fix in version 3.05, to stop the FS2004 weather ‘themes’ reverting to ‘user defined’ didn’t cover all cases—
if the wind smoothing option was selected this change could still occur. This is fixed correctly in this version.
• A facility is provided to make the graduated visibility operate from the top of the current visibility layer rather
than from a fixed user-specified altitude. This is done by setting the lower graduation altitude to zero.
Version 3.05 has some important improvements for FS2004 users:
• The visibility maximum values and smoothing actions are now applied to all weathers in FS2004, independently
of the weather source.
• Graduated visibility is introduced for FS2004, and also applies to all weathers, independently of source. Unlike
the FS2000/FS2002 equivalent, this does not make use of the visibility layer, which is left as set by the weather
data.
• The New Weather Interface (NWI) now has additional weather setting commands to set local weather “pending”
first, and “activated” later. When these facilities are implemented in a weather program, they will help eliminate
most of the small hesitations that may sometimes occur when the setting of each station needs activating
separately.
• Facilities are included in the NWI for programs to read the complete weather data for any place in the FS world,
by providing the Latitude and Longitude. WeatherSet2 is revised (version 1.31) so that it can use this facility
too.
• By default FSUIPC now no longer applies any of the weather filter actions to FS2004’s own global weather
settings. This action had the unfortunate side effect of always switching FS’s Weather settings to “User
Defined”, even if a Theme was selected. If you use FS global weather and want the FSUIPC filters to act upon
it, you now have to alter an option in the Technical page.
• Weather data and other values are now still updated when FS is minimised. The update rate will be reduced,
however (2–4 fps).
• Additional IPC offsets now working in FS2004 include:
0AF0, prop type: 0=fixed pitch, 1=constant speed
0C20, the current FS time in string form
30D8, dynamic pressure
3BD6, a new set of “partial panel” failure control/flags, including separate NAV/COM 1 & 2 radios
Version 3.04 changes include the following:
• A problem in recognising accredited program names longer than 15 characters, on Windows 2000 (only), is
fixed. This particularly affected Flight Deck Companion users on Win2000.
• An odd problem, possibly related specifically to non-English language versions of Windows XP, whereby
accredited programs were still rejected even on a Registered FSUIPC installation has been fixed.
• The flaps calibration, changed to suit the new FS2004 flaps control, is now working properly (again?)!
• The wind gusts reported via the old FS98 interface are now set to zero correctly when there are no gusts.
• FSUIPC now supplies valid addresses to WideServer for all data, even data that is not present for the specific
aircraft which is loaded. This overcomes a problem noticeable in WideClient, with such data never being
received from the Server and thereby causing “wait for data” timeouts (defaulting to 500 milliseconds) and
hence jerky operation. These wouldn’t have been noticeable on clients not trying to read the specific non-
existent data, nor if the data wait timeout had been turned off. (This is more likely to have happened on FS2004
as the aircraft data structures are now simply not created by FS when they aren’t needed).
• The following values, accessed through the IPC interface, are now valid, or at least better, in FS2004:
1. EGT for props. It seems that the units used for this value for props are not the same as those
used for Jets. Only the latter appears compatible with FS2002 and before. Until we know more
about this, I have derived an approximate conversion formula empirically so that the Prop
values, too, are more like their FS2002 values.
2. The ADF dial setting at 0C6C is now working, both read and write.
3. The Nav/GPS switch at 132C is now working, both read and write.
4. More of the “available function” flags in the 077C ff. Range are now working. In fact I think
there’s now the same coverage as in FS2002.
• The standard “SIM RATE SET” control seems to have been broken in FS2004. I’ve added some code to
intercept this and work it within FSUIPC instead. This also makes the SIM X1 hot key facility work.
• The IAS smoothing option in the Technical page is now enabled by default, so will work even for unregistered
FSUIPC installations.
Version 3.03 contains a variety of minor improvements and some important error fixes:
• The weather interface for FS2002 is fixed. Previously it didn’t become operable until some external application
actually wrote to the IPC interface.
• The weather defaults for an unregistered copy are now the same as the “minimum weather defaults”. Since they
cannot be altered in an unregistered copy it seems wrong to impose any filtering actions, such as the minimum
and graduated visibility, which normally defaults on in FS2002. The only exception made to this is to enable the
“extend METAR max vis” action, as otherwise there’d be too many 10sm and 9999m visibilities set!
• Checks are now in place for Registration on a Win2000 or XP system being used without “administrative
rights”. Registration is like an install and needs the user to be the administrator.
• Facilities are now included for DLLs and GAUges to be accredited manually. This is done by entering the name
of the gauge or DLL (with the .gau or .dll part) into the dialogue box, and providing the access key.
• The new AXIS_FLAPS_SET control, assignable in FS2004’s joystick assignments dialogue, is now recognised
by the FSUIPC joystick Flaps calibration facility. It also corrects the action of the FS2004 default operation,
which seems to need –16384 to set zero flaps, but calibrated values from 0–16384 for the other settings.
• A flag is provided which tells external programs whether thy have full access to the IPC or not. This can be read
without triggering the message box to users telling them of an un-accredited access attempt. The location is the
byte at 330C (hex) and the flag is the 2^1 bit—it will be set if access is okay. (On WideFS it will always be set,
assuming WideServer is registered on the FS PC).
Version 3.02 includes a further fix to the Registration system, interlocking the attempted access by applications so
they do not interfere with the Registration dialogue at all. Previously some registrations may have been difficult or
even impossible if application programs were running at the time.
Also, an error in 3.01 is fixed which can, in some circumstances, cause the Message Box warning of un-accredited
program access to appear when it isn’t true.
Finally, the FSUIPC INI file parameters to operate the TCAS options for AI aircraft are now usable even in un-
registered copies of FSUIPC, though you have to edit the FSUIPC.INI file to change them. Details of INI file
parameters are given in the Advanced User Guide.
Version 3.01 was released quickly after 3.00 to fix some little problems introduced with the Registration system:
• It is made to properly deal with registration details with accented or non-standard ASCII characters
• It now does not repetitively log the details of a single application failing to provide the correct access key.
However, large logs may still occur if more than one program keeps attempting access, as it only remembers the
last one each time.
• The first time any program is run without the correct access key, on an unregistered installation, a Message Box
is now produced to warn the user, and asking him to look at the log file.
Version 3.00 (July 2003) is the first official version which supports FS2004 as well as the previous versions. It is
also the first to need user registration for full access to all facilities, or access keys from accredited programs for the
IPC interface.
As well as these changes the main addition, specifically for FS2004, is the “New Weather Interface”, which allows
external programs to read and write weather by METAR station ICAO reference. This is the first time local weather
control has been offered to external programs. Full details will be included in the updated SDK, which will follow
the release of 3.00 as soon as possible.
Version 2.975 includes these changes:
• Fixes the time-out for externally injected AI Traffic data, such as that provided by AI Bridge for TCAS display
of MP traffic. The change in 2.96 to the way FSUIPC timings are related to frame rates caused less than the
specified 6—12 seconds to be allowed before a refresh by the injecting program is needed.
• Non-centred axis calibrations now work correctly even with maximum input values of less than 512. Note that
such small input values are only likely if the original axis was either completely uncalibrated (in Windows), or
had its FS “sensitivity” slider set far too low.
• In FS2002 the reverse throttle limit is now automatically adjusted to provide full reverse for each aircraft,
individually, rather than assuming that the maximum reverse is always around the –4096 value.
• The G-force value at offset 11BA can now be written to (though this appears to have no useful effect).
Version 2.972 corrects a few odd things that occurred as a result of changing to FS frame rate as a base, rather than
the timer. In particular, the timeouts on application hot keys, menus and other things, would have varied according to
frame rates—being only as promised if the frame rates held steady at 18 fps. Also any programs loaded automatically
with the “READY” option would load before the scenery had finished loading, not after everything was really ready.
Version 2.971 was issued a day after 2.97 to fix a problem with FS98 only. Installing 2.97 on FS98 would make the
latter crash in SIM1.SIM soon after loading.
Version 2.97 (February 2003) is a relatively minor bug fix. The following changes were included:
• The IAS smoothing option works on a timed basis instead of by frame rates—the change in FSUIPC to be frame
rate based rather than timer based shortened the smoothing period for frame rates better than 18 fps, and so the
output wasn’t as smooth as it should have been.
• The version 2.96 fix for the processing of application hotkeys was incorrect. The option to allow hot keys
through to FS became inoperative.
• The decay slope for the toe braking pressure, when the brakes are used via the FSUIPC joystick facility for
brakes, is timer-based again, as before, not based on frame rates.
• Additional Project Magenta support is provided in the FS controls drop-down for Buttons and Keys assignments.
Facilities for switching the electrics in the glass cockpit have been added.
Version 2.96 (February 2003) includes:
• Details of nearby ground AI traffic are now available for programs that can use them. The aircraft included are
subject to an in-built range limit set to 6 nm if the user aircraft is airborne, or only 3 nm if the user is on the
ground. This should be adequate for ground traffic avoidance calculations and airport movement plotting.
• The rate at which AI traffic is scanned has been increased to 10% per FS frame, with a parameter in the INI file
(TrafficScanPerFrame) to adjust it (0=off, 100=all traffic updated on every frame).
• If either of the airborne or ground AI traffic tables becomes full, those aircraft furthest away are discarded in
favour or new ones arriving if the latter are nearer. This means it is less important to limit the range, although
the default of 40 nm for airborne traffic is still retained for performance reasons.
• The cloud options for FS2002 now allow the Virtual Sky or Jet Trails facilities as alternatives.
• A hot key assignment facility is added to hide or show the AdvDisplay window. This is for use with the new
version of AdvDisplay (2.00) being released shortly after FSUIPC 2.96.
• The visibility smoothing and graduation operation updates the visibility values in FS at less frequent intervals in
order to try to reduce the horizon flickering noticeable on some video cards, notably the Matrox Parhelia.
Though it seems these phenomena might be video driver faults, it seems best not to provoke them!
• The upper altitude for the surface visibility layer is automatically adjusted to be above the METAR station
elevation (if known). The adjustment is to 1000 feet above when graduated visibility is in operation, or 2000 feet
above when it isn’t.
• FSUIPC is now conducting most of its operations once per frame, rather than at regular timer ticks (18/sec). This
will mean it is sometimes slower, sometimes faster, just like FS itself. But more importantly it should lead to
smoother operation of FS as a whole even in situations where there are many applications using FSUIPC. It may
also lead to better stability, but time will tell. [To prevent FSUIPC stopping altogether in some circumstances,
such as when FS is minimised, if the frame rate falls below 5 fps FSUIPC reverts to time-based operation until
the frame rate rises].
• The operation of changing the gyro drift value (offset 0C3E) is made more consistent, though reading this will
still only show the current FS value not the last value set, which may still be in the process of being applied.
• An error in FSUIPC’s processing of application hotkeys meant that these were passed onto FS even if the flag
had been left clear to indicate that they should not be. In fact the operation of that flag was the reverse of that
intended and documented. Since developers may have already discovered this, and reversed the setting of the
flag in their programs to compensate, the correction wasn’t straight forward. The solution was to no longer use
that original flag and use the next one up instead. This should mean that by default all current hot key users will
set the options so that their hot keys are not passed through to FS. I think this is the safest assumption.
• A bug in the HotKeys page of the FSUIPC options resulted in the “Clear” buttons working correctly but not
actually clearing the displayed key press. Additionally, in some releases the hot key changes were not being
saved to the FSUIPC INI file.
• A bug in the derivation of the full network path of FS (the “UNC” path) meant that the path at offset 3E00 was
only correct if the drive on which FS resided had been shared. If only the path had been shared the path in 3E00
was local, not network-usable.
Version 2.95 (December 2002) has these changes:
• A separate surface visibility maximum for rainy/snowy weather is provided.
• There’s a new Joystick options page which provides facilities for configuring axes as thrust reverser, aileron
trim and rudder trim.
• A bug is fixed in the visibility setting for external programs, which actually prevented the visibility being
changed if the smoothing and graduation options were both disabled.
• A minimum visibility value of 1/100th mile is now imposed even if zero is specified. This is to avoid some odd
graphics effects in FS2002 when zero visibility is attempted.
• Negative FS control parameter values can now be entered in the Buttons and Keys pages of the options.
• A bug in the hot key programming could result in application hot keys not being recognised. This occurs when
an ALT+TAB key combination is used to swap to another program. On some systems FSUIPC sees the TAB
key being pressed, but not released, so assumes it is still being held down.
• External program control over most of the FSUIPC weather filtering options switches is now provided through
the IPC (see Programming Guide, offsets 3127-312F). The user still has an option to stop this happening,
however.
• The gyro drift value at offset 0C3E is now writable in FS2002 as well as being readable.
Version 2.94 (November 2002) includes these improvements and corrections:
• Added WideFS “KeySend” facilities to the list of Controls assignable to Buttons or Keys in the relevant Option
pages. This makes it easier to configure joystick buttons to operate WideFS clients, and for the first time allows
keypresses on the FS PC to be used for this too.
• Added a complete (current) set of Project Magenta controls for programming in the Buttons and Keys option
pages. These are included in the drop-down control lists by option, as they add considerably to the length of the
list. They are all listed starting with “Pm”, with the Airbus specific ones are prefixed “Pm Ab”.
• The program running options are augmented by the addition of a “CLOSE” option as well as the existing
“KILL”. This operates by sending Close messages to the top level windows of the loaded application instead of
killing it as a process. With some programs this is better as it enables tidying up before closure. However, there
may be some programs for which KILL is the only solution.
• The IPC offset to switch FS’s “slew” mode on or off always only switched the mode, not the axis controls that
belonged with it. In other words the use of the joystick to control the slew direction and speed was never
actually possible if the slew mode had been entered by writing to the IPC offset. This was true in FS98, FS2000
and FS2002, and in fact is probably a desirable result as programs forcing FS into slew mode generally want to
control movement themselves without joystick interference. However, in case it is needed, FSUIPC now offers
an additional slew switching facility, related to the same offset, which will do a complete switch, just like using
the slew control on the keyboard (“Y””). This is also available on FS98 and FS2000 as well as FS2002.
• A possible cause of FS frame rate reduction, which seems to be applicable to only some systems, and is related
to the Button programming facilities, has been removed. At least it seems to, according to feedback received
during Beta tests. No such performance hit could be detected here so the fix is by no means certain.
Version 2.93 (November 2002) includes these improvements and corrections:
• Implemented the option to convert wind turbulence into wind variance for FS2002 use, but applicable to upper
winds only. It seems that FS2002 does exhibit the same lack of wind turbulence as in FS2000, but not actually in
the surface wind.
• Fixed a problem with the Buttons option page where an assigned FS control might not ‘stick’ unless some other
facility, such as the parameter value, was accessed after selecting the control in the drop-down list.
• Extended the joystick Buttons programming facility to allow programming of all buttons, switches and rotary
knobs on PFC controls handled by my PFC.DLL. This needs PFC.DLL version 1.46 or later. When
programming is done in FSUIPC the normal action in PFC.DLL is inhibited.
• Extended the Keys programming facility to allow a different action to be programmed on key release to key
press.
• Provided a facility in the IPC interface to disconnect the joystick axes from Slew mode actions (offset 310B).
• Added a facility for FS2002 only to automatically generate an overcast cirrus cloud layer above a specified
altitude to allow FS Sky World SE’s “virtual sky” colours to be applied. This replaces the vapour trails facility
for FS Clouds, which isn’t needed on FS2002. The vapour trails option still applies to FS2000.
Note that if this facility is enabled the real sparse cirrus layer option, if enabled, become 100% probable, not
randomly at 80%.
• Fixed an error preventing a new value entered in the options screen for the limit on visibility for overcast clouds
being applied—the cloudy limit was imposed instead.
• Fixed another bug in the visibility facilities that could cause low visibilities to occur when unlimited visibility is
set in the FS weather dialogue. The weather logging is also fixed to report FS2002’s negative visibility as
“unlimited” (for that is how it denotes this).
• Changed a direct reference to FS2002’s SIM1.DLL data to derive the address at run time. Although generally
this address is almost always known and fixed, it seems that in very specific circumstances it can be different,
and this could cause FSUIPC to crash.
Version 2.92 (October 2002) includes these few important fixes, and minor improvements:
• A bug is fixed in the initialisation of the cloud thickness values, which caused the value set for thunder clouds to
be set in the normal cloud space and the thunder cloud value to reset to its default of 10000 feet.
• A bug is fixed in the new “Keys” options, fixing a problem where the Alt key is shown as Shift and vice versa.
• The use of the Tab key as an extra shift, to provide more keypress combinations, is extended to the Hot Keys
page and also to the IPC interface Hot Keys facility (using bit 2^4 in the Shift State indicator byte).
• It seems that in FS2002 the “gradual” shear setting for wind layers actually works, or at least it smooths the
wind speed and direction more reliably than did FS2000 where gradual shear could give sudden drastic
reversals. The current ambient wind data read out at offsets 0E90 and 0E92 did not take into account these
transitional values. This is fixed so that the read outs always reflect what is believed to be the actual wind
affecting the aircraft track.
• A bug is fixed which could prevent some add-on programs adding items to the Flight Sim menu. This affected
those which operated by intercepting the “WM_INITMENU” and/or “WM_MENUSELECT” messages.
• The gyro drift value at offset 0C3E is now populated by FSUIPC for FS2002. It is a read only value.
Version 2.91 (October 2002) includes these fixes, improvements and new facilities:
• The handling of graduated visibility and the application of the visibility limits is improved when using local
weather, including downloaded “real weather”, in FS2000 and FS2002. The visibility smoothing is now
correctly not applied when using local weather—it shouldn’t be needed as FS should be interpolating weather
between METAR stations and hence “smoothing” changes out itself.
• Facilities for assigning FS controls to key press combinations have been added, used via a new page in the
Options dialogue. These facilities act in addition to those in FS’s keyboard assignments (though take precedence
when the same keypress is programmed in both—you won’t get both actions). The advantage this gives is
simply that FSUIPC offers access to the complete range of FS controls, and even allows assignment of
parameters to those that take them.
• Additional “pseudo-FS controls” are added to allow joystick Button “flags” to be set, cleared, or toggled, for
testing in conditional button operations (described next). These controls can be programmed for buttons or key
presses.
• The button programming facilities now allow multiple actions to be listed for any buttons, selected by the state
of other buttons (or, more likely, switches). This also allows two-phase rotary switches to be programmed
without needing special hardware or software. Up to two conditional buttons or button flags can be specified.
Please see the Advanced User’s Guide for details. These facilities cannot be used from the on-line Buttons page.
• The facility to restrict cloud thickness is extended to allow a different maximum thickness to be applied to
thunder clouds.
• The IPC interface now provides a “protected mode” control, to allow applications to restrict FS Menu access, set
default FSUIPC weather options, and stop FSUIPC options being changed. Details will appear on the next
edition of the FSUIPC SDK.
• The IPC offset 0E92 should contain the Ambient Wind direction based on degrees Magnetic for the surface
wind, but True for upper winds, for full FS98 compatibility. In fact on FS2000 and FS2002 it contained the
Magnetic direction in all cases, which is wrong. (With wind transitioning enabled this actually made no
difference, as the transitioning works by having only the one layer). This error is now fixed.
Version 2.90 (September 2002) includes these fixes, improvements and new facilities:
• A facility is added for FSUIPC to automatically run additional programs whilst FS is loading, or after it is ready.
This facility is controlled by parameters in an additional section of the FSUIPC.INI file, entitled [Programs].
The facility is not accessible through the on-line options in FS, but by editing the INI file, and this is described
in the Advanced Users guide. José Oliveira has kindly supplied a utility program called “Run Options” to edit
these options, and this is available in a separate Zip (“FSUIPC Run Options.zip”).
• An option has been added on FS2002 to actively smooth the IAS (indicated air speed) value supplied through
the IPC interface for external programs. This is to get over a slight (less than 1 knot) regular ‘jitter’, like a
ratcheting action, observed in climbs and descents in FS2002 only.
• Whilst fixing some of the visibility problems in version 2.89, I broke the visibility smoothing facility. When
enabled it prevented external program control over the visibility! This is fixed.
• The spike removal action is now available for aileron and elevator as well as rudder (see the Technical Options
page). This gets around another apparent 767PIC problem whereby the elevator can get stuck in a full nose-up
configuration.
• Switching off main throttle and prop pitch axis mapping now resets the calibration on the mapped throttle and
prop pitch axes too. This was previously confusing folks who had mapped the throttle in order to get a reverse
range, but then changed their minds, and didn’t realise that the calibration on the mapped throttle page was still
active. It seems that these separate throttle axes are used by 767PIC (and probably other panels) when the engine
control unit is engaged (which I think it is by default).
• A mapped throttle or prop pitch axis does not now impose calibration on any external use of that axis, only on
the values mapped from the original input. This was quite a nasty problem, as folks who did map the throttle in
order to get a reverse zone found that the 767PIC engine control unit (and maybe others) was then setting odd
thrusts.
This was because, for instance, in order to have a small reverse region at one end of the throttle lever range, that
calibration involved putting “idle” down at negative values, like –5000 or so, instead of 0. When the Engine
Control Unit set idle, it of course set 0, but FSUIPC was calibrating it to some positive thrust value as obviously
0 is well above the idle of –5000.
Unfortunately this doesn't help multiple throttle users with reverse calibrations on the same levers. FSUIPC has
no way of discriminating between controls arriving from the real throttles and those arriving from the Engine
Control Unit. Such users will either have to calibrate with zero idle, or find some other way of controlling
reverse thrust, or perhaps just switch off the ECU in the panel altogether.
• Use of the FSUIPC interface by internal modules has been made more reliable by allowing access to FS
internals earlier than before, at least on FS2002. In previous versions many of the facilities were not accessible
until all parts of FS had initialised and ‘settled down’. This was to avoid crashes caused by access to parts not
yet ready. Internal modules are liable to request access long before external programs and this was a problem
unless they took care to either keep retrying or to delay their requests by quite a substantial time.
The relaxation of checks applies only to those facilities which are not dependant on parts of FS loading, and are
more extensive on FS2002 than other versions (because in FS2002 SIM1.DLL is resident, whereas on earlier
versions SIM1.SIM was loaded and re-loaded with aircraft).
• The clock synchronising option for FS2002 is now automatically disabled whilst the simulator is run at speeds
other than the normal 1x.
• The AWI-read visibility for the surface layer now reflects the current visibility, not the target. These two can be
different if visibility smoothing is in operation.
• A.I. aircraft that are listed with negative altitudes are now not entered into the TCAS table. It seems that some
such entries can be generated by presumably faulty additional AI traffic packages—the case that affected my
system was for British Airways. The problem with these entries is that they seem to stay in FS’s list of active AI
aircraft forever, and so occupy space in FSUIPC’s tables better used for real aircraft in flight.
• A number of small additional improvements have been made, particularly in the way the exact “local” weather is
determined. This may provide more predictability in areas of many close METAR stations providing conflicting
weather data.
Version 2.891 was released quickly after 2.89 to fix a silly little bug in the new Menu facilities which could cause a
spurious entry to appear in the Modules menu, depending upon other unrelated FSUIPC settings.
Version 2.89 (August 2002) includes these fixes, improvements and new facilities:
• The code to fix the visibility base for stations below sea level did not work in version 2.88 and in fact could set a
base above the station, rendering some ATIS reported visibility values incorrectly.
• The visibility smoothing option did not work well with the graduated visibility feature. In fact it more or less
nullified the graduations altogether. This is fixed in this release.
• Changing the lower altitude for graduated visibility now has an immediate effect and can override previously set
values. External programs and use of the Weather menu can still change the value being used subsequently, as
before.
• The reversal of the default for the “fix control acceleration” facility in version 2.88 was unfortunately not
implemented completely correctly, so the selection of this as “Yes” recorded in the FSUIPC.INI file was
disregarded, making it necessary to re-enable the option on each load.
• Modified the Button dialogue so that the full name of all of the FS controls can be read, and added two special
“pseudo- FS Controls” for Roger Wilco “push to talk” on/off controls. These use RW’s own message values,
avoiding the problems some versions have with key press interception.
• Added an option to synchronise the FS2002 clock’s seconds with the PC’s system clock. Apparently FS2002
otherwise runs slow compared to real time. The correction is thanks to José Oliveira, who worked out a suitable
fix and originally published it in a separate program (clock.exe). The option is defaulted off, and appears in the
Technical page.
• Fixed the engine oil temperature value in the FS98 offset locations (08B8 etc) to correctly provide negative
temperatures as well. Apparently these can occur at low OATs when the engine is out. Whether the original
FS98 values could go negative is not known, however.
• Added a facility for external applications to add entries to the Modules menu via the FSUIPC interface. This
operates like the Hot Key facility and is, in fact, an extension of it. Consequently even applications running on a
separate PC, under WideFS, can use the FS menu. Details of how to use this facility will be published in the next
update to the SDK, but meanwhile interested developers should contact Pete Dowson for details.
Version 2.88 (August 2002) includes these new facilities, fixes and improvements:
• Added extensive joystick button programming facilities, converting button presses/releases into keypresses or
FS controls, handled through a new page in the options dialogue. Whilst this is particularly suited to EPIC users,
it is not EPIC-specific and so can be useful for any joystick system with ‘spare’ buttons, provided these are
visible through the Windows joystick interface (e.g. Game Controllers applet in the Control Panel). The range of
FS controls assignable exceeds those which can be assigned in the FS CFG file, and fixed parameter values can
also be supplied with them so they can be used to set (fixed) values as well as operate switches.
• Added a facility for smoothing visibility changes supplied by external Weather programs. This is defaulted off.
The user can control the speed of changes by setting a time when selecting the option in the Visibility page.
• Fixed a problem whereby changes made in the FS weather dialogue would not take effect with certain FSUIPC
options enabled. This affected wind settings when wind transitions are enabled, and visibility when graduated
visibility is enabled. (This problem actually dates right back to 2.83 and was due to the changes made for
NT/2K/XP systems where saving flights could not be detected in order to restore the weather first).
• Fixed the Joystick calibration section for four separate mixture levers so that the centering (“idle”) action works
correctly.
• The “fix control acceleration” facility for FS2002 is now defaulted off instead of on. It turns out that this facility
can adversely affect the keyboard control of some third party panels. Those panels affected (one notable
example is the DreamFleet 737) continuously send controls to FS, several every second, and these trigger
FSUIPC’s “fix control acceleration” action when enabled. This actually does no harm to those controls, in fact it
helps, but the fact that the acceleration timer is reset each time actively prevents keyboard controls from
accelerating at all. FSUIPC cannot “fix” those as the keyboard controls do not go through the same interception
mechanism.
• Added a facility for an external program to supply “KeySend” codes in the FSUIPC address space, for use with
Wideclient.
• Dynamically adjusts the visibility layer base for places below sea level.
Version 2.87 includes just these few fixes and improvements:
• Added the COM1 frequency to the TCAS data supplied for A.I. aircraft.
• Fixed the facility added in 2.86 to allow aircraft to be added to the TCAS list by external programming. In the
original version updates actually created additional entries.
• Adjusted the joystick calibration facilities so that by default there may be a small dead zone at either extreme.
This change enables the next change:
• Provided an optional “spike” eliminator for the rudder, removing and discarding inputs from rudders which are
actually at or beyond the extremes (–16383 or +16383). This action is mainly to overcome a problem reported
with the Wilco 767PIC on FS2002, when the Yaw Damper is disengaged. If you use this option you should
calibrate your rudder in FSUIPC, making sure you have adequate ‘dead’ zones at either extreme. If you do not
do this then attaining maximum deflection may not be possible.
• Added an IPC offset (3126) to control directly the view direction (the main out-of-cockpit view). Unfortunately
no way of detecting the currently set view has yet been found.
• Extended the facility for sending FS controls (IPC offset 3110) so that most (valid and working) controls do
actually work on FS2002—previously those which did not relate to the simulation engine may have been
ignored in FS2002 (only).
Version 2.86 (June 2002) includes a number of fixes and improvements, as follows:
• Moves the “hot key” options from the Technical page to a page of their own, allowing additional hot keys to be
configured on-line, and tidies up some of the existing FS “fixes and improvements” options.
• Provides user aircraft ATC details—flight number, airline, tail number and aircraft type—as declared in the
AIRCRAFT.CFG file, for use by programs using the IPC interface.
• Includes a facility for external programs to add aircraft to the TCAS tables in FSUIPC’s data space. Details of
how this is used to, for example, add MP aircraft, will be published in the next edition of the SDK. Meanwhile,
apply to Pete Dowson if you need details.
• For FS2002 only, the “NavFreq50KHz” option is added. This forces NAV1 and NAV2 frequencies to be set at
50KHz intervals rather than 25KHz intervals. The option is defaulted off. When enabled it operates on both
‘use’ and ‘standby’ NAV frequencies.
• Allows APR, GS and BC autopilot hold modes to be turned off (when already apparently off) without
disengaging NAV1 lock. This is done by re-engaging the NAV1 lock after turning off any of the other three
modes. This only affects FS2002, when turning off the other modes does turn off NAV lock (which is, after all,
also the LOC component of approach modes).
• Fixes some IPC offsets that needed trapping for activation in FS2002 so that they now also operate if only the
high part is written. These offsets are: 07D6 (Altitude hold value, high word, i.e. metres) and 07EA (Mach hold
value, high word, i.e. whole Mach number).
• Adds support for the four “AUTOCOORD” controls (TOGGLE, OFF, ON, SET) in FS2002. These now operate
the auto-rudder switch successfully, though not the option in the Aircraft–Realism menu. IPC offset 0278 is
confirmed as working in FS2002 though again it doesn’t affect the menu option.
• Adds support for separately switching multiple fuel pumps, via a byte at offset 3125.
Version 2.85 (April 2002) includes only two changes:
• The “magic battery” facility is completely changed. It now operates to sustain the battery voltage for longer,
instead of operating the “Electric Always Available” override. This makes it completely independent of Aircraft
settings, battery and avionics switches, and engines. For added flexibility the rate of discharge can be controlled
by parameter in the Technical options page.
• The “Spurious Wind Fix” option, which was defaulted on since 2.84, is removed altogether, as it does not work
and creates an assortment of other problems.
Version 2.842 (March 2002) was released quickly after 2.84 to correct problems brought about by the experimental
code to detect and try to release stuck or ‘spurious’ winds (the “SpuriousWindFix”). Apparently, on some systems,
the original code had an unwanted effect on the temperature, making it fluctuate quite badly at times. In 2.842 the
code has been changed to avoid this, and is also now only activated when the wind difference has been over 5 knots
for over 10 seconds or so.
Version 2.84 (March 2002) contains these changes:
• The “white-out fix” option, originally introduced to fix a problem in FS2000, may or may not be applicable to
FS2002. This has not been determined. However, it seems that the clouds in FS2002 can extend up to 100 feet
above and below the specified values even when a deviation of zero is specified. This can cause the bug fix
applied by FSUIPC to operate, apparently clearing the cloud away when it shouldn’t and so making the cloud
layer appear very thin. This is fixed in this version by allowing a deviation in cloud extents by up to 200 feet in
either direction, in addition to the declared deviation.
• Facilities are added, in the Joystick section, to map twin propeller pitch and, independently, mixture controls, to
suit four engine aircraft. This operates in the same way as the facility to map two throttles to four engines, i.e. 1
to 1+2 and 2 to 3+4, and is only effective when a four engine aircraft is being used.
• The Joystick mapping facility (two controls for four engines) is extended to also operate with three-engined
aircraft (1 to 1+2, and 2 to 3). This operates independently from but similarly to the four-engined mapping
already provided.
• An option is added, via the INI file only, to force FSUIPC to provide cumulus cloud cover exactly as requested
by the external weather control program, rather than adjusting it for visual appearance. This applies to programs
using the FS98 weather interface (e.g. Squawkbox) not the Advanced Weather Interface (e.g. FSMeteo). The
parameter is KeepFS98CloudCover.
• A facility is provided in the IPC interface to allow external programs, both local and via WideFS, to send
controls to Flight Simulator. Any of the controls listed in the FS Controls documents can be executed, with
parameters if used. Details will be added to the Programmer’s Guide in the SDK—please refer to offsets 3110
and 3114. This facility applies to FS98, FS2000, CFS1, CFS2 and FS2002.
• Read/write access to the complete radio stack in FS2002 is now available in the IPC interface. Offsets 3118–
3123 inclusive provide COM2, standby frequencies for all of COM1, COM2, NAV1 and NAV2, and also the
sound switches and frequency swap toggles.
• Fixed an obscure bug in the random cirrus and jet trail cloud layer facility which could, in very specific
circumstances, and with local weather (e.g. downloaded ‘real’ weather) only, cause FS to crash.
• Corrected the “RPM scaler” value in FS2002. This value, provided at offsets 08C8, 0960, 09F8 and 0A90, was
previously only a quarter of the correct value for FS2000/FS98 compatibility.
• Several additional values are mapped, thanks to help from Timo Frenay. These include access to the
FS2000/FS2000 NAV/GPS toggle switch at offset 132C, ADF dial heading for FS98/FS2000/FS2002 at offset
0C6C (in degrees 1–360), and the Texture Quality setting at 0C92 (now also applicable to FS2002).
• The visibility limits facility is extended to allow a separate limit for when clouds are overcast (actually 7 or 8
oktas). This was intended to help with the FS2002 blue horizon problem, but this only whitens when the
visibility is below 4 miles, and meanwhile the clouds lose texture first, so it really is not the solution I hoped it to
be. (Parameter is MaximumVisibilityOvercast).
• Fixed a bug which would sometimes cause zero visibility to be set when FS2002’s weather dialogue is used to
set “unlimited” visibility. This arose because it seems this option, in FS2002 only, actually sets the visibility
value negative (presumably as a marker to mean “maximum”). FSUIPC sees this as below the minimum (which
defaults to zero), so sets the minimum! This anomalous value is now detected and treated correctly.
• An option, defaulted on, is provided, in FS2002 only, to try to fix the occasional stuck control acceleration—i.e.
the problem with some panels where the increments/decrements to values like heading, course, and so on, get
stuck at 10 or whatever. These “accelerations” are actually legitimate when a key or mouse is held down long
enough, but it seems some things can make them ‘stick’. What happens is that inside FS there's a timing check:
if less than around 400 mSecs have passed since the last control arrived (of any description), it stores a time
difference value which is checked for certain control actions in the main simulation engine. That routine then
accelerates the effect of the control (such as by incrementing/decrementing in 10's instead of 1's) according to
that time difference.
The problem appears to be that the FS code does not care whether the closely timed controls are all the same or
all different. I think the assumption is that, if they are arriving that close then they MUST be the same—the user
couldn't move the mouse to another spot, or select another key on the keyboard, so quickly. However, some
gauges or other driver programs can be sending controls very fast indeed, hence the problem. Whether this
explains all the cases reported I don’t know, but it seems likely.
The new check in FSUIPC is optional (in the Technical page), but defaulted on. What it does is intercept all the
controls, and change the elapsed time location inside FS before forwarding every different control, so that the
time elapsed looks large enough. If it sees successive identical controls then it leaves them, so they can be
accelerated as normal.
The end effect of this is likely to be the reverse of the original problem. For normal use of mouse and keyboard
there is no difference, but if some gauge or driver starts sending controls very fast (i.e. at less than 400 mSec
intervals) then the controls may not accelerate even when you expect them to. I tend to think this is better
though. (Parameter is FixControlAccel).
• Another option for FS2002, also defaulted on, is provided to trap certain “User Interrupt” occurrences, which
cause the “End Flight?” dialogue to appear on screen whilst flying. Apparently these can occur in certain
configurations if the aircraft is over-stressed or has some minor damage inflicted by, for example, taxiing over
rough ground. If they occur whilst on-line in multiplayer mode it can prove embarrassing. (Parameter is
TrapUserInterrupt).
• Changes have been made to the “magic battery” facility, when running on FS2002, to try to address the problem
that it prevents the electrics being failed via the Aircraft–Failures menu. First, the option now only operates
when Engine 1 is not running. Second, the option is suspended when any menu dialogue is in use. This seems to
cure the problem. Note that the facility cannot ‘repair’ a battery that has been allowed to run down. The only fix
for that is to get an engine started to charge it up, or to reload the aircraft.
• Some rather complex programming has been incorporated in the FS2002 sections of FSUIPC to try to prevent
the occurrence of a “stuck” wind speed. This phenomenon has been reported by several users, but is very
difficult to reproduce. Whether the “fix” applied now to the relevant FS modules actually works or not is
unknown at this time. The fix is optional, defaulted on. (Parameter is SpuriousWindFix).
Version 2.83 contains these changes:
• A facility for “Throttle synchronisation” is added. This can be operated by a Hot Key (set only in the INI file),
or through the IPC interface using a bit at offset 310A. When throttles are ‘sync’ed then the Engine selection
(E+1…) is applied to all four engines, and any input on any throttle control is applied only to the main single
throttle control. The hot key can only be assigned by editing the INI file.
• With some excellent help from Microsoft, the FS2002 “everlasting rain” bug is now fixed in a more efficient
manner that applies to all sources of weather, not just external. This is still optional and defaulted on, but the
option is now visible in the Option Dialogue (see the Clouds page).
• The problem in FS2002 of ‘subterranean winds’ in local “Real” weather, for METAR stations at altitudes over
1000 feet, is fixed by a new option in FSUIPC, defaulted on. This extends the surface wind to within 100 feet of
the top of the next wind layer, and also copies that layer’s wind speed and direction. This is only done at
stations over 1000 feet, and thus makes no actual change to the weather experienced. It just enables several of
FSUIPC’s options to operate correctly, the most obvious one being the Taxi Wind facility.
• The option to transfer the wind turbulence action to "wind variance", used in FS2000 to overcome the problem
that wind turbulence didn't work then, is not offered in FS2002 as it is not needed
• The FSUIPC Wind Smoothing action is no longer applied to local ‘Real Weather’ winds. Apart from its use in
smoothing the change between taxi and normal wind strengths it is not needed for interpolated real weather
winds, and it makes the operation of the taxi wind facility very precarious.
• The action taken by FSUIPC in order to restore the wind layers when wind transitions are in use (and the
visibility when graduated visibility is in use) did not work under Windows NT, 2000 or XP, due to a difference
in memory protections applied to the data being changed. A method of dealing with this has now been found.
Note that this only applied to users of NT and its derivatives (Win2000 and WinXP), and then only if you use
Wind Transitions and/or Graduated Visibility. No other users were affected.
• The two sets of velocities (GS and TAS) available at IPC offsets 3090 and 3178 respectively were cross-mapped
for FS2002, This is fixed in this version.
• The dynamic pressure is now available for FS2002 at offset 30D8.
• The ambient wind data at offsets 0E90 and 0E92 was incorrectly set to 0 when local weather was in use (on both
FS2000 and FS2002. This is corrected.
• In FS2002, loading the Default Meigs flight went unnoticed by FSUIPC, so this was not recorded at IPC offsets
3F02 ff.
• A long-standing bug is fixed that caused some visibility problems, when running with the graduated visibility
option disabled, after loading older Flights (FLT+WX files) which were saved with graduated visibility enabled.
• The “Smoke Control” value at offset 05D8 is now working for FS2002, for those aircraft that support this
facility (e.g. the Extra). Unfortunately the marker at 05D4 to show whether the smoke system is avialable still
isn’t working.
Version 2.82 (February 2002) includes some important fixes and improvements which will be mostly invisible to
users:
• Setting of a number of A/P and A/T switches through the IPC interface have been made more consistent,
especially when several are changed together.
• The Advanced Weather Interface (AWI) read-outs for Wind and Temperature layers are now able to cope with
FS2002’s downloaded local weather. Previous versions of FS downloaded weather only supported one layer of
each. The results can be seen in WeatherSet’s display: the “Set” winds show all the wind layers, the “Applied””
wind shows the current interpolated wind at the aircraft position. The temperature section shows all layers, not
the interpolated value as before.
• An error is fixed which, on FS2002, meant that FLT+WX files saved when FSUIPC’s Wind Transitioning is
enabled did not contain the wind layers actually set, only the current interpolated wind.
• On FS2002 the “SendWeather” broadcast is now always sent as soon as possible after any change in rain or
snow. This is in an attempt to circumvent the “everlasting rain” bug in FS2002. See also the next item.
• Weather provided from external sources, like FSMeteo, should now not experience the FS2002 “everlasting
rain” problem. This problem is apparently due to an error in FS2002’s weather routines which creates a second
rain animation when a cloud base (or rain base) is changed even through there may be one already existing from
the previous cloud, the one being replaced. Later, when no precipitation should occur, the new animation is
deleted but the previous one remains.
FSUIPC gets around this by stopping precipitation for one second when changing a cloud or rain base altitude.
This may not be foolproof but has so far turned out very successful. Unfortunately the same sort of fix cannot be
applied to downloaded or user-set local weather. For that I fear a patch from Microsoft will be needed.
This action is defaulted on, but can be turned off in FSUIPC.INI (just set the “FixRainProblem” parameter to
“No”).
• The wind transitioning and graduated visibility facilities are now reset when a new flight is loaded. This fixes a
problem in FS2002 where changing either wind or visibility in the “create a flight” dialogue could result in no
change at all when going to fly the created flight.
• The Hot Key facility is extended to allow additional key combinations to be signalled. Combinations like
Shift+Control+Q can be accompanied by yet another key. The main combination is signalled with the additional
keycode as a parameter. Full details will be added to the Programmers’ Guide in the FSUIPC SDK in due
course.
• An additional facility is added to the AWI (Advanced Weather Interface) to allow local programs, gauges or
modules to obtain the QNH for any location or valid weather ICAO code from downloaded local weather. This
facility is not usable through WideFS. It will be documented for C users only in the next SDK update.
Version 2.81 includes these changes, mostly technical rather than user-oriented:
• The random rain generation is no longer enabled by default, but when enabled the user has more control over the
probability of it starting and, independently, stopping. Additional parameters “RainStarter” and “RainStopper”
are added for this.
• The TCAS range limit for AI aircraft did not operate correctly in the Southern Hemisphere. This bug is now
fixed. The same problem applied to the TrafficLook program, which displayed the range and heading incorrectly
in the South. The included version 1.06 of TrafficLook fixes this too.
• The taxi wind control buttons in the Wind options page are replaced by a single button that changes functions
(and labels). Hopefully this will be less confusing.
• A problem of negative upper wind speeds when extending the top wind upwards is fixed.
• Additional checks have been added on memory allocations, with a warning and curtailed FSUIPC operations
ensuing if any request for memory is turned down.
• The 16-bit word at IPC offset 337E is constantly incremented whilst FSUIPC is being called by FS. This can be
used by WideFS client programs to detect when FS crashes or is closed. Leeway for a ‘frozen’ value should be
allowed, however, as FSUIPC is not called often when FS is loading aircraft and scenery.
• The currently loaded FLT file details at IPC offset 3F04 were incorrect for FS2002—they incorrectly included
the full FS path. This is now rectified.
• IPC offset 0842 (vertical speed) is now operated by FSUIPC in FS2002—but as it is derived from the value in
02C8 it does not work in slew mode.
• IPC offset locations 0C18, 0C1A and 0C20 are now operational in FS2002.
• Writes to IPC offsets in the range 3060 to 31FF are now passed through to the FS2002 sources for these values.
Apparently this enables accelerations to be changed ‘on the fly’ (which is a surprise! <G>).
Version 2.80 changes are:
• Added FS2002 option for FSUIPC to intercept ATIS/ATC requests for weather and substitute destination
weather details for pressure (QNH), visibility and clouds, where available (e.g. when using FSMeteo). This also
adjusts the cloud bases to AGL so they are reported correctly by ATIS. The option is only applied to global
weather (not downloaded or user-set local weather).
• Options have been added to suppress all wind turbulence and all cloud turbulence (independently). These are
mainly for use in FS2002 when the user has opted for heavy A.I. traffic. Apparently the presence of turbulence
nullifies some FS2002 optimisations, and with heavy A.I. traffic being simulated the frame rates can take a dive
(e.g. 203 fps instead of 20-30 fpm over Northern France with maximum A.I selected).
• It seems that, in FS2002, wind gusts are specified internally by the maximum wind speed, not the difference as
in FS2000, so the GustsRelative option is now, in FS2002 only, fixed at No and the parameter is removed from
the INI file.
• Fixed an error which would prevent the user setting wind turbulence through in the FS dialogue.
• Fixed the A.I. traffic Ground Speed reported in the IPC data. Previously it was being supplied in ft/sec instead of
knots as documented.
• Added processing in FS2002 for the “KEY_TOGGLE_ELECTRICAL_FAILURE” event, so that it behaves the
same as it did in FS2000 even if the user has set the FSUIPC magic battery option.
• Included an FS2002 option (usable only via the INI file) to convert cloud turbulence into wind turbulence for
any cloud layers, not merely those within the surface wind. This was an attempt to fix the dip in frame rates
when there is turbulence and dense A.I. traffic, but then it was discovered that wind turbulence had the same
effect, so the facilities to suppress both were added. (Note that this also applies only to global weather, whereas
the suppression option applies to all weather sources).
Version 2.79 changes are:
• The older flight axis controls (not actually assignable in the FS CFG file now) are not reversed, mapped and
calibrated, as they were. This was done for continued compatibility with FS98, but apparently it interferes rather
catastrophically with some new panel designs. [Fixed in 2.781 which went on limited release]
• Apparently FS2002 suppresses cloud turbulence completely when it occurs within the surface wind layer. This
means that using the “extend top wind layer upwards” option when there is only a surface wind will render cloud
turbulence completely inoperative. Additionally, FSUIPC’s own wind transitions operate by making a single
thick surface wind layer which it changes according to altitude, so again preventing any cloud turbulence.
To get around this, FSUIPC now detects when cloud turbulence should be operating but isn’t, and sets the wind
turbulence value instead, to compensate. The two types are actually indistinguishable in flight in any case.
[This change was incorporated into version 2.782 which was on Beta test for a while]
• Additional protection against duplicate copies of FSUIPC has been added.
• A range limit has been implemented on A.I. aircraft added to the TCAS tables. This defaults to 40 nm, but can
be adjusted in the Technical options and the limit can be turned off altogether by setting the range to 0.
Version 2.78 includes the following changes, in roughly descending order of importance to most users:
• Winds reported via FS2000’s and 2002’s ATIS, and those used by FS2002’s ATC, are corrected to reflect the
surface winds when global weather is being used (e.g. weather set from FSMeteo or other external weather
programs). For FSMeteo this can be the “destination” surface wind when that has been set. Additionally, to
avoid ambiguity in runway assignment, a calm wind is communicated as a 1 knot wind. This is similar to the
arrangement for FSTraffic and Adventures so that ProFlight2000 and Radar Contact, for example, select the
same runway as the traffic.
• Settings made through the IPC interface to FS2002’s autopilot registers (heading, altitude, airspeed, and vertical
speed) are made much more accurately now, by using direct access into the simulation engine. Previously the
only access method found tended to restrict these settings to integral values.
• The visibility base is now set at –1500 feet, instead of zero, so that those areas below sea level get the correct
surface visibility. This applies to FS2000 and FS2002. Settings across the Advanced Weather Interface are
converted automatically between 0 and –1500’ (in metres).
• The option for the FS2002 A.I. traffic data to provide TCASbyTailNumbers is replaced by the TCASid
parameter, with additional options which can supply aircraft type or title information instead, as required.
Details are described in the Advanced User’s guide and also in the short text document covering the TrafficLook
utility.
• Attitude Indicator and Flight Director pitch and bank values (2EE8, 2EF0, 2F70, 2F78) for FS2002 are now
made compatible with FS2000 and promoted to the main offsets table. (This will be covered in the SDK Release
9).
• Setting the brake pressure by writing directly to 0BC4 and 0BC6 now works in FS2000 and FS2002 as, I’m told,
it used to in FS98. (SDK Release 9).
• The Magnetic Variation reported to adventures and used in a number of APL variables, is corrected in FS2002.
If the same Flight was reloaded after ending an Adventure, the Magnetic Variation value is otherwise set
incorrectly (to the default flight value, by the look of it).
• The APL variable GROUND_ALTITUDE is corrected for negative values. Previously, for parts of the world
with land below sea level, this variable gave an extremely high positive value instead! This fix applies to
FS2000 as well as FS2002.
• The Propeller Pitch calibration page in the FSUIPC options has been corrected to show “Feather” to the left of
“minimum”, as for turbo-props the minimum setting is the one needing a central null zone, with feathering
actually being below this.
• A facility to set a Hot Key to restore the X1 simulation rate is added, though only by adding the
SetSimSpeedX1 parameter to the FSUIPC.INI file manually. This is mainly for use on FS2002 where otherwise
each change from, for example, X16 to X1 causes a scenery texture reload. More details in the Advanced User’s
guide.
Version 2.77 contains a number of relatively minor, but nonetheless, important changes, concerning FS2002
support:
• Autopilot information and control is made available to ADVentures. FS2002 seems to have omitted this. Even
the A/P heading setting inaccuracies are replicated (it was out by 1 in FS2000/FS98).
• The VOR1 and VOR2_RADIAL variables for adventures are corrected to be Magnetic, not True, bearings, for
FS98/FS2000 compatibility.
• IPC offsets are added for Pushback status and control. These are also made available to ADVentures. (See
version 8 or later of the SDK).
• IPC offsets are added for surface type and condition. What the information provided actually means hasn’t been
decoded, nor is it known whether this only refers to the surface when the aircraft is on the ground, or whether it
is always the surface under the aircraft at any altitude. (See version 8 or later of the SDK).
• The cloud precipitation base is now set to –1500 feet when rain or snow is set, whether through the Advanced
Weather Interface, or the special IPC offsets, or from Adventures. This is also applied to FS2000. It fixes a
problem where a base of zero (the FS2000 default) meant that rain stopped at sea level. In a Cessna on the
runway at Schiphol (EHAM) this would have meant no rain! The value –1500 is adopted as that seems to be
FS2002’s default—maybe the lowest ground elevation in FS2002 is –1500 feet?
To avoid this making changes necessary to programs using the Advanced Weather Interface (e.g. FS_Meteo,
WeatherSet and WidevieW), negative values for the precipitation base are converted to zero before supplying
them across the interface and, conversely, zero values are converted to –1500 feet.
• The wind directions reported in the Adventure variables were negative when in the range 180–359 (i.e. these
directions were represented by –180 to –1). This is some change in the ADVDRV module. FSUIPC now takes
over this conversion so that the directions are correctly 0–359.
• Requests for Autopilot Mode changes are now only passed onto the FS2002 autopilot when the request actually
means a change. Previously, if, for example, “altitude hold on” was requested through the IPC, FSUIPC would
command the A/P to turn on Altitude Hold. This made the autopilot re-initialise this mode even if it was happily
holding an altitude already! The result, in this case, was a sudden burst of porpoising!
• The option to correct the sign on the Vertical Speed when the target altitude meant the aircraft should go the
opposite way is improved by making the V/S become zero when the difference is less than 30 metres. This is
only applied to FS2002 where the V/S behaviour otherwise seems a little more erratic.
Versions 2.761–6 were limited test releases that contained assorted bits of extra code for FS2002 only to support full
Autopilot control and checking in Adventures, plus assorted other changes for testing.
Version 2.76 adds the Technical page option to make the “magic battery” work even if the Avionics switch is off.
This option makes the action revert to how it operated in version 2.511, and is apparently necessary for flap
operation in Wilco’s 767 PIC.
A section is added to the User Guide to explain how to make the FS2002 autopilot usable without forcing wing
levelling. This isn’t actually anything to do with FSUIPC, but I get many inquiries about it.
Version 2.751 was an interim limited release with the following changes:
• An error in the SendWeatherAlways=No facility meant that weather broadcasts were still being sent more often
than needed, only being limited by the SendWeatherInterval which defaults to one minute.
• A problem in FS2002’s vertical speed operation has been worked-around by special action in FSUIPC.
Apparently the V/S used for climbs and descents can get ‘stuck’ at its levelling-off V/S (750 fpm), ignoring the
actual set value in the V/S register. Toggling the ALT hold off and back on quickly fixes this, and that is what
FSUIPC now does if it spots the condition arising. This is only done when there’s at least 1000 feet to go, to
prevent interference with levelling off.
Version 2.75 contains a modified method for broadcasting weather changes to other parts of FS2002 (only).
Apparently the original method, of sending changes as they occurred, had the unwanted side effect of causing the
ATIS identifier (alpha to zulu) to be updated each time.
The weather broadcasts are now, by default, sent at most at one minute intervals, and then only if some aspect of
ATIS-reported surface weather has changed by a significant amount. Both parts of this action are controllable by
new options, but only via the FSUIPC.INI file. For full details please see the description of SendWeatherAlways
and SendWeatherInterval in the Advanced User’s Guide.
Version 2.744 was changed to compensate for an odd feature of FS2002 which clears the SIM1 pointer whenever a
new Flight or Aircraft is loaded. This caused some odd behaviour in other modules. For example, AutoSave then
stopped saving flights altogether, as it thought SIM1 was missing and so the save data was inaccessible.
Version 2.743 fixed a data-checking problem in the Advanced Weather Interface (as used by FSMeteo) which
somehow only came to light with FS2002 under Windows 2000 and XP, even though it is a long-standing error and
should have been a problem on FS2000 and Windows 98.
Versions 2.741 and 2.742 were limited interim releases just featuring better acceleration and velocity values from
FS2002, for specific tests.
Version 2.74 fixed some new problems with FS2002 operation, as follows:
• Trying to set the OBS1 or OBS2 values through the IPC interface did not work.
• Some location previously used for DME distance and speed data is, in FS2002, used to control the switch on the
RMI2 for selecting speed or distance. FSUIPC overwrites this switch and the result was that only speed was
displayed in that RMI. The fix is to move the locations for DME distance and speed to FSUIPC’s own memory.
This works well and hopefully does not deprive any older gauges of this information.
• The GS slope calculation is more accurate. It could have been as much as 0.05% in error before.
Additionally the following FS2002 improvements were added:
• More accelerations and velocities are added, but whether these are correct or not has not yet been determined.
They may need changing again.
• Support for proportional toe brake calibration is added back (see the Joystick section of the FSUIPC options).
These are using the (new to FS2002) AXIS_LEFT_BRAKE_SET and AXIS_RIGHT_BRAKE_SET controls.
• The Brake Indicator offset (0DCA) is made to work more or less correctly by deriving the value from the brake
pressures.
• The demise of the FLAPS_SET capability in FS98 and FS2000 is compensated by allowing another 9working)
AXIS control to be assigned in its place, for calibration in the FSUIPC joystick section. The number of the
control to be used has to be declared in the FSUIPC.INI file.
Finally, the support for undocking and positioning/sizing the FSNav window has been withdrawn. This has been
made necessary by continuing problems in getting it to work reliably, and in trying to keep up with successive
releases of FSNav. Folks who miss this feature should write to Helge to see if he would build the facility into FSNav
itself, where it will be much easier to implement and more reliable in operation.
Version 2.73 corrected the calculation of the GlideSlope angle, used by precision approach programming like that in
Project Magenta. There was a version 2.72 as well, which was nearly as good though not using the correct formula.
Version 2.71 fixed the Joystick calibration section of FSUIPC’s dialogues. Due to a change since the final Beta of
FS2002, this section caused FS2002 to crash.
Version 2.70 was the first test version released to run with the Release version of FS2002.
Versions from 2.512 to 2.69 were made during FS2002 development to try to keep up with the changes from
FS2000 to FS2002. In particular, facilities for driving TCAS for FS2002’s A.I. aircraft were added in 2.601. None of
these should now be used.
Version 2.511 was released soon after 2.50 to fix an additional problem with some Autothrottles, again due to a
difference in two of FS2000’s throttle controls.
Version 2.501 was released within 12 hours of 2.50 to correct a problem with Trim on some panels. This was a
conflict of two different trim controls with reversed signs.
Version 2.50 changes are:
• A facility is added to allow a hot key to be defined to set the standard Barometric pressure (29.92” or 1013.2mb)
on the altimeter.
• The default wind variance, when converted by option from wind turbulence, is reduced by around 30% by
popular request. There is now an additional parameter in the Winds page that can be used to adjust this from
very mild to twice as variable as in earlier releases.
• The random maximum visibility extension option is revised to use a linear distribution of adjustments when the
maximum visibility set for these conditions is less than or equal to 60sm, but retain a somewhat less skewed
distribution (towards the lower values) when the maximum is higher.
• When a Taxi Wind change is requested at an inappropriate time, as, for example, when not located within the
surface wind layer, FSUIPC ignores the request and makes a standard Message “Beep” (which may be a ‘ping’
or a chord, or whatever is assigned in Windows). Unfortunately this action also applied when the Automatic
Taxi Wind option was selected, making a sequence of such noises occur if the aircraft is suddenly placed in an
upper wind whilst in Taxi Wind mode. In this version the sound is suppressed in automatic mode.
• Fixed a bug that prevented newly defined Hot Keys (in the Technical page) working until FS is re-loaded.
• A bug is fixed which prevented applications writing to the IPC offset 3200, used to provoke key presses in FS.
In particular, this error stopped the WideClient “SendKeyPresses” facility operating.
• A serious bug is fixed which caused an FS crash as soon as any application attempted to set a request for a
repeating hot button.
• The hot button facility for applications is extended to cope with the FS “POV” pseudo-button numbers 32–39.
Full details in the SDK.
• The IPC offset 038A now forces and ATIS re-scan, as documented.
• IPC offset 3300, providing radio and autopilot status flags, is now operational as far as possible on FS98 as well
as FS2000.
• New controls for specific FSUIPC options are provided at IPC offsets 3308 and 3309 (see the latest SDK for
details).
• With FS2000, and assuming that you can actually make successful physical connections (either by multiple
Game Ports or USB devices), FSUIPC can now assist in supporting duplicate joystick axes for the main flight
controls. It does this by intercepting declared controls assigned in FS2000.CFG and converting them into the
assigned controls. Up to 4 elevator, aileron, rudder, throttle, left brake and right brake controls can be equated.
For more details see the Advanced Users Guide.
• FSUIPC can feed a specific pre-defined surface wind to FSTraffic when the aircraft is above a given specified
altitude. Apparently this is used by some sets of FSTraffic tracks to provide airway traffic. For more details see
the Advanced Users Guide.
• A bug is fixed which caused FS to hang in a loop if an application program tried to read or write IPC offset
FFFF.
• The altimeter altitude reading is now available to applications at IPC offset 3324. This saves having to calculate
it based on the difference between the QNH and the Kollsman setting. Full details in the latest SDK.
• Facilities are provided to allow applications to disconnect the primary control axes from FS, where these are
controlled through joystick control inputs. This is so that proper control for auto-pilots can be obtained without
spurious interference. For details see offset 310A in the table in the latest SDK.
• The incoming joystick axis values can be read, post calibration (whether by Windows, FS, or FSUIPC), but
before being fed to FS (unless stopped by the facilities described in the previous item). See offsets 3328 ff in the
latest SDK.
Version 2.40 includes these changes:
• Improved and extended the whole presentation and coverage of the Joystick calibration facilities to make them
more flexible and somewhat more obvious. The additions include analogue spoilers, elevator trim, and flaps, and
facilities to enable reverse thrust and reverse propeller pitch to be controlled from the main throttle and propeller
pitch axes.
• Facility added to make FSUIPC send the wind direction to FSTraffic in degrees Magnetic, instead of True, so
that its runway assignments are more in accord with likely ATC assignments in Proflight2000 and Radar
Contact, and similar programs.
• Sends a minimum 1 knot wind to FSTraffic in calm conditions so that earlier versions of FSTraffic do assign a
runway and provide traffic, and later versions assign a compatible runway to that chosen by ATC, at least most
of the time.
• Facility added to fix cockpit windows (i.e. panel parts and scenery views) in position so that they aren’t
inadvertently moved or re-sized when using the mouse on switches and controls.
• Added barometric pressure smoothing as an option (normally overridden when using FSMeteo, which does its
own). This is in the Technical page of the FSUIPC settings.
• Improved the way the joystick calibrations operate by avoiding sending on to FS2000 any values which are the
same as the last ones sent. In concert with null zone and centre area calibrations this stops joystick jitter mucking
up autopilot settings—especially throttle and auto-throttle interference.
• Fixed a bug in the settings system which caused the settings on all un-visited pages to be reset to default if one
of the default buttons (on the About page) had been pressed but then Cancel or ESCape used to retain original
values.
• Fixed a bug in the Joystick calibrations settings which could corrupt the centre values if any of the Joy pages
were visited then left by pressing Cancel or ESCape.
• Fixed a bug with the FSUIPC wind transition system on CFS2 that prevented a load of a subsequent mission
without closing CFS2 and reloading it.
The following changes affect the IPC interface and are therefore only of interest to Programmers (for full details
please refer to the Programmers Guide in the 5th release of the FSUIPC SDK):
• Provided a location (the byte at offset 32FE) which changes every time a registered Hot Key occurs, to enable
any programs using this feature to do so more efficiently.
• Added a Hot Button facility, working very similarly to the Hot Keys, but able to test any joystick button.
• Added more aircraft dynamics, at offsets 3078–3088, 30D8, 3190–31B8, and fixed the Body Axis linear
velocities. (Please see the Programmers Guide in the 5th Release of the SDK for full details).
• Fixed the facilities to display adventure-type text, which were released in a broken state in version 2.30.
• Provided the full network-compatible (“UNC”) pathname to the FS installation via a new offset.
• Provided (on FS2000) the full path name of the last loaded Flight (FLT) file.
• Provided facilities (on FS98 and FS2000) to load and save flights by name (‘situations’ on FS98).
Version 2.30 is another major release, with the following improvements:
• Joystick calibration assistance on FS2000, for more precise definition of limits, dead zones and centering.
• Implementation of fully proportional toe braking on FS2000 for those lucky enough to have USB pedals fitted
with these, or additional axis capabilities such as provided by EPIC or multiple game port cards.
• Additional IPC offsets defined for access to more FS2000 values, including current AIR file pathname, current
aircraft description (as in the Aircraft menu), flaps détente increment, full body-axis velocities and accelerations
(for use with motion platforms), loaded weight, mass and vertical acceleration. Most of these are thanks to Ian
Donohoe of ADE fame.
• Facilities for external programs to display text in the usual Adventure display areas (including the diverted
Window or remote access provided via my AdvDisplay module).
• Extension of IPC interface memory mapping to 0xFFFF, to allow further third party extensions, plus special
support for access to specific modules in FS for expert research. Use of either of these extensions is by
arrangement when justified.
• Random cloud turbulence and icing, and wind turbulence toned down a little to make them a little less likely and
usually a little less violent. This was considered a necessary change now that the wind turbulence can be made
effective by converting it to “wind variance” (which, incidentally, is now determined to be random variations in
wind direction, not speed).
• The engine starter system for FS2000/CFS2, supported through the IPC interface by special actions in FSUIPC,
is improved so that the engine selection is restored afterwards even if multiple engine starting is overlapped. It is
still recommended to start engines in sequence, however, ensuring that the starter is disengaged each time before
proceeding to the next.
• An old option, “N1N2asFS98=Yes” is resurrected in the [General] section of FSUIPC.INI to allow FS98 model
users to start up FS2000 with an FS98 model aircraft and still have N1 and N2 the correct way around before
starting engines. (FSUIPC doesn’t detect that they need switching till the engines are started).
Version 2.20 includes these additions:
• An option is added to convert FS2000/CFS2 wind turbulence to wind “variance”, which at least seems to do
something [actually it provides wind direction variations], whereas the turbulence options seem ineffective (as
least in FS2000).
• The random cloud turbulence option now limits the amount of turbulence generated according to the cloud base
altitude above ground level (actually, above reporting station altitude, where known). Below 2,500 feet the
turbulence is kept “light” at maximum. Below 6,000 feet severe turbulence is not allowed. Neither restriction
applies to thunder clouds, which will normally contain moderate turbulence at a minimum.
• A facility is added to keep the electrics going when they are running on battery and it runs flat. This is to get
around the rather quick battery discharge on the FS2000 airliners.
• IPC offsets are extended to include the range 0x4000–7FFF. This area contains no useful data at present, but
parts may be allocated on request for use by third party programs, and used for further extensions to FSUIPC’s
facilities as needed. This extension is also supported by WideFS versions 4.20 and later.
• For FS2000/CFS2 the value of the aircraft’s zero fuel weight is now accessible, in pounds x 256, via IPC offset
0x3BFC (as a 32 bit integer).
• Details of more efficient methods for using FSUIPC’s IPC interface from within FS (such as from Gauges and
other Modules) are now included in the FSUIPC SDK.
Version 2.11 contains some important fixes and improvements, which are probably all invisible to the user!
• The call made by FSTraffic to get the current surface wind is intercepted and the response set to provide
FSTraffic the correct surface wind even when Wind Transitions are being used.
• FSUIPC now detects the actual local weather implemented at the aircraft position, not just the METAR-
stipulated local weather at the three nearest reporting stations. When local weather is in use, FS2000 is
constantly interpolating between neighbouring weather station reports, so it is changing slightly all the time the
aircraft is moving. FSUIPC now reports this changing weather more accurately for the use of external programs.
• A bug is fixed which prevented the engine combustion flags being cleared to zero when the engines stop.
• A serious bug is fixed which could have caused some very odd weather effects to occur when an unusually large
number of temperature layers are set. For example, 16 or more layers would have made the implemented
visibility change and not reflect the values being set.
• The facilities to control the jet engine starter switch and prop plane magnetos/starter switch, through the original
FS98 offsets, have been improved to work well on all four engines for FS2000 jets and prop aircraft. They are
also usable on FS98 aircraft transposed into FS2000, but the FS98 prop plane magneto settings are still wrong.
The latter is a problem even using mouse or keyboard (without FSUIPC installed), and I’ve not been able to find
a way around that. Application programmers need to read the notes alongside the appropriate FS98 offsets in the
SDK’s Programmer’s Guide (revision dated 15th January 2001 or later needed).
• Cloud turbulence was reported in the FS98 interface, for weather readers, as at a maximum all the time. It now
reads correctly. [This was supposed to have been corrected in Version 2.01, but apparently it wasn’t].
• FSUIPC now detects other copies of itself in the Modules folder, during the FS loading sequence. If it finds any
earlier versions it displays a message detailing the problem and its own filename and version and that of the
(older) offending version, and, when this is acknowledged, terminates itself. This will leave the older version(s)
still running.
If it finds another version which has the same version number as itself, it does the same if it isn’t the first in the
folder. If it finds a later version, it does nothing as it can then safely assume that the later version will provide
the warning and will terminate itself, leaving this one running okay.
• The original FS98 offset to allow the engine to be failed is now made to work in FS2000 as well, with an
extension to select any or all of the four engines to be failed/fixed.
Version 2.10 fixes are few more rather odd things reported since version 2 was released:
• As a work-around for some add-in modules which seem to be adding their Menu entries to FS2000 in a rather
unorthodox or erroneous manner, this version of FSUIPC delays creating its additional IPC window until after
hooking the main FS2000 window. This ‘solution’ was determined by experiment, not by scientific deduction,
and the reason merely changing the order in which things are done in FSUIPC affects how other independent
modules behave is not clear—it is probably an indication of some incorrect assumptions, or use of un-initialised
variables, in those modules.
• Further on the subject of Menu entries, facilities to specify exactly where FSUIPC adds its menu entry are
provided in the INI file. Details are published in the Advanced Users document.
• The IPC interface can now be used by applications to specify Hot Keys and see indications of when these are
pressed whilst FS has the focus. Full details are included in the revised FSUIPC developer Kit, published
simultaneously.
• The IPC mappings of the Pause Control and Pause Indicator have been corrected to match FS98 correctly.
Details are in the revised SDK.
• Minor other IPC mappings are changed to provide surface wind compatibility with versions of FSUIPC before
2.00.
Version 2.01 was brought out quickly after version 2.00 to correct a couple of bugs which, inevitably, crept past all
the Beta testing. These are the fixes (plus a few of extra ‘features’):
• The enhancements in FSUIPC to assist full light switching for FS98-compatible application programs ruined the
lights control for some panels/gauges. This particularly affected strobes. This has been corrected by separating
off the FS98 light control facility completely from the FS2000 global area.
• The tendency on some systems for the Options and Settings window to merely flicker on and off when selected
has finally been fixed for good (I hope!).
• Facilities for WideServer to have all mapping, both for reads and writes, controlled by FSUIPC are incorporated.
Previously WideServer used FSUIPC for FS2000/CFS2 writes, but had to take care of its own mapping for
reads. This duplication is now removed, making future maintenance and enhancement more straight-forward.
WideServer version 4.01 is needed for this.
• The operation of the Vertical Speed correction (part of the “A/P Altitude Fix”) is suspended whilst Project
Magenta’s MCP Enhanced Autopilot is operating. It seems that the way the MCP interacts with the FS autopilot
can cause problems if the V/S sign is changed.
• Facilities are now included to allow users to move the FSUIPC menu entry to wherever they like in the menu
system, renaming it or adding it as a top level menu entry. Full details are given in the Advanced Users
document. This is primarily aimed at helping those who have other Modules which interact badly with the menu
system. Moving the FSUIPC entry may help.
Version 2.00 includes a large number of changes, though many are fairly technical or invisible to the user. They are,
in order of application:
• CFS2 support added
• Fixed a bug where upon a "clear weather" action, whether user triggered or not, FSUIPC may set "null" weather
from the FS98 input areas even though no FS98 weather control program had yet provided any data for this.
• If the user presses FS2K's Clear Weather button, FSUIPC also clears its memory of any previous FS98-program
weather data, so that FS2K will run its own local weather okay without it being overridden by FS98 weather
from a program now not running.
• When the FSUIPC clear weather hotkey is used, the first time it restores any weather set by an external weather
program (as before), but if it is used a second time without any intervening weather input, it clears down all
previously set external weather too.
• Fixed an error in the thunderstorm option so that when a generated thunderstorm dissipates the accompanying
rain is not also stopped every time. This allows the rain generation option, or external rain control, to continue
normally.
• The type of aircraft being flown (prop or jet, mainly) is now determined more accurately, so that the correct set
of gauge data can be obtained.
• Clouds created in FS2K's weather menu as global, or appearing as part of global weather set from downloading
'real weather' or running an Adventure, are no longer cleared every few minutes, or replaced by cirrus and/or jet
trail layers when these latter options are enabled. This bug was introduced in 1.99, with the extension of the
added cloud layer facility to FS2K's own global weather settings.
• The wind smoothing (part of wind transitions) can be set much more slowly than before: 1 knot or degree every
so many seconds.
• The autopilot corrections for Vertical Speed (going the wrong way), and for the difference in calculation of
target altitude from the altimeter reading, can be enabled or disabled on-the-fly, in the Settings dialogue.
• An error that, in some very unusual circumstances, could cause an "unsmoothed" wind speed and/or direction to
be transiently set into FS2000, before normal smoothing is resumed, is fixed.
• Different FSUIPC.ini files can be used for differing FS2000 requirements, even loading from the same FS2000
installation. This involves using multiple FS2000.CFG files with different filenames, with a section added in
each reading:
[FSUIPC]
ControlName=<name>
Then loading the different FS2000 configurations via:
FS2000.exe /CFG:<filename>.CFG
will allow FSUIPC to identify its correct .INI file, i.e:
<name>.ini
Note that the Log files, when logging is enabled, will also use this <name>, not just FSUIPC.log etc.
• The support for remembering undocked screen positions for FSNav3 is extended to cover FSNav4. However,
when setting this up take care to undock the FSNav4 window in the first place using the Menu it offers, not its
hot keys, or else FSUIPC may become out of step. Once it works it should continue working, but to reset it in
case the window is lost, just delete the [FSNav] section in the FSUIPC.ini file before loading FS2000, and set it
up again.
• Additional engine values are now made available for access by external applications. These are: Oil
Temperature, Oil Quantity and Oil Pressure. Note, however, that some FS2000 aircraft (including the default
B777) create values that may be too high to fit the 16-bit capacity for these in the old FS98 mappings. The
B777's Oil Pressure is the main example. Apparently this problem can also occur with the Fuel Flow values
already supported.
• An error is fixed which would cause the temperature layers in FS2000 to be re-built unnecessarily just because
the surface temperature altitude is changed by the weather control program (this value is used to indicate
METAR station elevation). This mainly prevents the weather logging looking odd, but may also help to prevent
any transient temperature anomalies.
• If an external weather program provides a surface wind with a zero upper altitude, then a figure calculated as
ground plus 2000 feet is assumed.
• When IPC logging is enabled, multiple successive identical reads or writes across the IPC interface are now not
all individually logged. The first one is logged, then, before the next different entry, a count of the repeats is
logged.
• Hydraulic pressure values, scaled using an estimated formula, are now made available to external programs.
• An option to "auto-tune" the ADF radio is available. This is selectable by setting "AutoTuneADF=Yes" in the
.ini file. When FSUIPC detects no NDB signal being received it alternates the fractional part of the ADF
frequency between .0 and .5 every 10 seconds or so. This allows external cockpits built with only whole-number
ADF radio facilities to be used in areas like the U.K. which have many NDB frequencies ending in .5.
• If gusts in upper winds are suppressed, but all gusts are not, then there was an error in FSUIPC with surface
winds extended upwards by the “Extend surface wind” option. The whole wind layer was then treated as an
"upper wind" and so gusts were suppressed. This is now fixed so that gusts are allowed but only in the lower
2000 feet.
• The autopilot vertical speed correction now does not take effect if the target altitude is at or below ground level,
or zero, whichever is the higher.
• Control of the FS2000 lights via original FS98 offsets at 0x280, 0x281 and 0x28C is improved. However, for
full individual control of all FS2000 lights, programmers are recommended to use the individual bits at offset
0xD0C.
• Successive settings of zero surface wind data by the external weather program are ignored, and not allowed to
interfere with other weather data being set from FS2000 sources or via the Advanced Weather Interface.
• The slew control flag offset is now correctly mapped for reading as well as for writing.
• Additional FS2000 switches can be read and controlled through special offsets, as follows:
byte 0x3100 Engine primer (write non-zero to operate, this is a one-shot)
byte 0x3101 Alternator (1 = on, 0 = off)
byte 0x3102 Battery
byte 0x3103 Avionics
byte 0x3104 Fuel pump
byte 0x3105 VOR1 morse ID sound
byte 0x3106 VOR2 morse ID sound
byte 0x3107 ADF morse ID sound
• Additional FS2000 radio and autopilot status indicators (read only access) are provided through a 16 bit word at
another special offset, thus:
word 0x3300 Navaid flags, bits allocated (set when true):
0 = good COM
1 = good NAV1
2 = good NAV2
3 = good ADF
4 = NAV1 has DME
5 = NAV2 has DME
6 = NAV1 is ILS
7 = AP NAV1 radial acquired
8 = AP ILS LOC acquired
9 = AP ILS GS acquired
10-15 reserved
• External inputs to the rudder, aileron and elevator axis offsets via FSUIPC are now subject to a range check, and
scaled down if this range is exceeded. The correct limits are -16383 to +16383. Additionally, axis inputs can be
scaled upwards to meet this extent, if required. To do this set:
AxisCalibration=Yes
With this option, by default some flattening is applied to the values so that the response is not so vigorous near
the centre (0). To calibrate the axes you must move all three controls to their maximum extents on each fresh
load of FS2000. Alternatively, you can set "AxisCalibration=Set". This operates as above, but adds a new
section to the .ini file, thus:
[AxisCalibration]
Rudder=<max>,<slope>
Elevator=<max>,<slope>
Aileron=<max>,<slope>
The <max> values are those which are scaled to 16383, whilst the <slope> values control the amount of
flattening in the centre: from 0 (no flattening) to 100 (maximum flattening. Note that the flatter the centre, the
steeper the sides, so it is always a compromise. The defaults are 50, 40, 40 respectively, for the three axes.
Once this calibration has been done and the section in the ini file, produced (or added manually), there is no
need to re-calibrate on each new FS reload. The "AxisCalibration" parameter resets to "Yes".
Note that the "AxisCalibration=No" setting is equivalent to setting "Yes" and adding the section:
[AxisCalibration]
Rudder=16383,0
Elevator=16383,0
Aileron=16383,0
However, if these values are exceeded during an FS2000 session, the new maxima will replace any values in the
ini file.
• Fuel flow values fixed for gauges using the PPH_SSL value instead of the more usual PPH and GPH values.
• The .ini file options for AnalogMapping, WeatherControl and ControlMapping are now removed. they are no
longer optional. And the other options cannot be changed for the UIPCMAIN window class.
• The DME distance and speed strings, readable at offsets from 0xC29, are now made more consistent in format,
with either:
nn.nsnnnsz (n=decimal, s=space, z=zero)
for each DME distance and speed, or, where the distance is over 99.9nm
nnn.snnnsz
• Prop plane Magneto and Starter control, through the FS98 offsets, now works correctly for FS2000 aircraft and
panels.
• Inputs across the FS98 offsets which need FSUIPC to call routines in FS2000 to trigger changes are now
discarded when those inputs are attempting to set something already set.
• FSUIPC now includes a facility to send keystrokes to FS2000. For this to operate correctly the PC must be using
Windows 98, ME or 2000. The facilities used do not exist in Windows 95 nor, I think, in NT. The feature
operates through new special offsets, as follows:
dword 0x3200 message (WM_KEYDOWN or WM_KEYUP)
dword 0x3204 wParam for the message
dword 0x3208 lParam for the message
All 12 bytes must be written in one IPC write. This feature is used in WideClient version 3.998 and later, when
the [User] parameter "SendKeyPresses=Yes" is included in its .ini file, to relay all non-system (i.e. no Alt key)
key presses it receives to the WideServer host.
• For FS2000 and CFS2, the Settings and Options dialogue is completely revised as a Property Sheet, with
multiple pages. This is primarily so that it can be developed and expanded in the future, but the opportunity has
been taken to include all but the most obscure and unused options and make them run-time configurable. In
particular it now sports a method of setting the optional Hot Keys in a more intuitive way.
• The two word offsets at 0xe78 and 0xe7a, used by FS2000 when controlling visibility through clouds, are now
protected from writes through the IPC interface.
• Additional facilities are added to enable IPC programs to easily detect the version number of FSUIPC, and the
specific Flight Sim it is running within. These are obtained by reading specific locations:
0x3304 WORD Main FSUIPC version, as BCD x 1000: e.g. 0x1998 for 1.998
0x3306 WORD Interim build letter, 0=none, 1-26=a-z: e.g. 0x0004 = 'd'
0x3308 WORD FS version. Currently only one of these:
1 = FS98
2 = FS2000
3 = CFS2
4 = CFS1 (if supported)
5 = Fly! (if ever supported)
0x330A WORD fixed read-only pattern 0xFADE. Use to check that above are valid before using them.
• Fuel pressure values are filled in by FSUIPC in the FS98 offsets. However, at present these values are a direct
copy of the "PSF" (pounds per square foot) values provided by FS2000. I cannot determine what FS98 values
should be: the default FS98 Cessna seems not to get any value set.
• The different window classes (FS2KMAIN, UIPCMAIN, FS98MAIN, MSCFSMAIN) are no longer fully
supported on all platforms. The parameters for these are not automatically included in the FSUIPC.INI file (but
if they are there they will be obeyed except for UIPCMAIN). Only the FS98MAIN window class is fully
supported. FS2KMAIN will operate as a straight-through interface for FS2000 only, and MSCFSMAIN will do
the same for CFS2, but their use is discouraged except for exploratory purposes.
• Minor changes have been made to stop FSUIPC crashing when installed into CFS1. These crashes were due to
all the extra features in FS2000, and even CFS2, which FSUIPC now takes full advantage of. FSUIPC should
now run in CFS1, and even provide useful information to FS98 programs (though there's no weather features at
all), but I cannot go so far as to say that it "supports" CFS1 to any great degree.
• Keystrokes directed to the normal FS98 and FS2000 window ("FS98MAIN") are now relayed to the current FS
window where this is different (as for instance in CFS and CFS2, where the FS window is MSCFSMAIN).
• The taxi wind facility is augmented by an "Automatic" option. When this is enabled, FSUIPC automatically
engages the 1 knot taxi-wind whenever the plane is on the ground, but transitions this (according to the wind
smoothing settings) to the correct wind after take-off.
• The "SetFSNav" facility is now defaulted OFF rather than ON to avoid problems with new versions of FSNav as
they come out.
• The offset mapping across the IPC interface is improved in a number of areas, allowing an even greater degree
of compatibility with FS98 to be achieved. Previously un-obtained values such as Cylinder Head Temperature
are also now obtained, where calculated, and values too large for the FS98 capacity are limited to the maximum
rather than allowed to wrap.
• The storm generator has the surface temperature as another user settable condition, with the default requiring 10
degrees Celsius as the minimum. Values can be set from –99 to +99.
Version 1.99 includes these changes:
• An option is provided to prevent the FS2000 Flight Plan loader re-positioning the aircraft. This option is not
defaulted on, but if required it must be selected by changing a parameter (“PlanLoadNoPosition”) in the
FSUIPC.INI file from “No” to “Yes” and reloading FS2000.
• The jet trails and cirrus cloud layer options are now extended so that they operate even without an external
weather program sending cloud changes. The application and layer changing is infrequent (every 5 minutes or
more) in order to minimise graphic flashing effects, but applies to any weather source except FS2000’s own
local ‘real’ weather. Previously these optional layers were only added when clouds were actually changed by an
external program.
• The jet trails layer, when added, is now only 1 metre thick, to try to prevent odd cloud effects at that level.
Similarly the optional cirrus layer is now 10 metres thick.
• For FS2000 ‘real weather’, if the search for the nearest ICAO station succeeds but the weather file contains no
weather for that station, FSUIPC now assumes that global weather is set, instead of reverting to the nearest
alternative with valid weather. This seems to accord more with what FS2000 is doing.
• The surface temperature altitude is now partially treated as being signed rather than unsigned (as it was in
FS98), so that when this is used to signify the weather reporting station’s elevation to Adventures the arithmetic
for calculating AGL cloud bases works correctly for METAR stations below sea level. There’s a limit: only
values over 65000 metres are assumed to represent values of (x–65536) metres, so this will cope with reporting
stations down to about 1,758 feet below sea level.
• Wind transitioning and smoothing is now performed synchronously with the other FS2000 functions, though it is
still controlled by a separate asynchronous thread. This may relieve some of the pressure on busy memory or
graphics operations so, hopefully, lessening the probability of crashes.
• An optional (but defaulted) patch is applied to SIM1.SIM (the main aircraft simulating part of FS) to correct
some inaccuracy in the autopilot’s altitude holding capability. The inaccuracy occurs when flying Flight Levels
and increases with the difference between the altimeter setting (e.g. the standard pressure setting of 29.92” or
1013mb for Flight Levels) and the actual barometric pressure at sea level (QNH). The correction can be disabled
by setting “PatchSimApAlt=No” in the FSUIPC.INI file.
• The same option (to improve the altitude holds) also corrects the vertical speed setting if it is set to climb when
the aircraft would need to descend, or vice versa. It does this by inverting the sign of the vertical speed setting. It
only does this when altitude acquire/hold is enabled, so that vertical speed control by itself is not affected. The
correction is also not applied if the target altitude is set to a value over 65000 feet—a trick being used by some
panels to provide V/S controlled ascents and descents. ). Note that this improvement is also disabled by setting
“PatchSimApAlt=No” in the FSUIPC.INI file.
• An error is fixed in the Advanced Weather interface. This could, in certain unusual circumstances, have caused
FS2000 to crash or hang. The circumstances were only likely to arise when loading complete weather sets from
WX files using the WeatherSet utility.
• Recent changes designed to fix EGT and other gauges in FS98 prop panels had the side effect of spasmodically
causing FS98 jet panel EGT gauges to stop working. This is more likely when FS98 gauges are used with FS2K
AIR files, and such gauges would not work at all without some action by FSUIPC. In this version the prop panel
fix is made dependent upon the aircraft being a prop, so the previous operation of the jet EGT gauges is restored.
• FS98 global offsets for reading throttle, propeller pitch, mixture and starter switch settings for all four engines
are now mapped into the PANELS data memory to obtain the correct values. Writing to these offsets still
invokes a procedure call into the Panels interface, as writing direct to the correct data area does not, in itself,
make the simulator change the operating values. (This is the only change also needing a corresponding change in
WideFS, so producing WideFS version 3.99).
Version 1.98 includes a number of quite important enhancements and corrections:
• A correction has been made to the weather handling to cope with an unusual FS2000 local weather scenario
which could have made FSUIPC crash FS2000 on rare occasions.
• The correct values for use in FS98 type gauges (and external programs through the IPC interface), when using
an FS2000 AIR file, are now found for Fuel Flow (PPH), EGT and Torque percentage. These changes mainly
apply to props and turboprop types, not really well catered for by previous versions of FSUIPC.
• Additional FS2000 global locations have been found and mapped, including the one which enables the
VOR/ADF tuning to take effect after the frequency has been changed by an application.
• The Jet Trail facility is corrected so that both 1 and 2 okta Cumulus layers provided by the external weather
program are eliminated, thus avoiding spurious jet trail layers at incorrect altitudes. The 1 and 2 okta cumulus
layers are changed to stratus rather than increased to 3 oktas coverage, which would change the ATIS
description from Few to Scattered. In addition the jet trails icing setting is now made zero, avoiding the silly
result of icing occurring just because the aircraft passes through the same altitude as the few jet trails that can be
seen.
• Changes have been made which stop FS crashing on loading on Windows 2000 when Force Feedback joysticks
are installed and the FF is enabled. There is also a possibility that these changes might make FSUIPC work okay
on Windows NT, but this has not been verified.
Version 1.97 allows Adventures to control precipitation using the extra FSUIPC variables, without having the results
overridden by FSUIPC’s semi-random rain and snow generation. The latter is optional, but defaulted on. The only
proviso is that the adventure must refresh or change the precipitation at less than 30 second intervals, otherwise
FSUIPC will assume it has finished and will re-enable its own rain/snow system if it is selected.
Also the optional extra cloud layers for ‘jet trails’ (for FSClouds2000) and cirrus are now generated in a slightly
different way. First, each time there’s a change of altitude in the cloud below, there’s a separate 1 in 5 chance for
each of these two layers that they won’t be added. This adds a little more variety. Also the altitudes are changed.
They are now never placed at less than 27,500 feet (for jet trails) and 33,500 feet (for cirrus). They will be higher
than this if any ‘genuine’ cloud layer approaches these altitudes, and will have some random height differences from
time to time as well.
Version 1.962 includes improvements to provide a better relationship between FS_Meteo (in particular) and
Adventures. These are:
• The barometric pressure provided to adventures is now always the QNH at the aircraft. Differences between it
and the current METAR setting from FS_Meteo (be this for the current zone, or the Destination) are provided in
the Barometric Drift variable. Adding the Drift to the Pressure gives the METAR value for ATIS reports.
• Facilities to provide surface wind gust speeds to adventures are now provided. These speeds are set to the
surface wind “turbulence” variable as there is no provision for gust data. Zero indicates no gusting. FS_Meteo
can set a separate gust speed for destination weather.
Version 1.961 contains further improvements and corrections to the Adventure weather interface, concerning the
settings for cloud base and cover in other weather zones than the current one (for example, to set destination
weather). This is currently specifically suited to version 4.77 (and later) of FS_Meteo.
Version 1.96 includes the following changes:
• Added facilities for semi-random thunderstorm generation, based on wind and cloud values.
• Added a facility to increase the layer boundaries for winds by a fixed amount (default 2000 feet), to cater for
weather control programs which set the upper altitudes too low.
• Added a facility to insert a 1/8th cover cumulus cloud layer, so that Jet trails will be generated by FSClouds
2000. The other layers are prevented from being only 1/8th cover when they are cumulus type.
• Reduced the frequency of random cloud turbulence and icing adjustments, in order to try to reduce the amount
of cloud flickering (caused by FS2000’s strange re-drawing methods). Additionally these parameters are now
not changed each time an external weather program refreshes the cloud layers.
• Random turbulence and icing changes are now made by incrementing and decrementing by one unit each time,
rather than in sudden jumps—except when a generated thunderstorm starts, when cloud turbulence is always
increased to at least 3.
• The minimum visibility value is removed from the Settings Dialogue (though still adjustable in the .ini file). It is
replaced by a split ‘surface visibility’ maximum value: one for “cloudy” weather and one for “clear” weather
(the latter meaning, here, no cloud layer more than 2/8ths cover, so allowing jet trails and wispy bits). This
allows a higher visibility to be set when, perhaps, blue skies (or stars) may be seen.
• Assorted improvements and corrections have been made to the Adventure weather interface, especially to suit
version 4.77 (and later) of FS_Meteo. One of the more important ones to note is the correction of the adventure-
reported surface wind direction to degrees Magnetic rather than True. (This problem wouldn’t have occurred
with previous versions of FS_Meteo).
• The additional IPC access to FS2000 values is extended to provide VOR and ADF station identifier and name
strings. (This also affects FSlook2, included, and the change is also made to WideFS with effect from version
3.975).
• An internal interface for weather reading and writing has been added, for use by WidevieW, so that weather on
separate LAN-connected PCs, all running FS2000, can be efficiently co-ordinated.
• The Outside Air Temperature (OAT) is now updated at offset 0x0E8C, just as in FS98.
Version 1.95 includes the following changes:
• The facility for random rain or snow in FS2000 has been improved to make the starting and stopping
probabilities more realistic.
• The new FS2000 Adventure (APL) variables:
AUTOP_AIRSPEED
AUTOP_MACH
AUTOP_VERTICAL_SPEED
are made to work correctly by additional patching to the ADVDRV.DLL module when FSUIPC is loaded. These
variables can now be read and written from adventures. Some small rules need to be observed, but these are
reasonably logical:
(a) The vertical speed hold needs to be enabled before actually setting the V/S value, as otherwise the latter
seems to get immediately overwritten;
(b) Mach and Airspeed controls are mutually exclusive. The hold for one must be reset before setting the hold
for the other;
(c) Mach and Airspeed holds are not enabled unless the Auto-throttle is armed (very sensible! <G>).
Version 1.94 includes the following changes:
• Corrections to the Engine variables EPR and Engine Vibration for FS98 aircraft, and EGT and Fuel Flow for
FS2000 aircraft (all in FS2000 of course).
• Support for the “combustion” flag for FS2000 aircraft.
• Support of FS98 light control and read-outs for FS2000, covering Nav, Strobe and Landing lights. (Note that the
Nav and Panel lights are actually separately controllable in FS2000, but not in FS98, so the FS98 “Nav” light
control has been made to operate both in FS2000).
• Additional weather options in FS2000, providing facilities for random turbulence and icing in clouds, and
turbulence in winds. Plus facilities to suppress all gusts in all wind layers, and to stop external weather control
programs changing the options when central control in FSUIPC’s dialogue is required.
• Access provided for many FS2000 specific “token variables”, through a new range of offsets (2000–3FFF hex).
Please see the “FSUIPC for Programmers” document inside the separate Other Stuff Zip file. There’s also a
utility program there, FSLOOK, which can be used to examine these values.
Version 1.93 includes many improvements, although these will be mostly invisible to the user. These all relate
specifically to using FSUIPC with FS2000. They are:
• A bug is fixed that could crash FS2000 when an external weather control program tries to set a visibility layer
and the current settings in FS2000 include multiple visibility layers (possibly a remnant from earlier versions of
FSUIPC).
• If FSUIPC.dll is run without an existing INI file it defaulted the maximum surface visibility to 200 (2 miles)
instead of 2000 (20 miles). This problem would be corrected as soon as the options dialogue was used to
“restore defaults”, or just change or confirm the setting (displayed as 2000), but it was disconcerting to say the
least. This bug is corrected in this version.
• The values for EGT, Fuel Flow, Engine Combustion, EPR and Engine Vibration are now all derived more
reliably, thanks to some information in the Microsoft Panels SDK. (However, it should be noted that the EPR, in
particular, is not always available. It seems to depend upon the aircraft. For instance the default 737 seems to
have no EPR calculated that I can find, whilst the 777 does).
• Problems such as infrequent crashes whilst changing aircraft or panels, arising from asynchronously servicing
weather updating messages from WideServer.dll, have been resolved by forcing the actual updates to take place
in the normal FS synchronous time steps.
There are also a number of improvements made to the Advanced Weather Interface (AWI), as follows:
• Overlapping cloud layers supplied through the AWI are removed.
• A visibility upper altitude of zero specified via the AWI is replaced by the default surface layer upper altitude.
This is 6000 feet unless altered in the FSUIPC.INI file.
• The “ExtendMetarMaxVis” facility is applied to visibilities set via the AWI.
• Clouds specified through the AWI with zero coverage are removed.
Version 1.92 contains an important error correction plus some lesser improvements, and one new facility:
• A bug in the new graduated visibility option prevented the visibility being changed by user or external program
action unless the upper visibility altitude was also changed at the same time.
• Additional actions are now taken by FSUIPC to try to prevent an odd visibility ‘flicker’ effect sometimes
occurring when coming out of clouds. It seems that FS2000 tries to assert the “unlimited visibility” value (the
one set in its Display Options) when emerging from clouds, instead of the value specified in the dialogue for the
current altitude. FSUIPC now spots this and corrects it immediately.
• FSUIPC now remembers the undocked position of FSNav’s window. This is primarily of use to FSNav users
with two or more monitors, who like the FSNav map to appear on their second monitor screen. FSNav itself
doesn’t remember this so it otherwise needed setting every time you run FS2000. (Note: this is for FSNav
version 3.00, in FS2000. Whether it would work with other versions, or on FS98, is not known).
• The Log switches in the FSUIPC settings dialogue now behave a little more rationally.
• Some minor changes have been made to the Advanced Weather Interface and how it interacts with weather
specified through the old FS98 interface. These changes also affect WideFS, so WideFS version 3.94 or later
should be used with FSUIPC 1.92.
Version 1.91 has major changes in the way FS2000’s visibility is handled. The facilities to automatically generate
multiple visibility layers are scrapped completely—they didn’t work consistently in any case—in favour of a
dynamic system of ‘graduated’ visibility values. This works more smoothly, more consistently, and applies equally
to externally controlled weather and downloaded real weather.
The only other changes in this release are:
• The “thinness” of thin clouds is now defaulted to 1000 feet (instead of 500 feet), and is made adjustable—but
only in the .INI file, not in the dialogue.
• If the top winds extended by the “extend top wind layer” option are actually the surface winds (as will be the
case for downloaded real weather), then gusts are removed as well, unless upper wind gusts are allowed.
Version 1.90 was a major update with some serious errors corrected and a number of facilities added, all in response
to requests from users. The changes were:
1. Fixed a bug which crashes FS2000 if ever the weather is updated and the ICAO table is not in memory.
This seems a very unusual occurrence, but it did happen once.
2. If the FSUIPC Settings and Options dialogue is used and the Restore defaults, Start New Log or Stop
Logging buttons are used, then thereafter FSUIPC will not process FS2000 weather. Only a restart of
FS2000 fixes this condition, once it occurs. This is fixed in 1.90.
3. The Hot Key facilities now work correctly in Full Screen mode. The problem in previous versions seems
to be a function of the Windows hot key feature. In 1.90 this is not used. Instead the keyboard input to FS
is intercepted. This also means that the Hot Keys only work when FS has the keyboard focus.
4. FSUIPC now uses FS’s own memory allocation system when it needs working memory. This should
reduce or even eliminate the exit crashes experienced occasionally in previous versions.
5. The dialogue for options and settings has been extended to show two buttons for taxi winds—one to turn
them on, and the other to turn them off, with the non-applicable one obviously disabled. This should make
it much clearer what the taxi wind status is at the time.
6. The wind smoothing action (part of wind transitions) is now applied to FS2000’s downloaded real weather
(‘local weather’), smoothing the changes between adjacent METAR reporting stations.
7. The extension of the top layer of winds upwards is now done for all three candidate METAR stations
when the option is enabled and FS2000 downloaded real weather is in use. This should stop the extension
occasionally disappearing, which happens when FSUIPC and FS2000 identify the nearest METAR station
at different times.
8. The external control facilities for FS2000 Left, Right and Parking brakes now work exactly as they did in
FS98, as far as I can tell so far (with limited testing, unfortunately). I still can’t get the Arm Spoilers
feature to work, however.
9. A facility has been added to limit the overall maximum visibility that can be set. This operates on all
weather sources. If multiple visibility layers are specified, the graduation across layers is from the set (or
maximum) surface visibility at the lowest layer, up to the overall maximum at the highest layer.
10. The surface wind can be limited to a specified speed in knots. This applies to weather from any source.
11. To assist in getting better performance on slower machines, facilities have been added to restrict the
number of cloud layers to one, at most, and (independently) to limit the thickness of any layer to 500 feet
at the most, not allowing for variations in base and top.
12. Facilities have been added to the Advanced Weather Interface to allow an external weather program to
provide specific weather data to be supplied to adventures, and not to the simulator. This is to allow ATIS
reports to be generated correctly even whilst the weather program is transitioning the weather, or possibly
simulating weather for a different METAR station to the one at which the ATIS is requested. [Note that at
the time of Release these facilities had not been thoroughly tested].
Version 1.81 was a quick bug-fix for 1.80, correcting the one inevitable serious bug reported immediately after
Release but never picked up in hours upon hours of testing beforehand! (This is a variety of Murphy’s famous law, I
believe). This particular bug occurs if your are running with Wind Transitions disabled (which most unfortunately is
the default!) or you happen to be using downloaded ‘real weather’ (when wind transitions aren’t operating in any
case) and you then visit the new FSUIPC options dialogue. After this, one of the main routine’s in FSUIPC gets
locked out in such a way that incoming weather changes (from external weather control programs) are never again
processed, and neither are the FS98 global locations for weather data filled in.
Version 1.80 was a major release with a number of fixes and new features, as follows:
All of the interesting weather control options, and also the logging facilities, can now be accessed and changed
‘on the fly’ through a new dialogue window, accessed via the Modules menu then ‘FSUIPC’ (key ALT, M
then F). In FS98 this merely gives version information.
1. The wind transitions feature, when enabled, now operates on all weather types except downloaded local
weather (where it wouldn’t be of much use anyway, as there’s no upper winds in that mode). Before this
version wind transitions only applied to weather arriving from an external weather control program.
2. Flights saved when wind transitions are in effect are now saved with all the original wind layers, not the
single wind layer in effect because of the way transitions are handled. This swapping action is done
invisibly without actually affecting the simulated weather in force.
3. The top-most FS2000 wind layer is now optionally extended to operate up to 100000 feet. This is
primarily to assist in the downloaded ‘local weather’ mode, where there is only a thin surface wind layer
and no winds above.
4. In FS2000, multiple visibility layers can now be applied to all weather sources, with an adjustable number
of visibility layers from 1 to 10. Combining this with a limited maximum surface visibility gives better
frame rates at lower altitudes without compromising distance views at cruise levels.
5. The automatic cirrus layer generation can now optionally be forced to operate even if the weather control
program in use disables that option.
6. A weakness in the way some engine values were obtained for external programs to read could give rise to
occasional FS2000 crashes when changing aircraft. This has been fixed.
7. Several bugs have been fixed in the Advanced Weather Interface. As only my own WEATHERSET
program currently uses this, I won’t go into details here. But use the supplied new WEATHERSET with
this version of FSUIPC.
Version 1.74 was a limited release with two small changes:
1. Changes to the logging, simply to prevent redundant or continuous multiple log entries for WeatherOption
changes and METAR visibility overrides, especially noticeable when FSUIPC is used with FS_Meteo.
2. Fixes to the “AutoClearWeather” facility so that if FS2000 downloaded weather is in operation and a
Weather Control program is then started, the local weather is not only cleared, as before, but the initially
supplied weather from the weather program is correctly applied. Before this change, the weather would be
cleared correctly but the weather program’s settings would be lost until the next refresh, whether user
forced or by time or position changes.
Version 1.71 was produced very quickly after 1.70 to correct one serious problem reported in 1.60 just after the
Release of 1.70! The problem was that the “AutoClearWeather” option (which defaults on) was so enthusiastic that it
also reset downloaded weather if the FS2000 ‘real weather’ engine even momentarily ventured outside an ICAO
reporting station area and so temporarily engage ‘global’ weather.
Version 1.70 includes some relatively minor yet probably important changes, and is released simultaneously with an
update to the WideFS package (now at version 3.70). Here is a summary of the changes in FSUIPC:
1. Ridiculous wind speeds sent to FS2000 (using the FS98 offsets) are now trapped and either ignored or
limited. Parameters to control the actual limits are provided. This feature is a stop-gap measure to
compensate for the occasional corruption of wind data supplied by SquawkBox.
2. The visibility set by FS98-compatible weather control programs is now (optionally) extended when the
value supplied suggests that the program has read a METAR and interpreted the maximum visibility value
literally. Metric METARs indicate 9999 metres (6.2 miles) or more by the value “9999”, whilst the U.S.
METARs indicate 10 miles or more by the value “10SM”. Really the weather control programs should
adjust the value to some figure above this, most of the time at least. However, since they often don’t
FSUIPC now contains the facility and this is enabled by default. Weather control programs which do work
this out can turn the option off automatically.
3. An error in the weather logging which caused FS98 to crash is fixed.
4. The Fuel Flow (PPH) value found for FS2000 aircraft is now copied to additional FS98 locations to assist
those programs, such as Enrico Schiratti’s PFD.EXE, to show it correctly. The value is in doubt, but it is
as close as I can get at present. The previously updated locations apparently only really assisted the gauge
token variable interface, as used in EPICINFO.DLL.
5. Taxi winds are now only applicable to the lowest wind layer. Attempts to switch taxi winds whilst the
aircraft is effectively in some other wind layer are ignored, and will generate a “beep” in warning. Also the
use of the taxi wind hot key is logged, if logging is in operation at the time.
6. An additional hot key facility is provided, to stop logging if it is enabled.
Version 1.60 was the first major release for a while. These were the main changes:
1. Approximately once a second FSUIPC checks for the "stuck visibility" problem. I've determined that this
is caused by WEATHER.DLL somehow failing to update its effective visibility after passing through
clouds. The effective visibility is actually stored in global offset 0xE78, with a target value in 0xE7A.
FSUIPC checks whether the aircraft is between clouds, allowing for deviation both top and bottom. It does
this for ALL cloud layers, not only those specifiable through the FS98 interface. If it is, and it finds that
the effective visibility is below the target, and it stays this way for 3 seconds, then it halves the difference:
i.e. it gets the 0xE78 value closer to the 0xE7A value each time. So it might actually take several seconds
for the visibility to gradually clear. This approximates to what WEATHER.DLL usually does (and should
be doing, if it didn't get 'stuck').
This action can be turned off by "ApplyVisFix=No" in the .ini file. This is for when MS fix it! <G>
2. An "AutoClearWeather" facility, defaulting to "Yes", will automatically operate the "Clear All Weather"
function in FS2000 if local weather is in force and:
(a) An FS98 weather control program changes the weather, or
(b) The "force weather" hot key is used, or
(c) A "Clear All" command is received on the Advanced Weather Interface.
3. A "MaximumVisibility" parameter is added. This in not effective unless it is greater than the
MinimumVisibility parameter. And both limits are now applied to ALL weathers, no matter how set. In
other words, if you set a visibility of 30 miles in the dialogues, but the maximum is set to 10, you will see
the visibility change to 30 only for a short time, before it is "fixed" by FSUIPC. (This facility was
requested by folks with slower machines who wanted the ability to limit the maximum visibility below the
60 miles allowed in FS2000's display options).
4. Surface wind data is now correctly supplied to Adventures even when WindTransitions are enabled. The
other wind layers are still not accessible to adventures when transitioning is enabled.
5. The surface temperature altitude is either set to the ground level, or to the elevation of the current METAR
reporting station when real weather is being used. This enables adventures to calculate the correct AGL for
cloud bases for use in ATIS reports. The same facility is extended to external weather control programs
(i.e. they are invited to set the value at offset 0xF40 to the ground elevation of the METAR reporting
station). Adventure writers should then use TEMPERATURE_SURFACE_ALT instead of ground altitude
when computing cloud base AGLs.
6. When using downloaded real weather, FSUIPC now manages to identify the correct reporting METAR
station most of the time. It also now finds its ICAO (which is logged if LogWeather=Yes), so it reports the
correct data. If running, WEATHERSET will display the ICAO in its title bar.
7. The extra thread created by FSUIPC to operate some of its functions, such as the wind transitioning, is
now closed forcibly when FS2000 terminates in an attempt to stop the FS2000 closing crashes reported by
some folk.
8. An error has been corrected in the wind transitioning facility which would cause negative wind speeds to
be set at aircraft altitudes below sea level, such as with a small aircraft at Schiphol. The results could be
disastrous for those aircraft!
9. The Advanced Weather Interface supports an extra command, to request the details of the METAR
reporting station responsible for the current “local weather”, when applicable.
10. WEATHERSET version 1.40 accompanying this release includes many extra facilities including the
display of the local weather ICAO code, and the ability to find local weather data in a saved .WX file.
Version 1.57 was a minor release with the only change being to one of the additional adventure variables, added for
weather details. The original SYSVAR_B5 status indication is now a fixed constant, intended to be used in APLC32-
coded adventures to check that FSUIPC is loaded before any access to the new variables is actually used. Martin
Smith’s APLC32 compiler, version 1.32, is released simultaneously and supports the additional variables with the
new names listed later in this document.
The only Version 1.56 change was that, at last, I think I’ve cracked the occasional problems in detecting Local
(downloaded) weather settings correctly. This version appears, from all tests so far, to correctly detect when local
rather than global weather is in force, and updates the appropriate weather data for applications (and adventures) to
match.
Version 1.55 changes were:
1. Added the facility (defaulted on) to automatically apply a run-time patch to the variable table in the
FS2000 adventure interpreter (ADVDRV.DLL) so that the FS98-compatible weather information is again
readable in adventures. For more details see the section “Weather Data for Adventures” towards the end of
this document.
2. Fixed a bug in the logging of “Reads” on the advanced weather interface. In error all commands (offsets)
were logged wrongly—without the weather type digit or altitude value.
Version 1.50 changes were:
1. Fixed: a problem which caused FS2000 to crash on exit if the DLL was positioned in the Modules folder
after certain other FS modules and the “WindTransitions” option was not enabled.
2. FSUIPC now only generates one visibility layer by default—an option is provided, instead, to generate the
three as in previous releases. This change has been done just in case the multiple layers have anything to do
with the intermittent stuck low visibility bug.
3. For the same reason, the base altitude for the lowest visibility layer is now set to 0.45 metres as it appears
to be by FS2000’s own weather settings, rather than 0 metres which seems more logical.
4. The FS98 “pause” flag location at offset 0264 are mapped to 0268 rather than 026C, where they were
originally thought to be.
5. Weather data received through the Advanced Weather interface is now logged in full when the weather
logging option is enabled.
6. Cloud turbulence settings (range 0-4) are now mapped correctly from the FS98 values.
WeatherSet version 1.1 is supplied with this release. It now includes facilities to read and save FS2000’s own
.WX files, and can be used off-line from FS2000 to read and display .WSD and .WX files. See the separate .txt
file describing WeatherSet functions. WideFS users can use WeatherSet on a separate PC to FS2000, to avoid
loss of keyboard focus (and hence sound) while accessing it.
Version 1.40 had many minor improvements, and small bug corrections (including handling of negative ground
altitudes), but mainly it includes the first Beta test version of the promised Advanced Weather interface for FS2000.
Version 3.40 of WideFS provides Network support for this interface at the same time, provided that WideFS and
FSUIPC are used together.
In order to test the Advanced Weather interface, I did need to write one small application, “WeatherSet”, which will
display, modify, load and save weather data, and even print it out. This is enclosed for those who wish to have a play
with FS2000 weather in interesting ways. Brief documentation for WeatherSet is enclosed in this package.
Version 1.30 included the following improvements and new facilities for FS2000 only:
1. The weather processing is now capable of finding and reporting on downloaded ‘real weather’, or “Local
Weather”. FSUIPC does not try to impose a weather control program’s requirements when ‘local weather’ is
selected, but it will track the application’s weather changes. When the global weather is again selected (by
clicking the “Clear All weather” button), the weather control program’s requirements are automatically
instated. (If you really do want to clear all weather, wait for it to settle, then do the Clear All Weather again).
2. A “Wind Smoothness” facility is added to prevent sudden swings in wind direction or speed when a weather
control program changes METAR stations or makes some other change. This facility works in conjunction
with external weather control programs and the optional Wind Transitions facility—see the Options section
later.
3. An option to set a minimum visibility is added. This is only effective for external weather control, and is
simply intended to prevent the visibility being set below the level at which an FS2000 bug seems to take over
and prevent the visibility being raised again until FS2000 is reloaded. See the Options section for more
details.
4. The current surface wind speed and direction are provided in new locations for programs needing this (e.g.
for ATIS reports) even when the Wind transitions option is being used and the currently set ‘surface wind’ is
the very thick single layer used for wind control. See the Addendum for Application Programmers for more
details.
5. Provision is made for external control over many of the FSUIPC.INI file weather options, so that application
programs needing specific options can set and clear them directly without having to rewrite the INI file.
6. Many assorted minor improvements and bug fixes have also been incorporated into this release. These
include corrected gusts, taxi wind facilities, ‘de-bouncing’ of Hot Keys, and zero ambient wind reports above
the highest set layer.
Version 1.26 was a limited test release with some bugs fixed in the setting of weather data in the FS98 ‘current
weather’ area, for applications to read. In particular: the cloud data was previously incomplete (being one layer short
unless at least three FS2000 layers were set); the day/night temperature variation wasn’t set; and the surface wind
layer’s upper altitude was wrong (AMSL instead of AGL) if the winds were only set manually, not by an external
weather control program.
Version 1.25 was the second general release, and incorporates a very large number of improvements, mainly to the
weather handling in FS2000. Particularly important changes include:
1. Correction to the temperature layers to abide by the external program’s requests. Previously a fixed set
of upper temperature layers was inserted.
2. Correction to the surface wind layer for magnetic deviation. FS98 expects this layer’s direction in
degrees magnetic, but FS2000 expects it in degrees true. FSUIPC now hides this difference so the same
winds result from the same weather inputs.
3. Adjustment of the surface wind layer’s reported upper altitude to make this appear the same as in FS98.
In FS2000 the upper altitude is fixed and reported AMSL, whilst in FS98 it is reported AGL—with the
surface wind actually following the ground contours. I think that, with the higher resolution of ground
elevations in FS2000 this has been abandoned for performance reasons, so FSUIPC has to continually
adjust the read-out, converting the fixed AMSL value to an AGL value that varies according to the
ground elevation.
4. Gusts in FS2000 upper winds are now suppressed by default (though there is an option to let them
through).
5. The FS2000 wind shear setting is now set to “sharp” by default, as the normal minimum setting, which
should give a smooth transition, appears broken and sometimes generates wildly inappropriate
transitional winds. With the setting on “sharp” the transition abides by the control program’s requests.
6. Facilities added with specific “hot key” combinations, which are used for some degree of control whilst
flying FS2000. One such can be used to force the FS2000 weather back to the most recent state
supplied by an external weather program (“ForceWeatherKey”), and another to toggle the surface layer
wind speeds back and forth between their requested setting and just 1 knot (with no gusts). This latter
(“ToggleTaxiWindkey”) is useful when the surface wind prevents taxiing through excessive weather-
vaning. The speed of 1 knot is retained to ensure the selected runway doesn’t change, and other
programs like FSTraffic continue using the correct runway.
7. Some additional FS98 locations are now mapped onto their equivalent FS2000 locations, and optional
facilities are provided for driving some other FS controls through the “trigger event” interface for
Panels. See the “ControlMapping” option below.
8. All the input mapping which is done through the panels “trigger event” facility is now done only on the
basis of received inputs from client programs, not by monitoring changes to the written locations. This
prevents odd feedback type effects, such as possible stuck throttles.
9. The parameters provided in the FSUIPC.INI file are extended by a new [General] section through
which a number of facilities can be turned on and off independently of the “Class Name” being used.
Most of these are to do with weather generation and interpretation, but for program developers and
debugging there are logging facilities as well. These are all described in later sections of this document.
10. Additional facilities for FS2000 cloud control, dew point and rain or snow are provided for weather
control programs, as an interim step pending a full FS2000 weather control interface. These are
documented as an Addendum for Programmers.
11. An FS2000 option is provided to enable the winds to be transitioned slowly across wind layer
boundaries. This replaces the currently non-functioning slow transitions offered by FS2000, but it is not
enabled by default since some FS98 programs may not expect such behaviour.
Version 1.10 was the first general release. Minor modifications have been incorporated since 1.04: in particular the
ability to install itself into FS98 or FS2000 in such as way that it can still provide its services even if there are other
IPC modules also installed.
Version 1.04 was the first restricted Beta release version. There were a very few isolated copies of versions 1.01–
1.03. All of these earlier versions should be destroyed.