All six language copies carry the identical 337 unnamed IDXD hashes. Partitioned by record-name shape (53 shapes), 333 map onto families the corpus already documents: 131 weapon datasheets, 114 unit datasheets, 64 unit Faces tables, 10 unit message sets, 8 chatter rule tables, 5 enumerations/formations/placement. 114 is exactly the corpus's unit count (43 Craft + 71 Vessel) -- these are the tables the corpus has always worked with, reached by SHAPE because they have no names. Naming them adds nothing. The Enumerate object in each GP_MAIN_GAME_* is EMPTY, zero fields, which is why route 2 named 1283 entries in DefTables and 0 here. The 4 unclassified objects are new -> docs/re/structures/player-tuning-tables.md: the analog stick response curves (8 axes, 11 samples + a named Count = 11, tested 8/8; yaw/roll/throttle are the identity ramp, the shaping is all on pitch and the camera axes; adv_yaw is non-monotone and unexplained), the player craft's flight envelope (Booster, 50 fields -- the player side of the AA_/AV_ pair documented for NPCs -- plus TacticalManeuver, SpecialAttack + three gauge bands, SpecialWeapon, Misc), the Stage 16 boss (identified by Shell_S16Boss_* ids; Guardian HP 65000, Core 42000), and one unidentified Generic naming eff_n0071. New regenerator main_game_unnamed.py, 112-line artefact, byte-identical across two runs; the other twelve artefacts verify unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
4.7 KiB
✅ The player-tuning tables — analog response curves, booster/flight limits, special attacks
- Regenerate:
python3 tools/re-capture/main_game_unnamed.py→../data/main-game-unnamed.txt - Where:
GP_MAIN_GAME_{D,E,F,I,J,S}.pak, as unnamed IDXD objects — identical hash sets in all six language copies. - Related: flight-speed-law, flight-controls-runtime, unit-datasheet-static, archive-naming.
Found while characterising the 337 unnamed IDXD objects in each main-game pak
(see archive-naming.md). 333 of the 337 belong to families the corpus already
documents. These are the four that do not.
✅ The analog stick response curves — object 955ca077
Eight records, one per input axis, each 11 positional values plus a named
Count = 11. ⚠️ Count naming an indexed group is not safe in general — here
it was tested and holds 8/8.
| record | shape | curve |
|---|---|---|
AnalogRevice_yaw |
identity | 0.0 0.1 … 1.0 |
AnalogRevice_roll |
identity | 0.0 0.1 … 1.0 |
AnalogRevice_throttle |
identity | 0.0 0.1 … 1.0 |
AnalogRevice_pitch |
strongly eased | 0.000 0.003 0.010 0.020 0.040 0.065 0.100 0.155 0.250 0.500 1.000 |
AnalogRevice_eye_pitch |
eased | 0.00 0.01 0.03 0.06 0.10 0.18 0.28 0.42 0.60 0.80 1.00 |
AnalogRevice_eye_yaw |
eased, flat dead lead-in | 0.00 0.00 0.00 0.00 0.03 0.10 0.18 0.29 0.45 0.68 1.00 |
AnalogRevice_adv_roll |
S-curve | 0.000 0.005 0.032 0.080 0.138 0.231 0.387 0.584 0.792 0.941 1.000 |
AnalogRevice_adv_yaw |
not monotone | 0.000 0.016 0.052 0.143 0.482 0.940 1.000 0.916 0.611 0.382 0.208 |
✅ Three of the eight are the identity ramp — yaw, roll and throttle are
unshaped, and the shaping the game does apply is all on pitch and the camera
("eye") axes. 🟡 adv_yaw rises to 1.0 at sample 6 then falls back to
0.208, so whatever it indexes, it is not a stick-deflection curve like the
other seven; it has the shape of an envelope over something else. Untested.
The same object carries a Tweak record with what read as deadzones and
input-timing constants — mov_stick_play = 5000, eye_stick_play = 6000
(raw stick units), order_cancel_time = 120, YawMagForNormal = 2.0, and six
receipt_* / minimum_side_s values. 🟡 The units are inferred from magnitude,
not read from the consumer.
✅ The player craft's flight envelope — object 890e1be4
Eight records. The big one is Booster, 50 fields, and it is the player
side of the AA_/AV_ acceleration/velocity pair that
unit-datasheet-static documents for NPC craft: AA_Yaw_Min/Max,
AV_Yaw_Min/Max, AA_Roll_*, AV_Roll_*, AA_PitchPlus/Minus_*,
AV_PitchPlus/Minus_*, AA_/AV_AxisMode_*, each with an afterburner twin
(AB_AA_Yaw, AB_AV_Roll, …), plus MinimumVelocity 100,
CruisingVelocity 612, MaximumVelocity 2100, Acceleration 900,
Deceleration 600, SideThrustAcceleration 1500, SideThrustVelocity_Max 875,
three *DragFactor 3.0 and MaximumBank_Normal 60.0.
The other seven:
TacticalManeuver—Turn180RequiredTime 0.5,RollL/RRequiredTime 1.0,RollL/RSlideLength 350,RollToHorizonTime 2.0,TurnTargetRequiredTime 2.0. These name the evade moves whose morph poses the mesh work already found as_mnv*/_turn180XBG7 variants.SpecialAttack+SpecialAttackGauge_1/2/3— the charge gauge in three bands (ChargeMaximum33 / 66 / 100, each with its ownAttackTime_Minimum/Maximum), and the "FireBird" attack (FireBirdPower 1000,_Ex 4000,FireBirdTime 0.75,FireBirdRadius 100.0f— the game's own strayfsuffix).BulletTimeVolumePC 0.4/NPC 0.1are the slow-motion factors.SpecialWeapon—ShieldDoubler_Time/Count,HPRegenerator_RegenSpeed/ MinimumTime,ExtraCartridge_Quantity/CoolVolume/TimeVolume.Misc— effect names (eff_s110,eff_i003_f,eff_i004_f,eff_c001) andEffectPlacementFrameName = GN_mnt.
✅ The Stage 16 boss — object 0202269d
Records Guardian (19 fields) and Core (10). Guardian names its three
weapons by shell id — Shell_S16Boss_AAGun, Shell_S16Boss_Laser,
Shell_S16Boss_HBeam — which is what identifies the object: Stage 16, the
stage stage-settings-table.md singles out via its unique IsBoss16Enable
field. Guardian HP 65 000 with DamageLevel1/2 at 35 000 / 20 000; Core
HP 42 000 with levels at 25 000 / 10 000 and a lock-on release cycle
(LockOnReleaseInterval 15.0 ± LockOnReleaseRandomInterval 5.0).
🟡 The fourth: object a6c6c79b
One record, Generic, one field — the name eff_n0071 with an empty value.
An effect id and nothing else. Not identified.