Jump to content

Recommended Posts

Posted
4 hours ago, Eagle114th said:

If we could make the table and put all HUD_Functions names on left section, then add to clumn:  COCKPIT | HUD | RADAR

I take that

  • Thanks 1
Posted (edited)
1 hour ago, pvince said:

:good::ty:

As far as I can say, HUD and RWR entries are the same for Avionics60 and Avionics70. Avionics70 is different for Radar functions only. Maybe less work for the radar difference only.

Avionics14A: some differences in radar functions + VDI introduction

That is noted, I will still peek through Avionics70 and other Avionics DLL.  Maybe it will surprise us if there are some difference wihtin the same name of the functions.

By the way, you gave me an idea that saves me a lot of time.  Instead of building new notes, I will use an existing Avionics60 text files like HUD.txt and other txt files, then rename it as AVIONICS70 version. I will use it as I go through Avionics70.DLL dump file.  That way, if there is any difference, even by a little, it wil be updated in that txt file.


Cheers!

Edited by Eagle114th
Posted

It's not exactly the table you described but it is a first step. All the Avionics and Cockpit functions I know, by alphabetical order. I cannot claim it is exhaustive. Those in red were captured in dll or mods but either they do not work or I have not been able to make them work.

Cockpit and Avionics Functions.xlsx

  • Thanks 1
Posted
10 hours ago, pvince said:

It's not exactly the table you described but it is a first step. All the Avionics and Cockpit functions I know, by alphabetical order. I cannot claim it is exhaustive. Those in red were captured in dll or mods but either they do not work or I have not been able to make them work.

Cockpit and Avionics Functions.xlsx

Thank you for the file, the SymbolType=<NAME>, the NAME part is huge help!

And with the list you sent me, I can look into what isn't working too.

I am almost done with Avioincs70.DLL's RadarData section as well the SymbolType keys with detailed information,  Will post here soon.


Cheers!

Posted

Hello everyone!

I have extracted all of the Radar(NAME)Class which is used as SymbolType for the Avionics70.DLL based radar.

Here is the list of Radar(NAME)Class and UPPER_SNAKE names for SymbolType.

SF2_Symbol_Assoicated_Key_list.txt


Finally, here is RadarData (with DisplayData* and SymbolType included) containing the sections, keys, and associated keys.

I hope it have correct data. If any of codes does not work, please let me know and I'll take look at it.

AVIONICS 70 - RADARDATA.txt


Cheers!

  • Like 2
Posted

I tried a few new functions found.

For some, so far nok :sad: (tried in Avionics70 only):

I tried SymbolType=MISSILE_TOF and then tried SymbolType=MISSILE_TOF_TEXT in case of ... but none displayed something

I also tried the font overrides:

// --- Per-symbol font overrides (optional) ---

TextFontName=Arial
TextSize=14
TextBold=TRUE
TextItalic=FALSE
TextUnderline=FALSE
TextStrikeOut=FALSE
TextShadow=FALSE
ShadowColor=0.0,0.0,0.0,1.0
ShadowOffset=1
TextOutline=FALSE
OutlineColor=0.0,0.0,0.0,1.0
OutlineSize=1

in a TEXT entry, and also added them in [RadarFont] but also no effect.

On the opposite, for  "SymbolType=MASTER_ARM_TEXT", I knew the simplified one, but I could test successfully the options "OnText" OffText" and "HideWithGuns=TRUE" :smile: that were unknown so far.

For those that did not work I can assume they are there as provision, or leftover from the library, but not coded yet, or code removed because unused for optimization.

  • Like 1
  • Thanks 1
  • 2 weeks later...
Posted

Hello everyone!

After releasing SF - ACP beta v0.05

https://combatace.com/files/file/18363-sf2-avionics-community-pack-sf2-acp-beta/

I am now focused on this projects.  Recenlty, through the day, with help of AI, digged through the Avionics60 and 70 for more information on TVDisplayData, especially the BlendOp, StageColorOp, and StageAlphaOp.

The detailed document on them is created and what I learned is that Avionics60 and 70 have different ways of handling the BlendOps.

Based on the dump file of Avionics60, for BlendOp, it only have BLEND_SRC_ALPHA, BLEND_ONE, and BLEND_ZERO. And it does NOT expose big per-stage enums like AVIONICS70.DLL, therefore no StageColorOp and StageAlphaOp.

However, please note, I can be wrong on this, it is just based on my current understanding from dump files.

However,  Avionics70, in the other hand, hve vast range keys for BlendOps, as well have the usage of StageColorOp and StageAlphaOp.

Here are two files:

Updated Avionics60 with the updated files, and Avionics70

AVIONICS 60.zip

AVIONICS 70.zip
 

And you will find AVIONICS 60 - BlendOp.txt and AVIONICS 70 - HUD.txt interesting.  And if there is any information that appear ot be incorrect, please let me know.  I will fix it.


Cheers

  • Like 1
  • Thanks 2
Posted

Hello everyone

It have been unique intense research and digging through Avionics60, Avionics70, F-14A Avionics, and F-14A IIAF Avionics

By comparing the radar and HUD related calsses, I made the mapped list of which classes taht works and does not work.

Here is the MIcrosoft Word and .txt )For anyone who want ot use eiter type of files

UPDATE: It wont' let me upload the files for now.  So instead, I am copying and pasting the list.

Quote

 

SF2 Avionics60 vs Avionics70 vs F-14A vs F-14A IIAF DLL – Practical Diff Guide
Purpose: Show only the meaningful differences so modders can set safe overrides fast.
# Class Implementation Map

Legend:
- FULL = fully implemented
- LIGHT = Lightly Implemented
- PLACEHOLDER = No logic | not working = stub/no effect
Note: Some Placeholder still calls other class for images, texts, or other type of class, but still have no local logic.


## 2.1 Radar-related

| Class                             | Avionics60     | Avionics70     | F-14A         | F-14A IIAF     |
| --------------------------------- | ------------- | ------------- | ------------- | ------------- |
| RadarASECircleClass                | N/A             | FULL             | FULL             | FULL             |
| RadarAcqSymbolClass                | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarAimDotClass                     | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarAzimuthClass                    | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarBreakXClass                    | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarCarrierSymbolClass            | N/A             | PLACEHOLDER     | FULL             | FULL             |
| RadarECMTextClass                    | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarElementClass                 | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarElevationClass                 | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarElevationTextClass             | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarGroundSpeedClass             | N/A             | PLACEHOLDER     | FULL             | FULL             |
| RadarHorizonClass                 | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarImageClass                     | N/A             | FULL             | FULL             | FULL             |
| RadarLockedTargetSymbolClass        | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarMaxAltClass                    | N/A             | FULL             | FULL             | FULL             |
| RadarMinAltClass                    | N/A             | FULL             | FULL             | FULL             |
| RadarMissileRMaxClass                | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarMissileRMaxTextClass            | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarMissileRMinClass                | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarMissileShootCueClass            | N/A             | FULL             | FULL             | FULL             |
| RadarMissileTOFClass                | N/A             | PLACEHOLDER     | PLACEHOLDER     | PLACEHOLDER     |
| RadarRangeScaleClass                | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarSweepLineClass                 | N/A             | FULL             | FULL             | FULL             |
| RadarTASClass                     | N/A             | PLACEHOLDER     | FULL             | FULL             |
| RadarTargetAltitudeTextClass         | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarTargetAspectTextClass         | N/A             | FULL             | FULL             | FULL             |
| RadarTargetBearingTextClass         | N/A             | FULL             | FULL             | FULL             |
| RadarTargetClosureTextClass         | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarTargetHeadingTextClass         | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarTargetRangeClass             | N/A            | LIGHT         | LIGHT         | LIGHT         |
| RadarTargetRangeTextClass         | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarTargetSymbolClass            | N/A             | FULL             | FULL             | FULL             |
| RadarTargetTASTextClass            | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarTargetTextClass                | N/A             | FULL             | FULL             | FULL             |
| RadarTextClass                    | N/A             | LIGHT         | LIGHT         | LIGHT         |
| RadarWaypointBearingClass            | N/A             | PLACEHOLDER     | PLACEHOLDER     | PLACEHOLDER    |
| RadarWaypointHeadingClass            | N/A             | PLACEHOLDER     | FULL             | FULL             |
| RadarWaypointRangeClass             | N/A             | PLACEHOLDER     | FULL             | FULL             |

## HUD-related

| Class                             | Avionics60     | Avionics70     | F-14A         | F-14A IIAF     |
| --------------------------------- | ------------- | ------------- | ------------- | ------------- |
| avnHUDASE_HeatClass                | FULL             | FULL             | FULL             | FULL             |
| avnHUDASE_RadarClass                 | FULL             | FULL             | FULL             | FULL             |
| avnHUDAirspeedScaleClass             | FULL             | FULL             | FULL             | FULL             |
| avnHUDAirspeedTextClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDAlphaTextClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDAltitudeScaleClass             | FULL             | FULL             | FULL             | FULL             |
| avnHUDAltitudeTextClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDAttitudeBarsClass             | FULL             | FULL             | FULL             | FULL             |
| avnHUDBoresightClass                 | PLACEHOLDER    | PLACEHOLDER     | PLACEHOLDER     | PLACEHOLDER     |
| avnHUDBreakXClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDCCIPClass                     | FULL             | FULL             | FULL             | FULL             |
| avnHUDClosureRateScaleClass         | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDDeviationClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDElementClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDFlightPathTextClass         | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDFlightpathClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDGIndicatorClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDGlideslopeClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDHeadingScaleClass             | FULL             | FULL            | FULL             | FULL             |
| avnHUDImageClass                     | FULL             | FULL            | FULL             | FULL             |
| avnHUDLCOSClass                     | FULL             | FULL            | FULL             | FULL             |
| avnHUDLowAltIndicatorClass         | PLACEHOLDER    | PLACEHOLDER     | PLACEHOLDER     | PLACEHOLDER     |
| avnHUDMachIndicatorClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDMasterArmClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDMasterArmTextClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDMaxGIndicatorClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDModeIndicatorClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarAimDotClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarAltIndicatorClass         | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarRangeClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarRangeScaleClass         | FULL             | FULL             | FULL             | FULL             |
| avnHUDRadarRangeScaleTextClass     | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarTargetAltClass         | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarTargetAspectClass         | FULL             | FULL             | FULL             | FULL             |
| avnHUDRadarTargetBearingClass     | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarTargetHeadingClass     | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarTargetTASClass         | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRadarTargetVcClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDRollIndicatorClass             | FULL             | FULL             | FULL             | FULL             |
| avnHUDScaleClass                     | FULL             | FULL             | FULL             | FULL             |
| avnHUDSelectedWeaponTextClass     | FULL             | FULL             | FULL             | FULL             |
| avnHUDSteeringCueClass             | FULL             | FULL             | FULL             | FULL             |
| avnHUDTD_EOClass                     | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDTD_HeatClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDTD_LaserClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDTD_RadarClass                 | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDTargetTextClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDTextClass                     | FULL             | FULL             | FULL             | FULL             |
| avnHUDVerticalVelocityScaleClass     | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDWaypointIDClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDWaypointRangeClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |
| avnHUDWeaponCountClass             | LIGHT         | LIGHT         | LIGHT         | LIGHT         |

 


I am currenlty re-working on the Radar and HUD classes keys and assoicated key, to ensure it have accurate information based on Avionics60 / Avionics70, F-14A Avionics, and F-14A IIAF Avionics DLL dump files.


Cheers!
 

  • Like 3
Posted

Very interesting 

With « placeholder » we have the confirmation of those that do not work. 
But what is the difference between full and light ? Both work. 

  • Like 1
Posted
5 hours ago, pvince said:

Very interesting 

With « placeholder » we have the confirmation of those that do not work. 
But what is the difference between full and light ? Both work. 

Good morning! 

Great questions, I will explain more:

- PLACEHOLDER = no local logic. It’s basically a stub (often just ctor + empty vfunc). It “exists” but doesn’t do work by itself.

- LIGHT = works, but only a little local logic. Usually small checks / assignments / formatting, then delegates to a base class to draw / do the rest.

- FULL = works with substantial local logic. Manages its own state / resources, calculations, multiple code paths, and doesn’t just rely on the base.

In short: 
- PLACEHOLDER → doesn’t really do anything locally.
- LIGHT → does a little (minimal logic).
- FULL → does a lot (rich logic).

Both LIGHT and FULL Classes works in SF2, however the tag informs us how deep the implementation is under the hood.


Eagle114th

  • Like 2
  • Thanks 1
  • 2 weeks later...
Posted (edited)

Hello everyone!


Sorry for short posts, busy day lately.  I have extra time to explains about this project in details:

Last week and this week have been steer learning curves for me when it comes to learning how the classes / functions are set in both Avioincs and Aircraft Object DLL files.  Both have different ways of how classes are set and what they do with SF2 engine.

At the same time, I realized how AI works to the core and how I can use AI the right way.  Previously, when using AI, i was still learning how to use it.  What I realized:

AI is not AGI yet, therefore does not think like we do.  Rather, AI follows the patterns of human interactions and is the group of programs that is on the rail of pre-defined instruction.  It does not yet teach itself, nor dynamically expand itself into critical thinking or creatively seeking solutions upon the requests.

So it means, if you only give simple instruction that is vague, AI will 'guess' itself what to do to find the answer for you.  it guess itself based on the scope of the request.  So therefore, the more you engineer the prompt with rules, the scope of the tasks, and input the details for instruction, the more likely AI will yield the result that is relevant to what you seek for.

Fortunate for me, Ai is 'smart' enough to be able to help me with prompt engineering while assisting me with analyzing how the Avionics and Aircraft Object DLL are set.  How I managed to extract the information and learn in this steps with AI effectively and efficiently:

1) Lead up the dump file
2) Upload the dump file to AI and have AI
3) go through the dump, studying how classes are set, and have AI explaining the big picture of the dump situation
4) Develop the prompt with AI to perform the tasks based on what I need
5) while getting result from AI, with the given source where they get it from, I check it with AI, to verify it.

However, there are challenge:

Besides engineering the prompt, there is also limitation to AI's memories (token).  Various AI have their own token limitation.  At once when AI exceed the token limitation, the memories run out of space.  When that happen, AI forgets the prompt instruction, pushes out the oldest conversation, to make room for newest one, causing AI to give me incorrect information.

That means, when I verify with AI, and realize AI start to make mistakes more often, that is when I start new chat, to have a fresh start, then use prompt and re-teach AI to do the task exactly what I need.

-----------------------------------------------------------------

Next thing i want to talk about is how did I manage to extract the sections / sub sections / keys / associated key for each ini files from Avionics and Aircraft Object dll files?

As noted, Avionics and Aircraft Object works so different ways.

Let's picture the tree, there are Root / Trunk, main branches, and many branches / leaves that branches from the main branches.

Three parts:  Root, main branches, interconnected branches

In Avionics Dll file, there are one main root class, then branches of the classes (radar related, HUD related, etc...).

And for each classes (roots), there are branches (associated functions), and interconnected functions (many branches) that is connected to the associated functions as well.

So I had AI analyzing Avionics by going through one class a time with me, parsing / tracing from root (class a time), going through each associated and interconnected branches for data for ini modding information.

ON the other hand, with Aircraft Object dll, oh boy, it is steer chaos, there isn't one root classes, rather many roots classes, connecting everywhere.  It's like working with thousands of wires and you try to locate the 'root' wire forking into various wires that also forks even more wires for the right group of wires, from 'root' wire.

This DLL handles many files, from cockpit ini, to aircraft data ini to other type of files.  there are massive lists of strings used for ini files.  Often I see the same strings but different function for different files.  so I try to find out which type of ini files they are for.

So therefore, I developed new methods of how to find specific root function and associated / interconnected functions in relative to the typie of ini files.  I call it "Fishing method"

For example:

in SF2 modding, you would have aircraft.ini, and in that file, there are CockpitDataFile=", 

so I looked up for the function that handle "CockpitDataFile", and that function is root function.

Then I have pre-made cockpit.ini, example: F-4B_COCKPIT.INI, and that is my 'bait" to catch bigger fish.

How this work?

NOTE:  Each cockpit.ini for each aircraft does not use full list of keys for each sections, rather they use specific keys that is relevant to each aircraft, yet I want to find the full list of keys for each sections right?

So to catch the whole list, I use already known working key as bait.  

Example:

[CockpitData]
Directory=cockpit
HUDMode=CAGED,AA,AG
RippleQuantity=1,2,18
RippleInterval=60,100,140

I hunted the functions that handles the string of CockpitData and HUDMode, which gave me functions that do handle them.  This gives me full list of the available key!

HOWEVER, there is another challenge:  Sometime there are multi-function that shares the same strings, but again with the root function, and with AI codes analyzer assistant, we are able to parse between the root function and the 'branch' function to see if they are actually connected to root function.  Any functions that is not connected to it,  trim it off and only keeping one that is connected to root function.

And from there, Ai can also parse between root and branch, as well toward other interconnected functions.

And next, it get even more complicated!

Sometime the key could not be found in the string, for example:

Cm0MachTableNumData

This such string does not example in Aircraft Objects dll.  BUT if you divide them into this:

Cm0 MachTable NumData, which gives us:

Cm0
MachTable
NumData

These three strings does exist in dump though!  Turns out there are also cases when some keys in ini is from combined of the strings.

And there is another thing I found out:

"%sThrottle", %s means any strings attached to "Throttle"

So if you look for IdleThrottle, you wont' find it, But you will find %sThrottle.  It tells you that SF2 uses %s for various other string for ini files.


The cockpit ini modding information is completed.  The Aircraft data ini is work in progress which is taking times, due to the nature of the complexity of the dll file.  And as stated, how i use AI to work with em as team, and with the specific designed prompt, I am able to extract the information, while verifying it with AI, to ensure the accurate information.

This is not 100 percent fool proof that gives us 100 percent accurate information, but it does save us tons of time. If there were no AI, it would have taken us years upon years to go through the decompiled codes.  With AI, it reduced my time from years to days.  And with the help of the community, we can find out what works and does not work.


By the way, please throw out the old files I shared, they are outdated.   here is the latest files with more accurate data.  Please check them out!
 

SF2 DLL - INI INFO.zip

Cheers!

Edited by Eagle114th
  • Like 2
Posted
On 9/22/2025 at 12:55 AM, pvince said:

OK. "LIGHT" and "FULL", is it your assessment, or the IA assessment, or is it in the source ?

It is based on both of our assessment from what we found in the source (dump file).  

How we figure the "LIGHT' vs "FULL"?  

If the class have little implement or lightly coded to do the simple tasks, then it is LIGHT.

If the class does more than a few tasks, does lot of tasks, even with few codes, it is 'FULL". However, LIGHT and FULL still means the features works in SF2.

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use, Privacy Policy, and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..