5 Commits
Author SHA1 Message Date
SalastilandClaude Opus 5.5 9506990c95 tus: estimate translation-unit boundaries from .rdata marker tables
Each game object's .rdata starts with a header's static int[5]
{2000,2500,3000,4000,10000}: 261 blocks. config/eqgame/tus.txt maps
each block to the code referencing its own (non-pooled) strings and vtables.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 19:12:15 -04:00
SalastilandClaude Opus 5.5 724901c9ed MATCHING.md: /MT, pair workflow, more clues
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 12:10:48 -04:00
SalastilandClaude Opus 5.5 51d6deef8f Match shared helpers 0x401b28-0x401c6b; matching notes
GetSpellByID only matches its caller when it lives in a separate file: MSVC 7.1
tracks callee register use within a translation unit, so TU boundaries show
up in the generated code. docs/MATCHING.md collects these lessons.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 12:00:41 -04:00
SalastilandClaude Opus 5.5 b1cc8a1b0d Keep only symbol names proven from the shipped binary
Drop the names taken from an external offset header (functions and
globals), keeping only names the binary itself proves: _WinMain@16 from
the CRT entry call, and Class::Method names from the client's own log
strings. The six functions Ghidra missed stay in the map under neutral
FUN_ names, justified by vtable/pointer references. NAMES.md, README
and ROADMAP no longer point at third-party offset lists.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 23:01:25 -04:00
SalastilandClaude Opus 5.5 9f4e6666b3 Annotation-driven symbols, EH-aware matching, hash-checked link; spell-point TU matched
- // FUNCTION: / GLOBAL: / LIBRARY: annotations in source name symbols, so
  decompiling never needs edits to the shared symbols.txt
- check follows compiler-generated EH handlers into .text$x and verifies
  string literals / float constants by content
- link rebuilds eqgame.exe from compiled objects with relocations resolved
  through the map and checks the SHA1 (currently identical)
- Ghidra pseudo-C export script; docs/ROADMAP.md for the full-relink plan
- /GS confirmed; 0x401022-0x4013e1 (13 functions, spell casting particle
  points) match byte-for-byte

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 22:46:21 -04:00