Files
Sylpheed/docs/re/structures/player-tuning-tables.md
Claude (auto) b20609f818 re: the GP_MAIN_GAME unnamed block -- 333 of 337 already owned, 4 genuinely new
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
2026-08-27 20:17:10 +00:00

4.7 KiB

The player-tuning tables — analog response curves, booster/flight limits, special attacks

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 constantsmov_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:

  • TacticalManeuverTurn180RequiredTime 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* / _turn180 XBG7 variants.
  • SpecialAttack + SpecialAttackGauge_1/2/3 — the charge gauge in three bands (ChargeMaximum 33 / 66 / 100, each with its own AttackTime_Minimum/Maximum), and the "FireBird" attack (FireBirdPower 1000, _Ex 4000, FireBirdTime 0.75, FireBirdRadius 100.0f — the game's own stray f suffix). BulletTimeVolumePC 0.4 / NPC 0.1 are the slow-motion factors.
  • SpecialWeaponShieldDoubler_Time/Count, HPRegenerator_RegenSpeed/ MinimumTime, ExtraCartridge_Quantity/CoolVolume/TimeVolume.
  • Misc — effect names (eff_s110, eff_i003_f, eff_i004_f, eff_c001) and EffectPlacementFrameName = 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.