Subsystem references and a symptom index: the failure catalogue of docs/agents/03-bringup.md and the per-title material of docs/agents/04-graphics.md (section 1's container list, section 6 and its "Seen in <game>" subsections) move into docs/reference/, one heading per mechanism: rewriter.md, memory.md, threads.md, services.md, movies.md, audio.md, frame-rate.md, nvn-objects.md, rendering.md (with the Vulkan and OpenGL layers), shaders.md and game-state.md, indexed by docs/reference/README.md. Each entry gives the symptom, the cause, the fix (file and function), the games it was found on (linked to their notes in dm/games/<id>/README.md) and any check, caveat or later change; one mechanism met on several games is one entry. docs/agents/symptoms.md lists every entry's symptom (an assertion, a [RED] line, an abort or crash site, a visible result) with a link to it, 350 lines, generated from the Symptom bullets. 03 keeps the loop and reading the log, and its Failure catalogue section now points to the references, the index and where a new finding goes; 04 keeps sections 1-5 and 7 (the container list is shaders.md's Containers by engine), and section 6 says where each kind of finding is. Facts in the old sections about one game only were checked against that game's note, where they already were. Statements the code no longer matches are marked as history beside the current value (movie output slots: MD_NOUT 64, MD_NOUT_AAC 32, MD_NOUT_VIDEO 16; APP_POOL is the profile key app_pool; Engage's layout is 5 / 4.375 GB; inline uniform updates are deferred by default; scaled copies are drawn), and Tears of the Kingdom joins the node-area entry's build list (issue #70). The game notes, docs/agents/README.md, 02 and 05 link to the exact entries, and so do the comments in nvn_mtl.m (nvnTextureCompare) and hle_audio.c (the RemoteIO buffer) and the provisional-profile note in profile_guess.py. 03 goes from 29,600 to 470 words, 04 from 34,400 to 3,500. Checked: every backticked span, module address, issue / PR number and 16-digit hash of AGENTS.md, development.md, dm/games/README.md and docs/agents/01-05 at 6a06877 (4,600 items) still appears in the repository's Markdown (the same five file patterns as before appear as the full names they stood for), every relative link and heading anchor in the repository's Markdown resolves, and the tool tests pass (the four that need capstone or lz4 in the T7 venv)

This commit is contained in:
seedds committed 2026-10-25 12:31:58 +08:00
1 parent 846c54c63c
commit 3a993fa3fe
77 files changed
+3978 -912

No files matched your search

+6 -6
View File
@@ -73,12 +73,12 @@ The desktop renderer with forward shading: one RG11B10 colour pass draws every o
General host changes first needed here; each applies to every game:
- **Unreal Engine 4.27's FMalloc layout and the allocator made on the first allocation** (`hle_uemalloc.c` layout `UE4_27`, cut + `OBS_UE_MALLOC` gate): [03, Memory and address space](../../../docs/agents/03-bringup.md#memory-and-address-space).
- **LZ4 Unreal shaders decoded by `uepak.py` itself** (`lz4_shaders`): [04, section 1](../../../docs/agents/04-graphics.md#1-find-every-shader-container), [01, Compressed RomFS content](../../../docs/agents/01-extract.md#compressed-romfs-content).
- **Stencil-mode texture builders** (`tex_t.stencil`), **texture slots 32–39 reading the bound image** (`tex_slot_h`) and **image size queries typed from the image** (`dmsh_xlate` `ImageTypesOf`): [04, Seen in DRAGON QUEST VII Reimagined](../../../docs/agents/04-graphics.md#seen-in-dragon-quest-vii-reimagined).
- **A 32 kHz audio renderer resampled 3:2 on the CPU** (`up_3_2`): [03, Audio](../../../docs/agents/03-bringup.md#audio).
- **`nv12-uv-stride`, `nv12-width`, `nv12-height` in the movie output format** (`md_format`), **`GetAudioDeviceOutputVolume`**, **`kpr::GetKeyCodeMap`** and the shop / Nintendo Account calls: [03, Services and SDK](../../../docs/agents/03-bringup.md#services-and-sdk).
- **Rewriter:** gates before code that writes the scratch registers first (`scratch_dead`): [03, Rewriter](../../../docs/agents/03-bringup.md#rewriter).
- **Unreal Engine 4.27's FMalloc layout and the allocator made on the first allocation** (`hle_uemalloc.c` layout `UE4_27`, cut + `OBS_UE_MALLOC` gate): [Unreal's FMallocBinned3 replaced by the host allocator](../../../docs/reference/memory.md#unreals-fmallocbinned3-replaced-by-the-host-allocator).
- **LZ4 Unreal shaders decoded by `uepak.py` itself** (`lz4_shaders`): [Unreal Engine 4.27 shader code archives (LZ4)](../../../docs/reference/shaders.md#unreal-engine-427-shader-code-archives-lz4), [01, Compressed RomFS content](../../../docs/agents/01-extract.md#compressed-romfs-content).
- **Stencil-mode texture builders** (`tex_t.stencil`), **texture slots 32–39 reading the bound image** (`tex_slot_h`) and **image size queries typed from the image** (`dmsh_xlate` `ImageTypesOf`): [Stencil-mode textures from the texture builder](../../../docs/reference/rendering.md#stencil-mode-textures-from-the-texture-builder), [A texture slot that shares its c2 word with an image slot](../../../docs/reference/shaders.md#a-texture-slot-that-shares-its-c2-word-with-an-image-slot).
- **A 32 kHz audio renderer resampled 3:2 on the CPU** (`up_3_2`): [A renderer below 48 kHz with no upsampler on the CPU](../../../docs/reference/audio.md#a-renderer-below-48-khz-with-no-upsampler-on-the-cpu).
- **`nv12-uv-stride`, `nv12-width`, `nv12-height` in the movie output format** (`md_format`), **`GetAudioDeviceOutputVolume`**, **`kpr::GetKeyCodeMap`** and the shop / Nintendo Account calls: [Output format keys (`md_format`)](../../../docs/reference/movies.md#output-format-keys-md_format), [Audio device output volume and names](../../../docs/reference/audio.md#audio-device-output-volume-and-names), [Mouse, keyboard and key code maps](../../../docs/reference/services.md#mouse-keyboard-and-key-code-maps), [Shop service accessors](../../../docs/reference/services.md#shop-service-accessors), [Account, friends, play data and Nintendo Account calls](../../../docs/reference/services.md#account-friends-play-data-and-nintendo-account-calls).
- **Rewriter:** gates before code that writes the scratch registers first (`scratch_dead`): [Observation gates where x9–x17 are dead](../../../docs/reference/rewriter.md#observation-gates-where-x9x17-are-dead).
- **`DM_CTL` route scripts** (`run/ctl.sh`): [05, Scripted input and thread scheduling](../../../docs/agents/05-debugging.md#scripted-input-and-thread-scheduling).
## Open