Decode remaining parity sample framing
This commit is contained in:
parent
43c76adbf0
commit
1e36e6c929
5 changed files with 75 additions and 17 deletions
12
README.md
12
README.md
|
|
@ -45,11 +45,13 @@ strong: `Use Bio-Accelerator Cars`, `Disable Cargo Economy`, `Disable Train Cras
|
|||
Train Crashes AND Breakdowns`, and `AI Ignore Territories At Startup`. Whole-game condition decode
|
||||
is broader now too: checked-in world-flag condition ids can lower into `world_flag_equals` gates
|
||||
for boolean equality/inequality forms, so real packed records can gate whole-game effects on
|
||||
existing `world_flags` without fixture-authored placeholder ids. Explicit unmapped world-condition
|
||||
and world-descriptor frontier buckets still remain where current checked-in metadata stops. Shell
|
||||
purchase-flow and selected-profile parity remain out of scope. Mixed supported/unsupported real
|
||||
rows still stay parity-only. The PE32 hook remains useful as capture and integration tooling, but
|
||||
it is no longer the main execution milestone.
|
||||
existing `world_flags` without fixture-authored placeholder ids. The tracked parity save-slice no
|
||||
longer depends on a raw `unsupported_framing` placeholder either: its remaining residue is now one
|
||||
structured `real_packed_v1` record that lands in the explicit `blocked_unmapped_real_descriptor`
|
||||
bucket. Explicit unmapped world-condition and world-descriptor frontier buckets still remain where
|
||||
current checked-in metadata stops. Shell purchase-flow and selected-profile parity remain out of
|
||||
scope. Mixed supported/unsupported real rows still stay parity-only. The PE32 hook remains useful
|
||||
as capture and integration tooling, but it is no longer the main execution milestone.
|
||||
|
||||
## Project Docs
|
||||
|
||||
|
|
|
|||
|
|
@ -119,6 +119,9 @@ The highest-value next passes are now:
|
|||
- whole-game ordinary-condition coverage is broader now too: checked-in world-flag condition ids
|
||||
can lower into `world_flag_equals` gates for boolean equality/inequality forms, so real packed
|
||||
rows can gate whole-game effects on existing `world_flags`
|
||||
- the tracked parity save-slice now keeps its remaining non-imported residue as structured
|
||||
`real_packed_v1` parity records, with the first captured leftover moved out of
|
||||
`unsupported_framing` and into the explicit `blocked_unmapped_real_descriptor` frontier
|
||||
- keep in mind that the current local `.gms` corpus still exports with no packed event collection,
|
||||
so real descriptor mapping needs to stay plumbing-first until better captures exist
|
||||
- use `rrt-hook` primarily as optional capture or integration tooling, not as the first execution
|
||||
|
|
|
|||
|
|
@ -74,6 +74,9 @@ Implemented today:
|
|||
- whole-game ordinary-condition decode now covers checked-in world-flag condition ids too for
|
||||
boolean equality/inequality forms, so real packed rows can gate whole-game effects on existing
|
||||
`world_flags` through `world_flag_equals` without fixture-authored placeholder ids
|
||||
- the tracked parity save-slice no longer preserves an opaque `unsupported_framing` record; its
|
||||
remaining captured residue is now structurally decoded `real_packed_v1` parity state that lands
|
||||
in existing explicit blocker buckets
|
||||
|
||||
That means the next implementation work is breadth, not bootstrap. The recommended next slice is
|
||||
broader real grouped-descriptor and ordinary condition-id coverage beyond the current access,
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@
|
|||
"calendar_projection_is_placeholder": true,
|
||||
"packed_event_collection_present": true,
|
||||
"packed_event_record_count": 2,
|
||||
"packed_event_decoded_record_count": 1,
|
||||
"packed_event_decoded_record_count": 2,
|
||||
"packed_event_imported_runtime_record_count": 1,
|
||||
"packed_event_parity_only_record_count": 1,
|
||||
"packed_event_unsupported_record_count": 1,
|
||||
"packed_event_parity_only_record_count": 2,
|
||||
"packed_event_unsupported_record_count": 0,
|
||||
"packed_event_blocked_missing_condition_context_count": 0,
|
||||
"packed_event_blocked_territory_condition_scope_count": 0,
|
||||
"packed_event_blocked_missing_compact_control_count": 0,
|
||||
"packed_event_blocked_unmapped_real_descriptor_count": 0,
|
||||
"packed_event_blocked_unmapped_real_descriptor_count": 1,
|
||||
"packed_event_blocked_structural_only_count": 0,
|
||||
"event_runtime_record_count": 1,
|
||||
"total_company_cash": 0
|
||||
|
|
@ -45,8 +45,15 @@
|
|||
"live_entry_ids": [3, 5],
|
||||
"records": [
|
||||
{
|
||||
"decode_status": "unsupported_framing",
|
||||
"payload_family": "unsupported_framing"
|
||||
"decode_status": "parity_only",
|
||||
"payload_family": "real_packed_v1",
|
||||
"import_outcome": "blocked_unmapped_real_descriptor",
|
||||
"grouped_effect_rows": [
|
||||
{
|
||||
"descriptor_id": 250,
|
||||
"row_shape": "scalar_assignment"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"decode_status": "parity_only",
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
"original_save_sha256": "parity-sample-sha256",
|
||||
"notes": [
|
||||
"tracked as JSON save-slice document rather than raw .smp",
|
||||
"preserves one unsupported row and one semantically decoded-but-parity-only row"
|
||||
"preserves one structured-but-unmapped row and one semantically decoded-but-parity-only row"
|
||||
]
|
||||
},
|
||||
"save_slice": {
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
"live_id_bound": 5,
|
||||
"live_record_count": 2,
|
||||
"live_entry_ids": [3, 5],
|
||||
"decoded_record_count": 1,
|
||||
"decoded_record_count": 2,
|
||||
"imported_runtime_record_count": 1,
|
||||
"records": [
|
||||
{
|
||||
|
|
@ -41,13 +41,56 @@
|
|||
"live_entry_id": 3,
|
||||
"payload_offset": 29186,
|
||||
"payload_len": 96,
|
||||
"decode_status": "unsupported_framing",
|
||||
"payload_family": "unsupported_framing",
|
||||
"grouped_effect_row_counts": [0, 0, 0, 0],
|
||||
"decode_status": "parity_only",
|
||||
"payload_family": "real_packed_v1",
|
||||
"trigger_kind": 6,
|
||||
"one_shot": false,
|
||||
"compact_control": {
|
||||
"mode_byte_0x7ef": 6,
|
||||
"primary_selector_0x7f0": 0,
|
||||
"grouped_mode_0x7f4": 2,
|
||||
"one_shot_header_0x7f5": 0,
|
||||
"modifier_flag_0x7f9": 0,
|
||||
"modifier_flag_0x7fa": 0,
|
||||
"grouped_target_scope_ordinals_0x7fb": [0, 0, 0, 0],
|
||||
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
|
||||
"summary_toggle_0x800": 1,
|
||||
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
|
||||
},
|
||||
"text_bands": [],
|
||||
"standalone_condition_row_count": 0,
|
||||
"standalone_condition_rows": [],
|
||||
"grouped_effect_row_counts": [1, 0, 0, 0],
|
||||
"grouped_effect_rows": [
|
||||
{
|
||||
"group_index": 0,
|
||||
"row_index": 0,
|
||||
"descriptor_id": 250,
|
||||
"descriptor_label": null,
|
||||
"target_mask_bits": null,
|
||||
"parameter_family": null,
|
||||
"opcode": 3,
|
||||
"raw_scalar_value": 42,
|
||||
"value_byte_0x09": 0,
|
||||
"value_dword_0x0d": 0,
|
||||
"value_byte_0x11": 0,
|
||||
"value_byte_0x12": 0,
|
||||
"value_word_0x14": 0,
|
||||
"value_word_0x16": 0,
|
||||
"row_shape": "scalar_assignment",
|
||||
"semantic_family": null,
|
||||
"semantic_preview": null,
|
||||
"locomotive_name": null,
|
||||
"notes": [
|
||||
"real grouped-effect row preserved structurally; descriptor identity not yet recovered"
|
||||
]
|
||||
}
|
||||
],
|
||||
"decoded_actions": [],
|
||||
"executable_import_ready": false,
|
||||
"notes": [
|
||||
"real payload framing not yet decoded"
|
||||
"decoded from grounded real 0x4e9a row framing",
|
||||
"grouped row preserved structurally but still unmapped in the checked-in descriptor table"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue