Desktop application for testing Henkie's F-16 ADI Support Board with a real ARU-42/A Attitude Director Indicator instrument.
Desktop application for testing Analog Devices AD536x and AD537x digital-to-analog converter evaluation boards [providing +/-10VDC analog outputs in order to drive military-grade simulated flight instruments]. Demonstrates the use of the AnalogDevices
class library.
Desktop application providing a semi-realistic simulation of the Raytheon F-16 Center Pedestal Display for use with Falcon BMS.
Desktop application for viewing Falcon .key files. Demonstrates the use of the F4KeyFile
library.
Desktop client-server application that mirrors the contents of Falcon's shared memory areas to one or more remote networked PCs.
Desktop application that enables recording and playback of Falcon shared memory data.
Desktop application that displays the contents of Falcon's shared memory areas.
Desktop application for displaying the contents of Falcon BMS' "Textures Shared Memory" area. Demonstrates the use of the F4TexSharedMem
library.
End user client/server application that allows extracting various flight instruments from Falcon.
Desktop application for remapping analog and digital inputs from DirectInput devices, BetaInnovations non-Joystick-class HID devices, and PHCC devices using PPJoy virtual joystick drivers.
End-user desktop application providing basic testing capabilities for the PHCC motherboard and attached peripherals. Demonstrates the use of the PHCC
class library.
End-user desktop application for testing Henkie's Digital-to-Synchro (SDI) interface card. Demonstrates the use of the SDI
class library.
End-user command-line (console) application which provides the ability to edit Falcon's AI comms databases (falcon.TLK, commFile.bin, fragFile.bin, and evalFile.bin files).
- Supports decompressing and extracting any/all of the individual compressed audio files from within the .TLK file, to ordinary .WAV files or compressed .LH or .SPX files.
- Supports exporting the commFile.bin, fragFile.bin, and evalFile.bin files to plain colon-delimited text files, which can then be edited in any text editor or spreadsheet.
- Supports regenerating the commFile.bin, fragFile.bin, and evalFile.bin files from these plain text files.
- Supports creating or regenerating a .TLK file from a set of .WAV, .LH, or .SPX files and updating individual entries in an existing .TLK file
To clone the lightningstools
repository and install all required prerequisites in a single command, run the following command from an administrative command prompt:
bitsadmin /transfer LightningsToolsBootstrap /dynamic /download /priority HIGH "https://raw.githubusercontent.com/lightningviper/lightningstools/master/src/MasterBuild/up.bat" "%temp%\up.bat" & "%temp%\up.bat"
The above command will clone the repository to a local folder, \lightningstools
, located in the root of the current drive where the above command was run from (typically, this folder will be located at c:\lightningstools
).
The following prerequisites will be installed:
- Git for Windows
- Visual Studio 2019 Community Edition
- Visual Studio Installer Project Add-In
- Microsoft Code Analysis 2019 Add-In
- .NET Framework 4.7.2 (required by all projects)
- Command-line Build tools
- Windows 10 SDK version 10.0.10586.0
- TortoiseGit
The above command will also restore all required NuGet packages for all projects and solutions in the repository.
From an administrative command prompt, run the following command:
\lightningstools\src\MasterBuild\Build.bat <path to solution>
Replace <path to solution>
with the path to the particular .sln
of the solution you want to build.
For example, to build MFD Extractor, execute:
\lightningstools\src\MasterBuild\Build.bat \lightningstools\src\MFDExtractor\MFDExtractor.sln
From an administrative command prompt, run the following command:
\lightningstools\src\MasterBuild\Build.bat
Build outputs will typically be located underneath the solution folder for the specific solution(s) you are building, in
<solution folder>\bin\<processor architecture>\Debug
and
<solution folder>\bin\<processor architecture>\Release
AnalogDevices
C# class library that provides programmatic control over the Analog Devices AD536x and AD537x digital-to-analog converter evaluation boards [providing +/-10VDC analog outputs in order to drive military-grade simulated flight instruments]
BIUSBWrapper
C# class library which wraps the native (C++) BetaInnovations USB SDK, allowing the Beta Innovations USB SDK to be called easily from within managed (.NET) code.
Common
C# class libraries containing functionality which is utilized across various other libraries and applications in this repository.
Namespaces:
- Common.Application
- Common.Collections
- Common.Compression
- Common.Drawing
- Common.Exceptions
- Common.Generic
- Common.HardwareSupport
- Common.IO
- Common.Imaging
- Common.InputSupport
- Common.InputSupport.BetaInnovations
- Common.InputSupport.DirectInput
- Common.InputSupport.Phcc
- Common.MacroProgramming
- Common.Math
- Common.Networking
- Common.Reflection
- Common.Serialization
- Common.SimSupport
- Common.Statistics
- Common.Strings
- Common.ThirdParty
- Common.Threading
- Common.UI
- Common.Win32
F16CPD
Desktop application providing a semi-realistic simulation of the Raytheon F-16 Center Pedestal Display for use with Falcon BMS.
F4KeyFile
C# class library which supports loading, parsing, modifying, saving, and generating Falcon .key files.
F4KeyFileViewer
Desktop application for viewing Falcon .key files. Demonstrates the use of the F4KeyFile library.
F4ResourceFileEditor
Desktop application for viewing the contents of Falcon resource files. Originally intended as an editor, it is a currently a read-only tool used to validate the corresponding functionality in the underlying F4Utils libraries.
F4SharedMem
C# class library for reading values from Falcon BMS shared memory area.
F4SharedMemMirror
Desktop client-server application that mirrors the contents of Falcon's shared memory areas to one or more remote networked PCs.
F4SharedMemViewer
Desktop application that displays the contents of Falcon's shared memory areas.
F4SharedMemoryRecorder
Minimum-viable concept demonstrator showing ability to record and playback a stream of Falcon shared memory data. Useful for certain software testing scenarios requiring repeatability that would otherwise be difficult to obtain.
F4TexSharedMem
C# class library for reading images from Falcon BMS' "textures shared memory" area.
F4TexSharedMemTester
Desktop application for displaying the contents of Falcon BMS' "Textures Shared Memory" area. Demonstrates the use of the F4TexSharedMem library.
F4Utils
C# class libraries which provide support for detecting Falcon operating characteristics, interacting with the simulation programmatically, and reading from and writing to various low-level Falcon file formats.
Namespaces:
- F4Utils.Campaign
Read F4 Campaign files (.CAM/.TRN/.TAC) and the Falcon class table
- F4Utils.Process
Detect whether Falcon is running, where it is running from, and send keyboard callbacks to Falcon
- F4Utils.Resources
Read F4's Resource Bundle files (.RSC/.IDX)
- F4Utils.SimSupport
Abstraction over Falcon's shared memory areas that exposes values as generic "signals" - used by SimLinkup
- F4Utils.Speech
Support for Falcon's AI Speech/Comms database (FALCON.TLK, commFile.bin, evalFile.bin, & fragFile.bin) (reading, writing, generating, exporting, and file format conversion)
- F4Utils.Terrain
Basic support for Falcon's terrain database (THEATER.MAP, THEATER.Lx/THEATER.Ox, THEATER.TDF, TEXTURE.BIN, etc) which includes support for accessing the terrain tile and mipmap images, the terrain height information at any grid coordinate, the terrain extent themselves, the UI theater map at various resolutions, etc.
Henkie.ADI.TestTool
Desktop application for testing Henkie's F-16 ADI Support Board with a real ARU-42/A Attitude Director Indicator instrument.
Henkie.Altimeter
C# class library for interfacing with Henkie's Altimeter interface card.
Henkie.Common
Shared C# code for Henkie.* projects.
Henkie.FuelFlow
C# class library for interfacing with Henkie's Fuel Flow Indicator interface card.
Henkie.HSI
C# class library for interfacing with Henkie's HSI Board #1 interface card.
Henkie.QuadSinCos
C# class library for interfacing with Henkie's Standby ADI / Quad SIN/COS interface card.
Henkie.SDI
C# class library for interfacing with Henkie's Digital-to-Synchro (SDI) interface card.
Henkie.SDI.TestTool
End-user desktop application for testing Henkie's Digital-to-Synchro (SDI) interface card. Demonstrates the use of the Henkie.SDI class library.
JoyMapper
Desktop application for remapping analog and digital inputs from DirectInput devices, BetaInnovations non-Joystick-class HID devices, and PHCC devices using PPJoy virtual joystick drivers.
LightningGauges
C# class library which provides GDI+ renderers for various flight instruments and gauges as found in the F-16.
Lzss
Class libraries that support compressing and decompressing binary content in the LZSS format used in the binary file formats within Hasbro & Microprose games such as Falcon.
- LzssNative
C++ (native) class library - LzssManaged
C# managed .NET P/Invoke wrapper
MFDExtractor
End user client/server application that allows extracting various flight instruments from Falcon.
MasterBuild
Automation scripts for running command-line builds, setting up developer and build machines, building all projects in the repository in a single pass, etc.
PHCC
C# class library for interfacing with the PIC Home Cockpit Controller I/O hardware and various attached peripherals.
PPJoyWrapper
C# class library for interacting with the PPJoy virtual joystick drivers from Deon Van Der Westhuysen.
PDF2Img
C# class library for converting PDFs to images. Uses embedded GhostScript library to perform the conversions.
PhccDeviceManager
End-user GUI application for configuring PHCC motherboard and peripherals.
PhccTestTool
End-user desktop application providing basic testing capabilities for the PHCC motherboard and attached peripherals. Demonstrates the use of the PHCC class library.
SimLinkup
End-user desktop application for controlling various simulator-related I/O hardware and physical instruments using data from simulation software, and for controlling the simulation by reading inputs from their I/O hardware. Provides out-of-the-box support for Falcon BMS, PHCC devices and popular peripherals, BetaInnovations devices, DirectInput devices, Analog Devices AD536x and AD537x evaluation boards, and a variety of simulated instrumentation.
SpeexInvoke
C# wrapper for the open-source Speex audio compression library.
TlkTool
End-user command-line (console) application which provides the ability to edit Falcon's AI comms databases (falcon.TLK, commFile.bin, fragFile.bin, and evalFile.bin files).
Functionality supported:
- Decompressing and extracting any/all of the individual compressed audio files from within the .TLK file, to ordinary .WAV files or compressed .LH or .SPX files.
- Exporting the commFile.bin, fragFile.bin, and evalFile.bin files to plain colon-delimited text files, which can then be edited in any text editor or spreadsheet.
- Regenerating the commFile.bin, fragFile.bin, and evalFile.bin files from these plain text files.
- Creating or regenerating a .TLK file from a set of .WAV, .LH, or .SPX files and updating individual entries in an existing .TLK file