acdream/docs/research
Erik 9757818e95 docs(render): Phase A8.F — correct camera handoff; retail DOES collide the camera
Correction after the user (who has played retail and observed the camera pull in
at walls) flagged the prior "no camera collision" conclusion. Verified against the
decomp: retail's camera collision lives in SmartBox::update_viewer (0x00453ce0),
NOT CameraManager::UpdateCamera. The earlier research traced only the producer
(UpdateCamera computes the desired/damped eye -> viewer_sought_position) and missed
the consumer (update_viewer), which sweeps a 0.3 m viewer_sphere via
CTransition::find_valid_position from the head-pivot to that eye and uses the
stopped position (fallbacks: AdjustPosition, then snap to player). The player-fade
when super close (CameraSet::UpdateCamera -> SetTranslucencyHierarchical) is a
SEPARATE stage, already ported as RetailChaseCamera.ComputeTranslucency.

Implication: a swept-sphere camera collision is RETAIL-FAITHFUL, not a divergence —
no special sign-off needed, and acdream already owns the Transition swept-sphere
engine. Updated TL;DR, KEY FINDING, the fix section (was "design decision"),
slot-in (collide the damped eye, after RetailChaseCamera.cs:131), open questions,
pickup prompt, and reference index. Memory updated likewise.

Lesson recorded: when the decomp says "no X" but a domain expert says X exists,
trace the CONSUMER of the computed value, not just the producer.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 17:51:44 +02:00
..
2026-05-01-retail-motion-trace fix(motion): jump direction, AutoPos cadence, backward/strafe wire & anim 2026-05-02 16:11:15 +02:00
2026-05-02-remote-entity-motion docs(spec): Phase L.3 — Remote Entity Motion Conformance design 2026-05-02 18:12:18 +02:00
2026-05-03-remote-anim-cycle docs(research): investigation prompt for remote-anim-cycle bug 2026-05-03 19:59:22 +02:00
2026-05-04-l3-port feat(motion): L.3 M1 — fresh InterpolationManager port + retail spec 2026-05-05 14:56:42 +02:00
2026-05-06-locomotion-cycle-transitions docs(motion): #39 — candidate fix ineffective; refute Shift-toggle wire hypothesis 2026-05-06 07:21:42 +02:00
2026-05-21-a6-captures feat(phys): A6.P3 slice 5 — [place-fail] probe + sharpened #98 diagnosis 2026-05-22 20:02:15 +02:00
2026-05-23-a6-captures research(phys): A6.P3 #98 — [step-walk-adjust] capture + findings 2026-05-23 16:25:04 +02:00
data docs(research): commit named retail decomp + spells.csv (foundation) 2026-04-25 17:27:19 +02:00
decompiled research: full acclient.exe decompilation — 22,225 functions, 688K lines 2026-04-12 23:25:51 +02:00
deepdives fix(lighting): match retail indoor ambient (0.20 neutral, not 0.10/0.09/0.08 warm) 2026-05-19 10:14:25 +02:00
named-retail docs(research): canonical retail keymap + dump-keymap tool 2026-04-25 23:01:58 +02:00
retail-ui feat(ui): Phase D.2a — VitalsPanel wired into GameWindow + backend pivot 2026-04-25 00:43:46 +02:00
2026-04-12-movement-deep-dive.md docs: movement deep dive — AC2D + holtburger cross-reference 2026-04-12 21:52:12 +02:00
2026-04-21-animation-audit.md docs(research): animation-pipeline decompile audit — no real gaps 2026-04-21 21:18:45 +02:00
2026-04-21-sky-deep-audit.md fix(sky): scale keyframe Luminosity/Transparent/MaxBright from percent → fraction 2026-04-22 17:38:44 +02:00
2026-04-22-sky-lighting-decompile.md sky(phase-1): revert speculative tint, add ACDREAM_DUMP_SKY diagnostic 2026-04-23 18:06:52 +02:00
2026-04-23-daygroup-selection.md sky(phase-3c): port retail FUN_00501990 DayGroup picker (uniform LCG) 2026-04-24 08:45:34 +02:00
2026-04-23-lightning-crossfade.md sky(phase-5a): remove DayGroup-name rain hack, ship retail-only Overcast mapping 2026-04-24 11:04:36 +02:00
2026-04-23-lightning-real.md sky(phase-8): retail-faithful night sky + README refresh 2026-04-24 20:34:36 +02:00
2026-04-23-physicsscript.md sky(phase-5a): remove DayGroup-name rain hack, ship retail-only Overcast mapping 2026-04-24 11:04:36 +02:00
2026-04-23-retail-memory-probe.md sky(phase-3g): fix LCG multiplier — 360 (DaysPerYear), not 7620 2026-04-24 10:17:38 +02:00
2026-04-23-sky-dat-schema.md sky(phase-1): revert speculative tint, add ACDREAM_DUMP_SKY diagnostic 2026-04-23 18:06:52 +02:00
2026-04-23-sky-decompile-hunt-A.md sky(phase-1): revert speculative tint, add ACDREAM_DUMP_SKY diagnostic 2026-04-23 18:06:52 +02:00
2026-04-23-sky-decompile-hunt-B.md sky(phase-8): retail-faithful night sky + README refresh 2026-04-24 20:34:36 +02:00
2026-04-23-sky-decompile-hunt-C.md sky(phase-8): retail-faithful night sky + README refresh 2026-04-24 20:34:36 +02:00
2026-04-23-sky-fog.md sky(phase-5a): remove DayGroup-name rain hack, ship retail-only Overcast mapping 2026-04-24 11:04:36 +02:00
2026-04-23-sky-material-state.md docs(sky): port plan for PhysicsScript/fog/lightning/crossfade 2026-04-24 10:53:46 +02:00
2026-04-23-sky-pes-wiring.md sky(phase-5a): remove DayGroup-name rain hack, ship retail-only Overcast mapping 2026-04-24 11:04:36 +02:00
2026-04-23-sky-references-crossref.md sky(phase-1): revert speculative tint, add ACDREAM_DUMP_SKY diagnostic 2026-04-23 18:06:52 +02:00
2026-04-23-sky-retail-verbatim.md sky(phase-1): revert speculative tint, add ACDREAM_DUMP_SKY diagnostic 2026-04-23 18:06:52 +02:00
2026-04-24-lambert-brightness-split.md sky(phase-8): retail-faithful night sky + README refresh 2026-04-24 20:34:36 +02:00
2026-04-26-chorizite-pr-draft.md docs(research): sky/weather investigation handoff + diagnostic tools 2026-04-26 21:40:34 +02:00
2026-04-26-datreaderwriter-reference.md docs(research): sky/weather investigation handoff + diagnostic tools 2026-04-26 21:40:34 +02:00
2026-04-26-sky-investigation-handoff.md docs(research): sky/weather investigation handoff + diagnostic tools 2026-04-26 21:40:34 +02:00
2026-04-28-combat-animation-planner.md feat(anim): Phase L.1c select combat maneuvers 2026-04-28 11:44:17 +02:00
2026-04-28-pes-pseudocode.md feat(vfx): Phase C.1 — PES particle renderer + post-review fixes 2026-04-28 22:47:11 +02:00
2026-04-28-remote-moveto-pseudocode.md feat(anim): Phase L.1c port MoveTo path data + per-tick steer 2026-04-28 21:49:22 +02:00
2026-04-28-sky-cloud-material-trace.md feat(vfx): Phase C.1 — PES particle renderer + post-review fixes 2026-04-28 22:47:11 +02:00
2026-04-30-precipice-slide-pseudocode.md fix(physics): #32 L.2c precipice edge-slide context 2026-04-30 08:04:37 +02:00
2026-05-05-issue-42-handoff.md docs(research): expand #42 handoff prompt for fresh-session pickup 2026-05-05 18:02:58 +02:00
2026-05-06-issue-38-handoff.md docs(research): #38 handoff prompt for next-session agent 2026-05-06 17:03:43 +02:00
2026-05-06-issue-38-render-interp-pseudocode.md fix(camera): #38 render-interpolate player motion 2026-05-06 17:53:34 +02:00
2026-05-06-issue-47-close-degrade-pseudocode.md fix(rendering): #47 — walk DIDDegrade for retail close-detail meshes 2026-05-06 16:46:23 +02:00
2026-05-06-issue-47-handoff.md docs(research): #47 handoff prompt for next-session agent 2026-05-06 11:34:25 +02:00
2026-05-06-issue-48-fix-pseudocode.md fix(scenery): #48 unify scenery Z with physics-path triangle picker 2026-05-07 14:30:25 +02:00
2026-05-06-issue-48-handoff.md docs(issues): file #48 — subset of tree species hover above terrain 2026-05-06 17:18:26 +02:00
2026-05-06-issue-49-handoff.md docs(research): #49 handoff — scenery (X, Y) drift investigation 2026-05-07 14:34:55 +02:00
2026-05-08-phase-n3-handoff.md docs: roadmap N.0 shipped + realistic N.2-N.9 estimates + N.3 handoff 2026-05-08 10:49:16 +02:00
2026-05-08-phase-n4-week4-handoff.md docs(N.4): Week 4 handoff for the next agent 2026-05-08 14:54:12 +02:00
2026-05-08-phase-n5-handoff.md docs(N.5): cold-start handoff for next session 2026-05-08 18:05:36 +02:00
2026-05-09-phase-n5b-handoff.md docs(N.5b): cold-start handoff for next session 2026-05-09 07:16:10 +02:00
2026-05-10-holtburger-network-stack-study.md docs(post-A.5): capture holtburger network-stack study + Phase M.0 quick-wins 2026-05-10 17:52:26 +02:00
2026-05-10-phase-a5-handoff.md docs(A.5): cold-start handoff for the next session 2026-05-09 21:11:46 +02:00
2026-05-10-phase-m-opcode-matrix.md docs(phase-m): sharpen Phase M into design spec + opcode coverage matrix 2026-05-10 19:22:49 +02:00
2026-05-10-post-a5-polish-handoff.md docs(post-A.5): cold-start handoff for the next session 2026-05-10 10:16:10 +02:00
2026-05-10-tier1-mutation-audit.md docs(post-A.5 #53): Tier 1 retry — mutation audit + cache design spec 2026-05-10 16:50:26 +02:00
2026-05-10-tier1-retry-handoff.md docs(post-A.5): cold-start handoff for the Tier 1 retry session (#53) 2026-05-10 16:14:24 +02:00
2026-05-12-l2a-shipped-l2d-handoff.md docs(phys L.2a): handoff + next-session prompt + CLAUDE.md / plan-of-record updates 2026-05-12 18:15:16 +02:00
2026-05-12-l2d-next-session-prompt.md docs(phys L.2a): handoff + next-session prompt + CLAUDE.md / plan-of-record updates 2026-05-12 18:15:16 +02:00
2026-05-12-l2g-slice1-shipped-handoff.md docs(phys L.2g): slice 1 shipped handoff + B.4 gap discovery + plan-of-record 2026-05-12 23:17:05 +02:00
2026-05-13-b4b-shipped-handoff.md docs(B.4b): final-review polish — file #59 #60 follow-ups + handoff correction 2026-05-13 19:43:38 +02:00
2026-05-13-b4c-shipped-handoff.md docs(B.4c): correct handoff fabrications surfaced by final review 2026-05-14 08:03:45 +02:00
2026-05-13-b5-pickup-handoff.md docs(B.5): fresh-session handoff for BuildPickUp + ground-item interaction 2026-05-14 14:35:52 +02:00
2026-05-13-l2d-slice1-shipped-handoff.md docs(phys L.2d): slice 1 + 1.5 shipped handoff + 3rd plan-of-record reframe 2026-05-12 19:46:45 +02:00
2026-05-14-b5-shipped-handoff.md docs(B.5): ship handoff + roadmap/CLAUDE update + file #63 #64 2026-05-14 16:23:20 +02:00
2026-05-15-b6-b7-shipped-handoff.md docs(B.6+B.7): ship handoff — 36 commits, faithfulness audit, workaround retirement plan 2026-05-15 18:29:53 +02:00
2026-05-16-issue77-autowalk-handoff.md docs(research): handoff for issue #77 — close-range auto-walk + pickup overshoot 2026-05-18 08:38:31 +02:00
2026-05-16-session-handoff.md docs: rewrite handoff — M2 redirected from "kill a drudge" to indoor walkability 2026-05-16 21:01:30 +02:00
2026-05-19-cluster-a-shipped-handoff.md docs(phase): Cluster A — partial ship + handoff 2026-05-19 16:12:24 +02:00
2026-05-19-contactplane-retention-pickup-prompt.md docs(handoff): ContactPlane retention investigation pickup prompt 2026-05-20 07:06:11 +02:00
2026-05-19-indoor-cell-rendering-cause.md feat(wb): ConsoleErrorLogger + cause report — H1 swallowed-exception confirmed 2026-05-19 13:00:18 +02:00
2026-05-19-indoor-cell-rendering-probe-capture.md docs(research): Phase 1 indoor probe capture — H1 confirmed 2026-05-19 12:03:25 +02:00
2026-05-19-indoor-cell-rendering-verification.md docs(research): Phase 2 verification — floor renders, fix landed 2026-05-19 13:12:53 +02:00
2026-05-19-indoor-followup-handoff.md docs: file #87 — retire WB fork band-aid via geom-only API 2026-05-19 14:31:14 +02:00
2026-05-19-indoor-followup-prompt.md docs(handoff): indoor follow-up brief + fresh-session kickoff prompt 2026-05-19 13:36:18 +02:00
2026-05-19-indoor-walkable-plane-bsp-port-shipped-handoff.md docs: indoor walkable-plane BSP port partial-ship handoff 2026-05-20 07:03:14 +02:00
2026-05-19-indoor-walking-phase2-pickup-prompt.md docs(handoff): retarget pickup prompt — indoor/collision/physics/dungeons only 2026-05-19 19:52:17 +02:00
2026-05-19-indoor-walking-phase2-shipped-handoff.md docs(phase): Indoor walking Phase 2 — Portal-based cell tracking shipped 2026-05-19 19:31:22 +02:00
2026-05-20-indoor-walking-bug-a-handoff.md docs(handoff): indoor walking Bug A wrong-scope handoff 2026-05-20 09:38:13 +02:00
2026-05-20-m15-kickoff-handoff.md docs(handoff): M1.5 kickoff — pickup prompt + workaround inventory 2026-05-21 11:12:46 +02:00
2026-05-20-phase-a4-shipped-cell-pingpong-finding.md docs(roadmap): A4 shipped + #90 cell-tracking ping-pong filed 2026-05-20 20:10:29 +02:00
2026-05-21-a6-cdb-capture-findings.md ship(phys): A6.P3 slice 1 — Indoor ContactPlane retention COMPLETE 2026-05-22 10:11:44 +02:00
2026-05-21-a6-p1-partial-ship-handoff.md docs(handoff): A6.P1 partial-ship — infra DONE, captures 1/9 2026-05-21 20:05:17 +02:00
2026-05-21-a6-p3-slice1-retail-mech-b-research.md fix(research): A6.P3 slice 1 T1 — citation corrections + LKCP re-latch note 2026-05-22 08:20:24 +02:00
2026-05-21-collision-fixes-shipped-handoff.md docs(handoff): update pickup prompt to point at main + fresh worktree 2026-05-20 15:05:07 +02:00
2026-05-21-indoor-walking-doorway-investigation-prompt.md docs(handoff): pickup prompt for indoor walking doorway investigation 2026-05-20 09:55:47 +02:00
2026-05-21-open-items-pickup-prompt.md docs(milestones): promote indoor work to M1.5 — primary focus 2026-05-21 10:32:24 +02:00
2026-05-21-phase-o-t1-prompt.md docs(O-T1): session handoff prompt for Phase O Task 1 (WB usage audit) 2026-05-21 14:01:06 +02:00
2026-05-21-phase-o-t1-wb-audit.md docs(O): O-T1 audit shipped + Phase O spec amended 2026-05-21 14:35:38 +02:00
2026-05-21-walk-miss-capture-findings.md docs(physics): spec + plan + findings for ISSUES #83 walk-miss probe spike 2026-05-20 11:00:11 +02:00
2026-05-22-a6-p3-handoff.md docs(handoff): A6.P3 2026-05-22 EOS handoff + pickup prompt for #98 fix 2026-05-22 13:32:02 +02:00
2026-05-22-a6-p3-slice5-handoff.md feat(phys): A6.P3 slice 5 — [place-fail] probe + sharpened #98 diagnosis 2026-05-22 20:02:15 +02:00
2026-05-23-a6-p3-issue98-comparison-harness-findings.md docs: A6.P3 #98 resolution + A6.P4 design + #99/#100 filed 2026-05-24 07:23:49 +02:00
2026-05-23-a6-p3-issue98-handoff.md docs(handoff): A6.P3 issue #98 — slice 6 failed; pivot to terrain-mesh 2026-05-23 08:56:43 +02:00
2026-05-23-a6-p3-issue98-harness-handoff.md docs(handoff): A6.P3 #98 — full-session handoff doc + CLAUDE.md/ISSUES.md updates 2026-05-23 19:09:00 +02:00
2026-05-23-a6-p3-issue98-replay-comparison.md docs(phys): A6.P3 #98 Step 5 — replay vs retail divergence comparison 2026-05-23 15:57:12 +02:00
2026-05-23-a6-stepwalkadjust-findings.md research(phys): A6.P3 #98 — [step-walk-adjust] capture + findings 2026-05-23 16:25:04 +02:00
2026-05-24-a6-p4-pickup-handoff.md docs(handoff): A6.P4 pickup handoff — full session-resume artifact 2026-05-24 07:32:58 +02:00
2026-05-24-door-bug-apparatus-shipped-findings.md fix(phys): A6.P4 door bug — AddAllOutsideCells coord convention + replay apparatus 2026-05-25 07:53:34 +02:00
2026-05-24-door-collision-session-end-handoff.md docs(handoff): door collision session end — honest accounting 2026-05-24 20:52:53 +02:00
2026-05-24-door-collision-session-handoff.md docs(handoff): door collision per-part BSP session handoff (2026-05-24) 2026-05-24 18:16:02 +02:00
2026-05-24-door-collision-task7-shipped-but-bug-remains.md diag(phys): [bsp-test] probe + grounded apparatus test + handoff 2026-05-24 19:22:45 +02:00
2026-05-24-door-dat-inspection-findings.md test(phys): door setup + GfxObj dat-inspection — Hypothesis A falsified 2026-05-24 18:34:41 +02:00
2026-05-25-a6-door-cyl-investigation-handoff.md docs(handoff): A6.P7 door-cyl + slab interaction — retail investigation needed 2026-05-25 14:54:59 +02:00
2026-05-25-a6-door-cyl-retail-dispatch-investigation.md fix(phys): A6.P7 — retail-binary cyl-vs-BSP dispatch (HAS_PHYSICS_BSP_PS gate) 2026-05-25 16:35:32 +02:00
2026-05-25-door-bug-cdb-retail-trace-findings.md docs(handoff): add second door-bug symptom (over-penetration before block) 2026-05-25 10:45:41 +02:00
2026-05-25-door-bug-inside-out-geometry-gap.md test(phys): A6.P4 door — corner-slide hypothesis falsified, bug is state-related 2026-05-25 08:37:31 +02:00
2026-05-25-door-bug-partial-fix-shipped.md fix(test): correct geometric pin test for door slab Z math 2026-05-25 08:14:49 +02:00
2026-05-25-issue-78-visibility-culling-investigation.md feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
2026-05-25-issue-100-shipped-and-culling-handoff.md docs: #100 ship + indoor-cell culling investigation handoff 2026-05-25 22:17:51 +02:00
2026-05-25-issue-100-terrain-cutout-handoff.md docs: #100 ship + indoor-cell culling investigation handoff 2026-05-25 22:17:51 +02:00
2026-05-25-stairs-cyl-investigation-handoff.md docs: issue #101 — broken stairs cyl phantom (post-A6.P7 finding) 2026-05-25 19:03:58 +02:00
2026-05-26-a8-buildings-data-shape.md docs(research): Phase A8 RR2 — BuildingInfo data shape + interior-portal walk 2026-05-27 11:01:39 +02:00
2026-05-26-a8-entity-taxonomy.md feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
2026-05-26-a8-r3.5-restructure-handoff.md docs(handoff): Phase A8 R3.5 paused for restructure — fresh-session handoff 2026-05-26 20:52:46 +02:00
2026-05-26-a8-revert-handoff.md docs: Phase A8 REVERT handoff — full session story + pickup prompt 2026-05-26 09:42:53 +02:00
2026-05-26-a8-rr0-falsification-findings.md docs(research): Phase A8 RR0 — Issues A + C caused by R3, NOT pre-existing 2026-05-27 08:33:32 +02:00
2026-05-26-a8-wb-full-port-rr1-shipped-handoff.md docs(handoff): Phase A8 RR1 shipped — pickup prompt for RR2 spike 2026-05-27 10:46:32 +02:00
2026-05-27-a8-rr7-reverted-wb-port-handoff.md docs(research): A8 RR7 reverted — full WB-port handoff for next session 2026-05-27 14:10:33 +02:00
2026-05-28-a8-cellar-flap-handoff.md feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
2026-05-28-a8-cellar-flap-option2-handoff.md feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
2026-05-28-a8-cellar-flap-root-cause.md feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
2026-05-28-a8-env-cell-renderer-audit-findings.md fix(render): Phase A8 — pool aliasing in EnvCellRenderer (visual chaos root cause) 2026-05-27 19:08:49 +02:00
2026-05-28-a8-session-2-shipped-and-handoff.md docs: Phase A8 — session 2 handoff (pool fix shipped + 4 partial fixes + residuals) 2026-05-27 20:32:22 +02:00
2026-05-28-a8-wb-port-shipped-but-broken-handoff.md feat(render): Phase A8 — kill-switch ACDREAM_A8_INDOOR_BRANCH (default OFF) 2026-05-27 16:26:40 +02:00
2026-05-29-a8f-camera-collision-handoff.md docs(render): Phase A8.F — correct camera handoff; retail DOES collide the camera 2026-05-29 17:51:44 +02:00
2026-05-29-a8f-visual-gate-failure-handoff.md docs: Phase A8.F visual-gate failure handoff + issue #103 2026-05-29 14:43:24 +02:00
acclient_animation_map.md fix(anim): implement adjust_motion — TurnLeft/SideStepLeft play backward 2026-04-13 12:17:26 +02:00
acclient_animation_pseudocode.md research: full animation pseudocode from decompiled acclient.exe 2026-04-13 12:43:44 +02:00
acclient_architecture_map.md docs: comprehensive architecture plan for acdream 2026-04-13 14:23:50 +02:00
acclient_decompiled.c research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
acclient_function_map.md docs(research): #9 sweep acclient_function_map.md against PDB symbols 2026-04-25 17:44:07 +02:00
acclient_indoor_transitions_pseudocode.md research: indoor transition pseudocode from ACE + decompiled analysis 2026-04-13 13:56:16 +02:00
transition_pseudocode.md docs(research): collision transition system pseudocode from decompiled + ACE 2026-04-13 23:41:13 +02:00