Crusader_Decomp/USECODE/EUSECODE_extracted/runtime_descriptor_family_rankings.tsv
MaddoScientisto de42fd1ea1 Add Crusader-specific USECODE data and documentation
- Introduced new file `vm_mask_ladder.tsv` containing detailed mappings for Crusader USECODE VM masks and their associated descriptors.
- Added comprehensive documentation in `scummvm-crusader-reference.md` outlining the structure, findings, and implications for reverse-engineering the Crusader engine within ScummVM.
- Created `usecode-roundtrip-ir.md` to document the plan for converting Crusader USECODE bytes into a human-readable format, detailing the container layout, event names, and intrinsic tables.
- Implemented a PowerShell script `temp_usecode_sample.ps1` for extracting and analyzing USECODE data from the Crusader FLX files, providing insights into class and event structures.
2026-03-22 17:26:39 +01:00

6 KiB

1lane_rankprimary_runtime_lanedescriptor_familyrepresentative_labelsfit_strengthconfidenceruntime_opsmask_pairsowner_sourceloader_evidenceselector_statuswhy
21active-event payload laneevent-hubEVENTstrongesthighAPPEND_UNIQUE_INLINE,APPEND_UNIQUE_INDIRECT,REMOVE_MATCHING_INDIRECT,REMOVE_MATCHING_INLINE,MATERIALIZE_OR_FORWARD_VALUE,PREPEND_INLINE_PAYLOAD,BUILD_ENTITY_LINK_MATRIX,EMIT_OR_PUSHBACK_RESULT,FINALIZE_MIXED_VALUE_TO_OUTPTR0x0001:0000,0x0002:0001,0x0004:0002,0x0010:0004,0x0020:0005,0x0200:0009,0x0400:000a,0x0800:000b,0x1000:000c,0x2000:0015,0x4000:000e,0x8000:0007,0x8000:000f000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedExplicit 69:0A00 event tag plus the richest source/dest/door/link/time/counter payload shape; best current match for the VM payload-chain plus link-matrix lane.
32active-event payload laneboot-event-coreAND_BOOT,BRO_BOOT,COR_BOOT,VAR_BOOT,REE_BOOTstronghighAPPEND_UNIQUE_INLINE,APPEND_UNIQUE_INDIRECT,REMOVE_MATCHING_INDIRECT,REMOVE_MATCHING_INLINE,MATERIALIZE_OR_FORWARD_VALUE,PREPEND_INLINE_PAYLOAD,BUILD_ENTITY_LINK_MATRIX,EMIT_OR_PUSHBACK_RESULT,FINALIZE_MIXED_VALUE_TO_OUTPTR0x0001:0000,0x0002:0001,0x0004:0002,0x0010:0004,0x0020:0005,0x0200:0009,0x0400:000a,0x0800:000b,0x1000:000c,0x2000:0015,0x4000:000e,0x8000:0007,0x8000:000f000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedAll five _BOOT descriptors share one compact referent,event,counter,item schema and sit beside referent-heavy object islands that fit the same active-event runtime lane.
43active-event payload lanenpc-triggerNPCTRIGstrongmoderate-highAPPEND_UNIQUE_INLINE,APPEND_UNIQUE_INDIRECT,REMOVE_MATCHING_INDIRECT,REMOVE_MATCHING_INLINE,MATERIALIZE_OR_FORWARD_VALUE,PREPEND_INLINE_PAYLOAD,BUILD_ENTITY_LINK_MATRIX,EMIT_OR_PUSHBACK_RESULT,FINALIZE_MIXED_VALUE_TO_OUTPTR0x0001:0000,0x0002:0001,0x0004:0002,0x0010:0004,0x0020:0005,0x0200:0009,0x0400:000a,0x0800:000b,0x1000:000c,0x2000:0015,0x4000:000e,0x8000:0007,0x8000:000f000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedNPCTRIG carries an explicit event field and sits in the same compact event-bearing core as EVENT and COR_BOOT, but its narrower field set makes it look more satellite than hub.
54active-event payload laneminimal-event-coreSFXTRIGmoderatemoderateAPPEND_UNIQUE_INLINE,APPEND_UNIQUE_INDIRECT,REMOVE_MATCHING_INDIRECT,REMOVE_MATCHING_INLINE,MATERIALIZE_OR_FORWARD_VALUE,PREPEND_INLINE_PAYLOAD,BUILD_ENTITY_LINK_MATRIX,EMIT_OR_PUSHBACK_RESULT,FINALIZE_MIXED_VALUE_TO_OUTPTR0x0001:0000,0x0002:0001,0x0004:0002,0x0010:0004,0x0020:0005,0x0200:0009,0x0400:000a,0x0800:000b,0x1000:000c,0x2000:0015,0x4000:000e,0x8000:0007,0x8000:000f000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedSFXTRIG keeps the active event tag while stripping most side fields, so it still fits the live event lane but as a smaller attachment form rather than a full hub or boot core.
65active-event payload laneenvironmental-eventFLAMEBOX,NOSTRIL,STEAMBOXmoderatemoderateAPPEND_UNIQUE_INLINE,APPEND_UNIQUE_INDIRECT,REMOVE_MATCHING_INDIRECT,REMOVE_MATCHING_INLINE,MATERIALIZE_OR_FORWARD_VALUE,PREPEND_INLINE_PAYLOAD,BUILD_ENTITY_LINK_MATRIX,EMIT_OR_PUSHBACK_RESULT,FINALIZE_MIXED_VALUE_TO_OUTPTR0x0001:0000,0x0002:0001,0x0004:0002,0x0010:0004,0x0020:0005,0x0200:0009,0x0400:000a,0x0800:000b,0x1000:000c,0x2000:0015,0x4000:000e,0x8000:0007,0x8000:000f000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedFLAMEBOX, NOSTRIL, and STEAMBOX share the same active event grammar, but no hazard-specific opcode or mask split is proven yet beyond the generic active-event-biased ladder.
76referent-anchor / payload-owner lanereferent-anchorJELYHACK,JELYH2strongmoderate-highAPPEND_UNIQUE_INLINE,APPEND_UNIQUE_INDIRECT,REMOVE_MATCHING_INDIRECT,REMOVE_MATCHING_INLINE,MATERIALIZE_OR_FORWARD_VALUEanchor role uses referent registry and payload ownership; no anchor-specific slot mask proven000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedJELYHACK and JELYH2 are still referent-only, but the VM referent registry and payload-chain machinery now make that a live anchor role rather than inert metadata.
87callback / attachment lanecallback-eventtriggerSURCAMNS,SURCAMEWweak-moderatemoderateMATERIALIZE_OR_FORWARD_VALUE,PUSH_FRAME_WORD_LITERAL,COMPARE_STREAM_DWORD_AND_PUSH_BOOL,FINALIZE_MIXED_VALUE_TO_OUTPTRno callback-specific mask pair proven; verified ladder still favors active event carriers000d:44df -> 000d:4c99 -> 000d:7000 -> (+0x10/+0x12) + 0x0d*slot + 40009:67b6/6916 walk helper-owned +0x10/+0x18 tables, format per-entry paths, and then open/read/close files0x19/0x1a/0x1b proven in 000d:0988; 0x18 implied; upstream [BP-0x32] seed unresolvedSURCAMNS and SURCAMEW are structurally coherent callback holders with eventTrigger tags, but the current mask ladder and opcode evidence still align more strongly with active event carriers than callback-specific dispatch.