- 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.
7.8 KiB
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