Fsuipc 4.974 Changes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

FSUIPC 4.974 changes since 4.

96
1. The memory check facility (OOMcheck) is now performed in a thread separate to the main FS
thread. Apparently before this it was causing a longer frame at regular intervals (10 seconds by
default).
This was modified in version 4.962 so that it terminated properly when the session closes. In
4.961 it might sometimes be engaged in examining the process memory when, in fact, most of it
was closed and freed, causing crashes stating “BEX” and “FSUIPC4_Unloaded”.
Note that a bug in this 4.961 change which made the “Quiet” option for the check act the
same as turning it off was fixed in 4.962a.
2. This version supports Prepar3D version 3.4 with HotFix 3 applied (version 3.4.22.19868).
3. The “Starting everything now” phase of FSUIPC initialisation is now delayed, especially on P3D,
to allow more time for the sim to finish loading everything. Sometimes there was such a long
gap that FSUIPC was seeing extended SimConnect timeouts, and resorted to closing and
reconnecting to SimConnect. This resulted in an even longer initialisation period!
4. The processor core affinity can now be set in the FSUIPC4.INI [General] section for FSUIP4
general threads, and separately for Lua plug-in threads. The parameters are:
ThreadAffinityMask=0
LuaAffinityMask=0
The value 0, defaulted, leaves the affinities the same as the process (ie the flight simulator
affinity). Normal FSUIPC activities have to run in the main simulator thread in any case, so the
mask set here does not affect all of what FSUIPC does.
The value can be given in decimal, or, preceded by an ‘x’, in hexadecimal, and the previous
value and the new value are logged in both cases.
The Lua affinity mask applies to ALL Lua plug-ins. It would be possibly to allow each to set its
own mask, via a new function, but I really don’t think it is worth it. Those of different opinion on
this can say so on my Support Forum.
IMPORTANT: You cannot use this facility to set core affinities which do not include at least are
one core which is allowed by the affinity setting for the enclosing process. Even then, it is not
clear whether Windows will ever schedule threads on these different cores. (Maybe someone
could devise a test for this to check and let me know?)
5. A bug which can cause the sim to crash if an application tries to change the Logging options by
writing to offset 3400 is fixed. (The crash was a result of a long-standing bug in which unknown
data was being overwritten. It was just a recent re-build which moved stuff around and
happened to change unknown corruption into an actual crash).
6. Offsets are now mapped for the PMDG 747 “Queen of the Skies II” add-on. A document listing
them is installed in the FSUIPC documents subfolder.
7. The logging of the actions FSUIPC is taking whilst the sim is closing down at the end of the
session is now more extensive and defaulted, rather than being an optional debugging more
option.
8. An error in the Lua plug-in ipc.exit and os.exit functions, which caused it to kill its thread rather
than close it normally, is fixed.
9. A new parameter is added to the options controlling the Traffic Limiter facility. This allows you to
set a separate preference for deleting excess traffic at your planned airports of Departure and
Arrival. (Sorry, not the Alternate as well at present, but I might consider adding this if folks do
actually use it enough and the facility appears to be useful).
The new parameter, in the [Traffic Limiter] section of the FSUIPC4.INI file is
PlannedAirportsPreference=50
More details are provided in the final Appendix to the current FSUIPC4 User Guide.
10. Another new parameter for the Limiter allows more traffic than the limit implies when performace
is good. This is
TargetFrameRate=0
The default value of 0 turns this off. Otherwise it provides the desired minimum frame rate,
below which traffic will be deleted to meet the TrafficLimit figure. When the frame rate is higher
the limit is ignored. Note that the frame rate used is the instantaneous one at the time, not an
average, so glitches and stutters will usually cause deletions again.
11. All the Traffic Limiter parameters can be temporarily altered via newly allocated FSUIPC offsets.
Such changes do not get saved in the user’s INI file, so only last till changed again, or the user
changes them directly, or till the next time the sim is restarted.
The offsets are those in the range 86E0 to 86E6 inclusive, and are covered by the updated
Offsets list installed with this release.
12. The 4.963 improved joystick scanning performed during FSUIPC initialisation, or later if devices
are added or removed, had to be withdrawn. The method, using only legitimate Windows
DirectInput functions, ran aground in Windows 10 with hangs and crashes within the
EnumDevices function itself, which was made for the job and worked so well in Windows 7.
Another method has now been implemented using only techniques already used successfully in
the past, all via Registry access instead of DirectInput. (Improved again in 4.964e and then f).
13. A very long-standing error in the “Throttle Sync” hot key option is fixed. This original bug caused
axis Reversal (“REV” in calibration) to be ignored whilst syncing throttles (and also pitch control
and mixture if the Miscellaneous tab option was set to sync those too).
This is greatly improved in 4.964d, operating now in both FS control assignment mode as well
as ‘Direct to FSUIPC’ mode, and preventing jumps in Throttle 1 position when sync is
disengaged.
14. A minor error in the way the loading of new Aircraft files is detected in fixed. In 4.963 this
adversely affected a new precaution added to prevent PANELS.DLL functions being accessed
before that module was initialised -- apparently, on later P3D releases, this doesn’t always occur
early enough during initialisation. The result of this error was that FSUIPC may not have been
populating some aircraft variable offsets and, worse, not enabling WideServer to perform at the
normal level relating to the frame rate.
15. With P3D version 3 (only) the P3D licence type (Academic, Professional, or Professional Plus)
is now logged when FSUIPC has normal connection with SimConnect.
16. The AutoSave “AlsoSave” facility in FSUIPC can now be used to save a named flight once only,
immediately. You need to check the option, enter a name, and set the interval to 0. As soon as
you OK out of the options the flight will be saved and the option switched back off.
17. Fixed an obscure bug which caused an access violation to be logged by FSUIPC when a Lua
plug-in running on a WideFS client used the ipc.display facilities.
18. Improved the wording on the startup warning about duplicate copies of FSUIPC running by
pointing out that this is probably due to a previous sim session not closing down properly, and to
check for this via Task manager.
19. The distances to the nearest AI aircraft to the user aircraft are provided, rounded to the nearest
nautical mile, in two offsets, one for ground and one for airborne:
736C 2 bytes Unsigned 16-bit word giving the distance in nm to the nearest ground AI.
736E 2 bytes Unsigned 16-bit word giving the distance in nm to the nearest airborne AI.

In both cases if there are no such aircraft these offsets will be set to 65535 (0Xffff).

A new version of TrafficLook (1.56) which takes advantage of these values is available in the
Useful Additional Programs section of the Download Links subforum. This will display the
distance in the title bar.
20. The version of SimConnectP3D3.DLL installed with 4.965 was not compatible with all earlier
versions of P3D3 – probably anything earlier than P3D3.4. This was a shock and surprise as the
SimConnect libraries are normally backward compatible within the major versions.
The version now installed is compiled against P3D3.2.2, so is certainly okay with anything from
that one to the latest 3.4. I’m afraid I can’t guarantee it for 3.0 or 3.1 releases as I do not have
them now.
21. The [Programs] Run parameters are fixed for complex requirements where there’s not only a
program filepath containing spaces, but then one or more command-line parameters.
The correct format to use, which will now work with any examples, is this one:
“full filepath to the program” command line parameters
In other words, “” around the filepath, and NOT around the whole thing/
The “” can be omitted if there are no spaces in the filepath, but not otherwise as then the path
used is ambiguous and Windows might try loading other programs, determined by adding things
like .EXE to every part ended by a space.
22. Since the 4.966c update, problems with joystick recognitions, caused by duplicated GUIDs
which were generated in error by previous versions, are fixed automatically.
23. An extra logging facility has been added to give a low level record of the actual returns from
specified joystick devices. This is enabled by listing the joystick numbers in an INI file [General]
section parameter as follows:
MonitorJoys=n,n,n …
Where the list gives the joystick numbers to be monitored. Note that this must be the numbers
currently assigned not the letters. See your [JoyNames] section for the relationship.
24. The “starting everything now ..” event, as shown in the FSUIPC4.LOG file, now occurs just after
FSX or P3D are really ready to fly – not earlier as was possible, and in P3D quite likely, during
the scenery object or traffic loading sequences. This precaution should avoid some potential
problems.
25. The TCAS traffic data range for ground traffic, when the user aircraft is in the air, now initially
defaults to the same range as for the airborne traffic. It remains at 3nm when the user aircraft is
on the ground to avoid affecting the performance of programs which wish to use the information
to handle taxiing or runway conflicts.
Note that changing the TCAS range in the FSUIPC options does only still affect the airborne
traffic. The parameter in the INI file maintains both values in the same parameter, in the form
“n,n” (air,ground) so that they can be manually set there before loading in any case.
26. A serious error, introduced recently, whereby FSUIPC would not read AI traffic data at all on
FSX-MS (only) if “NewDeleteVehiclesForAES=Yes”, is fixed in this release.
27. An inconsistency in the way offset 3122 was being handled for setting COM1 or COM2 transmit
selection is fixed.
28. The entire joystick scanning and recognition system used in FSUIPC has been entirely re-
written. The original was simple, but has grown more and more complex to analyse when trying
to deal with assorted problems and differences in the way Windows and device drivers affect the
HID interface registration, the Registry, and the DirectInput returns.
The new system reads three sources independently – HID joystick device scanning recognition
(like my little program ‘HidScanner’), The Registry entries for DirectInput devices, and finally the
user assignments in [JoyNames], in the INI file.
All three contribute data to a table which is then analysed to arrive at a sensible assignment
which works. This process is saved, for each stage, in a simple spreadsheet type file called
FSUIPC4.JoyScan.csv
This file is needed, along with the INI and LOG files, all from the Modules folder, if there are any
problems or questions on joystick axis or button assignment. An example JoyScan file
spreadsheet in PDF form is included in this release ZIP. It includes two prototyping Bodnar
BU0836A boards with no connections as yet]
[This modification was buggy in 4.967 but is fixed in 4.968]
29. Fixed a bug which stopped offset 3102 from operating the Master Battery switch when written
to.
30. Added offset 3540, a one byte offset which indicates whether the Latitude Longitude Freeze
option is active (1 if so, 0 if not). You can also write 1 or 0 to this byte in order to turn it on or off.
31. A further problem with joystick Scanning has been fixed, and where the Joystick Scan detects
multiple device possibilities (GUIDs) for the same Vendor/Product IDs, but none of the
alternatives meet all of the requirements for input in the tests carried out via DirectInput, an
attempt will be made still to acquire them all, but label them “as alternative possibilities” within
the JoyScan “Device Acquired” list in the Log. [This was improved further in 4.969j and 4.70]
32. Added a 30 second leeway on timing out SimConnect and Traffic data and reconnecting when
AutoSave saves a flight, or SimConnect notifies FSUIPC of a flight being saved.
Hopefully this might allow AutoSave to be used with AddOn aircraft such as those from PMDG,
which freeze the sim whilst collecting aircraft systems data for their save files.
33. Additional offsets are provided for additional weather information provided by the recent
versions of Active Sky. These are:
8638 Ambient turbulence at aircraft (0-1000), 32-bit float
863C Exported ambient visibility (metres), 32-bit float (-ve if not supported)
8640 Exported precipitation type (0 none, 1 rain, 2 snow, 3 hail), 8-bit integer (Byte)
8641 Exported precipitation rate (0-4), 8-bit integer (Byte)
8642 In cloud flag (non-zero if aircraft is in cloud), Byte.
34. Details of the nearest airborne and nearest ground AI aircraft are provided in offsets as follows:
9690 Nearest ground aircraft data (24 bytes, see below)
96A8 Nearest airborne aircraft data (24 bytes, see below)
Both areas contain data in the following format:
Byte Size Content

0 4 32-bit integer identifying the aircraft (FSUIPC type ID)


4 4 Latitude as 32-bit float
8 4 Longitude as 32-bit float
12 4 Altitude as 32-bit float
16 2 Heading as 16-bit integer
18 2 Ground speed as 16-bit integer
20 2 Vertical speed as 16-bit integer
22 2 COM1 frequency (1dd.dd where 0xdddd is the value here)

35. The Lua library facilities are extended for HID devices, with two new functions:
com.connected: to test if the HID device is currently connected or not.
event.comconnect: to call a function if the HID device is disconnected or re-connected.
For details please see the updated Lua library document (enclosed with the 4.971b interim
release).
The updated documentation also includes two functions which have always been included, but
strangely never got into the document, These are:
com.readfeature: reads the feature bytes from a HID device.
com.readreport: reads a report from a HID device.

36. A fix for correcting the loaded Plan filepath when it doesn’t correctly end with .PLN was buggy
when implemented, but is corrected in 4.972.
37. The “sync” facility in the multiple throttle calibration tab produced incorrect results when the No
Reverse Zone option was selected and the “UseAxisControlsForNRZ” option was set to “Yes”.
This is an original error dating back through all versions which has only recently been reported
and now fixed.
38. The “realism” value provided in offset 0C44 was only ever 0 or 1, when it should have been a
percent value 0-100. This was due to a misinterpretation of the SimConnect “Realism” SimVar
and is now fixed.
39. Inconsistencies in the display of a monitored value in the sim’s title bar are fixed.
40. Allowance for a later version of FSX-SE has been included in version 4.973.
41. Two very obscure but very old bugs have been fixed, one which could in very rare
circumstances affect WideFS performance, and the other related to floods of requests arriving
from FSUIPC client applications overflowing a queue so corrupting the following variable.
Neither of these bugs have apparently affected FSUIPC operation at all (or at least not
noticeably) over the last 12 years, but other recent modifications and tests have revealed them.

You might also like