Add 'annotate-usecode' command to import USECODE IR JSON annotations

- Introduced a new command 'annotate-usecode' to import USECODE IR JSON annotation hints as Ghidra comments on compiled anchors.
- Added argument parsing for multiple IR JSON files, comment type selection, and a dry-run option.
- Implemented logic to read annotation records from the provided IR files and set comments on the corresponding addresses in Ghidra.
- Enhanced JSON schema to include response structure for the new command.
This commit is contained in:
MaddoScientisto 2026-03-24 18:14:20 +01:00
commit daa363c3d2
39 changed files with 41450 additions and 871 deletions

View file

@ -443,3 +443,5 @@ ASCII: `........................................................................
- `vm_mask_ladder.tsv` records the current `entity_vm_context_try_create_masked_for_entity` wrapper ladder in machine-readable form so gameplay mask lanes can be compared against descriptor-side families without reopening the notes.
- `readable_script_ir.md` and `readable_script_ir.tsv` join descriptor neighborhoods, the verified VM IR, the runtime owner/source path, and the current mask-family hints into one conservative script-facing bridge artifact.
- `runtime_descriptor_family_rankings.md` and `runtime_descriptor_family_rankings.tsv` rank descriptor families against the verified runtime lanes so the current human-readable script bridge is searchable by family fit rather than only by neighborhood dumps.
- `immortality_target_body_scan.md` and `immortality_target_body_scan.tsv` now scan the strongest current immortality candidates (`EVENT`, `NPCTRIG`, `_BOOT`, `SFXTRIG`, `SPECIAL`, `TRIGPAD`) for inline `0x410` literals and record the tightest remaining active-event template frontier.
- `immortality_npctrig_clauses.md` and `immortality_npctrig_clauses.tsv` now split the compact `NPCTRIG` slot `0x0A` / `0x20` bodies into prefix, clause, and tail regions so the event-bearing ladder can be compared against the typed/setup companion body without reopening raw hex.

View file

@ -0,0 +1,75 @@
# Immortality Body Structure
This report decodes one layer deeper than the literal scan for the surviving EVENT and NPCTRIG frontier.
It is still heuristic: the output is limited to repeatable byte grammar, subheader boundaries, field-tag trailers, and motif offsets that can be cross-checked against the 000d slot-backed runtime lane.
## EVENT slot `0x0A`
- Body length: `8150` bytes.
- Open header: `0x5A 0x2F 0x5C 0x1EF5` -> `EVENT` with embedded event-code byte `0x11`.
- Clause terminators (`0x7A`): `3`; local labels (`0x5B`): `383`.
- Internal labeled subheaders (`0x53 0x5C <u16> EVENT`): `90` -> `0x0088->0x1E6E`, `0x00F8->0x1DFE`, `0x0123->0x1DD3`, `0x0149->0x1DAD`, `0x0174->0x1D82`, `0x01CC->0x1D2A`, `0x0210->0x1CE6`, `0x0236->0x1CC0`, `0x0261->0x1C95`, `0x028E->0x1C68`, `0x02B9->0x1C3D`, `0x0361->0x1B95`.
- Tail field tags: `69:0000->referent`, `69:000A->event`, `24:02FE->item`, `69:6574->m`, `24:02FC->source`, `24:02FA->dest`, `24:02F8->door`, `24:05F3->wp`, `69:00F1->counter`, `69:00EF->counter2`, `24:02ED->n`, `69:00EB->link`, `69:00E9->cx`, `69:00E7->cy`, `69:00E5->ex`, `69:00E3->ey`, `69:00E1->time`, `69:00DF->op`, `69:00DD->opp`, `24:02DB->post1`, `24:02D9->post2`, `24:02D7->floor`, `69:00D5->dir`, `69:00D3->qHi`, `24:02D1->flicMan`, `69:4D63->an`.
| Motif | Count | First Offsets |
|---|---:|---|
| `call_40_06_4c_02` | 47 | `0x0011,0x010F,0x0160,0x024D,0x02A5,0x034D,0x0396,0x03F2,0x0422,0x047C,...` |
| `call_40_06_0f_04` | 50 | `0x001A,0x003C,0x0045,0x00C6,0x00D4,0x01EB,0x01F4,0x032D,0x0374,0x03D2,...` |
| `subheader_53_5c` | 90 | `0x0088,0x00F8,0x0123,0x0149,0x0174,0x01CC,0x0210,0x0236,0x0261,0x028E,...` |
| `writeback_57_02` | 44 | `0x007A,0x00EA,0x013B,0x01BE,0x0228,0x068F,0x0708,0x0799,0x08EA,0x0949,...` |
| `branch_59_0a` | 61 | `0x0072,0x00E2,0x0108,0x0133,0x0159,0x01B6,0x0220,0x0246,0x029E,0x0346,...` |
| `branch_3f_0a` | 39 | `0x0025,0x0057,0x019B,0x0271,0x02D4,0x02EE,0x0308,0x0322,0x03C7,0x045E,...` |
| `field_4b_fe_0f` | 23 | `0x0408,0x0412,0x0439,0x044D,0x0493,0x04A3,0x04EF,0x04FF,0x055E,0x0587,...` |
| `field_4b_fc_0f` | 3 | `0x0569,0x0575,0x057E` |
| `push_24_51` | 51 | `0x0029,0x005B,0x019F,0x0275,0x02D8,0x02F2,0x030C,0x0326,0x033F,0x03CB,...` |
| `event_field_69_0a_00` | 1 | `0x1F09` |
## NPCTRIG slot `0x0A`
- Body length: `373` bytes.
- Open header: `0x5A 0x06 0x5C 0x013E` -> `NPCTRIG` with embedded event-code byte `0x11`.
- Clause terminators (`0x7A`): `1`; local labels (`0x5B`): `12`.
- Internal labeled subheaders (`0x53 0x5C <u16> NPCTRIG`): `5` -> `0x0064->0x00DB`, `0x0093->0x00AC`, `0x00C2->0x007D`, `0x00F1->0x004E`, `0x0120->0x001F`.
- Tail field tags: `69:0000->referent`, `69:000A->event`, `24:02FE->item`, `69:6574->m`, `24:02FC->item2`, `69:6574->m2`, `24:02FA->n`.
| Motif | Count | First Offsets |
|---|---:|---|
| `call_40_06_4c_02` | 1 | `0x0011` |
| `call_40_06_0f_04` | 1 | `0x001D` |
| `subheader_53_5c` | 5 | `0x0064,0x0093,0x00C2,0x00F1,0x0120` |
| `writeback_57_02` | 5 | `0x0056,0x0085,0x00B4,0x00E3,0x0112` |
| `branch_59_0a` | 0 | `-` |
| `branch_3f_0a` | 5 | `0x0045,0x0074,0x00A3,0x00D2,0x0101` |
| `field_4b_fe_0f` | 0 | `-` |
| `field_4b_fc_0f` | 0 | `-` |
| `push_24_51` | 5 | `0x0049,0x0078,0x00A7,0x00D6,0x0105` |
| `event_field_69_0a_00` | 1 | `0x0152` |
## NPCTRIG slot `0x20`
- Body length: `345` bytes.
- Open header: `0x5A 0x06 0x5C 0x0120` -> `NPCTRIG` with embedded event-code byte `0x01`.
- Clause terminators (`0x7A`): `1`; local labels (`0x5B`): `19`.
- Internal labeled subheaders (`0x53 0x5C <u16> NPCTRIG`): `1` -> `0x00BA->0x0067`.
- Tail field tags: `69:0000->referent`, `69:000A->typeNpc`, `24:02FE->n`, `24:02FC->item`, `69:6574->m`, `24:02FA->item2`, `69:6574->m2`.
| Motif | Count | First Offsets |
|---|---:|---|
| `call_40_06_4c_02` | 2 | `0x0011,0x002C` |
| `call_40_06_0f_04` | 3 | `0x0085,0x008E,0x0097` |
| `subheader_53_5c` | 1 | `0x00BA` |
| `writeback_57_02` | 0 | `-` |
| `branch_59_0a` | 0 | `-` |
| `branch_3f_0a` | 1 | `0x0051` |
| `field_4b_fe_0f` | 10 | `0x0053,0x0060,0x006D,0x007A,0x00A0,0x00CC,0x00D9,0x00E6,0x0107,0x0119` |
| `field_4b_fc_0f` | 0 | `-` |
| `push_24_51` | 0 | `-` |
| `event_field_69_0a_00` | 1 | `0x0134` |
## Current Read
- `EVENT 0x0A` is the generic hub-shaped body: it has `90` internal labeled subheaders and the widest field trailer (`69:0000->referent, 69:000A->event, 24:02FE->item, 69:6574->m, 24:02FC->source, 24:02FA->dest, 24:02F8->door, 24:05F3->wp, 69:00F1->counter, 69:00EF->counter2, 24:02ED->n, 69:00EB->link, 69:00E9->cx, 69:00E7->cy, 69:00E5->ex, 69:00E3->ey, 69:00E1->time, 69:00DF->op, 69:00DD->opp, 24:02DB->post1, 24:02D9->post2, 24:02D7->floor, 69:00D5->dir, 69:00D3->qHi, 24:02D1->flicMan, 69:4D63->an`).
- `NPCTRIG 0x0A` is the compact player-trigger candidate: it reuses the same class-labelled open header and subheader grammar, but it stays constrained to `69:0000->referent, 69:000A->event, 24:02FE->item, 69:6574->m, 24:02FC->item2, 69:6574->m2, 24:02FA->n` instead of the wider EVENT field set.
- `NPCTRIG 0x20` keeps the same constrained field set as `NPCTRIG 0x0A` and changes only the embedded prolog event-code byte (`0x01` vs `0x11`), which fits a variant trigger/setup lane better than a separate generic hub.
- The repeated `0x53 0x5C <u16> LABEL` subheaders and dense `0x5B <u16>` local labels make these bodies look like inline clause streams rather than single flat payloads, which is consistent with the `000d:21ed -> 000d:22bc` runtime lane that copies variable-length inline bytes first and only then consumes compact metadata bytes plus streamed words.
- The surviving slot focus is still `0x0A`: both EVENT and NPCTRIG expose non-zero slot-`0x0A` bodies, and the runtime side has an exact offset-specialized masked wrapper for slot `0x0A` at `0005:2c35` (`entity_vm_context_try_create_mask_0400_slot0a_with_offset`).

View file

@ -0,0 +1,4 @@
entry_index class_name slot event_name_hint body_length header_open_arg header_target header_label header_event_code clause_terminator_count local_label_count subheader_count subheader_targets tail_fields all_fields motif_counts motif_offsets
190 EVENT 0x0A equip 8150 0x2F 0x1EF5 EVENT 0x11 3 383 90 0x0088->0x1E6E,0x00F8->0x1DFE,0x0123->0x1DD3,0x0149->0x1DAD,0x0174->0x1D82,0x01CC->0x1D2A,0x0210->0x1CE6,0x0236->0x1CC0,0x0261->0x1C95,0x028E->0x1C68,0x02B9->0x1C3D,0x0361->0x1B95,0x03AA->0x1B4C,0x069D->0x1859,0x0716->0x17E0,0x073C->0x17BA,0x07A7->0x174F,0x07CD->0x1729,0x07F3->0x1703,0x0819->0x16DD,0x0849->0x16AD,0x089E->0x1658,0x08F8->0x15FE,0x0926->0x15D0,0x0957->0x159F,0x09BD->0x1539,0x09E4->0x1512,0x0AD0->0x1426,0x0AF6->0x1400,0x0B21->0x13D5,0x0B47->0x13AF,0x0B70->0x1386,0x0C6F->0x1287,0x0C95->0x1261,0x0CC0->0x1236,0x0CE6->0x1210,0x0D0F->0x11E7,0x0DA0->0x1156,0x0DC9->0x112D,0x0DF4->0x1102,0x0E1D->0x10D9,0x0E99->0x105D,0x0EBF->0x1037,0x0EEA->0x100C,0x0F44->0x0FB2,0x0F6A->0x0F8C,0x0FF1->0x0F05,0x1017->0x0EDF,0x1071->0x0E85,0x1097->0x0E5F,0x113F->0x0DB7,0x1165->0x0D91,0x1190->0x0D66,0x11EA->0x0D0C,0x1210->0x0CE6,0x127D->0x0C79,0x136C->0x0B8A,0x13FA->0x0AFC,0x146D->0x0A89,0x14A0->0x0A56,0x14EE->0x0A08,0x1515->0x09E1,0x155C->0x099A,0x1589->0x096D,0x1654->0x08A2,0x16B5->0x0841,0x17F5->0x0701,0x181B->0x06DB,0x1846->0x06B0,0x186C->0x068A,0x18F7->0x05FF,0x19E9->0x050D,0x1A0F->0x04E7,0x1A3A->0x04BC,0x1A60->0x0496,0x1A89->0x046D,0x1AD6->0x0420,0x1B09->0x03ED,0x1B7E->0x0378,0x1C59->0x029D,0x1C80->0x0276,0x1CCF->0x0227,0x1CF5->0x0201,0x1D21->0x01D5,0x1D97->0x015F,0x1DD2->0x0124,0x1E00->0x00F6,0x1E44->0x00B2,0x1E72->0x0084,0x1EE6->0x0010 69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->source,24:02FA->dest,24:02F8->door,24:05F3->wp,69:00F1->counter,69:00EF->counter2,24:02ED->n,69:00EB->link,69:00E9->cx,69:00E7->cy,69:00E5->ex,69:00E3->ey,69:00E1->time,69:00DF->op,69:00DD->opp,24:02DB->post1,24:02D9->post2,24:02D7->floor,69:00D5->dir,69:00D3->qHi,24:02D1->flicMan,69:4D63->an 24:4501->VENT,69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->source,24:02FA->dest,24:02F8->door,24:05F3->wp,69:00F1->counter,69:00EF->counter2,24:02ED->n,69:00EB->link,69:00E9->cx,69:00E7->cy,69:00E5->ex,69:00E3->ey,69:00E1->time,69:00DF->op,69:00DD->opp,24:02DB->post1,24:02D9->post2,24:02D7->floor,69:00D5->dir,69:00D3->qHi,24:02D1->flicMan,69:4D63->an call_40_06_4c_02:47,call_40_06_0f_04:50,subheader_53_5c:90,writeback_57_02:44,branch_59_0a:61,branch_3f_0a:39,field_4b_fe_0f:23,field_4b_fc_0f:3,push_24_51:51,event_field_69_0a_00:1 call_40_06_4c_02=0x0011,0x010F,0x0160,0x024D,0x02A5,0x034D,0x0396,0x03F2,0x0422,0x047C,...,call_40_06_0f_04=0x001A,0x003C,0x0045,0x00C6,0x00D4,0x01EB,0x01F4,0x032D,0x0374,0x03D2,...,subheader_53_5c=0x0088,0x00F8,0x0123,0x0149,0x0174,0x01CC,0x0210,0x0236,0x0261,0x028E,...,writeback_57_02=0x007A,0x00EA,0x013B,0x01BE,0x0228,0x068F,0x0708,0x0799,0x08EA,0x0949,...,branch_59_0a=0x0072,0x00E2,0x0108,0x0133,0x0159,0x01B6,0x0220,0x0246,0x029E,0x0346,...,branch_3f_0a=0x0025,0x0057,0x019B,0x0271,0x02D4,0x02EE,0x0308,0x0322,0x03C7,0x045E,...,field_4b_fe_0f=0x0408,0x0412,0x0439,0x044D,0x0493,0x04A3,0x04EF,0x04FF,0x055E,0x0587,...,field_4b_fc_0f=0x0569,0x0575,0x057E,push_24_51=0x0029,0x005B,0x019F,0x0275,0x02D8,0x02F2,0x030C,0x0326,0x033F,0x03CB,...,event_field_69_0a_00=0x1F09
191 NPCTRIG 0x0A equip 373 0x06 0x013E NPCTRIG 0x11 1 12 5 0x0064->0x00DB,0x0093->0x00AC,0x00C2->0x007D,0x00F1->0x004E,0x0120->0x001F 69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->item2,69:6574->m2,24:02FA->n 69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->item2,69:6574->m2,24:02FA->n call_40_06_4c_02:1,call_40_06_0f_04:1,subheader_53_5c:5,writeback_57_02:5,branch_59_0a:0,branch_3f_0a:5,field_4b_fe_0f:0,field_4b_fc_0f:0,push_24_51:5,event_field_69_0a_00:1 call_40_06_4c_02=0x0011,call_40_06_0f_04=0x001D,subheader_53_5c=0x0064,0x0093,0x00C2,0x00F1,0x0120,writeback_57_02=0x0056,0x0085,0x00B4,0x00E3,0x0112,branch_3f_0a=0x0045,0x0074,0x00A3,0x00D2,0x0101,push_24_51=0x0049,0x0078,0x00A7,0x00D6,0x0105,event_field_69_0a_00=0x0152
191 NPCTRIG 0x20 345 0x06 0x0120 NPCTRIG 0x01 1 19 1 0x00BA->0x0067 69:0000->referent,69:000A->typeNpc,24:02FE->n,24:02FC->item,69:6574->m,24:02FA->item2,69:6574->m2 24:3D74->t@[S,69:0000->referent,69:000A->typeNpc,24:02FE->n,24:02FC->item,69:6574->m,24:02FA->item2,69:6574->m2 call_40_06_4c_02:2,call_40_06_0f_04:3,subheader_53_5c:1,writeback_57_02:0,branch_59_0a:0,branch_3f_0a:1,field_4b_fe_0f:10,field_4b_fc_0f:0,push_24_51:0,event_field_69_0a_00:1 call_40_06_4c_02=0x0011,0x002C,call_40_06_0f_04=0x0085,0x008E,0x0097,subheader_53_5c=0x00BA,branch_3f_0a=0x0051,field_4b_fe_0f=0x0053,0x0060,0x006D,0x007A,0x00A0,0x00CC,0x00D9,0x00E6,0x0107,0x0119,event_field_69_0a_00=0x0134
1 entry_index class_name slot event_name_hint body_length header_open_arg header_target header_label header_event_code clause_terminator_count local_label_count subheader_count subheader_targets tail_fields all_fields motif_counts motif_offsets
2 190 EVENT 0x0A equip 8150 0x2F 0x1EF5 EVENT 0x11 3 383 90 0x0088->0x1E6E,0x00F8->0x1DFE,0x0123->0x1DD3,0x0149->0x1DAD,0x0174->0x1D82,0x01CC->0x1D2A,0x0210->0x1CE6,0x0236->0x1CC0,0x0261->0x1C95,0x028E->0x1C68,0x02B9->0x1C3D,0x0361->0x1B95,0x03AA->0x1B4C,0x069D->0x1859,0x0716->0x17E0,0x073C->0x17BA,0x07A7->0x174F,0x07CD->0x1729,0x07F3->0x1703,0x0819->0x16DD,0x0849->0x16AD,0x089E->0x1658,0x08F8->0x15FE,0x0926->0x15D0,0x0957->0x159F,0x09BD->0x1539,0x09E4->0x1512,0x0AD0->0x1426,0x0AF6->0x1400,0x0B21->0x13D5,0x0B47->0x13AF,0x0B70->0x1386,0x0C6F->0x1287,0x0C95->0x1261,0x0CC0->0x1236,0x0CE6->0x1210,0x0D0F->0x11E7,0x0DA0->0x1156,0x0DC9->0x112D,0x0DF4->0x1102,0x0E1D->0x10D9,0x0E99->0x105D,0x0EBF->0x1037,0x0EEA->0x100C,0x0F44->0x0FB2,0x0F6A->0x0F8C,0x0FF1->0x0F05,0x1017->0x0EDF,0x1071->0x0E85,0x1097->0x0E5F,0x113F->0x0DB7,0x1165->0x0D91,0x1190->0x0D66,0x11EA->0x0D0C,0x1210->0x0CE6,0x127D->0x0C79,0x136C->0x0B8A,0x13FA->0x0AFC,0x146D->0x0A89,0x14A0->0x0A56,0x14EE->0x0A08,0x1515->0x09E1,0x155C->0x099A,0x1589->0x096D,0x1654->0x08A2,0x16B5->0x0841,0x17F5->0x0701,0x181B->0x06DB,0x1846->0x06B0,0x186C->0x068A,0x18F7->0x05FF,0x19E9->0x050D,0x1A0F->0x04E7,0x1A3A->0x04BC,0x1A60->0x0496,0x1A89->0x046D,0x1AD6->0x0420,0x1B09->0x03ED,0x1B7E->0x0378,0x1C59->0x029D,0x1C80->0x0276,0x1CCF->0x0227,0x1CF5->0x0201,0x1D21->0x01D5,0x1D97->0x015F,0x1DD2->0x0124,0x1E00->0x00F6,0x1E44->0x00B2,0x1E72->0x0084,0x1EE6->0x0010 69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->source,24:02FA->dest,24:02F8->door,24:05F3->wp,69:00F1->counter,69:00EF->counter2,24:02ED->n,69:00EB->link,69:00E9->cx,69:00E7->cy,69:00E5->ex,69:00E3->ey,69:00E1->time,69:00DF->op,69:00DD->opp,24:02DB->post1,24:02D9->post2,24:02D7->floor,69:00D5->dir,69:00D3->qHi,24:02D1->flicMan,69:4D63->an 24:4501->VENT,69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->source,24:02FA->dest,24:02F8->door,24:05F3->wp,69:00F1->counter,69:00EF->counter2,24:02ED->n,69:00EB->link,69:00E9->cx,69:00E7->cy,69:00E5->ex,69:00E3->ey,69:00E1->time,69:00DF->op,69:00DD->opp,24:02DB->post1,24:02D9->post2,24:02D7->floor,69:00D5->dir,69:00D3->qHi,24:02D1->flicMan,69:4D63->an call_40_06_4c_02:47,call_40_06_0f_04:50,subheader_53_5c:90,writeback_57_02:44,branch_59_0a:61,branch_3f_0a:39,field_4b_fe_0f:23,field_4b_fc_0f:3,push_24_51:51,event_field_69_0a_00:1 call_40_06_4c_02=0x0011,0x010F,0x0160,0x024D,0x02A5,0x034D,0x0396,0x03F2,0x0422,0x047C,...,call_40_06_0f_04=0x001A,0x003C,0x0045,0x00C6,0x00D4,0x01EB,0x01F4,0x032D,0x0374,0x03D2,...,subheader_53_5c=0x0088,0x00F8,0x0123,0x0149,0x0174,0x01CC,0x0210,0x0236,0x0261,0x028E,...,writeback_57_02=0x007A,0x00EA,0x013B,0x01BE,0x0228,0x068F,0x0708,0x0799,0x08EA,0x0949,...,branch_59_0a=0x0072,0x00E2,0x0108,0x0133,0x0159,0x01B6,0x0220,0x0246,0x029E,0x0346,...,branch_3f_0a=0x0025,0x0057,0x019B,0x0271,0x02D4,0x02EE,0x0308,0x0322,0x03C7,0x045E,...,field_4b_fe_0f=0x0408,0x0412,0x0439,0x044D,0x0493,0x04A3,0x04EF,0x04FF,0x055E,0x0587,...,field_4b_fc_0f=0x0569,0x0575,0x057E,push_24_51=0x0029,0x005B,0x019F,0x0275,0x02D8,0x02F2,0x030C,0x0326,0x033F,0x03CB,...,event_field_69_0a_00=0x1F09
3 191 NPCTRIG 0x0A equip 373 0x06 0x013E NPCTRIG 0x11 1 12 5 0x0064->0x00DB,0x0093->0x00AC,0x00C2->0x007D,0x00F1->0x004E,0x0120->0x001F 69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->item2,69:6574->m2,24:02FA->n 69:0000->referent,69:000A->event,24:02FE->item,69:6574->m,24:02FC->item2,69:6574->m2,24:02FA->n call_40_06_4c_02:1,call_40_06_0f_04:1,subheader_53_5c:5,writeback_57_02:5,branch_59_0a:0,branch_3f_0a:5,field_4b_fe_0f:0,field_4b_fc_0f:0,push_24_51:5,event_field_69_0a_00:1 call_40_06_4c_02=0x0011,call_40_06_0f_04=0x001D,subheader_53_5c=0x0064,0x0093,0x00C2,0x00F1,0x0120,writeback_57_02=0x0056,0x0085,0x00B4,0x00E3,0x0112,branch_3f_0a=0x0045,0x0074,0x00A3,0x00D2,0x0101,push_24_51=0x0049,0x0078,0x00A7,0x00D6,0x0105,event_field_69_0a_00=0x0152
4 191 NPCTRIG 0x20 345 0x06 0x0120 NPCTRIG 0x01 1 19 1 0x00BA->0x0067 69:0000->referent,69:000A->typeNpc,24:02FE->n,24:02FC->item,69:6574->m,24:02FA->item2,69:6574->m2 24:3D74->t@[S,69:0000->referent,69:000A->typeNpc,24:02FE->n,24:02FC->item,69:6574->m,24:02FA->item2,69:6574->m2 call_40_06_4c_02:2,call_40_06_0f_04:3,subheader_53_5c:1,writeback_57_02:0,branch_59_0a:0,branch_3f_0a:1,field_4b_fe_0f:10,field_4b_fc_0f:0,push_24_51:0,event_field_69_0a_00:1 call_40_06_4c_02=0x0011,0x002C,call_40_06_0f_04=0x0085,0x008E,0x0097,subheader_53_5c=0x00BA,branch_3f_0a=0x0051,field_4b_fe_0f=0x0053,0x0060,0x006D,0x007A,0x00A0,0x00CC,0x00D9,0x00E6,0x0107,0x0119,event_field_69_0a_00=0x0134

View file

@ -0,0 +1,118 @@
# Immortality NPCTRIG Clauses
This report focuses on the surviving compact NPCTRIG frontier and splits the extracted slot bodies into prefix, clause, and tail regions.
It is intended to make the slot `0x0A` versus slot `0x20` difference explicit enough to compare against the runtime-side slot-`0x0A` consumer path.
## NPCTRIG slot `0x0A`
- Event hint: `equip`.
- Open header: `0x5A 0x06 0x5C 0x013E` -> `NPCTRIG` with event-code byte `0x11`.
- First tail-field offset: `0x0145`.
- Subheader offsets: `0x0064`, `0x0093`, `0x00C2`, `0x00F1`, `0x0120`.
- Subheader targets: `0x00DB`, `0x00AC`, `0x007D`, `0x004E`, `0x001F`.
- Subheader offset deltas: `0x2F`, `0x2F`, `0x2F`, `0x2F`.
- Subheader target deltas: `0xFFD1`, `0xFFD1`, `0xFFD1`, `0xFFD1`.
- Runtime-shape motifs: `writeback_57_02=yes`, `push_24_51=yes`, `field_4b_fe_0f=0`.
| Segment | Range | Len | Local Labels | Subheaders | Branch 3F 0A | Writeback 57 02 | Push 24 51 | Field 4B FE 0F | Motif Offsets | Prefix | Suffix |
|---|---|---:|---|---:|---:|---:|---:|---:|---|---|---|
| prefix | `0x0000..0x0064` | 100 | `0x0017,0x001A,0x0026,0x0030,0x0036,0x004D` | 0 | 1 | 1 | 1 | 0 | `branch_3f_0a=+0x45; writeback_57_02=+0x56; push_24_51=+0x49` | `5a065c3e014e50435452494700000b11` | `02630320006efe5e54010112` |
| clause_1 | `0x0064..0x0093` | 47 | `0x007C` | 1 | 1 | 1 | 1 | 0 | `subheader_53_5c=+0x00; branch_3f_0a=+0x10; writeback_57_02=+0x21; push_24_51=+0x14` | `535cdb004e504354524947000052bc00` | `02630320006efe5e54010112` |
| clause_2 | `0x0093..0x00C2` | 47 | `0x00AB` | 1 | 1 | 1 | 1 | 0 | `subheader_53_5c=+0x00; branch_3f_0a=+0x10; writeback_57_02=+0x21; push_24_51=+0x14` | `535cac004e5043545249470000528d00` | `02630320006efe5e54010112` |
| clause_3 | `0x00C2..0x00F1` | 47 | `0x00DA` | 1 | 1 | 1 | 1 | 0 | `subheader_53_5c=+0x00; branch_3f_0a=+0x10; writeback_57_02=+0x21; push_24_51=+0x14` | `535c7d004e5043545249470000525e00` | `02630320006efe5e54010112` |
| clause_4 | `0x00F1..0x0120` | 47 | `0x0109` | 1 | 1 | 1 | 1 | 0 | `subheader_53_5c=+0x00; branch_3f_0a=+0x10; writeback_57_02=+0x21; push_24_51=+0x14` | `535c4e004e5043545249470000522f00` | `02630320006efe5e54010112` |
| clause_5 | `0x0120..0x0145` | 37 | `0x0130,0x013F` | 1 | 0 | 0 | 0 | 0 | `subheader_53_5c=+0x00` | `535c1f004e5043545249470000520000` | `1e0a24006efa5b4700500501` |
| tail | `0x0145..0x0175` | 48 | `-` | 0 | 0 | 0 | 0 | 0 | `-` | `6900007265666572656e740000690a00` | `74656d32000024fa026e007a` |
Repeated windows (8-byte):
- `4E 50 43 54 52 49 47 00` at `0x0005`, `0x0068`, `0x0097`, `0x00C6`, `0x00F5`, `0x0124`
- `50 43 54 52 49 47 00 00` at `0x0006`, `0x0069`, `0x0098`, `0x00C7`, `0x00F6`, `0x0125`
- `40 06 57 02 02 63 03 20` at `0x0054`, `0x0083`, `0x00B2`, `0x00E1`, `0x0110`
- `06 57 02 02 63 03 20 00` at `0x0055`, `0x0084`, `0x00B3`, `0x00E2`, `0x0111`
- `57 02 02 63 03 20 00 6E` at `0x0056`, `0x0085`, `0x00B4`, `0x00E3`, `0x0112`
- `02 02 63 03 20 00 6E FE` at `0x0057`, `0x0086`, `0x00B5`, `0x00E4`, `0x0113`
Repeated windows (6-byte):
- `4E 50 43 54 52 49` at `0x0005`, `0x0068`, `0x0097`, `0x00C6`, `0x00F5`, `0x0124`
- `50 43 54 52 49 47` at `0x0006`, `0x0069`, `0x0098`, `0x00C7`, `0x00F6`, `0x0125`
- `43 54 52 49 47 00` at `0x0007`, `0x006A`, `0x0099`, `0x00C8`, `0x00F7`, `0x0126`
- `54 52 49 47 00 00` at `0x0008`, `0x006B`, `0x009A`, `0x00C9`, `0x00F8`, `0x0127`
- `40 06 57 02 02 63` at `0x0054`, `0x0083`, `0x00B2`, `0x00E1`, `0x0110`
- `06 57 02 02 63 03` at `0x0055`, `0x0084`, `0x00B3`, `0x00E2`, `0x0111`
Runtime-fit candidates:
- Candidate clause selector starts: `0x0064`, `0x0093`, `0x00C2`, `0x00F1`, `0x0120`.
- Candidate clause selector targets: `0x00DB`, `0x00AC`, `0x007D`, `0x004E`, `0x001F`.
- Uniform selector stride: `0x2F`; full clauses carrying both `push_24_51` and `writeback_57_02`: `4`.
- Runtime side anchor: `000d:5572` proves the wrapper extra word is additive (`entity_vm_slot_load_value(...) + offset`), while `000d:21ed -> 000d:2433` copies one inline blob, reads two signed metadata bytes, then consumes a word matrix where byte A controls the lead-word row count and byte B controls the shared target-list width.
Tail field offsets:
- `0x0145` -> `69:0000->referent`
- `0x0152` -> `69:000A->event`
- `0x015C` -> `24:02FE->item`
- `0x015F` -> `69:6574->m`
- `0x0165` -> `24:02FC->item2`
- `0x0168` -> `69:6574->m2`
- `0x016F` -> `24:02FA->n`
## NPCTRIG slot `0x20`
- Event hint: `-`.
- Open header: `0x5A 0x06 0x5C 0x0120` -> `NPCTRIG` with event-code byte `0x01`.
- First tail-field offset: `0x0127`.
- Subheader offsets: `0x00BA`.
- Subheader targets: `0x0067`.
- Subheader offset deltas: `-`.
- Subheader target deltas: `-`.
- Runtime-shape motifs: `writeback_57_02=no`, `push_24_51=no`, `field_4b_fe_0f=10`.
| Segment | Range | Len | Local Labels | Subheaders | Branch 3F 0A | Writeback 57 02 | Push 24 51 | Field 4B FE 0F | Motif Offsets | Prefix | Suffix |
|---|---|---:|---|---:|---:|---:|---:|---:|---|---|---|
| prefix | `0x0000..0x00BA` | 186 | `0x001C,0x0029,0x0037,0x0044,0x004C,0x004D,0x005B,0x0068` | 0 | 1 | 0 | 0 | 5 | `branch_3f_0a=+0x51; field_4b_fe_0f=+0x53,+0x60,+0x6D,+0x7A,+0xA0` | `5a065c20014e50435452494700000b01` | `570002110a23005e54010112` |
| clause_1 | `0x00BA..0x0127` | 109 | `0x00C7,0x00D4,0x00E1,0x00EE,0x00F1,0x00FF,0x0112,0x0121` | 1 | 0 | 0 | 0 | 5 | `subheader_53_5c=+0x00; field_4b_fe_0f=+0x12,+0x1F,+0x2C,+0x4D,+0x5F` | `535c67004e50435452494700005b6200` | `0f06e5006efa5b6f00500501` |
| tail | `0x0127..0x0159` | 50 | `-` | 0 | 0 | 0 | 0 | 0 | `-` | `6900007265666572656e740000690a00` | `000024fa026974656d32007a` |
Repeated windows (8-byte):
- `4E 50 43 54 52 49 47 00` at `0x0005`, `0x00BE`
- `50 43 54 52 49 47 00 00` at `0x0006`, `0x00BF`
- `4B FE 0F 06 52 00 6E FA` at `0x0060`, `0x00CC`
- `FE 0F 06 52 00 6E FA 5B` at `0x0061`, `0x00CD`
- `4B FE 0F 06 53 00 6E FA` at `0x006D`, `0x00D9`
- `FE 0F 06 53 00 6E FA 5B` at `0x006E`, `0x00DA`
Repeated windows (6-byte):
- `00 0A 00 4B FE 0F` at `0x005D`, `0x006A`, `0x0077`
- `0A 00 4B FE 0F 06` at `0x005E`, `0x006B`, `0x0078`
- `00 0A 05 4B FE 0F` at `0x00C9`, `0x00D6`, `0x00E3`
- `0A 05 4B FE 0F 06` at `0x00CA`, `0x00D7`, `0x00E4`
- `4E 50 43 54 52 49` at `0x0005`, `0x00BE`
- `50 43 54 52 49 47` at `0x0006`, `0x00BF`
Runtime-fit candidates:
- Candidate clause selector starts: `0x00BA`.
- Candidate clause selector targets: `0x0067`.
- Uniform selector stride: `-`; full clauses carrying both `push_24_51` and `writeback_57_02`: `0`.
- Runtime side anchor: `000d:5572` proves the wrapper extra word is additive (`entity_vm_slot_load_value(...) + offset`), while `000d:21ed -> 000d:2433` copies one inline blob, reads two signed metadata bytes, then consumes a word matrix where byte A controls the lead-word row count and byte B controls the shared target-list width.
Tail field offsets:
- `0x0127` -> `69:0000->referent`
- `0x0134` -> `69:000A->typeNpc`
- `0x0140` -> `24:02FE->n`
- `0x0146` -> `24:02FC->item`
- `0x0149` -> `69:6574->m`
- `0x014F` -> `24:02FA->item2`
- `0x0152` -> `69:6574->m2`
## Current Read
- Slot `0x0A` now reads as a repeated clause ladder, not a monolithic blob: `5` subheaders sit on a uniform `0x2F, 0x2F, 0x2F, 0x2F` byte stride, and their targets walk backward by `0xFFD1, 0xFFD1, 0xFFD1, 0xFFD1`. Each clause block carries one `branch_3f_0a`, one `push_24_51`, and one `writeback_57_02`, which fits an event-bearing clause stream better than a pure type filter.
- Slot `0x20` is structurally different even before the tail fields: its open event-code byte is `0x01` instead of `0x11`, it has only one class-labelled subheader, no `writeback_57_02`, no `push_24_51`, and `10` `field_4b_fe_0f` hits concentrated around repeated `0x0A 00/05 4B FE 0F ...` windows. That is a materially better fit for a typed gate or setup/attachment body than for the live event-emission ladder.
- This split matches the current runtime-side bridge better than the previous undifferentiated frontier. The verified slot-`0x0A` wrapper `0005:2c35` seeds mask `0x0400`, slot `0x0A`, and one additive word that `000d:5572` applies directly to the loaded slot value before `000d:21ed` consumes the result. The exact `000d:21ed -> 000d:22bc` contract is now narrower too: after copying the inline blob it reads two signed bytes, uses byte A as the lead-word row count, uses byte B as the shared target-list width, performs `A x B` `entity_link` calls, and pushes back only non-`0x0400` words. `NPCTRIG slot 0x0A` is the only surviving compact body here with a natural five-row selector family (`5` evenly spaced clause starts at stride `0x2F`), while slot `0x20` offers only one clause and no matching writeback/push motif.

View file

@ -0,0 +1,3 @@
slot event_name_hint body_length header_target header_event_code subheader_offsets subheader_targets subheader_offset_deltas subheader_target_deltas uniform_stride full_clause_count tail_start has_writeback has_push_2451 field_4b_fe_0f_count repeated_windows_8 repeated_windows_6
0x0A equip 373 0x013E 0x11 0x0064,0x0093,0x00C2,0x00F1,0x0120 0x00DB,0x00AC,0x007D,0x004E,0x001F 0x2F,0x2F,0x2F,0x2F 0xFFD1,0xFFD1,0xFFD1,0xFFD1 0x2F 4 0x0145 yes yes 0 4e50435452494700@0x0005,0x0068,0x0097,0x00C6,0x00F5,0x0124;5043545249470000@0x0006,0x0069,0x0098,0x00C7,0x00F6,0x0125;4006570202630320@0x0054,0x0083,0x00B2,0x00E1,0x0110;0657020263032000@0x0055,0x0084,0x00B3,0x00E2,0x0111;570202630320006e@0x0056,0x0085,0x00B4,0x00E3,0x0112;0202630320006efe@0x0057,0x0086,0x00B5,0x00E4,0x0113 4e5043545249@0x0005,0x0068,0x0097,0x00C6,0x00F5,0x0124;504354524947@0x0006,0x0069,0x0098,0x00C7,0x00F6,0x0125;435452494700@0x0007,0x006A,0x0099,0x00C8,0x00F7,0x0126;545249470000@0x0008,0x006B,0x009A,0x00C9,0x00F8,0x0127;400657020263@0x0054,0x0083,0x00B2,0x00E1,0x0110;065702026303@0x0055,0x0084,0x00B3,0x00E2,0x0111
0x20 345 0x0120 0x01 0x00BA 0x0067 0 0x0127 no no 10 4e50435452494700@0x0005,0x00BE;5043545249470000@0x0006,0x00BF;4bfe0f0652006efa@0x0060,0x00CC;fe0f0652006efa5b@0x0061,0x00CD;4bfe0f0653006efa@0x006D,0x00D9;fe0f0653006efa5b@0x006E,0x00DA 000a004bfe0f@0x005D,0x006A,0x0077;0a004bfe0f06@0x005E,0x006B,0x0078;000a054bfe0f@0x00C9,0x00D6,0x00E3;0a054bfe0f06@0x00CA,0x00D7,0x00E4;4e5043545249@0x0005,0x00BE;504354524947@0x0006,0x00BF
1 slot event_name_hint body_length header_target header_event_code subheader_offsets subheader_targets subheader_offset_deltas subheader_target_deltas uniform_stride full_clause_count tail_start has_writeback has_push_2451 field_4b_fe_0f_count repeated_windows_8 repeated_windows_6
2 0x0A equip 373 0x013E 0x11 0x0064,0x0093,0x00C2,0x00F1,0x0120 0x00DB,0x00AC,0x007D,0x004E,0x001F 0x2F,0x2F,0x2F,0x2F 0xFFD1,0xFFD1,0xFFD1,0xFFD1 0x2F 4 0x0145 yes yes 0 4e50435452494700@0x0005,0x0068,0x0097,0x00C6,0x00F5,0x0124;5043545249470000@0x0006,0x0069,0x0098,0x00C7,0x00F6,0x0125;4006570202630320@0x0054,0x0083,0x00B2,0x00E1,0x0110;0657020263032000@0x0055,0x0084,0x00B3,0x00E2,0x0111;570202630320006e@0x0056,0x0085,0x00B4,0x00E3,0x0112;0202630320006efe@0x0057,0x0086,0x00B5,0x00E4,0x0113 4e5043545249@0x0005,0x0068,0x0097,0x00C6,0x00F5,0x0124;504354524947@0x0006,0x0069,0x0098,0x00C7,0x00F6,0x0125;435452494700@0x0007,0x006A,0x0099,0x00C8,0x00F7,0x0126;545249470000@0x0008,0x006B,0x009A,0x00C9,0x00F8,0x0127;400657020263@0x0054,0x0083,0x00B2,0x00E1,0x0110;065702026303@0x0055,0x0084,0x00B3,0x00E2,0x0111
3 0x20 345 0x0120 0x01 0x00BA 0x0067 0 0x0127 no no 10 4e50435452494700@0x0005,0x00BE;5043545249470000@0x0006,0x00BF;4bfe0f0652006efa@0x0060,0x00CC;fe0f0652006efa5b@0x0061,0x00CD;4bfe0f0653006efa@0x006D,0x00D9;fe0f0653006efa5b@0x006E,0x00DA 000a004bfe0f@0x005D,0x006A,0x0077;0a004bfe0f06@0x005E,0x006B,0x0078;000a054bfe0f@0x00C9,0x00D6,0x00E3;0a054bfe0f06@0x00CA,0x00D7,0x00E4;4e5043545249@0x0005,0x00BE;504354524947@0x0006,0x00BF

View file

@ -0,0 +1,50 @@
# Immortality Target Body Scan
This report is a focused follow-up on the player-trigger immortality lane.
It scans the current highest-value EUSECODE candidates for inline `0x410` literals and compares the strongest active-event template bodies.
- No scanned target body contains inline little-endian `0x0410`, inline dword `0x00000410`, or byte-swapped `0x1004` literals.
- `EVENT` remains the widest unresolved active-event frontier because it still exposes one monolithic slot-`0x0A` body (`8150` bytes) with no finer body split yet.
- `NPCTRIG` remains the strongest compact player-trigger frontier because it is event-bearing and has two non-zero bodies (`0x0A`, `0x20`) but still no inline `0x410` literal.
- `_BOOT` event cores (`COR_BOOT`, `REE_BOOT`) remain near-template event families rather than special immortality emitters: their best pairings share only short common prefixes plus shared suffix-heavy tails.
- `SPECIAL` and `TRIGPAD` stay negative controls here: callable bodies exist, but the new literal scan still shows no inline `0x410` evidence.
## Body Rows
| Class | Slot | Hint | Body Range | Len | `0x0410` hits | `0x00000410` hits | `0x1004` hits | Prefix | Suffix |
|---|---:|---|---|---:|---|---|---|---|---|
| EVENT | `0x0A` | equip | `0x00D4..0x20AA` | 8150 | 0:- | 0:- | 0:- | `5a2f5cf51e4556454e54000000000b11` | `4869000024d102666c69634d616e007a` |
| NPCTRIG | `0x0A` | equip | `0x00DA..0x024F` | 373 | 0:- | 0:- | 0:- | `5a065c3e014e50435452494700000b11` | `24fc026974656d32000024fa026e007a` |
| NPCTRIG | `0x20` | - | `0x024F..0x03A8` | 345 | 0:- | 0:- | 0:- | `5a065c20014e50435452494700000b01` | `6974656d000024fa026974656d32007a` |
| COR_BOOT | `0x0A` | equip | `0x00D4..0x02FB` | 551 | 0:- | 0:- | 0:- | `5a025cfd01434f525f424f4f54000b11` | `6e74000069fe00636f756e746572007a` |
| COR_BOOT | `0x0F` | enterFastArea | `0x02FB..0x052F` | 564 | 0:- | 0:- | 0:- | `5a045c0b02434f525f424f4f54000b1b` | `656d000069fc00636f756e746572007a` |
| COR_BOOT | `0x10` | leaveFastArea | `0x052F..0x056A` | 59 | 0:- | 0:- | 0:- | `5a005c2700434f525f424f4f54000b1c` | `5001016900007265666572656e74007a` |
| REE_BOOT | `0x0A` | equip | `0x00D4..0x041F` | 843 | 0:- | 0:- | 0:- | `5a025c21035245455f424f4f54000b11` | `6e74000069fe00636f756e746572007a` |
| REE_BOOT | `0x0F` | enterFastArea | `0x041F..0x067B` | 604 | 0:- | 0:- | 0:- | `5a045c33025245455f424f4f54000b1b` | `656d000069fc00636f756e746572007a` |
| REE_BOOT | `0x10` | leaveFastArea | `0x067B..0x06B6` | 59 | 0:- | 0:- | 0:- | `5a005c27005245455f424f4f54000b1c` | `5001016900007265666572656e74007a` |
| SFXTRIG | `0x0A` | equip | `0x00D4..0x018C` | 184 | 0:- | 0:- | 0:- | `5a005c9a005346585452494700000b11` | `72656e740000690a006576656e74007a` |
| SPECIAL | `0x0A` | equip | `0x00E0..0x0146` | 102 | 0:- | 0:- | 0:- | `5a005c4a005350454349414c00000b11` | `666572656e740000690a00766172007a` |
| SPECIAL | `0x0F` | enterFastArea | `0x0616..0x075B` | 325 | 0:- | 0:- | 0:- | `5a045c1b015350454349414c00000b1b` | `4e756d000069fc006e70634e756d007a` |
| SPECIAL | `0x10` | leaveFastArea | `0x075B..0x080E` | 179 | 0:- | 0:- | 0:- | `5a005c9f005350454349414c00000b1c` | `5001016900007265666572656e74007a` |
| SPECIAL | `0x20` | - | `0x0146..0x04DC` | 918 | 0:- | 0:- | 0:- | `5a065c5c035350454349414c00005b26` | `000024fc026e7063000069fa0071007a` |
| SPECIAL | `0x21` | - | `0x04DC..0x0616` | 314 | 0:- | 0:- | 0:- | `5a085cfb005350454349414c00005b82` | `736531000069f800706861736532007a` |
| TRIGPAD | `0x06` | gotHit | `0x00D4..0x035C` | 648 | 0:- | 0:- | 0:- | `5a065c4c025452494750414400000b0c` | `026974656d000024fa02656c6576007a` |
## Strongest Template Pairings
These comparisons are limited to `COR_BOOT`, `REE_BOOT`, `NPCTRIG`, and `SFXTRIG` because they are the current highest-value active-event families near the immortality frontier.
| Left | Right | Prefix | Suffix | Total |
|---|---|---:|---:|---:|
| COR_BOOT `0x0A` (`551`) | REE_BOOT `0x0A` (`843`) | 3 | 39 | 42 |
| COR_BOOT `0x0F` (`564`) | REE_BOOT `0x0F` (`604`) | 3 | 38 | 41 |
| COR_BOOT `0x10` (`59`) | REE_BOOT `0x10` (`59`) | 5 | 17 | 22 |
| REE_BOOT `0x0A` (`843`) | REE_BOOT `0x0F` (`604`) | 1 | 10 | 11 |
| COR_BOOT `0x0F` (`564`) | REE_BOOT `0x0A` (`843`) | 1 | 10 | 11 |
| COR_BOOT `0x0A` (`551`) | REE_BOOT `0x0F` (`604`) | 1 | 10 | 11 |
| COR_BOOT `0x0A` (`551`) | COR_BOOT `0x0F` (`564`) | 1 | 10 | 11 |
| REE_BOOT `0x10` (`59`) | SFXTRIG `0x0A` (`184`) | 3 | 5 | 8 |
| COR_BOOT `0x10` (`59`) | SFXTRIG `0x0A` (`184`) | 3 | 5 | 8 |
| NPCTRIG `0x0A` (`373`) | NPCTRIG `0x20` (`345`) | 3 | 2 | 5 |
| REE_BOOT `0x0F` (`604`) | SFXTRIG `0x0A` (`184`) | 1 | 2 | 3 |
| REE_BOOT `0x0F` (`604`) | REE_BOOT `0x10` (`59`) | 1 | 2 | 3 |

View file

@ -0,0 +1,17 @@
entry_index class_name slot event_name_hint body_start body_end body_length le16_0410_count le16_0410_offsets le32_00000410_count le32_00000410_offsets le16_1004_count le16_1004_offsets body_prefix_hex body_suffix_hex
190 EVENT 0x0A equip 0x00D4 0x20AA 8150 0 0 0 5a2f5cf51e4556454e54000000000b11 4869000024d102666c69634d616e007a
191 NPCTRIG 0x0A equip 0x00DA 0x024F 373 0 0 0 5a065c3e014e50435452494700000b11 24fc026974656d32000024fa026e007a
191 NPCTRIG 0x20 0x024F 0x03A8 345 0 0 0 5a065c20014e50435452494700000b01 6974656d000024fa026974656d32007a
189 COR_BOOT 0x0A equip 0x00D4 0x02FB 551 0 0 0 5a025cfd01434f525f424f4f54000b11 6e74000069fe00636f756e746572007a
189 COR_BOOT 0x0F enterFastArea 0x02FB 0x052F 564 0 0 0 5a045c0b02434f525f424f4f54000b1b 656d000069fc00636f756e746572007a
189 COR_BOOT 0x10 leaveFastArea 0x052F 0x056A 59 0 0 0 5a005c2700434f525f424f4f54000b1c 5001016900007265666572656e74007a
283 REE_BOOT 0x0A equip 0x00D4 0x041F 843 0 0 0 5a025c21035245455f424f4f54000b11 6e74000069fe00636f756e746572007a
283 REE_BOOT 0x0F enterFastArea 0x041F 0x067B 604 0 0 0 5a045c33025245455f424f4f54000b1b 656d000069fc00636f756e746572007a
283 REE_BOOT 0x10 leaveFastArea 0x067B 0x06B6 59 0 0 0 5a005c27005245455f424f4f54000b1c 5001016900007265666572656e74007a
285 SFXTRIG 0x0A equip 0x00D4 0x018C 184 0 0 0 5a005c9a005346585452494700000b11 72656e740000690a006576656e74007a
272 SPECIAL 0x0A equip 0x00E0 0x0146 102 0 0 0 5a005c4a005350454349414c00000b11 666572656e740000690a00766172007a
272 SPECIAL 0x0F enterFastArea 0x0616 0x075B 325 0 0 0 5a045c1b015350454349414c00000b1b 4e756d000069fc006e70634e756d007a
272 SPECIAL 0x10 leaveFastArea 0x075B 0x080E 179 0 0 0 5a005c9f005350454349414c00000b1c 5001016900007265666572656e74007a
272 SPECIAL 0x20 0x0146 0x04DC 918 0 0 0 5a065c5c035350454349414c00005b26 000024fc026e7063000069fa0071007a
272 SPECIAL 0x21 0x04DC 0x0616 314 0 0 0 5a085cfb005350454349414c00005b82 736531000069f800706861736532007a
273 TRIGPAD 0x06 gotHit 0x00D4 0x035C 648 0 0 0 5a065c4c025452494750414400000b0c 026974656d000024fa02656c6576007a
1 entry_index class_name slot event_name_hint body_start body_end body_length le16_0410_count le16_0410_offsets le32_00000410_count le32_00000410_offsets le16_1004_count le16_1004_offsets body_prefix_hex body_suffix_hex
2 190 EVENT 0x0A equip 0x00D4 0x20AA 8150 0 0 0 5a2f5cf51e4556454e54000000000b11 4869000024d102666c69634d616e007a
3 191 NPCTRIG 0x0A equip 0x00DA 0x024F 373 0 0 0 5a065c3e014e50435452494700000b11 24fc026974656d32000024fa026e007a
4 191 NPCTRIG 0x20 0x024F 0x03A8 345 0 0 0 5a065c20014e50435452494700000b01 6974656d000024fa026974656d32007a
5 189 COR_BOOT 0x0A equip 0x00D4 0x02FB 551 0 0 0 5a025cfd01434f525f424f4f54000b11 6e74000069fe00636f756e746572007a
6 189 COR_BOOT 0x0F enterFastArea 0x02FB 0x052F 564 0 0 0 5a045c0b02434f525f424f4f54000b1b 656d000069fc00636f756e746572007a
7 189 COR_BOOT 0x10 leaveFastArea 0x052F 0x056A 59 0 0 0 5a005c2700434f525f424f4f54000b1c 5001016900007265666572656e74007a
8 283 REE_BOOT 0x0A equip 0x00D4 0x041F 843 0 0 0 5a025c21035245455f424f4f54000b11 6e74000069fe00636f756e746572007a
9 283 REE_BOOT 0x0F enterFastArea 0x041F 0x067B 604 0 0 0 5a045c33025245455f424f4f54000b1b 656d000069fc00636f756e746572007a
10 283 REE_BOOT 0x10 leaveFastArea 0x067B 0x06B6 59 0 0 0 5a005c27005245455f424f4f54000b1c 5001016900007265666572656e74007a
11 285 SFXTRIG 0x0A equip 0x00D4 0x018C 184 0 0 0 5a005c9a005346585452494700000b11 72656e740000690a006576656e74007a
12 272 SPECIAL 0x0A equip 0x00E0 0x0146 102 0 0 0 5a005c4a005350454349414c00000b11 666572656e740000690a00766172007a
13 272 SPECIAL 0x0F enterFastArea 0x0616 0x075B 325 0 0 0 5a045c1b015350454349414c00000b1b 4e756d000069fc006e70634e756d007a
14 272 SPECIAL 0x10 leaveFastArea 0x075B 0x080E 179 0 0 0 5a005c9f005350454349414c00000b1c 5001016900007265666572656e74007a
15 272 SPECIAL 0x20 0x0146 0x04DC 918 0 0 0 5a065c5c035350454349414c00005b26 000024fc026e7063000069fa0071007a
16 272 SPECIAL 0x21 0x04DC 0x0616 314 0 0 0 5a085cfb005350454349414c00005b82 736531000069f800706861736532007a
17 273 TRIGPAD 0x06 gotHit 0x00D4 0x035C 648 0 0 0 5a065c4c025452494750414400000b0c 026974656d000024fa02656c6576007a

View file

@ -0,0 +1,43 @@
ENTRY 189 COR_BOOT FILE chunk_189_table_1B90_off_01D610_len_00056A.bin
BODY class=COR_BOOT slot=0x0A hint=equip start=0x00D4 end=0x02FB len=551 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a025cfd01434f525f424f4f54000b11 last16=6e74000069fe00636f756e746572007a
BODY class=COR_BOOT slot=0x0F hint=enterFastArea start=0x02FB end=0x052F len=564 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a045c0b02434f525f424f4f54000b1b last16=656d000069fc00636f756e746572007a
BODY class=COR_BOOT slot=0x10 hint=leaveFastArea start=0x052F end=0x056A len=59 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a005c2700434f525f424f4f54000b1c last16=5001016900007265666572656e74007a
ENTRY 190 EVENT FILE chunk_190_table_1B98_off_02F49E_len_0020AA.bin
BODY class=EVENT slot=0x0A hint=equip start=0x00D4 end=0x20AA len=8150 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a2f5cf51e4556454e54000000000b11 last16=4869000024d102666c69634d616e007a
ENTRY 191 NPCTRIG FILE chunk_191_table_1BA8_off_04C347_len_0003A8.bin
BODY class=NPCTRIG slot=0x0A hint=equip start=0x00DA end=0x024F len=373 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a065c3e014e50435452494700000b11 last16=24fc026974656d32000024fa026e007a
BODY class=NPCTRIG slot=0x20 hint=- start=0x024F end=0x03A8 len=345 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a065c20014e50435452494700000b01 last16=6974656d000024fa026974656d32007a
ENTRY 272 SPECIAL FILE chunk_272_table_26E0_off_05B625_len_00080E.bin
BODY class=SPECIAL slot=0x0A hint=equip start=0x00E0 end=0x0146 len=102 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a005c4a005350454349414c00000b11 last16=666572656e740000690a00766172007a
BODY class=SPECIAL slot=0x20 hint=- start=0x0146 end=0x04DC len=918 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a065c5c035350454349414c00005b26 last16=000024fc026e7063000069fa0071007a
BODY class=SPECIAL slot=0x21 hint=- start=0x04DC end=0x0616 len=314 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a085cfb005350454349414c00005b82 last16=736531000069f800706861736532007a
BODY class=SPECIAL slot=0x0F hint=enterFastArea start=0x0616 end=0x075B len=325 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a045c1b015350454349414c00000b1b last16=4e756d000069fc006e70634e756d007a
BODY class=SPECIAL slot=0x10 hint=leaveFastArea start=0x075B end=0x080E len=179 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a005c9f005350454349414c00000b1c last16=5001016900007265666572656e74007a
ENTRY 273 TRIGPAD FILE chunk_273_table_26F8_off_068FF3_len_00035C.bin
BODY class=TRIGPAD slot=0x06 hint=gotHit start=0x00D4 end=0x035C len=648 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a065c4c025452494750414400000b0c last16=026974656d000024fa02656c6576007a
ENTRY 283 REE_BOOT FILE chunk_283_table_2768_off_052B90_len_0006B6.bin
BODY class=REE_BOOT slot=0x0A hint=equip start=0x00D4 end=0x041F len=843 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a025c21035245455f424f4f54000b11 last16=6e74000069fe00636f756e746572007a
BODY class=REE_BOOT slot=0x0F hint=enterFastArea start=0x041F end=0x067B len=604 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a045c33025245455f424f4f54000b1b last16=656d000069fc00636f756e746572007a
BODY class=REE_BOOT slot=0x10 hint=leaveFastArea start=0x067B end=0x06B6 len=59 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a005c27005245455f424f4f54000b1c last16=5001016900007265666572656e74007a
ENTRY 285 SFXTRIG FILE chunk_285_table_27A0_off_05926C_len_00018C.bin
BODY class=SFXTRIG slot=0x0A hint=equip start=0x00D4 end=0x018C len=184 le16_0410=0:- le32_00000410=0:- le16_1004=0:- first16=5a005c9a005346585452494700000b11 last16=72656e740000690a006576656e74007a
TOP_STRUCTURAL_PAIRS
PAIR COR_BOOT:0x0A len=551 <-> REE_BOOT:0x0A len=843 prefix=3 suffix=39 total=42
PAIR COR_BOOT:0x0F len=564 <-> REE_BOOT:0x0F len=604 prefix=3 suffix=38 total=41
PAIR COR_BOOT:0x10 len=59 <-> REE_BOOT:0x10 len=59 prefix=5 suffix=17 total=22
PAIR REE_BOOT:0x0A len=843 <-> REE_BOOT:0x0F len=604 prefix=1 suffix=10 total=11
PAIR COR_BOOT:0x0F len=564 <-> REE_BOOT:0x0A len=843 prefix=1 suffix=10 total=11
PAIR COR_BOOT:0x0A len=551 <-> REE_BOOT:0x0F len=604 prefix=1 suffix=10 total=11
PAIR COR_BOOT:0x0A len=551 <-> COR_BOOT:0x0F len=564 prefix=1 suffix=10 total=11
PAIR REE_BOOT:0x10 len=59 <-> SFXTRIG:0x0A len=184 prefix=3 suffix=5 total=8
PAIR COR_BOOT:0x10 len=59 <-> SFXTRIG:0x0A len=184 prefix=3 suffix=5 total=8
PAIR NPCTRIG:0x0A len=373 <-> NPCTRIG:0x20 len=345 prefix=3 suffix=2 total=5
PAIR REE_BOOT:0x0F len=604 <-> SFXTRIG:0x0A len=184 prefix=1 suffix=2 total=3
PAIR REE_BOOT:0x0F len=604 <-> REE_BOOT:0x10 len=59 prefix=1 suffix=2 total=3

File diff suppressed because it is too large Load diff