+Eagle114th Posted November 1 Author Posted November 1 Hello everyone, this is quite wild found, I ama not even sure if all is actualy implemented or is placeholder.. Here is "TYPE" tokens: Quote ──────────────────────────────────────────────────────────────────── ==== Instrument[%03d] → Type=XXX (Full List) ==== ───────────────────────────────────────────────── INI File: COCKPIT.INI Section: Instrument[%03d] ; e.g., Instrument[001] Key: Type ; selects specialized instrument class DESC: TEXT DLL Source: AircraftObject.dll -------------------------------------------------------------------- Hexadecimal | TOKEN | Desc -------------------------------------------------------------------- 0x100887c0 | ACCELEROMETER | G-meter 0x1008afc0 | AFTERBURNER_INDICATOR | AB on/off cue 0x10088140 | AIRSPEED_INDICATOR | Indicated airspeed (IAS) 0x1008bd40 | AIR_BRAKE_ANGLE | Airbrake angle gauge 0x1008a540 | AIR_BRAKE_INDICATOR | Airbrake status lamp 0x10089cc0 | AIR_TO_AIR_MODE_INDICATOR | A/A mode cue 0x10089d40 | AIR_TO_GROUND_MODE_INDICATOR | A/G mode cue 0x100888C0 | ANGLE_OF_ATTACK_INDEXER | AoA indexer lights 0x10088840 | ANGLE_OF_ATTACK_INDICATOR | AoA gauge 0x1008a6c0 | ARRESTING_HOOK_INDICATOR | Hook status 0x10088940 | ATTITUDE_DIRECTOR_INDICATOR | ADI / horizon 0x1008bdc0 | AUTO_PILOT | Autopilot status 0x100889c0 | BANK_INDICATOR | Bank-only gauge 0x10088a40 | BEARING_MARKER | Nav bearing bug 0x1008bfc0 | BINGO_FUEL_INDICATOR | Bingo fuel lamp 0x1008bbc0 | CHAFF_COUNTER | Chaff count 0x1008ab40 | CLOCK_HOUR | Clock hour hand 0x1008aac0 | CLOCK_MINUTE | Clock minute hand 0x1008aa40 | CLOCK_SECOND | Clock seconds 0x1008a1c0 | CONTROL_STICK | Stick object (generic control stick) 0x1008a240 | CONTROL_STICK_PITCH | Stick pitch deflection 0x1008a2c0 | CONTROL_STICK_ROLL | Stick roll deflection 0x10088b40 | COURSE_ARROW | Course arrow 0x10088bc0 | COURSE_DEVIATION | CDI/LOC deviation 0x1008b8c0 | COURSE_DIFFERENCE | Course deviation/difference 0x1008ad40 | ECM | ECM status 0x1008b5c0 | ECM_TRANSMIT | ECM transmit status lamp 0x1008b9c0 | ENGINE_EXHAUST_PRESSURE | Exhaust pressure (engine gauge) 0x10089b40 | ENGINE_FIRE_WARNING_LIGHT | Fire warning lamp 0x10089ac0 | ENGINE_OVERHEAT_WARNING_LIGHT | Overheat lamp 0x1008b6c0 | ENGINE_PRESSURE_RATIO | EPR indicator 0x10089140 | EXHAUST_GAS_TEMPERATURE_INDICATOR | EGT 0x1008af40 | EXTERNAL_ANIMATION_LINK | External anim link 0x10088f40 | EXTERNAL_FUEL_QUANTITY_INDICATOR | External fuel qty 0x1008a140 | EXTERNAL_TANK_INDICATOR | Tank presence lamp 0x1008a640 | FLAPS_CONTROL_HANDLE | Flaps lever 0x1008bcc0 | FLAP_ANGLE | Flap angle gauge 0x1008bc40 | FLARE_COUNTER | Flare count 0x10089040 | FUEL_FLOW_INDICATOR | Fuel flow 0x1008b940 | GLIDE_SLOPE_INDICATOR | GS needle 0x10088240 | GROUND_SPEED_INDICATOR | Ground speed 0x10089e40 | GUNSIGHT_DEPRESSION_INDICATOR | Sight depression 0x10089ec0 | GUN_GROUP_INDICATOR | Gun group cue 0x10089dc0 | GUN_ROUNDS_INDICATOR | Rounds counter 0x10088CC0 | GYRO_COMPASS | Gyrocompass/HSI base 0x10088ac0 | HEADING_MARKER | Heading bug 0x1008abc0 | HUD | HUD object 0x10089bc0 | HUD_MODE_INDIDCATOR | HUD mode cue 0x100892C0 | HYDRAULIC_PRESSURE_INDICATOR | Hydraulic PSI 0x1008be40 | ILS_TOGGLE | ILS toggle lamp 0x1008c230 | INETERNAL_FUEL_QUANTITY_INDICATOR | (typo) see INTERNAL_... 0x100890C0 | INLET_TEMPERATURE_INDICATOR | Inlet/Tt2 temp 0x10089a40 | INLET_TEMPERATURE_WARNING | Inlet temp warn lamp 0x10088E40 | MANIFOLD_PRESSURE | MAP (piston) 0x10089240 | OIL_PRESSURE_INDICATOR | Oil pressure PSI 0x10088ec0 | INTERNAL_FUEL_QUANTITY_INDICATOR | Internal fuel qty 0x1008a4c0 | LANDING_GEAR_INDICATOR | Gear status lamps 0x100899c0 | LANDING_GEAR_WARNING_LIGHT | Gear warn lamp 0x100886C0 | LOW_ALT_WARNING_LIGHT | Low-alt warning lamp 0x100882C0 | MACH_NUMBER_INDICATOR | Mach readout 0x10088C40 | MAGNETIC_COMPASS | Magnetic compass 0x1008a040 | MASTER_ARM_INDICATOR | Master arm cue 0x10089940 | MASTER_CAUTION_LIGHT | Master caution 0x1008aec0 | MAX_G | Peak G readout (max-G recorder) 0x1008acc0 | MIRROR | Mirror object 0x1008b7c0 | MISSILE_INTERLOCK | Missile interlock status lamp 0x1008b640 | MISSION_TIMER | Mission timer 0x1008a8c0 | MOVING_MAP | Moving map 0x1008a9c0 | MULTI_FUNCTION_DISPLAY | MFD page host 0x100891c0 | NOZZLE_POSITION_INDICATOR | Nozzle pos gauge 0x1008adc0 | PITCH_INDICATOR | Pitch-only indicator 0x10089340 | PNEUMATIC_PRESSURE_INDICATOR | Pneumatic PSI 0x10088440 | PRESSURE_ALTIMETER | Baro altimeter 0x100884C0 | PRESSURE_ALTIMETER_1 | Baro alt variant 1 0x10088540 | PRESSURE_ALTIMETER_2 | Baro alt variant 2 0x100885C0 | PRESSURE_ALTIMETER_3 | Baro alt variant 3 0x10088640 | RADAR_ALTIMETER | AGL altimeter 0x1008c0c0 | RADAR_AZ_ANGLE | Displays radar azimuth (left/right) angle of the scan/lock 0x1008b0c0 | RADAR_BREAK_X | Radar break X cue 0x1008c040 | RADAR_EL_ANGLE | Radar elev angle 0x1008a0c0 | RADAR_IN_RANGE_INDICATOR | In-range lamp 0x1008bac0 | RADAR_LOW_VC | Lights/indicates low closing-velocity (VC) condition on radar 0x10089f40 | RADAR_MODE_SELECTOR | Radar mode selector 0x1008b540 | RADAR_OBSTACLE | Radar obstacle/terrain cue 0x1008b340 | RADAR_RANGE | Radar range display 0x1008b3c0 | RADAR_RANGE_SETTING | Range setting ctrl 0x1008a740 | RADAR_SCOPE | Radar scope drawable 0x1008b440 | RADAR_TARGET_CLOSURE_RATE | Target closing velocity (Vc) 0x1008b4c0 | RADAR_TARGET_RANGE | Target range display 0x10088d40 | RANGE_INDICATOR | Generic range meter 0x1008ac40 | REFLECTION | Cockpit reflection 0x1008b240 | RIPPLE_INTERVAL | Ripple interval 0x1008b1c0 | RIPPLE_QUANTITY | Ripple quantity 0x1008ae40 | ROLL_INDICATOR | Roll-only gauge 0x1008a340 | RUDDER_PEDAL | Rudder pedal anim 0x1008a7c0 | RWR | RWR scope/indicator 0x10088340 | SIDESLIP_VELOCITY_INDICATOR | Slip/skid rate 0x10088DC0 | TACHOMETER | Engine RPM 0x10089540 | THREAT_AAA_WARNING_LIGHT | AAA warn lamp 0x100893c0 | THREAT_AIR_INTERCEPT_WARNING_LIGHT | AI warn lamp 0x1008c140 | THREAT_AZ_ANGLE | Shows RWR threat bearing (azimuth) relative to aircraft nose 0x100898c0 | THREAT_CW_WARNING_LIGHT | CW warn lamp 0x10089440 | THREAT_GROUND_RADAR_WARNING_LIGHT | GRD RAD warn lamp 0x1008a940 | THREAT_INDICATOR | General RWR threat presence/status indicator (on/level) 0x100894c0 | THREAT_LAUNCH_WARNING_LIGHT | Launch warn lamp 0x10089740 | THREAT_SAM_HI_WARNING_LIGHT | SAM HI warn 0x10089640 | THREAT_SAM_LO_WARNING_LIGHT | SAM LO warn 0x100896c0 | THREAT_SAM_MID_WARNING_LIGHT | SAM MID warn 0x100895c0 | THREAT_SAM_WARNING_LIGHT | SAM warn lamp 0x100897c0 | THREAT_SEARCH_WARNING_LIGHT | Search warn lamp 0x10089840 | THREAT_UNKNOWN_WARNING_LIGHT | Unknown threat lamp 0x1008a3c0 | THROTTLE_CONTROL | Throttle control obj 0x1008a440 | THRUST_VECTOR_CONTROL | TVC indicator 0x10088fc0 | TOTAL_FUEL_QUANTITY_INDICATOR | Total fuel qty 0x100881C0 | TRUE_AIRSPEED_INDICATOR | True airspeed (TAS) 0x1008bb40 | TURN_COORDINATOR | Turn coordinator needle/ball for coordinated turn cue 0x100883C0 | TURN_INDICATOR | Turn/coord indicator 0x1008ba40 | TV_DISPLAY | TV/EO video display element (camera/MAV/TV scope output) 0x1008a840 | TV_SCOPE | TV/EO scope 0x10088740 | VERTICAL_VELOCITY_INDICATOR | VSI/IVSI 0x1008b140 | WEAPON_QUANTITY | Weapon qty display 0x1008b040 | WEAPON_SHOOT_CUE | Shoot cue lamp 0x10089fc0 | WEAPON_STATION_SELECTOR | Station selector 0x1008b840 | WEAPON_TYPE_AND_RIPPLE_QUANTITY | WPN type+ripple 0x1008b2c0 | WEAPON_TYPE_ID | Weapon type ID lamp 0x10089c40 | WEAPON_TYPE_SELECTOR | Weapon type selector 0x1008a5c0 | WHEEL_BRAKE_INDICATOR | Brake pressure lamp 0x1008bec0 | WP_CMD_PITCH | Waypoint cmd pitch 0x1008bf40 | WP_CMD_YAW | Waypoint cmd yaw By the way, I am just so surprised to see these tokens like: Quote 0x10092570 LevelBombAI [xrefs=19] 0x100925b0 DiveBombAI [xrefs=0] 0x100925f0 RocketAttackAI [xrefs=0] 0x10092630 StrafeAI [xrefs=0] 0x10092670 CruiseMissileAI [xrefs=0] Oh boy, for now i am putting INI guidance library on hold. I am still researching and figuring out how to restore the 'undefined' classes / funcitons / methods, variables, and values back to the decompiled codes, so it have defined codes like before it was compiled. At least I am able to decode the stored tokens and numberid values in the hexadecimals address. Eagle114th 5
pvince Posted November 1 Posted November 1 My personal experience (cockpit.ini functions, Type=...): Those are new for me, never seen, never tried before: CONTROL_STICK COURSE_DIFFERENCE ECM_TRANSMIT ENGINE_EXHAUST_PRESSURE MAX_G MISSILE_INTERLOCK RADAR_AZ_ANGLE RADAR_LOW_VC RADAR_OBSTACLE RADAR_TARGET_CLOSURE_RATE RADAR_TARGET_RANGE THREAT_AZ_ANGLE THREAT_INDICATOR TURN_COORDINATOR TV_DISPLAY Those were known, but operational not sure: GYRO_COMPASS (never used) HYDRAULIC_PRESSURE_INDICATOR (never worked for me) LOW_ALT_WARNING_LIGHT (seems it works, but I have failed on F1CZ test, should retry) PNEUMATIC_PRESSURE_INDICATOR (mostly not operational) THREAT_CW_WARNING_LIGHT (never got it on, but difficult to test with sure conclusion) THREAT_GROUND_RADAR_WARNING_LIGHT (never got it on, but difficult to test with sure conclusion) Open to feedback from the others ... 2
pvince Posted November 1 Posted November 1 (edited) Correction: LOW_ALT_WARNING_LIGHT works, tested ok on F1CZ_late. Syntax is slightly different than RADAR_ALTIMETER (one entry for threshold). With LOW_ALT_WARNING_LIGHT: [RadarAltimeterWarning] Type=LOW_ALT_WARNING_LIGHT NodeName=LightRadarAltLight MovementType=LIGHT Set[01].Position=1.0 Set[01].Value=500 ValueUnit=FEET With RADAR_ALTIMETER: [RadarAltimeterWarning] Type=RADAR_ALTIMETER NodeName=LightRadarAltLight MovementType=LIGHT Set[01].Position=1.0 Set[01].Value=499 Set[02].Position=0.0 Set[02].Value=500 ValueUnit=FEET At first glance the 2 functions give the same functional result and I do not see the difference for using "LOW_ALT_WARNING_LIGHT". Interested to know. Edited November 1 by pvince 2
pvince Posted November 1 Posted November 1 I have tested successfully: Type=COURSE_DIFFERENCE (difference to waypoint, +/-) Type=ECM_TRANSMIT (difference with ECM ??) Type=RADAR_AZ_ANGLE (+/-) Type=RADAR_TARGET_CLOSURE_RATE Type=RADAR_TARGET_RANGE Thanks 2 1
+Eagle114th Posted November 2 Author Posted November 2 5 hours ago, pvince said: I have tested successfully: Type=COURSE_DIFFERENCE (difference to waypoint, +/-) Type=ECM_TRANSMIT (difference with ECM ??) Type=RADAR_AZ_ANGLE (+/-) Type=RADAR_TARGET_CLOSURE_RATE Type=RADAR_TARGET_RANGE Thanks Excellent, this means I have successfuly extracted the token correctly! I am contiuning to do mybest. Cheers! 2 1
pvince Posted November 2 Posted November 2 Type=RADAR_LOW_VC tested successfully, only one threshold on absolute value, eg: Type=RADAR_LOW_VC NodeName= MovementType=LIGHT Set[01].Position=1 Set[01].Value=50 ValueUnit=KNOTS Tested Type=MAX_G, returns a fast decreasing cycling value, not understood at the moment. I've quickly tested "Type=THREAT_AZ_ANGLE" but always returns 0, even with RWR warning. May need further test. What could be "MISSILE_INTERLOCK" ? Quickly tested as a lamp in missile operation (lock, min/max range) but never went on. 1
+EricJ Posted November 2 Posted November 2 Yeah MAX_G... I feel it's the limiter on planes, as if I set Max G on a plane, it tells that it can blackout at that level, not the airframe, so that might help, or not.
pvince Posted November 2 Posted November 2 1 hour ago, EricJ said: Yeah MAX_G... I feel it's the limiter on planes, as if I set Max G on a plane, it tells that it can blackout at that level, not the airframe, so that might help, or not. Here it is a cockpit function, a display, or light, in cockpit.ini, it is something else. How do you set Max_G for a plane ?
+EricJ Posted November 2 Posted November 2 You set it in the _Data.ini, you use the real-world information but I found it's sketch, since at like for a Super Hornet, you set it at 7.6 and it blacks you out at that level, so I set it at 9G, which isn't realistic, but also realistic and so on, the line is this: MaxG=15.0 1
+Eagle114th Posted Sunday at 10:56 AM Author Posted Sunday at 10:56 AM Hello everyone! I have been hard at work on Ghidra and script, as well improving the workflowa of not just mining through DLL, also to improve every ways I can do with techniques to extract Enum / tables and number values hidden in the various hexadecimal in DLL files. I also have been working on figuring out how to automate the progress, got about 90 percent workflow automated while the rest requires AI assistant. For example, after using RTTI technique to restore the original classes / functions names as possible, it is often that about 25 to 40 percent of classes / functions, while the rest is shown as FUN_(Hex number) as generic , unknown function names. To solve this the quick way, I had AI parsing through the whole dump codes, and determine the possible closest name they could have been, based on teh contests of the codes it had. I do not have the time to further research how to restore the function names, it could take much longer time. So by using this method, it helps both human and AI to go through the dump for any information. However, the dump files, this time, now have decoded Enum / table and numeric values, as well separated file that have the list of them. For example, for Avioinics60 and 70, this is where the tokens were hidden in. Here is samples of Avionics60 and 70. FLIGHT.zip NOTE: Go to "DUMP FILES' in both Avionics 60 and Avionics 70, and you will see the following files: - DUMP_CLASS_FUNC_FULL CODES.txt - DUMP_CLASS_FUNC_FULL CODES - EXTENDED.txt - SF2_ENUM_TABLE_DAT_NUM_LIST - CMODDER.txt CLASS_FUNC_FULL CODES are for people to look through the dump. CLASS_FUNC_FULL CODES. - EXTENDED, in other hand, are designed for AI to parse through with more details. SF2_ENUM_TABLE_DAT_NUM_LIST - CMODDER have a full list of decoded Enum / table and numeric values (_DAT numbers). I am currently re-working on all DLLs to have up to date DUMP files, as well the list of decoded Enum / tables and numeric values. These two weeks of hard work paid off, and as stated, with semi-automate workflow, I am happy with the progress. It appear that, the more I work with this project, the more I learn how to extract the information and making the dump much more readable compared to before. Eagle114th 3 1
PCastro Posted 16 hours ago Posted 16 hours ago That is a lot of work to reverse engineer the code and game parameters. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now