Crusader_Decomp/USECODE/EUSECODE_extracted/boot_family_decompile.md
MaddoScientisto 4d3c8cd81b Add detailed class event processing and family comparison tools
- Enhance `extract_eusecode_flx.py` to derive class event rows with additional metadata including derived body windows and repeated template statuses.
- Introduce `usecode_family_compare.py` for comparing event families, analyzing commonalities in event bodies, and generating reports on identical groups and differences.
- Implement new data structures for managing class event rows and family artifact specifications.
- Update output formats to include derived body information and repeated family regression checks.
- Ensure robust validation of repeated family expectations against actual extracted data.
2026-03-22 23:24:46 +01:00

7.8 KiB

_BOOT Family Decompiled Event Sketches

This is a reversible per-class rendering derived directly from class_event_index.tsv plus the raw extracted chunk bytes. ScummVM event labels remain hints only; the authoritative data here is the slot id, raw row bytes, and derived body window.

AND_BOOT

class:
  entry_index: 0x0AB
  class_id: 0x314
  class_name: AND_BOOT
  class_object_index: 0x316
  raw_code_base_u32: 0xD4
  code_base_minus_one: 0xD3
  conservative_event_count: 32
  events:
    - slot: 0x0a
      event_name_hint: equip
      raw_event_entry_word: 0x0253
      raw_code_offset: 0x00000001
      derived_body_start: 0x00d4
      derived_body_end: 0x0327
      derived_body_length: 595
      repeated_template_status: boot-event-core/shared-slot-0x0A/shared-slot-template
      body_sha1: d7a28ffc24ab488970328a576f16af20f76d2a71
      body_prefix_hex: 5a025c2902414e44
      body_suffix_hex: 6f756e746572007a
    - slot: 0x0f
      event_name_hint: enterFastArea
      raw_event_entry_word: 0x0237
      raw_code_offset: 0x00000254
      derived_body_start: 0x0327
      derived_body_end: 0x055e
      derived_body_length: 567
      repeated_template_status: boot-event-core/shared-slot-0x0F/shared-slot-template
      body_sha1: 29fa661d1f7934f505c9efa6e7ec0bcbb7506b77
      body_prefix_hex: 5a045c0e02414e44
      body_suffix_hex: 6f756e746572007a
    - slot: 0x10
      event_name_hint: leaveFastArea
      raw_event_entry_word: 0x003b
      raw_code_offset: 0x0000048b
      derived_body_start: 0x055e
      derived_body_end: 0x0599
      derived_body_length: 59
      repeated_template_status: boot-event-core/shared-slot-0x10/same-length-template
      body_sha1: 7e3cc8034632df1963951b6c26e8cef2f18e2616
      body_prefix_hex: 5a005c2700414e44
      body_suffix_hex: 666572656e74007a

BRO_BOOT

class:
  entry_index: 0x0AC
  class_id: 0x316
  class_name: BRO_BOOT
  class_object_index: 0x318
  raw_code_base_u32: 0xD4
  code_base_minus_one: 0xD3
  conservative_event_count: 32
  events:
    - slot: 0x0a
      event_name_hint: equip
      raw_event_entry_word: 0x02d5
      raw_code_offset: 0x00000001
      derived_body_start: 0x00d4
      derived_body_end: 0x03a9
      derived_body_length: 725
      repeated_template_status: boot-event-core/shared-slot-0x0A/shared-slot-template
      body_sha1: bd08c6f4b1201d500ee2722b9cd4a2e3eb89af5f
      body_prefix_hex: 5a025cab0242524f
      body_suffix_hex: 6f756e746572007a
    - slot: 0x0f
      event_name_hint: enterFastArea
      raw_event_entry_word: 0x024c
      raw_code_offset: 0x000002d6
      derived_body_start: 0x03a9
      derived_body_end: 0x05f5
      derived_body_length: 588
      repeated_template_status: boot-event-core/shared-slot-0x0F/shared-slot-template
      body_sha1: 8b22769c8386fb4f8592aaf958820a452679a6b0
      body_prefix_hex: 5a045c230242524f
      body_suffix_hex: 6f756e746572007a
    - slot: 0x10
      event_name_hint: leaveFastArea
      raw_event_entry_word: 0x003b
      raw_code_offset: 0x00000522
      derived_body_start: 0x05f5
      derived_body_end: 0x0630
      derived_body_length: 59
      repeated_template_status: boot-event-core/shared-slot-0x10/same-length-template
      body_sha1: dd5ecced3b31dda2e5cd6a8d8cb2e9df41669ebd
      body_prefix_hex: 5a005c270042524f
      body_suffix_hex: 666572656e74007a

COR_BOOT

