re(challenge): the EX missions are a MODE, not a stage number
Static-only (no emulator, no pad input). Three findings, each with its own
evidence:
- The disc holds exactly 29 StageResource records in three families --
S01-S16 story, S18-S23 tutorial (all bg=Original), S24-S29 challenge, plus
Test. That is 16 + 6 + 6 + 1, matching weapon.tbl's stage01..16 /
tutorial01..06 / challenge01..06 key set exactly. S17 does not exist.
GP_CHALLENGE.pak has 0 IDXD objects -- it is the menu screen; challenge
missions reuse GP_MAIN_GAME_E.pak's records.
- The GamePart id table is at 0x820A1630 (29 ids). Indices are confirmed by
the image's own RegisterToFactory<N, class silph::GamePart_*> text, not by
position: GP_CHALLENGE = 26, GP_TUTORIAL = 25, GP_BUNK = 10.
- The stage loader selects its config section from a mission-KIND field at
object+144: 3 -> EXTRA, 5|6 -> CHALLENGE, else FILE (two independent sites,
0x82184df0 and 0x82185ed0; two more classify {3,5,6} as one group). The
constructor sets it to 0 and every write inside the class only clears it,
and no immediate 3/5/6 store to it exists image-wide -- so the kind is
supplied by the launching GamePart, never derived from the stage number.
That last point is a mechanism (unproven) for why patching the save's stage
field to 27 kills the load: the record is a challenge stage but the kind stays
FILE. Names an untried, zero-cost discriminator -- try stage 18-23.
Also flagged, not resolved: roster_target says S10 (a STORY stage) still
fields an unharvested unit, which contradicts the "story campaign complete"
claim by one unit.
This commit is contained in:
96
docs/re/captures/challenge-map.txt
Normal file
96
docs/re/captures/challenge-map.txt
Normal file
@@ -0,0 +1,96 @@
|
||||
=== 1. StageResource records in GP_MAIN_GAME_E.pak ===
|
||||
29 stage records
|
||||
S01 bg=Lebendorf tokens=52
|
||||
S02 bg=Lebendorf tokens=51
|
||||
S03 bg=Planet_Lebendorf tokens=51
|
||||
S04 bg=Lebendorf_far tokens=54
|
||||
S05 bg=Lebendorf_far tokens=54
|
||||
S06 bg=Hargenteen tokens=51
|
||||
S07 bg=Hargenteen tokens=53
|
||||
S08 bg=Barch tokens=59
|
||||
S09 bg=Acheron tokens=53
|
||||
S10 bg=Acheron tokens=53
|
||||
S11 bg=Anastasis tokens=53
|
||||
S12 bg=Hargenteen tokens=53
|
||||
S13 bg=Hargenteen tokens=56
|
||||
S14 bg=Earth tokens=59
|
||||
S15 bg=Earth tokens=53
|
||||
S16 bg=PD tokens=53
|
||||
S18 bg=Original tokens=43
|
||||
S19 bg=Original tokens=43
|
||||
S20 bg=Original tokens=43
|
||||
S21 bg=Original tokens=43
|
||||
S22 bg=Original tokens=50
|
||||
S23 bg=Original tokens=43
|
||||
S24 bg=Anastasis tokens=53
|
||||
S25 bg=Hargenteen tokens=53
|
||||
S26 bg=Hargenteen tokens=53
|
||||
S27 bg=Planet_Lebendorf tokens=53
|
||||
S28 bg=Lebendorf tokens=54
|
||||
S29 bg=Earth tokens=53
|
||||
Test bg=Earth tokens=43
|
||||
|
||||
=== 2. GP_CHALLENGE.pak contents ===
|
||||
151 entries, 0 IDXD objects
|
||||
|
||||
=== 3. tokens mentioning Challenge / EX across the main pak ===
|
||||
033b5b7e pgmsg_challenge1.t32
|
||||
033b5b7e pgmsg_challenge2.t32
|
||||
033b5b7e pgmsg_challenge3.t32
|
||||
033b5b7e pgmsg_challenge4.t32
|
||||
033b5b7e pgmsg_challenge5.t32
|
||||
033b5b7e pgmsg_challenge6.t32
|
||||
35b8dc67 UN_e001_ADAN_Elan_EX4
|
||||
35b8dc67 UN_e007_ADAN_Turret_EX4
|
||||
35b8dc67 UN_e008_ADAN_TurretPlus_EX4
|
||||
35b8dc67 UN_e010_ADAN_Attacker_S_EX4
|
||||
35b8dc67 UN_e011_ADAN_Attacker_B_EX4
|
||||
35b8dc67 UN_e107_ADAN_AAFrigate_EX4
|
||||
35b8dc67 UN_f001_TCAF_DeltaSaber_T_EX5
|
||||
35b8dc67 UN_f001_TCAF_DeltaSaber_T_EX5_el
|
||||
35b8dc67 UN_f003_TCAF_ArrowHead_EX4
|
||||
35b8dc67 UN_f003_TCAF_ArrowHead_EX5
|
||||
35b8dc67 UN_f104_TCAF_Battleship_EX5
|
||||
35b8dc67 UN_f105_TCAF_Cruiser_EX5
|
||||
3c5b0549 UN_e107_ADAN_AAFrigate_EX4
|
||||
3c5b0549 UN_f104_TCAF_Battleship_EX5
|
||||
3c5b0549 UN_f105_TCAF_Cruiser_EX5
|
||||
3c5b0549 UnitName_UN_e107_ADAN_AAFrigate_EX4
|
||||
3c5b0549 UnitName_UN_f104_TCAF_Battleship_EX5
|
||||
3c5b0549 UnitName_UN_f105_TCAF_Cruiser_EX5
|
||||
3c5b0549 Weapon_TCAF_Ship_AAGun_EX5
|
||||
3c9ae32e EnumWeapon_EX5.tbl
|
||||
43faa517 UN_e001_ADAN_Elan_EX4
|
||||
43faa517 UN_e007_ADAN_Turret_EX4
|
||||
43faa517 UN_e008_ADAN_TurretPlus_EX4
|
||||
43faa517 UN_e010_ADAN_Attacker_S_EX4
|
||||
43faa517 UN_e011_ADAN_Attacker_B_EX4
|
||||
43faa517 UN_f001_TCAF_DeltaSaber_T_EX5
|
||||
43faa517 UN_f001_TCAF_DeltaSaber_T_EX5_el
|
||||
43faa517 UN_f003_TCAF_ArrowHead_EX4
|
||||
43faa517 UN_f003_TCAF_ArrowHead_EX5
|
||||
43faa517 UnitName_UN_e001_ADAN_Elan_EX4
|
||||
43faa517 UnitName_UN_e007_ADAN_Turret_EX4
|
||||
43faa517 UnitName_UN_e008_ADAN_TurretPlus_EX4
|
||||
43faa517 UnitName_UN_e010_ADAN_Attacker_S_EX4
|
||||
43faa517 UnitName_UN_e011_ADAN_Attacker_B_EX4
|
||||
43faa517 UnitName_UN_f001_TCAF_DeltaSaber_T_EX5
|
||||
43faa517 UnitName_UN_f001_TCAF_DeltaSaber_T_EX5_el
|
||||
43faa517 UnitName_UN_f003_TCAF_ArrowHead_EX4
|
||||
43faa517 UnitName_UN_f003_TCAF_ArrowHead_EX5
|
||||
659aff47 UN_e001_ADAN_Elan_EX4
|
||||
659aff47 UN_e007_ADAN_Turret_EX4
|
||||
659aff47 UN_e008_ADAN_TurretPlus_EX4
|
||||
659aff47 UN_e010_ADAN_Attacker_S_EX4
|
||||
659aff47 UN_e011_ADAN_Attacker_B_EX4
|
||||
659aff47 UN_e107_ADAN_AAFrigate_EX4
|
||||
659aff47 UN_f003_TCAF_ArrowHead_EX4
|
||||
6ab4825a WeaponCannonName_TCAF_Ship_AAGun_EX5
|
||||
6ab4825a Weapon_TCAF_Ship_AAGun_EX5
|
||||
6b9b000d UN_f001_TCAF_DeltaSaber_T_EX5
|
||||
6b9b000d UN_f001_TCAF_DeltaSaber_T_EX5_el
|
||||
6b9b000d UN_f003_TCAF_ArrowHead_EX5
|
||||
6b9b000d UN_f104_TCAF_Battleship_EX5
|
||||
6b9b000d UN_f105_TCAF_Cruiser_EX5
|
||||
ffbc19c2 Weapon_TCAF_Ship_AAGun_EX5
|
||||
(59 distinct)
|
||||
Reference in New Issue
Block a user