From 499462fae5d92c0fdf314e1d7d233c4a69e8c23c Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sun, 19 Apr 2026 12:55:36 -0700 Subject: [PATCH] Rule out event branch in region restore strip --- crates/rrt-runtime/src/smp.rs | 1 + ...st-load-generation-paintterrain-and-save-load-restore.md | 5 +++++ docs/rehost-queue.md | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index bf05909..30d25f3 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -5847,6 +5847,7 @@ fn build_region_service_trace_report( "direct disassembly of 0x00421510 now also shows the exact tagged loop shape: it opens 0x5209, reads 0x520a, iterates live entry ordinals through 0x518380/0x518140, seeds a stack-local world-region vtable helper through 0x0041f590/0x0041f5b0, dispatches each loaded record through slot +0x40, and only then closes 0x520b".to_string(), "direct disassembly of 0x0041f5c0 now also shows its post-0x00455fc0 work is local to the profile collection path: it clamps [region+0x31b] back to 1.0f when needed, zeroes [region+0x317], allocates one 0x88-sized helper through 0x53b070/0x518b90, stores it at [region+0x37f], loads that helper through 0x518680, and clears [region+0x385] before returning".to_string(), "the first caller-side checkpoint above 0x00421510 is now grounded too: 0x00444887 invokes the region collection refresh inside a broader restore sequence and then immediately advances to territory_collection_refresh_records_from_tagged_bundle 0x00487c20 and support_collection_refresh_records_from_tagged_bundle 0x0040b5d0, which makes the missing latches look like a later global rebuild seam rather than hidden work inside 0x00421510 itself".to_string(), + "direct disassembly now rules down the next 0x00444887 continuation branch too: after the region, territory, and support refresh owners, 0x00433130 only opens 0x4e99/0x4e9a, repopulates live event collection 0x0062be18 through 0x0042db20, and closes 0x4e9b, so that event-side loader is not the missing later region restore handoff for [region+0x2a4] or [region+0x310/+0x338/+0x360] either".to_string(), "that broader restore strip now also has one grounded later region-local sweep: at 0x00444b08 it re-enters the live region collection through 0x00421ce0, which walks live records via 0x518380/0x518140 and dispatches 0x0041fb00 per record".to_string(), "the checked-in atlas already grounds 0x0041fb00 as the class-0-only default-region helper under the same family, and 0x00421730 as the later raster finalizer that repopulates [world+0x212d] from class-0 region ids".to_string(), "direct disassembly now tightens that later sweep too: 0x0041fb00 exits immediately for nonzero [region+0x23e], while 0x00421730 clears the per-cell region word at [world+0x212d]+cell*4+1, seeds cached bounds-like fields [region+0x242/+0x246/+0x24a/+0x24e/+0x252], and only then enters the class-0 path that consumes [region+0x256] and the coordinate helpers 0x00455800/0x00455810".to_string(), diff --git a/docs/control-loop-atlas/post-load-generation-paintterrain-and-save-load-restore.md b/docs/control-loop-atlas/post-load-generation-paintterrain-and-save-load-restore.md index c837cf1..b33a2d8 100644 --- a/docs/control-loop-atlas/post-load-generation-paintterrain-and-save-load-restore.md +++ b/docs/control-loop-atlas/post-load-generation-paintterrain-and-save-load-restore.md @@ -1363,6 +1363,11 @@ The same brush strip is tighter now too: per-cell compatibility bits through the byte-level helpers `0x00448c20/0x00448cb0/0x00448d90/0x00448e60/0x00448e90/0x0044de30`, with the older pre-`0x400` branch explicitly clearing those newer bits back to the legacy fallback pattern. + The `0x00444887` continuation is ruled down further now too: after the region, territory, and + support refresh owners, its next loader `0x00433130` is only the packed runtime-event restore + path, opening `0x4e99/0x4e9a`, repopulating live event collection `0x0062be18` through + `0x0042db20`, and closing `0x4e9b`. So that event-side branch is not the missing later region + restore handoff for `[region+0x2a4]` or `[region+0x310/+0x338/+0x360]` either. One adjacent mid-restore preview branch is explicit now too: for version `>= 0x3ee` the loader restores one width/height-tagged dword surface, optionally resamples it through `shell_world_presentation_stage_overlay_rect_from_normalized_bounds` `0x00534930`, republishes it diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 73fa7c7..404b379 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -1552,6 +1552,12 @@ Working rule: `[region+0x317/+0x31b]` band through `0x00420350`. So the next region pass should treat the broader `0x00444887` continuation as the live handoff seam when chasing `[region+0x2a4]` and `[region+0x310/+0x338/+0x360]`, not as just another generic restore note. +- That same continuation is less ambiguous now too: the loader immediately after territory/support + refresh, `0x00433130`, is only + `scenario_event_collection_refresh_runtime_records_from_packed_state`, opening `0x4e99/0x4e9a`, + repopulating live event collection `0x0062be18` through `0x0042db20`, and closing `0x4e9b`. + So the event-side branch under `0x00444887` is ruled out as the missing later region restore + handoff too. - That same continuation is slightly less symmetric now too: the atlas-backed territory side at `0x00487c20` currently restores only collection metadata/live ids and still uses no-op per-entry load/save callbacks `0x00487670/0x00487680`, so the next pass should bias more heavily toward