Commit graph

210 commits

Author SHA1 Message Date
Erik
c8ec04e97d docs #477: bound first-failure reporting and extended reproduction 2026-09-05 18:49:22 +02:00
Erik
cd888a4932 fix #482: restore neighboring outdoor wall collision
Retain building and object collision for available neighboring landcells when the terrain polygon does not cover the sphere center. Verified against named and paired retail dispatch. Add prepared-flat regressions and installed cathedral repro with sabotage proof. Full Release gate 17036/0/0 and graphical wall blocking, overlap correction and escape pass provisionally. Owner accepts functional collision; exact retail settle coordinates are not claimed. Retire UN-10; keep AP159, AMD stability and final G4 open.
2026-09-05 18:42:31 +02:00
Erik
e8efe1131f test(overhaul): prepare the bounded dungeon lighting controls 2026-09-05 14:18:56 +02:00
Erik
9c33535e45 docs(overhaul): defer FPS work by owner direction 2026-09-05 12:55:02 +02:00
Erik
744b1b0efb docs(overhaul): bound capture host-visibility fix and preserve first-frame gate 2026-09-05 12:33:24 +02:00
Erik
f545bc9262 docs: prepare existing-profiler entry and settled measurement 2026-09-05 12:16:33 +02:00
Erik
34d050fabc docs: preserve Rynthid candidates and prepare fixed-pose lighting comparison 2026-09-05 12:05:58 +02:00
Erik
6347e0f826 docs: contract completed-frame capture repair and safe self-gate launch 2026-09-05 11:53:12 +02:00
Erik
8fd5e434b6 docs: record failed owner gate and bounded #477 validation recipe 2026-09-05 11:18:16 +02:00
Erik
0e4cad31ea test(overhaul): prepare exact owner portal reveal regression route #474 2026-09-05 09:16:17 +02:00
Erik
b8d80e507f docs(overhaul): record provisional exterior coverage re-gate for #473 2026-09-05 08:24:37 +02:00
Erik
62efc72cb3 test(overhaul): add issue 469 lighting transition route 2026-09-05 04:04:32 +02:00
Erik
19b44e5e3a test(overhaul): add issue 470 pinned A-B route 2026-09-05 03:20:44 +02:00
Erik
7506e5f14e test(vulkan): isolate the hardware witness lane
Tag the production offscreen witness as Lane=Vulkan, exclude capability-owned tests from the portable Release filter, and give lavapipe an explicit trait-only invocation after the portable Vulkan contracts.

Document the lane and pin witness, portable-filter, and workflow ownership without initializing Vulkan.

Mutations performed and restored:

1. Removed the witness trait: VulkanLaneOwnershipContractTests first failed Assert.Matches because the Lane=Vulkan/Fact/method pattern was absent.

2. Removed Lane!=Vulkan from the default filter: the contract first failed Assert.Contains, not found Lane!=Vulkan.

3. Weakened the dedicated invocation to Lane!=Vulkan: the contract first failed Assert.Contains, not found --filter Lane=Vulkan in the hardware step.

4. Narrowed the dedicated invocation with FullyQualifiedName: the contract first failed Assert.DoesNotContain because FullyQualifiedName was present at position 231.
2026-09-05 03:19:55 +02:00
Erik
2001103ca6 docs+gate: #468 filed — the Holtburg doorway pose seats the player in the interior cell at a floorless point and it falls through the world; route-g3b pose 15 moved to the outdoor standing point
The 'empty plane under fog' frame the S4-c1 capture-pose self-gates produced
at frame 15 is the terrain seen from below by a falling player, not a draw
change: the camera probe holds playerCell=0xA9B4013F at (134.07,17.36) while
z drops 96 -> -20 m after materialization. The S3-state run had seated the
same request outdoors in 0xA9B40029 and stood. Placement is not the campaign's
domain; the gate pose is moved so the G3 frame is deterministic and the
original pose is kept in the issue as the reproduction. #462 recurrence on
the pre-S4 control build noted.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 06:37:09 +02:00
Erik
aef15fd7cf tools(selfgate): #464 scripted tilt to the owner's eye height (sixteen mouselook samples)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:54:44 +02:00
Erik
37d1357baa tools(selfgate): #464 scripted-tilt route for the mouselook verb (both delta signs)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:51:38 +02:00
Erik
3a6aa7eef4 research(render): retail portal-polygon vertex capture at the #464 pose + the pm-verts cdb template
Sixteen DrawPortalPolyInternal attempts per frame, vertex-identical to
acdream's sixteen collect-time punches; twelve lie entirely on the local
y=12 plane and are rejected by the ±12 guard in both clients, so the hall
building's doorways are never punched in either.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:42:01 +02:00
Erik
3d746294ae docs(issues): #464 owner's tilted frame with the walk transcript — same admission set, seventh exit view; the open face shows the hall interior where retail shows the shell wall
The frame is saved as logs/464-owner-tilted-frame.walk.txt. Narrowed to
the building shell versus interior-cell order/clip at the stairwell's open
face in the outside pass (S4), with a possible building-portal admission
component only the cathedral-stair-arch retail capture can settle.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:19:17 +02:00
Erik
8d3eb12c4e docs(issues): #464 owner-confirmed artifact pose pinned with probes — ordinary camera state, hall interior drawn through the stairwell's open far face (S4)
Owner client with both probes: root 0xF4180114, eye (39.89,17.25,182.36),
sweep uncontacted; the hall's interior shows above the bottom arch where
retail shows the solid far face, which the DAT gives as five exit portals.
The retail capture cathedral-stair-arch is requested as the fix oracle.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:07:25 +02:00
Erik
27ff6bb041 docs(issues): #464 — the front-view frame is a retail axiom (owner); the real artifact is toward the arches on the other side
Also commits the walk-transcript route used at that eye.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:55:11 +02:00
Erik
c3b989305a docs(research): #464 camera investigation report; reclassified as an interior-root draw defect (S4); archway route
Read-only decomp + real-DAT replay: eleven sweep/root differences, each
unreachable at the pose or more constrained than retail; the replay seats
the pivot in 0xF4180114, stops the boom on its east pier at y=16.448, and
the walk from that root floods 114/113/112 with seven exit views. The
owner's probe launch line now also sets ACDREAM_PROBE_FACILITY_STAIRS.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:50:40 +02:00
Erik
4f091ab614 tools(selfgate): #464 middle-landing route (zoom, look-up, yaw at the owner's first pose)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:36:26 +02:00
Erik
9aced6e3c4 tools(selfgate): #464 look-up route (CameraRotateDown lowers the eye through the landing floor)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:33:43 +02:00
Erik
2018027322 tools(selfgate): #464 zoom-out route (held CameraZoomOut / CameraRotateUp / CameraMoveAway at the top stair pose)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:31:45 +02:00
Erik
590fbb66c3 tools(selfgate): #464 running-descent route (held MovementForward, ten frames at 150 ms)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:19:29 +02:00
Erik
ad6b0599cc docs(render): S4 packet — the ±12 reject's quantifier corrected to retail's (ALL vertices on ONE bounding plane); #464 stair-ladder route
The S4-c1 retail lens caught the lead's paraphrase inverting retail's
predicate (any vertex on any plane vs every vertex on the same plane);
the contract and T2 now state the decomp's four per-plane predicates.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 21:07:38 +02:00
Erik
7fa83c7397 docs(render): ledger — G3 self-gate part A: 12 of 13 poses PASS provisional, Nanto incomplete; part-C route
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 16:41:30 +02:00
Erik
1ad9f4766f tools(selfgate): G3 route part B — the four retail capture poses
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 16:21:21 +02:00
Erik
37e42aafc4 docs(render): resolve #458 — the a9c9 doorway admission is a 0.5 % edge-plane precision boundary (AD-118)
Two live cdb captures on the paired 2013 client at the Holtburg doorway:
the blockset template (every Render::block_check call of one frame — 2,601
resident blocks x 2 exit views) proves retail tests a9c9 at ring slot
25,46 and returns PARTIALLY then OUTSIDE; the blockcheck template dumps
its four corner interval vectors (0 0 0 0 300.4|310.2 and 0 0 0 1001 ...,
slab 75..330). acdream's replay at the same P pose reproduces the sentinel
pattern, the four edge planes and both verdicts, drawing a9c9 once, with
clip heights 298.8/308.5 m — a 0.5 % plane difference (about 0.35 px of
projected door-vertex position). At the fixture pose that margin is what
flips the south-west corner from inside to outside on the fourth edge
plane, so retail's four-corner unanimity test says OUTSIDE where ours
says PartiallyInside. Not fixable bit-exactly short of D3D's x87
transform; the KnownFailure row stays with its comment rewritten, the
register carries AD-118, and the first filtered capture's silent miss
(cdb sign-extends poi() inside .if; use dwo()) is noted in the template.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 14:43:14 +02:00
Erik
157b327a0b tools(walk-oracle): block_check capture template for #458 (one block's corner intervals, z slab and verdict)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 12:39:14 +02:00
Erik
0f1628dc04 tools(selfgate): G3 route — the §10 scene matrix plus the owner-gated poses
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 12:33:11 +02:00
Erik
4c364412f0 tools(selfgate): add the Holtburg terrain-leak pose (owner-supplied) to the route
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 07:55:00 +02:00
Erik
7969c2e6ad tools(walk-oracle): parts capture guards null part-array slots (cdb aborted the PD/DM action on a null gfxobj)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 06:40:35 +02:00
Erik
b62dbf035c tools(walk-oracle): capture the per-land-cell draw order (LC/SC lines) for S3 chunk 3
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 06:31:54 +02:00
Erik
2d20ee917b checkpoint(render): portal-haze root cause — emitters need own-cell membership (S2 chunk 6 contract)
Instrumented arrivals show the Hidden-state cloud's emitters spawn in the
arrival cell, become view-eligible when the world appears, and are never
drawn: the walk draws an owner's emitters only through the owner's registry
rows, and a hidden owner's shadow is suspended. Retail's
CPhysicsObj::add_particle_shadow_to_cell (0x00514a70) gives an emitter one
shadow in its own cell, drawn at that cell's turn regardless of the parent's
hidden state. S2 chunk 6 (packet §10) ports that: per-cell emitter draw
membership, owner-union particle path deleted. Route timing fixed so the
arrival screenshots anchor on the reveal.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 05:49:45 +02:00
Erik
7ec72765d7 checkpoint(render): G2 owner findings — terrain punch assigned to S4, portal-haze probe
Owner G2 check at 4b0b29e4: Facility Hub PASS, Holtburg house PASS,
cathedral leak unchanged (S3/S4). Two new findings:
- doorway-sized fragments of houses on the terrace below show through
  the hill in Holtburg: PortalDepthMaskRenderer draws every visited cell's
  exit-portal fan with depth compare Always + write, so a doorway behind
  terrain still punches far depth through it. Pre-existing; S4 owns the
  punch (ledger row updated).
- the purple UnHide haze (script type 0x75, played on the retail
  Hidden->visible physics-state edge) no longer shows on the local player
  after a portal. Under investigation: temporary print-only traces
  [pes-spawn]/[pes-vis] under ACDREAM_DUMP_PLAYSCRIPT=1 (launch-options row
  amended; both die with the investigation) and a timed arrival route
  tools/overhaul-selfgate/route-portal-haze.txt.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 05:32:18 +02:00
Erik
ea546f381b tools(render): self-gate - list screenshots recursively, no plugins in gate sessions
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 23:16:31 +02:00
Erik
2b40c0bb38 tools(render): self-gate kit - session config, teleport route, runner
Lead-run visual gate: direct character login through a session config,
the owner-supplied /teleloc poses (cathedral floating stairs, Facility Hub
stairs, Holtburg house), one screenshot per pose into the automation
artifact directory, graceful close-client. The runner refuses to start
while any AcDream.App process exists and never hard-kills a client.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 22:08:56 +02:00
Erik
14d8fe6478 tools(render): fix printf newline escapes in the OH alpha-depth template
The AM and PM breakpoint actions carried a single-backslash newline; cdb
needs the doubled form inside a quoted bp action, as the other lines use.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 18:19:35 +02:00
Erik
ebaa41df1a tools(render): OH retail capture scripts for the S3/S4 answer key
Recon script, three capture templates (walk / parts / alpha-depth),
runner, and operator README under tools/walk-oracle/oh/. FW0 line formats
are kept byte-identical; new EC/OC/PD/DM/AM/FL/PM/PC line kinds are
documented. Auto-detach uses the fall-through + top-level qd recipe; qd
never appears inside a breakpoint action. Lead-resolved: DBObj::m_DID is
+0x28 (header layout, first base of CGfxObj and CObjCell, matches the
proven FW0 cell reads); the three D3DPolyRender alpha functions are static
cdecl with stack arguments, uint8 arguments read with by().

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 18:09:11 +02:00
Erik
b3b7d922f1 checkpoint(render): preserve pre-overhaul investigation state 2026-09-01 18:04:24 +02:00
Erik
77f5342b62 feat(render) Campaign FW1: doorway-still conformant - deg_mul is dynamic
Render::deg_mul is auto-tuned by frame load and SWUNG between oracle
captures: doorway-still ran right after the heavy terrace-edge capture
with the multiplier depressed (mul <= 0 puts thresholds at/below ideal,
so 001e/0026/002f select the portless level 1 - retail's zero look-in
floods, reproduced exactly at mul = 0), while every other fixture pins
~ +0.99 (thresholds at max). The recon session's "-0.99" live dump was
real - taken under the same cdb load. RetailFrameWalk now exposes the
multiplier; the doorway test pins 0, the rest use the default.

foundry-entry: frames 1-66 reproduce exactly; the F67-F79 standing
segment diverges ONLY in building 0036's intra-building DC order
(retail 116,118,11d vs replay 11d,116,118). The BSP-traversal microscope
pins the flip to 0036's ROOT plane (N=(0,0,-1) D=2.8): replay eye z
2.33 (d=+0.47, NEG-first) vs retail behaving as d<0 (POS-first) - a
structural ~0.5 m frame question (positionPush(2)/part-scale), only
adjudicable live. Turnkey probe:
tools/walk-oracle/fw1-f67-viewpoint-probe.cdb.

Fixture status: nine of ten fully conformant; foundry-entry exact
through F66 with the 13-frame order segment parked on the probe.
Suites: Walk 127/1 skip; hermetic 6,687/0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 11:49:27 +02:00
Erik
e8df809c40 feat(render) Campaign FW1: pin the exact retail projection in the replay context
Live-dumped from the capture client (Render::bw/bh 1024x720,
xinvscale/yinvscale 0.00025, tx 0.127875, ty 0.089875, vdst 0.1330767):
the replay context now uses retail unproject formula verbatim for the
ray caster and the exact frustum (fovY = 2*atan(ty/vdst), aspect =
tx/ty) for projection - no guessed camera constants remain.
foundry-deep conformance stays green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 10:27:38 +02:00
Erik
4a72600b45 docs(plans) Campaign FW: FW0 complete; pose-stamped re-capture prepared
FW0 ledger entry records the fixtures, replay helper, pseudocode model,
and the reshaping findings. The pose gap (first captures lack camera
pose; exact replay needs it) is documented with a ready template for a
short owner session when FW1 gates.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 09:30:20 +02:00
Erik
71b11817ad research(render) Campaign FW0: retail walk-oracle harness + 10 live trace fixtures
cdb capture harness (recon offsets + per-pose scripts; .gitignore gains a
negation so the walk-oracle scripts are tracked despite the global *.cdb
ignore) and the FW1 conformance fixtures: terrace center/edge, cathedral
arrival, doorway still, cottage walkout, street porch-cam/outdoor, town
walkabout, foundry entry, foundry deep. Binding findings in the README:
the frame roots at the CAMERA cell; outdoor root draws the #456 far
building every frame and hides it by depth cover, never omission;
interior root gates through the exit-view chain; look-ins punch at the
owning building turn; transitions are one-frame flips.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 09:10:07 +02:00
Erik
f7aa8e0eb7 fix: complete retail parity stability pass
All checks were successful
CI / linux-portable (push) Successful in 3m41s
CI / windows-gate (push) Successful in 6m49s
CI / release (push) Successful in 3m22s
2026-08-28 20:01:39 +02:00
Erik
0dd966f3a0 Optimize prepared asset package v2 2026-08-27 20:09:09 +02:00
Erik
c4608b1127 Merge origin/main into MossTank automation work
Some checks failed
CI / linux-portable (push) Successful in 3m51s
CI / windows-gate (push) Failing after 7m8s
CI / release (push) Has been skipped
# Conflicts:
#	docs/ISSUES.md
2026-08-27 19:01:26 +02:00
Erik
4e6e9bc9d9 feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00