docs: file #393 - retail texture-detail options (highres toggle + mip-skip levels)
From the 2026-08-14 highres verification: acdream always runs at retail MAX texture detail (Textures[0] + unconditional client_highres.dat). Retail's two knobs (ID_Option_HighResChange gating LoadHighResDat @0x004FA250; Landscape/Environment TextureDetail as a mip-chain start index @0x0044C3C8) are recorded with their decomp anchors and the acdream-side seams. Post-M4. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e449c75e9f
commit
bee38b0746
1 changed files with 34 additions and 0 deletions
|
|
@ -24,6 +24,40 @@ What does NOT go here:
|
||||||
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
|
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
|
||||||
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
|
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
|
||||||
|
|
||||||
|
## #393 — Texture detail options: retail's "High Resolution Textures" toggle + Landscape/Environment TextureDetail mip-skip
|
||||||
|
|
||||||
|
**Status:** OPEN — filed 2026-08-14 from the highres-texture verification
|
||||||
|
(post-M4 nice-to-have; perf/nostalgia option, no gameplay impact).
|
||||||
|
acdream today loads `client_highres.dat` unconditionally and always picks
|
||||||
|
`Textures[0]` — retail's MAXIMUM texture detail, verified end-to-end (live
|
||||||
|
path AND the baked `acdream.pak`; the 2026-08-14 investigation's evidence
|
||||||
|
chain). Retail additionally offers two knobs acdream has no equivalent for:
|
||||||
|
|
||||||
|
1. **"High Resolution Textures" toggle** (change-notice string
|
||||||
|
`ID_Option_HighResChange`; `CLCache::LoadHighResDat @0x004FA250` only
|
||||||
|
runs when armed). Off = `client_highres.dat` never loads; lookups use
|
||||||
|
the portal-resident versions. acdream shape: a Config-tab option that
|
||||||
|
skips the highres fallback in `DatCollectionAdapter.TryGet` (portal
|
||||||
|
class: `_portal || _highRes`, `DatCollectionAdapter.cs:90`) and
|
||||||
|
`MeshExtractor`'s explicit highres fallbacks (`MeshExtractor.cs:399,767`
|
||||||
|
— which currently THROW on a miss; the off-path must degrade the way
|
||||||
|
retail does, NOT throw). **Research prerequisite:** what retail falls
|
||||||
|
back to for surfaces whose ONLY copy lives in highres.
|
||||||
|
2. **Texture detail levels** (`Render_LandscapeTextureDetail` /
|
||||||
|
`Render_EnvironmentTextureDetail` UIPreferences; the pick
|
||||||
|
`@0x0044C3C8`): the enum is an INDEX into the texture's source-level
|
||||||
|
(mip) chain — detail 0 keeps every level, detail N drops the N largest
|
||||||
|
(`i_1 = m_num - esi_1` keeps levels from index N;
|
||||||
|
`RenderTexture::ShouldDropHighDetail` can force it under memory
|
||||||
|
pressure). acdream shape: skip/downsample the top N levels at Vulkan
|
||||||
|
texture upload — works for live uploads and pak payloads alike (the
|
||||||
|
downsample is at upload, not bake; NO re-bake needed).
|
||||||
|
|
||||||
|
Also carried from the same investigation: a one-off enumeration proving
|
||||||
|
portal/highres id sets are disjoint (the "portal wins on overlap"
|
||||||
|
`TryResolvePreferred` corner — no overlap evidence exists, a ~20-line
|
||||||
|
tool run closes it).
|
||||||
|
|
||||||
## #392 — A refused/failed fullscreen enter leaves `fullscreen: true` persisted against a windowed client
|
## #392 — A refused/failed fullscreen enter leaves `fullscreen: true` persisted against a windowed client
|
||||||
|
|
||||||
**Status:** OPEN — filed 2026-08-13 from the #376/#388 blast review (M4).
|
**Status:** OPEN — filed 2026-08-13 from the #376/#388 blast review (M4).
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue