2026-04-14 17:52:45 -07:00
|
|
|
## Seam Queue
|
2026-04-11 17:55:16 -07:00
|
|
|
|
2026-04-14 17:52:45 -07:00
|
|
|
- `done` Load/save setup-preview sidecar save split:
|
|
|
|
|
the atlas now distinguishes the direct package-save `0x00442ba0 -> 0x00441ec0` branch at
|
|
|
|
|
`0x00444f42/0x00444f47` from the `.smp` serializer branch at `0x00446312`, which writes
|
|
|
|
|
`0x2ee0 -> 0x403c2 -> 0x2ee1` itself and does not re-enter `0x00441ec0`.
|
|
|
|
|
- `done` Load/save shell status-stack and tool bracketing:
|
|
|
|
|
the atlas now separates the three grounded branches: `.smp` save uses wrapper pair
|
|
|
|
|
`0x004423a0/0x004423d0`, world entry `0x00443a50` uses raw `0x004422d0/0x00442330` plus inline
|
|
|
|
|
TrackLay/StationPlace entry and service calls, and the non-`.smp` package-save tail under
|
|
|
|
|
`0x00445de0` uses raw `0x00442330` plus inline recurring tool service; current local evidence
|
|
|
|
|
does not show `0x00446d40` directly re-entering either pair.
|
|
|
|
|
- `done` Load/save selected-year launch-policy seam:
|
|
|
|
|
the split is now grounded: the ordinary saved-profile loader `0x00442400` and package-save
|
|
|
|
|
prelude `0x00444dd0` remain the two direct writers to stage dword `0x00620e94`, while
|
|
|
|
|
interactive command path `0x00464410` owns direct writes to shell launch-policy
|
|
|
|
|
`[0x006cec74+0x178]`; the load or restore consumers are explicit under `0x00436d10`,
|
|
|
|
|
`0x004384d0`, `0x00437b20`, `0x00437737`, and `0x00444dc5`.
|
|
|
|
|
- `done` Runtime/package sidecar gate provenance:
|
|
|
|
|
the sidecar-gate producer chain is now grounded: settings dispatcher `0x00464c80` owns the shell
|
|
|
|
|
dwords, package-save coordinator `0x00445de0` reseeds `0x0062bec4`, exporter `0x00442ba0` copies
|
|
|
|
|
those values into payload bytes `+0x0a/+0x0b`, and the live world bytes `[world+0x66c8/+0x66c9]`
|
|
|
|
|
inherit them only through whole-block `[world+0x66be]` copies on restore, multiplayer mirror,
|
|
|
|
|
and save/export reuse.
|
|
|
|
|
- `done` Resolve the owner-side callback roles behind the validated GameSpy packet branches:
|
|
|
|
|
route constructor `0x0058c9b0` seeds `[route+0x9c]` from the transport callback table and zeros
|
|
|
|
|
`[route+0xa0/+0xa4/+0xd4]`; the transport-owned status/live connect paths then patch
|
|
|
|
|
`[route+0xa0] -> 0x00597330`, keep `[route+0xa4/+0xd4]` null, and therefore make subtype `4`
|
|
|
|
|
dispatch through `0x005972c0`, subtype `6` use the validated extended-payload lane before an
|
|
|
|
|
optional raw fallback, and semicolon-line parsing remain an inactive optional branch for those
|
|
|
|
|
routes.
|
|
|
|
|
- `done` Determine whether later world-mode branches bypass the shell controller input path:
|
|
|
|
|
current local evidence still keeps the full grounded chain under the same shell-fed roots
|
|
|
|
|
`0x006d4018` and `0x006d4024`, from cursor drag `0x00478cb0`, hotspot service `0x004e0780`, and
|
|
|
|
|
camera service `0x0043db00` down through the frame-owned hover or focus-target tail at
|
|
|
|
|
`0x0043963d`; no separate gameplay-only input object or later non-cursor bypass branch is
|
|
|
|
|
exposed in the current local traces.
|
|
|
|
|
- `done` Load/save null-cargo fallback boundary in the recipe import bridge:
|
|
|
|
|
the importer-side `0x004120b0 -> 0x00411ee0 -> 0x00412650` chain is now narrow enough to treat
|
|
|
|
|
cargo id `0` as a fallback or sentinel lane rather than another ordinary cargo meaning: failed
|
|
|
|
|
exact matches still land in the first summary-bank bucket, but steady-state callers do not probe
|
|
|
|
|
cargo id `0` like a normal cargo id and the placed-structure sweep diverts explicit `0` requests
|
|
|
|
|
into the linked-site classification path instead of the ordinary cargo-reference helper.
|
|
|
|
|
- `done` Load/save recipe marker-token provenance boundary at `[world+0x0fe7]`:
|
|
|
|
|
current local evidence does not surface any in-binary non-editor author for the unmatched
|
|
|
|
|
marker-like token families. The reset path only seeds names, the editor preserves or rewrites
|
|
|
|
|
token lanes verbatim, the importer runs only the exact-name match at `0x0041e9f0`, and checked
|
|
|
|
|
map/save pairs preserve those raw marker payloads byte-for-byte. So the load/save seam is closed
|
|
|
|
|
at the current evidence level as opaque scenario-authored payload preserved through persistence,
|
|
|
|
|
not as one more hidden runtime decode or writer path inside the local binary.
|
|
|
|
|
- `done` Load/save clear-only boundary at `[world+0x4cae/+0x4cb2]`:
|
|
|
|
|
the current local corpus keeps both dwords on the same negative-evidence boundary: checked save
|
|
|
|
|
offsets stay zero there, the startup pre-dispatch helper `0x004336d0`, shared reset owner
|
|
|
|
|
`0x00436d10`, and post-fast-forward tail around `0x00437120` only clear them, and the current
|
|
|
|
|
binary still does not expose any direct non-clear readers or writers. That is enough to treat
|
|
|
|
|
them as a reset-owned structural pair rather than an active unresolved policy lane.
|
|
|
|
|
- `done` Load/save late-state plateau boundary under `[world+0x4cc2..]`:
|
|
|
|
|
the atlas already closes this as a layout seam at the current evidence level: `0x00436d10` is
|
|
|
|
|
the grounded reset owner, serializer-side evidence jumps from the leading tuning lanes straight
|
|
|
|
|
to the recipe-book root, and the current binary does not expose direct literal-offset readers or
|
|
|
|
|
writers for the first dwords in the plateau after the bulk clear. The remaining unknowns there
|
|
|
|
|
are per-field semantics, not an open load/save ownership seam.
|
|
|
|
|
- `done` Load/save named-availability header-word framing above `[world+0x66b2/+0x66b6]`:
|
|
|
|
|
`0x00517d90` now closes the ownership boundary: those words belong to the generic
|
|
|
|
|
indexed-collection header path on the package-save branch, while the `.smp` branch bypasses that
|
|
|
|
|
header entirely and writes only direct counted fixed-row runs. Their exact semantic names remain
|
|
|
|
|
ungrounded, but as a load/save seam they are now bounded as outer collection-framing dwords
|
|
|
|
|
rather than hidden payload fields inside the named-availability row families.
|
|
|
|
|
- `done` Load/save special-condition tail scalar boundary at `[world+0x4b0b..+0x4b3f]`:
|
|
|
|
|
the current corpus and parser notes now close this at the ownership level as one fixed
|
|
|
|
|
post-sentinel save window that overlaps the aligned scenario-rule band, then continues as a
|
|
|
|
|
save-only tail into the grounded `[world+0x4b47]` status-text region. Direct consumers for the
|
|
|
|
|
intervening dwords remain sparse, but that is now a semantic-naming gap rather than an open
|
|
|
|
|
load/save seam.
|
|
|
|
|
- `done` Load/save compact setup-profile slab framing in classic/1.05 saves:
|
|
|
|
|
the load/save seam is closed at the current evidence level as one serialized setup-profile slab
|
|
|
|
|
with a grounded runtime-profile core plus serializer-owned framing and scenario-family metadata.
|
|
|
|
|
The fixed middle bytes, skewed classic front edge, leading dword, and scenario-save-only extra
|
|
|
|
|
bands remain naming work, not unresolved ownership.
|
|
|
|
|
- `done` Load/save semantic meaning of recipe-import `cargo id 0`:
|
|
|
|
|
the current caller layer narrows `cargo id 0` to a linked-site classification sentinel rather
|
|
|
|
|
than a normal cargo identity. Failed exact-name imports can still land in bucket `0`, but
|
|
|
|
|
steady-state cargo-service callers avoid probing that id and the placed-structure sweep reuses it
|
|
|
|
|
as the nonstandard linked-site or station-or-transit bypass path instead of the ordinary
|
|
|
|
|
cargo-reference helper.
|
|
|
|
|
- `done` Load/save semantic naming of recipe line mode values and token classes:
|
|
|
|
|
the remaining gap is now bounded tightly enough to carry as naming, not as an open seam. The
|
|
|
|
|
player-facing mode family is grounded directly from the editor page and importer split as
|
|
|
|
|
`Disabled`, `Demand Only`, `Supply Only`, and `Production Demand->Supply`; the recurring saved
|
|
|
|
|
token families are named conservatively as `high16-ascii-stem`, `high16-numeric`, and
|
|
|
|
|
`low16-marker`; and the recurring row signatures are named as `demand-numeric-entry`,
|
|
|
|
|
`demand-stem-entry`, `supply-numeric-entry`, and `supply-marker-entry`. The unresolved part is
|
|
|
|
|
only whether some opaque numeric or marker words are literal cargo ids or scenario-authored
|
|
|
|
|
token codes, not another missing load/save naming boundary.
|
|
|
|
|
- `done` Load/save semantic naming inside the late-state plateau `[world+0x4cc2..]`:
|
|
|
|
|
the family now carries one conservative load/save name. The opening run is the reset-owned
|
|
|
|
|
late-state scalar plateau immediately ahead of the recipe books, while the grounded neighbors are
|
|
|
|
|
the support-entry counters `[world+0x4c9a/+0x4c9e]`, pending-plus-accumulated support float pair
|
|
|
|
|
`[world+0x4ca6/+0x4caa]`, selected-train latch `[world+0x4cb6]`, selected-station latch
|
|
|
|
|
`[world+0x4cba]`, and cached available-locomotive rating `[world+0x4cbe]`. What remains missing
|
|
|
|
|
is only per-dword decode inside the opening unlabeled slice, not load/save naming.
|
|
|
|
|
- `done` Load/save semantic naming of post-special-conditions tail dwords `[world+0x4b0b..+0x4b3f]`:
|
|
|
|
|
the window now carries one conservative family name as the post-sentinel special-condition save
|
|
|
|
|
tail, with `[world+0x4b43]` as its grounded trailing scalar and the earlier dwords preserved as
|
|
|
|
|
opaque tail scalars within the same saved rule-family extension.
|
|
|
|
|
- `done` Load/save semantic naming of compact setup-profile slab framing bytes:
|
|
|
|
|
the framing now has conservative names at the family level: one leading serializer-tag dword,
|
|
|
|
|
one stable presence byte, one skewed classic front edge, one classic fixed middle strip, one
|
|
|
|
|
scenario-sensitive middle word around `+0x80`, and one scenario-save-only extra band
|
|
|
|
|
`+0x88..+0x8b`, all wrapped around the already-grounded setup-profile core.
|
|
|
|
|
- `done` Transport selector-request lane semantics around `0x593980/0x593c40/0x59fc80`:
|
|
|
|
|
the old broad request-id note is replaced by the grounded lane split the atlas actually exposes.
|
|
|
|
|
Outer `Multiplayer.win` requested actions are bounded at `0x004ef960`, with action `1` as the
|
|
|
|
|
preview-reset/entry lane, action `2` as the staged-text and local-session-slot promotion lane,
|
|
|
|
|
and action `4` as the committed-text or launch-side promotion lane. Beneath that, the concrete
|
|
|
|
|
transport submit owners are `0x5959e0 -> 0x593980` for bound-route status requests, `0x593c40`
|
|
|
|
|
for selector-text route requests, and the second selector-descriptor callback lane rooted at
|
|
|
|
|
`0x59fc80` for named-selector callback publication.
|
|
|
|
|
- `done` Transport compact-descriptor auxiliary dword semantics at `[descriptor+0x10]`:
|
|
|
|
|
the field now carries one conservative family name as the compact-header auxiliary inline dword.
|
|
|
|
|
Header bit `0x08` gates its presence, setter `0x58d650` owns the decode-side store, and later
|
|
|
|
|
descriptor copy or callback-marshaling helpers preserve it without exposing a narrower dedicated
|
|
|
|
|
reader.
|
|
|
|
|
- `done` Transport preview-dataset reuse boundary outside `Multiplayer.win`:
|
|
|
|
|
the caller set is now broad enough to close the boundary. Beyond the core `Multiplayer.win`
|
|
|
|
|
flows, preview submitter `0x00469d30` is reused by the `.gmt` save-mode branch in `0x00445de0`,
|
|
|
|
|
`BuildingDetail.win` auxiliary sync, `Start New Company...` side-owner submission,
|
|
|
|
|
`CompanyDetail.win` async multiplayer actions, and multiple dataset-side selector or update
|
|
|
|
|
owners, while current local evidence still keeps that reuse inside shell-side preview or async
|
|
|
|
|
families rather than ordinary world or simulation cadence.
|
|
|
|
|
- `done` StationDetail lower action and special-action semantic naming:
|
|
|
|
|
the page now carries conservative family names instead of broader residual notes. The ordinary
|
|
|
|
|
non-scenario branch is the station-summary presentation lane over nearby-site jumps plus `To/From`
|
|
|
|
|
hauled-traffic widgets; the lower `0xb3b5..0xb3bf` strip is the linked-site mutation action band
|
|
|
|
|
with affordability notice and validate-or-apply branches; and special control `0xb3f8` is the
|
|
|
|
|
editor-gated scenario-station special-case affordance.
|
|
|
|
|
- `done` StationDetail route-list companion payload meaning under `[site+0x462/+0x466]`:
|
|
|
|
|
the six-byte list now carries a conservative split as a peer-site route-entry key plus one
|
|
|
|
|
trailing route-entry companion payload word reserved for non-overlay caller families.
|
|
|
|
|
- `done` StationDetail linked-instance terrain-class caller meaning:
|
|
|
|
|
the later consumers are now bounded conservatively as linked-instance secondary-raster class
|
|
|
|
|
filter families used by world-side and linked-peer gating, rather than as a remaining unnamed
|
|
|
|
|
caller cloud above the helper strip.
|
|
|
|
|
- `done` Shell/gameplay cadence handoff across bootstrap, shell command, presentation, map-load, and runtime roots:
|
|
|
|
|
the repeated atlas-level handoff note is now closed under one conservative current-evidence
|
|
|
|
|
boundary: long-lived gameplay cadence still rendezvous with the shell-owned frame and bring-up
|
|
|
|
|
coordinators, and the atlas no longer leaves separate page-local open-question wording across
|
|
|
|
|
those shell bring-up pages.
|
|
|
|
|
- `done` Station-detail city-connection caller ladder above the formatter family:
|
|
|
|
|
the station-detail page now carries the broader caller side conservatively as the
|
|
|
|
|
city-connection / company-start announcement ladder above the already-grounded peer-selector,
|
|
|
|
|
route-build, and prime-rate branches.
|
|
|
|
|
- `done` Editor residual semantic naming for recipe-token provenance and event-validation score bands:
|
|
|
|
|
`editor-breadth.md` now carries the supply-marker token family as opaque scenario-authored marker
|
|
|
|
|
strings, the event-validation score and flag slice as gameplay metric bands, and the placed-
|
|
|
|
|
structure `+0x42` caution as an immediate accessor cluster without extending that evidence to the
|
|
|
|
|
unrelated later mode-gated byte readers.
|
|
|
|
|
- `done` Setup payload lower-slab consumer naming around `0x6a70`:
|
|
|
|
|
the lower setup slice is now carried conservatively as a candidate-table slab inside the broader
|
|
|
|
|
setup payload family, with current named consumers still bounded to earlier setup offsets.
|
|
|
|
|
- `done` Runtime residual naming for detail-panel modes `0x06/0x0b`, mode-gated flag byte `+0x42`, and PaintTerrain per-mode scalar lanes:
|
|
|
|
|
the runtime page now carries those families conservatively as the scenario-toggle-gated
|
|
|
|
|
company-detail mode-`0x0b` gate, the selected-company-or-editor mode-`0x06` gate, one local
|
|
|
|
|
runtime enable byte, and PaintTerrain per-mode scalar or token bands beneath the grounded
|
|
|
|
|
shell/world ownership split.
|
|
|
|
|
- `done` Save/runtime late scalar-family naming around `[world+0x4cae/+0x4cb2]` and the 1.05-only scalar band:
|
|
|
|
|
the remaining save/runtime notes now carry those lanes conservatively as startup-dispatch
|
|
|
|
|
companion dwords inside the reset-owned late save-visible cluster and as the 1.05-only late
|
|
|
|
|
scalar tail beneath the aligned runtime-rule base.
|
|
|
|
|
- `done` Function-map structural stub and constant-slot naming families:
|
|
|
|
|
the remaining pure stub, constant-return, raw-flag, and fixed-value rows now carry bounded
|
|
|
|
|
structural names without explicit open-work wording.
|
|
|
|
|
- `done` Function-map shell command, detail-panel mode, and input-registration caption families:
|
|
|
|
|
the remaining command-side rows now stay at the concrete localized-id, action-id, control-id, or
|
|
|
|
|
mode-family level instead of carrying unresolved caption or user-facing-verb notes.
|
|
|
|
|
- `done` Function-map SettingsWindow field and caption families:
|
|
|
|
|
the remaining settings-page rows now carry bounded page-owned selector, toggle, shell-config, and
|
|
|
|
|
display-runtime field names instead of open caption or field-meaning notes.
|
|
|
|
|
- `done` Function-map Trainbuy, paired preview-selector widget, and adjacent shell widget subtype families:
|
|
|
|
|
the train-side selector strip, paired preview-selector family, adjacent world-surface brush strip,
|
|
|
|
|
and neighboring shell widget rows now carry conservative family names without explicit subtype
|
|
|
|
|
uncertainty.
|
|
|
|
|
- `done` Function-map surface-decoder user-facing format-name families:
|
|
|
|
|
the decoder rows now carry exact tag, FourCC, aux-mode, stride, packed-YUV, or DXT family names
|
|
|
|
|
without leaving user-facing pixel-format labels as open work.
|
|
|
|
|
- `done` Function-map transport residual descriptor and callback-sidecar families:
|
|
|
|
|
the remaining transport-side rows now keep the staged route descriptor tuple, negative sidecar
|
|
|
|
|
boundary, callback-table attach, and selector helper wording at bounded structural family names.
|
|
|
|
|
- `done` Function-map route-entry optional-hook and queued-record prompt naming:
|
|
|
|
|
the route-entry optional-refresh hook, idle-shell queued-record prompt, and adjacent collection-
|
|
|
|
|
validation rows now carry bounded family names without explicit residual notes.
|
|
|
|
|
- `done` Function-map additional CompanyDetail, PaintTerrain callback, display command, UI image-slot, and support-math helper wording:
|
|
|
|
|
the export sweep also closed the remaining small helper notes encountered during the pass,
|
|
|
|
|
including the CompanyDetail overview/help formatter strip, the PaintTerrain numeric-updater
|
|
|
|
|
callback wording, the display-resolution command wrapper, the UI image-slot loader, and the
|
|
|
|
|
support-math helper rows that previously left axis-order or API-variant wording open.
|
|
|
|
|
|
|
|
|
|
## Queue Rules
|
|
|
|
|
|
|
|
|
|
- When a seam closes or narrows materially, move or rewrite the queue item instead of leaving the
|
|
|
|
|
old gap described only in page-local prose.
|
|
|
|
|
- Prefer queue items that name concrete addresses and payload roots over broad subsystem notes.
|
|
|
|
|
- Keep pending template, transport, and save/load work scoped to the specific atlas edges that
|
|
|
|
|
remain unresolved.
|