re: the section reader is a generic IDXD accessor; UNIT_MAX absence re-tested

Resolving the r4 string at every sub_82448AA0 / sub_824482D0 call site
gives 65 section names and 54 int keys (data/config-keys.txt) -- far
more than the 400-byte config.ini holds -- and BASE_INFO, SYSTEM,
MISSIONS and FONTS are all present as IDXD record keys on the disc.  So
it is a generic named-section accessor over the .tbl containers, not
"the INI reader" as I labelled it yesterday.

My first re-test was invalid: IDXD record keys are tag_hash, not
name_hash.  Scanning with name_hash returned 0 for STAGENN_UNIT_MAX and
0 for every control name too -- the control is what exposed it.

Redone with tag_hash: 7750/7750 entries parsed, 190782 records, 3496
distinct keys, controls BASE_INFO/SYSTEM/MISSIONS/FONTS found, and
STAGE01..33_UNIT_MAX -> 0 records.  With the literal search and
config.ini printed in full, the section exists nowhere on the disc, so
PLANE=200 / VESSEL=20 for every stage now rests on a controlled test.

Docs + one new artefact; ISL artefacts byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-27 11:33:30 +00:00
parent e46055ffae
commit 731c3cd849
3 changed files with 196 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
# The named-section / int-key vocabulary the engine asks for
Resolved by back-tracking the r4 string argument at every call site of
sub_82448AA0 (find a named section/record) and sub_824482D0 (read an int).
Only sites whose key is a literal addis/addi string are listed, so these are
LOWER BOUNDS, not the complete set.
## sub_82448AA0 -- named section / record (65 distinct)
1 ACHIEVEMENTS_REQUIREMENTS
3 AUTO_SETTINGS
1 ArmsItem
1 ArmsItemFile
19 BASE_INFO
1 COMMON_RESOURCE
1 COMMON_XPR
1 CUSTOM_KEY_LOCATE
1 Camera
1 ControlTweak
4 CorrespondingTable
3 EPILOGUE_MOVIES
2 EnumCharacter
2 EnumUnit
1 EnumWeapon
1 Enumerate_ObjectiveMarkers
1 FILE
2 FILES
4 FONTS
2 FONT_SET
1 Faces
1 Files
1 GP_MAIN_GAME
2 GP_SCRIPT
1 Generic
3 IGNORE
2 LANGUAGE
4 LOCATE
2 LocalStringFiles
5 MISSIONS
1 MotionResource
1 Number
1 OFFSET
1 OPEN_PAK
1 Parameters
5 Path
2 PrefetchPaks
1 RADIO_WINDOW
1 Rendering
1 ResourceID
1 ResourceTable
1 Rule
2 SCRIPTS
1 SETTINGS
1 SE_main_arm1_attach
1 SE_main_arm1_detach
1 SE_main_arm2_attach
1 SE_main_arm2_detach
1 SE_main_arm3_attach
1 SE_main_arm3_detach
1 SE_nose_attach
1 SE_nose_detach
1 SOUND
1 SOUNDS
1 SQUADRON_ORDER_OBJECT
2 STAGE
1 STAGES
1 SUB_OBJECTIVE
11 SYSTEM
4 StageResource
1 TEXTS
2 UNITS
1 UnitMessageSetTable
2 WEAPONS
1 WeaponChangeFrame
## sub_824482D0 -- read an int (54 distinct)
1 ADJUST_X
1 ADJUST_Y
1 BlinkCycle
1 BulletLimit
1 ColorEmphasis1
1 ColorEmphasis2
1 ColorNormal
4 Count
1 CrewCount
1 DOF_Enable
1 ENTRY_POINT_PARAM
1 EXIT_VALUE
2 FINAL_LINE_PITCH
1 FinalPassType
1 GlareType
1 GuidanceType
1 HPGauge
1 HPGaugeSub
1 HP_CLASS
1 HP_ID
4 LINE_PITCH
3 LINE_SPACE
2 MISSION_ID
2 MSG_FONT_SIZE
1 MSG_LINE_PITCH
1 MSG_TEXT_LINE
1 MegaTons
1 NAME_FONT_SIZE
1 PLANE
1 PREPARE_WAIT
1 SPEAKER_HEIGHT
1 SUBTITLE_HEIGHT
1 SUBTITLE_Y
1 SpiralType
1 Stage
1 Straight1Type
1 Straight2Type
3 TEXT_HEIGHT
2 TEXT_LINE_SPACE
1 TEXT_SPEED_PER_LETTER
1 VESSEL
1 WEAPON_CATEGORIES
1 eye_stick_play
1 main_arm1_attach
1 main_arm1_detach
1 main_arm2_attach
1 main_arm2_detach
1 main_arm3_attach
1 main_arm3_detach
1 mov_stick_play
1 mov_trigger_play
1 nose_attach
1 nose_detach
1 pitch0