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>
This commit is contained in:
Erik 2026-09-03 06:31:54 +02:00
parent e7b6dc03c5
commit b62dbf035c
3 changed files with 6 additions and 2 deletions

View file

@ -137,6 +137,8 @@ Lead verifies every finding against the source before an edit (S2 precedent:
## 7. Open questions for the capture session (ask for exactly these two) ## 7. Open questions for the capture session (ask for exactly these two)
1. `LScape::calc_draw_order` sequence at each of the four poses (far-to-near 1. `LScape::calc_draw_order` sequence at each of the four poses (far-to-near
land cell order) — chunk 3's oracle. land cell order) — chunk 3's oracle. Captured by the walk template's `LC`/`SC`
lines (added 2026-09-03: `RenderDeviceD3D::DrawLandCell` 0x0059f120 /
`DrawSortCell` 0x0059f140, one line per call with the cell's `m_DID`).
2. Per-frame `outside_view.view_count` and the device-stamp advance count at 2. Per-frame `outside_view.view_count` and the device-stamp advance count at
each pose — chunk 2's oracle for the re-arm gate. each pose — chunk 2's oracle for the re-arm gate.

View file

@ -25,7 +25,7 @@ session.
| File | Purpose | | File | Purpose |
|---|---| |---|---|
| `oh-recon.cdb` | No breakpoints. `dt`/`x`/`uf`/`dd` dumps that confirm every offset the three capture scripts assume. Run this FIRST, once per session. | | `oh-recon.cdb` | No breakpoints. `dt`/`x`/`uf`/`dd` dumps that confirm every offset the three capture scripts assume. Run this FIRST, once per session. |
| `oh-capture-walk.cdb.template` | FW0's F/P/LS/BLD/DI/DC lines, byte-identical, plus new `EC`/`OC` lines (cell-shell and object-cell draw-stamp events). 5 frames. | | `oh-capture-walk.cdb.template` | FW0's F/P/LS/BLD/DI/DC lines, byte-identical, plus new `EC`/`OC` lines (cell-shell and object-cell draw-stamp events) and, added 2026-09-03 for S3 chunk 3, `LC`/`SC` lines: one per `RenderDeviceD3D::DrawLandCell` (`0x0059f120`) / `DrawSortCell` (`0x0059f140`) call with the land cell's `m_DID` — retail's far-to-near landscape draw order within `LS`. 5 frames. |
| `oh-capture-parts.cdb.template` | F/P lines plus new `PD`/`DM` lines (per-part and per-mesh admission/GfxObj identity). The high-hit-rate script. 3 frames. | | `oh-capture-parts.cdb.template` | F/P lines plus new `PD`/`DM` lines (per-part and per-mesh admission/GfxObj identity). The high-hit-rate script. 3 frames. |
| `oh-capture-alpha-depth.cdb.template` | F/P lines plus new `AM`/`FL`/`PM`/`PC` lines (the two alpha FIFO lists and the persistent portal-mask depth counter). 5 frames. | | `oh-capture-alpha-depth.cdb.template` | F/P lines plus new `AM`/`FL`/`PM`/`PC` lines (the two alpha FIFO lists and the persistent portal-mask depth counter). 5 frames. |
| `oh-run-capture.ps1` | Runner: `-Script -Log -Frames`. Verifies the live acclient.exe pairs with `refs/acclient.pdb` (aborts on mismatch), substitutes `<LOG>`/`<FRAMES>`, launches `cdb -pn acclient.exe -cf <script>` in the background. | | `oh-run-capture.ps1` | Runner: `-Script -Log -Frames`. Verifies the live acclient.exe pairs with `refs/acclient.pdb` (aborts on mismatch), substitutes `<LOG>`/`<FRAMES>`, launches `cdb -pn acclient.exe -cf <script>` in the background. |

View file

@ -69,6 +69,8 @@ bp 00506330 ".printf \"LS\\n\"; gc"
bp 0059f2a0 ".printf \"BLD %08x\\n\", poi(poi(@esp+4)+0x4c); gc" bp 0059f2a0 ".printf \"BLD %08x\\n\", poi(poi(@esp+4)+0x4c); gc"
bp 0059f170 ".printf \"EC %08x\\n\", poi(poi(@esp+4)+0x28); gc" bp 0059f170 ".printf \"EC %08x\\n\", poi(poi(@esp+4)+0x28); gc"
bp 005a0760 ".printf \"OC %08x\\n\", poi(poi(@esp+4)+0x28); gc" bp 005a0760 ".printf \"OC %08x\\n\", poi(poi(@esp+4)+0x28); gc"
bp 0059f120 ".printf \"LC %08x\\n\", poi(poi(@esp+4)+0x28); gc"
bp 0059f140 ".printf \"SC %08x\\n\", poi(poi(@esp+4)+0x28); gc"
g g
.echo ===DETACHING=== .echo ===DETACHING===
qd qd