tools(pdb-extract): #8 PDB -> symbols.json + types.json sidecar
Pure-Python MSF 7.00 PDB extractor (no deps, stdlib only). Reads
refs/acclient.pdb directly:
- DBI stream (3) -> symbol record stream index + section header
stream index
- Section headers stream (9) -> per-segment image VA bases
- Symbol record stream (8) -> S_PUB32 records with image VAs
- TPI stream (2) -> LF_CLASS / LF_STRUCTURE named records (not
forward-declared), with size leaf + name
Includes a best-effort MSVC C++ demangler so symbols.json is
grep-friendly:
?EnchantAttribute@CEnchantmentRegistry@@QBEHKAAK@Z
-> CEnchantmentRegistry::EnchantAttribute
Both demangled `name` + raw `mangled` emitted per entry so callers
can choose. Operator overloads, vtables, and other special forms
where a partial demangle would be misleading are kept mangled.
Outputs committed to docs/research/named-retail/:
- symbols.json (2.9 MB) — 18,366 named public function symbols
- types.json (506 KB) — 5,371 unique named class/struct records
Spot check (matches discovery agent's earlier finding):
CEnchantmentRegistry::EnchantAttribute -> 0x00594570 ✓
Updated docs/research/acclient_function_map.md header preamble to
direct readers at the new symbols.json as the authoritative name
source; the hand-curated table stays as the cross-port (ACE/ACME)
index. Several addresses there are wrong vs the PDB and will be
swept in the issue #9 close (Phase E).
Closes #8 (filed in Phase D's commit). Foundation for the address
sweep + name-driven workflows from here on.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a9a01d8ba2
commit
69d884a3d6
5 changed files with 119279 additions and 2 deletions
|
|
@ -1,7 +1,20 @@
|
|||
# acclient.exe Decompiled Function Map
|
||||
|
||||
Mapped from 22,225 decompiled functions (688K lines of C) against ACE's
|
||||
C# physics port and ACME's ClientReference.cs.
|
||||
Hand-curated cross-port index: maps select retail functions to our
|
||||
C# implementations + ACE / ACME equivalents + struct-offset notes.
|
||||
**This is the cross-port index, not the authoritative name list.**
|
||||
|
||||
For raw symbol→address lookup the authoritative source is
|
||||
`docs/research/named-retail/symbols.json` (18,366 entries from
|
||||
`refs/acclient.pdb`, the Sept 2013 EoR build PDB). Regenerate via
|
||||
`py tools/pdb-extract/pdb_extract.py refs/acclient.pdb`. Several
|
||||
addresses below were corrected against `symbols.json` in commit
|
||||
that closed issue #9 — match by name when in doubt.
|
||||
|
||||
Mapped from 22,225 decompiled functions (688K lines of C, the
|
||||
`docs/research/decompiled/` Ghidra chunks) against ACE's C# physics
|
||||
port and ACME's ClientReference.cs. Now augmented by the named
|
||||
retail decomp at `docs/research/named-retail/`.
|
||||
|
||||
## CPhysicsObj (chunk_00510000.c, chunk_00500000.c)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue