GoG symbol map — index#
Behavioral mapping from src/LORDS2.EXE.c to
src/Lords2-gog.exe.c. Retail and GoG VAs differ;
names are matched by fingerprint, call graph, and manual anchors — not by address.
Loop progress: gog-sync-progress.md.
Skill: .cursor/skills/gog-sync-loop/SKILL.md.
Phases#
| Phase | Subsystem | Mapped | Report | JSON |
|---|---|---|---|---|
| 1 | ui |
47 | gog-symbol-map-ui.md | gog-symbol-map-ui.json |
| 2 | startup |
478 | gog-symbol-map-startup.md | gog-symbol-map-startup.json |
| 3 | game |
915 | gog-symbol-map-game.md | gog-symbol-map-game.json |
| 4 | gfx |
186 | gog-symbol-map-gfx.md | gog-symbol-map-gfx.json |
| 5 | map |
151 | gog-symbol-map-map.md | gog-symbol-map-map.json |
| 6 | combat |
378 | gog-symbol-map-combat.md | gog-symbol-map-combat.json |
Generate / refresh:
python3 tools/ghidra/map_gog_symbols.py --subsystem <ui|startup|game|gfx|map|combat>
Apply:
python3 tools/ghidra/apply_gog_renames.py --subsystem <name>
python3 tools/ghidra/apply_gog_renames.py --all
Workflow: RENAME_WORKFLOW.md (GoG parallel track).
Net subsystem note#
GoG export has no DirectPlay / DPLAYX strings. Retail lotr2_net_* symbols
are intentionally excluded from GoG sync until ASIGS equivalents are identified.