class:
  entry_index: 0x0BD
  class_id: 0x360
  class_name: COR_BOOT
  class_object_index: 0x362
  raw_code_base_u32: 0xD4
  code_base_minus_one: 0xD3
  conservative_event_count: 32
  events:
    - slot: 0x0a
      event_name_hint: equip
      raw_event_entry_word: 0x0227
      raw_code_offset: 0x00000001
      derived_body_start: 0x00d4
      derived_body_end: 0x02fb
      derived_body_length: 551
      repeated_template_status: boot-event-core/shared-slot-0x0A/shared-slot-template
      body_sha1: 97f1df8d8e6c9c7e151904d9ac1296f27d93581d
      body_prefix_hex: 5a025cfd01434f52
      body_suffix_hex: 6f756e746572007a
    - slot: 0x0f
      event_name_hint: enterFastArea
      raw_event_entry_word: 0x0234
      raw_code_offset: 0x00000228
      derived_body_start: 0x02fb
      derived_body_end: 0x052f
      derived_body_length: 564
      repeated_template_status: boot-event-core/shared-slot-0x0F/shared-slot-template
      body_sha1: 7b2509b86cd4228c2a06efbdcabe5b3b660fba4d
      body_prefix_hex: 5a045c0b02434f52
      body_suffix_hex: 6f756e746572007a
    - slot: 0x10
      event_name_hint: leaveFastArea
      raw_event_entry_word: 0x003b
      raw_code_offset: 0x0000045c
      derived_body_start: 0x052f
      derived_body_end: 0x056a
      derived_body_length: 59
      repeated_template_status: boot-event-core/shared-slot-0x10/same-length-template
      body_sha1: c0958d58cd7492fdc4b809db0634325f70fea009
      body_prefix_hex: 5a005c2700434f52
      body_suffix_hex: 666572656e74007a

REE_BOOT

class:
  entry_index: 0x11B
  class_id: 0x4DB
  class_name: REE_BOOT
  class_object_index: 0x4DD
  raw_code_base_u32: 0xD4
  code_base_minus_one: 0xD3
  conservative_event_count: 32
  events:
    - slot: 0x0a
      event_name_hint: equip
      raw_event_entry_word: 0x034b
      raw_code_offset: 0x00000001
      derived_body_start: 0x00d4
      derived_body_end: 0x041f
      derived_body_length: 843
      repeated_template_status: boot-event-core/shared-slot-0x0A/shared-slot-template
      body_sha1: bae629a3de3884d6919863daab5fe25dfc24cf13
      body_prefix_hex: 5a025c2103524545
      body_suffix_hex: 6f756e746572007a
    - slot: 0x0f
      event_name_hint: enterFastArea
      raw_event_entry_word: 0x025c
      raw_code_offset: 0x0000034c
      derived_body_start: 0x041f
      derived_body_end: 0x067b
      derived_body_length: 604
      repeated_template_status: boot-event-core/shared-slot-0x0F/shared-slot-template
      body_sha1: fb0e1e9e0a7b508f635df648aa8d3e3c72b6d0a2
      body_prefix_hex: 5a045c3302524545
      body_suffix_hex: 6f756e746572007a
    - slot: 0x10
      event_name_hint: leaveFastArea
      raw_event_entry_word: 0x003b
      raw_code_offset: 0x000005a8
      derived_body_start: 0x067b
      derived_body_end: 0x06b6
      derived_body_length: 59
      repeated_template_status: boot-event-core/shared-slot-0x10/same-length-template
      body_sha1: 577c61e9c4c6fb3e8b38f1e998699184b8e6e4f5
      body_prefix_hex: 5a005c2700524545
      body_suffix_hex: 666572656e74007a

VAR_BOOT

class:
  entry_index: 0x0FC
  class_id: 0x45C
  class_name: VAR_BOOT
  class_object_index: 0x45E
  raw_code_base_u32: 0xD4
  code_base_minus_one: 0xD3
  conservative_event_count: 32
  events:
    - slot: 0x0a
      event_name_hint: equip
      raw_event_entry_word: 0x029a
      raw_code_offset: 0x00000001
      derived_body_start: 0x00d4
      derived_body_end: 0x036e
      derived_body_length: 666
      repeated_template_status: boot-event-core/shared-slot-0x0A/shared-slot-template
      body_sha1: edc529e375d63cc79454b66c00acef51c5a0bd8a
      body_prefix_hex: 5a025c7002564152
      body_suffix_hex: 6f756e746572007a
    - slot: 0x0f
      event_name_hint: enterFastArea
      raw_event_entry_word: 0x0244
      raw_code_offset: 0x0000029b
      derived_body_start: 0x036e
      derived_body_end: 0x05b2
      derived_body_length: 580
      repeated_template_status: boot-event-core/shared-slot-0x0F/shared-slot-template
      body_sha1: 6cdb54664e36def9bb6770e19632cdccbdf280a1
      body_prefix_hex: 5a045c1b02564152
      body_suffix_hex: 6f756e746572007a
    - slot: 0x10
      event_name_hint: leaveFastArea
      raw_event_entry_word: 0x003b
      raw_code_offset: 0x000004df
      derived_body_start: 0x05b2
      derived_body_end: 0x05ed
      derived_body_length: 59
      repeated_template_status: boot-event-core/shared-slot-0x10/same-length-template
      body_sha1: 83c328a3cadc280a1798c2362f8d1e9ccbe3f78e
      body_prefix_hex: 5a005c2700564152
      body_suffix_hex: 666572656e74007a