- 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.
239 lines
7.8 KiB
Markdown
239 lines
7.8 KiB
Markdown
# _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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```yaml
|
|
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
|
|
```
|